Bảng tra cứu

Lệnh Linux: bảng tóm tắt cho người mới và quản trị viên

Cập nhật: · Skillaria.Top

Các lệnh Linux cơ bản được chia theo nhóm: điều hướng (pwd, ls, cd), thao tác tệp (cp, mv, rm, mkdir), quyền truy cập (chmod, chown), gói (apt), tiến trình (ps, top, kill), tìm kiếm và xử lý văn bản (find, grep, sed, awk), mạng (ip, ss, curl) và dịch vụ (systemctl, journalctl). Dưới đây là các bảng lệnh kèm ví dụ, đủ cho phần lớn công việc hằng ngày trong terminal.

Bảng tóm tắt lệnh Linux này được sắp xếp theo nhóm công việc: tìm một tệp, cài một gói, kết thúc một tiến trình bị treo, lấy một dòng từ nhật ký, kiểm tra một cổng. Các lệnh đã được kiểm tra trên Ubuntu và Debian; hầu hết cũng chạy được trên các bản phân phối khác, chỉ khác ở trình quản lý gói.

Trợ giúp và gợi ý

LệnhTác dụng
man lshướng dẫn đầy đủ của lệnh, thoát bằng q, tìm kiếm bằng /từ-khóa
ls --helptrợ giúp ngắn về các tùy chọn
type cdcho biết đây là lệnh tích hợp, alias hay tệp
which python3đường dẫn tới tệp thực thi
historylịch sử lệnh; !123 chạy lại lệnh số 123
Ctrl+Rtìm trong lịch sử
Ctrl+C / Ctrl+Dngắt lệnh / đóng shell

Điều hướng hệ thống tệp

LệnhTác dụng
pwdthư mục hiện tại
ls -latất cả tệp, kể cả tệp ẩn, kèm quyền và kích thước
ls -lhkích thước dễ đọc (K, M, G)
ls -ltsắp xếp theo thời gian sửa đổi
cd /var/logchuyển tới đường dẫn tuyệt đối
cd .. / cd ~ / cd -lên một cấp / về thư mục cá nhân / về thư mục trước đó
tree -L 2cây thư mục sâu 2 cấp (gói tree)

Làm việc với tệp và thư mục

LệnhTác dụng
touch file.txttạo tệp rỗng hoặc cập nhật thời gian sửa đổi
mkdir -p a/b/ctạo thư mục cùng các thư mục cha
cp file.txt backup.txtsao chép tệp
cp -r src/ dst/sao chép thư mục đệ quy
mv old.txt new.txtđổi tên hoặc di chuyển
rm file.txtxóa tệp (không có thùng rác)
rm -r dir/xóa thư mục cùng nội dung; -f — không hỏi lại, cẩn thận
rmdir dirxóa thư mục rỗng
ln -s /opt/app/current appliên kết mềm (symbolic link)
stat file.txtchi tiết: kích thước, quyền, inode, ngày giờ
file image.binxác định loại tệp theo nội dung

Xem nội dung

LệnhTác dụng
cat filein toàn bộ tệp
less filexem từng trang, tìm bằng /, thoát bằng q
head -n 20 file20 dòng đầu
tail -n 50 file50 dòng cuối
tail -f /var/log/syslogtheo dõi tệp theo thời gian thực
wc -l filesố dòng
diff a.conf b.confkhác biệt giữa hai tệp

Quyền và chủ sở hữu

LệnhTác dụng
chmod +x script.shcho phép thực thi
chmod 644 filerw-r--r--: chủ sở hữu ghi, những người khác đọc
chmod 755 dirrwxr-xr-x: thường dùng cho thư mục và script
chmod 600 ~/.ssh/id_ed25519chỉ chủ sở hữu: dùng cho khóa riêng tư
sudo chown www-data:www-data fileđổi chủ sở hữu và nhóm
sudo chown -R alice /srv/appđổi chủ sở hữu đệ quy
idUID, GID và các nhóm của bạn
sudo -imở shell của root
sudo usermod -aG docker alicethêm người dùng vào nhóm

Gói phần mềm (apt, Debian và Ubuntu)

LệnhTác dụng
sudo apt updatelàm mới danh sách gói từ kho
sudo apt upgradenâng cấp các gói đã cài
sudo apt install nginxcài một gói
sudo apt remove nginxgỡ, giữ lại cấu hình; purge — gỡ cùng cấu hình
sudo apt autoremovegỡ các phụ thuộc không còn dùng
apt search htoptìm gói
apt show nginxmô tả và phiên bản
dpkg -l | grep nginxkiểm tra gói đã cài chưa
dpkg -L nginxgói đã cài những tệp nào

Trên RHEL, Fedora, Rocky Linux, các lệnh tương ứng là dnf install, dnf remove, dnf upgrade, rpm -qa.

Môi trường và hồ sơ shell

LệnhTác dụng
echo $PATHshell tìm chương trình ở những thư mục nào
envtất cả biến môi trường
export APP_ENV=prodđặt biến cho phiên hiện tại và các tiến trình con
alias ll='ls -la'lệnh viết tắt
source ~/.bashrctải lại hồ sơ mà không cần đăng nhập lại
crontab -e / crontab -lsửa / xem các tác vụ cron

Tiến trình

LệnhTác dụng
ps auxtất cả tiến trình kèm người dùng, CPU và bộ nhớ
ps aux | grep nginxtìm một tiến trình
pgrep -a nginxPID và dòng lệnh theo tên
top / htoptải hệ thống theo thời gian thực
kill 1234yêu cầu tiến trình kết thúc (SIGTERM)
kill -9 1234buộc kết thúc (SIGKILL) — biện pháp cuối cùng
pkill -f "python app.py"kết thúc theo phần khớp của dòng lệnh
command &, jobs, fgchạy nền và quản lý công việc
nohup ./job.sh &tiến trình tiếp tục chạy sau khi đóng terminal
free -hbộ nhớ và swap
uptimethời gian hoạt động và tải trung bình
strace -p 1234các lời gọi hệ thống của tiến trình

Dịch vụ và nhật ký (systemd)

LệnhTác dụng
systemctl status nginxtrạng thái dịch vụ và các dòng nhật ký gần nhất
sudo systemctl start|stop|restart nginxkhởi động, dừng, khởi động lại
sudo systemctl reload nginxtải lại cấu hình mà không dừng dịch vụ
sudo systemctl enable --now nginxbật tự khởi động và chạy ngay
systemctl --failedcác unit bị lỗi
journalctl -u nginx -fnhật ký dịch vụ theo thời gian thực
journalctl -u nginx --since "1 hour ago"nhật ký trong một giờ qua
journalctl -p err -bcác lỗi kể từ lần khởi động hiện tại

Tìm tệp

LệnhTác dụng
find /var/log -name "*.log"tìm theo tên
find . -type f -mtime -1các tệp được sửa trong 24 giờ qua
find / -size +500M 2>/dev/nulltệp lớn, ẩn các lỗi truy cập
find . -name "*.tmp" -deletetìm và xóa
du -sh *kích thước của từng mục trong thư mục
df -hdung lượng trống trên các hệ thống tệp

Tìm kiếm và xử lý văn bản: grep, sed, awk, jq

LệnhTác dụng
grep "error" app.logcác dòng chứa từ khóa
grep -i -n "error" app.logkhông phân biệt hoa thường, kèm số dòng
grep -r "listen" /etc/nginx/tìm đệ quy trong thư mục
grep -v "DEBUG" app.logcác dòng không chứa từ khóa
grep -c "500" access.logsố lần khớp
grep -E "warn|error" app.logbiểu thức chính quy mở rộng
sed 's/old/new/g' filethay thế và in kết quả
sed -i 's/8080/9090/' app.confthay thế ngay trong tệp
sed -n '10,20p' filein các dòng 10–20
awk '{print $1}' access.logtrường đầu tiên của mỗi dòng
awk -F: '{print $1}' /etc/passwdtên người dùng (phân tách bằng :)
awk '$9 == 500' access.logcác dòng có trường thứ chín bằng 500
sort | uniq -c | sort -rnđếm số lần lặp và sắp xếp theo tần suất
cut -d, -f2 data.csvcột thứ hai của CSV
jq '.items[].name' data.jsonlấy các trường từ JSON

Ví dụ đường ống: mười địa chỉ IP gửi nhiều yêu cầu nhất tới nginx.

awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

Chuyển hướng và đường ống

Cấu trúcTác dụng
cmd > out.txtghi kết quả vào tệp (ghi đè)
cmd >> out.txtghi thêm vào cuối tệp
cmd 2> err.txtchuyển hướng lỗi
cmd > all.log 2>&1kết quả và lỗi vào cùng một tệp
cmd1 | cmd2chuyển kết quả của lệnh này làm đầu vào cho lệnh kia
cmd | tee out.txthiển thị trên màn hình và lưu lại
cmd1 && cmd2chạy lệnh thứ hai chỉ khi lệnh thứ nhất thành công
cmd1 || cmd2chạy lệnh thứ hai nếu lệnh thứ nhất thất bại

Lưu trữ nén

LệnhTác dụng
tar -czf backup.tar.gz dir/đóng gói và nén gzip
tar -xzf backup.tar.gzgiải nén
tar -tzf backup.tar.gzxem nội dung
zip -r site.zip site/ / unzip site.ziptệp zip

Mạng

LệnhTác dụng
ip agiao diện mạng và địa chỉ IP
ip rbảng định tuyến
ping -c 4 8.8.8.8kiểm tra một máy có truy cập được không
ss -tulpncác cổng đang mở và tiến trình sử dụng chúng
dig example.com / nslookup example.comtruy vấn DNS
curl -I https://example.comchỉ header của phản hồi
curl -s https://api.example.com | jqgọi API và hiển thị JSON dễ đọc
wget URLtải tệp về
traceroute example.comđường đi của gói tin tới một máy
ssh user@hostkết nối tới máy chủ
ssh-keygen -t ed25519tạo cặp khóa SSH
scp file user@host:/tmp/sao chép tệp lên máy chủ
rsync -avz dir/ user@host:/srv/dir/đồng bộ thư mục
sudo ufw statuscác luật tường lửa

Hệ thống và ổ đĩa

LệnhTác dụng
uname -akernel và kiến trúc
cat /etc/os-releasebản phân phối và phiên bản
hostnamectltên máy và thông tin hệ thống
lsblkổ đĩa và phân vùng
sudo mount /dev/sdb1 /mntgắn một phân vùng
who / wai đang đăng nhập vào hệ thống
sudo reboot / sudo shutdown -h nowkhởi động lại / tắt máy

Tóm lại

Cho công việc hằng ngày, vài chục lệnh là đủ: ls, cd, cp, mv, rm, chmod, sudo, apt, ps, kill, systemctl, journalctl, grep, find, ss, curl và ssh. Hãy lưu bảng tóm tắt này và tham khảo khi cần, cho đến khi các lệnh đã thành phản xạ. Mọi nhóm lệnh đều được hướng dẫn thực hành trong khóa học Linux.

Câu hỏi thường gặp

Làm sao thoát khỏi man hoặc less?

Nhấn q. Để tìm kiếm bên trong, gõ dấu gạch chéo và từ khóa; n chuyển tới kết quả tiếp theo.

Làm sao thoát khỏi trình soạn thảo vim?

Nhấn Esc, rồi gõ :q! và Enter để thoát không lưu, hoặc :wq để lưu và thoát. Người mới nên sửa tệp bằng nano cho dễ.

Vì sao rm -rf nguy hiểm?

Lệnh xóa ngay, không hỏi xác nhận và không có thùng rác, nên một lỗi về đường dẫn (ví dụ thừa dấu cách trước dấu sao) có thể xóa nhầm thư mục. Hãy kiểm tra đường dẫn bằng ls trước khi chạy.

Làm sao chạy lại lệnh vừa rồi với sudo?

Gõ sudo !! — shell sẽ thay thế toàn bộ lệnh trước đó.

Làm sao dừng một lệnh bị treo trong terminal?

Ctrl+C gửi tín hiệu ngắt. Nếu lệnh vẫn không phản hồi, tìm PID bằng ps hoặc pgrep trong một terminal khác rồi kết thúc bằng kill.

Học chủ đề này qua video

Chủ đề này được giảng chi tiết kèm thực hành trong khóa học “Linux: с нуля до уверенного администрирования”.

Đến khóa học