Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Giới thiệu

Khai phá toàn bộ tiềm năng của hệ thống Linux với hướng dẫn toàn diện về các lệnh Linux thiết yếu. Dù bạn là quản trị viên giàu kinh nghiệm hay mới bắt đầu, thành thạo các lệnh này rất quan trọng cho quản trị server hiệu quả, viết script và troubleshooting. Trong hướng dẫn này, bạn sẽ học hơn 50+ lệnh Linux bắt buộc biết sẽ biến bạn thành một power user. Từ cơ bản đến nâng cao, các lệnh này sẽ trở thành công cụ đắc lực cho mọi tác vụ.

Các điểm chính

  • Các lệnh Linux được tổ chức theo mục đích: quản lý file (ls, cp, mv, rm), kiểm soát tiến trình (ps, kill, top), quyền người dùng (chmod, chown, sudo), và mạng (ssh, ping, wget).
  • Lệnh man cung cấp tài liệu tích hợp cho bất kỳ lệnh Linux nào và là tài liệu tham khảo chính khi bạn cần chi tiết cú pháp hoặc tùy chọn.
  • Sử dụng grep để tìm kiếm văn bản trong output hoặc file, head/tail để xem trước nội dung file, và diff/cmp để so sánh file.
  • Quyền file được quản lý bằng chmod (thay đổi mode bits) và chown (thay đổi owner), quan trọng cho bảo mật server và kiểm soát truy cập.
  • Các lệnh như tar, zip, và unzip xử lý nén và giải nén; ssh và scp xử lý truy cập từ xa an toàn và truyền file.
  • Các lệnh quản lý tiến trình (ps, kill, killall, top) thiết yếu cho giám sát sức khỏe hệ thống và chấm dứt tiến trình không phản hồi.

Điều kiện tiên quyết

Chúng ta sẽ chạy các lệnh này trên Ubuntu server, nhưng bạn có thể theo dõi trên bất kỳ bản phân phối Linux hiện đại nào. Bạn có thể thiết lập Ubuntu server cho hướng dẫn này bằng cách làm theo hướng dẫn Initial Server Setup trên Ubuntu.

Triển khai ứng dụng frontend từ GitHub bằng DigitalOcean App Platform. Hãy để DigitalOcean lo việc scale ứng dụng của bạn.

Hãy bắt đầu ngay!

Top 50 Lệnh Linux Bạn Phải Biết với tư cách User Thường

  1. ls - Lệnh thường dùng nhất để liệt kê thư mục
  2. pwd - In thư mục làm việc hiện tại
  3. cd - Điều hướng giữa các thư mục
  4. mkdir - Tạo thư mục
  5. mv - Di chuyển hoặc đổi tên file
  6. cp - Sao chép file
  7. rm - Xóa file hoặc thư mục
  8. touch - Tạo file rỗng
  9. ln - Tạo symbolic link (shortcut) đến file khác
  10. clear - Xóa hiển thị terminal
  11. cat - Hiển thị nội dung file trên terminal
  12. echo - In văn bản theo sau lệnh
  13. less - Hiển thị output phân trang trong terminal
  14. man - Truy cập manual pages cho tất cả lệnh
  15. uname - Lấy thông tin cơ bản về OS
  16. whoami - Lấy username đang hoạt động
  17. tar - Giải nén và nén file
  18. grep - Tìm chuỗi trong output
  19. head - Trả về số dòng chỉ định từ đầu
  20. tail - Trả về số dòng chỉ định từ cuối
  21. diff - Tìm sự khác biệt giữa hai file
  22. cmp - Kiểm tra hai file có giống hệt nhau không
  23. comm - Kết hợp chức năng của diff và cmp
  24. sort - Sắp xếp nội dung file khi output
  25. export - Xuất environment variables
  26. zip - Nén file zip
  27. unzip - Giải nén file zip
  28. ssh - Secure Shell command
  29. service - Khởi động và dừng services
  30. ps - Hiển thị tiến trình đang hoạt động
  31. kill and killall - Chấm dứt tiến trình bằng PID hoặc tên
  32. df - Hiển thị thông tin filesystem disk
  33. mount - Mount file systems
  34. chmod - Thay đổi quyền file
  35. chown - Cấp quyền sở hữu file/thư mục
  36. ifconfig - Hiển thị network interfaces và IP
  37. traceroute - Theo dõi network hops đến đích
  38. wget - Tải file trực tiếp từ internet
  39. ufw - Lệnh firewall
  40. iptables - Base firewall cho các tiện ích firewall khác
  41. apt, pacman, yum, rpm - Package managers tùy distribution
  42. sudo - Nâng cao đặc quyền
  43. cal - Xem lịch command-line
  44. alias - Tạo shortcut tùy chỉnh cho lệnh thường dùng
  45. dd - Dùng chính để tạo bootable USB
  46. whereis - Tìm binary, source, manual pages cho lệnh
  47. whatis - Tìm lệnh dùng để làm gì
  48. top - Xem tiến trình real-time với system usage
  49. useradd and usermod - Thêm user mới hoặc sửa dữ liệu user
  50. passwd - Tạo hoặc cập nhật mật khẩu user

Lệnh File và Thư mục

LệnhMô tảVí dụ
lsLiệt kê nội dung thư mụcls
cdThay đổi thư mụccd /path/to/directory
pwdHiển thị thư mục hiện tạipwd
mkdirTạo thư mục mớimkdir new_directory
rmdirXóa thư mục rỗngrmdir empty_directory
rmXóa file hoặc thư mụcrm file.txt
touchTạo file rỗngtouch new_file.txt
cpSao chép file hoặc thư mụccp file.txt /path/to/destination
mvDi chuyển hoặc đổi tên filemv file.txt /path/to/new_location
catHiển thị nội dung filecat file.txt
nano / vimChỉnh sửa file trong terminalnano file.txt
findTìm file trong hệ thống thư mụcfind . -name "file.txt"
grepTìm kiếm văn bản với patterngrep "pattern" file.txt
tarArchive và nén filetar -cvf archive.tar file1.txt file2.txt
dfHiển thị sử dụng disk của filesystemsdf
duHiển thị kích thước thư mục/filedu -sh /path/to/directory
chmodThay đổi quyền filechmod 755 file.txt
chownThay đổi owner filechown user:group file.txt
mountMount filesystemmount /dev/sdb1 /mnt
umountUnmount filesystemumount /mnt

Lệnh Networking

LệnhMô tảVí dụ sử dụng
pingKiểm tra kết nối đến hostping google.com
ifconfig / ip aHiển thị network interfacesifconfig hoặc ip a
netstat / ssHiển thị network connectionsnetstat -tuln hoặc ss -tuln
wgetTải file qua HTTP/FTPwget https://example.com/file.zip
curlTruyền dữ liệu dùng URL syntaxcurl -O https://example.com/file.zip
nc (Netcat)Network debugging và truyền dữ liệunc -zv 192.168.1.1 80
tcpdumpCapture và phân tích network packetstcpdump -i eth0
iptablesCấu hình firewall rulesiptables -A INPUT -p tcp --dport 22 -j ACCEPT
tracerouteTrace đường dẫn packets đến hosttraceroute example.com
nslookupQuery DNS để lấy domain/IP mappingnslookup example.com
sshKết nối an toàn đến remote hostssh user@example.com

Lệnh Process và System Monitoring

LệnhMô tảVí dụ lệnh
psHiển thị running processesps aux
topDynamic process viewertop
htopPhiên bản nâng cao của tophtop
killGửi signal đến processkill <PID>
killallChấm dứt process bằng tênkillall <process_name>
uptimeSystem uptime và loaduptime
whoamiUser hiện tạiwhoami
envHiển thị environment variablesenv
straceTrace system calls của processstrace -p <PID>
systemctlQuản lý systemd servicessystemctl status <service_name>
journalctlXem system logsjournalctl -xe
freeHiển thị memory usagefree -h
vmstatBáo cáo virtual memory statisticsvmstat 1
iostatBáo cáo CPU và I/O statisticsiostat
lsofLiệt kê open files bởi processeslsof
dmesgIn kernel ring buffer messagesdmesg

Lệnh User và Permission Management

LệnhMô tảVí dụ lệnh
passwdThay đổi mật khẩu userpasswd <username>
adduser / useraddThêm user mớiadduser <username> hoặc useradd <username>
deluser / userdelXóa userdeluser <username> hoặc userdel <username>
usermodSửa đổi tài khoản userusermod -aG <group> <username>
groupsHiển thị group membershipsgroups <username>
sudoThực thi lệnh sebagai rootsudo <command>
chageThay đổi thông tin hết hạn mật khẩuchage -l <username>
idHiển thị thông tin danh tính userid <username>
newgrpĐăng nhập vào group mớinewgrp <group>

Lệnh File Transfer và Synchronization

LệnhMô tảVí dụ lệnh
scpSao chép file an toàn qua SSHscp user@remote:/path/to/file /local/destination
rsyncSync file và thư mục hiệu quảrsync -avz /local/directory/ user@remote:/path/to/destination
ftpTruyền file dùng FTPftp ftp.example.com
sftpTruyền file an toàn qua SSH FTPsftp user@remote:/path/to/file
wgetTải file từ webwget https://example.com/file.zip
curlTruyền dữ liệu từ/đến servercurl -O https://example.com/file.zip

Lệnh Text Processing

LệnhMô tảVí dụ lệnh
awkPattern scanning và processingawk '{print $1}' file.txt
sedStream editor để lọc/sửa textsed 's/old/new/g' file.txt
cutLoại bỏ sections từ lines của textcut -d':' -f1 /etc/passwd
sortSắp xếp lines của textsort file.txt
grepTìm pattern trong textgrep 'pattern' file.txt
wcĐếm words, lines, characterswc -l file.txt
pasteGộp lines của filespaste file1.txt file2.txt
joinGộp lines của hai file trên common fieldjoin file1.txt file2.txt
headOutput phần đầu của fileshead -n 10 file.txt
tailOutput phần cuối của filestail -n 10 file.txt

Lệnh Shell Utilities và Shortcuts

LệnhMô tảVí dụ lệnh
aliasTạo shortcut cho lệnhalias ll='ls -la'
unaliasXóa aliasunalias ll
historyHiển thị lệnh đã nhập trướchistory
clearXóa màn hình terminalclear
rebootKhởi động lại hệ thốngreboot
shutdownTắt hệ thốngshutdown now
dateHiển thị hoặc đặt ngày/giờ hệ thốngdate
echoHiển thị một dòng textecho "Hello, World!"
sleepDelay một khoảng thời giansleep 5
timeĐo thời gian thực thi lệnhtime ls
watchChạy chương trình định kỳ, hiển thị fullscreenwatch -n 5 df -h

Bây giờ hãy đi sâu vào từng lệnh và hiểu chi tiết hơn. Chúng tôi đã có nhiều bài viết hiện có cho từng lệnh riêng lẻ. Vì sự tiện lợi của bạn, chúng tôi sẽ thêm link đến tất cả bài viết hiện có, và tiếp tục cập nhật bài viết khi có chủ đề mới được bao gồm.

Lệnh ls trong Linux

Lệnh ls được dùng để liệt kê file và thư mục trong thư mục làm việc hiện tại. Đây sẽ là một trong những lệnh Linux thường dùng nhất bạn phải biết.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy trong hình trên, dùng lệnh không có tham số sẽ cho output với tất cả file và thư mục. Lệnh cung cấp nhiều sự linh hoạt về hiển thị dữ liệu trong output.

Tìm hiểu thêm về sử dụng lệnh ls

Quay lại danh sách lệnh ↑

Lệnh pwd trong Linux

Lệnh pwd cho phép in thư mục làm việc hiện tại trên terminal. Đây là lệnh rất cơ bản và phục vụ mục đích của nó rất tốt.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Bây giờ, terminal prompt của bạn thường đã có đường dẫn đầy đủ. Nhưng nếu không, đây có thể là lệnh nhanh để xem thư mục bạn đang ở. Ứng dụng khác của lệnh này là khi tạo script nơi lệnh này cho phép tìm thư mục nơi script được lưu.

Quay lại danh sách lệnh ↑

Lệnh cd trong Linux

Khi làm việc trong terminal, di chuyển giữa các thư mục là điều gần như bắt buộc. Lệnh cd là một trong những lệnh Linux quan trọng bạn phải biết, và nó sẽ giúp bạn điều hướng qua các thư mục. Chỉ cần gõ cd theo sau là thư mục, như hiển thị dưới đây.

root@ubuntu:~# cd <directory path> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy trong lệnh trên, tôi chỉ gõ cd /etc/ để vào thư mục /etc. Chúng tôi dùng lệnh pwd để in thư mục làm việc hiện tại.

Quay lại danh sách lệnh ↑

Lệnh mkdir trong Linux

Lệnh mkdir cho phép bạn tạo thư mục từ trong terminal.

root@ubuntu:~# mkdir <folder name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy trong screenshot trên, chúng ta tạo thư mục mới chỉ với lệnh đơn giản này.

Quay lại danh sách lệnh ↑

Lệnh cp và mv

Lệnh cp và mv tương đương với copy-paste và cut-paste trong Windows. Nhưng vì Linux không thực sự có lệnh đổi tên file, chúng ta cũng dùng mv để đổi tên file và thư mục.

root@ubuntu:~# cp <source> <destination> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Trong lệnh trên, chúng ta tạo bản sao của file tên Sample. Hãy xem gì xảy ra nếu dùng mv theo cùng cách.

root@ubuntu:~# mv <source> <destination> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Trong trường hợp trên, vì chúng ta di chuyển file trong cùng thư mục, nó hoạt động như rename. Tên file bây giờ đã thay đổi.

Quay lại danh sách lệnh ↑

Lệnh rm trong Linux

Ở phần trước, chúng ta xóa file Sample-Copy. Lệnh rm dùng để xóa file và thư mục và là một trong những lệnh Linux quan trọng bạn phải biết.

root@ubuntu:~# rm <file name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Để xóa thư mục, bạn phải thêm tham số -r. Không có -r, lệnh rm không xóa thư mục.

root@ubuntu:~# rm -r <folder/directory name> 

Cờ -r trong lệnh rm là viết tắt của "recursive". Khi dùng với rm, nó sẽ xóa không chỉ file được chỉ định mà còn tất cả subdirectories và file trong các subdirectories đó một cách đệ quy.

Lưu ý: Quan trọng phải cẩn thận khi dùng rm với cờ -r, vì nó có thể xóa vĩnh viễn nhanh chóng một lượng lớn file và thư mục. Ý tưởng tốt là dùng cờ -i kết hợp với -r, sẽ nhắc xác nhận trước khi xóa mỗi file và thư mục.

Ví dụ, để xóa thư mục mydir và nội dung với xác nhận, bạn có thể dùng lệnh này:

root@ubuntu:~# rm -ri mydir 

Lệnh này sẽ nhắc xác nhận trước khi xóa mỗi file và thư mục trong thư mục mydir.

Quay lại danh sách lệnh ↑

Lệnh touch trong Linux

Lệnh touch trong Linux tạo file rỗng hoặc cập nhật timestamp của file hiện có.

root@ubuntu:~# touch <file name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Quay lại danh sách lệnh ↑

Lệnh ln trong Linux

Để tạo link đến file khác, chúng ta dùng lệnh ln. Đây là một trong những lệnh Linux quan trọng nhất bạn nên biết nếu dự định làm quản trị viên Linux.

root@ubuntu:~# ln -s <source path> <link name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Cờ -s tạo một symbolic link (còn gọi symlink hoặc soft link) đến file hoặc thư mục. Symbolic link là một loại file đặc biệt hoạt động như shortcut hoặc con trỏ đến file hoặc thư mục khác.

Mặc định, lệnh ln sẽ tạo hard links thay vì symbolic hoặc soft links.

Lưu ý: Giả sử bạn có file text. Nếu bạn tạo symbolic link đến file đó, link chỉ là con trỏ đến file gốc. Nếu bạn xóa file gốc, link sẽ bị hỏng, vì không còn gì để trỏ đến.

Một hard link là bản sao y hệt file gốc với nội dung chính xác. Giống symbolic links, nếu bạn chỉnh sửa nội dung file gốc, thay đổi đó sẽ phản ánh trong hard link. Nhưng nếu bạn xóa file gốc, hard link vẫn hoạt động, và bạn có thể xem và chỉnh sửa như một bản sao bình thường.

Tìm hiểu thêm về Soft và Hard Links.

Quay lại danh sách lệnh ↑

Lệnh clear trong Linux

Lệnh clear trong Linux xóa màn hình terminal. Nó loại bỏ tất cả text và output hiện hiển thị trên terminal và cho bạn một màn hình sạch để làm việc.

Ví dụ cách dùng lệnh clear:

root@ubuntu:~# clear 

Điều này sẽ xóa màn hình terminal và di chuyển con trỏ đến góc trên bên trái.

Bạn cũng có thể dùng clear kết hợp với lệnh khác, như này:

root@ubuntu:~# ls -l; clear 

Điều này sẽ liệt kê file và thư mục trong thư mục hiện tại, sau đó xóa màn hình terminal.

Lưu ý: Lệnh clear không xóa bất kỳ file hoặc dữ liệu nào từ hệ thống. Nó chỉ ảnh hưởng đến hiển thị terminal.

Lệnh cat, echo, và less

Khi bạn muốn xuất nội dung file hoặc in bất cứ thứ gì ra terminal output, chúng ta dùng lệnh cat hoặc echo. Hãy xem cách dùng cơ bản.

root@ubuntu:~# cat <file name> root@ubuntu:~# echo <Text to print on terminal> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy trong ví dụ trên, lệnh cat khi dùng trên New-File của chúng ta in nội dung file. Cùng lúc, khi dùng lệnh echo, nó chỉ in bất cứ thứ gì theo sau lệnh.

Lệnh less dùng khi output in bởi bất kỳ lệnh nào lớn hơn không gian màn hình và cần cuộn. Lệnh less cho phép người dùng chia nhỏ output và cuộn qua nó dùng phím enter hoặc space.

Cách đơn giản là dùng pipe operator (|).

root@ubuntu:~# cat /boot/grub/grub.cfg | less 

Lưu ý: Dùng cờ -S với less để bật line wrapping. Điều này cho phép xem dòng text dài mà không cuộn ngang.

Dùng cờ -N với less để hiển thị line numbers. Điều này hữu ích khi bạn cần biết số dòng của một đoạn text cụ thể.

Bạn có thể dùng các cờ hữu ích này như sau:

root@ubuntu:~# cat /boot/grub/grub.cfg | less -SN 

Dùng less với pipe operator có thể hữu ích trong nhiều tình huống khác nhau. Dưới đây là vài ví dụ:

  • Xem output của lệnh chạy lâu, như top hoặc htop.
  • Tìm text cụ thể trong output của lệnh, như grep hoặc cat.

Quay lại danh sách lệnh ↑

Lệnh man trong Linux

Lệnh man là một lệnh Linux rất hữu ích phải biết. Khi làm việc với Linux, các package chúng ta tải xuống có thể có nhiều chức năng. Biết tất cả là không thể.

Lệnh man trong Linux dùng để hiển thị manual page cho một lệnh cụ thể. Nó cung cấp thông tin chi tiết về lệnh, bao gồm cú pháp, tùy chọn, và ví dụ.

Ví dụ cách dùng lệnh man:

  1. Mở terminal và gõ man ls để hiển thị manual page cho lệnh ls.
root@ubuntu:~# man ls 

Điều này sẽ hiển thị trang giống như sau:

LS(1) User Commands LS(1) NAME ls - list directory contents SYNOPSIS ls [OPTION]... [FILE]... DESCRIPTION List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified. Mandatory arguments to long options are mandatory for short options too. -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. -c with -lt: sort by, and show, ctime (time of last modification of file status information) with -l: show ctime and sort by name; ... 

Quay lại danh sách lệnh ↑

Lệnh uname và whoami

Lệnh uname và whoami cho phép truy cập một số thông tin cơ bản hữu ích khi bạn làm việc trên nhiều hệ thống.

Lệnh uname trong Linux hiển thị thông tin về kernel của hệ thống, bao gồm kernel name, hostname, kernel release, kernel version, và machine hardware name.

Lệnh whoami trong Linux trả về username của user hiện tại. Nó là viết tắt của "who am I?" và thường dùng để xác định danh tính user hiện tại trong shell script hoặc terminal.

Hãy xem output của cả hai lệnh và cách chúng ta có thể dùng chúng.

root@ubuntu:~# uname -a 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Tham số -a với lệnh uname là viết tắt của "all". Điều này in ra thông tin hoàn chỉnh. Nếu tham số không thêm, tất cả bạn nhận được là "Linux".

Lưu ý: Một số cờ quan trọng bạn có thể dùng với lệnh uname.

  1. Dùng uname -s để hiển thị kernel name.
  2. Dùng uname -n để hiển thị hostname.
  3. Dùng uname -r để hiển thị kernel release.
  4. Dùng uname -v để hiển thị kernel version.
  5. Dùng uname -m để hiển thị machine hardware name.

Quay lại danh sách lệnh ↑

Lệnh tar, zip, và unzip

Lệnh tar trong Linux dùng để tạo và giải nén archived files. Chúng ta có thể giải nén nhiều loại archive khác nhau dùng lệnh tar.

Để tạo archive, dùng tham số -c, và để giải nén archive, dùng tham số -x. Hãy xem nó hoạt động như thế nào.

#Compress root@ubuntu:~# tar -cvf <archive name> <files separated by space> #Extract root@ubuntu:~# tar -xvf <archive name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Trong dòng đầu, chúng ta tạo archive tên Compress.tar với New-File và New-File-Link. Trong lệnh tiếp theo, chúng ta giải nén những file đó từ archive.

Hãy thảo luận lệnh zip và unzip. Cả hai rất đơn giản. Bạn có thể dùng không tham số, và chúng sẽ hoạt động như mong đợi. Xem ví dụ dưới đây.

root@ubuntu:~# zip <archive name> <file names separated by space> root@ubuntu:~# unzip <archive name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Vì chúng ta đã có những file đó trong cùng thư mục, lệnh unzip nhắc chúng ta trước khi ghi đè file.

Quay lại danh sách lệnh ↑

Lệnh grep trong Linux

Lệnh grep là công cụ tìm kiếm text mạnh mẽ và đa năng trong Linux và các hệ điều hành Unix-based. Nó có thể tìm pattern hoặc chuỗi cụ thể trong một hoặc nhiều file và lọc output của các lệnh khác.

Lệnh grep là viết tắt của "global regular expression print," phản ánh khả năng tìm regular expressions qua nhiều dòng và file.

root@ubuntu:~# <Any command with output> | grep "<string to find>" 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Đây là demo đơn giản của lệnh. Tìm hiểu thêm về lệnh grep.

Quay lại danh sách lệnh ↑

Lệnh head và tail

Khi output file lớn, lệnh head và tail rất tiện lợi. Các lệnh này hiển thị phần đầu hoặc cuối của file, tương ứng. Chúng thường dùng để nhanh chóng xem nội dung file mà không cần mở trong text editor.

Lệnh head và tail hiển thị 10 dòng đầu của file mặc định. Để hiển thị số dòng khác, bạn dùng tùy chọn -n, theo sau là số dòng bạn muốn hiển thị.

Ví dụ dùng lệnh head và tail:

root@ubuntu:~# head <file name> root@ubuntu:~# tail <file name> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy, lệnh head hiển thị 10 dòng từ đầu file.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Lệnh tail output 10 dòng cuối từ file.

Các lệnh này có thể dùng để nhanh xem nội dung file, giám sát cập nhật real-time cho troubleshooting, lọc output từ lệnh khác, và phân tích log.

Quay lại danh sách lệnh ↑

Lệnh diff, comm, và cmp

Lệnh diff, comm, và cmp đều dùng để so sánh file trong Linux và Unix-based OS. Các lệnh này có thể dùng để xác định khác biệt giữa hai file, merge changes, và thực hiện các tác vụ so sánh file khác.

root@ubuntu:~# diff <file 1> <file 2> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy ở trên, chúng ta đã thêm một đoạn text nhỏ nói "This line is edited" vào file New-File-Edited.

Lệnh cmp dùng để so sánh hai file và hiển thị byte đầu tiên khác nhau giữa chúng. Có thể dùng để xác định khác biệt giữa binary files hoặc kiểm tra corruption trong file.

root@ubuntu:~# cmp <file 1> <file 2> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Lệnh cmp chỉ cho chúng ta số dòng khác nhau. Không phải text thực tế.

Lệnh comm dùng để so sánh hai file đã sorted và hiển thị lines unique cho mỗi file, cũng như lines common cho cả hai file.

root@ubuntu:~# comm <file 1> <file2> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Text căn trái chỉ có trong file 1. Text căn giữa chỉ có trong file 2. Và text căn phải có trong cả hai file.

Trông có vẻ comm command có ý nghĩa nhất khi chúng ta so sánh file lớn và muốn thấy mọi thứ sắp xếp cùng nhau.

Cả ba lệnh này là công cụ thiết yếu cho việc làm việc với file trong Linux và Unix-based OS. Bằng cách hiểu cách dùng diff, comm, và cmp hiệu quả, bạn có thể xác định khác biệt giữa file, merge changes, và thực hiện các tác vụ so sánh file.

Các lệnh này có thể giúp bạn xác định và giải quyết vấn đề với file, cũng như theo dõi thay đổi và duy trì version control. Dù bạn là developer hay system administrator, các lệnh này là một phần thiết yếu của toolkit.

Quay lại danh sách lệnh ↑

Lệnh sort trong Linux

Lệnh sort dùng để sắp xếp lines trong text file hoặc standard input trong Linux và Unix-based OS. Nó có thể sắp xếp lines theo thứ tự tăng hoặc giảm và thực hiện các phép sắp xếp khác, như sắp xếp theo field hoặc dùng custom sorting order.

Cú pháp cơ bản của lệnh sort là:

root@ubuntu:~# sort <filename> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Mặc định, lệnh sort sắp xếp lines theo ASCII collating sequence, có thể dẫn đến kết quả bất ngờ khi sắp xếp số hoặc ký tự đặc biệt. Để sắp xếp số theo thứ tự số, bạn dùng tùy chọn -n.

Ví dụ dùng tùy chọn -n:

root@ubuntu:~# sort -n file.txt 

Lệnh trên sẽ sắp xếp lines trong file.txt theo thứ tự số.

Lệnh sort cũng có thể dùng để sắp xếp lines dựa trên field cụ thể dùng tùy chọn -k.

Ví dụ dùng tùy chọn -k:

root@ubuntu:~# sort -k 2 file.txt 

Lệnh này sẽ sắp xếp lines trong file.txt dựa trên field thứ hai.

Lệnh sort là công cụ mạnh mẽ và linh hoạt cho việc làm việc với text file trong Linux và Unix-based OS. Bằng cách hiểu cách dùng sort hiệu quả, bạn có thể sắp xếp lines trong text file, sắp xếp dựa trên field cụ thể, và thực hiện các phép sắp xếp khác.

Các lệnh này có thể giúp bạn tổ chức và phân tích dữ liệu và thực hiện các tác vụ thao tác file khác. Dù bạn là developer hay system administrator, lệnh sort là một phần thiết yếu của toolkit.

Quay lại danh sách lệnh ↑

Lệnh export trong Linux

Lệnh export trong Linux và Unix-based OS dùng để set environment variables. Environment variables dùng để lưu thông tin có thể dùng bởi processes hoặc commands.

Một khi environment variable được set, nó có thể truy cập bởi bất kỳ process hoặc command nào chạy trong cùng shell.

Environment variables có thể lưu nhiều loại thông tin, như configuration settings, user preferences, hoặc system information.

Ví dụ dùng lệnh export:

root@ubuntu:~# export <variable name>=<value> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Tìm hiểu thêm về lệnh export

Quay lại danh sách lệnh ↑

Lệnh ssh trong Linux

Lệnh ssh trong Linux và Unix-based OS thiết lập secure shell connection đến remote server. Lệnh cung cấp kết nối encrypted an toàn giữa local và remote server, cho phép user chạy lệnh và truyền file an toàn.

Cú pháp cơ bản của lệnh ssh là:

root@ubuntu:~ ssh username@remote-server 

Lệnh này thiết lập kết nối ssh đến remote-server dùng tài khoản username.

Lệnh ssh hỗ trợ nhiều tùy chọn và cấu hình, bao gồm:

  • Cấu hình authentication methods (password, public key, etc.)
  • Cấu hình encryption algorithms
  • Cấu hình compression
  • Cấu hình port forwarding
  • Cấu hình X11 forwarding
  • Cấu hình SSH keys

Lệnh service trong Linux

Lệnh service trong Linux dùng để quản lý system services, là các long-running processes khởi động tại boot time và chạy trong background. Các services này chịu trách nhiệm cung cấp nhiều system functionalities, như networking, database management, và user authentication.

Lệnh service dùng để start, stop, restart, và check status của các services này. Nó là front-end cho lệnh systemctl, dùng để quản lý systemd service manager.

Cú pháp cơ bản của lệnh như dưới đây.

root@ubuntu:~ service ssh status root@ubuntu:~ service ssh stop root@ubuntu:~ service ssh start 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn thấy trong hình, ssh server đang chạy trên hệ thống của chúng ta.

Quay lại danh sách lệnh ↑

Lệnh ps, kill, và killall

Lệnh ps, kill, và killall đều dùng để quản lý processes trong Linux.

Lệnh ps dùng để hiển thị thông tin về current running processes trên hệ thống. Dưới đây là một số ví dụ dùng lệnh ps:

Hiển thị danh sách tất cả running processes:

root@ubuntu:~ ps -ef 

Hiển thị danh sách tất cả processes cho một process ID (PID) cụ thể:

root@ubuntu:~ ps -p PID 

Hãy xem tất cả điều này trong hành động:

root@ubuntu:~ ps root@ubuntu:~ kill <process ID> root@ubuntu:~ killall <process name> 

Với mục đích demo, chúng ta sẽ tạo shell script với vòng lặp vô tận và chạy nó trong background.

Với việc dùng ký hiệu &, chúng ta có thể đẩy process vào background. Như bạn thấy, một bash process mới với PID 14490 được tạo.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Bây giờ, để kill process với lệnh kill, bạn gõ kill theo sau PID của process.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Nhưng nếu bạn không biết process ID và chỉ muốn kill process bằng tên, bạn có thể dùng lệnh killall.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Bạn sẽ nhận thấy PID 14490 vẫn active. Đó là vì, cả hai lần, chúng ta kill sleep process.

Tìm hiểu thêm về lệnh ps và lệnh kill.

Quay lại danh sách lệnh ↑

Lệnh df và mount

Khi làm việc với Linux, lệnh df và mount là tiện ích rất hiệu quả để mount filesystems và lấy chi tiết file system.

Lệnh df dùng để hiển thị lượng disk space đã dùng và available trên file systems, và lệnh mount dùng để mount file system hoặc device đến thư mục cụ thể.

Khi chúng ta nói mount, nghĩa là chúng ta sẽ kết nối device đến folder để truy cập file từ filesystem của chúng ta. Cú pháp mặc định để mount filesystem như dưới:

root@ubuntu:~ mount /dev/cdrom /mnt root@ubuntu:~ df -h 

Trong trường hợp trên, /dev/cdrom là device cần mount. Thường mountable device nằm trong folder /dev. mnt là folder đích để mount device. Bạn có thể đổi thành folder bất kỳ, nhưng chúng ta dùng /mnt vì đó là folder mặc định của hệ thống để mount device.

Để xem mounted devices và lấy thêm thông tin về chúng, dùng lệnh df. Chỉ gõ df sẽ cho dữ liệu trong bytes, không đọc được. Vì vậy, dùng tham số -h để làm dữ liệu human-readable.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Quay lại danh sách lệnh ↑

Lệnh chmod và chown

Lệnh chmod và chown dùng để sửa đổi file permissions và ownership trong Linux.

Lệnh chmod dùng để thay đổi permissions của file hoặc thư mục, và lệnh chown dùng để thay đổi ownership của file hoặc thư mục

Cú pháp mặc định cho cả hai lệnh là chmod <parameter> filename và chown <user:group> filename

root@ubuntu:~ chmod +x loop.sh root@ubuntu:~ chmod root:root loop.sh 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Trong ví dụ trên, chúng ta thêm executable permissions cho file loop.sh với lệnh chmod. Ngoài ra, với lệnh chown, chúng ta làm cho nó chỉ truy cập được bởi root user và users trong root group.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Như bạn sẽ nhận thấy, phần root root bây giờ đổi thành www-data là user mới có full file ownership.

Tìm hiểu thêm về Linux file Permissions và dùng lệnh chmod.

Quay lại danh sách lệnh ↑

Lệnh ifconfig và traceroute

Lệnh ifconfig và traceroute quản lý network interfaces và trace route của network packets trong Linux.

Lệnh ifconfig sẽ cho bạn danh sách tất cả network interfaces cùng với IP addresses, MAC addresses và thông tin khác về interface.

root@ubuntu:~ ifconfig 

Có nhiều tham số có thể dùng, nhưng chúng ta sẽ làm việc với lệnh cơ bản ở đây.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Lệnh traceroute dùng để trace route của network packets và xác định đường dẫn chúng lấy để đến đích cụ thể.

Khi làm việc với traceroute, bạn chỉ cần chỉ định IP address, hostname, hoặc domain name của endpoint.

root@ubuntu:~ traceroute <destination address> 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Bây giờ, rõ ràng localhost chỉ là một hop (network interface chính nó). Bạn có thể thử lệnh cùng với bất kỳ domain name hoặc IP address khác để thấy tất cả router gói dữ liệu đi qua để đến đích.

Quay lại danh sách lệnh ↑

Lệnh wget trong Linux

Nếu bạn muốn tải file từ trong terminal, lệnh wget là một trong những command-line utilities tiện lợi nhất. Nó là một trong những lệnh Linux quan trọng bạn nên biết khi làm việc với source files.

Khi bạn chỉ định link để tải, nó phải trực tiếp là link đến file. Nếu file không thể truy cập bởi lệnh wget, nó sẽ đơn giản tải webpage ở định dạng HTML thay vì file thực tế bạn muốn.

Hãy thử ví dụ. Cú pháp cơ bản của lệnh wget là :

root@ubuntu:~ wget <link to file> 

Hoặc,

root@ubuntu:~ wget -c <link to file> 

Tham số -c cho phép resume interrupted download.

Quay lại danh sách lệnh ↑

Lệnh ufw và iptables

Lệnh ufw và iptables dùng để quản lý firewall trong Linux.

UFW và IPTables là firewall interfaces cho netfilter firewall của Linux Kernel. IPTables trực tiếp truyền firewall rules đến Netfilter trong khi UFW cấu hình rules trong IPTables, sau đó gửi rules đó đến Netfilter.

Tại sao cần UFW khi đã có IPTables? Vì IPTables khá khó cho newbie. UFW làm mọi thứ cực kỳ dễ. Xem ví dụ dưới đây nơi chúng ta thử allow port 80 cho webserver.

root@ubuntu:~# iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT root@ubuntu:~# ufw allow 80 

Tôi chắc bạn hiện tại biết tại sao UFW được tạo! Nhìn cú pháp dễ dàng thế nào. Cả hai firewall này rất toàn diện và cho phép tạo bất kỳ cấu hình nào cần thiết cho network. Học ít nhất cơ bản UFW hoặc IPTables firewall, vì đây là Linux commands bạn phải biết.

Tìm hiểu thêm về quản lý firewall với ufw và quản lý firewall với iptables.

Quay lại danh sách lệnh ↑

Package Managers trong Linux

Khác nhau Linux distributions dùng khác nhau package managers. Vì chúng ta làm việc trên Ubuntu server, chúng ta có apt package manager. Nhưng cho ai làm việc trên Fedora, Red Hat, Arch, hoặc Centos, package manager sẽ khác.

Dưới đây là lệnh dùng các package managers trên các Linux distributions khác nhau.

  • Debian và Debian-based distros - apt install <package name>
  • Arch và Arch-based distros - pacman -S <package name>
  • Red Hat và Red Hat-based distros - yum install <package name>
  • Fedora và CentOS - yum install <package>

Làm quen với package manager của distribution sẽ làm mọi thứ dễ dàng hơn trong dài hạn. Vì vậy ngay cả khi bạn có GUI based package management tool, hãy thử dùng CLI based tool trước khi chuyển sang GUI utility. Thêm những lệnh này vào danh sách Linux commands bạn phải biết.

Quay lại danh sách lệnh ↑

Lệnh sudo trong Linux

"With great power, comes great responsibility"_

Đây là quote hiển thị khi sudo-enabled user(sudoer) lần đầu dùng lệnh sudo để escalate privileges. Lệnh này tương đương với đăng nhập như root (dựa trên permissions bạn có như sudoer).

non-root-user@ubuntu:~# sudo <command you want to run> Password: 

Chỉ thêm lệnh sudo trước bất kỳ lệnh nào bạn cần chạy với đặc quyền cao hơn, và xong. Rất đơn giản để dùng, nhưng cũng có thể là rủi ro bảo mật thêm nếu user độc hại truy cập được sudoer.

Tìm hiểu thêm về cách tạo sudo user mới và cách edit sudoers file.

Quay lại danh sách lệnh ↑

Lệnh cal trong Linux

Bạn có bao giờ muốn xem lịch trong terminal? Có vẻ như có những người muốn điều đó, và đây là nó.

Lệnh cal hiển thị lịch trình bày tốt trên terminal. Chỉ cần nhập lệnh cal trên terminal prompt.

root@ubuntu:~# cal root@ubuntu:~# cal March 2024 

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Mặc dù không thường cần, đây là bổ sung tuyệt vời! Là lựa chọn tuyệt vời cho terminal fans.

Quay lại danh sách lệnh ↑

Lệnh alias

Bạn có một số lệnh chạy rất thường xuyên khi dùng terminal? Có thể là rm -r hoặc ls -l, hoặc có thể dài hơn như tar -xvzf.

Đây là một trong những lệnh Linux tăng năng suất bạn phải biết.

Nếu bạn biết lệnh chạy rất thường, đã đến lúc tạo alias.

Alias là gì? Theo thuật ngữ đơn giản, đó là tên khác cho một lệnh bạn đã định nghĩa.

root@ubuntu:~# alias lsl="ls -l" OR root@ubuntu:~# alias rmd="rm -r" 

Bây giờ, mỗi khi bạn nhập lsl hoặc rmd trong terminal, bạn sẽ nhận output giống như khi dùng full command.

Ví dụ ở đây là cho các lệnh thực sự nhỏ bạn vẫn gõ tay mỗi lần. Nhưng trong một số tình huống lệnh có quá nhiều tham số bạn cần gõ, tốt nhất là tạo phiên bản viết tắt của nó.

Quay lại danh sách lệnh ↑

Lệnh dd trong Linux

Lệnh này được tạo để convert và copy file từ nhiều file system formats. Ngày nay, lệnh đơn giản dùng để tạo bootable USB cho Linux nhưng vẫn có những việc quan trọng bạn có thể làm với lệnh.

Lệnh dd trong Linux là lệnh đa năng dùng cho low-level copying và conversion của dữ liệu. Nó là viết tắt của "data-description" hoặc "data definition," và có thể dùng để copy và convert dữ liệu giữa các file formats và storage devices khác nhau.

Ví dụ, nếu muốn backup toàn bộ hard drive như nguyên trạng sang drive khác, ta dùng lệnh dd.

root@ubuntu:~# dd if=/dev/sdb of=/dev/sda 

if và of arguments là viết tắt của input file và output file.

Đây là công cụ mạnh mẽ và linh hoạt, nhưng cũng nguy hiểm nếu không dùng cẩn thận. Luôn kiểm tra kỹ cú pháp và chắc chắn bạn biết lệnh sẽ làm gì trước khi execute.

Quay lại danh sách lệnh ↑

Lệnh whereis và whatis

Lệnh whereis và whatis dùng trong Linux để tìm thông tin về programs và files.

Lệnh whereis định vị binary, source, và manual pages cho một lệnh hoặc program cụ thể, và lệnh whatis hiển thị mô tả ngắn của một lệnh hoặc program.

root@ubuntu:~# whereis sudo sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz 

Lệnh whatis cho chúng ta giải thích lệnh thực sự là gì.

root@ubuntu:~# whatis sudo sudo (8) - execute a command as another user 

Quay lại danh sách lệnh ↑

Lệnh top trong Linux

Vài phần trước, chúng ta nói về lệnh ps. Bạn quan sát lệnh ps sẽ output active processes và kết thúc.

Lệnh top giống như phiên bản CLI của task manager trong Windows.

Lệnh top trong Linux là công cụ system monitoring hiển thị thông tin real-time về system processes và resource usage. Nó cung cấp dynamic, real-time view của system activity, bao gồm CPU usage, memory usage, và process information.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Lưu ý: Dưới đây là một số ví dụ dùng lệnh top:

  • Sắp xếp processes theo memory usage:
root@ubuntu:~# top -o MEM 

Điều này sẽ sắp xếp process list theo memory usage, với process tốn memory nhiều nhất ở đầu.

  • Hiển thị thông tin chi tiết về process cụ thể:
root@ubuntu:~# top -p PID 

Thay thế PID bằng ID của process bạn muốn inspect.

  • Hiển thị tóm tắt system resource usage:
root@ubuntu:~# top -n 1 

Điều này sẽ hiển thị màn hình tóm tắt đơn lẻ của system resource usage.

Đây là công cụ mạnh mẽ và linh hoạt cho monitoring system activity và troubleshooting performance issues.

Quay lại danh sách lệnh ↑

Lệnh useradd và usermod

Lệnh useradd và usermod dùng trong Linux để quản lý user accounts.

Lệnh useradd hoặc adduser là chính xác cùng lệnh nơi adduser chỉ là symbolic link đến useradd. Lệnh này cho phép tạo user mới trong Linux.

root@ubuntu:~# useradd JournalDev -d /home/JD 

Lệnh trên sẽ tạo user mới tên JournalDev với home directory là /home/JD.

Lệnh usermod, mặt khác, dùng để sửa đổi user hiện có. Bạn có thể sửa bất kỳ giá trị nào của user bao gồm groups, permissions, v.v.

Ví dụ, nếu muốn thêm groups cho user, bạn gõ:

root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysql 

Quay lại danh sách lệnh ↑

Lệnh passwd trong Linux

Bây giờ bạn biết cách tạo user mới, hãy cũng set password cho họ. Lệnh passwd cho phép set password cho tài khoản của bạn, hoặc nếu bạn có quyền, set password cho tài khoản khác.

Dưới đây là một số ví dụ dùng lệnh passwd:

  • Thay đổi password cho user hiện tại:

    root@ubuntu:~# passwd 

Điều này sẽ nhắc bạn nhập password mới cho user hiện tại.

  • Thay đổi password cho user cụ thể:

    root@ubuntu:~# passwd username 

Thay thế username bằng tên user bạn muốn đổi password.

  • Buộc user đổi password ở lần đăng nhập tiếp theo:

    root@ubuntu:~# passwd -f username 
  • Đặt ngày hết hạn cho password user:

    root@ubuntu:~# passwd -e -n days -w warndays username 

Thay thế days bằng số ngày trước khi password hết hạn và warm days bằng số ngày trước khi password hết hạn mà user sẽ được cảnh báo.

Đây chỉ là vài ví dụ dùng lệnh passwd trong Linux. Bằng cách hiểu cách dùng lệnh này hiệu quả, bạn có thể quản lý user accounts và đảm bảo hệ thống an toàn.

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quả

Quay lại danh sách lệnh ↑

Common Errors và Debugging

Khi làm việc với Linux commands, bạn có thể gặp nhiều errors và issues. Dưới đây là một số vấn đề thường gặp và cách giải quyết:

1. Sửa lỗi "command not found"

Nếu nhận lỗi command not found, nghĩa là lệnh bạn đang cố chạy không được nhận diện bởi hệ thống. Điều này có thể xảy ra vì vài lý do:

  1. Lệnh không được cài trên hệ thống. Bạn có thể cài bằng package manager (ví dụ, apt, yum, dnf).

    Nếu thấy:

    bash: xyz: command not found 

    Dùng:

    which xyz 

    Nếu lệnh không cài, thử cài:

    apt-get install <package-name> 
  2. Lệnh không trong PATH của hệ thống. Bạn có thể thêm thư mục chứa lệnh vào PATH.

    export PATH=$PATH:/path/to/command 
  3. Bạn gõ sai chính tả. Kiểm tra kỹ lệnh cho bất kỳ lỗi spelling nào.

2. Giải quyết permission issues với sudo

Nếu gặp permission issues, bạn có thể dùng sudo để chạy lệnh với superuser privileges. Ví dụ:

sudo command_name 

3. Xử lý File Conflicts

File conflicts có thể xảy ra khi nhiều users hoặc processes cố gắng sửa cùng file cùng lúc. Dưới đây là cách xử lý:

  1. Sử dụng Version Control Systems (VCS): Công cụ như Git giúp manage file conflicts bằng cách cho phép user merge changes và resolve conflicts thủ công.

    git merge <branch_name> 

    Nếu có conflicts, Git sẽ nhắc bạn resolve chúng. Mở conflicting files, thực hiện thay đổi cần thiết, sau đó commit resolved files.

    git add <resolved_file> git commit -m "Resolved merge conflict" 
  2. Locking Mechanisms: Triển khai file locking để ngăn nhiều processes ghi vào cùng file cùng lúc. Dùng flock trong Linux để tạo lock trên file.

    flock -x <file> -c "<command>" 
  3. Atomic Operations: Dùng atomic operations để đảm bảo file writes hoàn thành trong một bước, giảm risk conflicts.

    mv temp_file target_file 

    Hoặc, Dùng mv với -f (force) hoặc cp với -i (interactive):

    mv -f file1 file2 cp -i file1 file2 

4. Debugging Performance Bottlenecks

Performance bottlenecks có thể ảnh hưởng đáng kể đến hiệu quả hệ thống. Dưới đây là các bước debug và giải quyết:

  1. Xác định Bottleneck: Dùng tools như top, htop, vmstat, và iostat để monitor system performance và xác định resource gây bottleneck (CPU, memory, disk I/O, etc.).

    top 
  2. Phân tích Logs: Kiểm tra system và application logs cho bất kỳ errors hoặc warnings nào chỉ ra performance issues.

    tail -f /var/log/syslog 
  3. Tối ưu Code: Review và tối ưu code để cải thiện performance. Tìm inefficient algorithms, unnecessary computations, và memory leaks.

  4. Profile Ứng dụng: Dùng profiling tools như gprof, perf, hoặc valgrind để phân tích performance ứng dụng và xác định slow functions hoặc memory issues.

    gprof <executable> gmon.out 
  5. Scale Resources: Nếu bottleneck do resource limitations, cân nhắc scale up hardware hoặc dùng load balancing để phân phối load qua nhiều servers.

FAQs

1. Linux commands thường dùng nhất là gì?

Các lệnh Linux thường dùng nhất bao gồm cd, ls, mkdir, rm, cp, mv, echo, cat, grep, find, man, sudo, apt-get, ssh, ping, df, du, free, top, ps, kill, killall, service, systemctl, reboot, shutdown, whoami, uname, uptime, history, và clear.

2. Làm sao liệt kê tất cả available commands trong Linux?

Bạn có thể liệt kê tất cả available commands bằng lệnh compgen -c. Điều này sẽ hiển thị danh sách tất cả commands available trên hệ thống.

3. Làm sao tìm file trong Linux?

Bạn có thể tìm file trong Linux dùng lệnh find. Cú pháp cơ bản là find <path> -name "<filename>", nơi <path> là thư mục bắt đầu tìm, và <filename> là tên file bạn tìm. Ví dụ, find /home/user -name "example.txt".

4. Làm sao kill process trong Linux?

Bạn có thể kill process trong Linux dùng lệnh kill. Đầu tiên, tìm process ID (PID) của process bạn muốn kill dùng ps hoặc top. Sau đó, dùng kill theo sau PID. Ví dụ, kill 1234, nơi 1234 là PID.

5. Khác biệt giữa cp và mv là gì?

Lệnh cp dùng để copy file hoặc thư mục, trong khi mv dùng để move hoặc rename file hoặc thư mục. cp tạo bản sao của file gốc, giữ nguyên file gốc, trong khi mv di chuyển file đến vị trí mới, xóa nó khỏi vị trí gốc.

6. Làm sao kiểm tra memory usage của Linux system?

Bạn có thể kiểm tra memory usage dùng lệnh free. Lệnh này hiển thị tổng lượng free và used physical và swap memory. Ví dụ, free -h hiển thị memory usage ở định dạng human-readable.

Kết luận

Trong hướng dẫn này, bạn khám phá hơn 50 lệnh Linux thiết yếu bao gồm file và directory management, process control, user permissions, networking, text processing, và shell utilities. Bạn cũng làm việc qua các ví dụ thực tế, troubleshooting patterns, và so sánh giữa các lệnh liên quan.

Bây giờ bạn có thể điều hướng Linux filesystem, quản lý processes, cấu hình permissions, và troubleshoot common issues từ command line. Các lệnh này tạo nền tảng cho Linux system administration và scripting hiệu quả.

Để đi sâu vào chủ đề cụ thể, khám phá các hướng dẫn sau:

  • The grep Command in Linux/Unix
  • The ls Command in Linux/Unix
  • Process Management in Linux
  • The ps Command in Linux
  • An Introduction to the Linux Terminal

Thành thạo Linux: 50+ Lệnh thiết yếu cho Quản trị Hệ thống Hiệu quảBản 작업 này được cấp phép theo Giấy phép Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.