Tải bản đầy đủ (.docx) (20 trang)

ĐỀ CƯƠNG hệ điều HÀNH UNIX

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (222.06 KB, 20 trang )

ĐỀ CƯƠNG HỆ ĐIỀU HÀNH UNIX
1. Lý thuyết về HĐH
Câu 1: Tổng quan về hệ điều hành Unix
Trả lời:
Hệ điều hành được viết trên ngôn ngữ bậc cao; bởi vậy, rất dễ đọc, dễ
hiểu, dễ thay đổi để cài đặt trên loại máy mới (tính dễ mang chuyển, như
đã nói)
Có giao diện người dùng đơn giản đủ năng lực cung cấp các dịch vụ mà
người dùng mong muốn (so sánh với các hệ điều hành có từ trước đó thì
giao diện của UNIX là một tiến bộ vượt bậc), ƒ
Thỏa mãn nguyên tắc xây dựng các chương trình phức tạp từ những
chương trình đơn giản hơn: trước hết có các môđun cơ bản nhất của nhân
sau đó phát triển để có toàn bộ hệ điều hành, ƒ
Sử dụng duy nhất một hệ thống File có cấu trúc cho phép dễ dàng bảo
quản và sử dụng hiệu quả,
Sử dụng phổ biến một dạng đơn giản trình bày nội tại của File như một
dòng các byte cho phép dễ dàng khi viết các chương trình ứng dụng truy
nhập, thao tác với các dữ liệu trong File, ƒ
Có kết nối đơn giản với thiết bị ngoại vi: các file thiết bị đã được đặt sẵn
trong Hệ thống File tạo ra một kết nối đơn giản giữa chương trình người
dùng với các thiết bị ngoại vi, ƒ
Là hệ điều hành đa người dùng, đa quá trình, trong đó mỗi người dùng
có thể thực hiện các quá trình của mình một cách độc lập. ƒ
Mọi thao tác vào - ra của hệ điều hành được thực hiện trên hệ thống File:
mỗi thiết bị vào ra tương ứng với một file. Chương trình người dùng làm
1


việc với file đó mà không cần quan tâm cụ thể tên file đó được đặt cho
thiết bị nào trong hệ thống. ƒ
Che khuất cấu trúc máy đối với người dùng, đảm bảo tính độc lập tương


đối của chương trình đối với dữ liệu và phần cứng, tạo điều kiện thuận lợi
hơn cho người lập trình khi viết các chương trình chạy UNIX với các điều
kiện phần cứng hoàn toàn khác biệt nhau
Câu 2: Cấu trúc cơ bản của HĐH Unix
Một hệ điều hành UNIX truyền thống, gồm shell và ba thành phần (đã
dạng mã chương trình) sau đây:
- Nhân hệ điều hành chịu trách nhiệm duy trì các đối tượng trừu tượng
quan trọng của hệ điều hành, bao gồm bộ nhớ ảo và quá trình. Các mô đun
chương trình trong nhân được đặc quyền trong hệ thống, bao gồm đặc
quyền thường trực ở bộ nhớ trong.
- Thư viện hệ thống xác định một tập chuẩn các hàm để các ứng dụng
tương tác với nhân, và thi hành nhiều chức năng của hệ thống nhưng
không cần có các đặc quyền của mô đun thuộc nhân. Một hệ thống con
điển hình được thi hành dựa trên thư viên hệ thống là hệ thống file Linux.
- Tiện ích hệ thống là các chương trình thi hành các nhiệm vụ quản lý
riêng rẽ, chuyên biệt. Một số tiện ích hệ thống được gọi ra chỉ một lần để
khởi động và cấu hình phương tiện hệ thống, một số tiện ích khác, theo
thuật ngữ UNIX được gọi là trình chạy ngầm (daemon), có thể chạy một
cách thường xuyên (thường theo chu kỳ), điều khiển các bài toán như
hưởng ứng các kết nối mạng mới đến, tiếp nhận yêu cầu logon, hoặc cập
nhật các file log.

2


Sơ bộ về nhân
Là tập các modun chương trình có vai trò điều khiển các thành phần của
máy tính, phân phối tài nguyên của máy tính cho các tiến trình cho người
dùng , hệ thống file.
Là cầu nối giữa người dùng và phần cứng

Chức năng: giải quyết bài toán lập lịch CPU –RR hỗ trợ hệ điều hành xử
lý nhiừu tiến trình tại một thời điểm
Thành phần của nhân:
+ Hệ thống modun chương trình thuẹc hiện chức năng điều khiển các
thành phần của máy tính
+ hệt hống modunlời gọi hệ thống để làm viêc với hệ thống file.
Sơ bộ về shell
Là bộ dịch lệnh
Đóng vai trò là cầu nối giữa người dùng và nhân
+ Shell nhận lệnh của người dùng sau đó thì chuyển lệnh đó đến nhân,
nhân tách lệnh ra thành một hay nhiều đoạn lệnh tương ứng với các đoạn
trong dòng lệnh
+ Shell phát sinh tiến trình mới, cho tiến tình thực hiện đến khi kết thúc
Có hai loại lớp vỏ shell gồm C-shell(dấu nhắc %), B-shell(dấu nhắc $)
Có hai dòng shell là TC – shell (>), GNV B-shell (#)
Câu 3: Cách tổ chức hệ thống tệp, file trong Unix
Trả lời:
Cách tổ chức hệ thống file /tệp trong Unix
a) Các kiểu file

Unix có 3 kiểu file:
- File bình thường : là tập hợp các thông tin (ASCII text hoặc binary)
- File thư mục: chức danh sách các tên có thể truy nhập tới
3


- File đặc biệt: các file liên quan tới thiết bị ngoại vi cứng hoặc cơ chế

truyền tin
b) Tổ chức các file

Các file của Unix được tổ chức theo dạng cây. Thư mục gốc (root) của
cây được biểu diễn bằng ký tự /
Cấu trúc cây cơ sở của hệ Unix được bố trí như sau:
Kí hiệu file bình thường:
Kí hiệu file thư mục:
Kí hiêu file đặc biệt:
Cấu trúc cây cơ sở của Unix

Câu 4: Cấu trúc của tiến trình
Trả lời:
Tiến trình được hiểu là việc thực hiện một công việc hay một chương
trình trong môi trường cụ thể trong hệ thống. ta có thể phân biệt hai loại
tiến trình:
Tiến trình hệ thống : là tiến trình không gắn với bất kỳ một terminal nào,
nói được tạo ra vào thời điểm khởi động hệ thống hoặc vào các thời điểm
cố định do người dùng quản trị hệ thống đặt.
Tiến trình người dùng do người sử dụng tạo ra.
Tiến trình được tổ chức theo dạng cây: tiến trình cha-> tiến trình con
2. Hệ thống tập lệnh
Liệt kê các nhóm lệnh
1- Lệnh soạn thảo VI tham khảo bài 6 trong giáo trình Unix
a) Mở chương trình soạn thỏa vi

vi <tên_file> - tạo file soạn thảo mới
4


vi [tùy chọn]
[tùy chọn]
+ [n] đặt dấu nhắc trỏ tại dòng thứ n (ngầm định là dòng cuối)

+ <lệnh> thực hiện lệnh sau khi nạp file
+/<mẫu> <file> đặt dấu nhắc trỏ tại dòng đầu tiên có chứa mẫu trong
file
-o[n] mở n cửa sổ (ngầm định có một cửa sổ cho một file: n=1)
--help hiển thị danh sách các tham số và thoát
* Mở nhiều cửa sổ làm việc
vi –o2 vidu1 vidu2
CTRL-W chia cửa sổ hiện tại thành hai phần
:split <file> chia cửa sổ và soạn thảo <file> trên một phần chia của cửa
sổ
:sf <file> chia cửa sổ, tìm file trên đường dẫn và soạn thảo nó
CTRL-W CTRL-^ chia cửa sổ và edit alternate file
CTRL-W n t ạo một cửa sổ trống mới (giống :new)
CTRL-W q d ừng việc soạn thảo và đóng cửa sổ (giống :q)
CTRL-W o phóng to cửa sổ hiện hành trên toàn màn hình
CTRL-W j di chuyển trỏ soạn thảo xuống cửa sổ dưới
CTRL-W k di chuyển trỏ soạn thảo lên cửa sổ trên
CTRL-W t di chuyển trỏ soạn thảo lên đỉnh cửa sổ
CTRL-W b di chuyển trỏ soạn thảo xuống đáy cửa sổ
CTRL-W p di chuyển trỏ soạn thảo đến cửa sổ được kích hoạt lúc trước
CTRL-W x di chuyển trỏ soạn thảo đến cửa sổ tiếp theo
CTRL-W = tạo tất cả các cửa sổ có chiều cao như nhau
CTRL-W - giảm chiều cao của cửa sổ hiện thời
CTRL-W + tăng chiều cao của cửa sổ hiện thời
CTRL-W Ỵ thiết đặt chiều cao của cửa sổ hiện thời
* Ghi và thoát trong vi
Các lệnh để ghi nội dung file lên hệ thống file và thoát khỏi vim sau khi
đã soạn thảo xong nội dung của file
:[n,m] w [!] ghi file hiện thời.
:[n,m] w <file> ghi nội dung ra <file>, trừ khi file đó đã thực sự tồn tại


5


:[n,m] w! <file> ghi nội dung ra <file>, nếu file đã tồn tại thì ghi đè lên
nội dung cũ
:[n,m] w[!] >> [<file>] chèn thêm vào <file>, nếu không có file, mặc
định là file hiện thời
:[n,m] w !<lệnh> thực hiện <lệnh> trên các dòng từ dòng thứ n đến dòng
thứ m như thiết bị vào chuẩn :[n,m] up [thời gian] [!] ghi file hiện thời nếu
nó được sửa đổi
:q [!] thoát khỏi vim
:wq [!] [<file>] ghi nội dung <file> (mặc định là file hiện thời) và thoát
khỏi vim
:x [!] <file> giống :wq nhưng chỉ ghi khi thực sự có sự thay đổi trong
nội dung file (giống ZZ)
:st [!] dừng vim và khởi tạo một shell (giống CTRL-Z)
b) Di chuyển con trỏ soạn thảo trong vi

c) Các thao tác trong văn bản

Các lệnh chèn văn bản trong vi
A chèn văn bản vào vị trí dấu nhắc trỏ hiện thời (n lần)
6


A chèn văn bản vào cuối một dòng (n lần)
i

chèn văn bản vào bên trái dấu nhắc trỏ (n lần)


I

chèn văn bản vào bên trái ký tự đầu tiên khác trống trên dòng hiện tại

(n lần)
gI chèn văn bản vào cột đầu tiên (n lần)
o chèn n dòng trống vào dưới dòng hiện tại
O chèn n dòng trống vào trên dòng hiện tại
:r file chèn vào vị trí con trỏ nội dung của file
:r! lệnh chèn vào vị trí con trỏ kết quả của lệnh lệnh
Các lệnh xoá văn bản trong vi
x
xoá n ký tự bên phải dấu nhắc trỏ
X
xoá n ký tự bên trái dấu nhắc trỏ
dd
xoá n dòng kể từ dòng hiện thời
D hoặc d$
xoá từ vị trí hiện thời đến hết dòng
dw
xoá n từ kể từ vị trí hiện thời
dG
xoá từ vị trí hiện thời đến cuối file
d1G
xoá ngược từ vị trí hiện thời đến đầu file
dn$
xoá từ dòng hiện thời đến hết dòng thứ n
d
xoá từ dòng thứ n đến dòng thứ m

cc
xoá n dòng, kể cả dòng hiện thời rồi khởi tạo chế độ chèn
(Insert)
C

xoá n dòng kể từ vị trí hiện thời rồi khởi tạo chế độ chèn

(Insert)
cn$

xoá từ dòng hiện thời đến hết dòng thứ n rồi khởi tạo chế

độ chèn (Insert)
s
xoá n ký tự và chạy chế độ chèn (Insert)
S
xoá n dòng và chạy chế độ chèn (Insert)
2- CÁC LỆNH/ NHÓM LỆNH
Quản lý các tệp tin
Di chuyển và liệt kê các tệp tin
pwd
cd
cd/desktop
cd..

Hiển thị lên tên thư mục đang làm việc
Di chuyển sang thư mục đích
Di chuyển đến thư mục desktop
Di chuyển ngay đến thư mục cha
7



cd/usr/apt
ls –l thưmục
dir –l thưmục
ls –a
dir –a
ls –d
dir –d
ls –t
dir –d
ls –S
dir –S
ls –l | more
chow tên người dung
file
chow R
tênngườidùngthưmục
chgrp nhomfile
chmod u+x file
chmod g-w file
chmod o-r file
chmod a+rw file
chmod –R a+rx
thưmục

Di chuyển đến thư mục usr/apt
Liệt kê danh mục tập tin trong thư mục thưmục
một cách chi tiết
Liệt kê tất cả các tệp tin kể cả các tệp tin ẩn

Liệt kê tất cả thư mục nằm trong thư mục hiện
hành
Xếp lại các tệp tin theo ngày tháng tạo ra, bắt
đầu bằng các tệp tin mới nhất
Xếp lại các tệp tin theo kích thước từ to nhất
đến nhỏ nhất
Liệt kê theo từng trang một, nhờ tiện ích more
Quyền truy cập tập tin
Xác định người chủ của tập tin file là
người dùng mang tên <<tên người dùng>>
Xác định người chủ của thư mục thưmục
kể cả các thưu mục con R là người dùng
<<tên người dùng>>
Chuyển tập tin file thành sở hữu của nhóm
người dùg mang tên nhóm
Giao thêm + quyền thực hiện x cho tập tin
file cho người dùng u
Rút quyền – ghi w file của nhóm g
Rút quyền – đọc r tập tin file của những
người khác o
Giao quyền + đọc r và ghi w file cho mọi
người a
Giao quyền + đọc và vào bên trong thư
mụcn x, kể cả tát cả các thư mục con của nó
R cho tất cả mọi người a
Tập tin và thư mục

cp file 1 file 2
Chép file1 sang file 2
cp file/thưmục

Coppy file sang thư mục
cp
–r
thưmục1
Chép toàn bộ nội dung thư mục của
thưmục2
thưmục1 sang thưmục2
8


rsync –a thưmục1
thưmục2
mv file 1 file 2
mv thưmục1 thưmục2
mv file thưmục
mv file1 thưmục/file2

Chuyển tên file1 thành file2
Chuyển tên thư mục1 thành thưmục2
Chuyển tập tin file vào thư mục
Chuyển file1 vào thư mục đồng thời
đổit ên thành file 2
mkdir thưmục
Tạo ra thư mục thưmục
mkdir
–p
Tạo ra thư mục cha thư mục1 và thư
thưmục1/thưmục2
mục con thư mục 2 cùng lúc
rm file

Xóa bỏ tập tin file trong thư mục hienẹ
hành
rmdir thưmục
Xóa bỏ thư mục trống mang tên thư
mục
rm -rf thưmục
Xóa bỏ thư mục mang tên thư mục và
các tệp tin trong đó
ln –s file liênkết
Tạo ra một liên kết mang tên liênkết
đến tệp tin file
find thưmục –name
Tìm tệp tin mang tên file trong thư
file
mục kể các tệp tin con
diff file file2
So sánh nội dung của hai tệp tin hoặc
của hai thư mục
Nội dung các tệp tin
cat file
more file

less file
head –n file
tail –n file
vi file
nano file

Xuất hiện nội dung của tập tin file trên
màn hình ở dnạg mã ASCII

Xuất hiện nội dung của tập tin file trên
màn hình theo chế độ từng trang một ấn
phím Enter để xuống 1 dòng ; ấn phím
Space để sang 1 trang; ấn phím q để
thoát
Less giống more nhưng được phép
dùng Page Down
Xuất hiện số n dòng đầu tiên của một
tệp tin
Xuất hiện số n dòng cuối cùng của file
Soạn thảo vi
Soạn thảo nano
9


gedit file
grep chuỗi file

Soạn thảo gedit
Xuất hiện các dòng chứa nội dung
chuỗi trong tập tin file
grep –r chuỗi thưmục
Tìm nội dung chuỗi trong tất cả các tệp
tin trong thư mục mang tên thưmục
lệnh >file
Ghi kết quả cảu lệnh lệnh trong tập tin
file
lệnh>>file
Bổ sung kết quả của lệnh lệnh ở phần
cuối của tập tin file

Nén và giải nén tập tin
tar xvf archive.tar

Giải phóng các tập tin có trong tập tin
archive.tar đồng thừoi hiển thị các tệp
tin
tar xvtz archive.tar.gz
Giải nén các tập tin có trong
archive.tar.gz dùng gzip và tar
tar xvtz
Giải nén các tệp tin có trong
archive.tar.bz2
archive.tar.bz2 dùng gzip và tar
tar xvf archive.tar
Tạo ra một tập tin archive.tar chứa các
file1 file2
tệp tin file1 và file2
tar xvtz archive.tar.gz
Tạo ra một tệp tin archive.tar.gz dùng
thưmục
gzip để chứa toàn bộ thư mục
gzip file.txt
Tạo một tập tin nén file.txt.gz
gunzip file.txt.gz
Giải nén tập tin file.txt
bzip2 file.txt
Tạo một tập tin nén file.txt.bz2
bunzip2 file.txt.bz2
Giải nén tập tin file.txt
Quản trị hệ thống

Cơ bản
sudo command
gksudo command
sudo -k
uname -r
shutdown –h now
lsusb

Thực hiện lệnh command với tư cách
siêu người dùng
Giống với sudo nhưng dùng cho các
ứng dụng đồ họa
Chấm dứt chế độ dùng lệnh có chức
năng của siêu người dùng
Cho biết phiên bản của nhân linux
Khởi động lại mt ngay lập tức
Liệt kê các thiết bị usb hoặc pci có
10


lspci
time command
command 1|command
2
clear

mặt trong mt
Cho biết tg cần thiết để thực hiện
xong lệnh command
Chuyển kq của lệnh command1 làm

đầu vào lệnh của lệnh command2
Xóa màn hình của cửa sổ [thiết bị
cuối] –terminal

Tiến trình[processus]
ps -ef
ps aux
ps aux|grep soft
kill pid
kill -9 pid
xkill

Hiển thị tất cả các tiến trình đã được
thực hiện
Hiển thị chi tiết các tiến trình
Hiển thị các tiến trình lien quan đến
chương trình khởi động soft
Báo chấm dứt tiến trình mang số pid
Yêu cầu hệ thống chấm dứt tiến trình
pid
Chấm dứt 1 ứng dụng theo dạng đồ
họa [ấn chuột vào của sổ của ứng dụng]

Gói phần mềm
/etc/apt/sources.list
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get install soft
apt-get remove soft

apt-get remove --purge
soft
apt-get autoclean
apt-cache dumpavail
apt-cache search soft

Tập tin xđ nguồn các kho pm để tải
xuống nhằm cài mới hoặc cập nhật hệ
thống
Cập nhật ds các gói pm căn cứ vào các
kho pm có trong tập tin sources.list
Cập nhật các gói pm đã cài rồi
Nâng cấp phiên bản ubuntu đang có
đến phiên bản mới tiếp theo
Cài pm soft đồng thời giải quyết các
gói pm phụ thuộc
Loại bỏ pm soft cũng như tất cả các
pm trực thuộc
Loại bỏ pm soft kể cả tập tin cấu hình
của pm soft
Xóa bỏ các bản sao chép của những
gói pm đã bị loại bỏ
Hiển thị các ds các gói pm đang có
Cho biết ds gói pm có tên hoặc có
11


phần mô tả chứa chuỗi soft
apt-cache show soft
Hiển thị phần mô tả của gói pm soft

apt-cache showpkg soft
Hiển thị các thông tin của gói pm soft
apt-cache depends soft
Liệt kê các gói pm cần thiết cho gói
pm soft
apt-cache rdepend soft
Liệt kê các gói pm cần đến gói pm
soft
apt-file update
Cập nhật thong tin căn cứ vào ds
nguồn pm trong tập tin sources.list
apt-file search file
Xác định tập tin file thuộc gói pm nào
apt-file list soft
Liệt kê các tập tin có trong pm soft
deborphan
Liệt kê các gói pm ‘mồ côi’
alien –di paquet.rpm
Chuyển pm paquet.rpm thành gói pm
dạng Debian paquet.deb [-d] và thực
hiện cài đặt luôn [-i]
dpkg -i paquet.deb
Cài đặt pm paquet.deb [không giải
quết các gói phụ thuộc]
dpkg -c paquet.deb
Liệt kê nd của gói paquet.deb
dpkg –I paquet.dep
Hiển thị thong tin của gói paquet.deb
Mạng máy tính
/etc/network/interfaces


Thông tin cấu hình của các bộ phần
giao diện [interfaces]
uname -a
Hiển thị tên của mt trong mạng
[hostname]
ping địa chỉ ip]
Thử nối mạng đến mát có địa chỉ ip
jfconfig -a
Hiển thị thông tin về tất cả các giao
diện mạng đang có
Jfconfig eth0 địa chỉ ip
Xác định địa chỉ ip cho giao diện cạc
mạng eth0
Jfconfig eth0
Kích hoạt giao diện cạc mạng eth0
Jfconfig eth0 up
Jfconfig eth0
Ngưng hoạt động giao diện cạc mạng
Jfconfig eth0 down
eth0
poweroff -i
Ngưng hoạt động tất cả các nối mạng
route add default gw
Xác định địa chỉ ip của máy làm cổng
địa chỉ ip
dẫn đến bên ngoài mạng cục bộ
route del default
Bỏ địa chỉ ip mặc định ra khỏi mạng
12



cục bộ
Phân vùng ổ cứng
/etc/stab
fdisk -l
mkdir/media/diskusb
mount/media/cleusb
umount/media/cleusb
mount -a
mount -a –o remount
fdisk/dev/hdal
mkfs.ext3/dev/hdal
mkfs.vfat/dev/hdal

Chứa các thông tin về các ổ cứng và
hệ thống tập tin được gắn tự động
Hiển thị các phân vùng tích cực
Tạo thư mục để gắn hệ thống tập tin
của thiết bị diskusb
Gắn hệ thống tập tin diskusb
Tách ra hệ thống tập tin diskusb
Gắn, tách ra hoặc gắn lại tát cả các
ô/thiết bị có trong tập tin
Tạo mới và bo phân vùng trên ổ cứng
IDE thứu nhất
Tạo ra 1 hệ thống tập tin ext3 trên
phân vùng /dev/hdal
Tạo ra 1 hệ thống tập tin fat32 trên
phân vùng /dev/hdal


13


3. Lập trình Shell Script.
1 _ Nhập vào số tự nhiên N, in tất cả các số từ 1 đến N
#!/bin/bash
echo “Nhap so N”
read N
for ($i=1 ; $i<=N ;$ i++)
do
echo "i"
done
2 – Chương trình tính tổng các số từ 1 đến N
file tong1.sh
#!/bin/sh
echo “Chuong trinh tinh tong 1- $1”
index=0
tong=0
while[ $index -lt $1 ]
do
index=$(($index + 1))
tong=$(($tong + $index))
done
echo "Tong 1-$1= $tong"
exit 0
3 – Tính tổng N!
Tập tin giaithua.sh
#!/bin/bash
echo “Chuong trinh tinh tong_$1!”

14


index=0
tong=0
gt=1
while[ $index -lt $1 ]
do
index=$(($index + 1))
gt=$(($gt * $index))
tong=$(($tong + $gt))
done
echo "$1!= $gt"
echo "Tong 1-$1= $tong"
exit 0
4 – Viết chương trình tổng các số chẵn/lẻ
#!/bin/bash
echo “Nhap so n”
read n
s1=0;
s2=0;
for(i=0 ; i<=n ; i++)
do
if (($i % 2==0))
then
s1=$(($s1+$i))
else
then
s2=$(($s2+$i))
15



fi
done
5 – Viết chương trình tính tổng các số chẵn/lẻ chia hết cho 2, 4
hoặc 3,5
#!/bin/bash
echo “Nhap n”
Read n
s1=0
s2=0
for($i=0 ; $i<=n ; $i++)
do
if (($i % 2==0 && $i % 4==0))
then
s1=$(($s1+$i))
elif (($i % 3==0 && $i % 5==0))
then
s2=$(($s2+$i))
fi
done
6 – Giải và biện luận phương trình bậc nhất
#!/bin/bash
echo “Nhap so a”
read a
echo “Nhap so b”
read b
if (($a==0 && $b==0))
16



then
echo “Phuong trinh co vo so nghiem”
elif (($a!=0 && $b!=0))
then
x=$((-$b/$a))
echo “Phuong trinh co nghiem $x”
else
echo “Phuong trinh vo nghiem”
fi
exit 0
7 – Giải và biện luận phương trình bậc hai
!#/bin/bash
echo “Nhap a”
read a
echo “Nhap b”
read b
echo “Nhap c”
read c
delta=$(($(b*b) – 4*$a*$c))
if (($delta <0))
then
echo “Phuong trinh vo nghiem”
elif (($delta =0))
then
x=$((-$b/$(2*a)))
echo “Phuong trinh co nghiem kep $x”
17



else
then
x1=$(( (-$b+sqrt($delta) / $(2*a))))
x2=$(( (-$b - sqrt($delta) / $(2*a))))
echo “Phuong trinh co 2 nghiem $x1,$x2”
fi
exit 0
8 – Tìm hai số lớn nhất và nhỏ nhất trong mảng vừa nhập
#/bin/bash
# nhập đọc một mảng
function input()
{
echo -n "n= "
read n
for ((i=0; ido
echo -n "a[$i] " =
read a[$i]
done
}
#so sánh hai số lấy số max
function max2nums()
{
if [ "$1" -gt "$2" ]; then
max1=$1
echo $1
else
max1=$2
echo $2
fi

return $max1
18


}
#tìm số lớn nhất trong mảng
function maxs()
{
max=${a[0]}
for ((i=1; ido
max=$(max2nums ${a[$i]} $max)
done
echo "max = $max"
}
input
maxs
exit $?
9 – Đếm số dòng trong một đoạn văn
#!/bin/bash
echo “Chuong trinh dem so dong cua doan van”
{
n=0
while read line
do
n=$(($n + 1))
done
echo “So dong cua doan van la: $n”
}
exit 0

10 – Đếm số từ trong một đoạn văn
#!/bin/bash
19


echo “Chuong trinh dem so tu cua doan van”
{
n=0
while read line
do
for wd in$line
do
n=$(($n + 1))
done
done
echo “Tong so tu cua doan van la: $n”
}
exit 0

20



×