1. Trang chủ
  2. » Luận Văn - Báo Cáo

bài 2 Làm quen với Linux command

17 1,8K 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 891,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài 2. Làm quen với Linux command 1. Đăng nhập và tắt máy 1 2. Kernel, Shell 2 3. Virtual Console và Terminal 3 4. Lệnh trong Linux 3 a. Cách viêt lệnh 3 b. Thực thi executable file 4 c. Shell script 4 d. Metacharacters 5 e. Help 5 f. History 6 4. su 6 5. Các thao tác quen thuộc với File và thư mục 6 a. Cấu trúc file và thư mục của Linux khác với của Windows 6 b. Các lệnh xem, tạo mới, xóa, di chuyển, đổi tên file và thư mục 7 c. Midnight Commander (mc) 9 d. Link 10 e. Archive và Compress file 10 f. Tìm kiếm file và thư mục 11 6. Filesystem Hierarchy standard 12 7. Khái niệm file theo nghĩa rộng trong UNIX/Linux 13 8. Redirection và xargs 14 a. Redirect stdin, stdout, stderr to file 14 b. Pipe và kết hợp với grep, wc, sort, less 16 c. xargs 16 9. VIM editor 16 10. Regular expression 17 1. Đăng nhập và tắt máy Linux là hệ thống đa người sử dụng nên khi khởi động bạn phải cho biết định danh của mình trên hệ thống qua màn đăng nhập. - Có thể có 3 màn hình đăng nhập như dưới đây: • Giao diện đồ họa: Nếu Linux được cài KDE, GNOME thì bạn có giao diện đăng nhập đồ họa. Mỗi distro sẽ có một màn đăng nhập riêng, chả hạn như hình vẽ dưới đây của SUSE.

Trang 1

© Trần Huy Thắng tài liệu Linux cho sv DH NN, không phát tán lên Internet.

Đây là bản nháp viết gấp, nếu người đọc phát hiện sai sót xin thông báo cho người viết

Bài 2 Làm quen với Linux command

1 Đăng nhập và tắt máy 1

2 Kernel, Shell 2

3 Virtual Console và Terminal 3

4 Lệnh trong Linux 3

a Cách viêt lệnh 3

b Thực thi executable file 4

c Shell script 4

d Metacharacters 5

e Help 5

f History 6

4 su 6

5 Các thao tác quen thuộc với File và thư mục 6

a Cấu trúc file và thư mục của Linux khác với của Windows 6

b Các lệnh xem, tạo mới, xóa, di chuyển, đổi tên file và thư mục 7

c Midnight Commander (mc) 9

d Link 10

e Archive và Compress file 10

f Tìm kiếm file và thư mục 11

6 Filesystem Hierarchy standard 12

7 Khái niệm file theo nghĩa rộng trong UNIX/Linux 13

8 Redirection và xargs 14

a Redirect stdin, stdout, stderr to file 14

b Pipe và kết hợp với grep, wc, sort, less 16

c xargs 16

9 VIM editor 16

10 Regular expression 17

1 Đăng nhập và tắt máy

Linux là hệ thống đa người sử dụng nên khi khởi động bạn phải cho biết định danh của mình trên hệ thống qua màn đăng nhập

- Có thể có 3 màn hình đăng nhập như dưới đây:

 Giao diện đồ họa: Nếu Linux được cài KDE, GNOME thì bạn có giao diện đăng nhập đồ họa Mỗi distro sẽ có một màn đăng nhập riêng, chả hạn như hình vẽ dưới đây của SUSE

Trang 2

 Giao diện dòng lệnh: Trên các server, giao diện đồ họa thường không được cài (hoặc cài nhưng disable) để đỡ tốn tài nguyên (CPU, RAM), lúc đó bạn phải làm việc với giao diện dòng lệnh virtual console

 Đăng nhập từ xa: Người quản trị mạng không phải lúc nào cũng phải đến trực tiếp Linux server để điều khiển mà có thể đăng nhập từ một máy Windows thông qua công cụ (chả hạn như) Putty

- Có 2 loại người sử dụng: root (còn gọi là super user) và normal user (người sử dụng thường) Một hệ

thống chỉ có đúng một tài khoản root, tài khoản này có tất cả các quyền thao tác với hệ thống, nó chỉ dành cho người quản trị hệ thống Với người sử dụng thường, ngoài các quyền thao tác với chính tài liệu của họ tạo ra thì có rất ít quyền với hệ thống Đoạt root luôn là mục đích của các Linux hackers

- Tắt máy là chuyện rất hạn chế của người quản trị server (thử tưởng tượng một web server mà tắt đi thì có bao nhiêu người gặp bất tiện khi định vào trang web của server) Nếu bạn chỉ là người dùng Linux thông thường, hiển nhiên thường phải restart hoặc shutdown; ở chế độ dòng lệnh dùng lệnh sau (chỉ có root mới

có quyền):

- Turn off: shutdow –h now

- Restart: shutdown –r now hoặc reboot

Nếu muốn hẹn giờ shutdown thì thay now bằng lượng thời gian chờ shutdown hh:mm hoặc mm

Chú ý turn off/ restart một cách cơ học (không đúng cách), dù không gây hỏng hóc cho hệ thống thì lần sau khi bật máy sẽ nhận được thông báo đòi check disk, chẳng hạn với Red hat là:

Press Y within 5 seconds to force file system integrity check …

2 Kernel, Shell

Kiến trúc phân tầng của một máy tính được cho trên hình vẽ

Kernel (nhân) của hệ điều hành làm nhiệm vụ trực tiếp quản lý phần cứng

Người sử dụng không thể trực tiếp ra lệnh cho kernel được vì các lệnh này liên

quan đến chi tiết của phần cứng, vô vùng phức tạp Thay vào đó người dùng

gõ các lệnh của Shell (vỏ) vốn gần gũi với con người Shell sẽ thông dịch

(interpret) các lệnh của người dùng thành các lệnh điều khiển kernel và đến

lượt kernel chuyển các yêu cầu đến nó thành các thao tác điều khiển phần

cứng

Khi hệ thống khởi động, sau khi kernel được tải vào RAM thì shell sẽ được tải

tiếp theo

Shell của DOS chính là command.com làm nhiệm vụ dịch các lệnh của người

sử dụng như dir, md, cd, … ra thành các lệnh máy

Không có khái niệm shell của Windows nhưng ở một nghĩa trừu tượng nào đó

có thể coi giao diện đồ họa của Windows tương đương với shell của DOS

Shell

Kernel Application

Hardware

user

Trang 3

Có nhiều loại shell cho Linux như C shell, Bourne Shell, … mỗi loại shell lại có tập lệnh riêng và người dùng chỉ được phép gõ các lệnh trong tập lệnh đó Phổ biến nhất hiện nay là BASH shell dùng trong RedHat, Suseshell và DASH shell dùng trong Ubuntu Tập lệnh của hai loại shell này hầu hết là giống nhau.

3 Virtual Console và Terminal

Như ở trên nói shell là trình thông dịch, chương trình virtual console hoặc terminal làm nhiệm vụ chuyển

các lệnh mà bạn gõ trên bàn phím vào cho shell dịch Nói cách khác virtual console hoặc terminal là giao diện để bạn tương tác với shell

- Nếu hệ thống Linux không cài KDE, GNOM, mặc định bạn sẽ làm việc bằng giao diện dòng lệnh virtual console Linux có 6 virtual console, virtual console 1 được mặc định khi khởi động Có thể chuyển đổi qua lại giữa các virtual console bằng tổ hợp phím ALT + Fn (n = 1,2, …6) Người dùng

có thể chạy một chương trình ở virtual console này và không cần đợi cho kết thúc chuyển sang virtual console khác để thực hiện một lệnh mới Điều này tạo cảm giác có thể chạy nhiều chương trình cùng lúc

- Nếu hệ thống trong giao diện đồ họa Bạn có thể vào menu Applications/Accessories/Terminal (các distro sẽ có các bố trí menu khác) để chạy chương trình terminal cho phép bạn tương tác với shell Hoặc với một điều kiện nào đó có thể dùng CTRL + ALT + F6/F7 để chuyển qua lại giữa giao diện

đồ họa và các virtual console

Dù là virtual console hay terminal, dấu nhắc dòng lệnh của nó có dạng, chẳng hạn

[root@localhost ~]# _

Ý nghĩa:

- tên account đang login: root, vì thế có dấu #, nếu là normal user có dấu $

- máy tính cài Linux mà user đang login: localhost để chỉ người dùng không login từ xa, nếu login từ

xa sẽ là tên/ip một máy tính từ xa nào đó

- thư mục hiện hành: tên một thư mục hoặc nếu là dấu ~ thì chỉ thư mục home (nơi lưu dữ liệu cá nhân) của người dùng

Nói thêm về nguồn gốc của từ “terminal”: “terminal” như ở đây là một chương trình giao tiếp với shell còn trong quá khứ nó là một thiết bị phần cứng Ở thời trước khi có máy tính cá nhân, chỉ có những hệ thống máy tính lớn đa người sử dụng Người sử dụng truy cập vào các hệ thống lớn này thông qua một thiết bị có tên là “terminal” chỉ gồm có bàn phím và màn hình, không có

bộ xử lý dữ liệu Theo thời gian khi máy tính cá nhân ra đời nó thay thế các thiết bị này và người ta dùng phần mềm để mô phỏng lại nó.

4 Lệnh trong Linux

a Cách viêt lệnh

Lệnh trong Linux thường có dạng: tên_lệnh tham_số đối_số

Trong đó tham số để điều chỉnh cách thực hiện lệnh còn đối số thường là đối tượng bị lệnh tác động lên Tham số, đối số có thể vắng mặt, trong cú pháp của lệnh nếu một thành phần nào đó có thể vắng mặt thì nó được để trong dấu ngoặc vuông [ ], nếu buộc phải có mặt thì để trong dấu ngoặc nhọn <> hoặc để không Ví

dụ cú pháp lệnh man là man [section] tên_lệnh.

Trước tham số thường phải có dấu gạch, đối số thì không cần Tham số có 2 dạng:

Dạng ngắn bắt đầu bằng một dấu gạch ngang – ví dụ cp –r Dir1 Dir2

Dạng dài bắt đầu bằng hai dấu gạch ngang – – ví dụ cp – – recursive Dir1 Dir2

Hai lệnh trên là một, cùng copy Dir1 thành Dir2 Thường tham số dạng ngắn là viết tắt của dạng dài (r viết

tắt của recursive).

Có một số tham số nào đó rất nhiều lệnh hay dùng gần như thành qui ước, chẳng hạn:

– v hoặc – – verbose (tiếng Anh, “verbose” có nghĩa là “dài dòng”) dùng để hiển thị những thông tin

mô tả quá trình thực hiện lệnh

Trang 4

– f hoặc – – force thực hiện lệnh mà không cần tương tác với người dùng

vv

Lệnh trong Linux phân biệt hoa thường nên tham số –v sẽ khác với –V

Có thể viết nhiều lệnh trên cùng một dòng nhưng phải có dấu chấm phẩy (;) ở giữa

Ví dụ: mkdir /mnt/USB; mount /dev/sdb1 /mnt/USB; cd /mnt/USB

Có thể ngắt một lệnh thành nhiều dòng (để cho dễ theo dõi) bằng cách thêm dấu \ vào chỗ cần ngắt và enter

b Thực thi executable file

Khi người dùng gõ một lệnh thực chất là thực thi một executable file (file khả thi – như các file exe của Windows) nào đó có tên trùng với tên lệnh Shell tìm executable file này (lệnh) trong 4 đường dẫn mặc định

là /bin, /sbin, /usr/bin, /usr/sbin, nếu không tìm thấy nó sẽ thông báo “command not found” Các đường dẫn mà shell cần tìm được lưu trong biến PATH của shell, người dùng có thể sửa biến này

Lệnh which <command> cho biết chính xác file lệnh nằm dưới thư mục nào trong 4 thư mục mặc định

kia Ví dụ: which mkdir cho biết /bin/mkdir

 lệnh mkdir myDirectory tương đương với lệnh /bin/mkdir myDirectory

Giả sử người dùng đang ở thư mục /home/userX, thư mục này chứa một executable file có tên là exefile.

Để thực thi file này, trong DOS người dùng chỉ cần gõ lệnh exefile là đủ, nhưng với Linux, shell sẽ thông

báo “command not found” lí do là biến PATH của DOS có chứa thư mục hiện hành còn của Linux thì không Với shell của Linux phải gõ lệnh /exefile hoặc /home/userX/exefile tức là phải chỉ rõ

đường dẫn ra

[root@localhost userX]# exefile

bash: exefile: command not found

[root@localhost userX]# ./exefile

[… OK …]

[root@localhost userX]# /home/userX/exefile

[… OK …]

Cũng nói thêm, trong DOS/Windows tên một executable file luôn có đuôi là exe hoặc com, nhưng trong Linux không có đuôi nào đặc trưng cho một excutable file cả

c Shell script

Shell script là một plain text file chứa dãy các lệnh shell Khi thực thi shell script thì dãy các lệnh trong nó được thực thi Shell script tương tự như file batch của DOS nhưng mạnh hơn rất nhiều Người ta thường lấy

tên file shell script có đuôi là sh nhưng điều này không bắt buộc.

Có 3 cách thực thi một shell script “myscript”

bash myscript

sh myscript

./myscript

Nhưng trước hết phải đảm bảo người gọi file có quyền thực thi “myscript” Nếu là root có thể nhanh chóng đặt quyền thực thi cho file bằng lệnh chmod +x myscript (xem thêm bài quản trị file permission)

d Metacharacters

Một lệnh có thể chứa metacharacters (siêu kí tự) là các kí tự đặc biệt <, |, >, &, !, … và các loại dấu ngoặc như ‘ , “, ` Đây là những kí tự có ý nghĩa đặc biệt đối với shell khi thực hiện lệnh Các metacharacters thường (và nên luôn là như vậy) không được dùng để đặt tên Có rất nhiều metacharacters, dưới đây là một

số hay dùng:

Trang 5

Wildcards (kí tự đại diện): * và ?

Dấu * đại diện cho một số lượng bất kì kí tự Ví dụ: ls /root/b* liệt kê tất cả các file bắt đầu bằng 1 chữ ‘b’ Dấu ? đại diện cho đúng một kí tự bất kì Ví dụ: ls /root/b? liệt kê tất cả các file có tên gồm 2 kí tự, kí tự

đầu tiên là ‘b’

Ranges (miền): [ ] và {}

Cặp [ ] định nghĩa một miền giá trị Thêm dấu ! trong cặp này để chỉ nằm ngoài miền.

Ví dụ 1: ls a[3-7][bx][b-x] liệt kê tất cả các file có tên gồm 4 kí tự, kí tự đầu là chữ ‘a’, kí tự thứ hai là 1

chữ số trong khoảng từ 3 đến 7, kí tự thứ ba là kí tự ‘b’ hoặc ‘x’, kí tự cuối là một kí tự trong khoảng b đến

x

Ví dụ 2: ls [!Aa]* liệt kê tất cả các file có tên gồm ít nhất một kí tự, kí tự đầu không phải là ‘A’ hoặc ‘a’ Cặp { } liệt kê các giá trị có thể nhận.

Ví dụ: ls index.{htm, html} liệt kê các file có tên là index.htm hoặc index.html.

Escape codes: kí tự \ (back slash) Khi muốn dùng một metacharacter nào đó mà muốn shell không hiểu

nó là metacharacter thì thêm dấu \ đằng trước Nếu muốn dùng chính dấu \ thì thành \\

Ví dụ: mkdir Van\ ban\\Cong\ van tạo một thư mục có tên là “Van ban\Cong van” Kí tự dấu cách và \

được dùng trong tên đều là metacharacters

Quotes: có các loại dấu ngoặc là ‘’, “”, `` (back tick) Khi dùng dấu ngoặc ‘’, “” thì tất cả các kí tự trong dấu ngoặc được hiểu không phải là metacharacters Vẫn với ví dụ trên, có thể chỉ cần:

mkdir “Van ban\Cong van” hoặc mkdir ‘Van ban\Cong van’ Sự khác nhau giữa ‘’, “” quá tinh tế tài

liệu này không đề cập đến

Dấu `` thường được dùng khi viết lệnh shell, tài liệu này cũng không đề cập đến

e Help

Có vô cùng nhiều lệnh, mỗi lệnh lại có rất nhiều tham số, để giúp người dùng tra cứu, Linux có một tập các manual (hướng dẫn sử dụng) về gần như tất cả các lệnh Tập manual này được chia làm 8 section (mục):

1 General commands

2 System calls

3 C library functions

4 Special files (usually devices, those found in /dev) and drivers

5 File formats and conventions

6 Games and screensavers

7 Miscellanea

8 System administration commands and daemons

Để tra cứu một lện nào đó trong tập manual này dùng lệnh man <tên_lênh> Khi trang man hiện ra,

người dùng có thể dùng các phím di chuyển←↑→↓, PgUp/Down để xem, muốn thoát ra bấm q.

Ở góc trang man có con số để trong ngoặc cho biết section của trang man đó Có những lệnh thuộc nhiều hơn 1 section ví dụ lệnh exit thuộc 3 section là (1), (2), (3) nhưng khi man chỉ ra một section, muốn tra cứu lệnh đó trong các section khác dùng lệnh man section <tên_lênh> Ví dụ man 2 exit hoặc man 3 exit

Người ta dùng lệnh man trong trường hợp biết tên lệnh, quên tham số Trong trường hợp quên cả tên lệnh,

nếu chỉ nhớ được vài chữ cái đầu tiên của lệnh hãy gõ vài chữ cái đầu đó rồi bấm phím Tab hai lần để hiển thị danh sách những lệnh bắt đầu bằng các chữ cái đó Khi không nhớ được các chữ cái đầu của lệnh thì dùng lệnh apropos <môt cum tu nao đó> để tra cứu những lệnh nào có tên hoặc phần giải thích liên quan đến <một cụm từ nào đó> (apropos tiếng anh có nghĩa là “liên quan đến”)

Trang 6

Lệnh man, apropos ở trên đều tra cứu trong tập man của Linux Ngoài tập man của Linux thì bản thân mỗi lệnh đã chứa thông tin giải thích về lệnh ngắn hơn so với man, muốn xem chỉ việc gõ tên lệnh và thêm tham

số - - help

f History

Để lấy lại lệnh vừa gõ trước đó dùng phím ↑ hoặc ↓ Để liệt kê một số lệnh vừa gõ dùng lệnh history

4 su

Nếu là normal user thì bạn không thể thực thi các lệnh thao tác với hệ thống được, bạn có rất ít quyền Khi đang ở tài khoản normal user để chuyển sang tài khoản root (giả sử bạn có password của root) mà không

phải log out rồi lại log in thì tại dấu nhắc shell gõ lệnh su (substitute user – thay đổi user) sau đó gõ password Cũng có thể chuyển nhanh sang một tài khoản bất kì bằng lệnh su [-] [username] Mỗi tài

khoản có một môi trường shell với những cấu hình shell riêng biệt, dùng dấu – trong lệnh su để đảm bảo các cấu hình shell cũng được chuyển theo khi chuyển user

5 Các thao tác quen thuộc với File và thư mục

a Cấu trúc file và thư mục của Linux khác với của Windows

Trong Windows/DOS file và thư mục được lưu vào trong các partition (phân vùng) được đánh ký hiệu C:,

D:, … Mỗi partition sẽ có một thư mục gốc là C:\, D:\ … Trong Linux, chỉ có một thư mục gốc duy nhất

là / Dưới / là các thư mục con và file, một số thư mục con nào đó được chọn làm “đầu nối” với các partition khác Thư mục được chọn đó được gọi là mount point, các partition sẽ được mount (“nối”) vào các mount

point Như vậy người dùng Linux sẽ không có cảm giác rõ ràng về các partition của đĩa cứng mà chỉ thấy một cây thư mục khổng lồ, một số nhánh nào đó của cây thư mục này sẽ dẫn đến một số partition khác Xét ví dụ minh họa sự khác nhau giữa cây thư mục của Windows và Linux như ở hình vẽ:

Giả sử máy tính có một ổ đĩa cứng và được chia làm 3 partitions: partition 1 chứa hệ điều hành, partition 2 chứa các tài liệu cho công việc (Works), partition 3 chứa phim, ảnh giải trí (Entertains)

Trang 7

- Nếu cài Windows, người dùng sẽ thấy rõ 3 partition: partition C: (nhãn “OS”) chứa Windows, partition D: (nhãn “Work”) chứa tài liệu công việc, và partition E: (nhãn “Entertainment”) chứa phim, ảnh giải trí

- Nếu cài Linux, người dùng có cảm giác chỉ có 1 partition tên là “/” (đọc là partition root) chứa tất cả mọi thứ từ hệ điều hành đến Entertains và Works Kì thực vẫn là 3 partition nhưng giờ đây không được kí hiệu là C, D, E nữa mà là hda1, hda2, hda3 Partition hda1 chứa hệ điều hành nhưng dĩ nhiên file thư mục của Linux (boot, bin, home, usr, var, …) sẽ khác với Windows (Documents, Program Files, Windows) Partition hda1 được mount vào / Partition hda2, hda3 được mount vào một thư mục trong partition hda1 mà ở đây là /mnt/Entertains và /mnt/Works

Đường dẫn thư mục của Linux cũng giống như Windows ngoại trừ việc dùng dấu / thay vì dùng dấu \; ví

dụ trong Linux là /Dir/subDir thì tương ứng trong Windows là C:\Dir\subDir.

Cẩn thận với dấu / ! Khi nó nằm ở đầu một đường dẫn thì nó chỉ thư mục gốc và đường dẫn bắt đầu từ thư mục gốc, người ta gọi đó là đường dẫn tuyệt đối Khi đường dẫn không chứa dấu / ở đầu thì đường dẫn đó

bắt đầu từ thư mục hiện hành và được gọi là đường dẫn tương đối Ví dụ: lệnh mkdir /Report (tạo thư mục Report trong thư mục gốc /) sẽ khác với lệnh mkdir Report (tạo thư mục Report trong thư mục hiện hành).

b Các lệnh xem, tạo mới, xóa, di chuyển, đổi tên file và thư mục

Khi mới đăng nhập, thư mục hiện hành là thư mục home của người đăng nhập Thư mục home của người

sử dụng được dùng để lưu dữ liệu cá nhân của người sử dụng đó Thư mục home của root là /root, của normal user là /home/tên_user Thư mục /home/ của Linux có phần giống Documents and Settings của Windows NT)

Để xem thư mục hiện hành dùng lệnh pwd (present working directory) Để thay đổi thư mục hiện hành dùng lệnh cd <đuong dân thu muc> (cd viết tắt của change directory) Thường kết hợp lệnh cd với dấu chấm chấm ( ) để lên thư mục cha, đấu ngã (~) để quay về thư mục home của user hiện hành, dẫu ngã kèm theo tên user để chỉ thư mục home của user có tên đó Dấu chấm (.) để chỉ thư mục hiện hành

Ví dụ 1: Root đang ở /, dùng cd ~ để quay về /root, dùng cd ~Jackson để về /home/Jackson.

Ví dụ 2: Đang ở thư mục /home/userX/ Hai lệnh cd / / / và cd / / là tương đương nhau đều chuyến sang / Hai lệnh cd / /home/userX và cd là tương đương nhau và đều không thay đổi thư

mục hiện hành

Một điều cực kì quan trọng để giảm công sức gõ lệnh là dùng chức năng autocomplete tên file và thư mục

Khi gõ tên thư mục hoặc tên file, chỉ gõ 1 hoặc vài chữ cái đầu rồi bấm phím TAB để tự động điền nốt phần tên còn lại hoặc bấm thêm TAB một lần nữa để hiển thị tất cả những file, thư mục có cùng các chữ cái đầu như đang gõ Hãy tập thói quen TAB hoặc TAB TAB.

Ví dụ: thay vì gõ cp /boot/vmlinuz-2.6.9-5.EL /backup dài dòng thì hãy gõ cp /boot/vm TAB /backup

Khi bạn gõ một lệnh thì thực chất là bạn gọi file có tên trùng với tên lệnh trong thư mục /bin, /sbin, /usr/bin hoặc /usr/sbin thế nên nếu không nhớ tên lệnh thì cũng có thể gõ vài chữ cái đầu rồi bấm TAB

Ví dụ: giả sử định gõ lệnh apropos nhưng lại không nhớ rõ thì chỉ cần gõ ap TAB

Xem nội dung của thư mục: lệnh ls (viết tắt của list), thêm tham số -l (viết tắt của long) để biết đầy đủ

thông tin, tham số -a (viết tắt của all) để hiển thị cả file, thư mục ẩn (Trong Linux cũng có lệnh dir (viết tắt

của directory) giống trong DOS) Vì file và thư mục trong Linux đều có thể viết hoa và thường nên dấu hiệu phân biệt file và thư mục khi dùng lệnh ls là màu sắc: thư mục có mầu tím, file có mầu thông thường, một

số loại file đặc biệt khác như link, device, … (nói ở phần sau) có mầu sắc khác Một số loại file thường với các định dạng đặc biệt như file tar, gzip hoặc executable file … cũng có màu sắc riêng

Dưới đây là mô tả thông tin mà lệnh ls –l đưa ra Giả sử gõ ls –al /mydir

Trang 8

Trong Linux, các file và thư mục ẩn có tên luôn bắt đầu bằng dấu chấm (.) và chỉ khi có tham số -a trong lệnh ls mới hiện ra, trên hình vẽ có 1 file ẩn là config và 2 thư mục ẩn là chấm (.) và chấm chấm ( ) Trong một thư mục bất kì cũng luôn có hai thư mục ẩn chấm (.) và chấm chấm ( ) tương ứng với thư mục hiện hành (kí hiệu ) và thư mục cha (kí hiệu ) khi dùng lệnh cd

(Kiểu file, quyền thao tác với file, số liên kết với file xem ở phần sau.)

Tên file và thư mục trong Linux có thể chứa mọi kí tự trừ / vì để dành cho kí hiệu root Tên có thể chứa các

kí tứ đặc biệt (dấu cách và ! @ # $ & ~ % * ( ) [ ] { } ’ " \ : ; > < ‘ ) nhưng trước đó phải thêm dấu \ hoặc tốt

nhất là để tất cả trong dấu ngoặc kép Ví dụ: cd /My\ File hoặc cd /“My File” để vào thư mục “My File”

dưới /

Để hiển thị nội dung file dùng lệnh cat tên_file, nhưng với những file text dài người dùng không thể cuộn lên cuộn xuống từng trang màn hình để xem được Muốn vậy dùng lệnh less hoặc more (chú ý tuy tên

gọi như vậy nhưng less ra đời sau và cải tiến hơn more) Với less dùng các phím mũi tên, phím PgUp, PgDown để xem; với more dùng phím Space bar để tiến, b để lùi Cuối cùng bấm q để quit

5 thao tác cơ bản với file và thư mục: tạo mới, đổi tên, di chuyển, copy, xóa

a Tạo thư mục mới: mkdir <tên_thumuc> (viết tắt của make directory)

b Tạo một file mới bằng lệnh cat > tên_file, sau đó gõ nội dung file, cuối cùng bấm CTRL + D để lưu file Nếu tên_file đã có sẵn thì lệnh cat > tên_file sẽ ghi đè, muốn ghi tiếp vào

cuối file (append) thì dùng lệnh cat >>tên_file Để tạo một file rỗng dùng lệnh touch

<tên file> Ví dụ: touch file1 file2 – lệnh này tạo 2 file rỗng tên là file1, file2 cùng lúc

c Đổi tên/di chuyển file và thư mục: mv <source> <target>.

i Ví dụ 1: mv X Y: đổi tên file/thư mục X thành Y

mv X /Y: di chuyển file/thư mục X vào trong thư mục/Y.

Quyền

thao tác

với file

Số liên kết đến file

Chủ file

Nhóm chủ file

Kích thước file (byte)

Ngày giờ tạo file

Tên file

drwxr-xr-x 2 root root 4096 Oct 12 10:14 thumuc1

Kiểu

file

Trang 9

ii Ví dụ 2: mv * di chuyển tất cả file, thư mục trong thư mục hiện thời ra thư mục cha.

d Copy file và thư mục: cp <source> <target> Nếu copy thư mục không rỗng phải

thêm tham số -r (hoặc – – recursive) thành cp – r

Ví dụ 1: chép toàn bộ file và thư mục con trong thư mục hiện hành vào thư mục /target

(đã có sẵn): cp –r * /target

Ví dụ 2: chép thư mục /source vào thư mục hiện hành: cp –r /source (chú ý dấu

chấm ở cuối)

e Xóa file hoặc thư mục rỗng: rm <tên file hoặc thư mục> (ngoài lệnh này Linux

cũng có lệnh rmdir giống DOS để xóa thư mục rỗng) Nếu thư mục không rỗng phải thêm

tham số -r (hoặc recursive) Tuy nhiên người dùng sẽ phải xác nhận việc xóa từng file và thư mục con, để xóa không cần hỏi dùng thêm tham số -f (hoặc - - force) Tóm lại để xóa

một thư mục một cách nhanh nhất dùng lệnh rm –rf

Ví dụ: rm –rf * xóa tất cả những gì có trong thư mục hiện thời

c Midnight Commander (mc)

Nếu bạn không có giao diện đồ họa KDE, GNOME … thì việc thao tác với file, thư mục bằng cách gõ lệnh

có thể là một cực hình Lúc đó hãy dùng phần mềm Midnight Commander (lấy cảm hứng từ phần mềm Norton Commander kinh điển của thời DOS), nếu Linux đã cài phần mềm này thì chỉ cần gõ lệnh mc Giao diện MC, NC có 2 khung cửa sổ vói file, thư mục; các thao tác như cp/mv/mkdir/rm/cat/vi được thực hiện bằng phím tắt F5/F6/F7/F8/F3/F4 vô cùng tiện lợi và nhiều tính năng khác

d Link

Trong Linux có một kiểu file là link, là một con trỏ trỏ tới một file khác Có hai loại link là soft link và hard link: khái niệm softlink giống như shortcut trong windows, hardlink chỉ là một cái tên bí danh cho một file

đã có sẵn Chi tiết hơn về link cần có kiến thức về Ext2 filesytem mà ở đây không đề cập đến, chỉ nêu ra những đặc điểm dễ thấy trong thực hành:

Có thể nằm ở bất cứ đâu Chỉ nằm trên cùng partition với file gốc

Nếu file, thư mục gốc bị rename, move, delete thì

link sẽ bị hỏng

Nếu file, thư mục gốc bị rename, move, delete thì link không bị hỏng

Lệnh ln tạo link có tham số -s (soft):

ln –s <tên File> <tên Link> Lệnh ln tạo link không tham số:ln <tên File> <tên Link>

Khi ls-l, bên cạnh tên các softlink có dấu mũi tên trỏ đến file gốc, thông tin về hardlink của một file trùng y nguyên với file gốc

-rw - 1 root root 223 Oct 12 10:14file

lrwxrwxrwx 1 root root 9 Oct 12 10:14softlink  file

-rw - 2 root root 223 Oct 12 10:14hardlink

e Archive và Compress file

Hai thao tác: archive – gộp nhiều file lại thành một file, compress – nén file để có size nhỏ hơn rất được ưa dùng (Người dùng Windows thường coi thao tác nén hiển nhiên là đã bao hàm thao tác gộp nhiều file) Trong UNIX/Linux, định dạng file archive phổ biến nhất là tar (những file tar còn được gọi là tarball), định dạng file nén phổ biến nhất là gz hoặc bz Chương trình quen thuộc làm việc với những file này là

tar, gzip, bzip2 Người sử dụng khi download một software nào đó ở dạng source code luôn phải gặp

file kiểu tar và gz

Khi dùng các lệnh tar, gzip, bzip2, zip như ở dưới đây nếu thành công sẽ không có thông báo gì, do đó nên

thêm tham số -v ( verbose) để hiển thị thêm các thông tin: danh sách các file được (un)tar, tỉ lệ nén, … tar: gộp/tách nhiều file, thư mục thành một file tar

Trang 10

tar file: tar –cf <tên file se tar thành> <danh sách các file/thư mục cân tar>

Ví dụ: tar –cvf tarball.tar file1 file2 file3 DIR1 DIR2 xem các file có trong file tar: tar –tf <file.tar>

untar file ra thư mục hiện thời: tar –xf <file.tar>

Tham số -c nghĩa là create, -x nghĩa là extract, t (hoặc list) nghĩa là list, f để chỉ làm việc với file gzip (GNU zip) nén/giải nén một file thành file gz

gz file: gzip <tên_file> Cẩn thận: sau lệnh này file gốc “tên_file” sẽ bị replace bằng file mới có tên là “tên_file.gz” !

ungzip file: gunzip <file.gz> hoặc gzip –d <file.gz> (d viết tắt của decompress)

Chú ý: gzip chỉ làm nhiệm vụ nén một file, còn muốn nén nhiều file trước đó phải dùng tar Các gzipped

tarbal ngoài có đuôi là tar.gz còn có đuôi là tgz Trên một số Linux distro có thể đồng thời ungzip và untar

bằng một lệnh: tar –xzf <tên gzipped tarbal>

bzip2 tương tự như gzip với bzip2 để nén, bunzip2 hoặc bzip2 –d để giải nén

zip nén nén nhiều file, thư mục thành một file.

Định dạng file nén trên các non-*nix OS phổ biến là zip, *nix OS có công cụ zip có chức năng gộp

và nén file zip luôn rất tiện: zip <tên file sẽ zip thành> <danh sách những file

để zip> Để giải nén dùng unzip <file.zip>

f Tìm kiếm file và thư mục

Để tìm kiếm file hoặc thư mục theo một tiêu chí (criteria) tìm kiếm nào đó sử dụng lệnh

find where-to-search criteria what-to-do

Where-to-search là danh sách các thư mục cần tìm, mỗi thư mục được ngăn cách nhau bởi một dấu cách Các criteria (tiêu chí tìm kiếm) có thể là -name, -size, -user, -type, -perm, -mtime hoặc -atime

What-to-do là các lệnh thực hiện lên những file, thư mục vừa tìm được, thường bắt đầu bằng –execute, kết thúc bằng \;

Ví dụ 1: find tìm tất cả (do không có tiêu chí nào được kể ra) file, thư mục trong thư mục hiện hành (kí hiệu bằng dấu chấm) Lệnh này thực chất là liệt kê đường dẫn của tất cả các file và thư mục trong thư mục hiện hành

Ví dụ 2: find /root ~Jackson –name ‘*doc?’ tìm trong thư mục /root/ và thư mục /home/Jackson/ những file và thư mục có tên kết thúc bằng “doc” và một kí tự bất kì Tên có chứa wildcard được đặt trong

2 dấu ngoặc

Ví dụ 3: find ~ -size +100k –type f tìm trong thư mục hiện hành và thư mục dữ liệu của người đăng nhập các regular file có kích thước hơn 100K

- Trong Linux, có 7 kiểu file là -, l, d, b, c, p, s (xem mục 6 bài này); ở đây kiểu – (regular file) được thay bằng f để không lẫn với kí hiệu - trước tham số)

- Đơn vị size là c (byte), k (kilo Byte), M (Mega Byte), G (Giga Byte); dấu + để chỉ lớn hơn, dấu – chỉ nhỏ hơn, không có dấu nghĩa là bằng

Ví dụ 4: find –user Jackson –size -100M –atime -60 tìm trong thư mục hiện hành những file hoặc thư mục có chủ sở hữu là Jackson, kích thước file nhỏ hơn 100M, được truy cập cách đây không quá 60

ngày Tham số atime là viết tắt của acess time, đơn vị tính là ngày Tương tự mtime như ở dưới đây là modified time

Ví dụ 5: find /home/ /root/ -perm -220, -mtime 3 tìm trong các thư mục của người sử dụng (root

và normal user) các file hoặc thư mục có quyền write với chủ sở hữu và nhóm của chủ sở hữu, được sửa chữa đúng 3 ngày trước đây

Ngày đăng: 25/04/2015, 01:23

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w