Khi chạy các lệnh, đôi khi có thể bạn cần chạy một lệnh với đối số từ lệnh cuối cùng. Làm thế nào bạn có thể làm điều này?
Tất nhiên, ngoại trừ việc sử dụng các phím mũi tên và Delphím: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Khi chạy các lệnh, đôi khi có thể bạn cần chạy một lệnh với đối số từ lệnh cuối cùng. Làm thế nào bạn có thể làm điều này?
Tất nhiên, ngoại trừ việc sử dụng các phím mũi tên và Delphím: ↑←←←... ←→→DelDelDel... Del<new_command>
.
Câu trả lời:
Ví dụ: nếu bạn chạy lệnh này:
mkdir long_path_here/new_dir
rất có thể bạn muốn đi trong thư mục được tạo gần đây. Bạn có thể làm điều này bằng cách sử dụng "phím tắt" tiếp theo:
cd
Esc.- gõ cd
và sau khi nhấn Esctheo sau .(không cùng lúc). Nếu lệnh trước không có đối số, bạn sẽ nhận được lệnh trước đó.cd !*
- trong trường hợp này, bạn sẽ nhận được tất cả các đối số từ lệnh ưu tiên. Nếu lệnh trước không có đối số, bạn sẽ không nhận được gì.cd
Alt+ .- gõ cd
và sau khi nhấn Altvà .(cùng một lúc). Trong thực tế, sử dụng cách này và tiếp tục nhấn .(không cần phát hành Alt), bạn sẽ nhận được đối số cuối cùng cho mọi lệnh từ lịch sử. Nếu một lệnh không có đối số, bạn sẽ nhận được lệnh đó.Nói chung: <command>
Esc.hoặc <command> !*
hoặc <command>
Alt+ ..
Có một vài phím tắt nếu bạn muốn tất cả các đối số từ lệnh trước đó, hoặc chỉ đối số cuối cùng.
<command> !*
<command> !$
Ví dụ:
ls foo/ bar/
ls !* # Gives the results of ls foo/ bar/
ls foo/ bar/
ls !$ # Gives the results of ls bar/
Nếu bạn muốn một đối số từ danh sách các đối số từ lệnh trước đó, bạn có thể sử dụng <command> !!:<argNumber>
Thí dụ:
ls foo/ bar/ baz/
ls !!:2 # Gives the results of ls bar/
ls foo/ bar/ baz/
ls !!:1 # Gives the results of ls foo/
!
trong phiên bản arg duy nhất, vd !:2
. Giả sử bash mặc định.
!^
thay thế !:1
.
Được đề cập !*
và !$
là một điều tốt, nhưng khi bạn cần làm một chút chỉnh sửa các phím tắt sẵn sàng giúp đỡ!
Chẳng hạn, thay vì vô số ↑←←←... ←→→DelDelDel... Delbạn chỉ có thể nhấn ↑ Ctrl-a(nhảy đến đầu dòng) Alt+d(xóa đến cuối từ)
Để biết thêm thông tin man readline
và tìm kiếm Default key bindings
.
Để lấy n
đối số th từ lệnh trước đó của bạn, nhập Alt+ n
+ Alt_. Ví dụ: sau:
$ echo 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
gõ echo
theo sau Alt2Alt_sẽ cung cấp cho bạn điều này tại dấu nhắc tiếp theo:
$ echo 2
"Ảnh chụp màn hình" sau khi bạn nhấn Alt2là:
(arg: 2) echo
Bạn có thể lặp lại Alt_nhiều lần để có được n
đối số thứ của các lệnh trước đó liên tiếp.
Một ý tưởng hữu ích khác là xác định bí danh r="fc -s"
. Sau đó, bạn có thể thực hiện thay thế lệnh:
$ echo 1
1
$ r echo=history
history 1
27755 history 1