Tớ lập topic này với mục đích: Thi thoảng mọi người giới thiệu những lệnh hay, những tiện ích thú vị khi làm việc trên môi trường Linux.

Tất nhiên khi giới thiệu, có thể chỉ cần nói tên lệnh là đủ, nhưng mọi người nên giải thích và cho ví dụ càng nhiều càng tốt. Còn các tùy chọn đi kèm khác có thể đọc man

1. w
Lệnh này hiển thị những ai đang logged on và họ đang làm gì. Phần tiêu đề hiển thị theo thứ tự: thời gian hiện tại, hệ thống đã chạy bao lâu, bao nhiêu users đang logged on, tải trung bình của hệ thống 1, 5, 15 phút trước

Các entries hiển thị cho mỗi user theo cấu trúc: login name, tty name, remote host, login time, idle time, JCPU, PCPU, command line của process hiện tại

2. last
Hiển thị danh sách những người logged in cuối cùng. Lệnh này tìm kiếm trong file /var/log/wtmp và hiển thị tất cả các user đã logged in từ lúc file này được tạo. Mỗi lần hệ thống reboot, cột user sẽ hiển thị với tên “reboot”. Ví dụ:

Tại dòng cuối cùng các bạn sẽ nhìn thấy file wtmp được tạo từ lúc nào.

3. free
Lệnh này hiển thị tổng lượng bộ nhớ còn trống, đang dùng, cũng như bộ nhớ swap trên hệ thống của bạn.
Cú pháp:

với:
-b: tính theo bytes
-k: tính theo kilobytes
-m: tính theo megabytes

Thường thì bạn sẽ dùng free -m để xem lượng RAM và swap đang được sử dụng:

4. df
Cú pháp:

Hiển thị dung lượng đĩa cứng còn trống của một hệ thống file. Nếu tên file không được đưa vào thì toàn bộ không gian trống trên các hệ thống file đã mounted được hiển thị. Mặc định lệnh này sẽ hiển thị với blocks 1K.

Ví dụ để xem lượng đĩa cứng còn trống trên toàn bộ hệ thống của bạn với đơn vị là Gygabytes bạn có thể dùng lệnh:

Nhìn vào cột Mounted on ở kết quả trên bạn thấy có một “tên” /dev/shm khá lạ. Bạn có thể đọc thêm về nó tại http://www.cyberciti.biz/tips/what-is-devshm-and-its-practical-usage.html.

4. du
Lệnh này dùng để thống kê mức sử dụng đĩa. Mặc định nó sẽ hiển thị tại thư mục hiện hành và chỉ hiển thị số block trên file system. vd:

Nếu bạn muốn output dễ đọc hơn thì có thể truyền thêm -sh cho nó. vd:

Lệnh này linh hoạt hơn df ở chỗ nó có thể thống kê mức sử dụng đĩa của bất kỳ thư mục nào. Chi tiết các bạn có thể xem trang man.

6. ps
Hiển thị thông tin về các tiến trình hiện thời. Thông tin hiển thị được chia thành nhiều cột, nhưng thường thì bạn chú ý nhiều nhất đến cột có tên là PID (Process ID). Giá trị của tiến trình trong cột PID này sẽ được sử dụng trong lệnh kill. Lệnh ps thường được dùng trong vài trường hợp sau:
+ Có một process đang bị treo và bạn muốn stop nó –> bạn chạy ps lấy PID để kill
+ Bạn khởi động 1 process nhưng nó làm máy bạn chạy ngày càng chậm đi –> chạy ps xem nó đang chiếm bao nhiêu % CPU, sau đó có thể lấy PID để kill
+ Xem các processes thuộc về một user nào đó

Một vài ví dụ:

Hiển thị tất cả các tiến trình theo cú pháp BSD:

Hiển thị các tiến trình user “quanta” đang chạy:

7. kill
Lệnh này sẽ làm chấm dứt một process.

Các signal thông dụng:

SIGHUP (-1): Đây là một tín hiệu treo, nó chỉ thị cho chương trình re-load file cấu hình hoặc re-open giao diện, chứ không chấm dứt process
SIGTERM (-15): đây là một tín hiệu chấm dứt “tao nhã”. Nó chỉ thị cho chương trình dừng những gì đang chạy lại, hỏi xem có processes (hoặc users) nào đang kiểm soát nó không, sau đó mới thoát.
SIGKILL (-9): tín hiệu bắt buộc chấm dứt luôn một process.

Lệnh killall: được dùng khi bạn muốn kill tất cả các process với tên chắc chắn. Lúc này bạn không cần dùng ps để tìm PID. Ví dụ: # killall httpd

Với output này:

Giả sử muốn “kill” pidgin bạn có thể gõ:

8. grep PATTERN [FILE]…

Tìm kiếm PATTERN trong FILE.

Trong man của grep có một tùy chọn khá hay, đó là -v (–invert-match). Tùy chọn này có ý nghĩa là bạn sẽ lọc ra những dòng text không match với PATTERN. Ví dụ bạn có một file cấu hình của ssh (/etc/ssh/sshd_config). Bạn muốn lọc ra tất cả những dòng mang giá trị cấu hình “thật sự”, loại bỏ đi những dòng comment (bắt đầu bằng dấu #), bạn có thể sử dụng tùy chọn -v của grep:

Để viết được lệnh trên bạn cần một chút kiến thức về regex (Regular Expression). Tôi có thể diễn giải nó như sau: “Lọc tất cả những dòng trong file sshd_config không bắt đầu bằng dấu #”. Trong regex, ký tự ^được hiểu là bắt đầu của một dòng.

Trong output của lệnh trên do bạn chỉ bỏ đi những dòng comment nên vẫn còn xuất hiện những dòng trắng (blank lines). Để có thể bỏ đi những dòng này và làm cho output đẹp hơn bạn có thể dùng lệnh sed. Chi tiết về lệnh này chúng ta có thể tìm hiểu vào một dịp khác. Ở đây tôi chỉ muốn giới thiệu một chức năng cơ bản của sed.
Để xoá những dòng blank từ output trên tôi chạy:

Diễn giải: $ được hiểu là kết thúc của một dòng. Như vậy lệnh trên sẽ tìm tất cả những dòng mà giữa “bắt đầu” (^) và kết thúc ($) không có ký tự nào (blank line), sau đó xoá nó đi (d).

9. Dấu Chuyển data stream giữa các lệnh:

Với dấu | output của lệnh trước sẽ trở thành input stream data của lệnh sau.

còn đây là output của ls /:

10. man
Hiển thị manual page cho các lệnh, file config,… Có thể nói đọc man là bước đầu tiên khi muốn tìm hiểu một lệnh hoặc config một file nào đó.

Xin cho đóng góp:
11. history
.::history – GNU History Library::.

Liệt kê các dòng lệnh hay những gì đã được gõ trên Terminal theo số thứ tự. Ta có thể gọi lại những lệnh ấy nhanh chóng bằng cách gõ !n với n là số thứ tự lệnh đã đã gõ và liệt kê bằng lệnh history.
Xin gõ man history để biết thêm chi tiết.

12. Dấu &
.:: Tiến trình hậu cảnh ::.
Khi một trương trình chạy với thởi gian lâu, ta có thể cho chúng chạy nền [chế độ hậu cảnh] ví dụ như tìm kiếm chẳng hạn – điều này giúp ta tiếp tục thực hiện việc khác. Để đưa tiến trình chạy ở hậu cảnh ta thêm dấu & vào sau lệnh thực hiện chương trình.

Như trong ví dụ dưới đây thì [1] là thứ tự tiến trình chạy ở hậu cảnh, 13766 là mã số tiến trình [PID].

Như trong ví dụ thì dấu nhắc đã được trả lại cho ta làm việc khác.

3. Lệnh jobs
Giúp xem các tiến trình chạy trong hậu cảnh.

 

Leave a Reply

avatar
  Subscribe  
Notify of