Bash中的[命令历史]tips小结

本文最后更新于2015年7月25日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢!

在之前就记录过不少和Bash的命令历史相关的小技巧,比如:统计最常用的10个命令、以root身份执行上一条命令、快速获取上一条命令的最后一个参数……

后来看到一篇文章:像黑客一样使用 Linux 命令行,学习到了不少,同时又去网上搜了更多的资料,记录、总结成了本文。

0.最常用的10个命令

1.以root身份执行上一条命令

2.替换上一条命令的[部分]内容

3.快速获取上一条命令的最后一位参数

4.快速获取上一条命令的第一位参数

5.如何获取上一条命令的多个参数

6.如何获取上一条命令的命令名

参考链接:

=EOF=

声明: 除非注明,ixyzero.com文章均为原创,转载请以链接形式标明本文地址,谢谢!
https://ixyzero.com/blog/archives/2416.html

《Bash中的[命令历史]tips小结》上有7条评论

  1. 命令替换的相关参考链接:

    root@crazy:~# echo "hi, nihao, hi, good"
    hi, nihao, hi, good
    root@crazy:~#
    root@crazy:~# ^hi^hey^:& #最后的「:&」表示重复执行之前的动作,不是进行一次全局替换「http://stackoverflow.com/a/6357381」
    echo "hey, nihao, hey, good"
    hey, nihao, hey, good
    root@crazy:~#
    root@crazy:~# echo "hi, nihao, hi, good"
    hi, nihao, hi, good
    root@crazy:~# !!:gs^hi^hey^ #对上一个命令进行全局替换「http://stackoverflow.com/a/2149566」
    echo "hey, nihao, hey, good"
    hey, nihao, hey, good

    http://stackoverflow.com/questions/2149482/caret-search-and-replace-in-bash-shell
    http://www.gnu.org/software/bash/manual/bashref.html#Event-Designators
    http://www.softpanorama.org/Scripting/Shellorama/history.shtml

  2. 为Bash增加命令执行日志
    http://itxx00.github.io/blog/2011/02/17/bash-history-logging/

    一:bash为何需要logging
    二:加固bash_history
    第1步:使bash历史记录文件和相关文件无法被删除或修改。
    第2步:配置 .bash*配置文件
    第3步:禁掉系统中所有其他shell,一般包括csh,tcsh,ksh。
    三:攻破logging机制
    四:Hacking bash-使用syslog日志接口
    五:总结
    六:参考资料

  3. Ubuntu bash不记录history方法
    https://www.cnblogs.com/sevck/p/7997739.html

    很多都是用:
    unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG
    export HISTFILE=/dev/null
    export HISTSIZE=0
    export HISTFILESIZE=0

    HISTCONTROL=ignoredups:忽略连续重复的命令。
    HISTCONTROL=ignorespace:忽略以空白字符开头的命令。
    HISTCONTROL=ignoreboth:同时忽略以上两种。
    HISTCONTROL=erasedups:忽略所有历史命令中的重复命令。

  4. 隐藏 Bash 命令历史的技巧
    https://digi.ninja/blog/hiding_bash_history.php

    在依赖这些命令/方法时,请记得先自行测试!

    set +o history #不会将任何当前会话中敲的命令写入日志。可以在会话期间随时运行以隐藏其后的命令。
    export HISTIGNORE="ls*:cat*" #用冒号分隔的不记录的命令列表
    在命令前面放置一个「空格」 #https://www.linuxjournal.com/content/using-bash-history-more-efficiently-histcontrol

a-z进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注