Thứ sáu, 28/02/2014 | 00:00 GMT+7

Cách sử dụng cd, pwd và ls để khám phá hệ thống tệp trên server Linux

Làm quen với dòng lệnh là bước đầu tiên để tận dụng sức mạnh của nền tảng server Linux. Nó cũng là yêu cầu cơ bản cho tất cả các hoạt động liên quan đến server mà bạn có thể cần thực hiện trong môi trường này.


Trong khi các lựa chọn thay thế đồ họa tồn tại cho nhiều công cụ, học dòng lệnh là một kỹ năng cho phép bạn làm việc với hiệu quả, tốc độ và tính linh hoạt theo cách mà hầu hết các GUI (giao diện user đồ họa) không thể thực hiện được.

Tất cả ta đều phải bắt đầu ở đâu đó, vì vậy ta sẽ đề cập đến những điều rất cơ bản trong bài viết này: cách chuyển hệ thống của bạn và tìm hiểu những gì ở đó.

Yêu cầu


Bài viết này rất cơ bản, vì vậy nó không có nhiều kiến thức trước đó. Tuy nhiên, bạn cần phải đăng nhập vào version VPS của bạn để bắt đầu khám phá. Các tùy chọn mà bạn có để thực hiện việc này phụ thuộc phần lớn vào hệ điều hành mà bạn đang sử dụng ở nhà.

Khi bạn tạo server DigitalOcean mới , bạn sẽ được gửi password qua email và được cấp địa chỉ IP để truy cập server mới của bạn . Sử dụng bài viết được liên kết để tìm hiểu cách kết nối với VPS của bạn.

<pre>
ssh root @ <span class = “highlight”> your_IP </span>
</pre>

Một tùy chọn khác là sử dụng nút “Quyền truy cập console ” ở góc trên cùng bên phải của console DigitalOcean của bạn. Thao tác này sẽ tạo một phiên terminal ảo trực tiếp trong cửa sổ trình duyệt web .

Tìm ra bạn đang ở đâu với pwd


Đến đây, bạn nên đăng nhập vào máy Linux của bạn . Bạn có thể sẽ thấy một cái gì đó trông giống như sau:

<pre>
root @ <span class = “highlight”> your_hostname </span>: ~ #
</pre>

Đây là dấu nhắc . Nó là nơi ta gõ lệnh.

Nhưng còn nhiều điều hơn thế nữa. Bạn cũng đang ở một nơi cụ thể trong hệ thống file của server . Bạn sẽ luôn ở vị trí này hay vị trí khác trong hệ thống phân cấp file của server và điều này có ý nghĩa về cách các lệnh bạn nhập sẽ hoạt động.

Điều này tương tự như khi bạn mở trình duyệt file trên máy tính local của bạn . Bạn có thể nhấp vào các folder khác nhau để di chuyển đến các nơi khác nhau trong hệ thống file . Nếu bạn đi tới trình đơn chỉnh sửa của trình duyệt file , bạn có thể có một số tùy chọn sẽ áp dụng cho các mục trong folder cụ thể mà bạn đang ở.

Dòng lệnh chỉ là một biểu diễn văn bản của cùng một ý tưởng.

Vậy chính xác thì ta đang ở đâu trong hệ thống file của bạn ? Có một manh mối trong chính dấu nhắc . Ngay trước ký tự # hoặc $ ở cuối dấu nhắc của bạn (điều này sẽ phụ thuộc vào user mà bạn đang đăng nhập), bạn sẽ thấy một ký tự dấu ngã (~). Đây là viết tắt của folder "nhà" của bạn.

Thư mục chính của bạn là nơi lưu trữ các file cho user của bạn. Ký tự ~ là viết tắt của folder này.

Một cách khác để biết bạn đang ở đâu trong hệ thống file là sử dụng lệnh có tên pwd . Đây sẽ là lệnh đầu tiên của bạn!

Nhập các ký tự này vào terminal của bạn và nhấn ENTER:

pwd 

/root 

Thư mục /root là folder chính của user root (quản trị). Nếu bạn đăng nhập với quyền user khác, thay vào đó bạn sẽ thấy thông tin như sau:

<pre>
pwd
</pre>
<pre>
/ home / <span class = “highlight”> your_username </span>
</pre>

Đối với hướng dẫn này không quan trọng user bạn đăng nhập, vì vậy kết quả nào cũng được.

Nhìn xung quanh với ls


Đến đây bạn biết bạn hiện đang ở folder nào. Nhưng làm thế nào để ta biết được những gì trong folder này?

Ta có thể hỏi server của bạn những file và folder nào trong folder hiện tại bằng một lệnh gọi là ls . Nhập nó vào dấu nhắc lệnh ngay bây giờ:

ls 

Thao tác này sẽ chỉ đưa bạn trở lại dấu nhắc lệnh và không cung cấp cho bạn bất kỳ thông tin nào. Lệnh không thành công? Không, nó đã thành công, nó chỉ không tìm thấy các file hoặc folder nào trong folder hiện tại của bạn.

Hãy tạo một vài file thử nghiệm để xem ls hoạt động như thế nào khi có file trong folder này. Nhập cái này để tạo một vài file :

touch file{1..5} 

Thao tác này sẽ tạo ra 5 file có tên là file 1, file 2,…, file 5 trong folder hiện tại của ta .

Hãy thử lại ls để xem nó sẽ làm gì:

ls 

file1  file2  file3  file4  file5 

Tuyệt vời. Bây giờ lệnh nhận ra rằng ta có một số file trong folder chính của ta .

Hầu hết các lệnh có hành vi mặc định được thực thi khi bạn gọi nó như ta đã làm ở trên. Tuy nhiên, hầu hết các hành vi lệnh cũng có thể được tăng cường bằng cách chuyển các đối số tùy chọn cho lệnh. Bạn có thể nghe những điều này được gọi là “tùy chọn”, “đối số”, “cờ” hoặc “tham số”.

Đôi khi, chúng kích hoạt chức năng tùy chọn có sẵn thông qua lệnh và những lần khác, chúng chỉ định đối tượng mà lệnh cần được thực hiện.

Hãy bắt đầu với tình huống đầu tiên.

Khám phá các tùy chọn ls


Không phải tất cả các lệnh đều có tùy chọn trợ giúp tích hợp, nhưng ta có nhiều lệnh. Hầu hết thời gian, bạn có thể truy cập điều này bằng cách thêm --help hoặc -h vào cuối lệnh. Ta có thể thử điều này với ls ngay bây giờ:

ls --help 

Usage: ls [OPTION]... [FILE]... List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.  Mandatory arguments to long options are mandatory for short options too.   -a, --all                  do not ignore entries starting with .   -A, --almost-all           do not list implied . and ..       --author               with -l, print the author of each file   -b, --escape               print C-style escapes for nongraphic characters       --block-size=SIZE      scale sizes by SIZE before printing them.  E.g., . . . 

Điều này sẽ cung cấp cho bạn một số hướng dẫn về cách sử dụng lệnh chính xác và cung cấp cho bạn ý tưởng về những tùy chọn có sẵn để thay đổi hành vi mặc định. Cột bên trái cung cấp cho bạn các ký tự để nhập để tăng cường lệnh và cột bên phải mô tả mỗi lá cờ.

--help mà ta đã thêm vào là một ví dụ về một tùy chọn mà ta có thể vượt qua.

Một cách khác để tìm hiểu về các tùy chọn có sẵn cho lệnh mà bạn quan tâm là xem hướng dẫn sử dụng. Điều này được thực hiện bằng lệnh man và sau đó là lệnh bạn quan tâm. Hãy thử ngay bây giờ:

man ls 

Bạn có thể cuộn qua trang bằng các phím mũi tên và thoát bằng lệnh “q”.

Như bạn thấy , ls có khá nhiều tùy chọn mà ta có thể chuyển cho lệnh để thay đổi hành vi của nó. Hãy thử một vài cái.

ls -l 

-rw-r--r-- 1 root root 0 Feb 28 19:45 file1 -rw-r--r-- 1 root root 0 Feb 28 19:45 file2 -rw-r--r-- 1 root root 0 Feb 28 19:45 file3 -rw-r--r-- 1 root root 0 Feb 28 19:45 file4 -rw-r--r-- 1 root root 0 Feb 28 19:45 file5 

Điều này cho ta thấy cùng một năm file , nhưng nó hiển thị chúng ở định dạng "dài". Điều này cung cấp cho ta thêm thông tin về các file , chẳng hạn như chủ sở hữu ("gốc" đầu tiên), chủ sở hữu group ("gốc" thứ hai), kích thước của file (0), ngày file được sửa đổi lần cuối và một số thông tin khác thông tin.

Hãy thử một tùy chọn khác:

ls -a 

.   .aptitude      .bashrc  file2  file4  .profile  .ssh ..  .bash_history  file1    file3  file5  .rnd      .viminfo 

Điều này cho ta thấy một số file mà ta không thấy trước đây. Các -a cờ là đồng nghĩa với --all cờ. Điều này cho ta thấy tất cả các file trong folder hiện tại, bao gồm cả các file ẩn.

Trong hệ thống Linux, tất cả các file được đặt tên bằng dấu chấm bắt đầu đều bị ẩn theo mặc định. Chúng không bí mật và bất cứ ai cũng có thể tìm thấy chúng, chúng chỉ được giữ kín để dễ dàng quản lý file . Bằng cách chuyển cờ -a , ta có thể yêu cầu ls hiển thị các file này.

Ta cũng có thể chuyển nhiều cờ bằng cách chỉ cần xâu chuỗi chúng lại với nhau:

ls -l -a 

drwx------  4 root root 4096 Feb 28 19:45 . drwxr-xr-x 23 root root 4096 May  3  2013 .. drwx------  2 root root 4096 Feb 28 17:19 .aptitude -rw-------  1 root root 2036 Feb 28 18:20 .bash_history -rw-r--r--  1 root root  570 Jan 31  2010 .bashrc -rw-r--r--  1 root root    0 Feb 28 19:45 file1 . . . 

Điều này hoạt động tốt, nhưng ta cũng có thể thu gọn các cờ tùy chọn như thế này:

ls -la 

Điều này sẽ hoạt động hoàn toàn giống nhau và mất ít thao tác nhập hơn.

Một tùy chọn thú vị khác là cờ -R , liệt kê các file một cách đệ quy. Vì các folder duy nhất mà ta có trong folder chính của ta bị ẩn, nên ta cũng phải chuyển tùy chọn -a :

ls -Ra 

    .: .   .aptitude      .bashrc  file2  file4  .profile  .ssh ..  .bash_history  file1    file3  file5  .rnd      .viminfo  ./.aptitude: .  ..  cache  config  ./.ssh: .  ..  authorized_keys 

Bây giờ ta đã biết cách thay đổi cách hoạt động của ls , hãy thay đổi “đối tượng” mà ls hoạt động.

Sử dụng ls trên các folder khác


Theo mặc định, ls sẽ liệt kê nội dung của folder hiện tại. Tuy nhiên, ta có thể chuyển tên của bất kỳ folder nào mà ta muốn xem nội dung của nó ở cuối lệnh.

Ví dụ: ta có thể xem nội dung của một folder có tên là /etc có sẵn trên tất cả các hệ thống Linux bằng lệnh :

ls /etc 

acpi            fstab        magic        rc.local adduser.conf        fstab.d      magic.mime   rc.local.orig aliases         fuse.conf    mailcap      rcS.d aliases.db      gai.conf     mailcap.order    reportbug.conf alternatives        groff        mailname     resolvconf anacrontab      group        mail.rc      resolv.conf apm         group-       manpath.config   rmt . . . 

Ta thấy ở đây có nhiều file trong folder này.

Bất kỳ đường dẫn folder nào bắt đầu bằng dấu gạch chéo (/) được gọi là đường dẫn “tuyệt đối”. Điều này là do nó tham chiếu đến đường dẫn folder cụ thể từ folder cao nhất, folder root , được chỉ định bởi ký tự “/”.

Một cách khác để tham chiếu một folder là sử dụng một đường dẫn "tương đối". Thao tác này sẽ tìm kiếm một folder liên quan đến folder mà bạn hiện đang ở. Các đặc tả folder này không bắt đầu bằng dấu gạch chéo.

Ta không có bất kỳ folder không ẩn nào trong folder hiện tại của bạn , vì vậy hãy nhanh chóng tạo một số folder để chứng minh. Ta cũng sẽ thêm một số file bên trong. Đừng lo lắng về những lệnh này ngay bây giờ, chúng chỉ được sử dụng để thể hiện một ý tưởng ngay bây giờ, vì vậy chỉ cần nhập chúng vào nguyên trạng:

mkdir dir{1..3} touch dir{1..3}/test{A,B,C} 

Điều này sẽ tạo một số folder với một số file bên trong. Ta có thể xem các folder bằng ls bình thường:

ls 

dir1  dir2  dir3  file1  file2  file3  file4  file5 

Để xem những gì bên trong folder “dir1”, ta có thể cung cấp đường dẫn tuyệt đối như ta đã trình bày ở trên, bằng cách nối folder mà ta muốn xem vào cuối giá trị của folder hiện tại của ta . Ta có thể tìm ra folder hiện tại:

pwd 

/root 

Và sau đó thêm folder mà ta quan tâm vào cuối:

ls /root/dir1 

testA  testB  testC  

Nhưng ta không cần phải làm điều này. Ta có thể tham chiếu các folder bên trong folder hiện tại của bạn bằng cách đặt tên cho folder , như sau:

ls dir1 

testA  testB  testC 

Nếu ta không bắt đầu đặc tả đường dẫn bằng dấu gạch chéo, hệ điều hành sẽ tìm kiếm đường dẫn folder bắt đầu từ folder hiện tại.

Di chuyển xung quanh


Lúc này, ta đã học cách tìm ra vị trí của ta trong hệ thống file và ta đã học cách sử dụng ls để tìm hiểu một số thông tin về file trong một số folder nhất định.

Nhưng làm cách nào để thay đổi folder làm việc của bạn ? Thay đổi folder làm việc của ta sẽ cho phép ta sử dụng các đường dẫn tương đối từ một vị trí khác. Thông thường, thao tác trên các file từ folder chứa chúng sẽ dễ dàng hơn.

Ta có thể di chuyển xung quanh cấu trúc folder-file bằng cách sử dụng lệnh cd . Lệnh này là viết tắt của các folder thay đổi.

Trong cách sử dụng cơ bản nhất của nó, ta có thể chỉ cần gõ:

cd 

Điều này sẽ không xuất hiện để làm bất cứ điều gì. Trong thực tế, nó không. Những gì cd không có bất kỳ thông tin bổ sung là thay đổi folder chính của bạn. Vì ta đã ở trong folder chính của bạn , nên không có gì để lệnh phải làm.

Ý tưởng chung hơn về cách sử dụng lệnh như sau:

<pre>
cd <span class = “highlight”> / path / to / directory </span>
</pre>

Trong trường hợp này, folder /path/to/directory nên được thay thế bằng đường dẫn của vị trí folder mà bạn muốn chuyển đến. Ví dụ, để thay đổi thành folder "gốc", được chỉ định bằng một dấu gạch chéo (/), là phần trên cùng của cây, ta có thể nhập:

cd / 

Lưu ý : Thư mục root (được chỉ định bằng một dấu gạch chéo ngược “/”) khác với folder chính của user root (nằm ở “/ root”). Điều này có thể gây nhầm lẫn lúc đầu, nhưng chỉ cần nhớ rằng phần trên cùng của cây folder được gọi là root hệ thống file .

Bạn có thể nhận thấy rằng dấu nhắc lệnh của bạn đã thay đổi.

Ngay trước “#” hoặc “$”, danh sách folder đã thay đổi từ dấu ngã (hãy nhớ, ký hiệu trông giống như “~” đại diện cho folder chính của user của bạn), sang folder “gốc” của hệ thống file .

Ta có thể xác minh ta hiện đang ở trong một folder khác bằng cách sử dụng lại lệnh pwd :

pwd 

/ 

Ta cũng có thể kiểm tra các file trong folder mới của ta :

ls 

bin   etc     lib         media  proc  sbin     sys  var boot  home    lib64       mnt    root  selinux  tmp  vmlinuz dev   initrd.img  lost+found  opt    run   srv      usr 

Ta đã chuyển thành công đến một vị trí khác. Bây giờ, ta hãy thử chuyển đến một folder mới bằng một đường dẫn tương đối. Ta thấy rằng có một folder tên là usr trong folder này. Thay đổi nó bằng lệnh :

cd usr 

Như bạn thấy, ta cũng có thể sử dụng các đường dẫn tương đối với cd . Làm cách nào để ta quay lại folder root ? Ta có thể gõ cùng một lệnh cd / mà ta đã sử dụng trước đây, nhưng hãy thử một cái gì đó khác.

Hãy cố gắng di chuyển lên cây bằng các đường dẫn tương đối. Làm cách nào để ta tham chiếu đến folder chứa folder hiện tại của ta bằng các đường dẫn tương đối?

Ta có thể tham chiếu folder chứa folder hiện tại của ta bằng một cú pháp đặc biệt. Thư mục chứa folder hiện tại của ta được gọi là folder “mẹ” của nó. Ta có thể tham chiếu đến folder mẹ bằng cách sử dụng hai dấu chấm (..).

Hãy quay trở lại một cấp độ:

cd .. pwd 

/ 

Như bạn thấy , ta đã trở lại folder root . Ta cũng có thể tham khảo folder hiện tại của bạn bằng một dấu chấm:

ls . 

bin   etc     lib         media  proc  sbin     sys  var boot  home    lib64       mnt    root  selinux  tmp  vmlinuz dev   initrd.img  lost+found  opt    run   srv      usr 

Điều này hữu ích trong một số trường hợp có thể không rõ ràng lắm ở giai đoạn này, nhưng bạn sẽ đánh giá cao khả năng dễ dàng tham khảo danh bạ hiện tại của bạn sau này.

Như ta đã nói trước đó, biểu tượng “~” tham chiếu đến folder chính của ta . Hãy sử dụng nó làm phần mở đầu của một đường dẫn folder khác để thay đổi thành “dir1” bên trong nhà của ta :

cd ~/dir1 pwd 

/root/dir1 

Bây giờ ta đã chuyển vào một folder trong folder chính của ta rất dễ dàng bằng cách sử dụng ký hiệu “~” để thay thế phần đầu tiên của đường dẫn.

Nhưng điều gì sẽ xảy ra nếu ta quên làm điều gì đó trước khi thay đổi folder và muốn quay lại folder mới nhất của bạn ? Ta có thể quay lại folder trước đó của bạn bằng lệnh :

cd - pwd 

/ 

Ta đã trở lại folder cuối cùng của ta .

Hãy kết thúc bằng cách quay lại folder chính của ta . Ta có thể làm điều này bằng cách sử dụng dấu ngã làm đường dẫn để chuyển sang. Nhưng bạn có thể nhớ lại rằng chế độ mặc định của cd là đưa ta trở lại folder chính nếu ta không thêm bất kỳ đường dẫn nào. Thay vào đó hãy thử:

cd pwd 

/root 

Như bạn thấy , ta đã đưa nó trở lại folder chính của ta .

Kết luận


Đến đây bạn sẽ có các công cụ cần thiết để khám phá hệ thống file một chút. Bạn chưa biết cách điều tra file , nhưng bạn có thể chuyển xung quanh hệ thống một cách dễ dàng, theo dõi vị trí của bạn và xem các file xung quanh bạn.

<div class = “author”> Bởi Justin Ellingwood </div>


Tags:

Các tin liên quan

Cách di chuyển server Linux Phần 1 - Chuẩn bị hệ thống
2014-02-27
Cách di chuyển server Linux Phần 2 - Truyền dữ liệu cốt lõi
2014-02-27
Cách di chuyển server Linux Phần 3 - Các bước cuối cùng
2014-02-27
Cách cài đặt và sử dụng LinuxBrew trên VPS Linux
2014-02-14
cách sử dụng role và môi trường trong Chef để kiểm soát cấu hình server
2014-02-04
Cách cài đặt Chef Server, Workstation và Client trên Phiên bản VPS Ubuntu
2014-01-30
Giới thiệu về Chuyển hướng I / O Linux
2014-01-23
Giới thiệu về Chuyển hướng I / O Linux
2014-01-23
Cách thiết lập server email Postfix với Dovecot: Dynamic Maildirs và LMTP
2013-12-17
Cách xem và cấu hình log Linux trên Ubuntu và Centos
2013-12-17