Lịch sử lệnh chọn lọc trong thiết bị đầu cuối?


9

Trong một thiết bị đầu cuối, khi bạn nhấn lên bàn phím, bạn sẽ thấy các lệnh trong quá khứ bạn đã đưa cho nó trước đó theo thứ tự. Tôi đã tự hỏi nếu có một cách để chỉ nhìn thấy các lệnh trong quá khứ bắt đầu bằng -for dụ, "ls -l". Theo cách đó, nếu danh sách các lệnh là:

  1. ls -l -a
  2. cmake
  3. cd ~ / Máy tính để bàn
  4. cmake

Một cách để chỉ viết "ls" và tab hoặc bất kỳ sự kết hợp nào của các nét phím cần thiết để bật lên lệnh quá khứ đưa vào thiết bị đầu cuối bắt đầu bằng "ls"

Cảm ơn,

Câu trả lời:


14

Nó sẽ không hiển thị mọi thứ chỉ bắt đầu với ls, nhưng bạn có thể làm Ctrl-R lsđể thực hiện tìm kiếm ngược trong lịch sử. Lặp lại Ctrl-Rđể tìm trận đấu tiếp theo.


Cảm ơn bạn cho CTRL+Rlệnh tắt.
Kleber S.

8

Đôi khi thật hữu ích khi có ...

Thí dụ

Kết nối với máy khác bằng ssh:

bắt đầu gõ

ssh

Sử dụng PgUpkhóa và ssh của bạn kết thúc với lần sử dụng cuối cùng của bạn ... nhấn PgUplại và nó sẽ cung cấp cho bạn cái tiếp theo, v.v. Thích nó không?

Bạn có thể sử dụng điều này:

Chỉnh sửa .bashrc ( vi /home/<yourfolder>/.bashrc) của bạn và thêm phần này:

$if Bash
    # Search history back and forward using page-up and page-down
    "\e[5~": history-search-backward
    "\e[6~": history-search-forward

    # Completion
    set match-hidden-files off
    set page-completions off
    set completion-query-items 350
    set show-all-if-ambiguous on

$endif

Điều này chỉ thêm vào thiết bị đầu cuối của người dùng của bạn chức năng này. Bạn cũng sẽ phải chỉnh sửa một trong những gốc để có cùng: bạn có thể làm theo hướng dẫn này từ wiki không có cách nào bạn có thể làm sai, ngoài ra còn có rất nhiều thứ để cải thiện trải nghiệm thiết bị đầu cuối của bạn ...


Bạn thậm chí có thể liên kết nó với các phím mũi tên Lên / Xuống:, bind '"\e[A": history-search-backward'; bind '"\e[B": history-search-forward'làm cho nó thậm chí còn trực quan hơn.
Fritz

5

Để xem lịch sử lệnh, sử dụng có thể sử dụng:

$ history

Nếu bạn chỉ muốn xem lệnh quá khứ bắt đầu bằng "ls", theo ý kiến ​​của tôi, tôi sử dụng:

$ history | grep ls

Chắc chắn đầu ra sẽ chứa một cái gì đó không phải là một lệnh nhưng chứa các ký tự "ls", nhưng tôi nghĩ nó có thể giúp ích.


2

Cách dễ nhất để đạt được những gì bạn muốn là bằng cách !<whatever-command>. Ví dụ để thực hiện cái lsmà bạn thực hiện cuối cùng, bạn có thể làm một !ls. Hãy xem nhật ký sau để xem đây có phải là thứ bạn cần không:

nits@nits-excalibur:~$ ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI
nits@nits-excalibur:~$ cd Documents/
nits@nits-excalibur:~/Documents$ top
nits@nits-excalibur:~/Documents$ !ls
ls /mnt/Storage_1/Music/
Music I  Music II  Music III  Music IV  Music V  Music_VI

1
Điều này chạy lệnh mà không hiển thị nó, có một sự thay thế hiển thị nó như OP yêu cầu không?
Bruno Pereira

Trong zsh, bạn có thể setopt HIST_VERIFYvà lệnh sẽ được đặt trong bộ đệm đầu vào của bạn, nơi bạn có thể nhấn enter để chấp nhận nó hoặc chỉnh sửa nó.
poolie

1

Lịch sử được định vị ~ / .bash_history Ngoài ra, để có một mẹo gọn gàng để tìm kiếm lịch sử bash của bạn, hãy nhấn ctrl + r sau đó nhập bắt đầu lệnh bạn đang tìm kiếm.

http://ubuntuforums.org/showthread.php?t=204382 cho các bí danh và thủ thuật dòng lệnh tiện dụng

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.