Với zsh
, bạn sẽ sử dụng một bí danh toàn cầu :
$ alias -g '^^=--help|grep --color -i'
$ ls ^^ size
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
1,048,576 bytes; see SIZE format below
-h, --human-readable with -l and/or -s, print human readable sizes
-s, --size print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
The SIZE argument is an integer and optional unit (example: 10K is 10*1024)
Với bash
, bạn có thể sử dụng mở rộng lịch sử , một trong những điều xảy ra đủ sớm trong phân tích cú pháp shell mà nó có thể hoạt động khi thay thế một đường ống:
Đánh dấu lịch sử bằng một văn bản bạn muốn thay thế và một ký tự đặc biệt mà bạn không thể sử dụng bằng cách khác (như £
ở đây xảy ra trên bàn phím của tôi):
$ --help $(: £)|grep
bash: --help: command not found
Usage: grep [OPTION]... PATTERN [FILE]...
Try 'grep --help' for more information.
Sau đó, sử dụng mở rộng lịch sử để truy xuất rằng:
$ ls !?£? size
ls --help $(: £)|grep size
--block-size=SIZE scale sizes by SIZE before printing them; e.g.,
'--block-size=M' prints sizes in units of
-h, --human-readable with -l and/or -s, print human readable sizes
-s, --size print the allocated size of each file, in blocks
-S sort by file size, largest first
--sort=WORD sort by WORD instead of name: none (-U), size (-S),
-T, --tabsize=COLS assume tab stops at each COLS instead of 8
Hoặc bạn có thể readline
mở rộng --help|grep
khi nhấn một số phím hoặc chuỗi phím. Để chỉ áp dụng cho bash
(và không áp dụng cho các ứng dụng khác như gdb
sử dụng readline), bạn có thể sử dụng lệnh bind
bash dựng sẵn, đó là bash
API để định cấu hình readline
, ví dụ như trong ~/.bashrc
:
bind '"^^": "--help|grep "'
Hoặc thêm vào ~/.inputrc
(tệp cấu hình của readline):
$if Bash
"^^": "--help|grep "
$endif
(có vỏ khác như rc
hay es
rằng việc sử dụng readline và nơi làm điều đó ràng buộc có thể có ý nghĩa nhưng AFAICT, họ không thiết lập các rl_readline_name
biến trước khi gọi readline
, do đó bạn sẽ không thể thêm một số $if
báo cáo cho họ (họ sẽ hiển thị như other
giống như tất cả các ứng dụng sử dụng readline mà không cho biết tên ứng dụng của họ)).
Lưu ý rằng bạn cần nhập cái thứ hai ^
trong vòng nửa giây (theo mặc định) sau cái thứ nhất để thay thế xảy ra.
qh () { type -all "$1" ; { "$1" --help || man "$1" ;} | egrep -i -- "$2" ;}
# do đó bạn có thể: kích thước qh ls, qh ls "cái gì đó | cái khác", v.v. (tùy chọn)type -all "$1"
cũng thêm thông tin về $ 1: thông báo nếu bạn sẽ khởi chạy bí danh, hàm, a lệnh, v.v. Và nó đưa ra thông tin từ người đàn ông "$ 1" nếu lệnh $ 1 không có tùy chọn "- trợ giúp" (điều này đôi khi xảy ra)