Các lệnh Linux cung cung cấp tính linh hoạt khá cao. Tôi sẽ trình bày chi tiết một số cách để làm cho chúng thuận tiện hơn khi sử dụng bằng cách sử dụng một số thủ thuật thông minh.
Sử dụng tab để hoàn thành file-name
Bạn có thể tránh việc nhập đầy đủ tên file bằng cách nhập phần đầu của tên file và nhấn phím tab. Nếu chuỗi chỉ xác định duy nhất một file, thực hiện điều này sẽ hoàn thành tên file. Nếu vẫn không được, bạn có thể nhập thêm một ký tự khác có trong tên và nhấn lại tab. Ngoài ra, bạn cũng có thể nhận được danh sách tất cả các file bắt đầu bằng một chuỗi cụ thể bằng cách nhập một vài chữ và sau đó nhấn phím tab 2 lần. Trong ví dụ này, chúng tôi thực hiện cả hai trường hợp:
$ ls di<tab><tab>
diff-commands dig.1 directory
dig.2 dimensions disk-usage-commands
$ cd dir<tab>
$pwd
directory
Tái sử dụng các lệnh và thay đổi chúng
Việc phát hành lại các lệnh vừa gõ rất dễ dàng trong bash. Để chạy lại lệnh trước đó, tất cả những gì bạn phải làm là nhập !! trên command line. Bạn cũng có thể phát hành lại một lệnh với các thay đổi. Nếu bạn chạy câu lệnh đầu tiên được hiển thị bên dưới bên dưới thì cũng thấy rằng sshd không chạy, bạn có thể đưa ra lệnh thứ hai để bắt đầu nó. Nó chỉ đơn giản là thay thế “stasus” bằng “start”.
$ sudo systemctl status sshd
!!:s/status/start/
Sử dụng lại các đối số lệnh
Bạn cũng có thể tái sử dụng các đối số được cung cấp cho lệnh trước đó thay vì phải nhập chúng lại, bằng cách sử dụng chuỗi !* như được hiển thị trong ví dụ sau:
$ mkdir dir1 dir2 dir3
$ chmod 770 !*
chmod 770 dir1 dir2 dir3
Lưu ý rằng lệnh được hiển thị đầy đủ sau khi bạn nhập lệnh bằng “!*”.
Hãy nhớ rằng “tất cả đối số” thực sự có nghĩa là “tất cả đối số”. Nếu như sau khi nhập các lệnh hiển thị ở trên, sau đó bạn muốn liệt kê các thư mục vừa tạo bằng thủ thuật !*, bạn sẽ gặp phải một vấn đề nho nhỏ.
$ ls -ld !*
ls -ld 770 dir1 dir2 dir3
ls: cannot access '770' : No such file or directory <===oops!
drwxrwx---. 2 shs shs 4096 Jun 6 2018 dir1
drwxrwx---. 2 shs shs 4096 Jun 6 2018 dir2
drwxrwx---. 2 shs shs 4096 May 11 09:20 dir3
Xem các lệnh đã nhập vào gần đây
Lệnh history giúp bạn dễ dàng xem lại các lệnh đã nhập trước đó, nhưng thường được hiển thị 1000 (cụ thể là tất cả) lệnh có trong bộ đệm lịch sử của bạn. Nếu bạn chỉ muốn xem các lệnh đã nhập gần đây, cách dễ dàng nhất đó là cung cấp số lượng lệnh cụ thể mà bạn muốn xem để làm đối số cho lệnh history. Danh sách sau đây hiển thị năm lệnh gần nhất đã được nhập.
$ history 5
1162 11/05/21 13:10:54 shopt | wc -l
1163 11/05/21 13:19:42 sudo systemctl status
1164 11/05/21 13:20:01 sudo systemctl status sshd
1165 11/05/21 13:23:37 man history
1166 11/05/21 13:23:50 history 5
Bạn cũng có thể sử dụng một lệnh khác như là “history | tail -5”, nhưng lệnh vừa được hiển thị ở trên thì dễ dàng hơn và không yêu cầu gửi 1000 dòng của output đến lệnh tail.
Tìm kiếm thông qua lịch sử cho các lệnh cụ thể và chạy lại chúng
Để xem lại các lệnh được được sử dụng gần đây nhất( lệnh đầu tiên gần nhất) để mà có thể chạy lại một số lệnh, hãy nhập ^r (giữ phím ctrl và nhấn “r”). Sau đó nhập một phần của lệnh.Nếu như chưa phải lệnh mong muốn, tiếp tục nhấn ^r cho đến khi thấy được lệnh mà bạn muốn sử dụng lại và sau đó return nó.
(reverse-i-search)`opt' : shopt | wc - l
$ shopt | wc - l
53
Kết quả hiển thị cho chúng ta biết rằng lệnh shopt có 53 cài đặt.
Tạo ra file backups siêu dễ dàng
Một cách rất thuận tiện để back up một file là sử dụng một lệnh như sau và thêm phần đuôi “.backup” vào file backup:
$ cp mylife{,.backup}
Kỹ thuật tương tự cũng hoạt động đối với lệnh mv khi bạn muốn đổi tên file.
$ mv mylife{,.backup}
Nếu bạn muốn sao lưu một loạt các file, bạn có thể tiết kiệm một chút thời gian và rắc rối bằng cách sử dụng một tập lệnh như sau:
#!/bin/bash
for file in $*
do
cp $file{,.backup}
ls -l $file.backup
done
Tập lệnh sau đây sẽ lấy danh sách các file bạn cung cấp làm đối số và copy từng file vào form *.backup của nó
$ backup thisfile thatfile otherfile
-rw-r--r--. 1 shs shs 1234 May 11 13:37 thisfile.backup
-rw-r--r--. 1 shs shs 2012 May 11 13:37 thatfile.backup
-rw-r--r--. 1 shs shs 876 May 11 13:37 otherfile.backup
Tùy thuộc vào tên file của các file bạn đang sao lưu, bạn cũng có thể sử dụng wild card( kí tự đại diện). Chẳng hạn như:
$ backup project*
-rwxrwxr-x. 1 shs shs 16800 Jan 5 18:10 project.log
-rwxrwxr-x. 1 shs shs 16840 Jan 5 18:44 project.plan
-rw-rw-r--. 1 shs shs 324 Jan 5 17:51 project.staff
Trên đây là một số câu lệnh cơ bản, để giúp chúng ta có thể sử dụng dòng lệnh Linux một cách nhanh chóng và hiệu quả.
Sử dụng tab để hoàn thành file-name
Bạn có thể tránh việc nhập đầy đủ tên file bằng cách nhập phần đầu của tên file và nhấn phím tab. Nếu chuỗi chỉ xác định duy nhất một file, thực hiện điều này sẽ hoàn thành tên file. Nếu vẫn không được, bạn có thể nhập thêm một ký tự khác có trong tên và nhấn lại tab. Ngoài ra, bạn cũng có thể nhận được danh sách tất cả các file bắt đầu bằng một chuỗi cụ thể bằng cách nhập một vài chữ và sau đó nhấn phím tab 2 lần. Trong ví dụ này, chúng tôi thực hiện cả hai trường hợp:
$ ls di<tab><tab>
diff-commands dig.1 directory
dig.2 dimensions disk-usage-commands
$ cd dir<tab>
$pwd
directory
Tái sử dụng các lệnh và thay đổi chúng
Việc phát hành lại các lệnh vừa gõ rất dễ dàng trong bash. Để chạy lại lệnh trước đó, tất cả những gì bạn phải làm là nhập !! trên command line. Bạn cũng có thể phát hành lại một lệnh với các thay đổi. Nếu bạn chạy câu lệnh đầu tiên được hiển thị bên dưới bên dưới thì cũng thấy rằng sshd không chạy, bạn có thể đưa ra lệnh thứ hai để bắt đầu nó. Nó chỉ đơn giản là thay thế “stasus” bằng “start”.
$ sudo systemctl status sshd
!!:s/status/start/
Sử dụng lại các đối số lệnh
Bạn cũng có thể tái sử dụng các đối số được cung cấp cho lệnh trước đó thay vì phải nhập chúng lại, bằng cách sử dụng chuỗi !* như được hiển thị trong ví dụ sau:
$ mkdir dir1 dir2 dir3
$ chmod 770 !*
chmod 770 dir1 dir2 dir3
Lưu ý rằng lệnh được hiển thị đầy đủ sau khi bạn nhập lệnh bằng “!*”.
Hãy nhớ rằng “tất cả đối số” thực sự có nghĩa là “tất cả đối số”. Nếu như sau khi nhập các lệnh hiển thị ở trên, sau đó bạn muốn liệt kê các thư mục vừa tạo bằng thủ thuật !*, bạn sẽ gặp phải một vấn đề nho nhỏ.
$ ls -ld !*
ls -ld 770 dir1 dir2 dir3
ls: cannot access '770' : No such file or directory <===oops!
drwxrwx---. 2 shs shs 4096 Jun 6 2018 dir1
drwxrwx---. 2 shs shs 4096 Jun 6 2018 dir2
drwxrwx---. 2 shs shs 4096 May 11 09:20 dir3
Xem các lệnh đã nhập vào gần đây
Lệnh history giúp bạn dễ dàng xem lại các lệnh đã nhập trước đó, nhưng thường được hiển thị 1000 (cụ thể là tất cả) lệnh có trong bộ đệm lịch sử của bạn. Nếu bạn chỉ muốn xem các lệnh đã nhập gần đây, cách dễ dàng nhất đó là cung cấp số lượng lệnh cụ thể mà bạn muốn xem để làm đối số cho lệnh history. Danh sách sau đây hiển thị năm lệnh gần nhất đã được nhập.
$ history 5
1162 11/05/21 13:10:54 shopt | wc -l
1163 11/05/21 13:19:42 sudo systemctl status
1164 11/05/21 13:20:01 sudo systemctl status sshd
1165 11/05/21 13:23:37 man history
1166 11/05/21 13:23:50 history 5
Bạn cũng có thể sử dụng một lệnh khác như là “history | tail -5”, nhưng lệnh vừa được hiển thị ở trên thì dễ dàng hơn và không yêu cầu gửi 1000 dòng của output đến lệnh tail.
Tìm kiếm thông qua lịch sử cho các lệnh cụ thể và chạy lại chúng
Để xem lại các lệnh được được sử dụng gần đây nhất( lệnh đầu tiên gần nhất) để mà có thể chạy lại một số lệnh, hãy nhập ^r (giữ phím ctrl và nhấn “r”). Sau đó nhập một phần của lệnh.Nếu như chưa phải lệnh mong muốn, tiếp tục nhấn ^r cho đến khi thấy được lệnh mà bạn muốn sử dụng lại và sau đó return nó.
(reverse-i-search)`opt' : shopt | wc - l
$ shopt | wc - l
53
Kết quả hiển thị cho chúng ta biết rằng lệnh shopt có 53 cài đặt.
Tạo ra file backups siêu dễ dàng
Một cách rất thuận tiện để back up một file là sử dụng một lệnh như sau và thêm phần đuôi “.backup” vào file backup:
$ cp mylife{,.backup}
Kỹ thuật tương tự cũng hoạt động đối với lệnh mv khi bạn muốn đổi tên file.
$ mv mylife{,.backup}
Nếu bạn muốn sao lưu một loạt các file, bạn có thể tiết kiệm một chút thời gian và rắc rối bằng cách sử dụng một tập lệnh như sau:
#!/bin/bash
for file in $*
do
cp $file{,.backup}
ls -l $file.backup
done
Tập lệnh sau đây sẽ lấy danh sách các file bạn cung cấp làm đối số và copy từng file vào form *.backup của nó
$ backup thisfile thatfile otherfile
-rw-r--r--. 1 shs shs 1234 May 11 13:37 thisfile.backup
-rw-r--r--. 1 shs shs 2012 May 11 13:37 thatfile.backup
-rw-r--r--. 1 shs shs 876 May 11 13:37 otherfile.backup
Tùy thuộc vào tên file của các file bạn đang sao lưu, bạn cũng có thể sử dụng wild card( kí tự đại diện). Chẳng hạn như:
$ backup project*
-rwxrwxr-x. 1 shs shs 16800 Jan 5 18:10 project.log
-rwxrwxr-x. 1 shs shs 16840 Jan 5 18:44 project.plan
-rw-rw-r--. 1 shs shs 324 Jan 5 17:51 project.staff
Trên đây là một số câu lệnh cơ bản, để giúp chúng ta có thể sử dụng dòng lệnh Linux một cách nhanh chóng và hiệu quả.