DataOnoline đã tổng hợp một số lệnh Linux thực tế, đóng vai trò như một tài liệu tham khảo quý giá dành cho những người có kinh nghiệm sử dụng Linux. Vì không phải tất cả các lệnh đều được cài đặt sẵn trên hệ thống của bạn, nên hãy đảm bảo cài đặt các gói cần thiết trước khi áp dụng chúng.
Tài liệu này không chỉ tổng hợp các lệnh Linux mà bạn có thể đã biết nhưng đôi khi quên cú pháp, mà còn giới thiệu thêm một số lệnh mới nhằm tối ưu hóa hiệu suất làm việc trên dòng lệnh. Lưu ý, hướng dẫn này dựa trên kiến thức kinh nghiệm của bạn để điều chỉnh cú pháp các lệnh sao cho phù hợp với nhu cầu cụ thể của mình.
Trong bài hướng dẫn này, bạn sẽ được học: Linux Cheat Sheet
Yêu cầu, Quy ước và Phiên bản Phần mềm sử dụng
- Hệ thống: Bất kỳ distro Linux nào
- Phần mềm: N/A
- Yêu cầu khác: Quyền truy cập cao vào hệ thống Linux của bạn với quyền root hoặc thông qua lệnh sudo.
Quy ước:
- # – Yêu cầu các lệnh Linux phải được thực thi với quyền root, hoặc trực tiếp với người dùng root hoặc sử dụng lệnh sudo.
- $ – Yêu cầu các lệnh Linux phải được thực hiện dưới quyền người dùng thường (non-privileged user).
Backup và nén dữ liệu
Lệnh |
Mô tả |
`tar -c scripts/ |
bzip2 -9 > scripts.tar.bz2` |
`dd if=/dev/sda1 |
gzip -c9 > /media/usb/sda1.dd.gz` |
`cat /media/usb/sda1.dd.gz |
gzip -d |
`dd bs=1M if=/dev/sda |
gzip -c9 |
`find /etc/ -name ‘*.conf’ |
tar -c –files-from=- |
dd if=/dev/sdb of=my.mbr bs=466 count=1 |
Sao lưu MBR (Master Boot Record) của ổ cứng /dev/sdb vào tệp my.mbr . |
dd if=my.mbr of=/dev/sdX bs=466 count=1 |
Phục hồi MBR từ tệp my.mbr sang ổ cứng /dev/sdX . |
wget --mirror https://example.com |
Tạo bản sao hoàn chỉnh của một website từ xa với lệnh wget. |
tar cvjf etc_$(date +%Y%m%d).tar.bz2 /etc/ |
Tạo một tập tin lưu trữ của thư mục /etc/ bằng lệnh tar và nén với bzip2. Tên tệp nén sẽ chứa ngày hiện tại. |
tar xvjf etc.tar.bz2 |
Giải nén tệp nén bzip2 etc.tar.bz2 . |
`find /var/www/ -name ‘*.gif’ |
xargs cp -va –target-directory=/tmp/gifs` |
Tìm kiếm trong hệ thống tập tin
Lệnh |
Mô tả |
find /opt -name 'pass*' -or -size +1000k |
Tìm tất cả các tệp trong thư mục /opt có tên bắt đầu bằng pass hoặc có kích thước từ 1000k trở lên. Bạn có thể sử dụng các toán tử boolean khác như AND và NOT. |
locate -r '[^/]*\.conf' |
Tìm kiếm và định vị tất cả các tệp có phần mở rộng .conf . Lưu ý: có thể cần chạy updatedb trước. |
find /home/lilo/ -type f ! -perm 755 |
Tìm tất cả các tệp trong /home/lilo/ không có quyền 755. |
find /home/lilo/ -type f -perm 777 |
Tìm tất cả các tệp trong /home/lilo/ với quyền 777. |
ls -ltr |
Liệt kê tất cả các tệp trong thư mục hiện tại, sắp xếp theo thời gian truy cập/khởi tạo. |
find /tmp/ -mmin -20 |
Tìm tất cả các tệp trong /tmp/ được tạo trong vòng 20 phút qua. |
find /tmp -iname file -exec chmod 777 {} \; |
Tìm kiếm tệp có tên file (không phân biệt chữ hoa chữ thường) và thay đổi quyền của nó thành 777. |
find /var/log/ -size 8k |
Tìm các tệp trong /var/log/ có kích thước 8k. |
find / * -perm +6000 -type f -exec ls -ld {} \; > setuid.txt |
Tạo một danh sách tên các tệp nhị phân có setuid và setguid và lưu vào tệp setuid.txt . |
Mạng
Lệnh |
Mô tả |
curlftpfs ftp-user:ftp-pass@remote.ftp.com /mnt/my_ftp/ |
Gắn kết máy chủ FTP từ xa vào hệ thống tập tin cục bộ /mnt/my_ftp/ . |
ssh user@ssh-server.com '( cd /tmp/ && touch ssh_file.txt )' |
Thực thi các lệnh từ xa qua SSH. |
ssh user@ssh-server.com '( cat /etc/passwd )' > /tmp/passwd |
Tạo bản sao cục bộ của tệp /etc/passwd từ máy chủ từ xa. |
airodump-ng -c 6 -w data-capture wlan0 |
Bắt các gói tin mạng không dây sử dụng giao diện không dây wlan0 . |
macchanger -r eth0 |
Tạo địa chỉ MAC giả cho giao diện mạng eth0 . |
ssh -L 4500:127.0.0.1:23 linuxconfig.org |
Tạo một tunnel SSH cho telnet sử dụng cổng cục bộ 4500. |
ssh -L 8025:mail.sample.org:25 mail.sample.org |
Tunnel lưu lượng từ cổng cục bộ 8025 đến cổng 25 trên mail.sample.org . |
lsof -i tcp:22 |
Hiển thị dịch vụ sử dụng cổng TCP 22. |
ethtool eth0 |
Hiển thị trạng thái của giao diện mạng eth0 . |
iwlist wlan0 scanning |
Quét các mạng không dây có sẵn sử dụng giao diện wlan0 . |
netstat -ant |
Liệt kê tất cả các cổng TCP trên hệ thống. |
netstat -tupl |
Liệt kê tất cả các dịch vụ sẵn có trên hệ thống. |
ip route add default via 10.10.10.10 |
Thiết lập tuyến mặc định thông qua 10.10.10.10. |
Toán học và chuyển đổi
Lệnh |
Mô tả |
echo $((0xFFF)) |
Chuyển đổi số hệ thập lục phân (ví dụ: FFF) sang hệ thập phân sử dụng mở rộng shell. |
echo $((8#44)) |
Chuyển đổi số hệ bát phân (ví dụ: 44) sang hệ thập phân sử dụng mở rộng shell. |
`echo “obase=16; ibase=10; 555;” |
bc` |
`echo “obase=8; ibase=10; 64;” |
bc` |
`echo “obase=16; ibase=8; 255;” |
bc` |
`echo “3447.2 * 343.61” |
bc` |
`echo “scale=10; 100 / 3” |
bc` |
units -t '13miles' 'km' |
Chuyển đổi 13 dặm sang kilômét. |
units -t '10.5inches' 'cm' |
Chuyển đổi 10.5 inch sang centimét. |
units -t '78344352ms' 'hour' |
Chuyển đổi 78.344.352 mili-giây sang giờ. |
Xử lý văn bản
Lệnh |
Mô tả |
dd if=commands.txt of=commands.new conv=lcase |
Chuyển tất cả các ký tự từ chữ in hoa sang chữ thường. Lệnh này sẽ không làm thay đổi tệp nguồn mà tạo tệp mới commands.new . |
rename 's/\.sh$/.bash/' *.sh |
Đổi tên tất cả các tệp trong thư mục hiện tại có phần mở rộng .sh thành .bash . |
rename 's/^/new_/' *.conf |
Thêm tiền tố new_ cho tất cả các tệp có phần mở rộng .conf trong thư mục hiện tại. |
`grep -v ^# /etc/ntp.conf |
grep .` |
`ls |
grep ” “ |
`ls |
while read -r f; do mv “$f” `echo $f |
Ngày và giờ
Lệnh |
Mô tả |
date -ud@1244763573 |
Chuyển đổi một thời gian epoch sang Giờ Phối hợp Quốc tế (UTC). |
date -d "Dec 23 18:10:02 EST 2010" +%s |
Chuyển đổi định dạng ngày sang thời gian epoch. |
`echo ‘wget -c https://dataonline.vn/‘ |
at 03:00` |
date -d '2 Feb 2013' +%A |
Hiển thị ngày trong tuần cho ngày 2 tháng 2 năm 2013 (ví dụ: Saturday). |
units -t '10 days + 6 hours + 26 minutes + 59 seconds' 'seconds' |
Chuyển đổi tổng thời gian thành giây. |
Đa phương tiện
Lệnh |
Mô tả |
wodim --devices |
Hiển thị tên thiết bị ghi đĩa (burner) hiện có. |
cdrecord -v blank=all dev=/dev/scd0 |
Xóa sạch (blank) đĩa CD-RW hoàn toàn. Lưu ý: dùng wodim --devices để lấy tên file thiết bị. |
cdrecord -v blank=fast dev=/dev/scd0 |
Xóa nhanh (fast blank) đĩa CD-RW. |
fmpeg -i out.wav -acodec libmp3lame out.mp3 |
Chuyển đổi định dạng âm thanh WAV sang MP3. |
normalize-mp3 *.mp3 |
Cân bằng âm lượng cho tất cả các tệp MP3 để giảm sự tăng đột ngột giữa các bài hát. |
cat file1.mp3 file2.mp3 > out.mp3 |
Gộp tất cả các tệp MP3 thành một bản nhạc duy nhất. |
sox file1.wav file2.wav file3.wav out.wav |
Gộp tất cả các tệp WAV thành một bản nhạc duy nhất. |
for i in $( ls ); do ffmpeg -i $i $i.wav; done |
Chuyển đổi tất cả các tệp MP3 hoặc AC3 sang định dạng WAV. |
normalize-audio -m *.wav |
Cân bằng âm lượng cho tất cả các tệp WAV. |
cdrecord -v -nofix -eject dev='/dev/scd0' -audio -pad *.wav |
Ghi đĩa tất cả các tệp WAV vào một đĩa CD sử dụng thiết bị /dev/scd0 . |
cdrecord -v -fix -eject dev='/dev/scd0' |
Kết thúc phiên ghi CD bằng thiết bị /dev/scd0 . |
ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq screen.mpg |
Quay video màn hình và lưu vào tệp screen.mpg . |
for i in $( ls *.jpg ); do convert -resize 25% $i new_$i; done |
Thay đổi kích thước tất cả các ảnh JPG trong thư mục hiện tại còn 25% kích thước ban đầu. |
mkisofs -o /tmp/cd.iso /path/to/your/files/ |
Tạo một tập tin ảnh ISO từ các tệp trong thư mục /path/to/your/files/ . |
wodim -eject -tao speed=0 dev=/dev/scd0 -v -data /my/image.iso |
Ghi tệp ISO vào đĩa sử dụng thiết bị /dev/scd0 . |
mount -t iso9660 /path/to/iso/file.iso /mnt/iso -o loop |
Gắn (mount) tệp ISO vào thư mục /mnt/iso . |
Thông tin về đĩa và quản trị
Lệnh |
Mô tả |
time dd if=/dev/hdb of=/dev/null bs=1024k |
Kiểm tra tốc độ và kích thước ổ cứng một cách không phá hủy. Thay /dev/hdb bằng ổ cứng của bạn. |
`du -m –max-depth 1 |
sort -rn |
`du -s * |
sort -k1,1rn |
dd if=/dev/zero of=/sp bs=10000 count=10000; mkswap /sp; swapon /sp |
Tạo tệp /sp kích thước 100MB, tạo swap signature và bổ sung tệp /sp vào bộ nhớ swap của hệ thống, thêm 100MB swap. |
`dpkg-query -Wf=’${Installed-Size;10}\t${Package}\n’ |
sort -k1,1rn` |
`rpm -q -a –qf ‘%10{SIZE}\t%{NAME}\n’ |
sort -k1,1rn` |
head -c 100000000 /dev/urandom > file.data |
Tạo tệp file.data chứa dữ liệu ngẫu nhiên với khoảng 100MB. |
dd bs=1 seek=2TB if=/dev/null of=~/large-file |
Tạo tệp large-file 2TB tại thư mục home mà không chiếm dung lượng thực. |
df -h . |
Hiển thị thông tin về dung lượng còn trống của phân vùng chứa thư mục hiện tại. |
Thông tin về phần cứng
Lệnh |
Mô tả |
biosdecode |
Lấy thông tin BIOS. |
dmidecode -s bios-vendor |
Lấy thông tin nhà cung cấp BIOS. |
dmidecode --type baseboard |
Lấy thông tin về bo mạch chủ. |
ls -la /dev/disk/by-id/usb-* |
Hiển thị các tập tin thiết bị USB của ổ đĩa. Lưu ý: ổ USB phải được cắm vào, có thể không hoạt động trên tất cả các hệ thống. |
hdparm -I /dev/sdx |
Lấy thông tin mẫu ổ cứng của /dev/sdx . |
hdparm -tT /dev/sdx |
Kiểm tra tốc độ ổ cứng /dev/sdx . Lưu ý: bài kiểm tra này không tính đến hệ thống tập tin. |
hddtemp /dev/sda |
Kiểm tra nhiệt độ ổ cứng /dev/sda . |
`lspci |
grep VGA` |
dmidecode --type 4 |
Lấy thông tin về bộ xử lý. Cũng có thể thử: cat /proc/cpuinfo . |
`x86info -a 2> /dev/null |
grep Connector |
dmidecode -t 17 |
Phát hiện số khe RAM sử dụng, tốc độ và dung lượng. Cũng có thể dùng: lshw -C memory -short . |
cat /dev/sndstat |
Kiểm tra cài đặt và module của card âm thanh. |
powersave -b |
Lấy thông tin về pin. |
free -m |
Kiểm tra dung lượng bộ nhớ còn trống của hệ thống, bao gồm cả bộ nhớ swap. Các lệnh thay thế: top , cat /proc/meminfo . |
`fdisk -l |
grep GB` |
Mẹo & thủ thuật
Lệnh |
Mô tả |
`head -c 4 /dev/urandom |
mimencode` |
`echo “DISPLAY=$DISPLAY xmessage -center ‘abc'” |
at “NOW +1hour”` |
`:(){ : |
:& };:` |
ccrypt mypasswords.txt |
Mã hóa một tệp tin. |
ccdecrypt mypasswords.txt.cpt |
Giải mã tệp tin đã được mã hóa bằng ccrypt . |
Kết luận
Hãy sử dụng tài liệu tóm tắt lệnh Linux này như một công cụ tham khảo nhanh chóng bất cứ khi nào bạn cần nhớ lại một lệnh cụ thể. Mục đích chính của tài liệu là giúp bạn tối ưu hóa thời gian, giảm bớt gánh nặng khi phải nhớ các lệnh phức tạp.
Hai lệnh thiết yếu mà mọi người dùng Linux nên nắm vững là man và apropos. Khi hiểu rõ cách hoạt động của chúng, bạn có thể dễ dàng tra cứu tất cả các tùy chọn đi kèm với bất kỳ lệnh nào, đồng thời lệnh apropos hoạt động như một công cụ tìm kiếm tài liệu mạnh mẽ, cho phép bạn truy vấn thông tin ngay trong terminal mà không cần phải chuyển sang giao diện khác.