it-swarm-vi.com

Hoàn thành dòng lệnh từ lịch sử lệnh

Vì vậy, tôi đã nhìn vào lịch sử và Ctrl+R, nhưng chúng không phải là những gì tôi nghĩ rằng tôi biết. Có cách nào để tôi có thể nhập vào đầu lệnh và chuyển qua các trận đấu trong lịch sử của mình bằng một số phím tắt bash không?

# mysq(some shortcut key)

Đưa cho tôi:

# mysqldump  --add-drop-table -e -q -n -C -u 
(some shortcut key)
#  mysql -u ben.dauphinee -p
89
Ben Dauphinee

Nhấn Ctrl+R sẽ mở tìm kiếm lịch sử ngược lại. Bây giờ bắt đầu gõ lệnh của bạn, điều này sẽ cho trận đấu đầu tiên. Bằng cách nhấn Ctrl+R một lần nữa (và một lần nữa) bạn có thể quay vòng qua lịch sử.

mysq(Ctrl+R)

Sẽ cho:

mysqldump  --add-drop-table -e -q -n -C -u 

Ctrl+R lần nữa:

mysql -u ben.dauphinee -p
93
wag

Để mở rộng những gì Gilles đã nói, tôi có phần sau trong .inputrc Để liên kết phím mũi tên lên/xuống với history-search-backwardhistory-search-forward:

# Key bindings, up/down arrow searches through history
"\e[A": history-search-backward
"\e[B": history-search-forward
"\eOA": history-search-backward
"\eOB": history-search-forward

Chỉ cần nhập một cái gì đó (tùy chọn), sau đó nhấn phím mũi tên lên/xuống để tìm kiếm trong lịch sử cho các lệnh bắt đầu bằng những gì bạn đã nhập.

Để thực hiện việc này trong .bashrc Thay vì .inputrc, Bạn có thể sử dụng:

bind '"\e[A": history-search-backward'
68
raychi

Bạn cũng có thể nhấn nút PAGEUP để tự động hoàn thành lệnh. Về cơ bản, nó tìm kiếm bash_history tập tin.

7
0aslam0

Bạn có thể sử dụng các lệnh readline history-search-backwardhistory-search-forward để điều hướng giữa các dòng lệnh bắt đầu bằng tiền tố bạn đã nhập. Cả hai lệnh này đều bị ràng buộc với các khóa trong cấu hình mặc định.

Zsh (zle) có các lệnh tương tự history-beginning-search-backwardhistory-beginning-search-forward, cũng không bị ràng buộc với các khóa theo mặc định. Cũng có history-search-backwardhistory-search-forward, sử dụng Word đầu tiên của lệnh hiện tại làm tiền tố để tìm kiếm bất kể vị trí con trỏ.

Nếu bạn muốn có một cái nhìn tổng quan về các lệnh rất giống nhau, bạn có thể lấy một danh sách với:

history|grep KEYSTRING

Sau đó sao chép và dán bằng nút giữa của chuột.

Rgds - Joe

4
joe_zeroh