Top Banner
88

Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Apr 30, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added
Page 2: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hệ thống tệp trongLinuxLinux

Page 3: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tham khảo• Bài giảng của Department of Computer Science

of NIU

http://www.cs.niu.edu

3

Page 4: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

1. Tệp tin và thư mục• Trong linux và hầu hết các hệ điều hành,

dữ liệu được lưu trữ dưới dạng các tệp tin (file)

• Tệp tin– Chứa dữ liệu– Lưu trữ ở ổ đĩa ngoài

• Thư mục– Chứa các tệp tin và thư mục con– Lưu trữ ở ổ đĩa ngoài– Nhờ đó dễ dàng quản lý tệp tin

• Hệ thống tệp = hệ thống thư mục và tệp tin4

Page 5: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Cấu trúc hệ thống tệp

Biểu diễn bởi một cây phân cấp thư mục và các tệp dữ liệuMột thư mục dùng để tạo nhóm một tập các Một thư mục dùng để tạo nhóm một tập các

tệp dữ liệu

Một thư mục có thể chứa các thư mục con

Thư mục gốc (/) là điểm vào đầu tiên cho cả cây thư mục

5

Page 6: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các thư mục thông dụng / (thư mục gốc)

/bin : thư mục tệp chương trình cơ bản

/boot : thư mục chứa hạt nhân của HĐH

/etc : thư mục các tệp cấu hình

/dev : thư mục các tệp thiết bị /dev : thư mục các tệp thiết bị

/home : thư mục chứa dữ liệu NSD

/lib : thư viện hệ thống

/usr : thư mục ứng dụng

/var : thư mục dữ liệu hệ thống, thường được cập nhật

6

Page 7: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Cấu trúc thư mục

7

Page 8: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các kiểu thư mục• Thư mục gốc: /

– Thư mục gốc cho mọi thư mục

– Luôn bắt đầu bằng dấu /

• Thư mục chính (thư mục cá nhân): $HOME or ~• Tạo bởi người quản trị hệ điều hành

• Lần đầu đăng nhập sẽ được vào thư mục này

• Với tài khoản $HOME, người dùng có thể tạo các thư mục riêng củamình

• Thường nằm trong thư mục /home, ví dụ /home/ttdlinh

• Thư mục làm việc hiện thời: .– Là thư mục hiện thời mà người dùng đang làm việc

– Còn gọi là Current Working Directory (cwd)

• Thư mục cha: ..– Là thư mục chứa thư mục làm việc hiện thời

8

Page 9: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tệp Linux vs. tệp Windows Giống nhau

độ dài tối đa cho tên tệp là 255 Chấp nhận tất cả các kí tự để đặt tên tệp (nhưng nên tránh

sử dụng các kí tự đặc biệt như * ? [ ] & để tránh sự nhậpnhằng trong câu lệnh sử dụng sau này)

Tính đặc thù của Unix Tính đặc thù của Unix Quản lý dưới một khung nhìn của tệp cho cả thư mục và

các loại tài nguyên hệ thống (ngoại vi, bảng phân chươngđĩa)

Không có khái niệm phần mở rộng của tên tệp (kí tự '.' trong tên tệp được đối xử như mọi kí tự khác

Không dùng ổ đĩa logic trong cây thư mục '/' được dùng thay cho '\' trong đường dẫn thư mục

9

Page 10: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Kiểu của tệp

Có 3 loại tệp chính trong một cây thư mục của Unix: Tệp thư mục là một thư mục trong đường dẫn phân

loại (vd., /usr, /home,…)loại (vd., /usr, /home,…)

Tệp thông thường là một tệp chứa dữ liệu hoặc tệp chương trình (vd., /bin/passwd, /etc/passwd, …)

Tệp đặc biệt là một tệp thiết bị tương ứng với thiết bị ngoại vi hoặc các tệp tự sinh bởi HĐH (vd., /dev/hda1, /dev/cdrom, /dev/lp0, …)

10

Page 11: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Đường dẫn

Hai cách để xác định vị trí của tệp tin hoặc thư mục:• Sử dụng đường dẫn tuyệt đối

– Đường đi đầy đủ kể từ thư mục gốc /– Và luôn luôn bắt đầu từ thư mục gốc (/)!– Ví dụ: /home/ux/krush/unix/assignments/assign1.sp04

• Sử dụng đường dẫn tương đối• Sử dụng đường dẫn tương đối– Là đường dẫn truy vết từ thư mục hiện thời– Không phải bắt đầu từ thư mục gốc (/)– Dấu hai chấm (..) để đi đến thư mục cha của thư mục hiện

thời– Dấu một chấm (.) trỏ tới thư mục hiện thời– Ví dụ: unix/assignments/assign1.sp04

11

Page 12: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Đường dẫn tương đối và tuyệt đối

12

Page 13: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Đường dẫn tuyệt đối cho tệp tin file3

đường dẫn tuyệt đối:đường dẫn tuyệt đối:đường dẫn tuyệt đối:

/usr/staff/joan/file3

đường dẫn tuyệt đối:

/usr/staff/joan/file3

13

Page 14: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các câu lệnh với thư mục

14

Page 15: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Quản lý thư mục pwd: hiển thị đường dẫn tuyệt đối của thư mục hiện tại cd: thay đổi vị trí thư mục hiện tại

$ cd /home/tuananh $ cd tuananh

ls: liệt kê các tệp trong một thư mục $ ls $ ls /home/tuananh $ ls /home/tuananh $ ls –la tuananh

tuỳ chọn -a cho phép hiển thị cả các tệp ẩntuỳ chọn -l cho phép hiển thị thuộc tính cho mỗi tệp (kiểu, quyền, liên kết, chủ sở hữu, nhóm sở hữu, kích thước, ngày sửa đổi)

mkdir /home/tuananh/van_ban tạo một thư mục rỗng

rmdir van_ban xoá một thư mục rỗng

15

Page 16: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Câu lệnh ls

16

Page 17: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

• ls

Hiển thị nội dung của thư mục hiện hành

• ls path_name

Hiển thị nội dung của thư mục xác định bởi path_name.

• ls –l

Câu lệnh ls

• ls –l

Hiển thị chi tiết

• ls –a

Hiển thị tất cả tệp tin ẩn

• ls -la

Sử dụng đồng thời –l và -a

17

Page 18: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Câu lệnh ls -l

18

Page 19: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung của một thư mục

% ls -l unix/gradestotal 10-rwxr-xr-x 3 krush csci 72 Jan 19 19:12 330assign-graderun-rwxr-xr-x 1 krush csci 70 Jan 19 19:13 330exam-graderun-rwxr-xr-x 1 krush csci 70 Jan 19 19:13 330exam-graderun-rwxr-xr-x 2 krush csci 70 Jan 19 19:12 330quiz-graderun-r-x------ 1 krush csci 468 Feb 1 11:55 test-330grade-r-x------ 1 krush csci 664 Feb 1 11:55 test-330grade,v

19

Page 20: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tên đặc biệt

« . » : thư mục hiện tại

« .. » : thư mục cha

« ~ » : thư mục cá nhân « ~ » : thư mục cá nhân

« .xxx » : tệp ẩn (e.g., /home/tuananh/.bashrc)

20

Page 21: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Câu lệnh mkdir

21

Page 22: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tên thư mục

• Sử dụng các kí tự sau:– Kí tự hoa (A-Z)

– Kí tự thường (a-z)

– Số (0-9)

– Dấu gạch dưới ( _ )

– Dấu chấm ( . )

22

Page 23: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tên thư mục• Khi đặt tên thư mục, tránh các kí tự sau:

& * \ | [ ] {}

$ <> () # ? /

“ ‘ ; ^ ! ~

Space Tab

23

Page 24: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ: Tạo một thư mục

usretcdev home

uxmptty null skel bin local ucb

z036473

.cshrc .logoutcsci330You are here

Temp

Tạo một thư mục tên là Data dưới thư mục csci330

a) Sử dụng đường dẫn tuyệt đối:

b) Sử dụng đường dẫn tương đối::

c) Tạo luôn cả thư mục cha (nếu chưa tồn tại):

mkdir -p csci330/Data/subData

mkdir /home/mp/z036473/csci330/Data

mkdir csci330/Data

.cshrc .logoutcsci330

Data

Temp

24

Page 25: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Câu lệnh cd

25

Page 26: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Thay đổi thư mục

usretcdev home

uxmptty null skel bin local ucb

z036473

.cshrc .logoutcsci330 Temp

Trong thư mục Data, đi đến thư mục HOME

a) Sử dụng đường dẫn tuyệt đối:

b) Sử dụng đường dẫn tương đối:

cd /home/mp/z036473

cd $home cd cd ~ cd ~z036473cd ../..

.cshrc .logoutcsci330

You are here Data

Temp

26

Page 27: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Xóa thư mục• Để xóa thư mục trống, dùng “rmdir”Ví dụ: Để xóa thư mục “test”% rmdir test

• Để xóa thư mục không rỗng, sử dụng lệnh “rm –r”Ví dụ: Để xóa thư mục không rỗng “old-data”% rm –r old-data

27

Page 28: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ$ cd ~

$ pwd

/home/tuananh

$ ls -la

-rw-r--r-- 1 tuananh user1 2451 Feb 7 07:30 .bashrc

-rw-r--r-- 1 tuananh user1 4025 Feb 10 19:12 linux.ppt

drwxr-xr-- 2 tuananh user1 512 Feb 10 19:12 linux

$ mkdir vanban

$ cd vanban

$ pwd

/home/tuananh/vanban

$ cd ..

$ pwd

$ rmdir vanban

28

Page 29: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 1

• Trong thư mục cá nhân bạn (ví dụ/home/students/2017xxxx) tạo thư mục dir1 rồitạo thư mục dir2 trong thư mục dir1

• Hiển thị nội dung của dir1, dir2

• Di chuyển tới dir2• Di chuyển tới dir2

• Quay lại thư mục home

• Xóa dir1 và dir2

29

Page 30: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các siêu kí tự

* dùng để thay thế cho một chuỗi kí tự bất kì bao gồm cả xâu rỗng

? thay thế cho một kí tự bất kì

[ ] được thay thế bởi một kí tự trong một tập [ ] được thay thế bởi một kí tự trong một tập kí tự cho trước

[! ] được thay thế bởi một kí tự không có trong một tập kí tự cho trước

30

Page 31: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ

$ ls -l *.[c,h]

-rw-r--r-- 1 tuananh user1 2451 Feb 7 07:30 myprog.c

-rw-r--r-- 1 tuananh user1 2451 Feb 7 07:30 myprog.h

$ ls -l *prog

drwxr-xr-- 2 tuananh user1 512 Feb 10 19:12 c_prog

drwxr-xr-- 2 tuananh user1 512 Feb 10 19:12 java_prog

$ ls -l .*

-rw-r--r-- 1 tuananh user1 451 Feb 7 07:30 .bashrc

-rw-r--r-- 1 tuananh user1 225 Feb 7 07:30 .bash_profile

-rw-r--r-- 1 tuananh user1 351 Feb 7 07:30 .bash_logout

31

Page 32: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các câu lệnh chung trên thư mục và tệp

32

Page 33: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Quản lý tệp

$cp file1 […] dir sao chép một hoặc nhiều tệp vào một thư mục

$mv file1 […] dir di chuyển một hoặc nhiều tệp đến một thư mục

$rm file1 […] xoá một hoặc nhiều tệp

tuỳ chọn -R (recursive) cho phép sao chép/di chuyển/xoá toàn bộ thư mục

bao gồm cả các thư mục con

33

Page 34: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Copy tệp, thư mục• Cú pháp copy một tệp tin:

•cp source-file new-file

• cp source-file destination-dir

• Lựa chọn thường dùng:

-i nếu tệp tin có tên “new-file” đã tồn tại, câu lệnh-i nếu tệp tin có tên “new-file” đã tồn tại, câu lệnhcp sẽ hỏi lại trước khi ghi đè

-p lưu giữ các thuộc tính cơ bản (ngày tạo/sửa, cácquyền)

-r cóp đệ qui các tệp tin và thư mục con

34

Page 35: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Copy tệp, thư mục

• Ví dụ:• $cp /home/tuananh/baitap.txt /backup/baitap1.txt• $cp /home/tuananh/baitap.txt /newdir

• Nếu newdir là một thư mục thì sẽ có /newdir/baitap.txt được tạora.

• $cp –r /home/tuananh/btlinux /home/student• Nếu btlinux và student đều là thư mục

35

Page 36: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Di chuyển tệp tin

• Để di chuyển tệp từ thư mục này sang thư mục khác hoặc đặt tên lại tệp, hãy dùng lệnh có tên "mv".

• Thư mục có chứa các tập tin nguồn và thư mục • Thư mục có chứa các tập tin nguồn và thư mục đích phải có quyền ‘ghi’ và quyền ‘thực thi’.

36

Page 37: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Lệnh mv

37

Page 38: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Di chuyển tệp tin, thư mục• Cú pháp: mv source-file destination-file

• Nếu tệp đích tồn tại, "mv" sẽ không ghi đè lên tệp đó.

Ví dụ: Chuyển tệp “assign1.txt” tới một thư mục Ví dụ: Chuyển tệp “assign1.txt” tới một thư mục khác và đặt tên lại là “assign1.save”

% mv assign1.txt ~/archive/assign1.save

% mv assign1.txt ~/archive

38

Page 39: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Di chuyển Tệp tin, thư mục

39

Page 40: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Đổi tên tệp, thư mục• Để thay đổi tên của một thư mục hoặc tệp hiện có,

sử dụng lệnh có tên là "mv“

• Ví dụ: Thay tên của tệp tin từ “unix” sang tên “csci330”

% mv unix csci330% mv unix csci330

• Đối với ví dụ trên, điều gì sẽ xảy ra nếu "csci330" đã tồn tại trong thư mục hiện thời và đó là tên của một thư mục?

40

Page 41: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Xóa Tệp tin, thư mục

• Bạn nên loại bỏ các tệp không cần thiết để giải phóng không gian đĩa.

• Để loại bỏ/xóa tệp, hãy dùng lệnh có tên "rm".• Cú pháp:

rm file1 file2 […]rm file1 file2 […]• Các tùy chọn thường được sử dụng:• -f loại bỏ mà không quan tâm các quyền của file• -i xác nhận trước khi loại bỏ• -r loại bỏ tất cả thư mục con trong thư mục được chỉ

định

41

Page 42: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Xóa tệp tin, thư mục• Người dùng phải có quyền ghi với các tệp, thư

mục trong đường dẫn.

• Người dùng phải có quyền thực thi với các thưmục trong đường dẫn.

Ví dụ: Xóa tệp có tên “old-assign”

% rm unix/assign/old-assign

42

Page 43: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ$ ls -l

-rw-r--r-- 1 tuananh user1 16 Feb 10 19:12 test.txt

drwxr-xr-- 2 tuananh user1 512 Feb 10 19:14 mydir

$ cp test.txt mydir

$ ls -l mydir

-rw-r--r-- 1 tuananh user1 16 Feb 12 20:03 test.txt-rw-r--r-- 1 tuananh user1 16 Feb 12 20:03 test.txt

$ rm –R mydir

$ ls -l

-rw-r--r-- 1 tuananh user1 16 Feb 10 19:12 test.txt

$ rm test.txt

$ ls -l

$

43

Page 44: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 2

• Trong thư mục cá nhân (ví dụ/home/students/2017xxxx) tạo thư mục dir11 vàdir22

• Copy 4 tệp bất kì vào dir22 với các tên mới f1.txt, f2.txt, f3.txt, f4.txtf2.txt, f3.txt, f4.txt

• Chuyển dir22 vào trong dir11

• Xóa tất cả tệp tin trong dir22 có phần mở rộng .txt

• Xóa dir22

44

Page 45: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Nhắc lại: các câu lệnh với Tệp tin

45

Page 46: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tìm kiếm file

$ find thư_mục expressions Cho phép tìm kiếm các file trong một thư mục (ngầm định là trong thư

mục hiện tại) với một số điều kiện hoặc các lệnh thực thi trên tập cácfile tìm được.

Các điều kiện Tên : -name tên Tên : -name tên

Quyền truy cập : -perm quyền_truy_cập

Kiểu : -type d/f/...

Kích thước : -size N

Các đơn vị kích thước b: block, k: kB, M: megabyte, G: Gb.

Thời gian : -atime N, -mtime N, -ctime N

Kết quả trả về đường dẫn tuyệt đối đến tệp tìm được.

46

Page 47: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ $find /usr -name toto

Tìm kiếm file tên là toto trong thư mục /usr (bao gồmcả các thư mục con của /usr)

$find /usr -name "*.c " Đưa ra danh sách các file kết thúc bằng « .c »

$find / -mtime 3 $find / -mtime 3 Tìm tất cả các file có thay đổi trong 3 ngày gần đây

$find / -size 2G Tìm tất cả các file có kích thước lớn hơn 2G

$find / -type f -user olivier -perm 755 Tìm tất cả các file thuộc về người sử dụng olivier,

đồng thời có quyền truy cập là 755

47

Page 48: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ

Ví dụ 1: Tìm tệp tin kết thúc bởi “.bak”.

% find ~ “*.bak”

Example 2: Tìm tệp tin vừa thay đổi ngày hôm qua.Example 2: Tìm tệp tin vừa thay đổi ngày hôm qua.

% find ~ –mtime –1

48

Page 49: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 2• Trong thư mục cá nhân (ví dụ

/home/students/2017xxxx) tạo thư mục dir11, dir22

• Copy 4 tệp bất kì vào dir22 với các tên mớif1.txt, f2.txt, f3.text, f4.text

• Chuyển dir22 vào trong dir11• Chuyển dir22 vào trong dir11

• Xóa tất cả tệp tin trong dir22 có phần mở rộng.text

• Tìm tất cả tệp tin trong dir11 có phần mở rộng.txt

• Trong thư mục cá nhân, tìm tất cả tệp tin vớitên bắt đầu bằng “test” và kích thước hơn 4MB

49

Page 50: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Câu lệnh “ln”

• Cho phép tệp tin được hiển thị trong nhiều thư mục

• 2 loại:– Liên kết vật lý ( hard link)– Liên kết vật lý ( hard link)

– Liên kết biểu tượng (symbolic link)

• -> Cần phải hiểu cách tổ chức và lưu trữ tệp tin trong Linux

50

Page 51: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Khái niệm inode Trong Linux ổ đĩa được chia thành các đơn vị lưu trữ

gọi là block Kích thước block thay đổi tùy phiên bản hệ điều

hành: 512 byte -> 4kB Lưu trữ một tệp kích thước lớn trong Linux như thế Lưu trữ một tệp kích thước lớn trong Linux như thế

nào? Một inode là một điểm vào của 1 file trên hệ thống tệp Nội dung của tệp được lưu trong các khối dữ liệu

một tệp rỗng = vẫn có inode nhưng inode không chỉ đến cáckhối dữ liệu

Một thư mục là một tệp với nội dung là một bảng liênkết một liên kết gắn một vị trí của tệp với một inode của hệ thống

tệp

Page 52: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Inode: Minh họa

52

Page 53: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết vật lý (1)

Một liên kết vật lý là một quan hệ giữa tên tệp trong thư mục với một inode

Có thể có nhiều liên kết vật lý đến cùng một inode

$ln fbis lien

lý đến cùng một inode

Lệnh ln cho phép tạo một liên kết vật lý đến một inode (tệp) đã tồn tại ln tep_goc tep_moi

tệp mới chia sẻ cùng inode và khối dữ liệu của tệp ban đầu

53

Page 54: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết vật lý

2406

2407

2408

.

.

home

z036473

. 1076

.. 2083

aa 2407

Contents of dir1

.

.dir3

dir1 dir2

aa

bb. 1070

.. 2050

bb 2407

Contents of dir3

54

Page 55: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết vật lý (2) Số hiệu inode của tệp có thể xem được bằng

$ ls -i Số liên kết vật lý đến một inode có thể được

xem bằng lệnh ls –l$ ls -l-rw-rw-r-- 1 tuananh user1 0 Nov 12 15:19 file-rw-rw-r-- 1 tuananh user1 0 Nov 12 15:19 filedrwxr-xr-x 2 tuananh user1 4096 Dec 14 17:50 dir

Tại sao với một thư mục luôn có ít nhất 2 liênkết vật lý?

Xoá một tệp (lệnh rm) đồng nghĩa với xoá mộtliên kếtNếu là liên kết vật lí cuối cùng trỏ đến inode được xoáthì các khối liên quan đến inode cũng được xoá theo

55

Page 56: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết biểu tượng

ln –s duong_dan_tep_goc tep_moi ln –s duong_dan_tep_goc tep_moi

VD: trong thư mục R3 thực hiện:

ln –s R2/nouveau lien_symbolique khi tạo liên kết biểu tượng (tuỳ chọn –s) một inode mới được tạo

ra

inode này chứa tên (dạng tuyệt đối hay tương đối) của phần tửđược trỏ tới

56

Page 57: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết biểu tượng ở các hệ thống tệp khác nhau

57

Page 58: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Liên kết biểu tượng vs. Liên kết vật lý

Liên kết biểu tượng cho phép tránh được các hạn chế về mặt dung lượng của thiết bị lưu trữ Một liên kết vật lý luôn luôn chiếm một số lượng

inode nhất địnhinode nhất định

Chúng ta có thể phân biệt rõ một file được tạo ra và file gốc trong một liên kết biểu tượng Điều gì sẽ xảy ra khi một người xóa đi file gốc ?

58

Page 59: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ

$ ls -l

-rw-r--r-- 1 tuananh user1 8 Feb 10 1:12 test.txt

$ ln test.txt link1

$ ln -s test.txt link2

$ ls -l link*$ ls -l link*

-rw-r--r-- 2 tuananh user1 16 Feb 10 1:12 link1

lrw-r--r-- 1 tuananh user1 16 Feb 10 1:13 link2->test.txt

59

Page 60: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các kiểu tệp Các ký hiệu dưới đây được sử dụng để biểu diễn

các kiểu tệp - : tệp thông thường

d : thư mụcd : thư mục

b : tệp đặc biệt (block)

c : tệp đặc biệt (ký tự)

l : link

m : phần bộ nhớ trong dùng chung

p : đường ống

Sử dụng lệnh ls –l để xem kiểu tệp

60

Page 61: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Exercise 3

• Trong thư mục cá nhân (ví dụ/home/students/2017xxxx) tạo thư mục dir3, sauđó là dir4 bên trong dir3

• Tạo tệp file1 trong dir4

• Tạo tệp file2 trong dir3 liên kết vật lý đến file1• Tạo tệp file2 trong dir3 liên kết vật lý đến file1

• Tạo file file3 trong dir3 liên kết biểu tượng đến file1

• Xem nội dung của file2 và file3

• Điều gì xảy ra nếu xóa nội dung của file 1?

61

Page 62: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các câu lệnh thông dụng với Thư mục và Tệp tin

62

Page 63: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các câu lệnh dành riêng cho Tệp tin

Create EditDisplay Contents

Print Others

63

Page 64: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tạo Tệp tin mới

See Text EditorsSection 03

See the C shellSection 06

64

Page 65: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tạo Tệp tin với lệnh Cat

Example:Example:mp% cat > myfileThis is line 1 of inputLine 2 of input^dmp%mp% cat myfileThis is line 1 of inputLine 2 of input

65

Page 66: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tạo một file rỗng với lệnh Touch• touch [OPTION]… FILE…

Tạo một file rỗng, kích thước 0 nếu file chưa tồn tại.

Nếu không, cập nhật thời gian truy cập file.

Example: % touch abc.txt

• touch –a [filename]

66

• touch –a [filename]

Chỉ thay đổi thời gian truy nhập file

• touch –m [filename]

Chỉ thay đổi thời gian sửa file

Page 67: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Tạo một File với lệnh Echo• echo “string” > filename

Tạo tệp filename với nội dung như trong “string”

Ví dụ: % echo ’hello world’ > abc2.txt

Kiểm tra:

67

Kiểm tra:

% ls

% cat abc2.txt

Page 68: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Chỉnh sửa Tệp tin văn bản

Editing TextFiles

nano geditvi awk

68

Page 69: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung Tệp tin văn bản

Display TextFile contents

cat more less head tail

69

Page 70: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Dùng Lệnh Cat hiển thị nội dung Tệp tin

70

Page 71: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung Tệp tin văn bản• Lệnh cat có thể được sử dụng để hiển thị /

nối một hoặc nhiều tệp, hiển thị đầu ra cùng một lúc.

Ví dụ: Hiển thị nội dung của tệp tin văn bản có tên là “assign1.txt”.tên là “assign1.txt”.

% cat assign1.txt

71

Page 72: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung Tệp tin văn bản• Các lệnh có tên “more" và “less" có thể được

sử dụng để hiển thị nội dung của một hoặc nhiều tệp tin (hiển thị theo trang)

Ấn Space bar – hiển thị trang tiếp theob – quay lại trang trướcEnter Key – xem dòng tiếp theo

Ví dụ: Hiển thị nội dung tệp tin “assign1.txt” theo từng trang một lần.

%more assign1.txt

72

Page 73: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung Tệp tin văn bản

• Lệnh có tên “head" có thể được sử dụng để hiển thị phần đầu của (các) tệp tin được chỉ định; kích thước đoạn mặc định để xem là 10 dòng.

Ví dụ: Hiển thị 20 dòng đầu tiên của tệp có tênlà “assign1.txt”.

% head –20 assign1.txt

73

Page 74: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Hiển thị nội dung Tệp tin văn bản• Lệnh có tên "đuôi" có thể được sử dụng để

hiển thị phần kết thúc của (các) tệp được chỉ định; kích thước đoạn mặc định để xem là 10 dòng.

Ví dụ: Hiển thị 10 dòng cuối cùng của tệp có tên Ví dụ: Hiển thị 10 dòng cuối cùng của tệp có tên là “assign1.txt”.

% tail assign1.txt% tail –10 assign1.txt

74

Page 75: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 4

• Tạo tệp mới bằng nano. Hãy nhập vào tệphơn 30 dòng văn bản

• Sử dụng cat để hiển thị nội dung của tệp

• Sử dụng head để hiển thị 7 dòng đầu tiên

• sử dụng tail để hiển thị 7 dòng cuối cùng.

75

Page 76: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các lệnh khác với Tệp tin văn bản

Other FileOperations

Combinecontents

Extractcontents

Comparecontents

Filesize

Compresscontents

sort

Uniquelines Encrypt/

decrypt

76

Page 77: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Grep : Tìm dòng trong Tệp tin

$grep [-options] expreg [tệp] Tìm kiếm trong các tập tin các dòng có chứa xâu kí tự

đáp ứng các điều kiện nhất định. Các điều kiện được biểu diễn trong một biểu thức chính quy.

options (lựa chọn):options (lựa chọn): -c : đếm số dòng thỏa mãn điều kiện -I : chỉ ra tệp chứa mẫu thỏa mãn điều kiện. -i : không phân biệt chữ hoa chữ thường. -n : trả về số dòng

77

Page 78: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Grep: biểu thức mô tả xâu tìm kiếm Các kí tự sau được dùng trong biểu thức:. dùng để thay thế mọi kí tự

* lặp lại kí tự trước. Ví dụ: ba* bao gồm: ba, baa, baaa

^ bắt đầu một dòng. Ví dụ: ^Hom

$ kết thúc một dòng. Ví dụ: Hom$

[...] danh sách hoặc dãy các ký tự. Ví dụ [a,b,c] thay thếcho a hoặc b hoặc c

[^..] danh sách hoặc dãy các ký tự loại trừ [^c, d]

Chú ý: Biểu thức phải nằm giữa dấu “”

78

Page 79: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ

$grep “^t" /etc/passwd Tìm trong /etc/passwd tất cả các dòng bắt đầu bằng

“t”

$grep [^t] /etc/passwd$grep [^t] /etc/passwdTìm tất cả các dòng không bắt đầu bằng “t”

$grep “tuananh" /etc/passwd Tìm tất cả các dòng có chứa "tuananh“

$grep “tuananh$" /etc/passwd Tìm tất cả các dòng có chữ "tuananh“ ở cuối dòng.

79

Page 80: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Lệnh cut

80

Page 81: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Các trường trên một dòng

81

Page 82: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

cut : Trích xuất các trường từ Tệp tin$cut -options [tệp] options (lựa chọn) -c<vị trí kí tự> trích xuất theo vị trí kí tự. -f<số của trường> trích xuất theo trường -f<số của trường> trích xuất theo trường -d<kí tự phân đoạn>

Ví dụ $cut -c5 file #Trích ra kí tự thứ 5 ở tất cả các dòng

$cut -c5-10 file #Trích ra kí tự thứ 5 đến thứ 10

$cut -d: -f1 /etc/passwd #hiển thị tất cả người dung trong hệ thống

82

Page 83: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

sort: sắp xếp nội dung một tệp tin

$sort -options file_name Đảo các dòng trong tệp để các dòng được sắp xếp theo

một thứ tự nào đó được đặc tả trong options. option

-b: bỏ qua tất cả các dấu cách ở đầu tất cả các trường -b: bỏ qua tất cả các dấu cách ở đầu tất cả các trường -d : sắp xếp theo thứ tự từ điển (ký tự, chữ số) -r : đảo ngược thứ tự -f : không phân biệt chữ hoa chữ thường. -t x : phần tử chia tách là kí tự x -n sắp xếp theo thứ tự số -k x: chỉ định trường được sử dụng làm khóa sắp xếp.

83

Page 84: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Ví dụ

carnet.txtmaurice:29:0298334432:Crozon marcel:13:0466342233:Marseille robert:75:0144234452:Paris yvonne:92:0133444335:Palaiseauyvonne:92:0133444335:Palaiseau

$cut –d: -f1 carnet.txt

Trích lấy trường tên đầu tiên.

$sort -n -t : -k2 carnet.txtSắp xếp theo trường 2.

84

Page 85: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Lệnh wc

85

Page 86: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 5

• Tạo tệp có tên dulieu.txt theo cấu trúc sau:Name* Phone Number* StudentIDFile content as follows:

-- begin file --Tran Viet Anh* 0912345678* 20090158Giang Tuan Anh* 0912345679* 20090077Giang Tuan Anh* 0912345679* 20090077Bui Hung Cuong* 0112345678* 20090388Nguyen Huy Duc* 0112445678* 20090798Vu Binh Duong* 0914445678* 20090621Pham Đinh Le Hao* 38223344* 20090991-- end file –

86

Page 87: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Bài tập 5 (tiếp)

• Tạo lệnh để trích xuất tất cả các tên trong tệp

• Tạo lệnh để trích xuất tất cả tên và số điện thoại tương ứng trong tệp

• Tạo lệnh để sắp xếp nội dung tệp theo tên theo thứ tự từ điểnthứ tự từ điển

• Tạo lệnh để trích xuất dòng có chứa một học sinh tên là X

87

Page 88: Phan 1 Linux-Chuong 2-hethongfile dungthieu ref added

Cảm ơn!

88