IDK*_*IDK 8 gedit command-line bash bash-history
我有几个关于存储在~/.bash_history
.
我可以使用history
命令在终端中看到该文件,但是如果我尝试使用gedit bash_history
该文件打开它,则该文件完全为空。为什么?
我已经找到了如何使用以下代码行从终端中删除文件中的特定行数:
for i in {1..N}; do history -d N; done
Run Code Online (Sandbox Code Playgroud)
其中 N 是您要删除的行(或命令)数,但现在历史文件显示了最后一个命令,如果您想覆盖您的内容,那不是很聪明。所以问题是:我怎样才能给出最后一行代码并确保这不会被记录?
des*_*ert 18
您只是忘记了前面的点,打开(bash)终端历史文件的命令是
gedit ~/.bash_history
Run Code Online (Sandbox Code Playgroud)
此文件仅在您关闭终端时更新。
要从此文件中删除最后10行并且不记录此命令本身,请打开一个新终端并执行以下命令链:
sed -n -e :a -e '1,10!{P;N;D;};N;ba' ~/.bash_history && history -c && exit
Run Code Online (Sandbox Code Playgroud)
或者
for i in {1..10}; do sed -i '$d' ~/.bash_history; done && history -c && exit
Run Code Online (Sandbox Code Playgroud)
或者
head -n -10 ~/.bash_history > ~/.b_h_2 && mv ~/.b_h_2 ~/.bash_history && history -c && exit
Run Code Online (Sandbox Code Playgroud)
sed
或head
分别从 中删除所选行~/.bash_history
,history -c
清除终端的历史记录并exit
关闭它。