ใช้ลูกศรขึ้นเพื่อเรียกใช้คำสั่งก่อนหน้า


11

ฉันต้องตั้งค่าใดเพื่อใช้ลูกศรขึ้นเพื่อเรียกใช้คำสั่งก่อนหน้า สำหรับ Mac ฉันสามารถใช้ลูกศรขึ้นเพื่อรันคำสั่งที่ฉันเพิ่งเรียกใช้ แต่ดูเหมือนจะไม่ทำงานกับ bash shell ของฉัน

ฉันใช้ 8.04 (ฉันไม่สามารถใช้การกระจายใหม่ล่าสุดได้เนื่องจากปัญหาคอมไพเลอร์บางรุ่น)

ADDED

ฉันไม่ได้เปลี่ยนแปลงอะไรเลยเนื่องจากเป็นการติดตั้งใหม่กับ VMWare Fusion บน Mac


3
ในการกำหนดค่าเริ่มต้นลูกศรขึ้นทำงานได้อย่างสมบูรณ์: คุณได้แก้ไขบางสิ่งบางอย่าง
enzotib

ตามที่ @enzotib บอกว่าการทุบตีจะทำสิ่งนี้เป็นค่าเริ่มต้น แต่บางคนเช่น sh จะไม่ได้!
Rory Alsop

คำตอบ:


10

ตรวจสอบให้แน่ใจว่าเปิดใช้งานประวัติของคุณแล้ว คุณสามารถตรวจสอบสถานะปัจจุบันโดยเรียกใช้:

set -o

ผลลัพธ์ควรมี (จดบันทึกhistory onบรรทัด):

histexpand      on
history         on
ignoreeof       off

set -o historyถ้าไม่เปิดใช้งานคุณจำเป็นต้องเรียกใช้ ในการเปลี่ยนแปลงนี้แบบถาวรคุณต้องผนวกเข้ากับ~/.bashrc:

set -o history

หากคุณต้องการเรียกใช้คำสั่งก่อนหน้าคุณสามารถเรียกใช้คำสั่งถัดไปได้เช่นกัน:

!!

จากหน้าคู่มือ Bash :

Event Designators
   An event designator is a reference to a command line entry in the history list.

   !      Start a history substitution, except when followed by a blank, newline,
          carriage return, = or ( (when the extglob shell option  is
          enabled using the shopt builtin).
   !n     Refer to command line n.
   !-n    Refer to the current command line minus n.
   !!     Refer to the previous command.  This is a synonym for `!-1'.
   !string
          Refer to the most recent command starting with string.
   !?string[?]
          Refer to the most recent command containing string.  The trailing ? 
          may be omitted if string is followed immediately by a newline.
   ^string1^string2^
          Quick  substitution.  Repeat the last command, replacing string1 with
          string2.  Equivalent to ``!!:s/string1/string2/'' (see Modifiers below).
   !#     The entire command line typed so far.

หากคุณกำลังใช้ Bash คุณสามารถใช้ทางลัดเริ่มต้นสำหรับการสำรวจประวัติได้เช่นกัน:

  • Ctrl+ P: คำสั่งก่อนหน้า
  • Ctrl+ N: คำสั่งถัดไป

    คำสั่งสำหรับการจัดการประวัติก่อนหน้าประวัติ (Cp) ดึงคำสั่งก่อนหน้าจากรายการประวัติย้ายกลับในรายการ next-history (Cn) ดึงคำสั่งถัดไปจากรายการประวัติเคลื่อนไปข้างหน้าในรายการ


1
ฉันตรวจสอบว่าการตั้งค่าถูกต้อง แต่ปุ่มลูกศรขึ้นไม่ทำงาน อย่างไรก็ตามฉันสามารถใช้ Ctrl-P / N เพื่อให้ได้ผลลัพธ์เดียวกัน ขอบคุณ
prosseek

@prosseek ในกรณีนี้คุณเปลี่ยน/etc/inputrcหรือ~/.inputrc? นอกจากนี้ลูกศรขึ้นและลงของ escape sequence ใดที่ผลิตใน terminal ที่คุณใช้อยู่ ในการตรวจสอบเรียกใช้catจากนั้นในบรรทัดว่างให้กด uparrow และ downarrow แล้วกด Ctrl + C เพื่อออกจาก cat ^[[A^[[Bนี่มันผลิต
geirha

@geirha: ฉันไม่มีไฟล์ ~ / .inputrc และฉันไม่ได้เปลี่ยนแปลงอะไร / etc / inputrc และสำหรับลำดับการหลบหนีฉันไม่เห็นอะไรเลยบนหน้าจอ
prosseek

@peekeek จากนั้นดูเหมือนว่าปุ่มลูกศรไม่เคยไปถึงสถานีเลย บางทีอินเตอร์เฟส VMWare กำลังกรองพวกมันออกไป
geirha

14

ตรวจสอบให้แน่ใจว่าคุณใช้ bash จริงๆ gotcha ทั่วไปกำลังสร้างผู้ใช้ใหม่ด้วยuseraddแทนที่จะเป็นadduserหรือแอปพลิเคชันผู้ใช้และกลุ่ม (GUI) /bin/shกับอดีตชุดเปลือกเริ่มต้นคือ Run chsh( CH Ange ดวลจุดโทษ ell) /bin/bashเพื่อให้แน่ใจว่ามีการตั้งค่า


1

ใน terminal ป้อน:

gedit  ~/.inputrc

จากนั้นคัดลอกวางและบันทึก:

"\e[A": history-search-backward
"\e[B": history-search-forward
"\e[C": forward-char
"\e[D": backward-char

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

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