Top 11 mẹo sử dụng lệnh Linux mà bạn nên biết

Hôm nay chúng ta sẽ cùng đến với một chủ đề bài viết là Top 11 mẹo sử dụng lệnh Linux rất hữu ích khi bạn quản lý Linux bằng lệnh. Hy vọng với những mẹo sử dụng lệnh này, các bạn newbie mới tìm hiểu Linux sẽ thao tác nhanh hơn và tiết kiệm thời gian hơn nhé.

Nội dung các mẹo này bao gồm các lệnh khá phổ biến như:

  • find
  • cd
  • watch
  • column
  • file
  • man
  • nohup
  • at
  • ps

1. Di chuyển về thư mục trước đó

Khi bạn sử dụng lệnh ‘cd ..‘ để di chuyển con trỏ chuột hoặc thư mục mà terminal đang đứng tại đó thì khi bạn cần di chuyển về thư mục trước đó của bạn. Bạn sẽ sử dụng option ‘‘ kèm theo lệnh ‘cd‘ để thực hiện điều này.

Trong ví dụ dưới thì bạn đang đứng ở thư mục ‘/root/‘ sau đó bạn di chuyển sang thư mục ‘/usr/local/src/‘ và cuối cùng bạn cần di chuyển ngược lại về thư mục trước đó.

# pwd
/root

# cd /usr/local/src
# pwd
/usr/local/src

# cd -
/root
# pwd
/root

2. Lặp lại câu lệnh trước đó

Khi bạn vừa gõ 1 lệnh trên Linux xong và cái lệnh đó nó dài ơi là dài hoặc là khó nhớ làm lười không muốn gõ lại câu lệnh đấy. Vậy liệu ta có cái mẹo nào để chạy lại lệnh sau cùng đã được thực thi hay không. Đó là hãy sử dụng 2 kí tự sau ‘!!‘.

# ip a s | grep -i "inet" | grep -Ev "127.0.0.1|inet6"
inet 192.168.100.5/24 brd 192.168.100.255 scope global eth0

# !!
ip a s | grep -i "inet" | grep -Ev "127.0.0.1|inet6"
inet 103.199.8.27/24 brd 103.199.8.255 scope global eth0

3. Xuất output terminal theo dạng cột

Khi mà bạn sử dụng các chương trình lệnh có xuất output ra màn hình hoặc xem nội dung file trên hệ thống. Bạn sẽ thấy đa phần đều có định dạng output nhìn chả đẹp mắt tí xíu nào. Vậy liệu ta có thể làm đẹp một vài loại output terminal hay output nội dung file với các cột thể hiện rõ ràng không. Hoàn toàn có thể với lệnh “column” trên Linux.

Ví dụ, bạn lấy nội dung 10 dòng đầu tiên của file /etc/passwd (chứa thông tin user và mật khẩu). Nhưng mà các giá trị được phân cách bằng kí tự ‘:‘ nhìn khó khăn quá.

# head -n 10 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

Vậy ta sẽ phân các giá trị thành các cột dựa trên kí tự ngăn cách là ‘:‘.

# head -n 10 /etc/passwd | column -t -s":"
root      x  0   0   root      /root            /bin/bash
bin       x  1   1   bin       /bin             /sbin/nologin
daemon    x  2   2   daemon    /sbin            /sbin/nologin
adm       x  3   4   adm       /var/adm         /sbin/nologin
lp        x  4   7   lp        /var/spool/lpd   /sbin/nologin
sync      x  5   0   sync      /sbin            /bin/sync
shutdown  x  6   0   shutdown  /sbin            /sbin/shutdown
halt      x  7   0   halt      /sbin            /sbin/halt
mail      x  8   12  mail      /var/spool/mail  /sbin/nologin
uucp      x  10  14  uucp      /var/spool/uucp  /sbin/nologin

4. Xác định loại file

Đối với hệ điều hành Linux, bạn phải nhớ một điều rằng Linux không phân biệt loại file dựa trên tên đuôi ‘.extension‘ của file đó. Bạn có thể đổi tên bất cứ thứ gì mình muốn, nhưng nó sẽ không thay đổi loại file đó. Vậy để có thể xác định chính xác file đó là loại file gì như file zip, file text hay file nhạc mp3,.. thì chúng ta sẽ dùng lệnh “file“.

Một vài ví dụ sau sẽ giúp bạn hiểu được cách sử dụng lệnh “file“.

# dir
script.sh gioi-thieu-vinadata.gif
master.zip dich-vu-cloud-vps-vinadata.mp3

– File script bash shell.

# file script.sh
script.sh: Bourne-Again shell script text executable

– File nén zip.

# file file master.zip
master.zip: Zip archive data, at least v1.0 to extract

– File nén gzip.

# file file-nen.tar.gz
file-nen.tar.gz: gzip compressed data, from Unix, last modified: Tue Apr 5 15:15:20 2011

– File hình ảnh gif.

# file gioi-thieu-vinadata.gif
gioi-thieu-vinadata.gif: GIF image data, version 89a, 200 x 259

– File audio mp3.

# file dich-vu-cloud-vps-vinadata.mp3
dich-vu-cloud-vps-vinadata.mp3: Audio file with ID3 version 2.3.0, contains: MPEG ADTS, layer III, v1, 192 kbps, 44.1 kHz, JntStereo

5. Xem hướng dẫn sử dụng lệnh

Khi bạn cần xem hướng dẫn sử dụng của một chương trình lệnh trên Linux, bạn sẽ phải mất thời gian tìm kiếm trên trang web để có được thông tin sử dụng và ví dụ sử dụng của lệnh đó. Nhưng không cần phải lo lắng gì cả, vì ngay trên Linux đã có hỗ trợ các văn bản gọi là “manual” hướng dẫn sử dụng lệnh rồi. Bạn chỉ cần sử dụng lệnh “man <tên_lệnh>“.

Lưu ý:
– Nếu hệ điều hành Linux của bạn chưa có chương trình “man“, thì hãy cài “man” vào hệ điều hành nhé.

+ CentOS/RHEL

# yum install -y man

+ Ubuntu/Debian

# apt-get install -y man

– Giả sử coi hướng dẫn sử dụng của lệnh thời gian “date“.

# man date

– Hướng dẫn sử dụng của lệnh coi thông tin ram “free“.

# man free

6. Xem output lệnh theo “thời gian thực”

Nếu bạn sử dụng lệnh “watch” nó sẽ hỗ trợ bạn xem output lệnh với thời gian tuần tự được lặp lại. Điều này đồng nghĩa với một kiểu xem thông tin “realtime” mà không cần phải gõ lệnh rồi enter quá nhiều lần.

Ví dụ, bạn có thể xem thông tin dung lượng RAM liên tục và thấy sự thay đổi được diễn ra. Sau đó hãy tự thử với một số lệnh khác để kết hợp với lệnh “watch” nhé.

# watch -n1 -d5 free -m

Every 1.0s: free -m                                                                                                                                            Sun Aug 13 07:59:17 2017

             total   used       free     shared    buffers     cached
Mem:           992        685        306          0        203        327
-/+ buffers/cache:        154        837
Swap:         1999          0       1999

Để thấy ví dụ rõ nhất, với kiểu dữ liệu output thay đổi thường xuyên ta có thể kết hợp với lệnh coi thông tin thời gian trên hệ thống “date“.

# watch -n1 -d5 date

7. Chạy chương trình lệnh ngay cả khi session SSH mất kết nối

Đôi khi bạn cần chạy một chương trình lệnh để phục vụ cho tác vụ của chúng ta, sau đó bạn có công việc phải tắt kết nối SSH đến máy chủ. Vậy làm sao để chương trình đó tự động thực hiện chương trình lệnh ngay cả khi đã tắt kết nối SSH. Đó là hãy sử dụng lệnh “nohup“, sau này nâng cao hơn các bạn có thể sử dụng chương trình “screen“.

Một vài ví dụ sau về “nohup“.
– Bạn download file mã nguồn cài đặt WordPress chẳng hạn. Rồi hãy tắt terminal SSH đi, sau đó lát sau kết nối SSH vào lại bạn sẽ thấy chương trình đã download mã nguồn WordPress xong.

# nohup wget https://wordpress.org/latest.zip

– Output của lệnh được thực thi kèm với “nohup” sẽ được xuất ra 1 file text cùng cấp thư mục gọi là “nohup.out

# head -n 10 nohup.out 
--2017-08-13 10:36:07--  https://wordpress.org/latest.zip
Resolving wordpress.org... 66.155.40.249, 66.155.40.250
Connecting to wordpress.org|66.155.40.249|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 8910664 (8.5M) [application/zip]
Saving to: “latest.zip”

     0K .......... .......... .......... .......... ..........  0%  140K 62s
    50K .......... .......... .......... .......... ..........  1%  140K 62s

8. Xoá 1 file text có dung lượng lớn

Trên hệ thống Linux, khi bạn quản trị bạn sẽ gặp phải trường hợp đó là những file log có dung lượng rất lớn lên đến hàng chục hoặc hàng trăm GB. Muốn xoá bằng công cụ thông thường “rm” thì sẽ tốn thời gian vô cùng và không hiệu quả khi có khả tăng cao I/O hệ thống Linux. Vì vậy để ở trường hợp này chúng ta sẽ sử dụng 1 phương pháp, đó là hãy ghi output rỗng vào file sau đó hãy tiến hành xoá file rỗng này. Phương pháp này sẽ hạn chế vô cùng các hoạt động tăng cao I/O trên hệ thống.

Ví dụ mình có file log có dung lượng tầm 150GB.

# du -sh file-log-lon.log
150G file-log-lon.log

– Giờ mình xuất output rỗng vào file đường dẫn file log.

# > /duong-dan/file-log-lon.log

– Sau đó chỉ cần xoá file này đi thôi.

# rm /duong-dan/file-log-lon.log

9. Thực thi lệnh vào một thời gian cố định

Trong khi “cron” được sử dụng để thiết lập các nhiệm vụ thực thi định kì trên hệ thống. Thì chương trình “at chỉ sử dụng để lên lịch cho 1 hoặc nhiều chương trình lệnh khác thực thi vào 1 thời điểm cụ thể 1 lần duy nhất, như một nội dung nhắc nhở đơn giản hoặc một script phức tạp.

Cấu trúc lệnh

# at time date
at> <command lenh thuc thi>

Vd 1: thiết lập lịch vào thời điểm ngày 20/8 lúc 11 giờ sáng.

# at 11 am august 20
at> uptime > /tmp/log-uptime.txt

Vd 2: thiết lập thời gian vào lúc 4 giờ chiều sau ngày hôm nay 3 ngày.

# at 4pm + 3 days
at> serice nginx restart

– Sau khi bạn thiết lập thời gian sẽ được chuyển vào giao diện console khác để chỉ định các danh sách chương trình lệnh thực thi.
– Để thoát khỏi console “at” bạn bấm nút CTRL+D, chương trình lệnh sẽ được thêm vào hàng đợi.
– Output của chương trình thực thi trong hàng đợi “at” sẽ được gửi mail đến bạn, mặc định là gửi mail local.

10. Tìm file có dung lượng lớn

Khi bạn thuê VPS/Cloud Server bạn sẽ bị giới hạn rất nhiều ở dung lượng ổ cứng được cung cấp. Điều này vô hình chung sẽ khiến hệ thống xảy ra vấn đề đó là hết dung lượng ổ cứng sử dụng sau 1 thời gian hoạt động. Đơn giản có thể là file log hệ thống, log dịch vụ hoặc file dữ liệu nặng dung lượng người dùng tải lên mà không kiểm soát được. Vậy mong muốn của chúng ta đó là làm sao để tìm ra được file nào có dung lượng lớn để kiểm tra và xoá bỏ nó.

Để làm được chuyện đó chúng ta sẽ sử dụng lệnh “find” với các option đơn giản như sau.

# find / -type f -size +10M

Chú thích:
+ “-type f” : chỉ định loại đối tượng tìm kiếm là file (không phải thư mục hay block device).
+ “-size [number] [M/G]” : chỉ định giới hạn dung lượng mà bạn mong muốn kiểm tra. Ở ví dụ trên là kiểm tra xem có file nào lớn hơn 10M trong hệ thống hay không.

11. Liệt kê tiến trình theo mức độ tài nguyên

Nếu bạn chưa biết thì lệnh “ps” trên Linux sẽ liệt kê thông tin về các tiến trình đang hoạt động trên hệ điều hành. Kèm với đó là các cột thông tin về mức sử dụng tài nguyên cơ bản như %cpu, %mem, rss, vsz,.. Điều này rất tốt cho việc kiểm tra hoạt động hoặc truy tìm vấn đề xử lý sự cố hệ thống.

– Sắp xếp các tiến trình có mức sử dụng %cpu cao nhất.

# ps aux --sort %cpu

– Sắp xếp các tiến trình có mức sử dụng %mem cao nhất.

# ps aux --sort %mem

– Sắp xếp các tiến trình có mức sử dụng bộ nhớ RAM (không swap) cao nhất.

# ps aux --sort rss

– Sắp xếp các tiến trình có mức sử dụng bộ nhớ RAM (có virtual ram) cao nhất.

# ps aux --sort vsz

Như vậy là các bạn đã biết qua top 11 các mẹo sử dụng lệnh Linux rồi. Hy vọng với những bạn mới tìm hiểu Linux thì những kiến thức trên sẽ có ích cho bạn.

Quách Chí Cường (Theo VINADATA.VN)

Previous articleTự học CCNA – Bài 9: Hướng dẫn cấu hình CDP (Cisco Discovery Protocol) trên Cisco
Next articleHướng dẫn cài đặt bộ chương trình HP MCP trên CentOS và Ubuntu/Debian
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !