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

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 ~
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
. 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
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
Đ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 ..
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
/ 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
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 /
# 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
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!"
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}
Đ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
? 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
Đ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
* 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*
Đ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.*
[] 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
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
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
; 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
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/* .
& 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 &
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
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
> 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
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
| 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
! 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
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 đó:
!!
$ 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
Để 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
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}
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)"
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ăng | Tên lệnh | Mô tả chức năng |
Thao tác tệp và thư mục (Files) | tar | Nén/giải nén các tệp thành kho lưu trữ (archive). |
pv | Theo dõi tiến trình dữ liệu qua pipe. | |
cat | Nối và hiển thị nội dung tệp. | |
tac | Tương tự cat , nhưng in nội dung tệp theo thứ tự ngược. | |
chmod | Thay đổi quyền truy cập của tệp và thư mục. | |
grep | Tìm kiếm văn bản trong tệp bằng mẫu (pattern). | |
diff | So sánh hai tệp văn bản và hiển thị sự khác biệt. | |
sed | Trình biên tập luồng để lọc và biến đổi văn bản. | |
ar | Tạo, sửa đổi và trích xuất từ các kho lưu trữ (archive). | |
man | Hiển thị hướng dẫn sử dụng (manual pages) của lệnh. | |
pushd | Lưu thư mục hiện tại vào stack và chuyển sang thư mục mới. | |
popd | Lấy và chuyển sang thư mục được lưu gần nhất từ stack. | |
fsck | Kiểm tra và sửa chữa hệ thống tệp. | |
testdisk | Công cụ khôi phục phân vùng và tệp. | |
seq | Tạo chuỗi số. | |
fd | Công cụ tìm tệp nhanh hơn find (thường là lệnh bên ngoài). | |
pandoc | Công cụ chuyển đổi tài liệu đa năng. | |
cd | Thay đổi thư mục (Change Directory). | |
$PATH | Biến môi trường chứa danh sách thư mục tìm kiếm lệnh. | |
awk | Ngôn ngữ xử lý và quét mẫu văn bản. | |
join | Nối các dòng của hai tệp dựa trên trường chung. | |
jq | Bộ xử lý JSON trên dòng lệnh. | |
fold | Gói các dòng nhập vào chiều rộng được chỉ định. | |
uniq | Báo cáo hoặc loại bỏ các dòng lặp lại trong tệp. | |
journalctl | Truy vấn nhật ký từ hệ thống nhật ký systemd . | |
tail | Hiển thị phần cuối của một tệp. | |
stat | Hiển thị trạng thái tệp hoặc hệ thống tệp. | |
ls | Liệt kê nội dung thư mục. | |
fstab | Tệp cấu hình chứa thông tin hệ thống tệp. | |
echo | Hiển thị một dòng văn bản. | |
less | Trình xem tệp tương tác (cho phép cuộn). | |
chgrp | Thay đổi nhóm sở hữu của tệp. | |
chown | Thay đổ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. | |
look | Hiển thị các dòng bắt đầu bằng một chuỗi đã cho. | |
strings | In các chuỗi ký tự có thể in được trong tệp. | |
type | Mô tả cách một tên lệnh sẽ được diễn giải. | |
rename | Đổi tên nhiều tệp. | |
zip /unzip | Nén và giải nén tệp ZIP. | |
mount /umount | Gắn/Ngắt gắn hệ thống tệp. | |
install | Sao chép tệp và đặt thuộc tính. | |
fdisk | Công cụ quản lý bảng phân vùng đĩa. | |
mkfs | Xây dựng một hệ thống tệp. | |
rm /rmdir | Xóa tệp/thư mục (Remove/Remove Directory). | |
rsync | Đồng bộ hóa tệp và thư mục từ xa. | |
df | Hiển thị dung lượng đĩa trống của hệ thống tệp. | |
gpg | Công cụ mã hóa và ký PGP (GNU Privacy Guard). | |
vi /nano | Trình biên tập văn bản trên terminal. | |
mkdir | Tạo thư mục mới. | |
du | Ước tính mức sử dụng dung lượng tệp. | |
ln | Tạ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. | |
convert | Chuyể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. | |
shred | Xóa tệp một cách an toàn bằng cách ghi đè. | |
srm | Xóa tệp an toàn (Secure Remove, thường là lệnh bên ngoài). | |
scp | Sao chép tệp an toàn qua mạng (Secure Copy). | |
gzip | Nén/giải nén tệp. | |
chattr | Thay đổi thuộc tính tệp trên hệ thống tệp Linux. | |
cut | Xóa các phần của dòng từ tệp. | |
find | Tì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. | |
tr | Dịch hoặc xóa ký tự. | |
Quản lý tiến trình (Processes) | alias | Tạo bí danh (tên tắt) cho các lệnh. |
screen | Quản lý nhiều phiên terminal ảo. | |
top | Hiển thị các tiến trình đang chạy và mức sử dụng hệ thống. | |
nice /renice | Thay đổi mức độ ưu tiên của tiến trình. | |
progress | Theo dõi tiến trình sao chép các lệnh cơ bản. | |
strace | Theo dõi các lệnh gọi hệ thống của một tiến trình. | |
systemd | Hệ thống quản lý và khởi tạo dịch vụ. | |
tmux | Tương tự screen , trình đa hợp terminal. | |
chsh | Thay đổi shell đăng nhập. | |
history | Hiển thị lịch sử các lệnh đã gõ. | |
at /batch | Lên lịch lệnh chạy một lần vào thời điểm sau. | |
free | Hiển thị lượng bộ nhớ khả dụng và đang được sử dụng. | |
which | Tìm vị trí của một lệnh. | |
dmesg | Hiển thị tin nhắn từ bộ đệm hạt nhân (kernel buffer). | |
chfn | Thay đổi thông tin ngón tay (finger information). | |
usermod /groupadd | Sửa đổi thông tin tài khoản người dùng/Thêm nhóm. | |
ps | Báo cáo về trạng thái của các tiến trình hiện tại. | |
chroot | Thay đổi thư mục gốc cho tiến trình. | |
xargs | Xây dựng và thực thi các dòng lệnh từ đầu vào tiêu chuẩn. | |
tty | In tên của terminal được kết nối với đầu vào tiêu chuẩn. | |
pinky | Lệnh tìm kiếm thông tin người dùng nhẹ. | |
lsof | Liệt kê các tệp đang mở. | |
vmstat | Báo cáo về thống kê bộ nhớ ảo. | |
timeout | Chạy lệnh với giới hạn thời gian. | |
wall | Gửi tin nhắn tới tất cả người dùng terminal. | |
yes | In một chuỗi cho đến khi bị ngắt. | |
kill /sleep | Gửi tín hiệu đến tiến trình/Tạm dừng trong thời gian chỉ định. | |
sudo /su | Thự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. | |
groups | In tên các nhóm mà người dùng là thành viên. | |
lshw | Liệt kê cấu hình phần cứng. | |
shutdown /reboot /halt /poweroff | Tắt/Khởi động lại/Dừng hệ thống. | |
passwd | Thay đổi mật khẩu người dùng. | |
lscpu | Hiển thị thông tin về CPU. | |
crontab | Quản lý các công việc được lên lịch định kỳ (cron jobs). | |
date | In 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 /nohup | Tìm ID tiến trình/Chạy lệnh không bị ngắt khi terminal đóng. | |
pmap | Báo cáo bản đồ bộ nhớ của một tiến trình. | |
Mạng (Networking) | netstat | In kết nối mạng, bảng định tuyến, thống kê giao diện. |
ping | Gửi gói tin ICMP để kiểm tra kết nối mạng. | |
traceroute | Theo dõi đường đi của gói tin mạng. | |
ip | Công cụ hiển thị và cấu hình định tuyến, thiết bị mạng. | |
ss | Hiển thị thông tin socket. | |
whois | Tra cứu thông tin tên miền/IP. | |
fail2ban | Khung bảo mật ngăn chặn tấn công brute-force (thường là dịch vụ). | |
bmon | Giám sát băng thông và gỡ lỗi mạng. | |
dig | Công cụ tra cứu DNS. | |
finger | Công cụ thông tin người dùng mạng (ít dùng). | |
nmap | Công cụ thăm dò và kiểm tra bảo mật mạng. | |
ftp /curl /wget | Truyền tệp/Truyền dữ liệu/Tải tệp từ web. | |
who /whoami /w | Hiển thị ai đang đăng nhập/Tên người dùng hiện tại/Ai đang hoạt động. | |
iptables | Cấu hình quy tắc tường lửa hạt nhân. | |
ssh-keygen | Tạo khóa xác thực cho SSH. | |
ufw | Giao diện tường lửa đơn giản (Uncomplicated Firewall). | |
arping | Gửi gói ARP để kiểm tra địa chỉ MAC. | |
firewalld | Dị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!