อินสแตนซ์ของการทุบตีบางอย่างเปลี่ยนประวัติคำสั่งเมื่อคุณใช้ซ้ำและแก้ไขคำสั่งก่อนหน้า ฉันค้นหาและค้นหา แต่ไม่พบสิ่งใดที่บอกว่าจะป้องกันคำสั่งในประวัติจากการแก้ไขเมื่อพวกเขาถูกนำมาใช้ซ้ำและแก้ไขได้
มีคำถามเช่นนี้แต่ดูเหมือนว่าจะพูดถึงวิธีรับมือกับประวัติศาสตร์ที่ถูกแก้ไข ฉันเพิ่งเจออินสแตนซ์ของ bash ที่แก้ไขประวัติเมื่อคุณใช้คำสั่งซ้ำ - bash shell ก่อนหน้านี้ทั้งหมดที่ฉันเคยใช้มี (เท่าที่ฉันสังเกตเห็น) ได้รับการกำหนดค่าไม่ให้เปลี่ยนประวัติเมื่อคุณใช้ซ้ำ และแก้ไขคำสั่ง (บางทีฉันแค่ไม่ได้ให้ความสนใจอย่างถูกต้องกับประวัติเชลล์ของฉันในช่วง 15 ปีที่ผ่านมาหรือมากกว่านั้น ... )
ดังนั้นนั่นอาจเป็นคำถามที่ดีที่สุด: ฉันสามารถบอกทุบตีไม่เคยแก้ไขประวัติ - และถ้าเป็นเช่นนั้นได้อย่างไร
set revert-all-at-newline on
ในคำถามที่คุณเชื่อมโยงการแก้ปัญหาของคุณหรือไม่ คุณสามารถแสดงวิธีการทำให้เกิดปัญหาได้หรือไม่? โปรดทราบว่าคุณยังสามารถใช้zsh
สำหรับพฤติกรรมที่สอดคล้องกับสิ่งที่คุณต้องการมากขึ้น
history -p
เป็นสิ่งที่ฉันจะต้องทำสำหรับทุกคำสั่งที่ฉันต้องการนำมาใช้ใหม่ - ถูกต้องหรือไม่ ถ้าใช่นั่นไม่ใช่สิ่งที่ฉันกำลังมองหา ดังที่ได้กล่าวไปแล้วฉันได้ใช้อินสแตนซ์ของ bash ที่ไม่เคยแก้ไขประวัติเมื่อคำสั่งถูกนำมาใช้ซ้ำและแก้ไข
revert-all-at-newline
เป็นสิ่งที่ฉันต้องการ หากฉันแก้ไขคำสั่งและกด CTRL-C เพื่อยกเลิกคำสั่งนั้นฉันไม่ต้องการให้มีผลกับประวัติ ฉันไม่เคยมีมาก่อนในการกำหนดค่าทุบตีไม่ให้แก้ไขประวัติซึ่งเป็นส่วนหนึ่งของเหตุผลที่ฉันสับสนว่าทำไมบางครั้งการติดตั้งใหม่มีพฤติกรรมในทางเดียวและบางครั้งในอื่น ๆ โดยวิธีการในอินสแตนซ์ที่ไม่ได้แก้ไขประวัติในการใช้คำสั่งนำมาใช้ใหม่bind -V | grep revert
บ่งชี้ว่าrevert-all-at-newline
ถูกตั้งค่าเป็น 'ปิด'
bash
จริงนี้มีน้อยมากจะทำอย่างไรกับ มันคือทั้งหมดที่เกี่ยวกับ readline มีการใช้งานที่แตกต่างกันของreadline
ห้องสมุดและมันยังมีชุดการตั้งค่าของตัวเอง (มากของพวกเขา) และไฟล์การกำหนดค่าของตัวเอง ฉันไม่แน่ใจว่านี่เป็นการตั้งค่าหรือเป็นเพียงความแตกต่างในการติดตั้งใช้งาน แต่คุณควรค้นหาในเอกสารที่เกี่ยวข้องกับ readline ไม่ใช่การทุบตี
history -p
เพื่อขยายประวัติโดยไม่ส่งผลกระทบต่อไฟล์ประวัติ คุณสามารถทำhistory -s
เช่นเดียวกันและผนวกเข้ากับประวัติโดยไม่ต้องดำเนินการ คุณสามารถทำได้HISTIGNORE='start of a command I never want in history.*:command2.*'
เพื่อไม่ให้มีคำสั่งบางอย่างอยู่ในประวัติ