Android

คำสั่งประวัติใน linux (ประวัติทุบตี)

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

Faith Evans feat. Stevie J – "A Minute" [Official Music Video]

สารบัญ:

Anonim

เราจะพูดคุยเกี่ยวกับคำสั่ง history ซึ่งช่วยให้คุณดูรายการคำสั่งที่เรียกใช้ก่อนหน้านี้ค้นหารายการและจัดการไฟล์ประวัติ

การใช้คำสั่งประวัติและการขยายประวัติ

history เป็นเชลล์บิวด์อินและพฤติกรรมของมันอาจแตกต่างจากเชลล์หนึ่งไปอีกเล็กน้อย เราจะกล่าวถึง history รุ่น Bash ในตัว

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

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

การพิมพ์ !n เรียกใช้งานคำสั่ง n-th จากรายการประวัติและ !-n คำสั่ง n บรรทัดหลัง ในตัวอย่างต่อไปนี้เรากำลังดำเนินการคำสั่งที่บรรทัด 467 :

!467

อีกวิธีในการรันคำสั่งคือใช้ !word word หมายถึงคำสั่งล่าสุดที่เริ่มต้นด้วย 'word'

โดยทั่วไป history จะแสดงเอาต์พุตหลายบรรทัดที่ไม่พอดีกับหน้าจอ ในการดูผลลัพธ์ครั้งละหนึ่งหน้าให้วางลงในโปรแกรมเพจเจอร์เช่นคำสั่ง more หรือ less :

history | less

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

history -5

ใช้ปุ่มลูกศร up และ down เพื่อสำรวจรายการในรายการ เมื่อคำสั่งที่คุณค้นหาแสดงขึ้นให้กด Enter เพื่อดำเนินการ

ประเภท !! เพื่อรันคำสั่งก่อนหน้า:

!!

สิ่งนี้มีประโยชน์โดยเฉพาะอย่างยิ่งเมื่อคุณลืมที่จะใช้คำสั่งด้วย sudo และแทนที่จะพิมพ์คำสั่งอีกครั้งคุณสามารถพิมพ์:

sudo !!

!-1 เหมือนกันกับ !! และดำเนินการคำสั่งสุดท้ายจากรายการประวัติ, !-2 วินาทีถึงครั้งสุดท้ายและอื่น ๆ

การขยายตัว ^word1^word2^ ให้คุณเรียกใช้คำสั่งสุดท้ายอีกครั้งแทนที่“ word1” ด้วย“ word2” หากคุณพิมพ์ sduo command โดยไม่ตั้งใจแทน sduo command sudo command คุณสามารถทำซ้ำคำสั่งโดยใช้คำที่ถูกต้องด้วย:

^sduo^sudo^

ใช้คำสั่ง grep เพื่อกรองเอาต์พุต ตัวอย่างเช่นหากต้องการดูคำสั่งทั้งหมดรวมถึง“ nano” คุณจะต้องเรียกใช้:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

ตอนนี้ถ้าคุณต้องการเรียกใช้คำสั่ง nano setup.py เพียงพิมพ์:

!356

อีกวิธีในการค้นหาประวัติคำสั่งคือการกด Ctrl-R พรอมต์จะเปลี่ยนเป็นรายการต่อไปนี้และคุณสามารถเริ่มค้นหาคำสั่งที่เรียกใช้ก่อนหน้านี้

(reverse-i-search)`':

เชลล์จะแสดงบรรทัดที่ตรงกัน หากต้องการย้ายไปยังข้อเสนอแนะที่ตรงกันถัดไปให้กด Ctrl-R อีกครั้ง

ตรวจสอบคู่มือ Bash สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการขยายประวัติตัวดัดแปลงและตัวออกแบบ

บันทึกรายการประวัติ

ตามค่าเริ่มต้นเมื่อเริ่มเซสชันใหม่ Bash จะอ่านรายการประวัติจากไฟล์. .bash_history รายการคำสั่งที่ดำเนินการในเซสชันปัจจุบันจะถูกเก็บไว้ในหน่วยความจำและบันทึกลงในไฟล์เมื่อปิดเซสชัน

อ็อพชัน -a อนุญาตให้คุณบันทึกรายการประวัติเซสชันปัจจุบันลงในไฟล์ .bash_history :

history -a

อ็อพชัน -w เขียนรายการประวัติแบบสมบูรณ์ไปยังไฟล์ประวัติ

history -w

การล้างประวัติ

คำสั่ง history อนุญาตให้คุณล้างรายการประวัติทั้งหมดหรือลบบางส่วนออก

หากต้องการล้างรายการประวัติให้ใช้ตัวเลือก -c :

history -c

ในการลบบรรทัดหรือบรรทัดที่เฉพาะเจาะจงระหว่างตำแหน่งเริ่มต้นและสิ้นสุดจากรายการประวัติให้ใช้ตัวเลือก -d

ตัวอย่างเช่นหากต้องการลบบรรทัดระหว่าง 365 และ 375 (รวมถึงบรรทัดเหล่านั้น) คุณจะต้องพิมพ์:

history -d 365 375

เมื่อใช้จำนวนเต็มลบเส้นจะถูกนับกลับจากส่วนท้ายของรายการประวัติ

คำสั่งด้านบนล้างรายการประวัติซึ่งเก็บไว้ในหน่วยความจำ แต่ไม่ลบรายการออกจากไฟล์ .bash_history บนดิสก์ ในการล้างไฟล์คุณต้องเขียนรายการประวัติลงในไฟล์:

history -c history -w

การปรับเปลี่ยนพฤติกรรมประวัติศาสตร์

พฤติกรรมของประวัติทุบตีสามารถกำหนดได้โดยใช้ตัวแปรสภาพแวดล้อมที่แตกต่างกันหลายอย่าง เมื่อแก้ไขพฤติกรรมประวัติให้ตั้งค่าตัวแปรใน ~/.bashrc หรือไฟล์การกำหนดค่าอื่น ๆ ที่โหลดเมื่อผู้ใช้ลงชื่อเข้าใช้

โดยค่าเริ่มต้น Bash เก็บ 500 บรรทัดในรายการประวัติคำสั่ง ตัวแปร HISTSIZE อนุญาตให้คุณเปลี่ยนค่านี้ หากต้องการตั้งค่าเป็น 10, 000 ให้เพิ่มบรรทัดต่อไปนี้ใน .bashrc ของคุณ:

HISTSIZE=10000

ตัวแปร HISTCONTROL ยอมรับรายการค่าที่คั่นด้วยโคลอนซึ่งกำหนดวิธีบันทึกคำสั่งในรายการประวัติ:

  • ignorespace - คำสั่งที่ขึ้นต้นด้วยช่องว่างจะไม่ถูกบันทึกในรายการประวัติ ignoredups - คำสั่งที่ซ้ำกันจะไม่ถูกบันทึก ignoreboth - เป็นชวเลขรวมถึงการไม่ ignorespace และการ ignoredups

HISTCONTROL=ignoreboth

เมื่อตั้งค่าตัวแปร HISTTIMEFORMAT แล้ว Bash จะเพิ่มการประทับเวลาของการดำเนินการสำหรับคำสั่งในแต่ละบรรทัด

ตัวอย่างเช่นหากคุณตั้งค่า:

HISTTIMEFORMAT="%F %T: "

ประวัติจะแสดงในรูปแบบต่อไปนี้:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

ข้อสรุป

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

อาคารประวัติศาสตร์