Các type command linux

Lệnh

ls Documents/Books
1 dùng liệt kê danh sách các tập tin và thư mục là lệnh cơ bản trong Linux shell [Linux shell command]. Lệnh
ls Documents/Books
1 có nhiều đối số và tính năng như: sắp xếp thư mục và tập tin theo Ngày, Kích thước, có thể kiểm tra các tệp và thư mục ẩn, quyền, thông tin inode…

Cú pháp

ls [tùy_chọn] [file|dir]

Tùy chọn chính của lệnh

ls Documents/Books
1:

tùy_chọnMô tả
ls Documents/Books
4liệt kê tất cả các tệp bao gồm cả tệp ẩn bắt đầu bằng ‘.’
ls Documents/Books
5danh sách màu [=always/never/auto]
ls Documents/Books
6danh sách thư mục – với ‘ */’
ls Documents/Books
7liệt kê số chỉ mục inode của tập tin
ls Documents/Books
8danh sách với định dạng dài – hiển thị quyền
ls Documents/Books
9liệt kê định dạng dài bao gồm các tập tin ẩn
ls /home/user/Documents/Books
0danh sách định dạng dài với kích thước tệp có thể đọc được
ls /home/user/Documents/Books
1danh sách với định dạng dài với kích thước tập tin
ls /home/user/Documents/Books
2danh sách theo thứ tự ngược lại
ls /home/user/Documents/Books
3danh sách cây thư mục đệ quy
ls /home/user/Documents/Books
4danh sách với kích thước tập tin
ls /home/user/Documents/Books
5sắp xếp theo kích thước tập tin
ls /home/user/Documents/Books
6sắp xếp theo
ls /home/user/Documents/Books
7
ls /home/user/Documents/Books
8sắp xếp theo phần mở rộng của tập tin

Ví dụ:

Danh sách tập tin và thư mục của thư mục

ls /home/user/Documents/Books
9 với đường dẫn tương đối:

ls Documents/Books

Danh sách tập tin và thư mục của thư mục

ls /
0 với đường dẫn tuyệt đối.

ls /home/user/Documents/Books

Danh sách tập tin và thư mục của thư mục gốc:

ls /

Danh sách tập tin và thư mục của thư mục cha:

ls ..

Danh sách tập tin và thư mục của

ls /
1:

ls ~

Danh sách với định dạng dài:

ls -l

Hiển thị các file ẩn:

ls -a

Danh sách với định dạng dài và file ẩn:

ls -la

Chỉ liệt kê các tệp

ls /
2

ls *.txt

Chỉ liệt kê các thư mục:

ls Documents/Books
0

Nếu bạn là người dùng Linux hay đang bắt đầu tìm hiểu về Linux thì sẽ không còn xa lạ với từ terminal, trong các hướng dẫn thường có các câu kiểu như "mở terminal lên và chạy lệnh" hay "mở terminal để compile chương trình"... Cái tên terminal được bắt nguồn từ một loại máy tính trong những thập niên 1960, 1970. Vì thế, các chương trình terminal trong Linux thường được gọi là terminal emulator [giả lập terminal]. Windows cũng có một dạng terminal gọi là "command prompt" hay "cmd" có nguồn gốc từ HĐH MS-DOS trong những năm 1980.

Các distro Linux thường có 1 ứng dụng terminal mặc định và có thể mở nhanh bằng tổ hợp phím

head index.html
tail -20 index.html
8 +
head index.html
tail -20 index.html
9 +
mv index.html new_index.html
0. Khi đã quen với terminal, command bạn có thể cài các ứng dụng terminal với các chức năng nâng cao như
mv index.html new_index.html
1,
mv index.html new_index.html
2,
mv index.html new_index.html
3...

Tại sao lại phải sử dụng command?

Các máy tính Mac, Linux và Windows hiện nay chủ yếu được điều khiển qua các ứng dụng GUI đa năng, thân thiện với người dùng, với menu, thanh cuộn scrollbar... Nhưng tất cả các công việc cơ bản đều có thể thực hiện được bằng cách gõ các câu lệnh vào terminal hay command prompt.

Sử dụng giao diện, việc mở 1 thư mục nó cũng giống như sử dụng

mv index.html new_index.html
4 [change directory]. Xem nội dung của 1 thư mục giống như
mv index.html new_index.html
5 [list]. Và có hàng trăm những cái khác cho việc di chuyển file, sửa file, mở ứng dụng, chỉnh sửa image, back up và restore...

Vậy tại sao mọi người cứ phải rắc rối với các commands này khi mà bạn có thể dùng chuột?? Lý do chính là chúng rất có ích trong việc điều khiển các máy tính từ xa mà không có giao diện GUI, chẳng hạn Web server, đặc biệt là những Linux server đã lược bỏ đi những ứng dụng GUI không cần thiết. Trong một số trường hợp, các Linux server này có thể được điều khiển qua giao diện web như cPanel hoặc Plesk, cho phép bạn tạo database, địa chỉ email nhưng thỉnh thoảng nó là chưa đủ.

Và nếu là 1 web developer hay quản trị hệ thống, bạn chắc sẽ có một tài sản lớn một khi thành thạo các câu lệnh này, dành cho việc cứu hộ website, cấu hình server và cho cái CV của bạn. Nó cũng có thể tiết kiệm tiền cho bạn. Nhiều dịch vụ hosting cung cấp nhiều dạng server fully-managed [server do nhà cung cấp hosting tự quản lý và maintain thay cho khách hàng], nhưng nó có giá cao hơn. Hoặc họ sẽ thu tiền theo giờ cho việc hỗ trợ kỹ thuật.

Để di chuyển sang thư mục khác, bạn dùng lệnh

mv index.html new_index.html
4, [Change Directory] ví dụ
cp index.html copy_index.html
rm old_index.html
0, trong trường hợp này nó sẽ chuyển đến thư mục
cp index.html copy_index.html
rm old_index.html
1. Và lệnh
mv index.html new_index.html
5 [List] sẽ liệt kê danh sách file, folder trong thư mục hiện tại.

Trong ảnh chụp màn hình phía trên, terminal đã được trang trí bằng các màu sách khác nhau. Những chữ màu xanh da trời màu tối là các thư mục, còn các màu khác để chỉ file.

Khi sử dụng

mv index.html new_index.html
4 bạn có thể truyền tham số là đường dẫn tuyệt đối [đường dẫn bắt đầu với dấu
cp index.html copy_index.html
rm old_index.html
1, như
cp index.html copy_index.html
rm old_index.html
5 hoặc đường dẫn tương đối [không có
cp index.html copy_index.html
rm old_index.html
1 ở đầu]. Bạn có thể chuyển sang thư mục cha với hai dấu
cp index.html copy_index.html
rm old_index.html
7:
cp index.html copy_index.html
rm old_index.html
8. Thực hành theo thứ tự dưới đây và nhấn
cp index.html copy_index.html
rm old_index.html
9 sau mỗi command. Bạn có thể đoán được kết quả của câu lệnh
mv index.html new_index.html
8 cuối cùng không?

cd /var
ls
cd www
ls
cd ..
pwd

Xem nội dung file

Lệnh

find /var/www
1 sẽ in ra màn hình terminal nội dung của toàn bộ file. Ví dụ, bạn có 1 file tên là
find /var/www
2:

cat index.html

Nếu file

find /var/www
2 có nhiều dòng, nó sẽ hiển thị nội dung rất nhanh, khó nhìn. Bạn có thể làm chậm lại bằng cách sử dụng lệnh
find /var/www
4, nó sẽ hiển thị theo từng trang một.

more index.html

Sau lệnh trên, nó sẽ hiển thị nội dung vừa 1 trang của màn hình terminal, bạn có thể nhần phím cách để hiển thị trang tiếp theo, và phím

cp index.html copy_index.html
rm old_index.html
9 để hiển thị dòng kế tiếp và phím
find /var/www
6 để thoát.'

Bạn cũng có thể chỉ hiển thị 1 vài dòng đầu tiên hoặc cuối cùng của 1 file với các lệnh

find /var/www
7 và
find /var/www
8. Nó sẽ hiển thị 10 dòng theo mặc định, nhưng có thể thay đổi nó:

head index.html
tail -20 index.html

Copy, xoá, di chuyển, đổi tên file

Để đổi tên file bạn sẽ dùng lệnh

find /var/www
9 [move]:

mv index.html new_index.html

Tương tự,

find /var/www | more
0 [copy] là lệnh copy và
find /var/www | more
1 [remove] là lệnh xóa file.

cp index.html copy_index.html
rm old_index.html

Tìm kiếm files

Lệnh

find /var/www | more
2 sẽ tìm kiếm toàn bộ file theo tên, kích thước và thời gian chỉnh sửa file. Nếu bạn truyền vào tên thư mục, nó sẽ liệt kê toàn bộ mọi thứ bên trong thư mục:

find /var/www

Bạn có thể nhìn thấy nó hiện ra rất rất nhiều tên file hiển thị rất nhanh ra màn hình. Nếu có nhiều file trong thư mục, nó có thể tiếp tục chạy trong vài phút. Bạn có thể dừng nó bằng cách nhấn

head index.html
tail -20 index.html
8 +
find /var/www | more
4. Đó là cách để dừng 1 lệnh Linux. Trong trường hợp này lệnh
find /var/www
4 có thể giúp ích được nhiều:

find /var/www | more

Ký hiệu

find /var/www | more
6 [pipe] ở đây được dùng với vai trò đặc biệt đó là nó sẽ nhận output của 1 lệnh [trong trường hợp này là danh sách files được tạo ra bởi lệnh find] và truyền nó cho 1 lệnh khác [ở đây là lệnh
find /var/www
4].

Để tìm kiếm file theo 1 tên cụ thể, thêm tham số

find /var/www | more
8 và tên file bạn muốn tìm. Bạn có thể sử dụng ký tự
find /var/www | more
9 như wildcard [ký tự thay thế] [ký tự gạch chéo
find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
0 có thể không phải lúc nào cũng cần đế escape dấu
find /var/www | more
9 nhưng nó là thói quen tốt khi dùng lệnh find] để tìm theo pattern. Bạn có thể kết hợp các điều kiện search bằng
find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
2 [or]. Nếu bạn bỏ tham số
find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
2 nó sẽ trở thành điều kiện "and":

find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg

Bạn cũng có thể tìm kiếm theo kích thước file bằng cách thêm tham số

find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
4. Theo đó, bạn có thể tìm tất cả những file ảnh GIF có kích thước trong khoảng 5 ~ 10KB:

find /var/www -name *.gif -size +5k -size -10k

Tương tự, để tìm những files có thời gian thay đổi trong khoảng 90 - 180 ngày trước, bạn sử dụng

find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
5:

cat index.html
0

Trong cả hai trường hợp, có thể bạn sẽ muốn biết kích thước thật và thời gian thay đổi của file. Trong trường hợp này, tham số

find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
6, nhìn có vẻ giống với hàm
find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
7 trong C, trong đó bạn sử dụng
find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
8 để in ra các thông tin khác nhau. Command dưới đây sẽ in ra kích thước file, thời gian thay đổi và đường dẫn đến file:

cat index.html
1

Một tham số cũng khá hữu ích khác đó là

find /var/www -name logo.gif
find /var/www -name \*.gif
find /var/www -name *.gif -o -name *.jpg
9 cho phép bạn tìm nhưng files đã được thay đổi trong vài phút trước. Ví dụ, nếu có gì đó không ổn trên websites, bạn có thể chạy lệnh sau để xem những files và folders đã thay đổi trong 10 phút trước:

cat index.html
2

Mặc dù vậy, nó không hiển thị file nào đã bị xóa [vì nó không còn ở đó nữa], nhưng nó sẽ hiển thị thư mục mà có file bị xóa. Để chỉ hiển thị file, hãy thêm tham số

find /var/www -name *.gif -size +5k -size -10k
0, tương tự với thư mục là
find /var/www -name *.gif -size +5k -size -10k
1:

cat index.html
3

Tips: đọc mannual

Bạn không thể nhớ hết các tham số, tùy chọn như trên, khi đó bạn có thể đọc manual của command bằng cách dùng lệnh

find /var/www -name *.gif -size +5k -size -10k
2:

cat index.html
4

Trong khi đọc manual, các phím điều khiển tương tự khi dùng

find /var/www
4: phím
find /var/www -name *.gif -size +5k -size -10k
4 dùng cho cuộn trang,
cp index.html copy_index.html
rm old_index.html
9 để cuộn theo dòng và
find /var/www
6 để thoát. Các phím di chuyển up và down cũng dùng được. Bạn có tìm kiếm trong 1 trang manual bằng cách gõ
cp index.html copy_index.html
rm old_index.html
1 và keyword, ví dụ
find /var/www -name *.gif -size +5k -size -10k
8. Trang manual sẽ nhảy đến vị trí xuất hiện tiếp theo của từ khóa đó. Bạn có thể tìm kiếm theo chiều ngược lại với
find /var/www -name *.gif -size +5k -size -10k
9 và bạn có thể lặp lại qua các vị trí kết quả tìm kiếm khác bằng phím
cat index.html
00.

Nếu bạn cảm thấy khó đọc manual, bạn có thể tìm kiếm trợ giúp bằng các trang web:

  • TLDR pages
  • //explainshell.com/
  • cheat.sh

Tìm kiếm nội dung file

Hầu hết các code editor hiện nay đều cho phép bạn tìm kiếm từ khóa trong nhiều file. Bạn cũng có thể làm việc này trực tiếp trên terminal bằng việc sử dụng command

cat index.html
01. VD tìm kiếm trong các file php:

cat index.html
5

Lệnh này sẽ cho biết những file nào trong thư mục hiện tại có chứa đoạn code đó.

Nếu bạn muốn search cả trong thư mục con thì thêm tùy chọn

cat index.html
02 với một thư mục ở cuối lệnh thay vì danh sách file. Dấu
cp index.html copy_index.html
rm old_index.html
7 đại diện cho thư mục hiện tại.

cat index.html
6

Ngoài ra bạn có thể sử dụng

cat index.html
01 với
find /var/www | more
2 command. Ví dụ câu lệnh dưới đây tìm kiếm trong các file PHP mà được chỉnh sửa trong vòng 14 ngày trở lại:

Chủ Đề