Các Lược Giảng Chuyên Sâu về Sử Dụng Văn Lệnh BASH trong Linux |
Vietsciences-Làng Đậu Võ Quang Nhân xx/xx/2006 |
|
Ổ mềm: | brw-rw---- 1 root floppy 2, 0 Aug 2 2004 fd0 |
Ổ IDE (cdrom hay ổ cứng): | brw------- 1 root disk 3, 0 Aug 2 2004 hda |
Ổ SCSI: | brw-rw---- 1 root disk 8, 0 Aug 2 2004 sda |
Modem - com1: | crw------- 1 root root 5, 64 Dec 07 15:30 cua0 |
Modem - com1: | crw------- 1 root root 4, 64 Mar 15 06:02 ttyS0 |
Liên kết thường thấy: | lrwxrwxrwx 1 root root 3 Nov 11 12:05 cdrom -> hda |
Liên kết thường thấy: | lrwxrwxrwx 1 root root 5 Nov 11 12:05 mouse -> psaux |
Liên kết thường thấy: | lrwxrwxrwx 1 root root 10 Mar 10 15:59 /dev/fax -> /dev/ttyS2 |
Liên kết thường thấy: | lrwxrwxrwx 1 root root 10 Mar 13 16:29 /dev/modem -> /dev/ttyS2 |
Thiết bị Loop : | brw-rw---- 1 root disk 7, 0 Aug 2 2004 loop0 |
Thiết bị máy in: | crw-rw---- 1 root daemon 6, 0 Aug 2 2004 lp0 |
Thiết bị SCIS tổng quát: | crw------- 1 root sys 21, 0 Aug 2 2004 sga |
Sau đây là một số tên tập tin thiết bị thường thấy:
Tùy theo hệ điều hành một số tập tin thiết bị có tên theo cú pháp quy định rõ ràng thí dụ như
Trong đó A = địa chỉ SCSI C = Số (thứ tự) bộ điều khiển SCSI K = Số thứ tự của partition dạng DOS L = Tên ổ (drive letter) từ "a" tới "h" N = 8 * số bộ điều khiển # + địa chỉ SCSI P = Patition kiểu BSD: (a,b,c,d,e,f,g), S = Lát chia (slice) kiểu System V (0,1,2,3,4,5,6). Lưu ý: Để kiểm xem các phân hoạch của các ổ dữ liệu đã được gắn kết vào hệ thống tập tin trên Linux qua /dev có thể dùng lệnh df. A6.3 Thiết bị xuất/nhập chuẩn (stdin, stdout, stderr) Trong linux thì các thiết bị xuất nhập chuẩn như :
Lưu ý: khi lập trình C/C++ người ta có thể truy cập đến các thiết bị xuất nhập này (thí dụ dùng lệnh fd = open("/dev/fd/0", O_RDWR); nhưng dẫu sao bạn sẽ không thể viết lên thiết bị này vì nó là stdin tức là ngỏ nhập chuẩn) A6.4 /dev/null Đây là thiết bị NULL. Các thông báo từ các mệnh lệnh ra ngỏ stdout hay stderr nếu được đổi hướng vào NULL thì chúng sẽ không hiển thị nữa (mà thay vào đó chúng bị gạt bỏ). Diều này tiện dùng trong các câu lệnh mà người gọi lệnh không cần thiết phải nhận về các thông báo cùng như khôngmuốn hiển thị chúng ra Thí du: # this command will be processed but will not display if it is succeed or failed 6.5 /dev/zero: Thiết bị đặc biệt này có nội dung chỉ chứa bit 0. Nó được ứng dụng trong trường hợp tạo ra một ổ nhớ RAM hay một thiết bị hồi chuyển (loop back) Thí dụ1:
tạo một ổ nhớ trong RAM if [ ! -d $MNT ] && [ ! -d
$MNT2 ] ; then
Thí dụ2:
tạo một ổ nhớ dạng hồi chuyển Lưu ý: Trong các thực nghiệm trên sau khi làm xong người dùng nên dùng lệnh umount để trả lại các ổ lưu trữ đạ tạo ra. A6.5 /dev/loop<n>: Đây là các tập tin thiết bị đặc biệt thường được dùng để truy cập nội dung của các tập tin ảnh (image file) của các ổ nhớ khác. Một hệ điều hành thường sẽ cung cấp từ 7 cho đến 32 nút thiết bị hồi chuyển như vậy bắt đầu từ /dev/loop0, /dev/loop1, .... (xem lại thí dụ )
Thí dụ1: Truy cập 1 ổ initrd là ổ khởi động RAM thường tìm
thấy trong /boot
Thí dụ2: Truy cập một tập tin
myCDROM.iso (tập tin *.iso là tập tin ảnh của các CDROM) Lưu ý: trong thí dụ2 trên; có nhiều hệ điều hành Linux mới (dùng với X window) sẽ tự động mặc định gắn kết thư mục /mnt/cdrom với ổ CDROM mỗi khi thực sự có một diã trong ổ. Để tránh sự trùng lặp khi gắn kết này, có thể tạo ra một thư mục bất kìthay vì thư mục /mnt/cdrom Một bài viết khá thú vị có thể giúp bạn có thêm vài cách hữu hiệu để truy cập lên các phân hoạch của ổ diã có thể tìm thấy ở http://edseek.com/~jasonb/articles/linux_loopback.html A6.6 Các thiết bị cần biết khác:
A7 Hệ thống tập tin Proc proc (viết tắt của chữ process) là một hệ thống tập tin hay đúng hơn là một hệ thống tập tin giả (pseudo-filesystem) và được cập nhật theo thời gian thực (real time). Đây là thư mục chứa lượng rất lớn thông tin rất có giá trị liên quan đến các tiến trình đang chạy, cũng như là các một phần thông tin về các thiết bị phần cứng đã được nối vào máy tính (nhiều thông tin về các thiết bị này đã được các hạt nhân phiên bản mới cho thông tin vào thư mục /sys). Một hệ thống tập tin proc mới được hạt nhân tạo ra mỗi lần kernel bắt đầu chạy và biến mất khi tắt máy. Hệ thống tập tin này chứa trong bộ nhớ (RAM) và được hạt nhân gắn kết chúng vào với thư mục /proc. Với /proc, người ta có thể:
A7.1 Truy cập /proc:Nếu chỉ để dọc thông tin, có thể dùng lệnh ls, grep, cat, ... lên các tập tin bên trong /proc. Tuy nhiên, kernel có thể đã gắn kết (mount) sẵn từ trước với thư mục /proc này bằng lệnh mount.
Thí dụ Lưu ý: nếu dùng lện ls -l lên hầu hết các tập tin trong /proc thì sẽ nhận thấy chúng không chiếm hữu byte nào. Lý do là vì các "tập tin" này không hiện hữu (giả tập tin - pseudo file) trên ổ cứng và được trực tiếp tạo ra từ hạt nhân. /proc:Các thể đọc nội dung của các tập tin trong /proc để biết đến các thông tin về hạt nhân, hệ điều hành, phần cứng ....Có thể dùng lệnh cat để đọc các nội dung này. Một số tập tin (kể cả các tập tin nam trong thư mục con) quan trong bao gồm:Các thư mục quan trọng bao gồm:
Có thể thử xem nội dung của một tập tin trong thư mục này qua lệnh cat <tên_tập_tin>7.3 Thông tin của các tiến trình: Mỗi tiến trình đạng chạy được biểu thị là các thư mục có tên chính là các số danh định của tiến trình đó. Để có thể biết trạng thái của mỗi tiến trình có thể trước tiên dùng lệnh ps -A để tìm xem số danh định của tiến trình là bao nhiêu mới xem xét được. Thí dụ: Giả sử bạn đang chạy trình duyệt mozilla. Để đọc trạng thái của các tiến trình của mozilla có thể ra lệnh:
ps -A | grep "mozilla"
8768 ?
09:09:00 mozilla Cột đầu tiên là số tiến trình của mozilla và mozilla-bin. Để truy cập trạng thái của nó có thể đọc các tập tin trong thư mục /proc/8768 và /proc/8774 bằng lệnh ls và lệnh cat 7.4 Điều chỉnh các tham số của môi trường hay của hạt nhân:
|
Tên Tập tin | Mô tả |
/etc/host.conf | Cài đặt cách thức cho máy chủ miền (domain server) kiếm các tên chủ (hostname). Dùng lệnh man 5 host.conf để biết cách cấu hình. |
/etc/hosts | Danh mục các máy chủ đã biết tương ứng với IP. Có thể dùng IP cụ thể nếu hệ thống không tự động tạo ra (dhcp). Cho viẹc đặt tên miền đơn giản, /etc/hosts.conf thường yêu cầu nhìn và đây trưóc khi hỏi tên máy chủ , DNS hay NIS. Dùng lệnh man hosts xem chi tiết |
/etc/issue /etc/issue.net |
Cá tập tin này được đọc bởi mingetty để hiển thị dòng "chào đón" khi người dùng nối từ một đầu cuối (issue) hay từ telnet (issue.net). Chúng được dùng bởi rc.local. |
/etc/<OS>-release | số phiên bản phát hành của OS. Dùng bởi rc.local. (e.g. /etc/SuSE-release) |
/etc/rc.d/rc | Văn lệnh này thường được chạy trong mọi cấp độ (mà cấp độ này được dùng như là tham số của văn lệnh). Thí dụ ở ca6'p độ 5, chạy chế độ đồ họa có thể dùng lệnh : init 5. Tức là chạy máy ở cấp 5 (tức là cấp của chế độ đồ hoạ). |
/etc/rc.d/rc.local | Văn lệnh (có trong RedHat).Có thể được gọi từ rc, rc.sysinit, hay /etc/inittab. |
/etc/rc.d/rc.sysinit | Đây là văn lệnh khởi động đầu tiên được chạy (có trong RedHat) |
/etc/rc.d/rc/rcX.d | Các văn lệnh trong các thư mục rcX.d này sẽ được rc gọi (X là số cấp từ 1 tới 5) khi máy khởi động/đổi mức khởi động ở cấp X. Các văn lệnh có tên với tiền tố Sxx<Tên_Văn_lệnh> (xx là hai số tự nhiên từ 00 đến 99) sẽ được gọi khi khởi động và các văn lệnh với tiền tố Kxx sẽ được gọi nếu có đổi trạng thái khởi động (như là khi tắt máy chẳng hạn). Văn lệnh có tiền tố với số nhỏ hơn sẽ được thi hành trước |
/etc/group | Chứa các tên nhóm còn hiệu lực và tên người dùng trong các nhóm. Một người dùng có thể có tên trong nhiều nhóm và có thể thực hiện được nhiều thao tác mà nhóm có tên cho phép. |
/etc/nologin | Nếu tập tin này tồn tại, login(1) chỉ cho phép người dùng root truy nhập. Các người dùng khác bị từ chối khi đăng nhập. |
etc/passwd | chứa các thông tin về tài khoản người dùng, GID, UID và trình bao mặc định cho người dùng đó |
/etc/rpmrc | Tập tin cấu hình của lệnh rpm. |
/etc/securetty | Chưá các tên thiết bị của tty trong đó sẽ cho phép root đăng nhập. |
/etc/usertty /etc/shadow |
Chứa các mật khẩu mã hoá của
các tài khoản và có thể có thông tin về tuổi tác của mật khẩu.
Các miền bao gồm:
|
/etc/shells | Danh mục các trình bao mà hệ thống hiện có |
/etc/motd | "Message Of The Day"; được dùng nếu quản lí muốn gửi vài thông báo tới mọi người. |
/etc/mtab | Đây chính là nội dung của tất cả các thiết bị hiện đang gắn kết với hệ thông (xem thêm /proc/mount và lệnh mount) . |
/etc/fstab | Danh sách tất cả các hệ thống tập tin có thể gắn kết được với máy tính.Khi máy khởi động nó se dùng tập tin này qua lệnh mount -a và các hệ thống tập tin nào có đánh số 1 ở cột kế chót trong fstab sẽ được gắn kết vào Linux |
/etc/mtools.conf | Cấu hình cho mọi thao tác trên các hệ thống tập tin kiểu DOS. |
/etc/networks | Danh sách tên địa chỉ của các mạng mà có thể truy cập được từ mạng tới máy được nối. |
/etc/protocols | Danh sách các giao thức hiện có và dùng được với giao thức TCP/IP. Xem thêm man protocols |
/etc/resolv.conf | Thông báo kernel tên máy chủ nào nên được truy trả khi có chương trình yêu cầu "giải quyết" một địa chỉ IP |
/etc/rpc | Các chỉ thị và quy tắt cho RPC có thể được dùng trong các việc gọi NFS, (gắn kết từ xa với các hệ thống tập tin, vv). |
/etc/exports | Các hệ thống tập tin được cho xuất (NFS) và các phép truy cập của chúngt. |
/etc/services | Chuyển dịch các tên dịch vụ mạng (network service name) sang thành số cổng/giao thức (port number /protocol). Sẽ dưọc đọc bởi inetd, telnet, tcpdump, .... |
/etc/sysconfig | Các tập tin cấu hình cho nhiều chương trình ở thư mục này |
/etc/sysconfig/network | Chức các tập tin cấu hình cho mạng |
/etc/logrotate.conf | Bảo trì các tập tin log trong thư mục /var/log . |
/etc/ld.so.conf | Tập tin cấu hình cho bộ liên kết động (Dynamic Linker) |
/etc/inittab | Tập tin cấu hình đầu tiên trong Linux/UNIX ; chương trình khởi động đầu tiên là init sẽ dựa trên inittab để chạy cho đúng tuỳ theo cấp và cũng dùng nó để điều khiển quá trình khởi động chính. |
/etc/termcap | Là cơ sở dữ liệu chứa mọi kiểu đầu cuối (terminal) và khả năng của chúng. |
/etc/syslogd.conf | Cấu hình cho trinh nền (daemon) syslogd. syslogd là trình nền lo về các thông báo đăng nhập đến từ các chương trình bên khác vào hệ thống. |
/etc/httpd.conf |
Cấu hình cho máy chủ WEB: Apache, the Web server. Thường tập tin này không có trong /etc. Nó có thể tìm thấy trong /usr/local/httpd/conf/ hay /etc/httpd/conf/ |
/etc/conf.modules /etc/modules.conf |
Tập tin cấu hình cho kerneld. Đây là trình nền lo về việc tải thêm các module hạt nhân trong thời gian chạy (run time) khi cần. |
/etc/xinetd.conf | Cấu hình cho deamon xinetd. Được dùng trong nhiều chương trình như là ftp, telnet, vns, talk,.... |
/etc/xinetd.d | Thư mục chứa các tập tin cấu hình cho nhiều úng dụng qua mạng như tp, telnet, vns, talk,.... |
A9 Các tập tin tài nguyên thông dụng cho tài khoản người
dùng
Các tập tin tài nguyên sau đây được dùng để tạo môi trường thuận tiện hay phù
hợp với tài khoản người dùn; có thể dùng trong các văn lệnh để điều chỉnh một
cách nhanh chóng các cài đặt cho người dùng
Bài kì tới: Toán tử, Vòng lặp, và
Biểu thức chính quy, lệnh grep,
đào sâu thêm thao tác chuyển hướng
Tên tập tin
Mô tả
~/.bash_profile
Nguồn điều chỉnh
cho trình bao bash sau khi dùng
/etc/profile.
~/.bash_history
Danh sách các mệnh lệnh đã thi hành.
~/.bashrc
Nguồn điều chỉnh môi trường cho các trình bao
không tương tác (non interactive). Nếu tập tin không tồn tại
thì chỉ có các biến môi trường và biến toàn cục của bash
được cài.
~/.emacs
Được dùng bởi emacs khi bắt đầu chạy.
~/.forward
Nếu tập tin này chứa một địa chỉ email thì tất
cả các thư diện tử gửi tới chủ nhân của ~ sẽ được chuyển tới
địa chỉ email này
~/.fvwmrc ~/.fvwm2rc
Cấu hình cho fvwm và fvwm2 (là hai trình quản
lí cơ sở cho X Window).
~/.hushlogin
Tạo ra việc đăng nhập "lặng lẽ" không có thư
thông báo
~/.mail.rc
Tập tin tài nguyên cho chương trình email
~/.ncftp/
Thư mục chứa các thông tin khi nối vào
internet nhằm tạo một giao diện mạnh và uyển chuyển cho FTP
tiêu chuẩn. Được thiết kế để thay thế chương trình ftp mặc
định của hệ thống.
~/.profile
Giống như tập tin
~/.bash_profile
~/.exrc
Cấu hình cho chươong trình soạn thảo văn bảm
vi
Thí dụ: set ai sm ruler
~/.vimrc
Cấu hình cho vim hoàn toàn tương tự.exrc.
~/.gtkrc
Tài nguyên cho GNOME Toolkit.
~/.kderc
Cấu hình KDE.
~/.netrc
Tên mặc định và mật khẩu cho ftp.
~/.rhosts
Dùng bởi r-tools: rsh, rlogin, .... Rất yếu
trong an toàn
~/.rpmrc
được đọc bởi rpm nếu
/etc/rpmrc không tồn tại
~/.signature
Các dòng thông báo sẽ được tự động thêm vào
cuối thư khi được gửi từ tài khoản này
~/.twmrc
Cấu hình cho twm (The Window Manager).
~/.xinitrc
Được đọc bởi X khi khởi động chương trình.
Hầu như được dùng để chạy chương trình :.
Thí dụ dòng : exec /usr/sbin/startkde
được thêm vào sẽ làm cho trình quản lý cửa sổ KDE bắt đầu mỗi
lần lệnh startx được gọi
khi dùng tài khoản này
~/News/Sent-Message-IDs
Danh mục lịch sử các tập tin email cho
GNU.
~/.Xauthority
Đọc và viết bởi chương trình xdm để xử lí chủ quyền .
~/.Xdefaults,
~/.Xdefaults-hostname Đọc bởi các ứng dụng X trong thời gian bặt đầu
chạy trên một tên chủ. Nếu tập tin hostname không tim
thấy thì sẽ tìm
.Xdefaults thay vào.
~/mbox
mail cũ của người dùng.
© http://vietsciences.free.fr , http://vietsciences.org và http://vietsciences2.free.fr Làng Đậu Võ Quang Nhân