คำถามติดแท็ก command-history

คำสั่งเรียกคืนที่พิมพ์ไว้ก่อนหน้านี้ในเชลล์หรือยูทิลิตี้อื่น ๆ

2
วิธีการอย่างถูกต้องหลบหนีเครื่องหมายอัศเจรีย์ในทุบตี?
วันนี้ฉันถูกจับ redhanded ในขณะที่พยายามรหัสกอล์ฟกำเนิดรหัสผ่านสำหรับ Twitter import string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9)) 90 ตัวอักษร เนื่องจากเป็นพื้นที่ว่างจำนวนมากฉันจึงตัดสินใจยกระดับและทำให้มันใช้งานได้เช่นกัน echo -e "#!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg 139 ตัวอักษร ดียกเว้นเห็นได้ชัดว่าทุบตีโช้คที่เครื่องหมายอัศเจรีย์ badp@delta:~$ echo -e "#!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod +x pg;./pg bash: !/usr/bin/python\nimport: event not found เครื่องหมายอัศเจรีย์น่ารำคาญ "มาหนีกันเถอะ" ฉันคิดว่า! ฉันมีตัวละครตัวหนึ่งเหลือเกิน echo -e "#\!/usr/bin/python\nimport string as s,random;print ''.join(random.sample(s.letters+s.digits+s.punctuation,9))">pg;chmod …

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

4
การเก็บประวัติต่อไดเรกทอรีทำงาน (cf. ต่อเซสชันของเชลล์)
มีวิธีที่จะทำให้คุณสมบัติประวัติของเชลล์สมัยใหม่ถูกกำหนดขอบเขตไปยังเส้นทางหรือไม่? บริบทการทำงานของฉันแบ่งออกเป็นพา ธ บนระบบไฟล์และรูปแบบของกิจกรรมเชลล์เช่นคำสั่งที่ออกซ้ำ ๆ มีแนวโน้มที่จะแตกต่างกันไปในแต่ละโครงการ มันจะดีถ้าฉันสามารถขอบเขตคุณลักษณะประวัติกับคำสั่งที่ออกจากเส้นทางปัจจุบัน (หรือเส้นทางย่อย)

2
Bash:“ หมายเลขประวัติ” เทียบกับ“ หมายเลขคำสั่ง”
ในขณะที่ Googling วิธีปรับแต่ง shell prompt ของฉันผ่านตัวแปร PS1 ฉันเห็นตารางของอักขระพิเศษที่สามารถใช้ได้ โดยเฉพาะอย่างยิ่ง: \! the history number of this command \# the command number of this command ดูเหมือนว่า "หมายเลขประวัติ" จะใช้บ่อยกว่าและฉันรู้วิธีใช้คำสั่งเช่น!523ทำคำสั่งซ้ำจากประวัติ แต่ฉันไม่สามารถเข้าใจได้ว่า "หมายเลขคำสั่ง" มีฟังก์ชั่นที่คล้ายกันหรือไม่ ฉันได้ลองใส่\#ตัวแปร PS1 ของฉันแล้วและดูเหมือนว่าจะส่งออกจำนวนคำสั่งที่ป้อนในเซสชันหนึ่ง (ซึ่งต่างจาก\!ที่มีอยู่หลังจากออกจากระบบ / ออก) ใครรู้วิธีใช้ "หมายเลขคำสั่ง" อย่างสะดวกหรือมีความหมาย?

1
history - แสดงรายการคำสั่งที่รันเรียบร้อยแล้วเท่านั้น
ฉันสงสัยว่ามีวิธีใช้คำสั่งhistory หรือไม่แต่แสดงรายการคำสั่งที่รันได้สำเร็จเท่านั้น ในทำนองเดียวกันจะมีวิธีแสดงรายการข้อผิดพลาดที่เกิดขึ้นหรือไม่? ฉันรู้ว่าแต่ละคำสั่งมีสถานะการออกเป็น: 0- การดำเนินการคำสั่งสำเร็จ 1- คำสั่งล้มเหลวเนื่องจากข้อผิดพลาดระหว่างการขยายหรือเปลี่ยนเส้นทางสถานะการออกมากกว่าศูนย์ 2- การใช้คำสั่งไม่ถูกต้อง 12- พบคำสั่ง แต่ไม่สามารถใช้งานได้ 127- ไม่พบคำสั่ง และสามารถตรวจสอบการดำเนินการคำสั่งด้วยecho $? จาก: http://www.linuxnix.com/2011/03/find-exit-status-script-command-linux.html ตัวอย่าง: หลังจากรันคำสั่ง 4 เหล่านี้: ls help lss ls nonexistentfile ฉันพยายามทดสอบเพื่อพิมพ์คำสั่งที่ประสบความสำเร็จเท่านั้น (สถานะออกจาก 0) ซึ่งควรเป็น 'ls' และ 'ช่วย' เท่านั้น: for j in `history | tail -5 | head -4 | cut -d ' …

2
มีวิธียกเลิกการแก้ไขประวัติทุบตีหรือไม่?
เมื่อกดขึ้นฉันสามารถทำตามคำสั่งที่ป้อนไว้ก่อนหน้านี้ได้ ฉันสังเกตว่าถ้าฉันปรับเปลี่ยนหนึ่งในนั้นจะเปลี่ยนแปลงประวัติศาสตร์ ตัวอย่างเช่นถ้าฉันพิมพ์: echo a echo b echo c [up][up][backspace]d[ctrl+c] ประวัติความเป็นมาในขณะนี้แสดงให้เห็นว่าคำสั่งที่สองคือไม่echo d echo bฉันจะเก็บแรกecho bในประวัติศาสตร์ได้อย่างไร ตัวอย่างเช่นสมมติว่าฉันรันคำสั่งที่ยาวมากพร้อมด้วยตัวเลือกมากมาย จากนั้นฉันต้องการเรียกใช้อีกครั้งโดยมีการเปลี่ยนแปลงเล็กน้อยดังนั้นฉันจึงย้อนกลับไปในประวัติศาสตร์เพื่อค้นหาทำการเปลี่ยนแปลง แต่แล้วตระหนักว่าจริง ๆ แล้วฉันไม่จำเป็นต้องเรียกใช้อีกครั้งโดยคิดถึงตัวเลือกอื่น ทำแทน หลังจากนั้นฉันต้องการกลับไปและเตือนตัวเองว่าคำสั่งที่ฉันใช้คืออะไร - แต่เดี๋ยวก่อนประวัติศาสตร์กำลังแสดงสิ่งที่ผิด! สิ่งนี้เกิดขึ้นน้อยมาก แต่เมื่อไหร่ที่ฉันพบว่ามันน่ารำคาญจริงๆ มีวิธีการเก็บประวัติดั้งเดิมโดยอัตโนมัติหรือไม่?

2
“ ประวัติ” หยุดทำงานเมื่อทำงานในสคริปต์ทุบตี
ฉันกำลังเขียนสคริปต์ง่ายๆเพื่อ grep ประวัติทุบตีของฉันเพื่อค้นหาสายเฉพาะ บนบรรทัดคำสั่งฉันสามารถทำสิ่งต่อไปนี้ซึ่งทำงานได้ดี: history | grep git อย่างไรก็ตามเมื่อฉันสร้างสคริปต์ทุบตีด้วยคำสั่งเดียวกับข้างบนก็historyไม่ส่งคืนสิ่งใดเลย: #!/bin/bash history | grep git เมื่อฉันลบบรรทัดแรก#!/bin/bashสคริปต์ของฉันจะทำงานอีกครั้ง เกิดอะไรขึ้นที่นี่ ฉันจะใช้historyภายในสคริปต์ทุบตีได้อย่างไร

2
การบันทึกประวัติทุบตีจาก Konsole หลายอันทำงานไม่ถูกต้อง
ฉันใช้เทอร์มินัล Konsole หลายอัน และฉันต้องการให้คำสั่งทั้งหมดที่ฉันพิมพ์ในทุก ๆ เทอร์มินัลถูกบันทึกไว้ในประวัติคำสั่งดังนั้น konsole ที่ฉันเปิดถัดไปจะมีทั้งหมด เพื่อป้องกันไม่ให้แต่ละเทอร์มินัลเขียนทับคำสั่งประวัติเทอร์มินัลอื่นฉันได้ตั้งค่าต่อไปนี้ใน.bashrc # avoid duplicates and commands starting with space export HISTCONTROL=ignoredups:erasedups:ignorespace # append history entries.. shopt -s histappend #My machine reboots without warning sometimes.Hence to save commands instantaneously. export PROMPT_COMMAND="history -a" export HISTSIZE=1000 PS1="\[\e[1;34m\]\! \[\e[0m\]"$PS1 ฉันให้บรรทัดสุดท้ายเพื่อดูหมายเลขคำสั่งในพรอมต์ของฉัน หมายเลขคำสั่ง ไม่เคยไปเกิน 600 แต่ยังคงคำสั่งเก่าของฉันบางส่วนจะหายไปจากประวัติศาสตร์ มีหลายคำสั่งที่ให้ซ้ำ ๆ …

1
วิธีหยุด Bash ต่อท้ายประวัติ
ฉันมีปัญหามากมายในการตั้งค่าประวัติเทอร์มินัลของ Bash ในแบบที่ฉันต้องการ ฉันต้องการที่จะไม่มีรายการที่ซ้ำกันและถ้าฉันป้อนคำสั่งที่ฉันต้องการมันบันทึกและรายการที่ซ้ำกันข้างต้นถูกลบออก ปัญหาคือhistoryคำสั่งแสดงให้ฉันเห็นว่ามันทำงานได้อย่างที่ฉันต้องการ แต่เมื่อฉันออกจากระบบรายการที่ซ้ำกันจะกลับมาอีกครั้ง ฉันเชื่อว่ามันเป็นเพียงการต่อท้ายประวัติศาสตร์กับสิ่งที่มีอยู่ ฉันมีบรรทัดเหล่านี้ใน.bashrcไฟล์ของฉัน: HISTCONTROL=ignoreboth:erasedups shopt -u histappend ฉันได้ลองแม้shoptไม่แสดงความคิดเห็น แต่ก็ยังผนวกประวัติในการออกจากระบบ ฉันจะมีประวัติว่าเป็นอย่างไรก่อนที่จะออกจากระบบ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.