System Access, Shell, System Access, Shell, Commands and Commands and Navigation Navigation
Giới thiệu shell Giới thiệu shell
Mục đích của shell: Mục đích của shell: Thực thi các lệnh của users –– Thực thi các lệnh của users Tương tác với Kernel –– Tương tác với Kernel Customizing user’s login session –– Customizing user’s login session –– Programming Programming Tính chất Tính chất –– Case sensitive Case sensitive Các shell phổ biến: bash shell, c shell Các shell phổ biến: bash shell, c shell
Shell Metacharacters Shell Metacharacters
* : String wildcard * : String wildcard ? : character wildcard ? : character wildcard [] : character set. [] : character set. –– Ví dụ: ls
]: character range [[--]: character range –– Ví dụ: ls
al rc[15] sẽ hiển thị tất cả các file có chứa Ví dụ: ls ––al rc[15] sẽ hiển thị tất cả các file có chứa các ký tự 1, 5 trong dấu ngoặc vuông: rc1, rc5 các ký tự 1, 5 trong dấu ngoặc vuông: rc1, rc5
{} : string set. {} : string set. al {rc1, rc3}.d sẽ liệt kê hết các file bắt đầu bằng –– ls ls ––al {rc1, rc3}.d sẽ liệt kê hết các file bắt đầu bằng
Ví dụ: ls ––al rc[15] sẽ hiển thị tất cả các file trong al rc[15] sẽ hiển thị tất cả các file trong khoảng các ký tự 1, 5 trong dấu ngoặc vuông rc1, khoảng các ký tự 1, 5 trong dấu ngoặc vuông rc1, rc2, rc3, rc4, rc5 rc2, rc3, rc4, rc5
rc1 hay rc3 và kết thúc bởi .d rc1 hay rc3 và kết thúc bởi .d
Đăng nhập hệ thống Đăng nhập hệ thống HĐH Linux là một hệ điều hành multiuser HĐH Linux là một hệ điều hành multiuser Các thông tin cần xác định khi login vào Các thông tin cần xác định khi login vào Linux: một hệ thống Unix--Linux: một hệ thống Unix Tên hoặc địa chỉ máy mà ta sẽ login vào –– Tên hoặc địa chỉ máy mà ta sẽ login vào Tài khoản được cấp –– Tài khoản được cấp –– Mật khẩu đăng nhập Mật khẩu đăng nhập Ví dụ: Ví dụ: Red Hat Linux release 8.0 (Psyche) Red Hat Linux release 8.0 (Psyche) Kernel 2.4.18 on an i686 Kernel 2.4.18 on an i686 Login: Login:
Dấu nhắc hệ thống Dấu nhắc hệ thống Trong hệ thống Unix Linux, thường có 2 Trong hệ thống Unix--Linux, thường có 2 loại dấu nhắc $ và # loại dấu nhắc $ và # Dấu nhắc $ : Các user thường , có quyền hạn –– Dấu nhắc $ : Các user thường , có quyền hạn chế trong hệ thống chế trong hệ thống Dấu nhắc # : Dành cho user root, user có –– Dấu nhắc # : Dành cho user root, user có quyền cao nhất trong hệ thống. quyền cao nhất trong hệ thống.
History: Dùng phím mũi tên lên xuống
completion Tính năng history and Tab--completion Tính năng history and Tab trong shell trong shell –– History: Dùng phím mũi tên lên xuống completion: Dùng phím TAB –– TabTab--completion: Dùng phím TAB
Cơ chế pipe và Trợ giúp Cơ chế pipe và Trợ giúp
Cơ chế pipe cho phép ta lấy output của Cơ chế pipe cho phép ta lấy output của lệnh trước làm input của lệnh sau: lệnh trước làm input của lệnh sau: –– Ví dụ: Ví dụ: n | grep 8080 | more netstat ––n | grep 8080 | more netstat more /var/log/maillog | grep tuanna more /var/log/maillog | grep tuanna Để được trợ giúp 1 lệnh nào đó, ta sử Để được trợ giúp 1 lệnh nào đó, ta sử dụng lệnh man dụng lệnh man –– Ví dụVí dụ man ls man ls
Di chuyển trong Linux Di chuyển trong Linux
Đường dẫn tuyệt đối : bắt đầu từ root / Đường dẫn tuyệt đối : bắt đầu từ root / Đường dẫn tương đối: tính từ vị trí hiện Đường dẫn tương đối: tính từ vị trí hiện hànhhành Thư mục hiện hành: pwd Thư mục hiện hành: pwd Homedir: thư mục home mặc định của Homedir: thư mục home mặc định của users. users. Lệnh cd không tham số sẽ giúp user về –– Lệnh cd không tham số sẽ giúp user về homedir của mình homedir của mình
Thao tác files trong Linux Thao tác files trong Linux
Các lệnh thao tác file thông dụng Các lệnh thao tác file thông dụng –– lsls –– cpcp –– mvmv –– rmrm Các tham số phổ biến Các tham số phổ biến f : Force –– f : Force R: recursive –– R: recursive i : Prompt before execute –– i : Prompt before execute
Symbolic và hard links Symbolic và hard links
Đây là tính năng đặc trưng của Linux filesystem, Đây là tính năng đặc trưng của Linux filesystem, ext2 và các hệ thống file của hầu hết các Unix ext2 và các hệ thống file của hầu hết các Unix like OS khác. Các file link có thể bị xoá mà like OS khác. Các file link có thể bị xoá mà không ảnh hưởng đến file gốc không ảnh hưởng đến file gốc Symbolic link: tương tự như Shotcut trong Symbolic link: tương tự như Shotcut trong Microsoft Windows. Nếu file gốc của file link bị Microsoft Windows. Nếu file gốc của file link bị xoá thì file link sẽ có trạng thái được gọi là đứt xoá thì file link sẽ có trạng thái được gọi là đứt link ( màu đỏ nhấp nháy tại Console) link ( màu đỏ nhấp nháy tại Console) Hard link: giống như sumbolic link, nó cung cấp Hard link: giống như sumbolic link, nó cung cấp một tham chiếu đến 1 file khác. Hard link giống một tham chiếu đến 1 file khác. Hard link giống như 1 file thực thụ đối với các ứng dụng. như 1 file thực thụ đối với các ứng dụng.
Hard link Hard link
Một khi hard link được tạo ra, file chính có Một khi hard link được tạo ra, file chính có thể được xoá nhưng nội dung của nó vẫn thể được xoá nhưng nội dung của nó vẫn còn nằm trong file link. còn nằm trong file link. Không được tạo hard link cho directory Không được tạo hard link cho directory Hard link có thể không được tạo ra với các Hard link có thể không được tạo ra với các file nằm ở các partition khác nhau. file nằm ở các partition khác nhau. Hardlink hiếm khi được dùng trong Linux Hardlink hiếm khi được dùng trong Linux
Lệnh tạo link ln Lệnh tạo link ln
Lệnh ln cho phép tạo một file link Lệnh ln cho phép tạo một file link Ví dụ: tạo symbolic link Ví dụ: tạo symbolic link –– ln ln --s myfile.txt thesis.txt s myfile.txt thesis.txt –– thesis.txt
Ví dụ: tạo symbolic link Ví dụ: tạo symbolic link s /home/Lqtuan/hello.txt –– ln ln --s /home/Lqtuan/hello.txt
myfile.txt thesis.txt myfile.txt
/tmp/hello.txt /tmp/hello.txt
l /tmp/ –– ls ls --l /tmp/ –– Hello.txt /home/Lqtuan/hello.txt Hello.txt /home/Lqtuan/hello.txt
Biến môi trường Biến môi trường
Để xem biến môi trường ta dùng lệnh echo Để xem biến môi trường ta dùng lệnh echo $tên_biến $tên_biến Ví dụ: Ví dụ: echo $PATH –– echo $PATH Xem tất cả các biến môi trường env Xem tất cả các biến môi trường env Tạo và gán một biến môi trường Tạo và gán một biến môi trường export TÊN_BIẾN_MT= Giá trị –– export TÊN_BIẾN_MT= Giá trị export DISPLAY=10.1.2.3:0.0 Ví dụ: export DISPLAY=10.1.2.3:0.0 –– Ví dụ: Xoá biến môi trường: unset Xoá biến môi trường: unset
Biến môi trường (tiếp) Biến môi trường (tiếp)
Xét một ví dụ sau: Xét một ví dụ sau: STRING= good morning STRING= good morning echo $STRING echo $STRING Điều gì sẽ xảy ra ? Điều gì sẽ xảy ra ? STRING= “good morning” STRING= “good morning” echo $STRING echo $STRING Điều gì sẽ xảy ra ? Điều gì sẽ xảy ra ?
Shell alias Shell alias
only ----read read--alias alias ----
[root@pascal root]# alias [root@pascal root]# alias alias cp='cp alias cp='cp --i'i' color=tty' alias l.='ls --d .* d .* ----color=tty' alias l.='ls alias ll='ls color=tty' alias ll='ls --l l ----color=tty' color=tty' alias ls='ls ----color=tty' alias ls='ls alias mc='. /usr/share/mc/bin/mc wrapper.sh' alias mc='. /usr/share/mc/bin/mc--wrapper.sh' alias mv='mv --i'i' alias mv='mv alias rm='rm --i'i' alias rm='rm alias vi='vim' alias vi='vim' alias which='alias | /usr/bin/which ----ttytty--only alias which='alias | /usr/bin/which showshow--dot dot ----showshow--tilde' tilde' [root@pascal root]# [root@pascal root]#
Command Prompt Command Prompt
Customizing command prompt Customizing command prompt [lqtuan@gateway lqtuan]$ OLDPROMPT=$PS1 [lqtuan@gateway lqtuan]$ OLDPROMPT=$PS1 [lqtuan@gateway lqtuan]$ echo $PS1 [lqtuan@gateway lqtuan]$ echo $PS1 [[\\u@u@\\h h \\W]W]\\$$ [lqtuan@gateway lqtuan]$ PS1=" [lqtuan@gateway lqtuan]$ PS1="\\u u \\W$"W$" lqtuan lqtuan$ls lqtuan lqtuan$ls
Khảo sát biến môi trường Khảo sát biến môi trường
Lệnh env: liệt kê tất cả các biến môi trường và Lệnh env: liệt kê tất cả các biến môi trường và giá trị của nó giá trị của nó Lệnh uname : cho biết thông tin của hệ thống. Ví Lệnh uname : cho biết thông tin của hệ thống. Ví dụ dụ [root@database root]# uname --aa [root@database root]# uname Linux database 2.4.18--14smp #1 SMP 14smp #1 SMP Linux database 2.4.18 Wed Sep 4 12:34:47 EDT 2002 i686 Wed Sep 4 12:34:47 EDT 2002 i686 i686 i386 GNU/Linux i686 i386 GNU/Linux [root@database root]# [root@database root]#
Thoát khỏi hệ thống: exit, logout hoặc Ctrl--DD Thoát khỏi hệ thống: exit, logout hoặc Ctrl
Virtual Terminals Virtual Terminals
Alt F1, Alt F2, …, Alt F6 Alt F1, Alt F2, …, Alt F6 Lệnh tty Lệnh tty [root@database root]# tty [root@database root]# tty /dev/pts/1 /dev/pts/1 [root@database root]# [root@database root]# [lqtuan@database /]$ tty [lqtuan@database /]$ tty /dev/tty1 /dev/tty1 [lqtuan@database /]$ [lqtuan@database /]$
Remote login Remote login
Telnet : cho phép user login vào hệ thống Telnet : cho phép user login vào hệ thống dùng unencrypted username/password để dùng unencrypted username/password để xác thực xác thực SSH: Cũng cung cấp cơ chế cho ta login SSH: Cũng cung cấp cơ chế cho ta login vào hệ thống nhưng các thông tin trên vào hệ thống nhưng các thông tin trên đường truyền được mã hoá đường truyền được mã hoá câu hỏi: câu hỏi: Dùng dịch vụ nào an toàn hơn : telnet hay –– Dùng dịch vụ nào an toàn hơn : telnet hay Secure shell ? Secure shell ?
telnet telnet
Tập tin cấu hình /etc/xinetd.d/telnet Tập tin cấu hình /etc/xinetd.d/telnet
service telnet service telnet {{
disable = yes disable = yes flags = REUSE flags = REUSE socket_type = stream socket_type = stream wait = no wait = no user = root user = root server = server =
/usr/sbin/in.telnetd /usr/sbin/in.telnetd
log_on_failure += USERID log_on_failure += USERID
}}
Secure shell Secure shell
[root@database root]# ssh 172.16.10.10 [root@database root]# ssh 172.16.10.10 The authenticity of host '172.16.10.10 The authenticity of host '172.16.10.10 (172.16.10.10)' can't be established. (172.16.10.10)' can't be established.
RSA key fingerprint is RSA key fingerprint is
e6:bf:7d:40:a3:98:87:75:c7:a6:cb:03:49:3 e6:bf:7d:40:a3:98:87:75:c7:a6:cb:03:49:3 f:f7:47. f:f7:47.
Are you sure you want to continue Are you sure you want to continue
connecting (yes/no)? yes connecting (yes/no)? yes
Warning: Permanently added '172.16.10.10' Warning: Permanently added '172.16.10.10'
(RSA) to the list of known hosts. (RSA) to the list of known hosts.
root@172.16.10.10's password: root@172.16.10.10's password: Last login: Sat Sep 13 11:50:34 2003 Last login: Sat Sep 13 11:50:34 2003 [root@gateway root]# [root@gateway root]#
Shell scripts Shell scripts
#!/bin/sh #!/bin/sh case "$1" in case "$1" in 'start') 'start')
/squid/sbin/squid f /squid/etc/squid.conf /squid/sbin/squid ––f /squid/etc/squid.conf touch /var/lock/subsys/squid touch /var/lock/subsys/squid ;;;;
'stop') 'stop')
/squid/sbin/squid k shutdown /squid/sbin/squid --k shutdown f /var/lock/subsys/squid rm rm --f /var/lock/subsys/squid ;;;;
*)*)
echo "Usage: $0 { start | stop }" echo "Usage: $0 { start | stop }" ;;;; esac esac exit 0 exit 0