เรียกใช้งานคำสั่งเทอร์มินัลโดยไม่บันทึกลงใน. bash_history ใน OS X หรือไม่


19

เว็บไซต์นี้จะบอกว่าบน Linux คุณสามารถเพิ่มspaceก่อนที่คำสั่ง terminal .bash_historyเพื่อให้มันออกจาก

ดูเหมือนจะไม่สามารถใช้งานได้กับ Mac OS X มีใครรู้วิธีเรียกใช้งานคำสั่งเดียวบน Terminal โดยไม่บันทึกลงในประวัติหรือไม่

ฉันไม่ต้องการล้างประวัติ

ป้อนคำอธิบายรูปภาพที่นี่


การเพิ่ม `` (ช่องว่าง) หน้าคำสั่งเทอร์มินัลจะไม่เก็บมันไว้ในประวัติศาสตร์
วอร์เรน

2
@warren ไม่มันทำ คุณเพียงแค่เปิดใช้งานคุณลักษณะนี้ในการทุบตี
goweon

@firebat - ขวา: แต่เพราะมันเป็นสิ่งที่คุณต้องเปิดการใช้งานก็อาจจะหรืออาจจะไม่สามารถทำงานได้ทุกที่ :)
วอร์เรน

คำตอบ:


24

เพิ่มบรรทัดต่อไปนี้ใน ~ / .bashrc

export HISTCONTROL=ignorespace

จากนั้นsource ~/.bashrcทำการรีเฟรชการตั้งค่า

สิ่งนี้ควรเปิดใช้งานคุณลักษณะนั้นในการทุบตี ถ้ามันไม่ทำงานคุณอาจต้องเพิ่มมันเข้าไปใน ~ / .bash_profile แทน ~ / .bashrc เนื่องจาก OS X โหลดมันแตกต่างจากลินุกซ์ที่ฉันคิด


ฉันจะใช้สองตัวเลือกกับสิ่งนั้นได้อย่างไร ฉันต้องการใช้export HISTCONTROL=erasedups,ignorespaceแต่ฉันคิดว่ารูปแบบไม่ทำงาน ...
cwd

2
export HISTCONTROL=erasedups:ignorespace
goweon

2
แต่ฉันคิดว่ามันเป็นจริงexport HISTCONTROL=ignoredups:ignorespace
goweon

3
การตั้งค่า "ละเว้นอัพ" จะไม่สนใจบรรทัดที่ทำซ้ำ การพิมพ์ "ls" ยี่สิบครั้งติดต่อกันจะลงเอยด้วยหนึ่งในนั้นในประวัติศาสตร์ อย่างไรก็ตามการพิมพ์ "ls" และจากนั้น "ps" แล้ว "ls" อีกครั้งจะเก็บ "ls" และ "ps" ทุกครั้ง - เว้นแต่คุณมี bash 3 และตั้ง "erasedups" หากตั้งค่าไว้จะไม่มีการป้อนข้อมูลซ้ำในประวัติทุบตีเลย - cyberciti.biz/faq/bash-for-loop-array
cwd

1
มันไม่ได้ผลสำหรับฉัน ฉันได้พยายามทั้งสอง export HISTCONTROL=erasedups:ignorespaceและและแม้กระทั่งexport HISTCONTROL=ignoredups:ignorespace export HISTCONTROL=ignoredups:ignorebothแต่สิ่งที่ฉันได้รับคือรายการเดียวสำหรับแต่ละเซสชันแทนที่จะข้ามเซสชัน: เช่นถ้าคำสั่งอยู่ใน.bash_historyช่วงเริ่มต้นเซสชันแล้วและพิมพ์อีกครั้งจะถูกเพิ่มลงในประวัติ (แม้ว่าจะมีเพียงครั้งเดียวสำหรับเซสชันนั้น) . ฉันจะมั่นใจได้อย่างไรว่าคำสั่งที่อยู่ใน `.bash_history แล้วเมื่อฉันเรียกใช้ Terminal ไม่ได้รับการเพิ่มหากมีการป้อนอีกครั้ง
orome

1

หากคุณไม่กังวลเกี่ยวกับการทำให้เซสชันใช้งานได้สิ่งนี้อาจใช้ได้:

kill -9 $$

มันจะฆ่าเซสชันปัจจุบันแทนการออกจากระบบซึ่ง [ตามหลักวิชา] หมายถึงประวัติของคุณจะไม่ถูกบันทึกไว้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.