Sự khác biệt giữa whichvà là whereisgì?
whichvà whereisđưa ra đầu ra khác nhau (trên macOS Sierra) apple.stackexchange.com/questions/259047/ chủ
typelà vượt trội. Nó cũng biết về các bí danh đã xác định, các hàm, v.v.
Sự khác biệt giữa whichvà là whereisgì?
whichvà whereisđưa ra đầu ra khác nhau (trên macOS Sierra) apple.stackexchange.com/questions/259047/ chủ
typelà vượt trội. Nó cũng biết về các bí danh đã xác định, các hàm, v.v.
Câu trả lời:
Làm thế nào về việc học whereisvà whichsử dụng whatis?
$ whatis which
which (1) - shows the full path of (shell) commands
$ whatis whereis
whereis (1) - locate the binary, source, and manual page files for a command
Về cơ bản, whereistìm kiếm các tệp "có thể hữu ích", trong khi whichchỉ tìm kiếm các tệp thực thi.
Tôi hiếm khi sử dụng whereis. Mặt khác, whichrất hữu ích, đặc biệt trong các kịch bản. whichlà câu trả lời cho câu hỏi sau: Lệnh này đến từ đâu?
$ which ls
/bin/ls
$ whereis ls
ls: /bin/ls /usr/share/man/man1p/ls.1p.bz2 /usr/share/man/man1/ls.1.bz2
whereis, không phải đường dẫn which.
whichcho thấy con đường thực tế. Bạn có chắc chắn đường dẫn được chỉ bởi whichkhông chỉ là một liên kết tượng trưng đến đường dẫn được chỉ bởi whereis? Có lẽ nó là một bí danh vỏ. Trong bash, hãy thử chạy type your_cmd_here.
whereis tìm kiếm các vị trí * nix tiêu chuẩn cho một lệnh được chỉ định.
whichtìm kiếm PATH dành riêng cho người dùng của bạn (có thể bao gồm một số vị trí trong đó tìm kiếm và có thể không bao gồm các vị trí khác - nó cũng có thể bao gồm một số địa điểm whereiskhông tìm kiếm nếu bạn đã thêm vào PATH của mình)
Trích dẫn trang người đàn ông của họ:
trong đó :
trong đó định vị các phần nguồn / nhị phân và hướng dẫn sử dụng cho các tệp được chỉ định.
Ví dụ :
$ whereis php
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
tức là, "php" thực thi và một số thứ khác (như trang man).
và trong đó :
trong đó trả về tên đường dẫn của các tệp sẽ được thực thi trong môi trường hiện tại
Ví dụ :
$ which php
/usr/bin/php
tức là chỉ có tệp thực thi "php".
mà tìm kiếm cho thực thi trong thư mục theo quy định của PATH biến môi trường. Và nếu phát hiện ra, tên đường dẫn đầy đủ của tệp thực thi này sẽ được in.
$ which ls
/ bin / ls
$ which ifconfig
$ # Không có đầu ra, bởi vì ifconfig chỉ tồn tại trong PATH của root.
trong đó tìm kiếm các tệp thực thi, tệp nguồn và các trang thủ công bằng cách sử dụng cơ sở dữ liệu được xây dựng bởi hệ thống.
$ whereis less
less: / bin / less / usr / bin / less / usr / bin / X11 / less /usr/share/man/man1/less.1.gz
Nhưng có vẻ như whereis và xác định vị trí không sử dụng cơ sở dữ liệu tương tự. Khi tôi cài đặt một phần mềm và sau đó sử dụng whereis và xác định vị trí ngay lập tức để tìm kiếm phần mềm này. Kết quả là whereis có thể tìm hiểu một số tác phẩm liên quan đến phần mềm này khi xác định vị trí không thể. Họ có thực sự sử dụng cơ sở dữ liệu khác nhau? Cơ sở dữ liệu hoạt động như thế nào? --Vâng, làm thế nào về việc từ chối làm một nhà giáo? :)