Tuesday, 22 June 2010

[CMD]Các lệnh về thư mục và tập tin

bài viết đã được viết lại bởi tu0703

Trong phần này chúng ta sẽ tìm hiểu về các lệnh liên quan đến việc di chuyển trong hệ thống Linux là như thế nào. Một khởi đầu rất quan trọng để hiểu hơn về cách mà Linux sắp xếp các file, các directory(thư mục). Mình sẽ viết tắt Directory bằng chữ dir cho nhanh gọn nhé.

pwd - thư mục hiện tại

pwd là viết tắt của Print Working Directory (In ra thư mục hiện tại). Nếu bạn để ý thì sẽ thấy hầu hết các lệnh trong Linux đều là viết tắt của một từ hay cụm từ nào đó.
Khi dùng lệnh pwd chúng ta sẽ có full path của thư mục mà chúng ta đang dùng ở hiện tại. Ở trên Gnome thì trên thanh tiêu đề Terminal có hiển thị sẵn thư mục đang dùng rồi.

ls - liệt kê những file/dir

ls sẽ liệt kê toàn bộ những file, directory có trong thư mục hiện tại. Nếu các bạn sử dụng Linux thì đây sẽ là một lệnh có thể nói là dùng nhiều nhất nhì. Cách sử dụng:
ls [option]
Một số option thường dùng:
  • ls -l sẽ hiển thị tên file, directory cùng với size, ngày tháng chỉnh sửa gần nhất, user sở hữu và các permisson của user đó. Chúng ta còn có thể sử dụng ll cho ngắn gọn hơn ls -l
  • ls -a sẽ hiển thị toàn bộ file/thư mục, kể các các file/thư mục ẩn.
  • ls -h hiển thị size dưới dạng dễ hiểu hơn, như KB, MB ...
  • ls -R hiện thị cả các file ở các sub-directory
  • ls [directory_path] sẽ hiển thị các file/thư mục ở directory đó, có thể dùng thêm các options bên trên.

cd - di chuyển sang directory khác

lệnh cd cho phép bạn thay đổi thư mục hiện hành. Khi bạn mở một terminal, bạn sẽ ở trong thư mục home. Để di chuyển sang nơi khác, bạn dùng lệnh cd. Phần này ta sẽ dùng ví dụ cho trực quan.

cd đến thư mục /usr/local
fml@ubuntu:~$ cd /usr/local
cd tiếp đến /usr/local/lib kiểu absolute path
fml@ubuntu:/usr/local$ cd /usr/local/lib
fml@ubuntu:/usr/local/lib$
Hoặc có thể sử dụng relative path để cd đến /usr/local/lib (cứ viết vài chữ cái đầu tên thư mục rồi TAB là được)
fml@ubuntu:/usr/local$ cd lib
fml@ubuntu:/usr/local/lib$
Chuyển sang thư mục mẹ
fml@ubuntu:/usr/local/lib$ cd ..
fml@ubuntu:/usr/local$
Di chuyển về home
fml@ubuntu:/usr/local$ cd
fml@ubuntu:~$
cd đến thư mục có dấu cách thì ta sẽ dùng "\", hoặc để tên directory trong cặp quote "tên_directory", nhưng nhanh nhất thì cứ viết chữ cái đầu rồi TAB là xong.
Quay về folder trước
fml@ubuntu:~$ cd -

cp - copy

lệnh cp sẽ sao chép một tập tin cho bạn. Ví dụ: lệnh "cp cinema movie" sẽ sao chép tập tin "cinema" ra tập tin "movie", tập tin cinema vẫn còn đó. Nếu bạn muốn sao chép thư mục, bạn dùng lệnh: "cp -r cinema movie"sẽ tạo thư mục "movie" có nội dung y hệt như thư mục "cinema".

Để tạo bản copy của 1 file nhưng với tên khác trong cùng directory
cp [file_name] [another_name]
Để copy 1 hay nhiều file đến directory khác
cp [file_1] [file_2] [file_n] [dir_path]
Để copy dir này sang dir khác. Chú ý: tên folder cần copy không được có dấu "/" ở cuối, nếu không sẽ lỗi.
cp -r [dir_path] [target_dir_path]
Còn rất nhiều option hay ho khác của lệnh cp, nhưng ở đây mình chỉ giới thiệu những cái hay dùng nhất. Nếu muốn tìm hiểu sâu hơn, hãy dùng lệnh man hoặc vào đây để đọc thêm.

mv - di chuyển hoặc đổi tên

mv viết tắt của move. Chúng ta sẽ dùng lệnh mv khi cần đổi tên hay di chuyển file, dir ra chỗ khác.

Đổi tên file, dir
mv [old_name] [new_name]
Nhưng nếu đã có file trùng với tên ta muốn đổi, mv sẽ ghi đè lại file đó, rất nguy hiểm. Thay vì dùng mv không, ta hãy sử dụng thêm option -i để chắc chắn hơn.
mv -i [old_name] [new_name]
Chuyển đến dir khác
mv [file/dir_name] [dir_path]
Lưu ý rằng nếu bạn dùng lệnh mv kèm với lệnh sudo, bạn có thể dùng lối tắt “~”, vì khi đó, máy sẽ hiểu “~” là thư mục home của bạn. Tuy nhiên, khi bạn đã dùng lệnh sudo -i hoặc sudo -s trước đó thì “~” mang nghĩa là thư mục home của root, không phải của bạn.

rm - xóa file/directory

rm dùng để xóa file/dir với mặc định là không cần sự xác nhận. Vì vậy bạn nên cần cực kỳ cẩn thận khi dùng lệnh này.
Xóa file với default (không hỏi, xóa luôn)
rm [file_name]
Nhưng tốt hơn bạn vẫn nên dùng với option -i trước khi xóa, đề phòng nhầm lẫn không đáng có.
Xóa dir thì lằng nhằng hơn. Nếu dir rỗng, bạn có thể dùng rmdir, hoặc option -d. Còn nếu dir không rỗng thì không xóa được, đầu tiên phải làm trống dir đó trước với option -r đã.

Và option -f sẽ xóa bất kể file đó có write-protected hay không. Trừ khi file đó nằm trong dir được write-protected. (write-protected nghĩa là nó được set với permisson của root hay một user có quyền cao hơn user hiện tại. Nghĩa là nếu bạn đang là root hay đang dùng sudo thì nó sẽ xóa tất, xóa sạch, xóa triệt để). Không nên dùng -f nếu chưa chắc chắn hay chưa hiểu về nó đủ kỹ.

Lệnh về thông tin hệ thống

df - kiểm tra dung lượng các partition

df (disk free) sẽ hiển thị mức độ chiếm dụng không gian đĩa cứng của tập tin hệ thống ở tất cả những phân vùng được gắn kết. Mặc định nó sẽ hiển thị theo dạng 1K block, nếu muốn hiển thị theo những thông số để chúng ta đọc hiểu được, thì phải dùng option -h.

Để hiển thị toàn bộ, dùng option -a. Còn nếu bạn muốn check riêng 1 phân vùng, ví dụ như /dev/sda7, thì chỉ cần thêm đường dẫn vào sau là ổn.

du - kiểm tra dung lượng các directory

du (Disk Usage) hiện thị mức chiếm dụng không gian đĩa cứng của một thư mục. Nó có thể vừa hiển thị không gian đĩa được sử dụng của tất cả các thư mục con vừa hiện thị tổng quát thông tin về thư mục của bạn.

Chúng ta cũng sẽ dùng option -h để hiển thị dung lượng bằng thông số đọc hiểu được. Cách dùng như lệnh df. Một số option khác như: -c để hiển thị tổng cộng, -s chỉ hiện thị tổng dung lượng mà không hiển thị chi tiết.
➜ ~ sudo du -sh /home/
8,0G   /home/

free - thông tin về RAM

Lệnh free hiển thị dung lượng bộ nhớ (RAM) còn trống và đang sử dụng. Chỉ cần gõ free và bạn sẽ biết được còn trống bao nhiêu RAM, và cả Swap nữa. Chúng ta vẫn dùng -h để hiển thị dưới dạng hiểu được. Một số option khác như:


  • -b : hiển thị dưới dạng Byte (B)
  • -k : hiển thị dưới dạng Kilo Bytes (KB)
  • -m : hiển thị dưới dạng Megabytes (MB)
  • -g : hiển thị dưới dạng Gigabytes (GB)
  • -t : hiển thị tổng cộng số RAM

top - một Task Manager của Linux

Lệnh top hiển thị thông tin về hệ thống Linux của bạn, các tiến trình này đang chạy và tài nguyện hệ thống, bao gồm: CPU, RAM & swap và tổng số tác vụ đang chạy. Để thoát top, nhấn phím “q”.

Để sắp xếp Memory/Cpu/Process ID/Running Time theo thứ tự giảm dần:
  • Nhấn M để sắp xếp theo Memory
  • Nhấn P để sắp xếp theo Cpu
  • Nhấn N để sắp xếp theo PID
  • Nhấn T để sắp xếp theo thời gian chạy
Nhấn R để thay đổi thứ tự trên. Ấn X hoặc B để bôi đậm dòng được sắp xếp. Ấn C để hiện cả đường dẫn đến tác vụ đang chạy. Ấn V để sắp xếp theo kiểu tree v.v.... Còn rất nhiều option hay ho khác, bạn có thể dùng lệnh man hoặc vào đây để đọc thêm.

uname - thông tin về Kernel

lệnh uname với tùy chọn -a sẽ hiển thị toàn bộ thông tin hệ thống, bao gồm tên máy tính, tên nhân kernel kèm số phiên bản và một vài chi tiết khác. Nó rất hữu dụng để kiểm tra bạn đang dùng nhân kernel nào. Một vài option khác:
  • -r : kernel release
  • -v : version của kernel
  • -m : Hardware name, i386 là 32-bit, x86_64 là 64-bit
  • -i : Hardware platform,
  • -p : Processor type
  • -o : Hệ điều hành đang dùng
Ngoài ra bạn còn có thể dùng lệnh lsb_release với tùy chọn -a sẽ hiển thị thông tin phiên bản Linux bạn đang dùng, ví dụ:
➜ ~ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty

ifconfig - hiển thị thông tin mạng

ifconfig dùng để báo cáo về các thiết bị mạng trên máy tính. Nó cũng giống như ipconfig trên Windows vậy. Để xem chi tiết hơn về 1 mạng, ví dụ như wlan0, chỉ cần thêm tên vào sau lệnh ifconfig. Hiện tại chúng ta chỉ cần thế thôi, chi tiết sâu hơn để bài khác.

Kết luận

Vậy là chúng ta đã biết rất nhiều lệnh hay ho và cần thiết khi sử dụng Linux rồi. Đó là những lệnh rất căn bản, làm quen với nó xong thì chắc chắn bạn sẽ thích Linux hơn Windows rất nhiều.

Để tìm hiểu sâu hơn về các command, các bạn có thể vàohttp://www.familug.org/2012/03/ccgu-cat-cut-grep-uniq.html để đọc thêm nhé.