เลือกคำสั่ง - ประวัติใน terminal?


9

ภายในเทอร์มินัลเมื่อคุณกดแป้นพิมพ์ของคุณคุณจะได้เห็นคำสั่งที่ผ่านมาที่คุณได้สั่งไว้ก่อนหน้านี้ตามลำดับ ฉันสงสัยว่ามีวิธีการดูเฉพาะคำสั่งในอดีตที่เริ่มต้นด้วย - เช่น "ls -l" ด้วยวิธีนี้หากรายการคำสั่งคือ:

  1. ls -l -a
  2. CMake
  3. cd ~ / Desktop
  4. CMake

วิธีการเพียงแค่เขียน "ls" และแท็บหรือการรวมกันของคีย์ - สโตรกจำเป็นต้องปรากฏขึ้นคำสั่งที่ผ่านมาให้ในสถานีเริ่มต้นด้วย "ls"

ขอบคุณ

คำตอบ:


14

มันจะไม่แสดงสิ่งต่าง ๆ ที่เริ่มต้นด้วยlsแต่คุณสามารถCtrl-R lsทำการค้นหาย้อนหลังผ่านประวัติ ทำซ้ำCtrl-Rเพื่อค้นหาคู่ต่อไป


ขอบคุณสำหรับCTRL+Rคำสั่งทางลัด
Kleber S.

8

บางครั้งมันมีประโยชน์ที่จะมีสิ่งนี้ ...

ตัวอย่าง

การเชื่อมต่อกับเครื่องอื่นโดยใช้ ssh:

เริ่มพิมพ์

ssh

ใช้PgUpคีย์และ ssh ของคุณจะจบลงด้วยการใช้งานครั้งล่าสุดของคุณ ... กดPgUpอีกครั้งและมันจะช่วยให้คุณต่อไปและอื่น ๆ ชอบมัน?

คุณสามารถใช้สิ่งนี้:

แก้ไข. bashrc ของคุณ ( vi /home/<yourfolder>/.bashrc) และเพิ่มสิ่งนี้:

$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

สิ่งนี้จะเพิ่มเฉพาะในเทอร์มินัลผู้ใช้ของคุณ คุณจะต้องแก้ไขรากเดียวกันเพื่อให้เหมือนกัน: คุณสามารถทำตามบทช่วยสอนนี้จากวิกิไม่มีวิธีที่คุณสามารถทำผิดได้อีกทั้งยังมีสิ่งพิเศษมากมายเพื่อปรับปรุงประสบการณ์การใช้งานเทอร์มินัลของคุณ ...


คุณสามารถผูกมันไว้กับปุ่มลูกศรขึ้น / ลงbind '"\e[A": history-search-backward'; bind '"\e[B": history-search-forward'เพื่อทำให้ใช้งานง่ายยิ่งขึ้น
ฟริตซ์

5

เพื่อดูประวัติคำสั่งใช้สามารถใช้:

$ history

หากคุณต้องการที่จะเห็นคำสั่งที่ผ่านมาเริ่มต้นด้วยเช่น "ls" ในความคิดของฉันฉันใช้:

$ history | grep ls

แน่นอนว่าเอาต์พุตจะมีบางสิ่งไม่ใช่คำสั่ง แต่มีอักขระ "ls" แต่ฉันคิดว่ามันสามารถช่วยได้


2

!<whatever-command>วิธีที่ง่ายที่สุดเพื่อให้บรรลุสิ่งที่คุณต้องการคือการ ยกตัวอย่างเช่นการดำเนินการที่คุณดำเนินการที่ผ่านมาที่คุณสามารถทำได้ls !lsดูบันทึกต่อไปนี้เพื่อดูว่านี่คือสิ่งที่คุณต้องการ:

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
คำสั่งนี้รันคำสั่งโดยไม่แสดงคำสั่งมีทางเลือกอื่นที่แสดงคำสั่ง OP หรือไม่
Bruno Pereira

ใน zsh คุณสามารถsetopt HIST_VERIFYและคำสั่งจะถูกใส่ในบัฟเฟอร์ของคุณซึ่งคุณสามารถกด Enter เพื่อยอมรับมันหรือแก้ไขมัน
poolie

1

ประวัติตั้งอยู่ที่ ~ / .bash_history นอกจากนี้สำหรับเคล็ดลับการค้นหาประวัติทุบตีของคุณกด ctrl + r แล้วพิมพ์จุดเริ่มต้นของคำสั่งที่คุณกำลังมองหา

และhttp://ubuntuforums.org/showthread.php?t=204382สำหรับนามแฝงและเทคนิคบรรทัดคำสั่งที่มีประโยชน์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.