Làm thế nào để có được danh sách tất cả các lệnh có sẵn cho Ubuntu?


22

Tôi muốn bắt đầu sử dụng thiết bị đầu cuối thường xuyên hơn, nhưng tôi không biết các lệnh khác nhau có sẵn cho tôi là gì. Có cách nào để liệt kê tất cả các lệnh khác nhau mà tôi có thể sử dụng không?

Câu trả lời:


25

Phương pháp đầu tiên

Lưu ý : Cảm ơn @Rmano. Phương pháp này không hoạt động với zshshell.

Một lệnh đơn giản:

ls ${PATH//:/ }

Điều này sẽ liệt kê tất cả các lệnh trong $PATHbiến môi trường của bạn .

Để lưu trữ kết quả trong một tệp, bạn có thể chuyển hướng đầu ra thành một tệp.

ls ${PATH//:/ } > mycommands.txt

Lưu ý rằng điều này sẽ trả về một lỗi nếu bất kỳ tên thư mục nào trong vùng $PATHchứa của bạn . Trong trường hợp đó, sử dụng cái này thay thế:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

Phương pháp thứ hai

Ngoài ra, bạn có thể sử dụng:

compgen -c | sort -u > commands && less commands

Phương pháp thứ ba

Một phương pháp khác là Tabnhấp đúp chuột.

Phương pháp thứ tư

Một phương thức khác sử dụng findlệnh:

find {,/usr}/{,s}bin -printf '%f\n\0'

Lưu ý rằng lệnh đầu tiên hoạt động bashnhưng không có zsh, trong đó có phân chia từ bị tắt theo mặc định. refining-linux.org/archives/38/
Rmano

11

Nếu bạn đang sử dụng bash, đây là vỏ mặc định trong tất cả các hương vị chính thức của Ubuntu, hãy chạy compgen -cđể xem các lệnh có sẵn bao gồm các bí danh.


Có phải đó chỉ là bash?
Braiam

1
Ngay cả các lệnh cho các chương trình dựa trên gui cũng được bao gồm. Vì vậy, nếu bạn làm compgen -c | grep thunarvà bạn đã cài đặt trình quản lý tệp Thunar, bạn cũng sẽ thấy các lệnh liên quan đến Thunar.

1
Mmm ... không hoạt động trong Debian. Gói nào cung cấp?
Braiam

2
@Rinzwind giải thích nó, tôi đang sử dụng zsh.
Braiam

1
@ vasa1: Câu trả lời này có thể khái quát hơn không? Ý tôi là nó chỉ cung cấp giải pháp cho bash, nhưng như Braiam lưu ý rằng nó không hoạt động cho zsh ... Nếu có thể, bạn có thể mở rộng câu trả lời để phục vụ cho đối tượng lớn hơn - rõ ràng chỉ khi bạn biết câu trả lời :-)
Aditya

4

Mở terminal Ctrl+ Alt+ tvà chạy lệnh này:

whatis `compgen -c` | more 

Điều này sẽ liệt kê tất cả các lệnh và một mô tả đơn giản của mỗi lệnh.

Nếu bạn muốn lưu danh sách, bạn có thể chuyển hướng kết quả vào một tệp đầu ra

whatis `compgen -c` > listOfCommands.txt

Vậy tại sao tôi sử dụng lệnh whatis. Lệnh man whatischo:

Mỗi trang hướng dẫn có một mô tả ngắn có sẵn trong đó.
whatis tìm kiếm tên trang thủ công và hiển thị mô tả trang thủ công của bất kỳ tên nào khớp.

vì vậy trong những từ dễ dàng whatisđưa ra một khái quát. mô tả của mỗi lệnh


+1 để biết thêm thông tin. whatis `compgen -c` | sort> listOfCommands.txt sẽ giúp đi vào danh sách sắp xếp.
Saurav Kumar

Một lệnh hữu ích khác: apropos <keyword>tìm kiếm tất cả các lệnh và mô tả ngắn của chúng và hiển thị kết quả
Aloso 19/12/17

3

Mở một thiết bị đầu cuối và nhấn Tabphím hai lần.


1
-1 vì đây không phải là tiêu chuẩn.
Lorenzo Ancora

@LorenzoAncora tại sao nó không chuẩn? Không phải tất cả Ubuntu đều có tự động hoàn thành với Tab kép là hành vi tiêu chuẩn sao?
Dadexix86

2
Mặc định! = Standard: trong tương lai có thể chúng ta sẽ có một bảng điều khiển không hỗ trợ cơ chế đó, vì nó không chuẩn; hơn nữa, tiêu chuẩn TAB có thể phục vụ một chức năng khác. Một thủ tục tiêu chuẩn đang liệt kê nội dung của 'bin', vì là một phần của tiêu chuẩn FHS chính thức và bất kỳ hệ thống Linux / Unix nào cũng có thư mục đó. Chức năng chính xác (và khả năng giúp đỡ người dùng của cộng đồng) của Ubuntu được đảm bảo bởi sự tôn trọng của các tiêu chuẩn.
Lorenzo Ancora

Ok, cảm ơn vì lời giải thích :) Tôi nghĩ rằng hành vi tiêu chuẩn của Tab đôi trên Ubuntu là liệt kê nội dung của PATH :)
Dadexix86

@LorenzoAncora Liệt kê nội dung của bất kỳ một thư mục nào sẽ không hiển thị ở bất kỳ đâu gần với tất cả các lệnh thực thi. Liệt kê nội dung của tất cả các thư mục PATH sẽ không hiển thị nội dung shell mà không có tệp thực thi tương ứng (chẳng hạn như cd). Nhấn Tab hai lần khắc phục cả những hạn chế nghiêm trọng này. Nếu ai đó đã hỏi cách hiển thị tất cả các lệnh trên hệ thống GNU / Linux tùy ý, người ta có thể lập luận rằng việc hoàn thành Tab không phải là một giải pháp thích hợp. Tất nhiên mọi thứ có thể thay đổi trong Ubuntu trong tương lai nhưng khả năng hoàn thành tab trong trình vỏ tương tác mặc định sẽ biến mất rất ít.
Eliah Kagan

2

Một danh sách các lệnh phụ thuộc rất lớn vào những gì bạn đã cài đặt, nhưng có những mánh gian lận để liệt kê tất cả các lệnh. Sau đây hoạt động trên hầu hết các vỏ giống như bourne:

  1. Nhấn Tabhai lần.
  2. Sử dụng findđể tìm tất cả các tệp thực thi:

    find / -perm +x
    
  3. Liệt kê tất cả các tệp trong thư mục nhị phân (có thể không đầy đủ):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    

1

Mở một cửa sổ thiết bị đầu cuối (thiết bị đầu cuối Gnome là OK, cũng là một xTerm được cấu hình).
Lựa chọn của bạn là:

  • Bằng cách nhấn TABphím ("-> <-") hai lần, bạn sẽ hoàn thành bất kỳ lệnh nào trong bảng điều khiển và nếu dòng trống, bạn sẽ nhận được số và tên của tất cả các lệnh có sẵn . Xin lưu ý rằng nó có thể cần một chút thời gian và có thể liệt kê các tiện ích bán hành chính. LƯU Ý: đây không phải là một tiêu chuẩn, đối với cách "vỏ chéo", hãy xem các tùy chọn khác.

  • Sử dụng man -k NAMEđể tìm kiếm một lệnh (hoặc một phần của nó) và man COMMANDđể có được hướng dẫn cho lệnh đó. Không phải lệnh al có hướng dẫn sử dụng hệ thống; đọc người đàn ông trước khi sử dụng bất kỳ tiện ích hành chính luôn luôn là một ý tưởng tốt; hãy tin tôi

  • Sử dụng Midnight Commander ( mc) để có GUI giao diện điều khiển (lời nguyền) đẹp để quản lý hệ thống và hệ thống tệp. Bạn có thể phải cài đặt nó từ trình quản lý gói của bạn. Đừng lo lắng; Nó là phần mềm an toàn và cực kỳ phổ biến.
    LƯU Ý: Nó được tạo ra khi bạn có sự nhầm lẫn hoặc khó khăn trong việc sử dụng hệ thống tệp.

  • Sử dụng ls /bin | moređể biết tất cả các thực thi hành chính ngoại lai ; ls /sbin | morecho thực thi hành chính phổ biến .

  • Sử dụng ls /usr/sbin | moređể biết tất cả các thực thi người dùng ; ls /usr/sbin | moresẽ đưa ra một danh sách rất lớn các tệp thực thi và thư viện người dùng .
    GHI CHÚ: Nếu đầu ra từ morevượt quá một trang (có màn hình), bạn sẽ phải cuộn py nhấn "Page Up" và "Page Down" hoặc phím cách.
    Bạn có thể sử dụng COMMAND | grep TEXTđể lọc đầu ra.

Nếu bạn có thêm câu hỏi, hãy bình luận ở đây và đừng quên đánh dấu vào bên cạnh câu trả lời nếu tôi giúp bạn.
Có một kinh nghiệm tốt đẹp.


Thông thường, hầu hết các tệp thực thi đều nằm trong /usr/binđó bạn chưa đề cập ở đây. Ngoài ra /sbin, có chứa các tệp thực thi thường được sử dụng cho quản trị hệ thống, chẳng hạn như usermodifconfig. Và nhiều hệ thống có các thư mục nhị phân khác, như /usr/games/usr/local/bin. Xem tiêu chuẩn phân cấp hệ thống tập tinman 7 hier. Bạn có thể muốn mở rộng điều này để đề cập đến các thư mục quan trọng cho các tệp thực thi bên cạnh /bin/usr/sbin.
Eliah Kagan

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.