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.
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
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:
- bai_giang_he_dieu_hanh_chuong_01_cac_khai_niem_va_ky_nang_co.pdf