50 dòng lệnh Linux cần biết



1. Lệnh tar

Tạo tar archive mới.

$ tar cvf archive_name.tar dirname/

Xuất từ tar archive đã có.

$ tar xvf archive_name.tar

Xem tar archive đã có.

$ tar tvf archive_name.tar

2. Lệnh grep

Tìm một string trong file (không phân biệt chữ hoa và chữ thường)

$ grep -i "the" demo_file

In dòng có kết quả trùng khớp, kèm theo 3 dòng dưới đó.

$ grep -A 3 -i "example" demo_text

Tìm kiếm đệ quy string trong tất cả file

$ grep -r "ramesh" *

3. Lệnh find

Tìm file theo tên (không phân biệt chữ hoa và chữ thường)

# find -iname "MyCProgram.c"

Thực thi lệnh lên file tìm được

$ find -iname "MyCProgram.c" -exec md5sum {} \;

Tìm tất cả file rỗng trong thư mục home

# find ~ -empty

4. Lệnh ssh

Login vào remote host

ssh -l jsmith remotehost.example.com

Debug ssh client

ssh -v -l jsmith remotehost.example.com

Hiển thị phiên bản ssh

$ ssh -V

OpenSSH_3.9p1, OpenSSL 0.9.7a Feb 19 2003

5. Lệnh sed

Khi bạn copy file DOS vào Unix, bạn có thể tìm \r\n ở cuối mỗi dòng. Ví dụ sau chuyển đổi format file DOS sang format file Unix với lệnh sed.

$sed 's/.$//' filename

In nội dung file theo thứ tự đỏ ngược

$ sed -n '1!G;h;$p' thegeekstuff.txt

Thêm số dòng vào tất cả dòng (không trống) trong file

$ sed '/./=' thegeekstuff.txt | sed 'N; s/\n/ /'

6. Lệnh awk

Loại bỏ dòng trùng lặp với awk

$ awk '!($0 in array) { array[$0]; print }' temp

In tất cả dòng từ /etc/passwd có cùng uid và gid

$awk -F ':' '$3==$4' passwd.txt

Chỉ in trường cụ thể từ file

$ awk '{print $2,$5;}' employee.txt

7. Lệnh vim

Nhảy đến dòng 143 của file

$ vim +143 filename.txt

Nhảy đến kết quả trùng khớp đầu tiên tìm được

$ vim +/search-term filename.txt

Mở file ở chế độ read only

$ vim -R /etc/passwd
Lệnh diff

Bỏ qua khoảng trắng khi so sánh

# diff -w name_list.txt name_list_new.txt

2c2,3

< John Doe --- > John M Doe

> Jason Bourne
Lệnh sort

Xếp file theo thứ tự tăng dần (ascending)

$ sort names.txt

Xếp file theo thứ tự giảm dần (descending)

$ sort -r names.txt

Xếp file passwd theo trường thứ 3

$ sort -t: -k 3n /etc/passwd | more

10. Lệnh export

Để xem biến môi trường liên quan đến oracle

$ export | grep ORACLE
declare -x ORACLE_BASE="/u01/app/oracle"
declare -x ORACLE_HOME="/u01/app/oracle/product/10.2.0"
declare -x ORACLE_SID="med"
declare -x ORACLE_TERM="xterm"

Xuất biến môi trường:

$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0

11. Lệnh xargs

Chép tất cả hình ảnh sang ổ cứng ngoài

# ls *.jpg | xargs -n1 -i cp {} /external-hard-drive/directory

Tìm kiếm tất cả hình ảnh jpg trong hệ thống và lưu trữ vào archive

# find / -name *.jpg -type f -print | xargs tar -cvzf images.tar.gz

Tải tất cả URLs được nhắc đến trong file url-list.txt:

# cat url-list.txt | xargs wget –c

12. Lệnh ls

Hiển thị filesize ở dạng đọc được (như KB, MB,…)

$ ls -lh
-rw-r----- 1 ramesh team-dev 8.9M Jun 12 15:27 arch-linux.txt.gz

Order Files Based on Last Modified Time (In Reverse Order) Using ls -ltr

$ ls -ltr

Phân loại File có ký tự đặc biệt bằng ls -F

$ ls -F

13. Lệnh pwd

Lệnh in các thư mục đang làm việc pwd có lẻ đã quá đỗi quen thuộc.

14. Lệnh cd

Dùng cd- để chuyển giữa hai thư mục gần nhất

Dùng shopt -s cdspell để tự động sửa tên thư mục gõ nhầm trên cd

15. Lệnh gzip

Tạo file nén *.gz

$ gzip test.txt

Giải nén file *.gz

$ gzip -d test.txt.gz

Hiển thị tỷ lệ nén của file đã nén bằng gzip -l

$ gzip -l *.gz

Tỷ lệ nén/chưa nén uncompressed_name

23709 97975 75.8% asp-patch-rpms.txt

16. Lệnh bzip2



Tạo file nén *.bz2

$ bzip2 test.txt

Giải nén file *.bz2

bzip2 -d test.txt.bz2

17. Lệnh upzip



Giải nén file *.zip

$ unzip test.zip

Xem nội dung file *.zip (mà không cần giải nén):

$ unzip -l jasper.zip
Archive: jasper.zip
Length Date Time Name
-------- ---- ---- ----
40995 11-30-98 23:50 META-INF/MANIFEST.MF
32169 08-25-98 21:07 classes_
15964 08-25-98 21:07 classes_names
10542 08-25-98 21:07 classes_ncomp

18. Lệnh shutdown



Shutdown hệ thống và tắt nguồn ngay

# shutdown -h now

Shutdown hệ thống sau 10 phút

# shutdown -h +10

Reboot hệ thống bằng lệnh shutdown

# shutdown -r now

Bắt buộc kiểm tra filesystem trong khi reboot

# shutdown -Fr now

19. Lệnh ftp



Cả ftp và secure ftp (sftp) đề gồm các lệnh giống nhau, để kết nối đến remote server và tải nhiều file, nhập lệnh

$ ftp IP/hostname
ftp> mget *.html

Để xem tên file nằm trên remote server trước khi download, dùng lệnh mls ftp theo như bên dưới

ftp> mls *.html -
/ftptest/features.html
/ftptest/index.html
/ftptest/othertools.html
/ftptest/samplereport.html
/ftptest/usage.html

20. Lệnh crontab



Xem crontab entry cho người dùng cụ thể

# crontab -u john -l

Lên lịch cron job mỗi 10 phút

*/10 * * * * /home/ramesh/check-disk-space

21. Lệnh service



Lệnh service được sử dụng để chạy system V init scripts, như: thay vì call scripts nằm trong thư mục /etc/init.d/ bằng đường dẫn hoàn chỉnh, bạn có thể sử dụng lệnh service.

Kiểm tra trạng thái service

# service ssh status

Kiểm tra trạng thái tất cả service

service --status-all

22. Lệnh ps


Lệnh ps được sử dụng để hiển thị thông tin về các process đang chạy trên hệ thống.

Có rất nhiều đối số (argument) có thể chuyển vào lệnh ps, sau đây là một số lệnh cơ bản.

$ ps -ef | more

Để theo dõi các process đang chạy trong cấu trúc cây

$ ps -efH | more

23. Lệnh ps

Lệnh này được sử dụng để hiển thị memory trống/đã sử dụng đang có trong hệ thống.

Output lệnh trống thông thường. Output được hiển thị theo byte.

$ free
total used free shared buffers cached
Mem: 3566408 1580220 1986188 0 203988 902960
-/+ buffers/cache: 473272 3093136
Swap: 4000176 0 4000176

Nếu bạn muốn nhanh chóng kiểm tra số GB RAM của hệ thống, hãy dùng tùy chọn -g. Tùy chọn -b hiển thị byte, -k hiển thị theo kilo byte, -m hiển thị theo mega byte.

$ free -g
total used free shared buffers cached
Mem: 3 1 1 0 0 0
-/+ buffers/cache: 0 2
Swap: 3 0 3

Nếu bạn muốn xem tổng bộ nhớ (kể cả swap), hãy dùng -t switch, cho ra kết quả như dưới

ramesh@ramesh-laptop:~$ free -t
total used free shared buffers cached
Mem: 3566408 1592148 1974260 0 204260 912556
-/+ buffers/cache: 475332 3091076
Swap: 4000176 0 4000176
Total: 7566584 1592148 5974436

24. Lệnh top


Lệnh top hiển thị các process đứng đầu hệ thống (mặc định đánh giá theo mức sử dụng CPU). Để xếp output đứng đầu theo bất cứ cột nào, nhấn O (chữ O) để hiển thị tất cả cột (khả thi) mà bạn có thể sắp xếp được

Current Sort Field: P for window 1:Def

Lựa chọn trường sắp xếp (sort) thông qua ký tự của trường đó, gõ phím bất kỳ để quay lại

a: PID = Process Id v: nDRT = Dirty Pages count
d: UID = User Id y: WCHAN = Sleeping in Function
e: USER = User Name z: Flags = Task Flags
........

Để chỉ hiển thị các process thuộc về user cụ thể, hãy dùng tùy chọn -u. Đoạn lệnh sau sẽ chỉ hiển thị các process đứng đầu thuộc về người dùng oracle

$ top -u oracle

25. Lệnh df


Hiển thị dung lượng do file system sử dụng. Theo mặc định, df -k hiển thị output theo byte.

$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 29530400 3233104 24797232 12% /
/dev/sda2 120367992 50171596 64082060 44% /home

df -h hiển thị output theo dạng dễ đọc, ví dụ như theo GB.

ramesh@ramesh-laptop:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 29G 3.1G 24G 12% /
/dev/sda2 115G 48G 62G 44% /home

Dùng tùy chọn -T để hiển thị kiểu file system

ramesh@ramesh-laptop:~$ df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/sda1 ext4 29530400 3233120 24797216 12% /
/dev/sda2 ext4 120367992 50171596 64082060 44% /home

26. Lệnh kill


Dùng lệnh kill để xác định process. Trước hết, dùng lệnh ps -ef để nhận process id, sau đó sử dụng kill -9 để kill các Linux process đang chạy như bên dưới. Bạn cũng có thể dùng killall, xkill để xác định unix process.

$ ps -ef | grep vim
ramesh 7243 7222 9 22:43 pts/2 00:00:00 vim

$ kill -9 7243

27. Lệnh rm


Xác nhận trước khi xóa file

$ rm -i filename.txt

Lệnh này rất hữu ích khi chuyển giao shell metacharacters trong name argument.

In filename và nhận xác nhận trước khi xóa bỏ file.

$ rm -i file*

Ví dụ sau xóa (kiểu đệ quy) tất cả file và thư mục trong thư mục example. Lệnh này xóa chính thư mục example.

$ rm -r example

28. Lệnh cp


Sao chép file1 sang file2 giữ nguyên mode, ownership, và timestamp.

$ cp -p file1 file2

Sao chép file1 và sang file2. Nếu file2 đã tồn tại, cần xác nhận trước khi overwrite

$ cp -i file1 file2

29. Lệnh mv


Đổi tên file1 thành file2. Nếu file2 đã tồn tại, cần xác nhận trước khi overwrite

$ mv -i file1 file2

Lưu ý: mv -f thì ngược lại, overwrite file 2 ngay mà không yêu cầu xác nhận.

mv -v sẽ in tất cả sự kiện trong quá trình rename file, thường rất hữu ích khi chỉ định shell metacharacters trong file name argument.

$ mv -v file1 file2

30. Lệnh cat


Bạn có thể cùng lúc xem nhiều file. Câu lẹnh ví dụ sau sẽ in nội dung của file1 kèm với file2 đến stdout

$ cat file1 file2

Khi hiển thị file, lệnh cat -n sau sẽ thêm số dòng vào trước mỗi dòng output.

$ cat -n /etc/logrotate.conf
1 /var/log/btmp {
2 missingok
3 monthly
4 create 0660 root utmp
5 rotate 1
6 }

31. Lệnh mount


Để mount file system, trước hết bạn nên tạo thư mục và mount như bên dưới

# mkdir /u01

# mount /dev/sdb1 /u01

Bạn cũng có thể thêm đoạn sau vào fstab để mount tự động (như mỗi khi hệ thống khởi động lại, file system sẽ được mount)

/dev/sdb1 /u01 ext2 defaults 0 2

32. Lệnh chmod


Lệnh chmod được dùng để thay đổi permission cho một file hoặc thư mục

Trao truy cập toàn quyền (đọc, việt thực thi) file nhất định cho user và group

$ chmod ug+rwx file.txt

Thu hồi tất cả quyền truy cập file nhất định của group

$ chmod g-rwx file.txt

Áp dụng (đệ quy) permisson cho mọi file trong thư mục con

$ chmod -R ug+rwx file.txt

33. Lệnh chown


Lệnh chown được sử dụng để thay đổi owner và nhóm file.

Để thay đổi onwer sang oracle và group sang db trên file. Như thay đổi cả owner và group cùng lúc

$ chown oracle:dba dbora.sh

Sử dụng -R để thay đổi (đẹ quy) ownership

$ chown -R oracle:dba /home/oracle

34. Lệnh passwd


Thay đổi password từ dòng lệnh bằng passwd. Lệnh này sẽ yêu cầu password cũ, theo sau là password mới.

$ passwd

Super user có thể dùng lệnh passwd để reset các password khác. Lệnh này sẽ không yêu cầu password hiện nay của user

# passwd USERNAME

Xóa password của một user. Root user có thể vô hiệu hóa password cho user đó. Khi password đã được vô hiệu hóa, user có thể login mà không cần nhập password.

# passwd -d USERNAME

35. Lệnh mkdir


Ví dụ sau sẽ tạo thư mục có tên temp ngay trong thư mục home

$ mkdir ~/temp

Tạo thư nhiểu thư mục lồng vào nhau bằng một lệnh mkdir duy nhất. Nếu có bất cứ thư mục nào đã tồn tại, vẫn sẽ không có lỗi. Nếu không tồn tại, máy sẽ tạo mới.

$ mkdir -p dir1/dir2/dir3/dir4/

36. Lệnh ifconfig


Dùng lệnh ifconfig để xem hoặc tinh chỉnh giao diện network trên hệ thống Linux.

Xem tất cả giao diện cùng với trạng thái.

$ ifconfig -a

Bắt đầu hoặc ngưng giao diện nhất định bằng lệnh up và down như dưới đây

$ ifconfig eth0 up

$ ifconfig eth0 down

37. Lệnh uname


Lệnh command hiển thị các thông tin quan trọng về hệ thống như Kernel name, Host name, Kernel release number, Processor type,…

Output mẫu từ laptop Ubuntu được hiển thị dưới đây

$ uname -a
Linux john-laptop 2.6.32-24-generic #41-Ubuntu SMP Thu Aug 19 01:12:52 UTC 2010 i686 GNU/Linux

38. Lệnh whereis


Khi muốn xem liệu một lệnh Unix tồn tại ở đâu, bạn có thể thực thi lệnh sau

$ whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

Khi muốn tìm kiếm executable (thực thi được) từ một đường dẫn chứ không phải từ tùy chọn whereis mặc định, bạn có thể dùng tùy chọn -B và nhập vào đó đường dẫn dưới dạng argument. Lệnh này sẽ tình kiếm (và hiển thị nếu có thể) executable lsmk trong thư mục /tmp

$ whereis -u -B /tmp -f lsmk
lsmk: /tmp/lsmk

39. Lệnh whatis


Lệnh whatis hiển thị description về một lệnh nào đó

$ whatis ls

ls (1) – list directory contents

$ whatis ifconfig

ifconfig (8) – configure a network interface

40. Lệnh locate


Khi sử dụng lệnh command, bạn có thể nhanh chóng tìm kiếm vị trí của một (nhóm) file cụ thể. Lệnh locate sẽ sử dụng database do updatedb tạo ra.

Ví dụ bên dưới cho thấy tất cả file trong hệ thống có chứa từ crontab trong đó.

$ locate crontab
/etc/anacrontab
/etc/crontab
/usr/bin/crontab
/usr/share/doc/cron/examples/crontab2english.pl.gz
/usr/share/man/man1/crontab.1.gz
/usr/share/man/man5/anacrontab.5.gz
/usr/share/man/man5/crontab.5.gz
/usr/share/vim/vim72/syntax/crontab.vim

41. Lệnh man


Hiển thị man page của một lệnh cụ thể

$ man crontab

Khi man page của một lệnh nằm dưới (nhiều hơn) một section, bạn có thể xem man page cho lệnh đó từ một section cụ thể như bênh dưới

$ man SECTION-NUMBER commandname

8 section có trong man page
General commands
System calls
C library functions
Special files (usually devices, those found in /dev) and
drivers
File formats and conventions
Games and screensavers
Miscellaneous
System administration commands and daemons

Ví dụ như, khi bạn thực hiện whatis crontab, bạn sẽ nhận thấy rằng crontob có hai man page (section 1 và section 5). Để xem section của crontab man page, hãy làm như sau

$ whatis crontab

crontab (1) – maintain file crontab cho người dùng cá nhân(V3)

crontab (5) – bảng cho driving cron

$ man 5 crontab

42. Ví dụ tail command


Mặc định in 10 dòng cuối của file

$ tail filename.txt

In N dòng của file tên filename.txt

$ tail -n N filename.txt

Xem nội dung của file theo thời gian thực bằng đuôi -f, rất hiệu quả khi xem file log đang mở rộng. Dùng CTRL-C để terminate lệnh này.

$ tail -f log-file

43. Lệnh less


Lệnh less, vì không load cả file, nên rất phù hợp với file log dung lượng lớn.

$ less huge-log-file.log

Khi mở file bằng lệnh less, bạn nên để ý hai tổ hợp phím tiện dụng sau

CTRL+F – forward one window
CTRL+B – backward one window

44. Lệnh su


Chuyển sang một user account khác bằng lệnh su. Người dùng su có thể chuyển đến bất cứ user nào mà không cần nhập password.

$ su - USERNAME

Thực thi một lệnh duy nhất từ một tên tài khoản khác. Trong ví dụ sau, John có thể thực thi lệnh ls dưới tên raj. Sau khi lệnh được thực thi, tài khoản John sẽ mặc định trở lại

[john@dev-server]$ su - raj -c 'ls'

[john@dev-server]$

Login vào user account cụ thể, và thực thi shell tùy ý, thay cho shell mặc định

$ su -s 'SHELLNAME' USERNAME

45. Lệnh mysql


mysql là database nguồn mở được sử dụng phổ biến nhất trên Linux. Để kết nối đếm remote mysql database, dùng lệnh dưới. Lệnh này sẽ yêu cầu password

$ mysql -u root -p -h 192.168.1.2

Để kết nối đến local mysql database

$ mysql -u root -p

Nếu bạn muốn định rõ mysql root password ngay từ trong dòng lệnh, hãy nhập ngay và luôn (không có dấu cách)

46. Lệnh yum


Để cài đặt apache bằng yum

$ yum install httpd

Để cập nhật apache bằng yum

$ yum update httpd

Để uninstall/remove apache bằng yum

$ yum remove httpd

47. Lệnh rpm


Để cài đặt apache bằng rpm

# rpm -ivh httpd-2.2.3-22.0.1.el5.i386.rpm

Để cập nhật apache bằng rpm

# rpm -uvh httpd-2.2.3-22.0.1.el5.i386.rpm

Để uninstall/remove apache bằng rpm

# rpm -ev httpd

48. Lệnh ping


Ping remote host chỉ với 5 packet

$ ping -c 5 gmail.com

49. Lệnh date


Cài đặt giờ hệ thống

# date -s "01/31/2010 23:59:53"

Khi đã thay đổi ngày hệ thống, bạn đã có thể đồng bộ hóa hardware clock với system date như dưới

# hwclock –systohc

# hwclock --systohc –utc

50. Lệnh wget


Phương thức tải phần mềm, nhạc và video từ ineternet nhanh gọn và hiện quả với lệnh wget

$ wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz

Tải và lưu trữ dưới tên khác

$ wget -O taglist.zip http://www.vim.org/scripts/download_script.php?src_id=7701

Techtalk

 
biz.