Shell command lập trình viên nên biết

Shell command lập trình viên nên biết

Table of Content

Trong bài viết này mình sẽ giới thiệu về những Shell command lập trình viên nên biết. Những command rất đơn giản nhưng sẽ giúp ích nhiều cho những công việc hàng ngày. Mình chỉ giới thiệu và liệt kê những chức năng cơ bản của những command này, các bạn có thể tìm hiểu sâu hơn nếu muốn.

whoami

Who am I? – Tôi là ai trong em? Lệnh whoami này cơ bản là để biết bạn đang thực thi với người dùng nào.

$ whoami
brother

pwd

Đây là command để hiển thị đường dẫn tuyệt đối của thư mục hiện tại.

$ pwd
/Users/huychau/demo

ls

Lệnh ls liệt kê các tệp và thư mục trong đường dẫn hoạt động hiện tại. Nếu tên đường dẫn là một tệp, ls sẽ hiển thị thông tin trên tệp theo các tùy chọn được yêu cầu. Nếu tên đường dẫn là một thư mục, ls sẽ hiển thị thông tin về các tệp và thư mục con trong đó.

$ ls
Applications Documents    Library      Music        Pictures ...

cd

Lệnh cd giúp thay đổi thư mục hiện tại của bạn. Nói cách khác, nó chuyển bạn đến một vị trí mới trong hệ thống.

$ cd some-directory

Bạn có thể dùng .. để trở về thư mục cha, ông nội hoặc ông cố chi đó.

// Trở về thư mục cha
$ cd ..

// Trở về thư mục ông nội
$ cd ../..

Trở về home

$ cd ~

cp

Lệnh cp giúp bạn sao chép thư mục, tệp từ thư mục này đến thư mục khác. Ví dụ bạn muốn sao chép demo.txt đến /abc/files/:

$ cp demo.txt /abc/files/

mv

Lệnh mv cho phép bạn di chuyển các tệp và thư mục từ thư mục này sang thư mục khác. Nó cũng cho phép bạn đổi tên tệp. Ví dụ bạn muốn di chuyển thư mục ~/Document/JAV đến ~/Learning/NoImportant/NoAcess/:

$ mv ~/Document/JAV ~/Learning/NoImportant/NoAcess/

Hoặc thay đổi tên tệp jav.txt thành best-practices.txt:

$ mv jav.txt best-practices.txt

mkdir

mkdir command giúp tạo thư mục mới trống ở thư mục hiện tại.

Tạo thư mục mới, nếu tồn tại sẽ báo lỗi

$ mkdir some-directory
$ mkdir some-directory
mkdir: some-directory: File exists

Tạo thư mục mới nếu chưa tồn tại

$ mkdir -p some-directory

rmkdir

rmkdir command giúp xoá thư mục không có nội dung bên trong.

$ rmkdir some-directory

rm

Lệnh rm với mục đích chính là xoá file. Mặc định thì rm không thể xoá thư mục được, tuy nhiên bạn có thể thêm -rf để xoá thư mục.

$ rm somefile

$ rm -rf some-directory

Bạn có thể xoá tấtt cả file, thư mục trong thư mục hiện tại, tuy nhiên nên cẩn thận với command này.

$ rm -rf *

touch

touch command giúp tạo một file mới không có nội dung.

$ touch newfile.txt

cat

Lệnh cat có 3 chức năng cơ bản khi làm viết với một text file:

  • Hiển thị nội dung file
  • Kết hợp các bản sao
  • Tạo file mới
// Hiển thị nội dung file
$ cat file.txt

// Đọc nội dung file a.txt và copy vào file b.txt
$ cat a.txt > b.txt

chmod

chmod được sử dụng để thay đổi quyền đọc/ghi/thực thi của một tệp. Một số định nghĩa như:

  • 0: (000) No permission.
  • 1: (001) Execute permission.
  • 2: (010) Write permission.
  • 3: (011) Write and execute permissions.
  • 4: (100) Read permission.
  • 5: (101) Read and execute permissions.
  • 6: (110) Read and write permissions.
  • 7: (111) Read, write, and execute permissions.

Ví dụ, set tất cả các quyền cho file file.txt

$ chmod 755 file.txt
$ ls -l file.txt
-rwxr-xr-x  1 huychau  staff  0 Aug 24 20:31 file.txt

find

Lệnh find cho phép bạn nhanh chóng tra cứu một tệp hoặc thư mục. Nó hữu ích khi bạn đang thực hiện một dự án lớn với hàng trăm tệp và nhiều thư mục.

// Synxtax
$ find path -name filename

// Tìm tất cả file index.js trong thư mục hiện tại
$ find . -name index.js

// Tìm tất cả file .js trong thư mục hiện tại
$ find . -name "*.js"

clear

Lệnh clear giúp clear nội dung terminal hiện tại. Cơ bản nó sẽ xoá hết những câu lệnh cũ nhưng vẫn giữ session hiện tại.

exit

Lệnh exit giúp bạn thoát ra khỏi cửa sổ hiện tại.

Bonus

Một số tools, extensions mình hay dùng.

  • Tree: Liệt kê nội dung bên trong folder dưới dạng cây
  • Powerlevel10k: ZSH theme đẹp, phù hợp vớ những ai thích màu mè hoa lá cành.
  • ZSH auto suggestions: Gợi ý các lệnh khi bạn nhập dựa trên lịch sử và số lần hoàn thành.

Ngoài những command trên thì các bạn có thể áp dụng thêm Cách tạo và sử dụng alias mình đã giới thiệu trước đó để đạt hiệu quả tốt hơn.

Tham khảo