20 lệnh Linux cơ bản mà người mới nên biết

Bắt đầu hành trình khám phá hệ điều hành Linux không chỉ là việc khám phá giao diện đồ họa, mà còn là việc hiểu sâu hơn về cách hoạt động của hệ thống từ dòng lệnh. Với sự phổ biến ngày càng tăng của Linux trong cả môi trường cá nhân và doanh nghiệp, nắm vững một số lệnh cơ bản không chỉ là cần thiết mà còn là bước đầu tiên trong việc trở thành một người dùng Linux thành thạo. Trong bài viết này, chúng ta sẽ khám phá 20 lệnh cơ bản quan trọng mà mọi người mới bắt đầu với Linux nên biết, từ việc duyệt thư mục với 'ls' đến tạo ra các bản sao an toàn với 'dd', cùng như một số lệnh khác như 'lsblk' và 'md5sum' giúp bạn khám phá và tối ưu hóa hệ thống của mình một cách hiệu quả. Hãy bắt đầu hành trình khám phá Linux của bạn từ đây!

1. Lệnh ls

Lệnh 'ls' viết tắt của 'List Directory Contents', được sử dụng để hiển thị nội dung của thư mục, bao gồm cả các tệp tin và thư mục con, từ thư mục mà lệnh được thực thi.

ls

Lệnh 'ls -l' liệt kê nội dung của thư mục theo định dạng danh sách chi tiết và dài.

ls -l

Lệnh 'ls -a' liệt kê nội dung của thư mục, bao gồm cả các tệp tin ẩn bắt đầu với ký tự '.'.

ls -a

Trong Linux, tên tệp tin bắt đầu bằng ký tự '.' được coi là ẩn. Trong Linux, mọi tệp tin, thư mục, thiết bị hoặc lệnh được coi là một tệp tin.

Listing Files in Linux

Kết quả của lệnh 'ls -l' là:

  • Loại tệp tin – Ký tự đầu tiên biểu thị loại tệp tin ('-' cho tệp tin thông thường, 'd' cho thư mục, 'l' cho liên kết tượng trưng, v.v.).
  • Quyền truy cập – Các ký tự tiếp theo biểu thị quyền truy cập của tệp tin đối với chủ sở hữu, nhóm và những người khác. Các ký tự này có thể bao gồm 'r' cho quyền đọc, 'w' cho quyền ghi và 'x' cho quyền thực thi.
  • Số liên kết – Chỉ số số liên kết trỏ đến tệp tin hoặc thư mục.
  • Chủ sở hữu và nhóm – Xác định người dùng (chủ sở hữu) và nhóm liên quan đến tệp tin hoặc thư mục.
  • Kích thước tệp tin – Hiển thị kích thước của tệp tin theo byte.
  • Thời gian chỉnh sửa – Hiển thị ngày và giờ tệp tin hoặc thư mục được chỉnh sửa lần cuối.
  • Tên tệp tin hoặc thư mục – Tên thực sự của tệp tin hoặc thư mục.

2. Lệnh lsblk

Lệnh 'lsblk', viết tắt của 'List Block Devices', hiển thị các thiết bị khối theo tên gán của chúng (loại bỏ RAM) dưới dạng cây trên đầu ra tiêu chuẩn.

lsblk

Lệnh 'lsblk -l' liệt kê các thiết bị khối theo cấu trúc 'một danh sách' thay vì theo kiểu cây.

lsblk -l
List Block Devices

lsblk là một cách rất hữu ích và dễ dàng để xác định tên thiết bị USB mới mà bạn vừa kết nối, đặc biệt khi bạn phải làm việc với các đĩa hoặc khối trong terminal.

3. Lệnh md5sum

Lệnh 'md5sum' viết tắt của 'Compute and Check MD5 Message-Digest'. MD5 checksum (thường được gọi là 'hash') được sử dụng để so khớp hoặc xác minh tính toàn vẹn của các tệp tin có thể đã thay đổi do lỗi truyền tệp tin, lỗi đĩa hoặc sự can thiệp không độc hại.

md5sum teamviewer_linux.deb 

47790ed345a7b7970fc1f2ac50c97002  teamviewer_linux.deb

Người dùng có thể so sánh md5sum được tạo ra với md5sum được cung cấp chính thức. MD5sum được coi là ít an toàn hơn sha1sum, mà chúng tôi sẽ thảo luận sau.

4. Lệnh dd

Lệnh dd viết tắt của 'Convert and Copy a file', và có thể được sử dụng để chuyển đổi và sao chép một tệp tin. Phần lớn thời điểm, nó được sử dụng để sao chép một tệp ISO (hoặc bất kỳ tệp tin nào khác) vào một thiết bị USB (hoặc vị trí khác), làm cho nó phù hợp để tạo ra một ổ đĩa USB khởi động.

dd if=debian.iso of=/dev/sdb1 bs=512M; sync
Lưu ý: Trong ví dụ trên đây, thiết bị USB định là 'sdb1' (Bạn nên xác minh bằng lệnh lsblk, nếu không bạn sẽ ghi đè đĩa và hệ điều hành của bạn), sử dụng tên đĩa rất cẩn thận!

Lệnh dd mất một khoảng thời gian từ vài giây đến vài phút để thực hiện, tùy thuộc vào kích thước và loại tệp tin và tốc độ đọc và ghi của ổ USB.

5. Lệnh uname

Lệnh uname viết tắt của (Unix Name), và hiển thị thông tin chi tiết về tên máy, hệ điều hành và phiên bản kernel.

uname -a

Linux TecMint 6.2.0-39-generic #40~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC 
Thu Nov 16 10:53:04 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Kết quả của lệnh uname -a là:

  • "Linux": Tên kernel của máy.
  • "tecmint": Tên node của máy.
  • "6.2.0-39-generic": Phiên bản kernel.
  • "22.04.1-Ubuntu SMP": Phiên bản hệ điều hành.
  • "x86_64": Kiến trúc của bộ vi xử lý.
  • "GNU/Linux": Tên hệ điều hành.

6. Lệnh history

Lệnh history viết tắt của History (Event) Record, in ra lịch sử của một danh sách dài các lệnh đã được thực thi trong terminal.

history
List Previously Executed Commands

Lưu ý: Nhấn 'Ctrl + R' cho phép bạn tìm kiếm các lệnh đã được thực thi trước đó, cho phép lệnh của bạn được hoàn thành bằng cách sử dụng tính năng tự động hoàn thành.

(reverse-i-search)`if': ifconfig

7. Lệnh sudo

Lệnh 'sudo' (superuser do) cho phép người dùng được phép thực thi một lệnh như người dùng hiệu quả hoặc một người dùng khác, theo quy định của chính sách bảo mật trong danh sách sudoers.

sudo apt update

Lưu ý: 'sudo' cho phép người dùng mượn các quyền siêu người dùng, trong khi lệnh tương tự 'su' cho phép người dùng đăng nhập dưới dạng siêu người dùng. 'Sudo' an toàn hơn 'su'.

Không khuyến khích sử dụng 'sudo' hoặc 'su' cho việc sử dụng bình thường hàng ngày, vì nó có thể gây ra lỗi nghiêm trọng nếu bạn vô tình làm sai điều gì đó, đó là lý do mà một câu nói rất phổ biến trong cộng đồng Linux là:

“To err is human, but to really foul up everything, you need a root password.”

8. Lệnh mkdir

Lệnh (make directory) tạo một thư mục mới với một đường dẫn tên. Tuy nhiên, nếu thư mục đã tồn tại, nó sẽ trả về một thông báo lỗi 'không thể tạo thư mục, thư mục đã tồn tại'.

Lệnh mkdir (make directory) được sử dụng để tạo một thư mục mới với một đường dẫn đã cho. Tuy nhiên, nếu thư mục đã tồn tại, nó sẽ trả về một thông báo lỗi cho biết 'không thể tạo thư mục, thư mục đã tồn tại'.

mkdir tecmint

Chỉ có thể tạo thư mục trong các thư mục mà người dùng có quyền ghi.

9. Lệnh touch

Lệnh touch (update the access and modification times of each FILE to the current time) tạo ra ngày và thời gian truy cập và sửa đổi hiện tại cho mỗi TẬP TIN. Lệnh 'touch' tạo tệp tin chỉ khi nó không tồn tại. Nếu tệp tin đã tồn tại, nó sẽ cập nhật thời gian đánh dấu thời gian nhưng không phải nội dung của tệp tin.

touch tecmintfile

Lệnh 'touch' có thể được sử dụng để tạo ra một tệp tin trong một thư mục mà người dùng có quyền ghi, chỉ khi tệp tin đó chưa tồn tại ở đó.

10. Lệnh chmod

Lệnh 'chmod' viết tắt của 'change file mode bits', thay đổi chế độ tệp tin (quyền truy cập) của mỗi tệp tin, thư mục, kịch bản đã chỉ định, vv theo chế độ đã chỉ định.

Có tồn tại 3 loại quyền truy cập trên một tệp tin (thư mục hoặc bất cứ thứ gì, nhưng để giữ cho mọi thứ đơn giản, chúng tôi sẽ sử dụng tệp tin).

Read (r)=4
Write(w)=2
Execute(x)=1

Vì vậy, nếu bạn muốn chỉ định quyền đọc duy nhất cho một tệp tin, sẽ được gán giá trị '4', cho quyền ghi duy nhất, sẽ được gán giá trị '2', và cho quyền thực thi duy nhất, sẽ được gán giá trị '1'. Để có quyền đọc và ghi, cấp phép '4+2' = '6' sẽ được gán, vv.

Bây giờ, quyền truy cập cần được thiết lập cho '3' loại người dùng và nhóm người dùng. Người dùng chủ sở hữu đầu tiên, sau đó là nhóm người dùng, và cuối cùng là thế giới.

rwxr-x--x   abc.sh

Ở đây, quyền của root là 'rwx' (đọc, viết và thực thi). Nhóm người dùng mà nó thuộc về là 'r-x' (chỉ có quyền đọc và thực thi, không có quyền ghi) và đối với thế giới là '–x ' (chỉ có quyền thực thi).

Để thay đổi quyền truy cập và cung cấp quyền đọc, viết và thực thi cho chủ sở hữu, nhóm và thế giới.

chmod 777 abc.sh

chỉ cho phép quyền đọc và viết cho cả ba.

chmod 666 abc.sh

chmod là một trong những lệnh quan trọng nhất giúp ích cho cả quản trị hệ thống và người dùng. Trong môi trường nhiều người dùng hoặc trên máy chủ, lệnh này là không thể thiếu, vì đặt quyền truy cập sai có thể làm cho một tệp tin không thể truy cập hoặc cấp quyền truy cập không cho phép cho các cá nhân.

11. Lệnh chown

Lệnh chown viết tắt của 'change file owner and group', được sử dụng để thay đổi chủ sở hữu và / hoặc nhóm của một tệp tin hoặc thư mục.

Dưới đây là một ví dụ về cách lệnh chown thường được sử dụng.

chmod 711 abc.sh

Ví dụ, nếu bạn muốn thay đổi chủ sở hữu của một tệp tin có tên là 'example.txt' thành một người dùng có tên là 'tecmint' và một nhóm có tên là 'users', lệnh sẽ là:

chown newowner:newgroup filename

12. Lệnh apt

Trên các bản phân phối dựa trên Debian như Ubuntu và Linux Mint, lệnh apt viết tắt của (Advanced Package Tool), được sử dụng để cài đặt, nâng cấp và quản lý các gói phần mềm trên hệ thống từ dòng lệnh.

chown tecmint:users example.txt

Lệnh apt được coi là thông minh và hiện đại hơn so với lệnh yum hoặc dnf.

13. Lệnh tar

Lệnh tar là một bộ sưu tập băng rộng hữu ích trong việc tạo ra một lưu trữ, trong nhiều định dạng tệp tin và bung nó.

sudo apt search wget
sudo apt install wget
sudo apt update
tar -zxvf abc.tar.gz (Remember 'z' for .tar.gz)
tar -jxvf abc.tar.bz2 (Remember 'j' for .tar.bz2)

Lưu ý: 'tar.gz' có nghĩa là nén gz. 'tar.bz2' được nén bằng bzip sử dụng phương pháp nén tốt hơn nhưng chậm hơn.

14. Lệnh cal

Lệnh 'cal' (Calendar) được sử dụng để hiển thị lịch của tháng hiện tại hoặc bất kỳ tháng nào khác của bất kỳ năm nào đó mà đang tiến triển hoặc đã qua.

tar -cvf archieve.tar.gz(.bz2) /path/to/folder/abc

Hiển thị lịch của năm 1835 cho tháng "Tháng Hai", đã qua.

cal 

Hiển thị lịch của năm 2145 cho tháng "Tháng Bảy", sắp tới.

cal 02 1835
Show Calendar in Linux

Lưu ý: Bạn không cần phải đặt lại lịch trình trở lại 50 năm, cũng không cần thực hiện tính toán toán học phức tạp để xác định ngày bạn sinh ra hoặc ngày sinh nhật của bạn trong tương lai.

15. Lệnh date

Lệnh date được sử dụng để hiển thị ngày và giờ hiện tại. Nó cũng có thể được sử dụng để đặt ngày và giờ của hệ thống.

Để hiển thị ngày và giờ hiện tại.

cal 07 2145

Để hiển thị ngày hiện tại dưới định dạng 'YYYY-MM-DD'.

date

Để đặt ngày và giờ hệ thống.

date +"%Y-%m-%d"

Lệnh trên cho phép bạn đặt ngày và giờ hệ thống. Thay thế MM, DD, hh, mm, CC, YY và ss bằng các giá trị mong muốn cho tháng, ngày, giờ, phút, thế kỷ, năm và giây, tương ứng.

Lưu ý: Lệnh date rất hữu ích trong việc viết kịch bản, đặc biệt đối với các hoạt động dựa trên thời gian và ngày. Hơn nữa, việc thay đổi ngày và giờ bằng terminal có thể khiến bạn cảm thấy như một người dùng THẦN KỲ thực sự! (Tất nhiên, bạn cần có quyền gốc để thực hiện thao tác này, vì nó liên quan đến một sự thay đổi trên toàn hệ thống).

16. Lệnh cat

Lệnh cat viết tắt của (Concatenation), có nghĩa là nối liền hai hoặc nhiều tệp tin thuần túy hoặc in nội dung của một tệp tin ra đầu ra chuẩn.

Để hiển thị nội dung của một tệp tin.

sudo date MMDDhhmm[[CC]YY][.ss]

Để nối liền nhiều tệp tin, điều này có nghĩa là lệnh sau nối liền nội dung của tệp tin 'file1' và 'file2' và hiển thị kết quả trong terminal.

cat filename

Nội dung của 'a.txt', 'b.txt', 'c.txt' và 'd.txt' sẽ được kết hợp và gắn vào cuối tệp tin 'abcd.txt'.

cat file1 file2

cat abcd.txt

Lưu ý: Ký hiệu '>>' và '&'lt;<' được gọi là ký hiệu gắn thêm. Chúng được sử dụng để gắn kết kết quả vào một tệp tin chứ không phải đầu ra chuẩn.

Ký tự '>' sẽ xóa một tệp tin đã tồn tại và tạo ra một tệp tin mới, vì vậy vì lý do an ninh nên sử dụng '>>' sẽ ghi kết quả mà không ghi đè hoặc xóa tệp tin.

Trước khi tiếp tục, tôi phải cho bạn biết về ký hiệu đại diện (wildcards) (bạn sẽ biết về các mục ký hiệu đại diện cho, trong hầu hết các chương trình truyền hình) Ký hiệu đại diện là một tính năng của shell giúp dòng lệnh mạnh mẽ hơn bất kỳ trình quản lý tệp tin giao diện đồ họa nào.

Nếu bạn muốn chọn một nhóm lớn các tệp tin trong một trình quản lý tệp tin đồ họa, bạn thường phải chọn chúng bằng con trỏ chuột của bạn. Điều này có vẻ đơn giản, nhưng trong một số trường hợp, nó có thể rất là frustrating.

Ví dụ, giả sử bạn có một thư mục với một lượng lớn các tệp tin và thư mục con khác nhau, và bạn quyết định di chuyển tất cả các tệp tin HTML, có từ 'Linux' bất kỳ nơi nào trong tên của chúng, từ thư mục lớn đó vào thư mục khác.

Cách đơn giản nhất để làm điều này là gì? Nếu thư mục chứa một lượng lớn các tệp tin HTML với tên khác nhau, nhiệm vụ của bạn không có gì đơn giản cả!

Trong dòng lệnh Linux, thao tác đó chỉ đơn giản như việc di chuyển chỉ một tệp HTML, và nó rất dễ dàng bởi vì của các ký tự đại diện của shell. Đây là các ký tự đặc biệt cho phép bạn chọn tên tệp tin phù hợp với một số mẫu ký tự nhất định.

Điều này giúp bạn chọn cả một nhóm lớn các tệp tin bằng cách gõ chỉ một vài ký tự, và trong hầu hết các trường hợp, nó dễ dàng hơn việc chọn các tệp tin bằng con trỏ chuột.

Dưới đây là danh sách các ký tự đại diện phổ biến nhất được sử dụng:

cat a.txt b.txt c.txt d.txt >> abcd.txt

Ký tự '!': Gọi là ký tự không, và phủ định của chuỗi được gắn với '!', là đúng.

17. Lệnh cp

Lệnh 'cp' viết tắt của 'copy', nó sao chép một tệp tin từ vị trí này sang vị trí khác.

Wildcard			Matches
   *			zero or more characters
   ?			exactly one character
[abcde]			exactly one character listed
 [a-e]			exactly one character in the given range
[!abcde]		any character that is not listed
 [!a-e]			any character that is not in the given range
{debian,linux}		exactly one entire word in the options given

Lưu ý: Lệnh 'cp' là một trong những lệnh phổ biến nhất trong shell scripting và nó có thể được sử dụng với các ký tự đại diện (được mô tả trong khối trên) để sao chép tệp tin theo cách tùy chỉnh và mong muốn.

18. Lệnh mv

Lệnh 'mv' di chuyển một tệp tin từ vị trí này sang vị trí khác.

cp /home/user/Downloads abc.tar.gz /home/user/Desktop

Lưu ý: Lệnh 'mv' có thể được sử dụng với các ký tự đại diện. 'mv' nên được sử dụng cẩn thận, vì việc di chuyển các tệp tin hệ thống / không được phép có thể dẫn đến sự cố bảo mật và hỏng hóc của hệ thống.

19. Lệnh pwd

Lệnh 'pwd' (print working directory) in ra thư mục làm việc hiện tại với đường dẫn đầy đủ từ dòng lệnh.

mv /home/user/Downloads abc.tar.gz /home/user/Desktop

Lưu ý: Lệnh 'pwd' sẽ không được sử dụng thường xuyên trong việc viết kịch bản nhưng nó là cứu tinh tuyệt đối cho một người mới bị lạc lối trong dòng lệnh trong kết nối đầu tiên của họ với Linux. (Linux thông thường được gọi là 'nux' hoặc 'nix').

20. Lệnh cd

Cuối cùng, lệnh cd được sử dụng thường xuyên đổi thư mục (hoạt động thực hiện, sao chép, di chuyển, ghi, đọc, v.v.) từ dòng lệnh.

pwd 

/home/user/Desktop

Lưu ý: Lệnh cd đến cứu nguy khi chuyển đổi giữa các thư mục từ dòng lệnh. 'cd ~' sẽ chuyển đổi thư mục làm việc thành thư mục chủ của người sử dụng, điều này rất hữu ích nếu người sử dụng bị lạc lối trong dòng lệnh. 'cd ..' sẽ chuyển đổi thư mục làm việc thành thư mục cha của thư mục làm việc hiện tại.

Kết luận

Những lệnh này chắc chắn sẽ nâng cao sự thoải mái của bạn với Linux. Tuy nhiên, đây không phải là kết luận. Sắp tới, tôi sẽ giới thiệu thêm các lệnh khác sẽ rất hữu ích cho 'Người dùng Trung cấp'. Bạn sẽ thấy một sự thăng tiến trong trạng thái cấp người dùng của mình, từ người mới bước đến người dùng cấp trung.

Trong bài viết tiếp theo, tôi sẽ đề cập đến các lệnh như 'Kill', 'ps' và 'grep'.