Thực thi lệnh đầu cuối mà không lưu nó vào .bash_history trên OS X?


19

Trang web này nói rằng trên Linux, bạn có thể thêm một spacelệnh trước thiết bị đầu cuối để tránh nó .bash_history.

Điều này dường như không hoạt động đối với Mac OS X. Có ai biết cách thực hiện một lệnh duy nhất trên Terminal mà không lưu nó vào lịch sử không?

Tôi không muốn xóa lịch sử.

nhập mô tả hình ảnh ở đây


thêm một `` (dấu cách) trước một lệnh đầu cuối sẽ không giữ nó ra khỏi lịch sử
warren

2
@warren Không, nó có. Bạn chỉ cần kích hoạt tính năng trong bash.
Goweon

@firebat - đúng: nhưng vì đó là thứ bạn phải bật, nên nó có thể hoặc không hoạt động ở mọi nơi :)
warren

Câu trả lời:


24

Thêm dòng sau vào ~ / .bashrc

export HISTCONTROL=ignorespace

Sau đó source ~/.bashrcđể làm mới các cài đặt

Điều này sẽ kích hoạt tính năng đó trong bash. Nếu nó không hoạt động, bạn có thể phải thêm nó vào ~ / .bash_profile thay vì ~ / .bashrc vì OS X tải chúng khác một chút so với linux tôi nghĩ.


Làm thế nào tôi có thể sử dụng hai tùy chọn với điều đó? Tôi muốn sử dụng export HISTCONTROL=erasedups,ignorespacenhưng tôi nghĩ rằng cú pháp đó không hoạt động ...
cwd

2
export HISTCONTROL=erasedups:ignorespace
Goweon

2
Nhưng tôi nghĩ đó thực sự làexport HISTCONTROL=ignoredups:ignorespace
Goweon

3
Cài đặt "bỏ qua" bỏ qua các dòng lặp đi lặp lại. Gõ "ls" hai mươi lần liên tiếp chỉ kết thúc với một trong số họ trong lịch sử. Tuy nhiên, gõ "ls" và sau đó "ps" và sau đó "ls" sẽ lưu trữ "ls" và "ps" mỗi lần - trừ khi bạn có bash 3 và đặt "xóa". Nếu được đặt, không có bản sao nào được nhập vào lịch sử bash cả. - cyberciti.biz/faq/bash-for-loop-array
cwd

1
Điều này không làm việc cho tôi. Tôi đã thử cả hai export HISTCONTROL=erasedups:ignorespaceexport HISTCONTROL=ignoredups:ignorespacevà thậm chí export HISTCONTROL=ignoredups:ignoreboth. Nhưng những gì tôi nhận được là một mục nhập duy nhất cho mỗi phiên chứ không phải trong các phiên: nghĩa là, nếu một lệnh đã có .bash_historykhi bắt đầu phiên và được nhập lại, nó sẽ được thêm vào lịch sử (dù chỉ một lần cho phiên đó) . Làm cách nào để đảm bảo rằng một lệnh đã có trong `.bash_history khi tôi khởi chạy Terminal không được thêm nếu nó được nhập lại?
orome

1

Nếu bạn không quan tâm đến việc giữ cho phiên hoạt động, điều này có thể hoạt động:

kill -9 $$

Nó sẽ giết phiên hiện tại thay vì đăng xuất, điều này [về mặt lý thuyết] có nghĩa là lịch sử của bạn sẽ không được lưu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.