In ra đường dẫn thư mục hiện hành linux

Bạn đang thao tác với terminal. Bạn đang “lạc trôi” với các lệnh linux. Bạn gõ “cd” một hồi và không thể xác định phương hướng được nữa. Đã đến lúc xem đường dẫn thư mục đang làm việc trên terminal Linux/Unix. Tại sao ư? Biết được đường dẫn hay địa chỉ thư mục mà bạn đang ở đó cũng giống như việc bạn hỏi được xã phường thị trấn quận huyện mà bạn đang đặt chân đến vậy 😀

Giới thiệu

Để xem được đường dẫn [địa chỉ] thư mục đang làm việc, bạn có thể sử dụng lệnh pwd.

Lệnh pwd trên linux/unix

pwd là lệnh hầu như hay được sử dụng trên linux/unix. Nó có thể sử dụng được cho Mac OS X, UNIX và các hệ điều hành Linux như Ubuntu, Linux Mint,… Trên terminal bạn gõ:

$ pwd

Kết quả: Như hình trên [hiện tại mình đang ở thư mục home]

Tham khảo

  • pwd on wikipedia

5 1 vote

Đánh giá bài viết

Mình là dev quằn tại một công ty nọ. Là đứa thích chia sẻ. Từ những điều nhỏ nhặt nhất

Trong linux, khi làm việc trên server hay đơn giản hơn là làm việc trên ternimal, ít nhiều bạn cũng phải rớ tới các file và thư mục, bay nhảy qua lại. Nhưng 1 điều bạn nhất định phải biết, đó là đường dẫn.

Đường dẫn tuyệt đối của một tệp tin hay thư mục luôn bắt đầu bởi / [root] và tiếp theo sau đó là chuỗi các thư mục mà nó đi xuyên qua cho đến khi tới đích. Tóm lại, một đường dẫn tuyệt đối là đường dẫn bắt đầu bởi / [root]
Ví dụ :

  1. Khi bạn đang đứng trong thư mục lvduit, thư mục con của home [hay còn có thể nói home là thư mục mẹ của lvduit] thì đường dẫn tuyệt đối của của thư mục lvduit sẽ là /home/lvduit.
  2. Đường dẫn tuyệt đối của tệp tin xxx, tệp tin con của thư mục mẹ là abc, và abc là thư mục con của lvduit, thì đường dẫn của xxx sẽ là /home/lvduit/abc/xxx.

Chốt: đường dẫn tuyệt đối bắt đầu bằng dấu /


Đường dẫn tương đối

Đối với đường dẫn tương đối thì người sử dụng không đòi hỏi phải bắt đầu từ / [root]. Đường dẫn tương đối bắt đầu đi từ thư mục hiện tại. Một đường dẫn tương đối thường bắt đầu với tên của một thư mục hoặc tệp tin, kết hợp với các thư mục đặt biệt sau

  • Dấu . [dấu chấm], thư mục . là thư mục đặc biệt, liên kết [biểu thị] đến thư mục hiện thời [working directory]. 
  • Dấu .. [hai chấm] liên kết [biểu thị] cho thư mục mẹ của thư mục hiện thời.

Ví dụ: ráng đọc từng dòng shell nha =]]


Ví dụ khác: 
Giả sử là bạn đang đứng trong thư mục /home/lvduit trong cây thư mục.
Từ đây thì đường dẫn abc/xxx sẽ là đường dẫn tương đối của tệp tin xxx.
Còn /home/lvduit/abc/xxx sẽ là đường dẫn tuyệt đối.

Kết

Về thư mục gốc

[[email protected] ~]$ cd /

Nhảy đến 1 vị trí bất kì khi biết địa chỉ tuyệt đối

[[email protected] ~]$ cd /usr/lib/

Di chuyển đến thư mục con nằm trong thư mục hiện tại

Di chuyển đến thư mục mẹ

    Bây giờ, giả sử bạn đang làm việc trong thư mục /mnt/data/linux. Sau đó bạn chuyển sang thư mục /etc/sysconfig. Để quay trở lại thư mục /mnt/data/linux, bạn gõ:

    Lệnh cd không có tham số, sẽ đưa bạn về nhà, dù bất kể bạn đang ở đâu

    [[email protected] ~]$ pwd
    /net/ftp/pub/html
    [[email protected] ~]$ cd
    [[email protected] ~]$ pwd
    /home/lvduit

    Tương tự vậy, thư mục ~ cũng cho phép bạn về nhà bằng cách này

    [[email protected] ~]$ cd ~

    Bonus

    Mọi thắc mắc, bạn có thể comment bên dưới, liên hệ qua mail [lvduit08 at gmail.com].

    I hope it will be useful for you :]]

    ----
    Linux - Một số lệnh hay dùng

    Xin chào các bạn, chúng ta sẽ đến 1 bài viết cơ bản với nội dung nhằm tìm kiếm xác định được đường dẫn tuyệt đối của 1 lệnh trên Linux, để thực hiện được điều đó chúng ta sẽ sử dụng 2 chương trình lệnh gồm : “whereis” và “which“.

    Bây giờ chúng ta cùng tìm hiểu qua 2 chương trình này nhé.

    Contents

    • A. Chương trình lệnh “which”
      • A.1. Hiển thị cơ bản
      •   A.2. Hiển thị toàn bộ đường dẫn của chương trình
    •   B. Chương trình lệnh “whereis”
      • B.1. Tìm đường dẫn chương trình
      • B.2. Chỉ định loại thông tin cần tìm kiếm
      • B.3. Giới hạn tìm kiếm ở thư mục cụ thể
    • C. Sự khác nhau giữa “whereis” và “which”

    Chương trình “which” là một chương trình đơn giản và nhỏ gọn có mục đích xác định đường dẫn các file chương trình thực thi. Nó cho phép người dùng có thể sử dụng output của chương trình làm thông tin đường dẫn tuyệt đối thành input cho các lệnh hay shell script khác.

    which” sẽ chỉ tìm đường dẫn các file chương trình nào nằm trong các directory được liệt kê ở biến môi trường $PATH.

    # echo $PATH
    /usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/easy/bin:/root/bin:/root/.local/bin:/root/bin:/bin

     
    Cấu trúc lệnh

    which [-option] [command]

     
    Ví dụ :

    A.1. Hiển thị cơ bản

    # which cat
    /bin/cat
    # which ls gdb open grep
    /bin/ls
    /usr/bin/gdb
    /bin/open
    /bin/grep

     
    A.2. Hiển thị toàn bộ đường dẫn của chương trình

    Đối với ví dụ ở phần ví dụ 1 “Hiển thị cơ bản” thì “which” mặc định chỉ xuất ra thông tin đường dẫn đầu tiên mà chương trình tìm thấy trong các thư mục của biến môi trường $PATH. Điều này dẫn đến việc có thể bỏ sót các thông tin đường dẫn khác hay chương trình cùng loại nhưng khác phiên bản trên cùng hệ thống.

    Vậy để hiển thị toàn bộ các đường dẫn file chương trình được tìm thấy trong các thư mục thì ta thêm option “-a“.

    # which -a echo
    /usr/sbin/echo
    /bin/echo

     
    B. Chương trình lệnh “whereis”

    whereis” là 1 chương trình giúp cho chúng ta tìm được 3 thông tin sau về 1 chương trình hoặc 1 lệnh trên Linux :
    – Đường dẫn vị trí file binary.
    – Đường dẫn vị trí source code.
    – Đường dẫn vị trí trang manual dành cho chương trình hay lệnh đó.

    “whereis” sẽ tìm ở đâu ?
    Nếu bạn manual “whereis” sẽ thấy có phần thông tin “FILES” như sau :

    # man whereis
    FILES 
       /{bin,sbin,etc}
       /usr/{lib,bin,old,new,local,games,include,etc,src,man,sbin,X386,TeX,g++-include}
       /usr/local/{X386,TeX,X11,include,lib,man,etc,bin,games,emacs}

     
    thì whereis sẽ tìm kiếm các thông tin được chỉ định trong các thư mục được liệt kê ở phần FILES như phía trên, như vậy nếu bạn cài đặt chương trình ở thư mục khác thì có khi “whereis” sẽ không thể tìm ra được thông tin file chương trình đó cho bạn. Vậy nên nếu bạn mong muốn chỉ định whereis tìm kiếm ở 1 thư mục cụ thể khác thì “whereis” có option hỗ trợ việc đó.
     

    Cấu trúc lệnh

    # whereis [options] program/command
    # whereis -BMS /directory -f command/program


    Ví dụ sử dụng

    B.1. Tìm đường dẫn chương trình

    – Mặc định whereis sẽ tìm cả 3 thông tin liên quan nếu bạn không chỉ định giới hạn loại  thông tin cho whereis, như ví dụ dưới thì whereis xuất ra được thông tin đường dẫn file binary và file manual của lệnh “date“.

    # whereis date
    date: /bin/date /usr/share/man/man1/date.1.gz
    
    # whereis df
    df: /bin/df /usr/share/man/man1/df.1.gz

    B.2. Chỉ định loại thông tin cần tìm kiếm

    – Bạn có thể chỉ định rõ loại thông tin mình cần tìm kiếm, không cần tìm hết cả 3 loại thông tin.

    Một số option sau :
    -b : chỉ tìm file binary
    -m : chỉ tìm file manual
    -s : chỉ tìm source code

    # whereis -b perl
    whereis: /usr/sbin/perl /usr/bin/X11/perl
    
    # whereis -m bash
    /usr/share/man/man1/bash.1.gz
    
    # whereis -s rsync
    rsync:

    B.3. Giới hạn tìm kiếm ở thư mục cụ thể

    whereis” hỗ trợ bạn giới hạn thư mục được chỉ định để tìm kiếm các thông tin liên quan đến file binary, source code và manual file bằng các option sau :

    -B /path/dir : giới hạn tìm kiếm file binary ở thư mục được chỉ định.
    -M /path/dir : giới hạn tìm kiếm file manual ở thư mục được chỉ định.
    -S /path/dir : giới hạn tìm kiếm file binary ở thư mục được chỉ định.

    Nhưng bạn phải thêm option “-f” để chỉ định tên chương trình/lệnh mà bạn cần tìm khi kết hợp với 3 option quy định thư mục cần tìm kiếm ở trên.

    # whereis -B /bin -f python

    -> “whereis” sẽ tìm chương trình file binary “python” trong thư mục /bin mà thôi.

    # whereis -M /usr/share/man/man1 -f open
    open: /bin/open /usr/share/man/man1/open.1.gz

    C. Sự khác nhau giữa “whereis” và “which”

    Chương trình “whereis” sẽ liệt kê cho bạn đường dẫn vị trí của các file binary, source  code và file manual liên quan đến chương trình lệnh đó. Trong khi đó “which” chỉ liệt kê cho bạn đường dẫn file binary của chương trình lệnh thôi.

    whereis” sẽ tìm kiếm trong danh sách các thư mục đã được quy định để tìm file binary, source và trang manual, thông tin về các thư mục này được tìm thấy thêm ở phần thông tin FILES nằm ở trang manual của chương trình lệnh “whereis“. Còn “which” chỉ tìm kiếm trong các thư mục được liệt kê ở biến môi trường $PATH mà thôi.

    Nếu bạn cài đặt chương trình ngoài các thư mục được quy định trong manual của chương trình lệnh “whereis” hoặc ngoài thư mục được khai báo ở biến môi trường $PATH của chương trình lệnh “which” thì hoàn toàn có khả năng cả 2 lệnh trên không thể xuất ra thông tin bạn muốn biết.

     
    Bài viết đến đây là hết rồi, rất hy vọng bạn đã có thêm được kiến thức bổ ích về Linux.

    Bài Viết Liên Quan

    Chủ Đề