Trong Matlab, có một tính năng rất hay mà tôi thích. Giả sử tôi đã gõ lệnh very-long-command
và sau đó một vài lệnh sau đó. Sau đó, nếu tôi cần lệnh dài một lần nữa, tôi chỉ cần gõ very
và nhấn phím mũi tên lên, lệnh dài của tôi sẽ xuất hiện. Nó tìm thấy lệnh cuối cùng bắt đầu bằng very
. Tôi không thể làm tương tự trong dòng lệnh unix, khi tôi cố gắng làm điều đó, nó bỏ qua bất cứ điều gì tôi gõ, và quay trở lại các lệnh cuối cùng trong thứ tự thời gian. Có cách nào để làm điều đó?Truy xuất lịch sử lệnh giống như Matlab trong dòng lệnh unix
Trả lời
Trong bash, đánh ctrl - r sẽ cho phép bạn thực hiện tìm kiếm lịch sử:
$ echo 'something very long'
something very long
$ # blah
$ # many commands later...
(reverse-i-search)`ec': echo 'something very long'
Trong đoạn trên, tôi nhấn ctrl - r trên dòng tiếp theo sau khi # many commands later...
và sau đó nhập ec đã đưa tôi trở lại lệnh echo. Tại thời điểm đó nhấn Nhập sẽ thực hiện lệnh.
Cảm ơn! Tôi có một câu hỏi nhanh khác, nếu có hai lệnh dài được sử dụng gần đây bắt đầu bằng echo, làm thế nào tôi có thể chuyển đổi giữa hai lệnh với phương thức này? – AgCl
@AgCl: [Bài đăng trên blog này] (http://ronny.haryan.to/archives/2005/03/14/tip-history-search-in-bash/) giải thích cách thiết lập 'history-search-forward 'và' history-search-backward' để điều hướng qua lịch sử. –
Liên kết trên đã chết –
Bạn có thể làm điều tương tự bằng cách sử dụng "!". Ví dụ:
$ echo "Hello"
Hello
$ !echo
echo "Hello"
Hello
Tuy nhiên, thường là một ý tưởng tồi nếu làm điều gì đó hủy diệt? Nếu bạn mong đợi bạn sẽ sử dụng lại một cái gì đó, sau đó tôi đề nghị bạn tạo một kịch bản shell và lưu nó đi đâu đó (bất cứ khi nào tôi có kế hoạch tái sử dụng một cái gì đó, tôi tạo một kịch bản trong ~/.local/bin).
Cảm ơn, nó gần như gần gũi với Matlab, nhưng tôi không thể nhìn thấy toàn bộ lệnh trước khi nhấn enter. Tôi sẽ upvote câu trả lời khi tôi có đủ đại diện. – AgCl
! Echo: p sẽ hiển thị lệnh (bash anyway) và bạn có thể chọn thực thi nó hay không. –
@Ron, tuyệt. Cảm ơn. –
Trong bash, chức năng này được cung cấp bởi các lệnh lịch sử tìm kiếm chuyển tiếp và lịch sử tìm kiếm ngược, theo mặc định không bị ràng buộc với bất kỳ phím nào (xem here). Nếu bạn chạy
bind '"\e[A":history-search-backward'
bind '"\e[B":history-search-forward'
nó sẽ tạo mũi tên lên và mũi tên xuống tìm kiếm lùi lại và chuyển tiếp lịch sử cho chuỗi ký tự giữa đầu dòng hiện tại và điểm. Xem thêm this related Stack Overflow question.
- 1. Truy xuất lịch sử dòng lệnh
- 2. Lệnh xuất UNIX UNIX
- 3. dòng lệnh trong python với lịch sử
- 4. Lịch sử dòng lệnh Python liên tục
- 5. Tránh dấu thời gian lịch sử lệnh MATLAB
- 6. Unix lịch sử dòng lệnh thay^foo^bar (cho nhiều thay thế)
- 7. GUID dòng lệnh cho Unix và Windows?
- 8. Làm thế nào: kịch bản MATLAB có thể được lập luận từ Unix dòng lệnh
- 9. lệnh MATLAB (từ bash/dòng lệnh) trên phiên đã chạy
- 10. Hiểu lệnh xargs UNIX
- 11. Lệnh SQL để hiển thị lịch sử truy vấn
- 12. Lưu lịch sử lệnh trong pdb
- 13. Đặt màu nền của ô trong MATLAB bằng dòng lệnh?
- 14. Lệnh 'ls' hoạt động như thế nào trong Linux/Unix?
- 15. Lệnh Unix FIND trong Groovy
- 16. chạy tập lệnh r hoặc lệnh có trình diễn giải trong unix cho unix-layman
- 17. Lịch sử lệnh trong thông dịch viên trong các emacs
- 18. Có phải là một dòng trong một chương trình Java giống như một câu lệnh không?
- 19. xuất ra dòng lệnh gọi là subprocess?
- 20. Chuyển đổi từ thời gian Unix tại dòng lệnh
- 21. Xuất bản Azure Project từ dòng lệnh
- 22. lệnh Chain trong dòng lệnh PowerShell
- 23. Phân tích đối số dòng lệnh thanh lịch cho PyQt
- 24. Cách xuất truy vấn SQL sang TXT bằng cách sử dụng dòng lệnh
- 25. tìm và thay thế từ dòng lệnh unix
- 26. Lên lịch cronjob trên ssh với dòng lệnh
- 27. Giống như lưu trữ tất cả đối số dòng lệnh vào tập lệnh bash thành một biến duy nhất
- 28. Dòng lệnh - cách trích xuất tên tệp chỉ khi sử dụng vòng lặp lệnh
- 29. Phân tích lệnh dòng lệnh
- 30. Làm thế nào để chạy Matlab từ dòng lệnh?
Matlab có cài đặt mặc định tốt. Tôi luôn tự hỏi tại sao người Unix không thể cung cấp các thiết lập mặc định tốt cho những thứ này. – compie