ฉันต้องการทราบว่ามีคำสั่งใด ๆ หรือวิธีอื่นใดที่ฉันสามารถตรวจสอบประวัติคำสั่งของฉันเฉพาะในเซสชันปัจจุบัน
ฉันต้องการทราบว่ามีคำสั่งใด ๆ หรือวิธีอื่นใดที่ฉันสามารถตรวจสอบประวัติคำสั่งของฉันเฉพาะในเซสชันปัจจุบัน
คำตอบ:
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 ไม่ได้ตั้งค่าไว้) ดังนั้นสำหรับการส่งออกเซสชั่นปัจจุบันไปยังไฟล์อื่น ๆ เราเรียกว่าHISTFILEprepended 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)
วิธีที่เป็นกลางของเชลล์คือการบันทึกเซสชันของคุณด้วยเครื่องมือที่มีอยู่ หรือเขียนฟังก์ชันของคุณเองเพื่อบันทึกตามคำสั่ง