Giới thiệu về lệnh pwd
PWD viết tắt cho Print Working Directory. Nó hiển thị tên đầy đủ của đường dẫn của thư mục làm việc ra đầu ra chuẩn trên các hệ điều hành dạng UNIX.
Các triển khai của lệnh pwd
Hệ điều hành Multics có một lệnh là pwd (là tên viết tắt của lệnh print_wdir), từ đó lệnh pwd trên Unix được phát triển. Lệnh PWD là một câu lệnh shell được tích hợp vào hầu hết các shell Unix, chẳng hạn như zsh, ksh, bash, ash và Bourne shell. Nó có thể dễ dàng triển khai với các hàm C POSIX getwd() hoặc getcwd(). Nó cũng có sẵn trên nhiều hệ điều hành, bao gồm KolibriOS, PANOS và SpartaDOS X. Lệnh cd, cùng với không có đối số, tương đương trên Microsoft Windows (cmd.exe) và DOS Windows (COMMAND.com). Windows PowerShell cung cấp cmdlet GET-LOCATION giống như pwd và gl là các bí danh chuẩn. Trên phiên bản 5.0 của Windows CE, bộ xử lý lệnh cmd.exe có lệnh pwd.
Từ vấn đề 2 của năm 1987, pwd đã trở thành một thành phần của X/Open Portability Guide trên các hệ thống Unix được phát hiện. Nó được đưa vào phiên bản đầu tiên của Single Unix Specification và POSIX.1. Nó xuất hiện trong Unix Version 5. Phiên bản pwd được chỉ định bởi Jim Meyering và được tải với GNU coreutils.
Mô tả thư mục làm việc (Hiện tại)
Thư mục làm việc hiện tại là thư mục nơi người dùng đang làm việc hiện tại. Mỗi khi chúng ta tương tác với dấu nhắc lệnh của mình, chúng ta đang làm việc trong một thư mục. Khi đăng nhập vào hệ thống Linux, thư mục làm việc hiện tại của chúng ta là thư mục root của chúng ta theo mặc định. Chúng ta có thể sử dụng lệnh cd để thay đổi thư mục làm việc của mình.
Ví dụ, chúng ta cần nhập lệnh dưới đây trong cửa sổ terminal để thay đổi thư mục làm việc thành /tmp:
$ cd /tmp
Nếu bạn có một prompt zsh hoặc bash được tùy chỉnh, đường dẫn thư mục làm việc hiện tại có thể được hiển thị trong prompt shell.
Cú pháp của pwd
pwd [-options]
Tùy chọn của lệnh pwd được giải thích trong phần dưới đây, với status là exit:
- Non-zero: Failure
- Zero: Success
Phần tiếp theo giới thiệu các tùy chọn của lệnh “pwd” và cung cấp giải thích cho từng tùy chọn. Các tùy chọn bao gồm:
- “pwd”: được sử dụng để hiển thị thư mục làm việc hiện tại. Ví dụ, /home/foobar.
- “pwd -L”: được sử dụng để hiển thị đường dẫn logic của thư mục làm việc hiện tại với tên của liên kết symbolic link nếu có. Ví dụ, nếu có trong thư mục /home/symlinked, nó là một liên kết symbolic link đến /home/realdir; nó sẽ hiển thị /home/symlinked.
- “pwd -R”: được sử dụng để hiển thị đường dẫn vật lý của thư mục làm việc hiện tại mà không có tên của liên kết symbolic link nếu có. Ví dụ, nếu có trong thư mục /home/symlinked, nó là một liên kết symbolic link đến /home/realdir; nó sẽ hiển thị /home/realdir.
- “–help”: hiển thị thông tin trợ giúp.
- “–version”: cung cấp phiên bản chương trình.
Chú ý: POSIX yêu cầu tính năng mặc định được coi như đã cung cấp tùy chọn -L.
Các ví dụ về Lệnh PWD Chúng ta có thể sử dụng lệnh sau trong cửa sổ terminal để in ra thư mục làm việc hiện tại của chúng ta:
$ /bin/pwd
Để tạo liên kết (symbolic link) của một thư mục, di chuyển đến thư mục được tạo và in ra đường dẫn thư mục hiện tại mà không có các liên kết symbolic link và với các liên kết symbolic link.
In ra đường dẫn thư mục hiện tại thông qua môi trường, ngay cả khi nó bao gồm các liên kết symbolic link.
$ /bin/pwd -L
Hiển thị thư mục làm việc vật lý root bằng cách bắt buộc tất cả các liên kết symbolic link:
$ /bin/pwd -P
Kiểm tra xem kết quả của các lệnh “pwd -P” và “pwd” có tương đương hay không, tức là nếu không cung cấp tùy chọn nào trong thời gian chạy, thì lệnh pwd có tự động tính đến tùy chọn -P hay không?
Chúng ta có thể sử dụng lệnh sau để in ra phiên bản của lệnh pwd của chúng ta:
$ /bin/pwd -version
Ghi chú: Lệnh pwd không bao giờ được áp dụng với các đối số và thường được sử dụng mà không có tùy chọn.
Quan trọng: Chúng ta có thể đã thấy rằng chúng ta đang chạy lệnh với /bin/pwd, không phải là pwd, như đã đề cập ở trên.
Vậy sự khác biệt là gì?
pwd mô tả riêng cho pwd tích hợp của shell. Shell của chúng ta có thể chứa các phiên bản pwd khác nhau. Chúng tôi khuyên bạn nên tham khảo hướng dẫn. Nếu chúng ta sử dụng /bin/pwd, chúng ta đang gọi một phiên bản nhị phân của lệnh. Cả phiên bản nhị phân và phiên bản shell của lệnh đều sẽ in ra thư mục làm việc hiện tại, vì vậy phiên bản nhị phân chứa nhiều tùy chọn hơn.
Chúng ta có thể sử dụng lệnh sau để in ra mọi vị trí có thể thực thi được của pwd:
$ type -a pwd
Lưu giá trị của lệnh pwd vào một biến bất kỳ và in giá trị từ biến này (có ý nghĩa quan trọng đối với việc viết script shell). Trong ví dụ trên, chúng ta có thể sử dụng printf như là một phương thức thay thế.
Thay đổi thư mục làm việc đến một thư mục khác và hiển thị nó trên cửa sổ terminal. Chúng ta cũng có thể chạy lệnh ls để kiểm tra xem nó đã được thay đổi chưa.
Khởi tạo cửa sổ terminal và sau đó, chạy lệnh ls để kiểm tra mọi thứ đã ok chưa.