Laptop

Top 15 ký tự đặc biệt bạn cần nên biết cho Bash

Top 15 ky tu dac biet ban can nen biet cho Bash 1

Nếu bạn muốn thành thạo Bash shell trên Linux, macOS hoặc bất kỳ hệ thống nào tương tự UNIX, các ký tự đặc biệt (như ~, *, | và >) là vô cùng quan trọng. Chúng tôi sẽ giúp bạn khám phá những chuỗi lệnh Linux bí ẩn này và trở thành bậc thầy về chữ tượng hình.

Xem thêm: Hướng dẫn cách tạo USB khởi động macOS trên Windows 10 nhanh chóng

Các ký tự đặc biệt là gì?

Có một tập hợp các ký tự mà Bash shell xử lý theo hai cách khác nhau. Khi bạn gõ chúng tại shell, chúng hoạt động như các chỉ dẫn hoặc lệnh và yêu cầu shell thực hiện một chức năng nhất định. Hãy coi chúng là các lệnh một ký tự.

Đôi khi, bạn chỉ muốn in một ký tự và không cần nó hoạt động như một biểu tượng “thần kỳ”. Có một cách để bạn có thể sử dụng một ký tự để đại diện cho chính nó thay vì chức năng đặc biệt của nó.

Chúng tôi sẽ chỉ cho bạn những ký tự nào là ký tự “đặc biệt” (hay còn gọi là “meta-“), cũng như cách bạn có thể sử dụng chúng theo chức năng và theo nghĩa đen.

~ Thư mục Home (thư mục nhà)

Dấu ngã (~) là cách viết tắt cho thư mục home của bạn. Điều đó có nghĩa là bạn không cần phải gõ toàn bộ đường dẫn đến thư mục home trong các lệnh. Bất kể bạn đang ở đâu trong hệ thống tập tin, bạn có thể sử dụng lệnh này để đi đến thư mục home của mình:

cd ~

Top 15 ky tu dac biet ban can nen biet cho Bash 33

Bạn cũng có thể sử dụng lệnh này với các đường dẫn tương đối. Ví dụ, nếu bạn đang ở một nơi nào đó trong hệ thống tập tin không nằm dưới thư mục home của bạn và muốn chuyển đến thư mục archive trong thư mục work của bạn, hãy sử dụng dấu ngã để thực hiện:

cd ~/work/archive

Top 15 ky tu dac biet ban can nen biet cho Bash 32

. Thư mục hiện tại

Một dấu chấm ($. ) đại diện cho thư mục hiện tại. Bạn có thể thấy nó trong danh sách thư mục nếu bạn sử dụng tùy chọn -a (tất cả) với ls.

ls -a

Top 15 ky tu dac biet ban can nen biet cho Bash 31

Bạn cũng có thể sử dụng dấu chấm trong các lệnh để đại diện cho đường dẫn đến thư mục hiện tại của bạn. Ví dụ, nếu bạn muốn chạy một script từ thư mục hiện tại, bạn sẽ gọi nó như thế này:

./script.sh

Top 15 ky tu dac biet ban can nen biet cho Bash 30

Điều này yêu cầu Bash tìm kiếm tệp script.sh trong thư mục hiện tại. Bằng cách này, nó sẽ không tìm kiếm trong các thư mục trong biến path của bạn để tìm tệp thực thi hoặc script phù hợp.

.. Thư mục cha

Dấu chấm đôi hoặc “double dot” (..) đại diện cho thư mục cha của thư mục hiện tại của bạn. Bạn có thể sử dụng nó để di chuyển lên một cấp trong cây thư mục.

cd ..

Top 15 ky tu dac biet ban can nen biet cho Bash 29

Bạn cũng có thể sử dụng lệnh này với các đường dẫn tương đối—ví dụ, nếu bạn muốn đi lên một cấp trong cây thư mục, và sau đó vào một thư mục khác ở cấp độ đó.

Bạn cũng có thể sử dụng kỹ thuật này để nhanh chóng di chuyển đến một thư mục cùng cấp độ trong cây thư mục với thư mục hiện tại của bạn. Bạn “nhảy” lên một cấp, và sau đó “nhảy” xuống một cấp vào một thư mục khác.

cd ../gc_help

Top 15 ky tu dac biet ban can nen biet cho Bash 28

/ Dấu phân cách đường dẫn thư mục

Bạn có thể sử dụng dấu gạch chéo về phía trước (/)—thường được gọi là slash—để phân tách các thư mục trong một pathname (tên đường dẫn).

ls ~/work/archive

Top 15 ky tu dac biet ban can nen biet cho Bash 27

Một dấu gạch chéo về phía trước đại diện cho đường dẫn thư mục ngắn nhất có thể. Bởi vì mọi thứ trong cây thư mục Linux đều bắt đầu từ thư mục gốc (root directory), bạn có thể sử dụng lệnh này để nhanh chóng di chuyển đến thư mục gốc:

cd /

Top 15 ky tu dac biet ban can nen biet cho Bash 26

# Ghi chú hoặc cắt chuỗi

Thông thường nhất, bạn sử dụng dấu thăng hoặc dấu số (#) để báo cho shell biết rằng những gì theo sau là một ghi chú (comment), và nó không nên thực hiện hành động nào đối với nó. Bạn có thể sử dụng nó trong các shell script và—ít hữu ích hơn—trên dòng lệnh.

# Dòng này sẽ bị Bash shell bỏ qua

Top 15 ky tu dac biet ban can nen biet cho Bash 25

Tuy nhiên, nó không hoàn toàn bị bỏ qua, vì nó được thêm vào lịch sử lệnh của bạn.

Bạn cũng có thể sử dụng dấu thăng để cắt một biến chuỗi và loại bỏ một số văn bản khỏi phần đầu. Lệnh này tạo ra một biến chuỗi được gọi là this_string.

Trong ví dụ này, chúng ta gán văn bản “Dave Geek!” cho biến.

this_string="Dave Geek!"

Top 15 ky tu dac biet ban can nen biet cho Bash 24

Lệnh này sử dụng echo để in các từ “How-To” ra cửa sổ terminal. Nó truy xuất giá trị được lưu trữ trong biến chuỗi thông qua một mở rộng tham số (parameter expansion). Bởi vì chúng ta nối thêm dấu thăng và văn bản “Dave,” nó cắt bỏ phần đó của chuỗi trước khi nó được chuyển đến echo.

echo How-To ${this_string#Dave}

Top 15 ky tu dac biet ban can nen biet cho Bash 23

Điều này không làm thay đổi giá trị được lưu trữ trong biến chuỗi; nó chỉ ảnh hưởng đến những gì được gửi đến echo. Chúng ta có thể sử dụng echo để in giá trị của biến chuỗi một lần nữa và kiểm tra điều này:

echo $this_string

Top 15 ky tu dac biet ban can nen biet cho Bash 22

? Ký tự đại diện (Wildcard) cho một ký tự đơn lẻ của Bash

Bash shell hỗ trợ ba ký tự đại diện (wildcard), một trong số đó là dấu chấm hỏi (?). Bạn sử dụng các ký tự đại diện để thay thế các ký tự trong các mẫu tên tệp (filename templates). Một tên tệp có chứa ký tự đại diện tạo thành một mẫu khớp với một phạm vi tên tệp, chứ không chỉ một tệp.

Ký tự đại diện dấu chấm hỏi đại diện cho chính xác một ký tự. Xem xét mẫu tên tệp sau:

ls badge?.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 21

Điều này được dịch là “liệt kê bất kỳ tệp nào có tên bắt đầu bằng ‘badge’ và được theo sau bởi bất kỳ một ký tự đơn lẻ nào trước phần mở rộng tên tệp.”

Nó khớp với các tệp sau. Lưu ý rằng một số có số và một số có chữ cái sau phần “badge” của tên tệp. Ký tự đại diện dấu chấm hỏi sẽ khớp với cả chữ cái và số.

Mẫu tên tệp đó không khớp với “badge.txt,” bởi vì tên tệp không có ký tự đơn lẻ nào giữa “badge” và phần mở rộng tệp. Ký tự đại diện dấu chấm hỏi phải khớp với một ký tự tương ứng trong tên tệp.

Bạn cũng có thể sử dụng dấu chấm hỏi để tìm tất cả các tệp có một số ký tự cụ thể trong tên tệp. Lệnh này liệt kê tất cả các tệp văn bản chỉ chứa chính xác năm ký tự trong tên tệp:

ls ?????.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 20

* Ký tự đại diện cho chuỗi ký tự của Bash

Bạn có thể sử dụng ký tự đại diện dấu hoa thị (*) để đại diện cho bất kỳ chuỗi ký tự nào, kể cả không có ký tự nào. Xem xét mẫu tên tệp sau:

ls badge*

Top 15 ky tu dac biet ban can nen biet cho Bash 19

Điều này khớp với tất cả những điều sau:

Nó khớp với “badge.txt” bởi vì ký tự đại diện đại diện cho bất kỳ chuỗi ký tự nào hoặc không có ký tự nào.

Lệnh này khớp với tất cả các tệp có tên là “source,” bất kể phần mở rộng tệp là gì.

ls source.*

Top 15 ky tu dac biet ban can nen biet cho Bash 18

[] Ký tự đại diện cho tập hợp ký tự

Như đã trình bày ở trên, bạn sử dụng dấu chấm hỏi () để đại diện cho bất kỳ một ký tự đơn lẻ nào và dấu hoa thị () để đại diện cho bất kỳ chuỗi ký tự nào (bao gồm cả chuỗi rỗng).

Bạn có thể tạo một ký tự đại diện với dấu ngoặc vuông () và các ký tự mà chúng chứa. Ký tự tương ứng trong tên tệp phải khớp với ít nhất một trong các ký tự trong tập hợp ký tự đại diện này.

Trong ví dụ này, lệnh được dịch là: “bất kỳ tệp nào có phần mở rộng “.txt”, tên tệp bắt đầu bằng “badge_0″, và trong đó ký tự tiếp theo là 2, 4, hoặc 6.”

ls badge_0[246].txt

Top 15 ky tu dac biet ban can nen biet cho Bash 17

Bạn có thể sử dụng nhiều hơn một cặp ngoặc vuông cho mỗi mẫu tên tệp:

ls badge_[01][789].txt

Top 15 ky tu dac biet ban can nen biet cho Bash 16

Bạn cũng có thể bao gồm phạm vi trong tập hợp ký tự. Lệnh sau chọn các tệp có số từ 21 đến 25, và 31 đến 35 trong tên tệp.

ls badge_[23][1-5].txt

Top 15 ky tu dac biet ban can nen biet cho Bash 15

; Dấu phân cách lệnh Shell

Bạn có thể gõ bao nhiêu lệnh tùy thích trên dòng lệnh, miễn là bạn phân cách mỗi lệnh bằng một dấu chấm phẩy (). Chúng ta sẽ thực hiện điều này trong ví dụ sau:

ls > count.txt; wc -l count.txt; rm count.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 14

Lưu ý rằng lệnh thứ hai vẫn chạy ngay cả khi lệnh thứ nhất thất bại, lệnh thứ ba vẫn chạy ngay cả khi lệnh thứ hai thất bại, v.v.

Nếu bạn muốn dừng chuỗi thực thi nếu một lệnh thất bại, hãy sử dụng dấu và kép () thay vì dấu chấm phẩy:

cd ./doesntexist && cp ~/Documents/reports/* .

Top 15 ky tu dac biet ban can nen biet cho Bash 13

& Tiến trình nền (background process)

Sau khi bạn gõ một lệnh trong cửa sổ terminal và nó hoàn tất, bạn sẽ quay lại dấu nhắc lệnh. Thông thường, điều này chỉ mất một hoặc hai khoảnh khắc. Nhưng nếu bạn khởi chạy một ứng dụng khác, chẳng hạn như gedit, bạn không thể sử dụng cửa sổ terminal của mình cho đến khi bạn đóng ứng dụng đó.

Tuy nhiên, bạn có thể khởi chạy một ứng dụng dưới dạng tiến trình nền và tiếp tục sử dụng cửa sổ terminal. Để làm điều này, chỉ cần thêm một dấu và () vào dòng lệnh:

gedit command_address.page &

Top 15 ky tu dac biet ban can nen biet cho Bash 12

Bash sẽ hiển thị cho bạn ID tiến trình của những gì đã được khởi chạy, và sau đó trả bạn về dòng lệnh. Sau đó, bạn có thể tiếp tục sử dụng cửa sổ terminal của mình.

< Chuyển hướng đầu vào (input redirection)

Nhiều lệnh Linux chấp nhận một tệp làm tham số và lấy dữ liệu của chúng từ tệp đó. Hầu hết các lệnh này cũng có thể lấy đầu vào từ một luồng. Để tạo một luồng, bạn sử dụng dấu ngoặc nhọn trái ():

sort < words.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 11

Khi một lệnh có đầu vào được chuyển hướng vào nó, nó có thể hoạt động khác so với khi nó đọc từ một tệp được đặt tên.

Nếu chúng ta sử dụng wc để đếm từ, dòng và ký tự trong một tệp, nó sẽ in các giá trị, và sau đó là tên tệp. Nếu chúng ta chuyển hướng nội dung của tệp đến wc, nó in các giá trị số tương tự nhưng không biết tên của tệp mà dữ liệu đến từ đâu. Nó không thể in tên tệp.

Đây là một số ví dụ về cách bạn có thể sử dụng wc:

wc words.txt wc < words.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 10

> Chuyển hướng đầu ra (output redirection)

Bạn có thể sử dụng dấu ngoặc nhọn phải () để chuyển hướng đầu ra từ một lệnh (thường là vào một tệp); đây là một ví dụ:

ls > files.txt cat files.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 9

Chuyển hướng đầu ra cũng có thể chuyển hướng thông báo lỗi nếu bạn sử dụng một chữ số (2, trong ví dụ của chúng ta) với . Đây là cách thực hiện:

wc doesntexist.txt 2> errors.txt cat errors.txt

Top 15 ky tu dac biet ban can nen biet cho Bash 8

| Pipe (ống dẫn)

Một “pipe” (ống dẫn) xâu chuỗi các lệnh lại với nhau. Nó lấy đầu ra từ một lệnh và cung cấp nó cho lệnh tiếp theo dưới dạng đầu vào. Số lượng các lệnh được nối với nhau (độ dài của chuỗi) là tùy ý.

Ở đây, chúng ta sẽ sử dụng cat để cung cấp nội dung của tệp words.txt vào grep, lệnh này sẽ trích xuất bất kỳ dòng nào có chứa chữ “C” hoa hoặc thường. Sau đó, grep sẽ chuyển các dòng này cho sort. sort đang sử dụng tùy chọn (ngược), vì vậy kết quả đã sắp xếp sẽ xuất hiện theo thứ tự ngược lại.

Chúng ta đã gõ lệnh sau:

cat words.txt | grep [cC] | sort -r

Top 15 ky tu dac biet ban can nen biet cho Bash 7

! Toán tử logic NOT và toán tử lịch sử

Dấu chấm than () là một toán tử logic có nghĩa là NOT (không).

Có hai lệnh trong dòng lệnh này:

[ ! -d ./backup ] && mkdir ./backup

Lệnh thứ nhất là văn bản trong dấu ngoặc vuông; Lệnh thứ hai là văn bản theo sau dấu và kép .

Lệnh thứ nhất sử dụng làm toán tử logic. Dấu ngoặc vuông biểu thị một phép kiểm tra sắp được thực hiện. Tùy chọn (thư mục) kiểm tra sự hiện diện của một thư mục có tên backup. Lệnh thứ hai tạo thư mục.

Bởi vì dấu và kép phân cách hai lệnh, Bash sẽ chỉ thực thi lệnh thứ hai nếu lệnh thứ nhất thành công. Tuy nhiên, đó là điều ngược lại với những gì chúng ta cần. Nếu phép kiểm tra thư mục “backup” thành công (tức là thư mục tồn tại), chúng ta không cần tạo nó. Và nếu phép kiểm tra thư mục “backup” thất bại, lệnh thứ hai sẽ không được thực thi, và thư mục bị thiếu sẽ không được tạo.

Đây là lúc toán tử logic phát huy tác dụng. Nó hoạt động như một NOT logic. Vì vậy, nếu phép kiểm tra thành công (tức là thư mục tồn tại), sẽ lật nó thành “KHÔNG thành công,” tức là thất bại. Vì vậy, lệnh thứ hai không được kích hoạt.

Nếu phép kiểm tra thư mục thất bại (tức là thư mục không tồn tại), sẽ thay đổi phản hồi thành “KHÔNG thất bại,” tức là thành công. Vì vậy, lệnh tạo thư mục bị thiếu sẽ được thực thi.

Dấu nhỏ bé đó mang lại rất nhiều sức mạnh khi bạn cần!

Để kiểm tra trạng thái của thư mục backup, bạn sử dụng lệnh ls và các tùy chọn (liệt kê chi tiết) và (thư mục), như được hiển thị bên dưới:

ls -l -d backup

Top 15 ky tu dac biet ban can nen biet cho Bash 6

Bạn cũng có thể chạy các lệnh từ lịch sử lệnh của mình với dấu chấm than. Lệnh history liệt kê lịch sử lệnh của bạn, và sau đó bạn gõ số của lệnh bạn muốn chạy lại với để thực thi nó, như được hiển thị bên dưới:

!24

Lệnh sau chạy lại lệnh trước đó:

!!

Top 15 ky tu dac biet ban can nen biet cho Bash 5

$ Biểu thức biến (variable expressions)

Trong Bash shell, bạn tạo biến để giữ các giá trị. Một số, như biến môi trường, luôn tồn tại, và bạn có thể truy cập chúng bất cứ lúc nào bạn mở một cửa sổ terminal. Chúng giữ các giá trị, chẳng hạn như tên người dùng, thư mục home và path của bạn.

Bạn có thể sử dụng echo để xem giá trị mà một biến đang giữ—chỉ cần đặt dấu đô la () trước tên biến, như được hiển thị bên dưới:

echo $USER echo $HOME echo $PATH

Top 15 ky tu dac biet ban can nen biet cho Bash 4

Để tạo một biến, bạn phải đặt tên cho nó và cung cấp giá trị để nó giữ. Bạn không cần phải sử dụng dấu đô la để tạo một biến. Bạn chỉ thêm khi bạn tham chiếu một biến, chẳng hạn như trong ví dụ sau:

ThisDistro=Ubuntu MyNumber=2001 echo $ThisDistro echo $MyNumber

Top 15 ky tu dac biet ban can nen biet cho Bash 3

Thêm dấu ngoặc nhọn () xung quanh dấu đô la và thực hiện mở rộng tham số (parameter expansion) để lấy giá trị của biến và cho phép các biến đổi tiếp theo của giá trị.

Điều này tạo ra một biến giữ một chuỗi ký tự, như được hiển thị bên dưới:

MyString=123456qwerty

Sử dụng lệnh sau để echo chuỗi ra cửa sổ terminal:

echo ${MyString}

Để trả về chuỗi con bắt đầu từ vị trí 6 của toàn bộ chuỗi, sử dụng lệnh sau (có offset bằng 0, vì vậy vị trí đầu tiên là 0):

echo ${MyString:6}

Nếu bạn muốn echo một chuỗi con bắt đầu từ vị trí 0 và chứa sáu ký tự tiếp theo, sử dụng lệnh sau:

echo ${MyString:0:6}

Sử dụng lệnh sau để echo một chuỗi con bắt đầu từ vị trí 4 và chứa bốn ký tự tiếp theo:

echo ${MyString:4:4}

Top 15 ky tu dac biet ban can nen biet cho Bash 2

Trích dẫn các ký tự đặc biệt (quoting special characters)

Nếu bạn muốn sử dụng một ký tự đặc biệt như một ký tự nghĩa đen (không đặc biệt), bạn phải nói cho Bash shell biết. Điều này được gọi là trích dẫn (quoting), và có ba cách để làm điều đó.

Nếu bạn bao quanh văn bản bằng dấu nháy kép (), điều này ngăn Bash hành động trên hầu hết các ký tự đặc biệt, và chúng chỉ in ra. Tuy nhiên, một ngoại lệ đáng chú ý là dấu đô la (). Nó vẫn hoạt động như ký tự cho các biểu thức biến, vì vậy bạn có thể bao gồm các giá trị từ các biến trong đầu ra của mình.

Ví dụ, lệnh này in ra ngày và giờ:

echo "Today is $(date)"

Nếu bạn bao quanh văn bản bằng dấu nháy đơn () như được hiển thị bên dưới, nó ngừng chức năng của tất cả các ký tự đặc biệt:

echo 'Today is $(date)'

Bạn có thể sử dụng dấu gạch chéo ngược () để ngăn ký tự tiếp theo hoạt động như một ký tự đặc biệt. Điều này được gọi là “thoát” (escaping) ký tự; xem ví dụ dưới đây:

echo "Today is \$(date)"

Top 15 ky tu dac biet ban can nen biet cho Bash 1

Chỉ cần coi các ký tự đặc biệt như những lệnh rất ngắn. Nếu bạn ghi nhớ cách sử dụng của chúng, nó có thể cực kỳ có lợi cho sự hiểu biết của bạn về Bash shell—và các script của người khác—rất nhiều.

Các lệnh Linux cơ bản

Dưới đây là bảng các lệnh Linux cơ bản:

Chức năngTên lệnhMô tả chức năng
Thao tác tệp và thư mục (Files)tarNén/giải nén các tệp thành kho lưu trữ (archive).
pvTheo dõi tiến trình dữ liệu qua pipe.
catNối và hiển thị nội dung tệp.
tacTương tự cat, nhưng in nội dung tệp theo thứ tự ngược.
chmodThay đổi quyền truy cập của tệp và thư mục.
grepTìm kiếm văn bản trong tệp bằng mẫu (pattern).
diffSo sánh hai tệp văn bản và hiển thị sự khác biệt.
sedTrình biên tập luồng để lọc và biến đổi văn bản.
arTạo, sửa đổi và trích xuất từ các kho lưu trữ (archive).
manHiển thị hướng dẫn sử dụng (manual pages) của lệnh.
pushdLưu thư mục hiện tại vào stack và chuyển sang thư mục mới.
popdLấy và chuyển sang thư mục được lưu gần nhất từ stack.
fsckKiểm tra và sửa chữa hệ thống tệp.
testdiskCông cụ khôi phục phân vùng và tệp.
seqTạo chuỗi số.
fdCông cụ tìm tệp nhanh hơn find (thường là lệnh bên ngoài).
pandocCông cụ chuyển đổi tài liệu đa năng.
cdThay đổi thư mục (Change Directory).
$PATHBiến môi trường chứa danh sách thư mục tìm kiếm lệnh.
awkNgôn ngữ xử lý và quét mẫu văn bản.
joinNối các dòng của hai tệp dựa trên trường chung.
jqBộ xử lý JSON trên dòng lệnh.
foldGói các dòng nhập vào chiều rộng được chỉ định.
uniqBáo cáo hoặc loại bỏ các dòng lặp lại trong tệp.
journalctlTruy vấn nhật ký từ hệ thống nhật ký systemd.
tailHiển thị phần cuối của một tệp.
statHiển thị trạng thái tệp hoặc hệ thống tệp.
lsLiệt kê nội dung thư mục.
fstabTệp cấu hình chứa thông tin hệ thống tệp.
echoHiển thị một dòng văn bản.
lessTrình xem tệp tương tác (cho phép cuộn).
chgrpThay đổi nhóm sở hữu của tệp.
chownThay đổi chủ sở hữu và nhóm sở hữu của tệp.
revĐảo ngược thứ tự ký tự của mỗi dòng trong tệp.
lookHiển thị các dòng bắt đầu bằng một chuỗi đã cho.
stringsIn các chuỗi ký tự có thể in được trong tệp.
typeMô tả cách một tên lệnh sẽ được diễn giải.
renameĐổi tên nhiều tệp.
zip/unzipNén và giải nén tệp ZIP.
mount/umountGắn/Ngắt gắn hệ thống tệp.
installSao chép tệp và đặt thuộc tính.
fdiskCông cụ quản lý bảng phân vùng đĩa.
mkfsXây dựng một hệ thống tệp.
rm/rmdirXóa tệp/thư mục (Remove/Remove Directory).
rsyncĐồng bộ hóa tệp và thư mục từ xa.
dfHiển thị dung lượng đĩa trống của hệ thống tệp.
gpgCông cụ mã hóa và ký PGP (GNU Privacy Guard).
vi/nanoTrình biên tập văn bản trên terminal.
mkdirTạo thư mục mới.
duƯớc tính mức sử dụng dung lượng tệp.
lnTạo liên kết giữa các tệp.
patchÁp dụng tệp vá (patch file) cho tệp gốc.
convertChuyển đổi định dạng hình ảnh (thuộc ImageMagick).
rcloneĐồng bộ hóa tệp với các dịch vụ lưu trữ đám mây.
shredXóa tệp một cách an toàn bằng cách ghi đè.
srmXóa tệp an toàn (Secure Remove, thường là lệnh bên ngoài).
scpSao chép tệp an toàn qua mạng (Secure Copy).
gzipNén/giải nén tệp.
chattrThay đổi thuộc tính tệp trên hệ thống tệp Linux.
cutXóa các phần của dòng từ tệp.
findTìm kiếm tệp trong hệ thống thư mục.
umaskĐặt mặt nạ quyền mặc định cho các tệp mới.
wcĐếm số dòng, từ và ký tự trong tệp.
trDịch hoặc xóa ký tự.
Quản lý tiến trình (Processes)aliasTạo bí danh (tên tắt) cho các lệnh.
screenQuản lý nhiều phiên terminal ảo.
topHiển thị các tiến trình đang chạy và mức sử dụng hệ thống.
nice/reniceThay đổi mức độ ưu tiên của tiến trình.
progressTheo dõi tiến trình sao chép các lệnh cơ bản.
straceTheo dõi các lệnh gọi hệ thống của một tiến trình.
systemdHệ thống quản lý và khởi tạo dịch vụ.
tmuxTương tự screen, trình đa hợp terminal.
chshThay đổi shell đăng nhập.
historyHiển thị lịch sử các lệnh đã gõ.
at/batchLên lịch lệnh chạy một lần vào thời điểm sau.
freeHiển thị lượng bộ nhớ khả dụng và đang được sử dụng.
whichTìm vị trí của một lệnh.
dmesgHiển thị tin nhắn từ bộ đệm hạt nhân (kernel buffer).
chfnThay đổi thông tin ngón tay (finger information).
usermod/groupaddSửa đổi thông tin tài khoản người dùng/Thêm nhóm.
psBáo cáo về trạng thái của các tiến trình hiện tại.
chrootThay đổi thư mục gốc cho tiến trình.
xargsXây dựng và thực thi các dòng lệnh từ đầu vào tiêu chuẩn.
ttyIn tên của terminal được kết nối với đầu vào tiêu chuẩn.
pinkyLệnh tìm kiếm thông tin người dùng nhẹ.
lsofLiệt kê các tệp đang mở.
vmstatBáo cáo về thống kê bộ nhớ ảo.
timeoutChạy lệnh với giới hạn thời gian.
wallGửi tin nhắn tới tất cả người dùng terminal.
yesIn một chuỗi cho đến khi bị ngắt.
kill/sleepGửi tín hiệu đến tiến trình/Tạm dừng trong thời gian chỉ định.
sudo/suThực thi lệnh với quyền root/Chuyển đổi người dùng.
timeĐo thời gian chạy của một lệnh.
groupsIn tên các nhóm mà người dùng là thành viên.
lshwLiệt kê cấu hình phần cứng.
shutdown/reboot/halt/poweroffTắt/Khởi động lại/Dừng hệ thống.
passwdThay đổi mật khẩu người dùng.
lscpuHiển thị thông tin về CPU.
crontabQuản lý các công việc được lên lịch định kỳ (cron jobs).
dateIn hoặc đặt ngày giờ hệ thống.
bg/fgĐưa tiến trình lên nền/Đưa tiến trình ra phía trước.
pidof/nohupTìm ID tiến trình/Chạy lệnh không bị ngắt khi terminal đóng.
pmapBáo cáo bản đồ bộ nhớ của một tiến trình.
 
Mạng (Networking)netstatIn kết nối mạng, bảng định tuyến, thống kê giao diện.
pingGửi gói tin ICMP để kiểm tra kết nối mạng.
tracerouteTheo dõi đường đi của gói tin mạng.
ipCông cụ hiển thị và cấu hình định tuyến, thiết bị mạng.
ssHiển thị thông tin socket.
whoisTra cứu thông tin tên miền/IP.
fail2banKhung bảo mật ngăn chặn tấn công brute-force (thường là dịch vụ).
bmonGiám sát băng thông và gỡ lỗi mạng.
digCông cụ tra cứu DNS.
fingerCông cụ thông tin người dùng mạng (ít dùng).
nmapCông cụ thăm dò và kiểm tra bảo mật mạng.
ftp/curl/wgetTruyền tệp/Truyền dữ liệu/Tải tệp từ web.
who/whoami/wHiển thị ai đang đăng nhập/Tên người dùng hiện tại/Ai đang hoạt động.
iptablesCấu hình quy tắc tường lửa hạt nhân.
ssh-keygenTạo khóa xác thực cho SSH.
ufwGiao diện tường lửa đơn giản (Uncomplicated Firewall).
arpingGửi gói ARP để kiểm tra địa chỉ MAC.
firewalldDịch vụ quản lý tường lửa động.

Kết luận

Top 15 ký tự đặc biệt trong Bash được giới thiệu là chìa khóa để bạn làm chủ dòng lệnh, từ việc viết script hiệu quả, tự động hóa tác vụ đến xử lý dữ liệu phức tạp một cách dễ dàng. Những ký tự này không chỉ giúp tiết kiệm thời gian mà còn mở ra khả năng tùy chỉnh mạnh mẽ, biến Bash thành công cụ đắc lực cho cả người mới bắt đầu lẫn lập trình viên dày dạn kinh nghiệm. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về sức mạnh của các ký tự đặc biệt, sẵn sàng nâng cao kỹ năng sử dụng Bash để chinh phục mọi thử thách trên Linux!

Xem thêm: Hướng dẫn cách tự động khóa PC khi không sử dụng trên Windows 10

Nếu bạn cần laptop, PC cấu hình mạnh hoặc phụ kiện công nghệ chất lượng cao để lập trình và làm việc với Bash mượt mà, hãy ghé qua COHOTECH – địa chỉ uy tín cung cấp thiết bị công nghệ và dịch vụ hỗ trợ kỹ thuật chuyên nghiệp. Đội ngũ COHOTECH cam kết mang đến giải pháp tối ưu và những ưu đãi hấp dẫn để bạn khai thác tối đa tiềm năng công nghệ. Theo dõi chúng tôi để khám phá thêm nhiều mẹo hay và sản phẩm độc quyền!

Bạn đã sử dụng ký tự đặc biệt nào trong Bash để tối ưu hóa công việc? Hãy chia sẻ kinh nghiệm hoặc đặt câu hỏi trong phần bình luận bên dưới nhé! Nếu bài viết này hữu ích, đừng quên like, share và lan tỏa đến bạn bè để cùng khám phá sức mạnh của Bash. Cảm ơn bạn đã đọc và hẹn gặp lại!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *