Tài liệu Unix

Dưới đây là danh sách các nguồn hữu ích về Unix/Linux. Bạn nên tham khảo chúng để hiểu sâu hơn những chủ đề chúng tôi đã đề cập trong loạt bài này.  Tutorialspoint − Loạt bài hướng dẫn của chúng tôi xây dựng dựa trên nguồn này.  Bell Labs − Quá trình tạo Hệ điều hành UNIX. Cung cấp tổng quan và lịch sử của Hệ điều hành UNIX.  BSD UNIX − FreeBSD là một Hệ điều hành UNIX bậc cao cho Server, desktop, và các Platform hiện đại.  Linux Online − Linux là một Hệ điều hành Unix-type miễn phí được tạo lần đầu bởi Linus Torvalds với sự hỗ trợ của các nhà lập trình trên toàn Thế giới.  Unix @ Wikipedia − Một miêu tả ngắn gọn về Hệ điều hành Unix.  The Unix Forums − Một diễn đàn cho những người yêu Unix. Chia sẻ ý tưởng và suy nghĩ của bạn với các Chuyên gia về Unix

pdf161 trang | Chia sẻ: truongthinh92 | Lượt xem: 1824 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Tài liệu Unix, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
© vietjack.com Trang chia sẻ các bài học online miễn phí Page 122 Sử dụng từ khóa lớp ký tự chữ cái, lệnh này chỉ in những dòng trong tệp /etc/syslog.conf mà bắt đầu với một ký tự chữ cái. $ cat /etc/syslog.conf | sed -n '/^[[:alpha:]]/p' authpriv.* /var/log/secure mail.* -/var/log/maillog cron.* /var/log/cron uucp,news.crit /var/log/spooler local7.* /var/log/boot.log Bảng sau là một danh sách đầy đủ của các từ khóa lớp ký tự trong GNU sed. Lớp ký tự Miêu tả [[:alnum:]] Thuộc chữ cái-số [a-z A-Z 0-9] [[:alpha:]] Bảng chữ cái [a-z A-Z] [[:blank:]] Các ký tự khoảng trống (spaces hoặc tabs) [[:cntrl:]] Các ký tự điều khiển [[:digit:]] Các số [0-9] [[:graph:]] Bất kỳ ký tự nhìn thấy nào (trừ các khoảng trống trắng) [[:lower:]] Các ký tự viết thường [a-z] [[:print:]] Các ký tự có thể in được (các ký tự không phải ký tự điều khiển) [[:punct:]] Các ký tự dấu chấm câu [[:space:]] Khoảng trống trắng [[:upper:]] Các ký tự viết hoa [A-Z] Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 123 [[:xdigit:]] Các ký số thập lục phân [0-9 a-f A-F] Tham chiếu & trong Unix/Linux Siêu ký tự & trong sed biểu diễn nội dung của mẫu mà được kết nối. Ví dụ, giả sử bạn có một tệp gọi là phone.txt chứa đầy các số điện thoại, như sau: 5555551212 5555551213 5555551214 6665551215 6665551216 7775551217 Bạn muốn tạo một code khu vực (3 ký số đầu tiên) được bao quanh bởi dấu ngoặc đơn để dễ dàng hơn khi đọc. Để thực hiện điều này, bạn có thể sử dụng ký tự thay thế &, giống như: $ sed -e 's/^[[:digit:]][[:digit:]][[:digit:]]/(&)/g' phone.txt (555)5551212 (555)5551213 (555)5551214 (666)5551215 (666)5551216 (777)5551217 Ở đây trong phần mẫu bạn đang kết nối 3 ký số đầu tiên, và sau đó sử dụng & bạn đang đổi chỗ cho 3 ký số này với dấu ngoặc đơn bao quanh. Sử dụng nhiều lệnh sed trong Unix/Linux Bạn có thể sử dụng nhiều lệnh sed trong một lệnh sed đơn như sau: $ sed -e 'command1' -e 'command2' ... -e 'commandN' files Tại đây, command1 tới commandN là các kiểu lệnh sed đã được bàn luận ở trên. Những lệnh này được áp dụng tới mỗi dòng trong một danh sách các file được cung cấp bởi các file. Sử dụng kỹ thuật tương tự, chúng ta có thể viết ví dụ số điện thoại trên như sau: Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 124 $ sed -e 's/^[[:digit:]]\{3\}/(&)/g' \ -e 's/)[[:digit:]]\{3\}/&-/g' phone.txt (555)555-1212 (555)555-1213 (555)555-1214 (666)555-1215 (666)555-1216 (777)555-1217 Ghi chú: Trong ví dụ trên, thay vì lặp lại các từ khóa lớp ký tự [[:digit:]] 3 lần, bạn đổi nó với \{3\}, mà có nghĩa là để kết nối Regular Expression ở trước 3 lần. Tại đây tôi sử dụng \ để xuống dòng, bạn nên gỡ bỏ nó trước khi chạy lệnh này. Tham chiếu ngược trong Unix/Linux Siêu ký tự & là hữu ích, nhưng hữu ích hơn là khả năng định nghĩa các khu vực cụ thể trong một Regular Expression để bạn có thể tham chiếu chúng trong các chuỗi đổi vị trí. Bằng việc định nghĩa các phần cụ thể của một Regular Expression, sau đó bạn có thể xem lại những phần này với một ký tự tham chiếu đặc biệt. Để tham chiếu ngược, đầu tiên bạn phải định nghĩa một khu vực và sau đó xem lại khu vực đó. Để định nghĩa một khu vực, bạn chèn ký tự dấu ngoặc đơn trong dấu chéo ngược quanh mỗi khu vực bạn quan tâm. Khu vực đầu tiên mà bạn bao quanh với dấu chéo ngược sau đó được tham chiếu bởi \1, khu vực thứ hai bởi \2, và tiếp tục. Giả sử phone.txt có các số liệu sau: (555)555-1212 (555)555-1213 (555)555-1214 (666)555-1215 (666)555-1216 (777)555-1217 Bây giờ bạn thử lệnh sau: $ cat phone.txt | sed 's/\(.*)\)\(.*-\)\(.*$\)/Area \ Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 125 code: \1 Second: \2 Third: \3/' Area code: (555) Second: 555- Third: 1212 Area code: (555) Second: 555- Third: 1213 Area code: (555) Second: 555- Third: 1214 Area code: (666) Second: 555- Third: 1215 Area code: (666) Second: 555- Third: 1216 Area code: (777) Second: 555- Third: 1217 Ghi chú:Trong ví dụ trên, mỗi Regular Expression bên trong dấu ngoặc đơn sẽ được tham chiếu ngược bởi \1, \2, . Tại đây, tôi sử dụng \ để xuống dòng, bạn nên gỡ bỏ chúng trước khi chạy lệnh. Cơ bản về hệ thống File trong Unix Một hệ thống file là một tập hợp logic của các file trên một vùng phân hoạch (partition) hoặc một đĩa. Một vùng phân hoạch là một nơi chứa thông tin và có thể tổ hợp thành một đĩa cứng nếu muốn. Đĩa cứng của bạn có thể có các vùng phân hoạch đa dạng mà thường chỉ chứa một hệ thống file, như một hệ thống file /home. Một hệ thống file một vùng phân hoạch cho phép duy trì và quản lý các hệ thống file khác nhau một cách logic. Mọi thứ trong Unix được xem xét như là một file, bao gồm các thiết bị vật lý như DVD-ROMs, USB, đĩa mềm, . Cấu trúc thư mục trong Unix/Linux Unix sử dụng một cấu trúc hệ thống file có thứ bậc, mà giống một cấu trúc cây từ trên xuống dưới, với root (/) tại cơ sở của hệ thống file và tất cả các thư mục khác trải ra từ đó. Một hệ thống file là một tập hợp của các file và thư mục mà có các đặc tính sau:  Nó có một thư mục gốc (/) mà chứa các file và thư mục khác.  Mỗi file và thư mục được xác định duy nhất bởi tên của nó, thư mục mà trong đó nó cư trú, và một sự nhận diện duy nhất, được gọi theo cách đặc trưng là inode. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 126  Theo quy ước, thư mục gốc có số inode là 2 và thư mục lost+found có số inode là 3. Số inode 0 và 1 không được sử dụng. Các số inode có thể được gửi bởi trình xác định trong chức năng -i của lệnh ls.  Nó có đặc tính khác nữa là tự chứa. Không có sự phụ thuộc giữa một hệ thống file này với một hệ thống file khác. Các thư mục có các mục đích riêng và thường giữ các kiểu thông tin giống nhau để việc đặt vị trí các file dễ dàng. Dưới đây là các thư mục mà tồn tại trên các phiên bản lớn của Unix. Thư mục Miêu tả / Nó là thư mục chính mà chỉ chứa các thư mục cần thiết ở cấp cao nhất trong cấu trúc file. /bin Vị trí này đặt các file có thể chạy được. Chúng có sẵn cho mọi người dùng. /dev Đây là các thiết bị điều khiển. /etc Các lệnh thư mục Supervisors, các file định cấu hình, các file định cấu hình đĩa, danh sách người dùng hợp lệ, ethernet, host, là nơi để gửi các thông điệp nghiêm trọng. /lib Chứa các file thư viện được chia sẻ và đôi khi các tệp liên quan đến Kernel. /boot Chứa các file để khởi động hệ thống (boot). /home Chứa thư mục chính cho các người sử dụng và các tài khoản khác. /mnt Sử dụng để gắn kết (mount) các hệ thống file tạm thời, như cdroom và đĩa mềm . /proc Chứa tất cả các tiến trình được đánh dấu như một file bởi số tiến trình hoặc thông tin khác mà là động lực của hệ thống. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 127 /tmp Giữ các file tạm thời được sử dụng giữa quá trình khởi động (boot) hệ thống. /usr Được sử dụng cho các mục đích hỗn hợp, hoặc có thể được sử dụng bởi nhiều người sử dụng. Bao gồm các lệnh về hành chính, các file được chia sẻ, các file thư viện, và các cái khác. /var Một thư mục đặc thù, chứa các file biến dài như các file đăng nhập và in và bất kỳ kiểu khác của file mà có thể chứa một số lượng biến của dữ liệu. /sbin Chứa các file (có thể chạy) nhị phân, thường cho quản lý hệ thống. Ví dụ như các tiện ích fdisk và ifconfig. /kernel Chứa các tệp kernel. Điều hướng hệ thống file trong Unix/Linux Bây giờ bạn đã hiểu các cơ sở của hệ thống file, bạn có thể bắt đầu điều hướng file bạn cần. Bảng dưới là các lệnh bạn sẽ sử dụng để điều hướng hệ thống. Lệnh Miêu tả cat filename Hiển thị một tên file. cd dirname Di chuyển bạn tới thư mục đã được xác định. cp file1 file2 Sao chép một file/thư mục tới vị trí đã được xác định. file filename Nhận diện kiểu file (nhị phân, văn bản, ). find filename dir Tìm một file/thư mục. head filename Chỉ phần bắt đầu của một file. less filename Trình duyệt thông qua một file từ cuối hoặc từ đầu. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 128 ls dirname Chỉ nội dung của thư mục đã được xác định. mkdir dirname Tạo một thư mục đã được định trước. more filename Trình duyệt thông qua một file từ đầu tới cuối. mv file1 file2 Di chuyển vị trí hoặc đặt lại tên của một file/thư mục. pwd Chỉ thư mục hiện tại mà người sử dụng hiện tại đang ở. rm filename Gỡ bỏ một file. rmdir dirname Gỡ bỏ một thư mục. tail filename Chỉ phần cuối của một file. touch filename Tạo một file trống hoặc sửa đổi các thuộc tính của một file.s đang tồn tại. whereis filename Chỉ vị trí của một file. which filename Chỉ vị trí của một file nếu nó trong PATH của bạn. Bạn có thể sử dụng Trang trợ giúp (Manpage Help) để kiểm tra cú pháp đầy đủ cho mỗi lệnh được đề cập ở đây. Lệnh df trong Unix/Linux Cách đầu tiên để quản lý không gian vùng phân hoạch là với lệnh df (viết tắt của disk free). Lệnh df -k hiển thị không gian đĩa sử dụng trong kilobyte, như hiển thị dưới đây: $df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/vzfs 10485760 7836644 2649116 75% / /devices 0 0 0 0% /devices $ Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 129 Một số các thư mục, như /devices, chỉ 0 kilobyte được sử dụng. Những file này là những hệ thống file đặc biệt, và mặc dù chúng cư trú ở trên đĩa dưới dấu gạch chéo, bởi chính chúng không chiếm dụng không gian của đĩa. output của df -k thường giống trên tất cả các hệ thống Unix. Dưới đây liệt kê những thứ mà nó bao gồm: Cột Miêu tả Filesystem Tên hệ thống file. kbytes Tổng số kilo byte có sẵn trên phương tiện lưu trữ used Tổng số kilo byte đã được sử dụng (bởi file). avail Tổng số kilo byte có sẵn cho sử dụng (còn lại chưa được sử dụng). capacity Phần trăm của tổng số không gian đã được sử dụng bởi các file. Mounted on Hệ thống file được gắn kết trên cái gì. Bạn có thể sử dụng chức năng -h (viết tắt của human readable) để hiển thị output trong một định dạng chỉ kích cỡ bằng lời chú giải theo cách dễ hiểu nhất. Lệnh du trong Unix/Linux Lệnh du (viết tắt của disk usage) cho bạn khả năng để xác định các thư mục để chỉ sự sử dụng không gian trên đĩa trên một thư mục cụ thể. Lệnh này hữu ích nếu bạn muốn xác định phần không gian được sử dụng cho một thư mục cụ thể. Lệnh sau sẽ hiển thị số khối mà mỗi thư mục chiếm dụng. Một khối đơn có thể là 512 byte hoặc 1 kilo byte phụ thuộc vào hệ thống của bạn. $du /etc 10 /etc/cron.d 126 /etc/default 6 /etc/dfs Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 130 ... $ Chức năng -h tạo output để bạn dễ dàng hơn để nhận thức, lý giải. $du -h /etc 5k /etc/cron.d 63k /etc/default 3k /etc/dfs ... $ Gắn kết (Mounting) hệ thống file trong Unix/Linux Một hệ thống file phải được gắn kết để có thể được sử dụng bởi hệ thống. Để quan sát cái gì hiện tại được gắn kết (có sẵn để sử dụng) trên hệ thống của bạn, sử dụng lệnh sau: $ mount /dev/vzfs on / type reiserfs (rw,usrquota,grpquota) proc on /proc type proc (rw,nodiratime) devpts on /dev/pts type devpts (rw) $ Thư mục /mnt, theo quy ước, là nơi những sự gắn kết tạm thời (như các đĩa CD-ROM, các đĩa mềm) được đặt tại đó. Nếu bạn cần để gắn kết một hệ thống file, bạn có thể sử dụng lệnh mount với cú pháp sau: mount -t file_system_type device_to_mount directory_to_mount_to Ví dụ, nếu bạn muốn gắn kết một CD-ROM tới thư mục /mnt/cdrom, bạn có thể nhập từ bàn phím như sau: $ mount -t iso9660 /dev/cdrom /mnt/cdrom Điều này giả sử rằng thiết bị CD-ROM của bạn được gọi /dev/cdrom và bạn muốn kết nối nó tới /mnt/cdrom. Bạn tham khảo Man Page để có thông tin cụ thể hơn hoặc gõ mount -h từ dòng lệnh cho các thông tin giúp đỡ. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 131 Sau khi gắn kết, bạn có thể sử dụng lệnh cd để điều hướng hệ thống file có mới nhất thông qua điểm kết nối mà bạn vừa mới tạo ra. Bỏ gắn kết (unmounting) hệ thống file trong Unix/Linux Để bỏ gắn kết hệ thống file từ hệ thống của bạn, sử dụng lệnh unmount bằng xác định điểm kết nối hoặc thiết bị. Ví dụ, để gỡ bỏ cdrom, sử dụng lệnh sau: $ umount /dev/cdrom Lệnh mount cho bạn khả năng để truy cập vào hệ thống file, nhưng trên các hệ thống Unix hiện đại nhất, chức năng tự động kết nối thực hiện ngầm tiến trình này cho người sử dụng và không yêu cầu sự can thiệp nào. Các hạn ngạch (quotas) người dùng và nhóm trong Unix/Linux Các hạn ngạch người dùng và nhóm cung cấp các kỹ thuật mà bởi nó lượng không gian được sử dụng bởi một người dùng đơn hoặc tất cả người dùng trong một nhóm cụ thể có thể được giới hạn được xác định bởi người quản lý. Các hạn ngạch hoạt động thông qua 2 sự giới hạn mà cho phép người dùng thực hiện một số hành động trong lượng không gian hoặc số lượng khối của đĩa mà người quản lý đã xác định giới hạn cho trước đó.  Giới hạn mềm (Soft Limit): Nếu người dùng sử dụng vượt quá lượng giới hạn, yêu cầu thêm phần không gian để sử dụng, sẽ được cấp thêm một số khối nữa.  Giới hạn cứng (Hard Limit): Khi người dùng sử dụng chạm tới mốc giới hạn, yêu cầu thêm cho phần không gian để sử dụng nữa, sẽ không có khối nào được thêm. Dưới đây là các lệnh mà được sử dụng để quản lý hạn ngạch: Lệnh Miêu tả quota Hiển thị cách sử dụng đĩa và giới hạn cho một người sử dụng trong nhóm. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 132 edquota Đây là bộ soạn hạn ngạch. Hạn ngạch người dùng hoặc nhóm có thể được chỉnh sửa bằng cách sử dụng lệnh này. quotacheck Quét hệ thống file về cách sử dụng đĩa, tạo, kiểm tra và sửa chữa các file hạn ngạch. setquota Nó cũng là một lệnh trong bộ soạn hạn ngạch. quotaon Điều này tuyên bố tới hệ thống mà hạn ngạch đĩa nên được cho phép bật trên một hoặc nhiều hệ thống file. quotaoff Điều này tuyên bố tới hệ thống mà hạn ngạch đĩa nên được cho phép tắt trên một hoặc nhiều hệ thống file repquota In cách sử dụng của đĩa và các hạn ngạch cho hệ thống file đã được xác định. Bạn có thể sử dụng Trang trợ giúp (Manpage Help) để kiểm tra cú pháp đầy đủ cho mỗi lệnh được đề cập ở trên đây. Quản lý người dùng trong Unix Có 3 kiểu tài khoản trên một hệ thống Unix: 1. Tài khoản gốc (Root account): Nó còn được gọi là superuser và sẽ có sự điều khiển tuyệt đối tới hệ thống. Một superuser có thể chạy bất cứ lệnh nào mà không bị hạn chế. Người sử dụng này có thể được ví như người quản lý hệ thống. 2. Các tài khoản hệ thống: Các tài khoản hệ thống được cần cho các hoạt động riêng trong hệ thống như tài khoản mail và các tài khoản sshd. Những tài khoản này thường được cần cho một số chức năng riêng trên hệ thống của bạn, và bất cứ sự chỉnh sửa nào tới chúng có thể ảnh hưởng bất lợi tới hệ thống. 3. Các tài khoản người dùng cá nhân: Các tài khoản này cung cấp sự truy cập mang tính tương tác tới hệ thống với người dùng và nhóm sử dụng và thường bị giới hạn truy cập vào những file và thư mục có tính chất quan trọng. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 133 Unix hỗ trợ một khái niệm là tài khoản nhóm Group Account mà tạo nhóm một số tài khoản một cách logic. Mỗi tài khoản sẽ là một phần của bất cứ tài khoản nhóm nào. Nhóm trong Unix đóng vai trò quan trọng trong việc thực hiện sự quản lý về tiến trình và cho phép tới file. Quản lý người và nhóm sử dụng trong Unix/Linux Có 4 file chính quản lý người sử dụng: 1. /etc/passwd: Giữ tài khoản người dùng và thông tin mật khẩu. File này giữ các thông tin quan trọng về các tài khoản trên hệ thống Unix. 2. /etc/shadow: Giữ mật khẩu được biên thành mật mã của tài khoản tương ứng. Không phải tất cả các hệ thống đều hỗ trợ file này. 3. /etc/group: File này giữ thông tin nhóm cho mỗi tài khoản. 4. /etc/gshadow: File này giữ các thông tin tài khoản nhóm bảo mật. Bạn có thể kiểm tra tất cả các file trên với lệnh cat. Dưới đây là các lệnh có trong phần lớn các hệ thống Unix để tạo và quản lý các tài khoản cá nhân và nhóm. Lệnh Miêu tả useradd Thêm các tài khoản cá nhân tới hệ thống. usermod Chỉnh sửa các thuộc tính của tài khoản cá nhân. userdel Xóa các tài khoản cá nhân từ hệ thống. groupadd Thêm các tài khoản nhóm tới hệ thống. groupmod Chỉnh sửa các thuộc tính của tài khoản nhóm. groupdel Dỡ bỏ các tài khoản nhóm khỏi hệ thống. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 134 Bạn có thể sử dụng các lệnh trong Trang trợ giúp (Manpage Help) để kiểm tra cú pháp đầy đủ cho mỗi lệnh được đề cập ở trên. Tạo một nhóm trong Unix/Linux Bạn có thể sẽ cần tạo các nhóm trước khi tạo bất kỳ một tài khoản nào, nếu không thì bạn phải sử dụng các nhóm đang tồn tại trên hệ thống của bạn. Bạn sẽ có tất cả các nhóm được liệt kê trong tệp /etc/groups. Tất cả các nhóm mặc định sẽ là các nhóm tài khoản cụ thể trên hệ thống và nó không được đề nghị để sử dụng chúng cho các tài khoản thông thường. Vì thế, dưới đây là cú pháp để tạo một nhóm tài khoản mới. groupadd [-g gid [-o]] [-r] [-f] groupname Bảng dưới liệt kê chi tiết các tham số: Tùy chọn Miêu tả -g GID Giá trị số của ID nhóm. -o Tùy chọn này cho phép để thêm nhóm với GID không duy nhất. -r Dấu hiệu này chỉ thị sự thêm nhóm tới tài khoản hệ thống. -f Tùy chọn này khiến cho nó chỉ thoát ra với trạng thái thành công nếu nhóm đã xác định đã tồn tại. Với –g, nếu GID đã tồn tại, thì GID khác (duy nhất) được chọn. groupname Tên nhóm thực sự được tạo. Nếu bạn không xác định bất cứ tham số nào thì hệ thống sẽ sử dụng các giá trị mặc định. Ví dụ sau sẽ tạo một nhóm developers với các giá trị mặc định, mà được chấp thuận bởi hầu hết các nhà quản lý. $ groupadd developers Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 135 Chỉnh sửa một nhóm trong Unix/Linux Để chỉnh sửa một nhóm, sử dụng cú pháp lệnh groupmod: $ groupmod -n new_modified_group_name old_group_name Để thay đổi tên nhóm developers_2 thành deverloper, bạn gõ như sau: $ groupmod -n developer developer_2 Dưới đây là cách thay đổi GID thành 545: $ groupmod -g 545 developer Xóa một nhóm trong Unix/Linux Để xóa một nhóm đang tồn tại, tất cả thứ bạn cần làm là lệnh groupdel và tên nhóm đó. Để xóa nhóm developer, lệnh là: $ groupdel developer Lệnh này chỉ gỡ bỏ nhóm, không phải bất kỳ file nào liên quan tới nhóm. Các file là vẫn có thể truy cập được bởi người sở hữu của nó. Tạo một tài khoản cá nhân trong Unix/Linux Hãy cùng chúng tôi xem cách tạo một tài khoản cá nhân mới trên hệ thống Unix của bạn. Dưới đây là cú pháp để tạo một tài khoản cá nhân: useradd -d homedir -g groupname -m -s shell -u userid accountname Bảng dưới liệt kê chi tiết các tham số: Tùy chọn Miêu tả -d homedir Xác định thư mục chính cho tài khoản. -g groupname Xác định một tài khoản nhóm cho tài khoản cá nhân này. -m Tạo thư mục chính nếu nó không tồn tại. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 136 -s shell Xác định shell mặc định cho tài khoản cá nhân này. -u userid Bạn có thể xác định ID cá nhân cho tài khoản này. accountname Tên tài khoản cá nhân thực sự được tạo ra. Nếu bạn không xác định bất kỳ tham số nào thì hệ thống sẽ sử dụng các giá trị mặc định. Lệnh useradd chỉnh sửa các tệp /etc/passwd, /etc/shadow, /etc/group và tạo một thư mục chính. Dưới đây là ví dụ mà sẽ tạo một tài khoản mcmohd thiết lập thư mục chính của nó tới /home/mcmohd và nhóm là developers. Người sử dụng này là Kenny Chính mà được chỉ định cho nó. $ useradd -d /home/mcmohd -g developers -s /bin/ksh mcmohd Trước khi thông báo lệnh trên, bảo đảm rằng bạn đã có nhóm developers được tạo bằng lệnh groupadd. Khi một tài khoản cá nhân được tạo, bạn có thể thiết lập mật khẩu cho nó bằng cách sử dụng lệnh passwd như sau: $ passwd mcmohd20 Changing password for user mcmohd20. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. Khi bạn gõ passwd accountname, nó cung cấp cho bạn tùy chọn để thay đổi mật khẩu được cung cấp nếu bạn là superuser, nếu không thì bạn chỉ có thể thay đổi mật khẩu sử dụng lệnh tương tự nhưng không xác định tên tài khoản của bạn. Chỉnh sửa một tài khoản Lệnh usermod cho bạn khả năng để tạo các thay đổi tới một tài khoản cá nhân đang tồn tại từ dòng lệnh. Nó sử dụng các đối số như lệnh useradd, cộng với đối số -l, mà cho phép bạn thay đổi tên tài khoản. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 137 Ví dụ, để thay đổi tên tài khoản cá nhân mcmohd thành mcmohd20 và thay đổi thư mục chính, bạn sẽ cần thông báo lệnh sau: $ usermod -d /home/mcmohd20 -m -l mcmohd mcmohd20 Xóa một tài khoản trong Unix/Linux Lệnh userdel có thể được sử dụng để xóa một tài khoản cá nhân đang tồn tại. Lệnh này là rất nguy hiểm nếu không được sử dụng với sự cẩn trọng. Chỉ có một đối số hoặc một tùy chọn có sẵn cho lệnh: .r, để gỡ bỏ thư mục chính và mail của tài khoản. Ví dụ, để gỡ bỏ tài khoản mcmohd20, bạn cần thông báo lệnh sau: $ userdel -r mcmohd20 Nếu bạn muốn giữ thư mục chính cho các mục sau, bạn không sử dụng tùy chọn .r. Bạn có thể gỡ bỏ thư mục chính vào lần sau. Hiệu năng hệ thống trong Unix Mục đích của chương hướng dẫn này là giới thiệu phân tích hiệu năng bằng các công cụ có sẵn để giám sát và quản lý hiệu năng trên các hệ thống Unix, và để cung cấp một nguyên tắc chỉ đạo chung về cách để phát hiện và sửa các vấn đề về hiệu năng trong môi trường Unix. Unix có các kiểu nguồn chính sau mà cần được giám sát kiểm tra và được bật lên:  CPU  Bộ nhớ  Không gian đĩa  Các dây dẫn giao tiếp  I/O Time  Thời gian mạng  Các chương trình ứng dụng Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 138 Các thành phần hiệu năng trong Unix/Linux Dưới đây liệt kê 5 thành phần chính: Thành phần Miêu tả Trạng thái CPU người sử dụng Lượng thời gian thực tế mà CPU dành để chạy chương trình của người sử dụng trong trạng thái người dùng. Nó bao gồm thời gian dành để chạy các triệu hồi thư viện, nhưng không bao gồm thời gian dành trong Kernel. Trạng thái CPU hệ thống Lượng thời gian mà CPU dành cho chương trình này trong trạng thái hệ thống. Tất cả chương trình I/O yêu cầu các sự phục vụ Kernel. Người viết chương trình có thể ảnh hưởng giá trị này bằng cách sử dụng khóa kết nối I/O. Thời gian I/O và mạng hệ thống Lượng thời gian dành cho di chuyển dữ liệu và phục vụ các yêu cầu I/O. Hiệu năng bộ nhớ ảo Nó bao gồm sự chuyển mạch và trao đổi bối cảnh. Chương trình ứng dụng Thời gian dành cho chạy các chương trình khác – khi hệ thống không phục vụ ứng dụng này bởi vì ứng dụng khác hiện tại đang có trong CPU. Các công cụ hiệu năng trong Unix/Linux Unix cung cấp các công cụ quan trọng để đo lường và tinh chỉnh hiệu năng hệ thống: Lệnh Miêu tả nice/renice Chạy một chương trình với quyên ưu tiên được sửa đổi trước. netstat In các kết nối mạng hệ thống, bảng định tuyến, các thống kê giao diện, các kết nối ẩn danh và các thành viên multicast. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 139 time Lượng thời gian một lệnh đơn hoặc cung cấp cách sử dụng nguồn. uptime Trung bình tải hệ thống (SLA – System Load Average) ps Báo cáo một ảnh chụp nhanh (snapshot) của các tiến trình hiện tại. vmstat Báo cáo các thống kê về bộ nhớ ảo. gprof Hiển thị gọi đồ thị dữ liệu profile. prof Tiến trình profile top Hiển thị các nhiệm vụ của hệ thống. Bạn có thể truy cập vào Trang trợ giúp (Manpage Help) để kiểm tra cú pháp đầy đủ cho mỗi lệnh được đề cập ở đây. Hệ thống ghi log trong Unix Các hệ thống Unix có hệ thống ghi log rất mạnh và linh động, mà cho bạn khả năng để ghi lại hầu hết mọi thứ bạn có thể tưởng tượng và sau đó thao tác sự ghi log này để truy xét thông tin bạn yêu cầu. Rất nhiều phiên bản của Unix cung cấp một phương tiện dễ dàng ghi log với mục đích chung gọi là syslog. Mỗi chương trình cần thông tin ghi log được gửi tới syslog. syslog trong Unix là một host có thể định hình, là phương tiện ghi log hệ thống đồng dạng. Hệ thống sử dụng một tiến trình ghi log hệ thống trung tâm mà chạy chương trình/etc/syslogd hoặc /etc/syslog. Hoạt động của hệ thống ghi log là không phức tạp. Các chương trình gửi cửa vào ghi log tớisyslogd, mà tham vấn từ file định cấu hình /etc/syslogd.conf hoặc /etc/syslog và khi một kết nối được tìm thấy, nó viết thông tin ghi log tới file ghi log đã yêu cầu. Bảng dưới liệt kê 4 mục syslog cơ bản mà bạn nên hiểu: Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 140 Mục Miêu tả Facility (phương tiện) Dấu hiệu nhận diện được sử dụng để miêu tả ứng dụng hoặc tiến trình mà đệ trình tới thông báo log. Các ví dụ là mail, kernel, và ftp. Priority (quyền ưu tiên) Một chỉ dẫn quan trọng của thông báo. Các mức được xác định trong syslog như một guideline, từ việc chỉnh lỗi thông tin tới các sự kiện quan trọng. Selector (bộ chọn) Một sự kết nối của một hoặc nhiều phương tiện và mức độ. Khi một sự kiện mới đến kết nối với một bộ chọn, một hành động được thực hiện. Action (hành động) Điều gì xảy ra khi một thông tin mới đến kết nối với một bộ chọn. Các hành động có thể viết thông tin tới file ghi log, phản xạ thông tin tới một bàn điều khiển hoặc thiết bị khác, viết thông báo tới hệ thống ghi log của người sử dụng hoặc gửi thông báo cùng với máy chủ syslog khác. Các phương tiện syslog trong Unix/Linux Dưới đây là các phương tiện có sẵn cho bộ chọn. Không phải tất cả các phương tiện có mặt trên tất cả các phiên bản của Unix. Facility Miêu tả auth Các hoạt động liên quan đến yêu cầu tên và mật khẩu (getty, su, login) authpriv Tương tự như auth nhưng ghi log tới một file mà chỉ có thể được đọc bởi những người dùng được chọn. console Sử dụng để bắt các thông báo mà thường trực tiếp gửi tới bàn điều khiển hệ thống. cron Các thông báo từ người lập hệ thống cron. daemon Hệ thống daemon nhận tất cả. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 141 ftp Các thông báo liên quan đến hệ thống ftp deamon. kern Các thông báo kernel. local0.local7 Các phương tiện nội bộ được xác định cho mỗi site. lpr Các thông báo từ dòng hệ thống in. mail Các thông báo liên quan tới hệ thống mail. mark Các sự kiện giả được sử dụng để tạo timestamp trong các file hệ thống. news Các thông báo liên quan tới mạng lưới giao thức tin tức (network news protocol) ntp Các thông báo liên quan đến giao thức thời gian mạng. user Các tiến trình người dùng thông thường. uucp Hệ thống phụ UUCP. Các quyền ưu tiên syslog trong Unix/Linux Các quyền ưu tiên syslog được tổng hợp ở dưới bảng sau: Quyền ưu tiên Miêu tả emerg Tình trạng khẩn cấp, như một sự ngưng hoạt động hệ thống sắp xảy ra, thường được thông báo tới tất cả người dùng. alert Tình trạng mà nên được chỉnh lại cho đúng ngay lập tức, như một dữ liệu hệ thống bị hư hỏng. crit Tình trạng nghiêm trọng, như lỗi phần cứng. Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 142 err Các lỗi thông thường. warning Cảnh báo. notice Tình trạng mà không là lỗi, nhưng có lẽ nên được thực hiện theo một cách đặc biệt. info Thông báo mang tính thông tin. debug Các thông báo mà được sử dụng khi chỉnh lỗi các chương trình. none Các mức giả tạo được sử dụng để xác định không log các thông báo. Sự kết nối của các phương tiện và các mức cho bạn khả năng để thấy rõ về những gì được ghi log và nơi mà các thông tin bắt nguồn. Khi mỗi chương trình gửi các thông báo của nó một cách nghiêm túc tới hệ thống ghi log, trình ghi log tạo các quyết định về những gì để theo dõi nó và những gì để loại bỏ nó ở các mức được xác định trong bộ chọn. Khi bạn xác định một mức, hệ thống sẽ theo dõi mọi thứ tại mức đó và cao hơn. Tệp /etc/syslog.conf trong Unix/Linux Tệp này điều khiển nơi các thông báo được log. Một tệp syslog.conf đặc trưng có thể trông giống như thế này: *.err;kern.debug;auth.notice /dev/console daemon,auth.notice /var/log/messages lpr.info /var/log/lpr.log mail.* /var/log/mail.log ftp.* /var/log/ftp.log auth.* @prep.ai.mit.edu auth.* root,amrood netinfo.err /var/log/netinfo.log install.* /var/log/install.log *.emerg * Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 143 *.alert |program_name mark.* /dev/console Mỗi dòng của file chứa hai phần:  Một bộ chọn thông báo mà xác định loại thông báo để log. Ví dụ, tất cả các thông báo lỗi hoặc tất cả các thông báo chỉnh lỗi từ kernel.  Một trường hành động mà nói những gì nên được làm với thông báo đó. Ví dụ, đặt nó trong một file hoặc gửi thông báo tới terminal của một người dùng. Dưới đây là các điểm đáng chú ý cho sự định cấu hình trên:  Các bộ chọn thông báo gồm hai phần: một phương thức và một quyền ưu tiên. Ví dụ, kern.debug chọn tất cả các thông báo debug (có Priority) được tạo bởi kernel (có Facility).  Bộ chọn thông báo kern.debug chọn tất cả các quyền ưu tiên mà ưu tiên hơn chỉnh lỗi.  Một dấu sao * trong vị trí hoặc của phương thức hoặc quyền ưu tiên ám chỉ rằng “tất cả”. Ví dụ, *.debug nghĩa là tất cả các thông báo chỉnh lỗi, trong khi kern.* nghĩa là tất cả các thông báo được tạo ra bởi kernel.  Bạn cũng có thể sự dụng các dấu phảy để xác định nhiều phương thức. Hai hoặc nhiều bộ chọn có thể được nhóm lại với nhau bằng cách sử dụng một dấu chấm phảy (;). Các hành động ghi log trong Unix/Linux Trường hành động xác định một trong 5 hành động sau: 1. Thông tin ghi log tới một file hoặc một thiết bị. Ví dụ, /var/log/lpr.log hoặc /dev/console. 2. Gửi một thông báo tới một người sử dụng. Bạn có thể xác định nhiều tên sử dụng bằng việc ngăn cách chúng bởi dấu phảy (ví dụ root, amrood). 3. Gửi một thông báo tới tất cả người dùng. Trong trường hợp này, trường hành động bao gồm một dấu *. 4. Gửi một thông báo thông qua pipe tới một chương trình. Trong trường hợp này, chương trình được xác định sau ký hiệu pipe (|). Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 144 5. Gửi thông báo tới syslog trên một host khác. Trong trường hợp này, trường hành động bao gồm một tên host, được đặt trước bởi một dấu hiệu (ví dụ: @tutorialspoint.com) Lệnh logger trong Unix/Linux Unix cung cấp lệnh logger, mà là một lệnh thực sự hữu ích để giải quyết hệ thống ghi log. Lệnh logger gửi các thông báo ghi log tới syslogd deamon, và do đó kích thích hệ thống ghi log. Điều này có nghĩa là chúng ta có thể kiểm tra từ dòng lệnh tại bất cứ thời gian nào. Lệnhlogger cung cấp một phương thức để thêm cổng vào một dòng tới hệ thống ghi log file từ dòng lệnh. Định dạng của lệnh là: logger [-i] [-f file] [-p priority] [-t tag] [message]... Dưới đây là chi tiết về các tham số. Chức năng Miêu tả -f filename Sử dụng nội dung của tên file như thông báo để log. -i log ID tiến trình của tiến trình logger với mỗi dòng. -p priority Nhập thông báo với quyền ưu tiên được xác định (lối vào bộ chọn được xác định); quyền ưu tiên thông báo có thể được xác định ở dạng số hoặc như là cặp phương thức.quyền ưu tiên. Quyền ưu tiên mặc định là user.notice. -t tag Đánh dấu mỗi dòng được thêm tới hệ thống log với thẻ đã xác định. message Các tham số chuỗi mà nội dung được kết nối cùng nhau theo thứ tự xác định, riêng rẽ bởi khoảng trống. Bạn có thể sử dụng trang Trang trợ giúp (Manpage Help) để kiểm tra cú pháp của các lệnh này. Sự luân phiên log trong Unix/Linux Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 145 Các log file có thiên hướng tăng lên rất nhanh và chiếm một khoảng lớn của không gian đĩa. Để cho phép khả năng luân phiên log, hầu hết phiên bản sử dụng các công cụ nhưnewsyslog hoặc logrotate. Những công cụ này nên được gọi trên một khoảng không gian thường xuyên bằng cách sử dụng cron deamon. Bạn truy cập vào chương Trang trợ giúp (Manpage Help) để biết thêm chi tiết về newsyslog hoặc logrotate. Các vị trí log quan trọng trong Unix/Linux Tất cả ứng dụng hệ thống tạo các tệp log trong /var/log và các thưc mục phụ của nó. Dưới đây là một số ứng dụng quan trọng và các thư mục log tương ứng của chúng. Ứng dụng Thư mục httpd /var/log/httpd samba /var/log/samba cron /var/log/ mail /var/log/ mysql /var/log/ Signal và Trap trong Unix/Linux Signals là các tín hiệu ngắt phần mềm được gửi tới một chương trình báo rằng có một sự kiện nghiêm trọng đã xảy ra. Các sự kiện này có thể rất đa dạng từ các yêu cầu người sử dụng truy cập vào bộ nhớ bất hợp pháp. Một vài signal, như signal ngắt, chỉ rằng một người sử dụng đã đòi hỏi chương trình làm cái gì đó mà không trong sự kiểm soát. Bảng dưới đây liệt kê các signal thông thường mà bạn có thể bắt gặp hoặc muốn sử dụng nó trong các chương trình của bạn: Tên signal Số hiệu Miêu tả Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 146 signal SIGHUP 1 Trì hoãn việc kiểm tra trên quản lý terminal hoặc sự dừng của quản lý tiến trình. SIGINT 2 Được thông báo nếu người sử dụng gửi một tín hiệu ngắt (Ctrl+C). SIGQUIT 3 Được thông báo nếu người sử dụng gửi một tín hiệu bỏ (Ctrl+D). SIGFPE 8 Được thông báo nếu một hoạt động thuộc về toán không hợp pháp được thử chạy. SIGKILL 9 Nếu một tiến trình nhận signal này, nó phải thoát ra ngay lập tức và sẽ không thực hiện các hoạt động làm sạch. SIGALRM 14 Tín hiệu báo số lần thực hiện (Alarm Clock). SIGTERM 15 Tín hiệu kết thúc phần mềm (được gửi bởi sigkill theo mặc định). Danh sách các signal trong Unix/Linux Có một cách dễ dàng để liệt kê tất cả các signal được hỗ trợ bởi hệ thống của bạn. Chỉ cần thông báo lệnh kill -l và nó sẽ hiển thị tất cả các signal được hỗ trợ. $ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 147 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX Danh sách thực tế trên của signal là đa dạng và khác nhau giữa Solaris, HP-UX và Linux. Các hoạt động mặc định trong Unix/Linux Mỗi signal có một hoạt động mặc định liên kết với nó. Hoạt động mặc định với một signal là hoạt động mà một script hoặc một chương trình thực hiện khi nó nhận được một signal. Một trong số các hoạt động mặc định có thể là:  Kết thúc tiến trình  Bỏ qua signal  Kết xuất lõi nhớ. Nó tạo một file gọi là core (lõi) chứa hình ảnh bộ nhớ của tiến trình khi nó nhận được signal  Dừng tiến trình  Tiếp tục tiến trình bị dừng Gửi các signal trong Unix/Linux Có một vài phương thức trong việc gửi các signal tới một chương trình hoặc một script. Một trong những phương thức phổ biến nhất là cho người sử dụng gõ phím Ctrl +C hoặc phím dừng trong khi một script đang chạy. Khi bạn nhấn phím Ctrl+C, một SIGINT được gửi tới script và khi mỗi hành động mặc định đã xác định sẽ kết thúc script. Phương thức phổ biến khác để gửi signal là sử dụng lệnh kill mà có cú pháp như sau: $ kill -signal pid Ở đây, signal là hoặc số hoặc tên của signal để gửi và pid là ID tiến trình mà signal nên được gửi tới. Ví dụ: Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 148 $ kill -1 1001 Gửi HUP hoặc signal dừng tới một chương trình mà đang chạy với ID tiến trình là 1001. Để gửi một kill signal tới tiến trình giống như vậy, bạn sử dụng lệnh sau: $ kill -9 1001 Nó sẽ hủy tiến trình đang chạy có ID tiến trình 1001. Trap signal trong Unix/Linux Khi bạn nhấn phím Ctrl+C hoặc phím dừng tại terminal của bạn trong suốt quá trình chạy một chương trình shell, thông thường thì chương trình đó bị ngay lập tức kết thúc, và dòng nhắc lệnh xuất hiện trở lại. Việc này có thể sẽ không luôn luôn làm bạn thích thú. Ví dụ, bạn có thể sẽ để lại hàng loạt các tập tin tạm thời mà không được dọn sạch. Trap signal là khá dễ dàng, và lệnh trap có cú pháp như sau: $ trap commands signals Ở đây, command có thể là bất cứ lệnh Unix có hiệu lực nào, hoặc ngay cả là một chức năng đã định nghĩa của người sử dụng, và signal có thể là danh sách các signal mà bạn muốn trap. Có 3 cách sử dụng phổ biến để trap trong shell script: 1. Dọn sạch các file tạm thời 2. Bỏ qua các signal Dọn sạch các file tạm thời trong Unix/Linux Như một ví dụ của lệnh trap, dưới đây chỉ cách bạn có thể gỡ bỏ một vài file và sau đó thoát khỏi nếu ai đó cố gắng bỏ dở chương trình từ terminal. $ trap "rm -f $WORKDIR/work1$$ $WORKDIR/dataout$$; exit" 2 Từ điểm trong chương trình shell mà trap này được thực thi, hai tệp work1$$ và dataout$$sẽ tự động bị dỡ bỏ nếu signal số 2 được nhận bởi chương trình. Vì thế nếu người sử dụng ngắt việc thi hành của chương trình thì sau đó trap này được chạy, bạn có thể được đảm bảo chắc chắn rằng hai file này sẽ được dọn sạch sẽ. Lệnh exit mà theo sau Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 149 bởi rm là cần thiết bởi vì không có nó thì chương trình sẽ tiếp tục chạy tại điểm mà nó dừng lại khi signal được nhận. Signal số 1 được tạo để trì hoãn: hoặc ai đó cố tình treo dòng hoặc dòng một cách ngẫu nhiên bị ngắt kết nối. Bạn có thể chỉnh sửa trap trước để cũng gỡ bỏ hai file đã xác định trong trường hợp này bằng cách thêm signal số 1 tới danh sách các signal. $ trap "rm $WORKDIR/work1$$ $WORKDIR/dataout$$; exit" 1 2 Bây giờ những file này sẽ bị gỡ bỏ nếu dòng bị treo hoặc nếu phím Ctrl+C được nhấn. Lệnh được xác định để trap phải được bao quanh trong trích dẫn nếu chúng chứa nhiều hơn một lệnh. Bạn cũng lưu ý rằng shell quét dòng lệnh tại thời điểm mà lệnh trap được chạy và cũng thưc hiện quét lần nữa khi một trong các signal được liệt kê được nhận. Vì thế trong ví dụ trước, giá trị của WORKDIR và $$ sẽ được thay đổi tại thời gian mà lệnh trap được chạy. Nếu bạn muốn sự thay đổi này xảy ra tại thời điểm mà hoặc signal số 1 hoặc số 2 được nhận, bạn có thể đặt các lệnh bên trong trích dẫn đơn như sau: $ trap 'rm $WORKDIR/work1$$ $WORKDIR/dataout$$; exit' 1 2 Bỏ qua các signal trong Unix/Linux Nếu lệnh được liệt kê cho trap là null, thì signal được xác định sẽ bị bỏ qua khi được nhận. Ví dụ, lệnh sau: $ trap '' 2 Xác định rằng signal ngắt bị bỏ qua. Bạn có thể muốn bỏ qua các signal cụ thể nào đó khi thực hiện một số hoạt động mà mà không muốn bị ngắt. Bạn có thể xác định nhiều signal bị bỏ qua như sau: $ trap '' 1 2 3 15 Ghi nhớ rằng đối số thứ nhất phải được xác định cho một signal để bị bỏ qua và cách trên là không cân bằng với cách viết sau, mà cách viết sau này có ý nghĩa riêng của nó: $ trap 2 Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 150 Nếu bạn bỏ qua một signal, tất cả các shell phụ cũng bỏ qua signal đó. Tuy nhiên, nếu bạn xác định một hành động được thực hiện khi nhận được signal thì tất cả các shell phụ cũng sẽ vẫn thực hiện hành động đó khi nhận được signal đó. Thiết lập lại trap trong Unix/Linux Sau khi bạn đã thay đổi các hành động mặc định khi nhận được một signal, bạn có thể thay đổi trở lại lần nữa với trap, nếu bạn đơn giản bỏ qua đối số đầu tiên như sau: $ trap 1 2 Nó thiết lập lại hành động được thực hiện khi nhận được signal số 1 hoặc 2 trở lại dạng mặc định. Các lệnh hữu ích trong Unix Chương này liệt kê danh sách các lệnh, bao gồm cú pháp và các miêu tả ngắn gọn. Để có thêm nhiều chi tiết về các lệnh này, bạn sử dụng: $man command Các file và thư mục trong Unix/Linux Các lệnh này cho phép bạn tạo các thư mục và điều khiển các file. Lệnh Miêu tả cat Hiển thị nội dung file cd Thay đổi thư mục tới dirname chgrp Thay đổi nhóm file chmod Thay đổi sự cho phép cp Sao chép file nguồn vào trong nơi đến file Xác định kiểu file Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 151 find Tìm kiếm các file grep Tìm file với biểu thức quy chuẩn head Hiển thị một vài dòng đầu của file ln Tạo một link mềm trên tên cũ ls Hiển thị thông tin về kiểu file mkdir Tạo một thư mục dirname mới more Hiển thị dữ liệu trong mẫu được đánh số trang mv Di chuyển (đặt lại tên) một tên file cũ thành một tên file mới pwd In thư mục làm việc hiện tại rm Gỡ bỏ (xóa) một file rmdir Xóa một thư mục đang tồn tại tail In một vài dòng cuối của thư mục touch Cập nhật truy cập và thời gian chỉnh sửa của một file Thao tác dữ liệu trong Unix/Linux Các nội dung của file có thể dược so sánh và thay đổi với các lệnh sau: Lệnh Miêu tả awk Quét mẫu và tiến trình ngôn ngữ cmp So sánh nội dung của 2 file Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 152 comm So sánh dữ liệu được phân loại cut Cắt các trường được chọn trong mỗi dòng của một file diff Bộ so sánh file vi sai expand Mở rộng các tab join Kết hợp file trên một số trường phổ biến perl Ngôn ngữ thao tác dữ liệu sed Bộ soạn luồng văn bản sort Phân loại dữ liệu file split Phân chia file thành các file nhỏ hơn tr Biên dịch các ký tự uniq Báo cáo các dòng được lặp trong một file wc Tính toán số lượng từ, dòng, và ký tự vi Mở bộ soạn văn bản vi vim Mở bộ soạn văn bản vim fmt Bộ định dạng văn bản đơn giản spell Kiểm tra các lỗi chính tả văn bản ispell Kiểm tra các lỗi chính tả văn bản Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 153 ispell Kiểm tra các lỗi chính tả văn bản emacs GNU dự án Emacs ex, edit Bộ soạn dòng emacs GNU dự án Emacs emacs GNU dự án Emacs Nén file trong Unix/Linux Các file có thể được nén để tiết kiệm không gian. Các file bị nén có thể được tạo và thực hành với các lệnh dưới. Lệnh Miêu tả compress Nén các file gunzip Bỏ nén các file gzip Phương thức nén thay thế GNU uncompress Bỏ nén các file unzip Liệt kê, kiểm tra và giải nén các file bị nén trong tài liệu ZIP zcat Nối và liên kết các file bị nén zcmp So sánh các file bị nén zdiff So sánh các file bị nén zmore Lọc file để quan sát crt của các văn bản bị nén Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 154 Nhận thông tin trong Unix/Linux Các tài liệu tra cứu và các sổ tay Unix đa dạng có sẵn trên mạng trực tuyến. Các lệnh shell sau sẽ cung cấp thông tin cho bạn: Lệnh Miêu tả apropos Đặt vị trí các lệnh bằng từ khóa tra cứu. info Hiển thị thông tin lệnh trên trang trực tuyến man Hiển thị sổ tay các trang trực tuyến whatis Tìm kiếm dữ liệu whatis cho các từ đầy đủ. yelp Bộ thẩm tra sự giúp đỡ GNOME Giao tiếp mạng hệ thống trong Unix/Linux Các lệnh sau được sử dụng để gửi và nhận các file từ một host nội bộ tới một host điều khiển từ xa trên Thế giới. Lệnh Miêu tả ftp Chuyển file tới chương trình rcp Điều khiển từ xa việc sao chép file rlogin Đăng nhập từ xa tới một Unix host rsh Điều khiển từ xa shell tftp Chương trình truyền tải file thường telnet Tạo kết nối terminal tới host khác Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 155 ssh Bảo an shell terminal hoặc sự kết nối lệnh scp Bảo an shell từ việc sao chép file từ xa sftp Bảo an shell từ gửi file tới chương trình Một trong số các lệnh trên có thể bị hạn chế tại máy tính của bạn vì các lý do bảo mật. Các thông báo giữa các người sử dụng trong Unix/Linux Hệ thống Unix hỗ trợ các thông báo hiển thị trên màn hình tới người sử dụng khác và gửi mail tự động trên toàn Thế giới. Lệnh Miêu tả evolution Công cụ điều khiển mail GNU trên Linux mail Chương trình gửi và đọc mail đơn giản mesg Cho phép hoặc từ chối nhận các thông báo parcel Gửi các file tới người dùng khác pine Tiện ích vdu-base mail talk Nói chuyện với người sử dụng khác write Viết thông báo tới người sử dụng khác Các chương trình tiện ích trong Unix/Linux Bảng dưới là các công cụ và ngôn ngữ mà có sẵn dựa trên những gì bạn cài đặt trên hệ thống Unix của bạn: Lệnh Miêu tả Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 156 dbx Chương trình chỉnh lỗi Sun gdb Chương trình chỉnh lỗi GNU (GNU debugger) make Duy trì các nhóm chương trình và các chương trình biên dịch nm In danh sách tên chương trình size In kích cỡ của chương trình strip Dỡ bỏ bảng ký tự và đặt lại vị trí các bit cb Bộ viết đúng (beautifier) chương trình C cc Bộ biên dịch ANSI C cho các hệ thống Suns SPARC ctrace Chương trình chỉnh lỗi C gcc Bộ biên dịch GNU ANSI C indent Sắp chữ thụt vào và định dạng của nguồn chương trình C bc Bộ xử lý ngôn ngữ số học tương tác gcl GNU Common Lisp perl Ngôn ngữ mục đích chung php Trang web ngôn ngữ được nhúng py Bộ phiên dịch ngôn ngữ Python asp Trang web ngôn ngữ được nhúng Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 157 CC Bộ biên dịch C++ cho các hệ thống Suns SPARC g++ Bộ biên dịch GNU C++ javac Bộ biên dịch JAVA appletvieweir Bộ thẩm tra vi mã JAVA netbeans Tích hợp môi trường phát triển JAVA trên Linux sqlplus Chạy bộ phiên dịch Oracle SQL sqlldr Chạy bộ tải dữ liệu Oracle SQL mysql Chạy bộ phiên dịch mysql SQL Các lệnh hỗn hợp trong Unix/Linux Dưới đây là các lệnh và thông tin thay đổi về hệ thống: Lệnh Miêu tả chfn Thay đổi thông tin lệnh finger của bạn chgrp Thay đổi sở hữu nhóm của một file chown Thay đổi người sở hữu date In ngày determin Tự động tìm kiếm kiểu terminal du In dung lượng đĩa sử dụng echo Phản xạ các đối số tới các chức năng tiêu chuẩn Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 158 exit Thoát khỏi hệ thống finger In thông tin về những người sử dụng đã đăng nhập vào groupadd Tạo một nhóm người sử dụng groups Chỉ các thành viên của nhóm homequota Chỉ hạn ngạch và dung lượng file sử dụng iostat Báo cáo các thống kế I/O kill Gửi một signal tới một chương trình last Hiển thị các đăng nhập cuối của những người sử dụng logout Thoát khỏi Unix lun Liệt kê các tên người dùng hoặc ID đăng nhập netstat Chỉ trạng thái của mạng hệ thống passwd Thay đổi mật khẩu của người sử dụng cá nhân passwd Thay đổi mật khẩu đăng nhập của bạn printenv Hiển thị giá trị của một biến shell ps Hiển thị trạng thái của các tiến trình hiện tại ps In các thống kê trạng thái của tiến trình quota -v Hiển thị dung lượng sử dụng đĩa và các giới hạn Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 159 reset Thiết lập lại chế độ terminal script Giữ scritp của khu vực terminal script Lưu giữ kết quả đầu ra của một lệnh hoặc một tiến trình setenv Thiết lập các biến môi trường stty Thiết lập các chức năng terminal time Thời gian của một lệnh top Hiển thị tất cả các tiến trình hệ thống tset Thiết lập chế độ terminal tty In tên terminal hiện tại umask Chỉ các sự cho phép mà được cung cấp để quan sát các file theo mặc định uname Hiển thị tên của hệ thống hiện tại uptime Nhận thời gian hoạt động của hệ thống useradd Tạo một tài khoản sử dụng cá nhân users In tên của những người sử dụng đã đăng nhập vmstat Báo cáo các thống kê bộ nhớ thực w Chỉ những gì mà người dùng đã đăng nhập đang thực hiện who Liệt kê danh sách những người dùng đã đăng nhập Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 160 Hàm toán học có sẵn trong Shell Hầu hết các phần của Bài hướng dẫn chủ yếu xây dựng trên Bourne Shell nhưng trang này liệt kê tất cả các hàm toán học được xây dựng có sẵn trong Korn Shell.’ Korn Shell cung cấp sự truy cập tới bộ thiết lập tiêu chuẩn của các hàm toán học. Chúng được gọi bằng cách sử dụng cú pháp gọi hàm C: Hàm Miêu tả abs Giá trị tuyệt đối log Logarit tự nhiên acos Hàm arcos sin Hàm sin asin Hàm arcsin sinh Hàm sin hyperbolic cos Hàm cos sqrt Căn bậc hai cosh Hàm cos hyperpolic tan Hàm tan exp Hàm mũ tanh Hàm tan hyperpolic int Phần nguyên Copyright © vietjack.com Trang chia sẻ các bài học online miễn phí Page 161 Tài liệu tham khảo Unix/Linux Dưới đây là danh sách các nguồn hữu ích về Unix/Linux. Bạn nên tham khảo chúng để hiểu sâu hơn những chủ đề chúng tôi đã đề cập trong loạt bài này.  Tutorialspoint − Loạt bài hướng dẫn của chúng tôi xây dựng dựa trên nguồn này.  Bell Labs − Quá trình tạo Hệ điều hành UNIX. Cung cấp tổng quan và lịch sử của Hệ điều hành UNIX.  BSD UNIX − FreeBSD là một Hệ điều hành UNIX bậc cao cho Server, desktop, và các Platform hiện đại.  Linux Online − Linux là một Hệ điều hành Unix-type miễn phí được tạo lần đầu bởi Linus Torvalds với sự hỗ trợ của các nhà lập trình trên toàn Thế giới.  Unix @ Wikipedia − Một miêu tả ngắn gọn về Hệ điều hành Unix.  The Unix Forums − Một diễn đàn cho những người yêu Unix. Chia sẻ ý tưởng và suy nghĩ của bạn với các Chuyên gia về Unix.

Các file đính kèm theo tài liệu này:

  • pdftai_lieu_unix_tieng_viet_4249.pdf
Tài liệu liên quan