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.