Top 20 các lệnh Linux cơ bản phải biết dành cho người mới

Trong trải nghiệm sơ bộ như một người mới, các lệnh Linux cơ bản và terminal gây nhiều sự bất ngờ. Bạn có khi nào tự hỏi rằng mức độ nào mình cần nhớ chúng để trở thành người sử dụng thành thạo và hoàn toàn chức năng với Linux.

Không thể phủ nhận rằng tài liệu trực tuyến, sách Linux, trang man và cộng đồng người sử dụng đóng góp đáng kể. Tuy nhiên, tôi tin rằng có một bài viết nên hiển thị các lệnh Linux cơ bản bằng ngôn ngữ dễ học và hiểu. Động lực này đã truyền cảm hứng cho tôi để làm chủ Linux và làm nó thân thiện với người dùng hơn. Bài viết này là một bước tiến đến mục tiêu đó.

1. Lệnh ls

Lệnh ‘ls‘ có nghĩa là ‘Liệt kê nội dung thư mục’, được sử dụng để hiển thị các nội dung của thư mục, cho dù chúng là tệp tin hay 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 thư mục dưới dạng chi tiết và dài.

ls -l

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

ls -a

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

Listing Files in Linux

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

  • Kiểu Tệp Tin – Ký tự đầu tiên đại diện cho kiểu tệp tin ('-' cho tệp tin thông thường, 'd' cho thư mục, 'l' cho liên kết mềm, v.v).
  • Quyền Truy Cập – Sử dụng chín ký tự tiếp theo để biểu diễn quyền truy cập của file đối với chủ sở hữu, nhóm và 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 – Cho biết số lượng liên kết cứng đang chỉ đến file hoặc thư mục.
  • Chủ Sở Hữu và Nhóm – Chỉ định người dùng (chủ sở hữu) và nhóm được liên kết với tệp tin hoặc thư mục.
  • Kích Cỡ Tệp Tin – Hiển thị kích cỡ của tệp tin bằng byte.
  • Thời Gian Sửa Đổi – Hiển thị ngày và giờ tệp tin hoặc thư mục được sửa đổi lần cuối.
  • Tên Tệp Tin hoặc Thư mục – Tên thực tế của tệp tin hoặc thư mục.

Để biết thêm ví dụ về lệnh “ls”, hãy xem series bài viết của chúng tôi:

2. Lệnh lsblk

Lệnh ‘lsblk‘ viết tắt của ‘Liệt kê các Block Devices,’ hiển thị block devices theo tên đã được gán cho chúng (loại bỏ RAM) dưới dạng cấu trúc cây trên đầu ra chuẩn.

lsblk

Lệnh ‘lsblk -l‘ liệt kê các block device dưới dạng danh sách‘ thay vì theo cấu trúc 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 của một thiết bị USB mới bạn vừa kết nối, đặc biệt khi bạn cần làm việc với ổ đĩa hoặc khối từ terminal.

3. Lệnh md5sum

Lệnh ‘md5sum‘ tạo nên ‘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 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 cung cấp chính thức. md5sum được xem như ít an toàn hơn so với sha1sum, chúng ta sẽ thảo luận về nó sau.

4. Lệnh dd

Lệnh dd viết tắt của ‘Chuyển đổi và Sao chép tệp‘ và được sử dụng để chuyển đổi và sao chép một tệp tin. Thường, nó được sử dụng để sao chép một tệp ISO (hoặc bất kỳ tệp tin khác) vào một thiết bị USB (hoặc một vị trí khác), để tạo ra một USB khởi động.

dd if=debian.iso of=/dev/sdb1 bs=512M; sync
Ghi chú: Trong ví dụ trên, thiết bị USB được cho là sdb1 (bạn nên xác minh bằng lệnh lsblk, nếu không, bạn sẽ ghi đè lên đĩa và hệ điều hành của bạn), hãy sử dụng tên của ổ cứng một cách thận trọng!

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 (Tên Unix), 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 nhân.

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 nhân của máy tính.
  • tecmint“: Tên máy tính.
  • 6.2.0-39-generic“: Phiên bản nhân.
  • 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 Lịch sử (Biến Sự Kiện), nó in ra lịch sử của một danh sách lệnh đã được thực thi trên terminal.

history
List Previously Executed Commands

Ghi chú: 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 tất.

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

Để biết thêm ví dụ về lệnh lịch sử, xin vui lòng xem series bài viết của chúng tôi:

7. Lệnh sudo

Lệnh “sudo” (superuser do) cho phép một người dùng được phép thực thi một lệnh như là superuser hoặc một người dùng khác, như được chỉ định bởi chính sách bảo mật trong danh sách sudoers.

sudo apt update

Ghi chúsudo cho phép người dùng vay quyền superuser, trong khi một lệnh tương tự ‘su’ cho phép người dùng đăng nhập với quyền superuser. Sudo an toàn hơn su.

Không nên sử dụng sudo hoặc su cho việc sử dụng thường xuyên 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 tại sao một câu nói phổ biến trong cộng đồng Linux là:

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

Để biết thêm ví dụ về lệnh sudo, xin vui lòng xem series bài viết của chúng tôi:

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ả lại một tin nhắn 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 cụ thể. Tuy nhiên, nếu thư mục đã tồn tại, nó sẽ trả lại một tin nhắn lỗi chỉ ra rằng ‘không thể tạo thư mục, thư mục đã tồn tại‘.

mkdir tecmint

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

9. Lệnh touch

Lệnh touch viết tắt của ‘cập nhật thời gian truy cập và sửa đổi của mỗi TẬP TIN với thời gian hiện tại’. Lệnh ‘touch’ chỉ tạo tệp tin nếu nó chưa tồn tại. Nếu tệp tin đã tồn tại, nó sẽ cập nhật thời gian nhưng không cập nhật nội dung của tệp tin.

touch tecmintfile

Lệnh ‘touch’ có thể được sử dụng để tạo 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 trong thư mục đó.

10. Lệnh chmod

Lệnh “chmod” viết tắt của “thay đổi các bit chế độ tệp tin,” thay đổi chế độ tệp tin (quyền truy cập) của từng tệp tin cụ thể, thư mục, kịch bản, v.v, theo chế độ đã chỉ định.

Có 3 loại quyền trên một tệp tin (thư mục hoặc bất kỳ thứ gì nhưng để đơ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 chỉ muốn cung cấp quyền chỉ đọc trên một tệp tin thì nó sẽ được gán giá trị ‘4’, cho quyền chỉ ghi ‘2’ và cho quyền chỉ thực thi ‘1’. Để quyền chỉ đọc và ghi 4+2 = ‘6’, và còn nữa.

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

rwxr-x--x   abc.sh

Ở đây quyền của người dùng gốc là rwx (đọcghi, và thực thi), nhóm người dùng có quyền r-x (đọc và thực thi, không có quyền ghi) và cho mọi người là –x (chỉ thực thi).

Để thay đổi quyền truy cập và cung cấp quyền đọcghi, và thực thi cho chủ sở hữu, nhóm và mọi người.

chmod 777 abc.sh

chỉ quyền đọc và ghi cho cả ba.

chmod 666 abc.sh

Đọcghi, và thực thi cho chủ sở hữu và chỉ thực thi cho nhóm và mọi người.

chmod 711 abc.sh

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

11. Lệnh chown

Lệnh chown viết tắt của ‘thay đổi chủ sở hữu và nhóm tệp tin‘, đượ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.

chown newowner:newgroup filename

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

chown tecmint:users example.txt

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.

sudo apt search wget
sudo apt install wget
sudo apt update

Lệnh apt được xem là thông minh hơn và nâng cao hơn so với yum hoặc dnf command.

13. Lệnh tar

Lệnh tar viết tắt của Tape Archive là một công cụ hữu ích để tạo ra một bản lưu trữ, trong nhiều định dạng tệp tin và trích xuất dữ liệu từ bản lưu trữ đó.

tar -zxvf abc.tar.gz (Remember 'z' for .tar.gz)
tar -jxvf abc.tar.bz2 (Remember 'j' for .tar.bz2)
tar -cvf archieve.tar.gz(.bz2) /path/to/folder/abc

Ghi chú: ‘tar.gz’ có nghĩa là nén gz. ‘tar.bz2’ được nén bằng bzip sử dụng một 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 trong bất kỳ năm nào đó đã trôi qua hoặc đang tiến triển.

cal 

Hiển thị lịch của năm 1835 cho tháng tháng 2, đã trôi qua.

cal 02 1835

Hiển thị lịch của năm 2145 cho tháng tháng 7, đang tiến triển.

cal 07 2145
Show Calendar in Linux

Ghi chú: Bạn không cần phải quay lịch ngược lại 50 năm, cũng không cần phải thực hiện các 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 sắp tới.

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.

date

Để hiển thị ngày hiện tại theo định dạng “YYYY-MM-DD”.

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

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

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

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.

Ghi chú: Lệnh date rất hữu ích trong việc viết script, đặc biệt cho các hoạt động liên quan đến thời gian và ngày. Hơn nữa, việc thay đổi ngày và giờ bằng cách sử dụng terminal có thể khiến bạn cảm thấy như một GEEK thực sự! (Tất nhiên, bạn cần có quyền root để thực hiện thao tác này, vì nó liên quan đến thay đổi toàn cầu trên hệ thống).

16. Lệnh cat

Lệnh cat viết tắt của Concatenation, có nghĩa là kết hợp hai hoặc nhiều tệp tin và/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.

cat filename

Để ghép các tệp tin có nghĩa là lệnh sau sẽ ghép các nội dung của tệp tin 1 và tệp tin 2 và hiển thị kết quả trong cửa sổ terminal.

cat file1 file2

Nội dung của a.txtb.txtc.txt và d.txt sẽ được kết hợp và ghép vào cuối tệp tin abcd.txt.

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

cat abcd.txt

Ghi chú: Ký hiệu “>>” và “>” được gọi là ký hiệu ghép. Chúng được sử dụng để ghép đầu ra vào một tệp tin chứ không phải đầu ra chuẩn.

Ký hiệu “>” sẽ xóa một tệp tin đã tồn tại và tạo một tệp tin mới, vì vậy vì lý do bảo mật, khuyến cáo sử dụng “>>” để viết đầu ra 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ề các ký tự ngôi sao (bạn có thể biết về các mục nhập ký tự ngôi sao, trong phần lớn các chương trình truyền hình). Ngôi sao là một tính năng của shell, làm cho dòng lệnh mạnh mẽ hơn bất kỳ trình quản lý tệp tin đồ họa nào.

Bạn có thể biết, nếu bạn muốn chọn một nhóm tệp tin lớn 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 chuột. Điều này có vẻ đơn giản, nhưng trong một số trường hợp, điều này có thể rất frustrate.

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 HTML khác nhau và các thư mục con, và bạn quyết định di chuyển tất cả các tệp tin HTML, chứa từ “Linux” ở chỗ nào đó trong giữa đường dẫn của tệp tin, từ thư mục lớn đó đến 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 số lượng lớn các tệp tin HTML khác nhau theo tên khác nhau, nhiệm vụ của bạn không hề đơn giản!

Trong dòng lệnh của Linux, nhiệm vụ này dễ thực hiện cũng giống như di chuyển chỉ một tệp tin HTML, và nó dễ dàng như vậy bởi một tính năng gọi là ký tự ngôi sao của shell. Đây là các ký tự đặc biệt cho phép bạn lựa chọn các 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 có thể chọn ngay cả một nhóm lớn các tệp tin chỉ bằng cách nhập một vài ký tự, và trong hầu hết các trường hợp, nó dễ dùng hơn là chọn các tệp tin bằng chuột.

Dưới đây là một danh sách các ký tự ngôi sao được sử dụng phổ biến:

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

Ký tự “!” gọi là không ký tự, và kết quả của chuỗi được đính kèm 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ừ một vị trí này sang vị trí khác.

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

Ghi chú: 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 ký tự ngôi sao (giới thiệu trong khối trên) để sao chép tệp tin tùy chỉnh và mong muốn.

18. Lệnh mv

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

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

Ghi chú: Lệnh mv có thể được sử dụng với ký tự ngôi sao. mv phải đượ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ó quyền truy cập có thể dẫn đến lỗi độc hại và phá hỏng hệ thống.

19. Lệnh pwd

Lệnh pwd (print working directory), in ra đường dẫn làm việc hiện tại với tên đầy đủ trên terminal.

pwd 

/home/user/Desktop

Ghi chú: Lệnh pwd không thường được sử dụng trong shell scripting, nhưng nó là một giải pháp cứu tinh tuyệt đối đối với người mới dùng bị lạc trong terminal ở giai đoạn đầu tiên kết nối với Linux (Linux thường được gọi tắt là nux hoặc nix).

20. Lệnh cd

Cuối cùng, lệnh cd thường được sử dụng cd là viết tắt của ‘thay đổi thư mục‘, lệnh này thay đổi thư mục làm việc để thực thi, sao chép, di chuyển, ghi, đọc, v.v từ terminal.

cd /home/user/Desktop
pwd

/home/user/Desktop

Ghi chú: Lệnh cd là lựa chọn khi chuyển giữa các thư mục từ terminal. "cd ~" sẽ thay đổi thư mục làm việc thành thư mục gốc của người dùng, điều này rất hữu ích nếu người dùng bị lạc trong terminal. Mệnh đề "cd .." sẽ thay đổ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.