Chúng ta tiếp tục thực hiện một nhiệm vụ theo cách truyền thống cho đến khi chúng ta nhận ra rằng nó có thể được thực hiện một cách tốt hơn bằng cách khác. Trong loạt bài viết Linux Tips and Trick Series tiếp theo, tôi sẽ chia sẻ bốn mẹo dưới đây bao gồm các lệnh mkdir, kill và tar sẽ giúp bạn trong rất nhiều trường hợp. Bắt đầu thôi!

1. Bạn đang cần tạo một cây thư mục dài/ phức tạp giống như dưới đây. Cách hiệu quả nhất để làm điều đó là gì?
Cấu trúc cây thư mục để đạt được như được gợi ý dưới đây.
$ cd /home/$USER/Desktop $ mkdir tecmint $ mkdir tecmint/etc $ mkdir tecmint/lib $ mkdir tecmint/usr $ mkdir tecmint/bin $ mkdir tecmint/tmp $ mkdir tecmint/opt $ mkdir tecmint/var $ mkdir tecmint/etc/x1 $ mkdir tecmint/usr/x2 $ mkdir tecmint/usr/x3 $ mkdir tecmint/tmp/Y1 $ mkdir tecmint/tmp/Y2 $ mkdir tecmint/tmp/Y3 $ mkdir tecmint/tmp/Y3/z
Kịch bản trên có thể dễ dàng đạt được bằng cách chạy lệnh 1-liner dưới đây.
$ mkdir -p /home/$USER/Desktop/tecmint/{etc/x1,lib,usr/{x2,x3},bin,tmp/{Y1,Y2,Y3/z},opt,var}
Để kiểm tra, bạn có thể sử dụng lệnh tree. Nếu chưa cài đặt, bạn có thể dùng apt hoặc yum để cài đặt gói ‘tree‘.
$ tree tecmint

Chúng ta có thể tạo cấu trúc cây thư mục phức tạp bất kỳ bằng cách trên. Lưu ý rằng đó chỉ là một lệnh bình thường nhưng nó sử dụng {}
để tạo ra cấu trúc thư mục. Điều này có thể rất hữu ích khi được sử dụng từ bên trong một tập lệnh, khi cần thiết và nói chung.
2. Tạo một tập tin (ví dụ test) trên Desktop (/home/$USER/Desktop) và điền nội dung bên dưới vào tập tin đó.
ABC DEF GHI JKL MNO PQR STU VWX Y Z
Một người dùng thông thường sẽ làm gì trong tình huống này?
a. Anh ta sẽ tạo ra tập tin trước, ưu tiên sử dụng lệnh touch, như sau:
$ touch /home/$USER/Desktop/test
b. Anh ta sẽ sử dụng trình soạn thảo văn bản để mở tập tin, có thể là nano, vim hoặc bất kỳ trình soạn thảo nào khác.
$ nano /home/$USER/Desktop/test
c. Anh ta sẽ đặt đoạn văn bản trên vào tập tin này, lưu và thoát.
Do đó, bất kể thời gian mà anh ta cần, anh ta ít nhất cần 3 bước để thực hiện kịch bản trên.
Một người dùng Linux giàu kinh nghiệm thông minh sẽ làm gì? Anh ta chỉ cần gõ đoạn văn bản dưới đây trong terminal một lần và đã xong. Anh ta không cần thực hiện từng hành động một cách riêng lẻ.
cat << EOF > /home/$USER/Desktop/test ABC DEF GHI JKL MNO PQR STU VWX Y Z EOF
Bạn có thể sử dụng lệnh cat để kiểm tra xem tệp tin và nội dung của nó đã được tạo thành công hay chưa.
$ cat /home/avi/Desktop/test
3. Chúng ta thường xuyên làm việc với các file nén (đặc biệt là các file TAR) trên Linux. Trong nhiều trường hợp, chúng ta phải sử dụng file TAR ở một vị trí khác với thư mục Downloads. Chúng ta làm gì trong tình huống này?
Thường thì chúng ta làm hai việc trong trường hợp này.
a. Sao chép/Di chuyển file tar và giải nén nó tại đích, như sau:
$ cp firefox-37.0.2.tar.bz2 /opt/ or $ mv firefox-37.0.2.tar.bz2 /opt/
b. cd đến thư mục /opt/.
$ cd /opt/
c. Giải nén tarball.
# tar -jxvf firefox-37.0.2.tar.bz2
Chúng ta có thể làm ngược lại.
Chúng ta sẽ giải nén tarball ngay tại chỗ và sao chép/Di chuyển các file giải nén đến vị trí đích cần thiết như sau:
$ tar -jxvf firefox-37.0.2.tar.bz2 $ cp -R firefox/ /opt/ or $ mv firefox/ /opt/
Trong cả hai trường hợp, công việc cần từ hai đến nhiều bước để hoàn thành. Người dùng chuyên nghiệp có thể hoàn thành công việc này chỉ trong một bước như sau:
$ tar -jxvf firefox-37.0.2.tar.bz2 -C /opt/
Tùy chọn -C làm cho tar giải nén file vào thư mục đã chỉ định (ở đây là /opt/).
Điều này không chỉ liên quan đến tùy chọn (-C) mà còn là về thói quen. Hãy tạo thói quen sử dụng tùy chọn -C với tar. Điều đó sẽ giúp cuộc sống của bạn dễ dàng hơn. Từ bây giờ, hãy để file TAR trong thư mục Downloads và giải nén nó ở bất kỳ đâu bạn muốn.
4. Làm thế nào chúng ta tắt một tiến trình theo cách truyền thống?
Theo cách tổng quát nhất, chúng ta trước tiên liệt kê tất cả các tiến trình bằng lệnh ps -A
và đưa qua grep để tìm một tiến trình/dịch vụ (chẳng hạn apache2) như sau:
$ ps -A | grep -i apache2
Output Mẫu
1006 ? 00:00:00 apache2 2702 ? 00:00:00 apache2 2703 ? 00:00:00 apache2 2704 ? 00:00:00 apache2 2705 ? 00:00:00 apache2 2706 ? 00:00:00 apache2 2707 ? 00:00:00 apache2
Đầu ra trên cho thấy tất cả các tiến trình apache2 đang chạy với PID tương ứng, bạn có thể sử dụng PID này để tắt apache2 bằng lệnh sau.
# kill 1006 2702 2703 2704 2705 2706 2707
và sau đó kiểm tra xem tiến trình/dịch vụ có tên ‘apache2‘ đang chạy hay không, như sau:
$ ps -A | grep -i apache2
Tuy nhiên, chúng ta có thể thực hiện nó một cách dễ hiểu hơn bằng cách sử dụng các tiện ích như pgrep và pkill. Bạn có thể tìm thông tin liên quan về một tiến trình chỉ qua việc sử dụng pgrep. Ví dụ, nếu bạn muốn tìm thông tin tiến trình cho apache2, bạn có thể đơn giản thực hiện:
$ pgrep apache2
Output Mẫu
15396 15400 15401 15402 15403 15404 15405
Bạn cũng có thể liệt kê tên tiến trình đối với pid bằng cách chạy.
$ pgrep -l apache2
Output Mẫu
15396 apache2 15400 apache2 15401 apache2 15402 apache2 15403 apache2 15404 apache2 15405 apache2
Để tắt một tiến trình bằng lệnh pkill rất đơn giản. Bạn chỉ cần gõ tên của tài nguyên cần tắt và bạn đã xong. Tôi đã viết một bài viết về pkill mà bạn có thể tham khảo tại đây: https://www.tecmint.com/how-to-kill-a-process-in-linux/.
Để tắt một tiến trình (chẳng hạn apache2) bằng lệnh pkill, bạn chỉ cần thực hiện:
# pkill apache2
Bạn có thể kiểm tra xem apache2 đã bị tắt chưa bằng cách chạy lệnh dưới đây.
$ pgrep -l apache2
Nếu nó trả về dấu nhắc lệnh và không in gì tức là không có tiến trình nào đang chạy với tên apache2.
Đó là tất cả những gì tôi muốn chia sẻ. Tất cả những điểm đã được thảo luận ở trên chưa đủ nhưng chắc chắn sẽ hữu ích. Chúng tôi không chỉ muốn cung cấp các hướng dẫn để giúp bạn tìm hiểu điều gì đó mới mẻ mỗi lần mà còn muốn chỉ ra 'Cách tăng năng suất trong cùng một khung'. Hãy cho chúng tôi biết về ý kiến phản hồi quý giá của bạn trong phần bình luận bên dưới. Tiếp tục kết nối. Tiếp tục phản hồi.