Tài liệu hướng dẫn
Thực hành UNIX
Phần sử dụng lệnh
-2-
Nội dung
z
Giới thiệu
z
Các lệnh về hệ thống file và bảo mật
z
Tái định hướng
z
Quản lý các tác vụ (jobs) và các quá trình (processes)
z
Một số tiện ích:
–
Dùng trình soạn thảo vi (visual intepreter)
–
Dùng dịch vụ truyền file FTP (File Transfer Protocol)
z
Lập trình shell
–
Chương trình shell đơn giản
– Một số cấu trúc điều khiển: if, while, for
-3-
Giới thiệu
z
Thực hành trên hệ điều hành Linux hoặc Solaris.
z Có thể login trực tiếp hay dùng chương trình telnet để kết
nối đến server
z
Mỗi người dùng phải có một tài khoản (account) để sử
dụng hệ thống. Mỗi tài khoản gồm có:
–
T
ên sử dụng (u
sername): duy nh
ất trong mỗi hệ thống
–
M
ật khẩu (p
assword): (
ít nhất 6 ký tự, bao gồm các chữ cái, ký số
hoặc ký tự đặc biệt)
–
Th
ư mục làm việc (home directory): nơi lưu trữ dữ liệu và có toàn
quyền sử dụng.
-4-
Login và logout
Mac II
login
logout (exit)
Unix
-5-
Log on vào hệ thống
z Trực tiếp: tại dấu nhấc của hệ thống, gõ username và password
z
Kết nối đến server từ qua chương trình telnet trên các máy
Windows:
(Start menuÆRunÆType “telnet”ÆClick OK button)
-6-
Log on vào hệ thống
z
Ví dụ, kết nối đến máy có địa chỉ IP là 172.28.11.192
-7-
Log on vào hệ thống
z
Gõ username và password
:
login: mt98u001
Password:
Last login: Sun Aug 12 07:05:01 from thuan.dit.hcmut.
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$_
(Lưu ý: password không hiển thị khi gõ)
-8-
Log on vào hệ thống
-9-
Logging out
z
Khi kết thúc công việc, cần phải thoát khỏi hệ
thống: Gõ: exit hoặc đóng cửa sổ telnet
z
Tất cả các quá trình đang chạy đều kết thúc
(ngoại trừ các quá trình được thực hiện với lệnh
nohup)
-10-
Một số chú ý
z
Hệ thống UNIX phân biệt chữ hoa và chữ thường
z
Nếu log on từ các máy Windows, cần tắt các
chương trình gõ tiếng Việt (Vietware, Vietkey …)
z
Đề xoá ký tự trước đó, có thể dùng phím
Backspace trong một số trường hợp không dùng
phím Delete được.
-11-
Các lệnh cơ bản
z
Một lệnh UNIX cơ bản có các thành phần
:
<command name> -<options> <arguments>
–
Command name: t
ên lệnh, cũng chính là file thực thi tương ứng
–
Options:
chọn lựa chức năng, có thể có nhiều thành phần
–
Arguments: th
ông số cho lệnh
z
Ví dụ
:
ls -al /etc
cd /tmp (no option)
whoami (no option and argument)
-12-
Danh định
z
Mỗi người dùng có một danh định duy nhất trong hệ thống. Đối với
người dùng, danh định chính là username duy nhất trong hệ thống
z
Đối với hệ thống, một danh định người dùng bao gồm:
–
UID (user identifier): danh
định phân biệt giữa các người dùng
–
GID (group identifier): danh định cho biết nhóm mà người dùng
thuộc về
z
Lệnh hiển thị UID và GID: id
z
Lệnh cho biết danh định: whoami hoặc who am i
V
ídụ
:
$ who am i
linux!hqthuan pts/1 Aug 17 14:38
$ whoami
hqthuan
-13-
Thư mục làm việc, thư mục hiện hành
z
Mỗi người dùng trong hệ thống đều có một thư mục làm
việc và người đó có toàn quyền trên đó
z H
i
ển thị thư mục làm việc
:
D
ùng lệnh
echo
để hiển thị biến môi trường
HOME:
$echo $HOME
/home/img
z
H
i
ển thi đường dẫn đến thư mục hiện hành
:
Dùng lệnh
pwd
$ pwd
/home/img
-14-
Hiển thị người dùng có mặt trong hệ thống
z
Lệnh
who:
$ who
root pts/1 Aug 17 15:02 (172.28.20.149)
mpi pts/2 Aug 17 15:05 (172.28.20.147)
hqthuan pts/8 Aug 17 14:25 (172.28.11.192)
-15-
UNIX password
Mac II
Unix
-16-
Thay đổimật khẩu
z
Lúc đầu, người dùng log on vào hệ thống có thể
không cần mật khẩu. Tuy nhiên, người dùng phải
thay đổi sau đó (ít nhất 6 ký tự, bao gồm các chữ
cái, ký số hoặc ký tự đặc biệt)
.
z
Ví dụ
:
$ passwd
New password:
Confirm new password:
-17-
Để được trợ giúp
z
Dùng lệnh
man
để xem trợ giúp cho một lệnh hay một hàm nào đó.
z
Một phím chức năng trong lệnh man:
-K
ết thúc: q -Về trang trước: b -Về trang sau: f
z
Ví dụ
:
$ man passwd
PASSWD(1) User utilities PASSWD(1)
NAME
passwd - update a user's authentication tokens(s)
SYNOPSIS
passwd [-k]] [-l] [-u [-f]] [-d] [-S] [username]
DESCRIPTION
Passwd is used to update a user's authentication token(s).
-18-
Làm việc với file hay thư mục
z
Cấu trúc hệ thống file
/
bin etc usrdev
srcincludels passwd hosts
. . .
-19-
Một số thư mục chính trong UNIX
/
: th
ư
mục gốc
/etc
: thư mục chứa cấu hình hệ thống
/dev
: thư mục chứa các file tương ứng với các thiết bị terminal, disk
drives, …
/tmp
: thư mục tạm (mọi người đều có toàn quyền trong thư mục này)
/home
: thư mục chứa các thư mục làm việc của người dùng
/bin
: thư mục chứa các file thực thi
-20-
Các kiểu file
z
Directory file
: l
à file đặc biệt, chứa thông tin của các file
khác
(Một thư mục thực chất là một file)
z
Ordinary file: file thông thường, chương trình hoặc dữ liệu
z
Special file
: file
đặc biệt, tương ứng với các thiết bị
(Device abstraction)
-21-
Thay đổi thư mục
z
Dùng lệnh cd
:
$cd <pathname>
với đường dẫn pathname cho biết thư mục cần chuyển
tới. Đường dẫn có thể tương đối (tính từ thư mục hiện
hành) hoặc tuyệt đối (tính từ thư mục gốc)
z
Thư mục đặc biệt:
–
Thư mục hiện hành: .
–
Thư mục cha:
-22-
Ví dụ
$cd /tmp (move to /tmp directory)
$cd /home/hqthuan (then we are in /home)
$pwd
/home/hqthuan
$cd (move to home directory)
$cd /etc/sysconfig/network-scripts
$pwd
/etc/sysconfig/network-scripts
-23-
Liệt kê nội dung thư mục
z
Dùng lệnh ls
:
ls -[option] directory_name
z
Ví dụ
:
$ ls
addr.c env.c fork.c lockf.c pipe1.c
procinfo.c
a.out exec1.c forkex.c lockf.h pipe2.c
sema.c
-24-
Options
-a liệt kê các file ẩn
-d xem tên của thư mục hiện hành
-F liệt kê các file và cho biết các kiểu của file qua ký hiệu ở cuối
Không có ký hiệu gì: file bình thường
'/‘ directories
‘*’ executable files
“@” linked file
-i cho biết số của inode của file
-l liệt kê đầy đủ các thuộc tính của file
-R liệt kê các thư mục con theo kiểu đệ quy
-t sắp xếp theo thời gian cập nhật
-25-
Ví dụ
z
Hiển thị đầy đủ thông tin:
$ls –l
total 1170
drwxr-xr-x 15 hqthuan other 512 Aug 10 2000 floppy
-rw-r r 1 hqthuan other 58984 Mar 9 2000 archive.tar
z
ông tin của một file:
dr w xr-xr-x 15 hqthuan staff 512 Aug 10 2000 floppy
Permissions Owner Date of last
moification
Filena m e
Directory (d) or file
Number of
links
size
Group O wner
-26-
Ví dụ
$ ls -a
. .libs .rhosts
io.c
.login 1.c
nohup.out
.cshrc .netscape debugging.html
.desksetdefaults .profile fork.c
(C
ác file ẩn có tên bắt đều bằng dấu chấm, ví dụ:
.login, .rhosts, .login)
-27-
Ví dụ
$ ls -R
.:
Desktop examples ex.tar
./Desktop:
Autostart kontrol-panel Linux Documentation Printer www.redhat.com
./examples:
c cmd
./examples/c:
addr.c env.c fork.c lockf.c pipe1.c procinfo.c sig1.c
a.out exec1.c forkex.c lockf.h pipe2.c sema.c sig2.c
./examples/cmd:
1.txt case.sh
-28-
Dùng wildcards
z
Wildcards là các ký tự dùng để thay thế cho các mẫu tương ứng với
tên file hay thư mục.
z
Wildcards:
–
*: thay thế cho 0, 1 hoặc nhiều ký tự
–
?: thay thế cho 1 ký tự
–
[…]: cho biết một vùng giá trị
z
Ví dụ:
$ls p*.pas
p10.pas p1.pas p2.pas p5.pas
$ls p?.pas
p1.pas p2.pas p5.pas
$ls p[1-3].pas
p1.pas p2.pas
-29-
Các lệnh trên file và thư mục
z
Tạo thư mục: mkdir
z Xoá file hay thư mục: rm
z
Copy: cp
z
Di chuyển: cd
/
bin etc usrdev
srcincludels passwd hosts
. . .
-30-
Tạo thư mục
z
Dùng lệnh mkdir
:
mkdir directory_name
Ví dụ
:
$pwd
/export/home/tas30
$mkdir examples
$ls –aF
./ .bash_logout .bashrc .emacs ex.tar
.screenrc
/ .bash_profile Desktop/ examples/ .kde/ .wl
-31-
Xoá file hay thư mục
z
Xoá thư mục trống:
rmdir directory_name(s)
z
Xoá thư mục không trống:
rm –r directory_name(s)
z
Xoá file:
rm –option file_name(s)
-32-
Ví dụ
(
Thực hành và nhận xét
)
$mkdir -p dir1/dir2/dir3
$cd dir1/dir2
$rmdir dir3
$cd /
$rmdir dir1
$rm -r dir1
$ls
dir1
dir3
dir2
-33-
Copy
z Copy files:
cp [-option] source_file destination_file
cp [-option] source_files destination_directory
z Copy thư mục:
cp -r source_directory(s) source_directory
z
Ví dụ:
$cp /etc/passwd .
$cp p*.pas /tmp
$cp /etc/sysconfig/network-sripts
/tmp
-34-
Di chuyển file hay thư mục
z
D
ùng lệnh
mv (move):
mv [option] filename1
filename2
directory1 directory2
filename directory
z
V
ídụ:
$mv examples lab1
-35-
Làm việc trên file
z
Tạo files
z
Hiển thị nội dung files
z
Tìm kiếm file
z
Tìm kiếm trong nội dung của file
-36-
Tạo file
z
Tạo file và nhập vào nội dung
:
cat > name_of_file
–
Sau khi nhập nội dung, gõ <Enter> để xuống dòng.
–
Ấn Ctrl-d để ghi nội dung soan thảo vào file và kết
thúc thao tác.
z
Ví dụ
:
$cat > test.txt
z
Tạo file không có nội dung (0 bytes):
touch filename
-37-
Hiển thị nội dung file
z
Dùng lệnh cat
:
cat filename
z
Với file có nội dung dài, dùng lệnh more
:
more filename
–
Dấu nhắc More (nn%) xuất hiện bên dưới màn hình.
–
Có thề dùng cách phím điều khiển trong lệnh more
:
z
space bar Hiển thị trang kế.
z
<RETURN> Hiển thị dòng kế.
z
q Thoát khỏi lệnh more.
z
b Về trang trước.
z
h Trợ giúp.
-38-
Hiển thị nội dung file
z
H
i
ển thi
n
dòng đầu tiên
c
ủa một
text file,
dùng
lệnh
head:
head -n filename
(nếu n=10, có thể bỏ option đi: head filename)
z
H
i
ển thi
n
dòng sau c
ùng c
ủa một
text file,
dùng
lệnh
last:
last -n filename
(nếu n=10, có thể bỏ option đi: last filename)
-39-
Tìm kiếm mộtfile
z
Tìm kiếm một file trong hệ thống file (file system) ,
dùng lệnh find:
find pathname -name filename -print
(Có thề dùng wildcard đặt trong dấu nháy kép)
z
Ví dụ:
$find / -name “*.cpp” -print
-40-
Tìm kiếm trong nội dung của file
z
Tìm một chuỗi ký tự trong một text file bằng lệnh
grep:
grep pattern filename(s)
pattern: chuỗi ký tự cần tìm kiếm. Nếu chuỗi có ký tự
đặc biệt thì phải đặt trong dấu nháy đơn.
z
Ví dụ:
$grep UNIX /usr/man/man*/*
$grep -n '[dD]on\'t' notes
-41-
Các quyền trên file và thư mục
z
Hệ thống UNIX bảo vệ các file và thư mục thông
qua các quyền thiết lập trên đó.
z
Có 3 quyền
:
– r đọc
–
w ghi
–
x thực thi
z
Các quyền được áp dụng trên 3 nhóm người dùng
:
– u chủ sở hữu
–
g những người cùng nhóm với chủ sở hữu
–
o tất cả những người khác
-42-
Phân quyền
z
Các quyền áp dụng cho 3 nhóm người dùng kết hợp lại thành 9
bit như sau
:
rwx rwx rwx
user group other
z
Có thể xem Quyền truy cập bằng lệnh ls -l:
V
ídụ:
$ls -l
rwxr-xr-x
Với ví dụ trên:
–
Chủ sở hữu có quyền r (đọc), w (ghi), và x (thực thi).
–
Các thành viên cùng nhóm với chủ sở hữu có quyền r và x.
–
Những người khác có quyền r và x
.
-43-
Thay đổi các quyền trên file và thư mục
z
Dùng lệnh chmod.
chmod access_mode file(s)
–
access - quyền truy cập
–
file(s) - một hoặc nhiều file
z
Quyền truy cập có thể dùng theo 2 dạng:
–
Dạng ký hiệu (symbolic): [ugo][+ - =][rwx]
–
Dạng số bát phân (octal): [0-7][0-7][0-7]
-44-
Phân quyền
z
Dạng số bát phân
:
Octal Binary Corresponds to permissions
0 000
1 001 x
2 010 -w-
3 011 -wx
4 100 r
5 101 r-x
6 110 rw-
7 111 rwx
-45-
Ví dụ
$mkdir perm
$touch test
$ls –l
total 110
drwxr-xr-x 15 hqthuan other 512 Aug 10 2001 perm
-rw-r r 1 hqthuan other 0 Aug 10 2001 test
$chmod o-rx perm
$chmod g+w perm
$ls -al
total 1170
drwxrwx 15 hqthuan other 512 Aug 10 2001 perm
-rw-r r 1 hqthuan other 0 Aug 10 2001 test
-46-
Ví dụ
$chmod 750 perm
$chmod 700 test
$ls -al
total 1170
drwxr-x 15 hqthuan other 512 Aug 10 2001
perm
-rwx 1 hqthuan other 0 Aug 10 2001
test
-47-
Thay đổi quyền mặc định
z Khi một file được tạo ra, nó có một quyền được định
nghĩa trước. Người dùng có thể thay giá trị mặc định này
bằng cách thay đổi mặt nạ quyền (file-creation mode
mask).
z Hiển thị mặt nạ quyền :
$umask
022
z
Thay đổi mặt nạ quyền
:
umask nnn
("n" : 0 7)
-48-
Các giá trị của mặt nạ quyền
Octal number Access permissions given
0rwx
1 rw
2 r-x
3 r
4 -wx
5 -w
6 x
7
-49-
Ví dụ
z Thay đổi mặt nạ để các file được tạo ra sau đó không cho
những người ngoài chủ sở hữu truy cập
:
$umask 077
z
Thay đổi mặt nạ để các file được tạo ra sau đó không cho
những người ngoài chủ sở hữu thay đổi nội dung
:
$umask 022
-50-
Các phân quyền trên file/thư mục
read a file in
write to a file in
execute a file in
execute a shell script in
execute a
shell script
x
create file in rename file in delete
file
write a file
w
list files in read a file
r
DirectoryFilePermission