ฉันต้องการทราบว่ามีคำสั่งใด ๆ หรือวิธีอื่นใดที่ฉันสามารถตรวจสอบประวัติคำสั่งของฉันเฉพาะในเซสชันปัจจุบัน
ฉันต้องการทราบว่ามีคำสั่งใด ๆ หรือวิธีอื่นใดที่ฉันสามารถตรวจสอบประวัติคำสั่งของฉันเฉพาะในเซสชันปัจจุบัน
คำตอบ:
history
สร้างขึ้นในbash
ช่วยให้ระบุชื่อไฟล์เมื่อใช้กับ-anrw
ธงและ-a
คำอธิบายธงจากhelp history
รัฐ:
ต่อท้ายบรรทัดประวัติจากเซสชันนี้ไปยังไฟล์ประวัติ
ดังนั้นเราสามารถทำ:
~$ history -a this_session.history
~$ cat ./this_session.history
history mysession.history
cat mysession.history
clear
history -a this_session.history
สำหรับเร็กคอร์ด-w
(ประวัติการเขียนไปยังไฟล์ opion) เขียนประวัติทั้งหมดไปยังไฟล์ที่ระบุดังนั้น-a
(ต่อท้าย) ที่นี่จึงเป็นตัวเลือกที่ต้องการ
ยังมีวิธีอื่น ๆ โดยเฉพาะอย่างยิ่งksh
ไม่ได้มี-a
สถานะเป็นbash
ไม่ แต่สิ่งที่ksh
และmksh
จะมีเป็นHISTFILE
ตัวแปรสภาพแวดล้อม (และbash
มีที่มากเกินไปเพราะbash
รวมจำนวนมากksh
คุณสมบัติ); ยังmksh
ไงก็ตามตัวแปรตามค่าเริ่มต้นไม่ได้ถูกตั้งค่าไว้ (อย่างน้อยใน Ubuntu ไม่ได้ตั้งค่าไว้) ดังนั้นสำหรับการส่งออกเซสชั่นปัจจุบันไปยังไฟล์อื่น ๆ เราเรียกว่าHISTFILE
prepended to command ซึ่งในไวยากรณ์ของเชลล์หมายถึงการรันคำสั่งด้วยตัวแปรสภาพแวดล้อมเพิ่มเติมที่คุณระบุ ชอบมาก
bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$
bash-4.4$ cat ./mykshfile.hist
�echo 'Hello'
echo 'World'
สิ่งที่คุณยังสามารถดูจากนี้คือksh
ประวัติศาสตร์และเปลือกหอยที่เกี่ยวข้องกับการส่งออกที่มีตัวอักษรพิเศษแทนข้อความล้วนเป็นสิ่งที่bash
ไม่ ksh
ดังนั้นคุณอาจต้องการที่จะเปิดแฟ้มที่มี
เท่าที่POSIX /bin/sh
เชลล์บน Ubuntuซึ่งเป็น Debian Almquist Shell หรือ Dash มีอยู่แล้วfc
ในตัว อย่างไรก็ตามบน Ubuntu รีบรวบรวมโดยไม่ต้อง lib แก้ไขซึ่งเป็นทางเลือกที่ใส่ใจโดยนักพัฒนาอูบุนตูเพื่อเหตุผลด้านประสิทธิภาพดังนั้นfc
และโหมดอื่น ๆ ที่จำเป็นต้องมีการแก้ไขบรรทัด ไม่ทำงานออกจากกล่อง (ยกเว้นกรณีที่คอมไพล์dash
ตัวเองและติดตั้งlib-edit
)
วิธีที่เป็นกลางของเชลล์คือการบันทึกเซสชันของคุณด้วยเครื่องมือที่มีอยู่ หรือเขียนฟังก์ชันของคุณเองเพื่อบันทึกตามคำสั่ง