Bài giảng Hệ điều hành Unix - Chương 1: Các khái niệm và kỹ năng cơ bản

Lịch sử phát triển của Unix.

Lịch sử phát triển của Linux.

Mô hình phát triển

Những phiên bản của Linux.

Những tính năng cơ bản của Linux.

Kiến trúc của Linux.

Sự khác biệt giữa Linux và UNIX

So sánh Linux với Windows NT.

pdf 98 trang phuongnguyen 5400
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Hệ điều hành Unix - Chương 1: Các khái niệm và kỹ năng cơ bản", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Hệ điều hành Unix - Chương 1: Các khái niệm và kỹ năng cơ bản

Bài giảng Hệ điều hành Unix - Chương 1: Các khái niệm và kỹ năng cơ bản
CÁC KHÁI NIỆM 
VÀ KỸ NĂNG CƠ BẢN
Chương 01
Giới thiệu
Lịch sử phát triển của Unix.
Lịch sử phát triển của Linux.
Mô hình phát triển
Những phiên bản của Linux.
Những tính năng cơ bản của Linux.
Kiến trúc của Linux.
Sự khác biệt giữa Linux và UNIX
So sánh Linux với Windows NT.
Lịch sử phát triển Unix
 Giữa những năm 60, General Electric, Massachusetts
Institute for Technology và Bell Laboratories (AT&T)
cùng phối hợp tạo ra một HĐH mới gọi là Multics
(MULTiplexed Information and Computing System).
Đến năm 1969, chương trình Multics bị bãi bỏ.
 Tiếp theo, Kenneth Thomson, một người rất thích các
tính năng của Multics, nhưng nhận thấy nó quá phức
tạp và tìm cách đạt các mục tiêu cơ bản của Multics
nhưng bằng con đường đơn giản hơn. Năm 1969,
phiên bản đầu tiên của Unix gọi là Unics (Uniplexed
Information and Computing System) được xúc tiến
xây dựng.
 Năm 1973, hệ thống được viết lại bằng ngôn ngữ C.
Kể từ đó, Unix trở thành hệ điều hành được sử dụng
rộng rãi nhất có tính khả chuyển cao. Năm 1979, phiên
bản 7 của Unix được phát hành và là hệ điều hành
gốc cho tất cả các hệ thống kiểu Unix sau này.
Lịch sử phát triển Unix(t.t.)
 Vào thời điểm trên, cộng đồng các trường đại học và 
học viện, đứng đầu là Berkeley, phát triển một nhánh 
khác gọi là Berkeley Software Distribution (BSD), 
trong khi AT&T tiếp tục phát triển Unix dưới tên gọi là 
System III, System V, System VII.
 Trong thị trường, System V là phiên bản thành công 
và nhiều nhà cung cấp phần cứng đã hướng tới sản 
phẩm này của AT&T.
 Hầu hết các phiên bản Unix đều thuộc quyền sở hữu 
và được bảo vệ bởi từng nhà cung cấp phần cứng 
tương ứng, ví dụ Sun Solaris là một phiên bản của 
System V. Trong khi, ba phiên bản của BSD cuối cùng 
đã trở thành mã nguồn mở: FreeBSD (dễ cài cho PC), 
NetBSD (đa nền tảng) và OpenBSD (có tính bảo mật 
cao).
Lịch sử phát triển của Linux.
 Linux 1.0 chính thức được phát hành vào năm
1994.
 Nó được phát triển từ một đề án có tên là
Minix (một phiên bản của Unix).
 Linux là một hệ điều hành mở và miễn phí,
phát triển trên mạng Internet.
 Kernel của Linux được phân phối dưới
license của GNU GPL (General Public License)
và mã nguồn của nó được phân phối tự do tới
mọi người.
 Phiên bản kernel cuối hiện nay là 4.22 (công
bố ngày 4/3/2019)
Mô hình phát triển
Những phiên bản của Linux.
 Phiên bản gồm có phân phối do nhà sản xuất và ấn
bản(version).
 Tập hợp các phần mềm (Software Packages)
 Chương trình cài đặt (Installer)
 Các sửa đổi của riêng nhà sản xuất (Re-configure)
 Trình quản lý và cập nhật gói phần mềm (Update/Patch)
 Các phần mềm thương mại khác (Commercial Software)
 Tài liệu hướng dẫn, hỗ trợ người dùng (User Guide)
 Những phiên bản thường gặp như:
 RedHat
 CentOS
 Ubuntu
 Mandrake
 SuSE
 Debian
 Slackware
 Knoppix
 Lindows
 Ở Việt Nam có Linux VN và VietKey Linux
Các đặc tính cơ bản của Linux.
 Đa tiến trình.
 Tốc độ cao.
 Bộ nhớ ảo (Partition Swap).
 Sử dụng chung thư viện.
 Sử dụng các chương trình xử lý văn bản.
 Sử dụng giao diện cửa sổ.
 Samba.
 Network Information Service (NIS).
Các đặc tính cơ bản(t.t.)
 Lập lịch hoạt động.
 Sao lưu dữ liệu.
 Hỗ trợ nhiều ngôn ngữ lập trình.
 Linux là một HĐH 32-bit, có phiên bản 64-bit.
 Linux thích hợp cho những người muốn
nghiên cứu HĐH chuyên nghiệp và là công cụ
rất tốt cho việc đào tạo trong các trường đại
học.
Kiến trúc của Linux.
Sự khác biệt giữa Linux & UNIX
 UNIX được phát triển với một chính sách
nghiêm ngặt.
 Mỗi người đều có thể tham gia phát triển
Linux.
 Không có tổ chức nào chịu trách nhiệm về
các phiên bản của Linux.
So sánh Linux & Windows NT.
 Kernel và môi trường.
 Khả năng tương thích.
 Hỗ trợ.
 Giá thành.
Giấy phép GNU – GPL (General Public 
License)
 Giấy phép phần mềm mã nguồn mở (Open Source – OS) cho
phép người dùng đọc, truy cập, thay đổi và làm lại mã nguồn của
một sản phẩm phần mềm (theo tổ chức OSI – Open Source
Initiative). Các giấy phép phần mềm được OSI phê chuẩn và
quản lý tại  Xem thêm chi tiết trong
 Mỗi loại giấy phép có những điều khoản quy định riêng. Ví dụ:
BSD Licensing chỉ dài 1 trang với 3 điều khoản cần phải tuân thủ
nhưng trong khi đó thì Mozilla Public License 1.1 dài đến 12
trang đề cập mọi thứ từ việc định nghĩa thuật ngữ đến cách thức
áp dụng giấy phép cho chính phủ.
 Một trong những khoản quan trọng trong OS Licensing là: Nếu ta
thay đổi mã nguồn thì phải lập lại tài liệu về các thay đổi và đính
kèm mã nguồn theo phần mềm.
 Không được thông báo bản quyền của mình (copyright) mặc dù
đã thay đổi mã nguồn của chương trình (Xem thêm thông tin tại
 Người ta còn nói GNU GPL là “Copyleft” để thay cho khái niệm
“Copyright”.
1. Cài đặt và cứu hộ (trên VMWare)
Yêu cầu cài đặt Linux.
Quá trình cài đặt.
Login và Logout.
Cú pháp lệnh.
Những lệnh thông thường.
Các mức hoạt động của hệ thống.
Phục hồi mật khẩu cho user quản trị.
GRUB
Yêu cầu cài đặt Linux
Trước khi cài đặt cần chuẩn bị những phần sau:
 Yêu cầu tổng quát về phần cứng.
 Mouse.
 Đĩa cứng.
 Video display
 Networ Card.
 Chia partition.
Quá trình cài đặt.
Có thể cài đặt CentOS 7 từ:
 DVDROM/ISO file.
Quá trình cài đặt có 2 giao diện: đồ họa và
text.
Quá trình cài đặt (t.t.)
Chọn chế độ cài đặt:
Lựa chọn bản cài đặt
Lựa chọn bản cài đặt
1.2 Làm quen với Linux
 Login: 
 Password: 
 Khi login vào sẽ hiện như sau:
• [tênđăngnhập@tênmáy thưmục]dấunhắclệnh
• Ví dụ: [root@server01 home]#
 Có 2 dạng dấu đợi lệnh :
• Dạng $ cho người dùng thường.
• Dạng # cho người dùng quản trị (root).
 Thoát khỏi user hiện hành : exit hoặc 
logout.
Cú pháp lệnh.
 Command [options] [paramaters]
 Ví dụ :
#ls –l /etc
Những lệnh thông thường.
 who : Cho biết người dùng đang đăng nhập.
 tty : Xác định tập tin tty mình đang login 
vào.
 date : Hiển thị ngày giờ hệ thống.
 cal : Lịch.
 finger : Hiển thị thông tin người dùng.
 chfn : Thay đổi thông tin người dùng.
 head : Xem nội dung tập tin từ đầu.
 tail : Xem nội dung từ cuối tập tin.
 w : Xem CT người dùng đang thực hiện.
Những lệnh thông thường (t.t.)
 passwd : Dùng để đổi mật khẩu.
 su : Dùng chuyển sang user khác.
 Cú pháp : #su [ - ] [tên-user]
• Dấu - sử dụng biến môi trường của user mới.
 man : Xem cú pháp lệnh.
• Cú pháp : #man [tên lệnh]
 hostname : Xem và đổi tên máy.
Các mức hoạt động của hệ thống.
 Init 6 : khởi động lại hệ thống.
 Init 5 : giao tiếp với người dùng bằng chế độ đồ
họa (X Window).
 Init 4 : chưa sử dụng.
 Init 3 : dành cho người sử dụng.
 Init 2 : dành cho người sử dụng.
 Init 1 : dành cho người thường sửa lỗi hệ thống
 Init 0 : shutdown hệ thống.
Phục hồi mật khẩu cho user quản trị
 Khởi động máy.
 Khi GRUB Screen hiển thị ta chọn phím e để edit boot
loader(nếu ta có đặt mật khẩu cho GRUB thì nhập mật
khẩu vào).
Phục hồi mật khẩu cho user quản trị
Phục hồi mật khẩu cho user quản trị
Tiếp theo thực hiện như sau:
Tiếp theo thực hiện các lệnh sau:
sh-4.2#touch /.autorelabel
sh-4.2#mount –o remount,ro /
sh-4.2#exit
exit
switch_root#exit
Phục hồi mật khẩu cho user quản trị
1.3 HỆ THỐNG TẬP TIN
Nội dung
 Filesystem.
 Các thư mục trên Linux.
 Khái niệm về thiết bị.
 Partition.
 Định dạng partition.
 Những khái niệm cơ bản về filesystem.
 Những filesystem được hỗ trợ trong Linux.
 Kiểm tra filesystem.
 Mount filesystem.
 Xem thông tin filesystem.
 Cấu trúc cây thư mục.
 Các thao tác trên tập tin và thư mục.
 Các chuẩn chuyển hướng trong linux.
 Lưu trữ tập tin và thư mục.
 Các quyền truy xuất trên file.
 Thay đổi quyền hạn trên tập tin.
 Các đối tượng truy xuất trên tập tin.
Filesystem
 Là cách tổ chức dữ liệu trên thiết bị lưu trữ.
 Hệ thống tập tin là một phần cơ bản của hệ
điều hành Linux.
 Một hệ thống tập tin là một thiết bị mà nó đã
được định dạng để lưu trữ tập tin và thư mục.
Các thư mục trên Linux
Khái niệm về thiết bị.
 Có 2 loại thiết bị: block device và character
device.
 Block device: được gọi là Random Access
Device như đĩa cứng.
 Character device: keyboard, audio device.
 Master Boot Record (MBR) chứa Bootloader
code và partition table.
 Mỗi thiết bị trong Linux được xem là một tập
tin lưu trong thư mục /dev.
Khái niệm về thiết bị (t.t.)
 Đĩa cứng SCSI, SATA, USB : sda, sdb 
 Đĩa cứng IDE : hda, hdb 
 Đĩa mềm : fd0, fd1 
 Đĩa CDROM/DVDROM: cdrom
Phân vùng đĩa
 Linux hỗ trợ 4 primary partition.
 Mỗi partition là một thiết bị có một tập tin
tương ứng trong thư mục /dev.
 Tên gọi của chúng bắt nguồn từ tên ổ đĩa và
số thứ tự từ 1. Primary có số thứ tự từ 1 ->4,
logical từ 5 trở đi.
 Lệnh fdisk dùng để tạo partition.
Phân vùng đĩa (t.t.)
Ví dụ về cách tạo một partition.
Phân vùng đĩa (t.t.)
Xem phân vùng đĩa:
Định dạng phân vùng đĩa
Cú Pháp :
#mkfs –t 
Hoặc
#mkfs.ext4 /dev/hda1
Ví dụ : 
#mkfs –t ext2 /dev/hda1
Các khái niệm cơ bản về filesystem
 Trong Linux xem file như là một inode, thư
mục là một file chứa những entry.
 Khi tạo một filesystem, những loại khác được
tạo trong filesystem, gồm 3 phần :
• Superblock
• Inode
• Storageblock
Các khái niệm cơ bản về 
filesystem(t.t.)
 Superblock: là cấu trúc được tạo tại vị trí bắt
đầu filesystem. Lưu trữ các thông tin :
• Kích thước và cấu trúc filesystem.
• Thời gian cập nhật filesystem cuối cùng.
• Thông tin trạng thái.
 Inode: lưu những thông tin về tập tin và thư
mục được tạo trong filesystem. Mỗi tập tin tạo
ra sẽ được phân bổ một inode lưu thông tin
sau :
• Loại tập tin và quyền hạn truy cập.
• Người sở hữu tập tin.
Các khái niệm cơ bản về 
filesystem(t.t.)
• Kích thước và số hard link đến tập tin.
• Ngày và giờ chỉnh sửa tập tin lần cuối cùng.
• Vị trí lưu nội dung tập tin trong filesystem.
 Storageblock: là vùng lưu dữ liệu thực sự của
tập tin và thư mục. Nó chia thành những
datablock. Mỗi block chứa 1024 ký tự.
• Datablock của tập tin thường lưu inode của tập tin và nội
dung của tập tin.
• Datablock của thư mục lưu danh sách những entry gồm
inode number, tên tập tin và những thư mục con.
Các khái niệm cơ bản về 
filesystem(t.t.)
Các loại tập tin : trong Linux tập tin dùng
lưu trữ dữ liệu, bao gồm thư mục và thiết
bị lưu trữ. Các tập tin trong Linux được
chia làm 3 loại chính :
 Tập tin dữ liệu : là dữ liệu lưu trữ trên các
thiết bị như đĩa cứng, cdrom.
 Thư mục : chứa các thông tin của những tập
tin và thư mục con.
 Tập tin thiết bị : Hệ thống Linux xem các thiết
bị như là các tập tin. Ra vào dữ liệu trên các
tập tin này chính là ra vào dữ liệu cho thiết bị.
Các khái niệm cơ bản về 
filesystem(t.t.)
 Link (Liên kết): là cách tạo ra một tập tin thứ
hai cho một tập tin đã tồn tại.
 Cú pháp : #ln [-s] 
 Ví dụ : #ln /usr/bill/testfile /usr/tim/testfile.
• Hard Link: là một liên kết trong cùng hệ thống tập
tin với hai inode entry tương ứng trỏ đến cùng một
nội dung vật lý.
• Symbolic Link: là một liên kết khác mà không sử
dụng inode entry cho việc liên kết. Tùy chọn –s của
lệnh ln cho phép tạo một symbolic link.
Những filesystem được hỗ trợ trong Linux
 VFS
 Ext2
 Ext3
 Vfat
 Iso9660
 
Kiểm tra filesystem.
 Khi filesystem bị lỗi dùng lệnh sau để sửa lại
Cú pháp : #fsck 
 Ví dụ :
#fsck –V –a /
Kiểm tra filesystem (t.t.)
Tùy chọn Mô tả
-A Duyệt khắp tập tin /etc/fstab và cố gắng kiểm tra tất cả các hệ
thống tập tin chỉ trong một lần duyệt.
-V Chế độ chi tiết. Cho biết lệnh fsck đang làm gì.
-t fs_type Xác định loại hệ thống tập tin cần kiểm tra.
-a Tự động sửa chữa những hỏng hóc trong hệ thống tập tin mà
không cần hỏi.
-l Liệt kê tất cả các tên tập tin trong hệ thống tập tin.
-r Hỏi trước khi sửa chữa hệ thống tập tin.
-s Liệt kê các superblock trước khi kiểm tra hệ thống tập tin.
Bảng mô tả các tùy chọn :
Mount filesystem.
 Mount hệ thống tập tin :
 Cú pháp :
• #mount –t 
 Một số tùy chọn của lệnh mount:
• -f : làm cho tất cả mọi thứ đều hiện ra, song nó chỉ gây ra động
tác giả.
• -v : chế độ chi tiết, cung cấp thông tin về những gì mount định
thực hiện.
• -w : mount hệ thống tập tin với quyền đọc và ghi.
• -r : mount hệ thống tập tin với quyền đọc.
• -t fs_type : xác định hệ thống tập tin đang được mount : ext2,
ext3,vfat ...
• -a : mount tất cả những hệ thống tập tin được khai báo trong
/etc/fstab.
• -o remount : chỉ định việc mount lại 1 filesystem nào đó.
Là thiết bị vật lý như 
/dev/cdrom, /dev/fd0 
Là vị trí thư mục trong 
cây thư mục.
Mount filesystem (t.t.)
 Umount hệ thống tập tin:
 Cú pháp :
• #umount 
• #umount -a
• #umount -t fs_type
 Lưu ý : Lệnh umount không loại bỏ gắn kết
những hệ thống tập tin đang sử dụng.
Mount filesystem (t.t.)
 cột 1: chỉ ra thiết bị hoặc hệ thống tập tin cần mount.
 cột 2: xác định mount point (chữ none sử dụng cho các
hệ thống tập tin đặc biệt như swap).
 cột 3: chỉ ra loại filesystem như : vfat, ext2 
 cột 4: các tùy chọn phân cách nhau bởi dấu phẩy.
 cột 5: xác định thời gian để lệnh dump sao chép (backup)
hệ thống tập tin.
 cột 6: khai báo cho lệnh fsck biết thứ tự kiểm tra các hệ
thống tập tin khi khởi động hệ thống.
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 1
None /dev/pts devpts gid=5,mode=620 0 0
...
 File /etc/fstab
Di chuyển filesystem.
 Gắn ổ đĩa vật lý, tạo một partition.
 Khởi động lại máy.
 Định dạng partition.
#mkfs –t ext2 /dev/hda4
 Tạo một thư mục /mnt/newpartition. Mount
partition vào thư mục này.
#mkdir /mnt/newpartition
#mount /dev/hda4 /mnt/newpartition
Di chuyển filesystem (t.t.)
 Copy tất cả dữ liệu vào thư mục này
#cp –a /home/* /mnt/newpartiton
 Định nghĩa mount partition vừa tạo vào thư 
mục /home một cách tự động (/etc/fstab).
 Mount partiton
#umount /mnt/newpartition
#mount /dev/hda4 /home
Xem thông tin filesystem
 Lệnh df để liệt kê hệ thống tập tin đang được 
sử dụng trong hệ thống.
 Cú pháp : #df 
• -l : Liệt kê filesystem.
• -h : In theo dạng MB, GB.
 Lệnh du ước lượng dung lượng sử dụng của 
tập tin(file)
Cấu trúc cây thư mục.
/
/home
/usr/local
/usr
/
home etc
local bin
usr
Ổ đĩa vật lý Cấu trúc logic hệ thống tập tin
Một số tác vụ trên tập tin và thư mục(t.t.)
 Đường dẫn tương đối.
 Đường dẫn tuyệt đối.
 Các thao tác trên thư mục.
• pwd : Xác định vị trí thư mục hiện hành.
Cú pháp : #pwd
• cd : Thay đổi thư mục hiện hành.
Cú pháp : #cd [directory]
• ls : Liệt kê nội dung thư mục.
Cú pháp : #ls [option] [directory]
• mkdir : Tạo thư mục.
Cú pháp : #mkdir 
Một số tác vụ trên tập tin và thư mục(t.t.)
• rmdir : Xóa thư mục rỗng.
Cú pháp : #rmdir 
 Các thao tác trên tập tin :
• cat : Dùng hiển thị nội dung tập tin.
Cú pháp : #cat [filename2]
Lệnh cat còn dùng để tạo tập tin. Ta có thể dùng
dấu > hoặc >> (dấu > sẽ tạo mới, dấu >> sẽ nối tiếp
vào nội dung có sẵn). Nhấn CTRL-d để kết thúc.
• more : Xem nội dung tập tin theo từng trang.
Cú pháp : #more 
Một số tác vụ trên tập tin và thư 
mục(t.t.)
 cp : Sao chép tập tin.
Cú pháp : #cp 
 mv : Di chuyển và đổi tên tập tin.
Cú pháp : #mv 
 rm : Xóa tập tin, thư mục.
Cú pháp : #rm [option] 
 find : Tìm kiếm tập tin.
Cú pháp : #find [path-list] [expression]
Một số tác vụ trên tập tin và thư mục(t.t.)
• Một số tùy chọn của lệnh find:
– -name : tìm tập tin.
– -size n : tìm theo kích thước tập tin.
– -user uname : tìm các tập tin được sở hữu bởi uname.
 grep : Tìm một chuỗi trong nội dung tập tin.
Cú pháp : #grep [expression] [filename]
 touch : Tạo và thay đổi nội dung tập tin.
Cú pháp : #touch 
 dd : Sao chép và chuyển đổi tập tin.
Cú pháp : #dd if= of=
Các chuẩn chuyển hướng trong Linux
 Có 3 loại :
• Nhập chuẩn : Dữ liệu được nhập từ bàn phím.
• Xuất chuẩn : Dữ liệu xuất ra màn hình.
• Lỗi chuẩn : Luồng dữ liệu thông báo lỗi.
 Chuyển hướng : 
• Chuyển hướng nhập : #command < file
• Chuyển hướng xuất : #command > file
• Đường ống (Pipe) : hướng xuất của lệnh này là 
hướng nhập của lệnh kia.
Cú pháp : #command1 | command2 | 
Lưu trữ tập tin và thư mục.
 gzip/gunzip : Nén và giải nén các tập tin.
• Cú pháp : gzip/gunzip [option] 
– -c : Chuyển thông tin ra màn hình.
– -d : Giải nén, -d tương đương gunzip.
– -h : Hiển thị giúp đỡ.
 tar : Gom và bung những tập tin, thư mục.
• Cú pháp : #tar [option] 
– -cvf : Gom tập tin/thư mục.
– -xvf : Bung tập tin/thư mục.
Các quyền truy xuất trên file
 r: Read Only Thuộc tính chỉ đọc (không có quyền ghi/xóa)
 w: Write Thuộc tính ghi (hiệu chỉnh nội dung)
 x: Execute Thuộc tính thực thi (chạy chương trình)
 -: None Không có quyền trên đối tượng
 Hình dưới trình bày nội dung các thư mục và tập tin được thiết
lập quyền (set permission) trong thư mục cá nhân (Home
Directory) của người dùng tên là nev
Các quyền truy xuất trên file (t.t.)
 Cờ đầu tiên chỉ đặc tính của file. Nếu là “-” có nghĩa
đây là tập tin thông thường. Còn nếu “d” thì đây là
một Directory (thư mục). Một số trường hợp khác như
pipe là “p”, còn socket là “s”, “l” là tập tin liên kết.
 Có 3 đối tượng chính là {owner, group, other} và mỗi
đối tượng ứng với 3 quyền cụ thể {read, write,
execute}.
 Để thiết lập (thay đổi) thuộc tính bảo mật cho một thư
mục (hoặc một tập tin), trên HĐH Linux cung cấp cho
ta một lệnh như sau CHMOD Phải thực hiện bằng
quyền của ROOT ACCOUNT
Thay đổi quyền hạn trên tập tin
 $chmod [nhóm-người-dùng] [thao-tác] [quyền-hạn] [tên-tập-tin] 
 $chown [tên-user:tên-nhóm] [tên-tập-tin/thư-mục] 
 $chgrp [nhóm-sở-hữu] [tên-tập-tin/thư-mục] 
Nhóm-người-dùng Thao tác Quyền
u – user + : thêm quyền r – read
g – group - : xóa quyền w – write
o – others = : gán quyền bằng x – excute
a – all
Các đối tượng truy xuất trên file
 Khi tạo ra một thư mục (hoặc một file)  bản thân ta 
là người sở hữu (Owner)
 Mặc định quyền được thiết lập là read - write ~ rw
 Dựa vào quyền người tạo file thôi không đủ 
Trường hợp muốn chia sẻ file cho người khác hoặc 
cộng đồng sử dụng thì phải dựa vào quyền của nhóm 
(Group) hoặc người khác (other)
• Ví dụ: (Giả sử tập tin ví dụ testfile nằm tại thư mục hiện tại)
#ls -l testfile
rwx rw- --- 1 root books 444 Feb 14 22:24 testfile
 Dựa vào ví dụ trên ta nhận xét rằng nhóm (Group) 
books được quyền đọc, ghi (rw), nhưng không có 
quyền thực thi (x). Đối tượng Other không có quyền 
truy xuất gì (---)
 Một số lệnh về đăng nhập và nhóm tài khoản (tham 
khảo thêm bằng lệnh man)
1.4 Xử lý văn bản và lập trình shell
1.4.1 Xử lý văn bản
1.4.2 Lập trình shell
Tổng quan chương trình shell
Giới thiệu về shell scripting.
Những tính năng của shell.
Cấu hình môi trường đăng nhập.
Điều khiển Shell.
Cú pháp ngôn ngữ shell.
Tổng quan chương trình SHELL
 Shell là chương trình được thực thi khi người
dùng đăng nhập vào hệ thống.
 Shell Linux hỗ trợ nhiều tập lệnh mà có thể
kết hợp chúng lại thành một script hay thành
một chương trình có thể sử dụng nhiều lần.
 Thiếu sót chính của ngôn ngữ script là những
lệnh này phải thông dịch lại mỗi lần script
thực thi.
 Linux cung cấp nhiều tiện ích là những trình
thông dịch cho ngôn ngữ C, C++, debugger,
công cụ tổ chức project và công cụ quản lý
code.
Giới thiệu về shell scripting
 Shell là một cầu nối giao tiếp giữa người dùng
và hệ điều hành Linux.
 Shell có sẵn như Bourne Again Shell (bash),
Public Domain Korn Shell (pdksh) và tcsh
shell.
 Mỗi user sẽ được copy một shell để làm việc
với kernel.
Giới thiệu về shell scripting (t.t.)
 Login vào máy tính
• hiển thị dấu shell.
• user gợi ý một lệnh.
• shell đọc lệnh.
• shell tìm kiếm tập tin tương ứng trong cây thư
mục, shell tải tiện ích vào bộ nhớ.
• shell thực thi tiện ích.
• trở lại dấu nhắc.
 Nếu tập tin không tìm thấy, shell đưa ra một
thông báo lỗi và hiển thị lại dấu nhắc.
Giới thiệu về shell scripting (t.t.)
 Chúng ta có thể thay đổi shell mặc định sang
một shell khác với sự trợ giúp của lệnh chsh.
[root@localhost /etc]#chsh
Changing shell for root
Password:******
New shell [/bin/bash]: /bin/sh
Shell changed
 Shell scripts : Các tập tin chứa nhiều lệnh và
có thể thực thi được gọi là shell scripts.
Đặc điểm của của shell
 Xử lý tương tác (Interative processing).
 Chạy nền (Background).
 Chuyển hướng (Redirection).
 Ống dẫn (Pipe).
 Tập tin lệnh (Shell scripts).
 Biến (Shell variables).
 Dùng lại các lệnh đã thực hiện (Command 
history).
 Cấu trúc lệnh như ngôn ngữ lập trình.
 Tự động hoàn tất tên tập tin hoặc lệnh.
 Bí danh cho lệnh (Command alias).
Cấu hình môi trường đăng nhập.
 Khi đăng nhập vào hệ thống, người dùng sẽ
làm việc trong môi trường do Linux định
nghĩa sẵn. Tuy nhiên, chúng ta có thể thay đổi
các thiết lập này theo ý riêng của mình. Môi
trường làm việc gồm hai thành phần :
• Môi trường terminal.
• Môi trường shell.
Lưu ý : Muốn xác lập những biến môi trường, chúng ta thay đổi trong
tập tin .bash_profile (nếu chạy shell bash), trong tập tin .logon (nếu chạy
shell C) và trong tập tin .profile (nếu chạy shell Bourne).
Điều khiển Shell.
 Điều khiển Shell từ dòng lệnh :
• Chúng ta sử dụng nhiều lệnh trên một dòng cách
nhau bằng dấu chấm phẩy (;).
 Điều khiển Shell từ tập tin lệnh :
• Cách 1: #/bin/sh filename
Ví dụ : #/bin/sh filename
• Cách 2: Cấp quyền thực thi (execute) cho tập tin.
#chmod +x filename
#./path/filename
Cú pháp ngôn ngữ shell.
 Biến môi trường.
 Những biến xây dựng sẵn.
 Những biến do user định nghĩa.
 Cách tạo biến : Những biến không cần phải 
khai báo.
=
 Cách truy cập những giá trị của biến.
Variable1=$(variable2)
Cú pháp ngôn ngữ shell (t.t.)
 Nhập giá trị cho một biến.
#read variable
 Biến cục bộ và toàn cục.
 Biến môi trường.
• HOME : Chứa thư mục người dùng.
• PATH : Danh sách thư mục tìm kiếm.
• PS1 : Dấu nhắc hiển thị lệnh.
 Những biến được xây dựng sẵn.
• $# : Tổng số tham số.
• $0 : Tên tập tin lệnh.
• $* : Danh sách tham số đầy đủ.
Cú pháp ngôn ngữ shell (t.t.)
 Cấu trúc rẽ nhánh if :
if 
then
command1
else
command2
fi
Cú pháp ngôn ngữ shell (t.t.)
if ; then
command1
elif ; then
command2
else
command3
fi
Cú pháp ngôn ngữ shell (t.t.)
 Cấu trúc lựa chọn case :
case in
value1)
command1 ;;
valueN)
commandN ;;
esac
Cú pháp ngôn ngữ shell (t.t.)
 Lệnh kiểm tra :
[expression]
• Kiểm tra tập tin :
–r file : đúng nếu file tồn tại và có thể đọc.
–w file : đúng nếu file tồn tại và có thể ghi.
–x file : đúng nếu file tồn tại và có thể thực thi.
–f file : đúng nếu file tồn tại.
–d file : đúng nếu file là một thư mục .
–e file : đúng nếu file tồn tại trên đĩa.
Cú pháp ngôn ngữ shell (t.t.)
• So sánh hai số :
n m
• 
–eq : giá trị của n và m bằng nhau.
–ne : giá trị của n và m không bằng nhau.
–gt : giá trị của n lớn hơn m.
–lt : giá trị của n nhỏ hơn m.
–ge : giá trị của n lớn hơn hay bằng m.
–le : giá trị n nhỏ hơn hay bằng m.
Cú pháp ngôn ngữ shell (t.t.)
• So sánh hai chuỗi :
p q
• primitive :
= : kiểm tra rằng hai chuỗi bằng nhau.
!=: kiểm tra hai chuỗi không bằng nhau.
 p1
–z : đúng nếu chuỗi p1 có chiều dài là 0.
–n : đúng nếu chuỗi p1 có chiều dài khác 0.
Cú pháp ngôn ngữ shell (t.t.)
• So sánh toán tử logic :
! : để phủ định một mệnh đề logic.
–a : AND.
–o : OR.
Cú pháp ngôn ngữ shell (t.t.)
 Lệnh expr : Trong biểu thức, các toán tử và 
toán hạng phải cách nhau bởi khoảng trắng
| hoặc = bằng nhau
& và > lớn hơn
= lớn hơn hay bằng
<= nhỏ hơn hay bằng
!= khác nhau
+ cộng - trừ
\* nhân / chia
 expr ` ` : hỗ trợ tính toán trên số
thực.
Cú pháp ngôn ngữ shell (t.t.)
 Một vài cấu trúc lặp :
• For 
• While
• Until
 Vòng lặp for :
for variable in const1 const2 
do
commands
done 
 Có thể thay thế const1 const2 constn bằng 
từ khóa: seq const1 constn
Cú pháp ngôn ngữ shell (t.t.)
 Vòng lặp while :
while expression
do
command
done 
 Vòng lặp until :
until expression
do
commands
done 
Cú pháp ngôn ngữ shell (t.t.)
 Lệnh break thoát khỏi vòng lặp.
 Lệnh exit thoát khỏi vòng lặp trở lại dấu nhắc
shell.
 Lệnh continue dùng để quay lại vòng lặp kế
mà không thực hiện các lệnh còn lại.
Cú pháp ngôn ngữ shell (t.t.)
 Lệnh sleep : Dùng để tạm ngừng chương trình
thực thi trong một giai đoạn thời gian nào đó.
Cú pháp : sleep time
Ví dụ : sleep 60
Cú pháp ngôn ngữ shell (t.t.)
 Cách thực thi shell script :
#bash wonderful
#!/bin/bash
#chmod u+x wonderful
#./wonderful 
Cú pháp ngôn ngữ shell (t.t.)
 Khai báo hàm
• Function_name ()
{
Lệnh;
}
 Gọi hàm
Function_name 

File đính kèm:

  • pdfbai_giang_he_dieu_hanh_chuong_01_cac_khai_niem_va_ky_nang_co.pdf