导读 如果你登录过 Linux 系统,并敲过一些命令,那你应该知道,bash history 会记录你输入的所有命令。这个操作其实是有一定风险的。

我个人经常使用 Linux,所以我想着研究一番,看看如何隐藏 bash history。下面就是我整理的一些方法,仅供大家参考:

· exit normally – history 记录正常写入

· kill– 服务器端运行 -kill bash 进程ID后就不会再记录 history 了。我检查过是否需要加-9参数,不过不用,只需要一个基本的 kill 命令,就可以杀掉进程并阻止它写入文件。

·kill – 客户端运行–kill ssh 进程 ID,即时加了-9参数还是会有历史记录。

· set +o history– 不会将任何当前会话写入日志。可以在会话期间任何时间运行,并隐藏所有命令。

· set -o history– 重启日志记录,但是会记录 set 命令,所以会发生一些明显的变化。

· unset HISTFILE – 清除记录历史文件位置的变量,这样就不会存储任何东西

· history -c– 彻底清除历史。这条命令作用非常明显,因为所有的历史命令都没了。

· export HISTIGNORE=“ls*:cat*”– 这条命令是不记录引号中以冒号为分隔符的命令。这条命令可以使用shell模式,有点类似正则,但不尽相同

· export HISTFILESIZE=10– 设置历史记录数量为10。如果你已经完成了想要隐藏的操作,但又想保留其他的命令,请重新计算,将记录数的大小设置为小于总数并继续执行。这样,所有之前的命令就会不可见,看起来会有一些可疑,但是因为历史记录中还是有内容,所以人们可能不会注意到。

· editing the.bash_history file– 如果你在会话期间编辑这个文件,编辑的内容将会出现在会话的命令之前,这样你其实可以在 history 中添加一些你实际并没有运行过的命令,所以这也不失为一个好办法。

· using multiple sessions– 一个会话终止时才会写入 bash history。那我们可以使用两个会话,第一个会话终止会写入history,然后第二个会话的内容会在第一个会话终止时才开始写入 history

· putting a space before a command(命令前面加一个空格) – 根据配置,在命令前加一个空格,就会不进行记录。如果你已经输入了你不想记录的命令,那么这个功能就没什么用,但如果想让几条好不相关的命令看似一条的话,使用这个还是不错的。在使用之前请先进行测试,因为根据发行版和用户配置不同,情况会有所不同。

· history -r– 这条命令会重新读取 history 文件,能够将历史记录重置为你登录时的状态。这条命令似乎非常有用,尤其是你可以编辑 history 文件,添加命令时,然后关掉 shell。这会写入经过你修改的 history,不留任何痕迹。

上面这些命令,好像“set +o history”是最好用的也是最通用的方法,因为它会隐藏当前会话的所有命令,但是会保留之前的命令。
不过根据场景不同,其他的命令也是非常有效的。

在你使用这些命令之前,一定要先自己测试一遍。当你已经登录了一个系统,而且意识到需要隐藏某些命令时,不要慌张,history 只会在会话结束时写入,所以只要会话还没有结束,你就可以停下来思考,怎么去隐藏命令,希望本文的内容能够帮到你。

本文转自:https://www.linuxprobe.com/linux-bash.html

教你一些Linux中隐藏bash历史命令的小技巧的更多相关文章

  1. Linux中编写Bash脚本的10个技巧

    Shell 脚本编程 是你在 Linux 下学习或练习编程的最简单的方式.尤其对 系统管理员要处理着自动化任务,且要开发新的简单的实用程序或工具等(这里只是仅举几例)更是必备技能. 本文中,我们将分享 ...

  2. 在 Alpine Linux 中安装 bash shell

    如何在我的 Alpine Linux LXD(Linux容器)虚拟机(VM)中安装 bash shell? Alpine Linux 自带 BusyBox 工具.它被评为“嵌入式 Linux 的瑞士军 ...

  3. [转]linux中强大的screen命令

    [转]linux中强大的screen命令 http://pythonorg.diandian.com/post/2012-01-05/40027464147 今天用SCREEN用点生了,有几个功能不知 ...

  4. Linux中W与Who命令的使用

    踢掉一个从某个终端连上的用户pkill -kill  -t pts/0 ---------------------------------------------------------------- ...

  5. Linux中的叹号命令

    在shell环境下操作,需要积累点快捷输入的小技巧: 最常用的技巧恐怕就是Tab自动补全以及上方向键来回退上几条历史命令了,这些对于csh,bash,ksh,zsh都适用. 最近还找到一种快速回退上一 ...

  6. Linux Shell基础 Bash常见命令 history、alias命令以及常用快捷键

    概述  shell中常见命令history 历史纪录命令:history 命令格式如下: [root@localhost ~]# history [选项] [历史命令保存文件] -c:清空历史命令: ...

  7. 【日常小记】linux中强大且常用命令:find、grep【转】

    转自:http://www.cnblogs.com/skynet/archive/2010/12/25/1916873.html 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍fin ...

  8. Linux 中强大且常用命令:find、grep

    在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find.grep命令,他哥俩可以算是必会的linux命令,我几乎每天都要用到他们.本文结构如下:    find命令        f ...

  9. 【转载】Linux中强大且常用命令:find、grep

    转载自:http://www.linuxeden.com/html/softuse/20130804/142065.html 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍find. ...

随机推荐

  1. oracle逐步学习总结之约束(基础五)

    原创作品,转自请在文章明显位置注明出处:https://www.cnblogs.com/sunshine5683/p/10167717.html oracle中的约束主要有非空约束(not null) ...

  2. 你不知道的JavasScript上篇·第三章·对象

    1.Object.defineProperty()&&getter.setter Object.defineProperty(目标对象,属性名(string型),{ get:funct ...

  3. Mysql数据库 的库表简易操作

    一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8;   charset uft8  可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...

  4. 设计模式原则(5)--Law of Demeter(LoD)--迪米特法则

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 1.定义: 一个软件实体应当尽可能少地与其他实体发生相互作用.也就是说:一个类对自己依赖的类知道的越少越好.也就是 ...

  5. drupal7 获取profile2模块自定义字段的值

    $user=user_load($uid); $student=profile2_load_by_user($user,'student'); 这个函数官方有文档,通过用户对象返回用户的profile ...

  6. Vue.js $nextTick

    最近在学习vue.js.了解1.x的基础上再学习2.x的vue.两个版本的确是不会像angular这样1.x和2.x相差甚远.所以学习起来其实还是有很大的关联.但是,终归来说.两者还是有语法上的细微差 ...

  7. JavaScript基础知识之 每日一题(网上搜罗来滴)

    1.返回什么类型 (function(){return typeof arguments;})(); 答案是:object 参考:https://developer.mozilla.org/en-US ...

  8. PostGIS安装

    PostGIS安装 1.软件下载 postgresql-9.6.1-1-windows-x64-binaries.zip https://www.postgresql.org/download/win ...

  9. 安装SQL sever2008时显示重新启动计算机规则失败,应该怎么解决?

    1.删除注册表:在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager中找到 PendingFileRenameOpe ...

  10. django直接操作MySQL,中文乱码

    sql_insert = '''insert into sinfors_hvvms values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)''' c ...