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 tinls Documents/Books
8danh sách với định dạng dài – hiển thị quyềnls Documents/Books
9liệt kê định dạng dài bao gồm các tập tin ẩnls /home/user/Documents/Books
0danh sách định dạng dài với kích thước tệp có thể đọc đượcls /home/user/Documents/Books
1danh sách với định dạng dài với kích thước tập tinls /home/user/Documents/Books
2danh sách theo thứ tự ngược lạils /home/user/Documents/Books
3danh sách cây thư mục đệ quyls /home/user/Documents/Books
4danh sách với kích thước tập tinls /home/user/Documents/Books
5sắp xếp theo kích thước tập tinls /home/user/Documents/Books
6sắp xếp theo ls /home/user/Documents/Books
7ls /home/user/Documents/Books
8sắp xếp theo phần mở rộng của tập tinVí 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 /
2ls *.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
0Trong 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
1Mộ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
2Mặ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
3Tips: đọ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
4Trong 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
5Lệ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
6Ngoà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: