精华内容
下载资源
问答
  • 查看历史命令:history 查看最近使用过的5条命令: history | tail -5 统计经常使用的命令:history|awk'{print$2}'|sort|uniq-c|... awk '{print $2}'从历史文件中打印第2列字符串,不显示命令选项和参数 ...

    查看历史命令:history

    查看最近使用过的5条命令: history | tail -5

    统计经常使用的命令:history | awk '{print $2}' | sort | uniq -c | sort -nr | head -5

    结果第一列次数,第二列是使用的命令

    解释:

    • awk '{print $2}' 从历史文件中打印第2列字符串,不显示命令选项和参数

    • sort 按字母顺序排列所有行

    • uniq -c 删除重复行并对它们进行计数统计

    • sort -nr 根据 uniq 命令返回的统计数反向排序

    也可以使用正序查看使用命令:history | awk {'print $2'} | sort | uniq -c | sort -n | tail -n5

    或将所有使用过的命令导出txt中:history | awk {'print $2'} | sort | uniq -c | sort -n > history.txt

     

    展开全文
  • Linux shell编程之shell命令历史记录

    千次阅读 2018-09-20 10:19:13
    shell的命令历史记录 需求 相关参数 实现步骤     shell的命令历史记录   需求 >>>系统需要一个目录用来记录所有用户的命令历史记录,来做安全保护。 >>>...

    目录

    shell的命令历史记录

    需求

    相关参数

    实现步骤

     


     

    shell的命令历史记录

     

    需求

    >>>系统需要一个目录用来记录所有用户的命令历史记录,来做安全保护。

    >>>创建一个目录/var/history,该目录会创建文件记录所有登录用户的历史命令

          文件以 username-userid.log 格式命名;(默认用于记录用户历史命令的文件是当前用户家目录下的.bash_history)

    >>>所有用户执行过的命令都会被追加到对应的文件中 ,并且不能删除和修改 ——>特殊属性a

    >>>用户输入的命令要实时刷入硬盘 ——> 特殊属性s

    目录格式如下:

    [bei@localhost ~]$ ls -al /var/history/

    dr-xr-xrwx.  2 root      root       4096 Aug  7 22:43 .

    drwxr-xr-x. 22 root      root       4096 Jul 22 00:05 ..

    -rw-------.  1 bei       bei       76219 Sep 18 20:18 bei-507.log

    -r--------.  1 root      root      12815 Sep 18 20:17 root-0.log

    文件格式如下:

    [bei@localhost ~]$ cat -n /var/history/bei-507.log | tail -5

      4363  ls -al

      4364  #1537327334

      4365  history

      4366  #1537327341

      4367  ifconfig

     


     

    相关参数

    参数

    描述

    HISTFILE

    用于指定保存命令历史记录的路径及文件名称(默认~/.bash_history

    HISTFILESIZE

    用于指定保存命令记录文件中的最大行数(默认值500,建议设置为null

    HISTSIZE

    命令历史记录中的记录的命令最大行数(默认值500,建议设置为100000
    定义了
    history命令输出的行数

    HISTTIMEFORMAT

    在历史记录文件中,使用注释符来区分时间戳和相关命令

    可设置history命令显示的历史记录条目关联的时间戳输出格式
    例:
    readonly HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[{}]//g'     ` `whoami ` "

    history命令输出为:

    [bei@localhost ~]$ history | tail -5

     2188  2018-09-18 20:22:14 (192.168.20.xxx) bei history

     2189  2018-09-18 20:22:21 (192.168.20.xxx) bei ifconfig

     2190  2018-09-18 20:22:49 (192.168.20.xxx) bei cat -n /var/history/bei-507.log | tail -5

     2191  2018-09-18 20:27:45 (192.168.20.xxx) bei history | tail -10

     2192  2018-09-18 20:27:51 (192.168.20.xxx) bei history | tail -5

    HISTCONTROL

    控制命令在历史列表中记录方式

    ignorespace:以空格开头的行不会记录在历史中

    ignoredups:忽略重复的命令

    ignoreboth:参数ignorespaceignoredups同时生效

    关于readonly

    变量前写上readonly,非root用户变量不可更改

     


     

    实现步骤

    >>>创建目录/var/history ——> mkdir /var/history

    给目录/var/history赋予所有人的写权限 ——> chmod a+w /var/history

    给目录/var/history赋予特殊属性a         ——> chattr +a /var/history

    >>>编辑/etc/profile修改shell命令记录的参数

    readonly HISTFILE=/var/history/$USER-$UID.log      #设置保存命令历史记录的路径及文件名称

    readonly HISTSIZE=null

    readonly HISTFILESIZE=500000

    readonly HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[{}]//g'     ` `whoami ` "

    shopt -s histappend                                                         #一个用户可以同时打开多个终端

    readonly PROMPT_COMMAND="history -a"             #实时追加当前历史命令到history文件

     

    if [ "$HISTCONTROL" = "ignorespace" ] ; then

        export HISTCONTROL=ignoreboth

    else

        export HISTCONTROL=ignoredups

    fi

     

    export HISTSIZE HISTCONTROL

     

     


     

    说明:

    >>>以上内容是本人学习的总结

    >>>如还有错误,请留言,指正

    >>>亦可分享自己的想法,互相学习

    展开全文
  • linux中Shell历史命令记录文件的路径是什么

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

    也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                   

     

    Bash shell在“~/.bash_history”(“~/”表示用户目录)文件中保存了500条使用过的命令,这样能使你输入使用过的长命令变得容易。每个在系统中拥有账号的用户在他的目录下都有一个“.bash_history”文件。bash shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。 第一步: “/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行确定所有用户的“.bash_history”文件中能保存的旧命令条数。强烈建议把把“/etc/profile”文件中的“HISTFILESIZE”和“HISTSIZE”行的值设为一个较小的数,比如30。编辑profile文件(vi /etc/profile),把下面这行改为: HISTFILESIZE=30 HISTSIZE=30 这表示每个用户的“.bash_history”文件只能保存30条旧命令。 第二步: 网管还应该在"/etc/skel/.bash_logout" 文件中添加下面这行"rm -f $HOME/.bash_history" 。这样,当用户每次注销时,“.bash_history”文件都会被删除.

     

     

    http://www.huanxiangwu.com/137/linux-history%E5%91%BD%E4%BB%A4%E4%BB%8B%E7%BB%8D

    现在大多数的Linux系统都使用bash作为默认的shell吧,下面就介绍一下bash的history命令管理功能吧,history命令可以回顾,修改和重用之前使用过的历史命令。

    1.一些变量说明:

    $HISTFILE bash启动的时候会读取~/.bash_history文件并载入到内存中,这个变量就用于设置.bash_history文件,bash退出时也会把内存中的历史回写到.bash_history文件

    $HISTSIZE 设置bash会员期间历史包含的命令数量

    $HISTFILESIZE 设置历史文件中实际存储的命令数量

    2.显示历史命令

    history 显示全部历史

    history 数字 显示之前执行过的若干命令,例:history 2 显示执行过的上两条命令

    使用上下箭头键也可以查看上一条根下一条命令,

    3.运行历史命令

    !! 运行上一条命令

    !88 运行第88条命令

    !88 /test 运行第88条命令并在命令后面加上/test

    !?CF? 运行上一个包含CF字符串的命令

    !ls 运行上一个ls命令

    !ls:s/CF/l 运行上一个ls命令,其中把CF替换成l

    fc 编辑并运行上一个历史命令

    fc 66 编辑并运行第66个历史命令

    fc -e /usr/bin/vim 66 使用vim编辑第66个命令并运行

    4.搜索历史命令

    使用ctrl+r搜索历史中的字符串,重复按ctrl+r可以在历史命令列表中不断的向前搜索包含字符串的命令,回车就会执行查找的命令

    5.清空历史命令

    history -c

    6.写history

    history -w 让bash将历史命令立即从内存写到.bash_history文件

    history -a 将目前新增的 history 历史命令写入.bash_history文件

    7.history历史命令记录删除

    修改/etc/profile将HISTSIZE=1000改成0或1

    清除用户home路径下.bash_history

    8.history配置

    运行 set | grep HISTFILE

    显示:HISTFILE=/root/.bash_history
    HISTFILESIZE=1000

    在.bash_profile文件中添加

    HISTFILE=/root/history

    export HISTFILE

    重新登录后历史命令都会写入到/root/history文件中

    其余的一些设置可以在.bashrc文件中设置

    export HISTCONTROL=ignoredups #忽略重复的命令

    export HISTIGNORE=”[ ]*:&:bg:fg:exit” #忽略由冒号分割的这些命令

    export HISTFILESIZE=1000 #设置保存的历史命令的文件大小

    export HISTSIZE=100 #设置保存的历史命令的条数

    技巧:

    shopt -s histappend 在shell中执行这个命令可以使shell保存历史命令的时候使用追加的方式,因为默认是覆盖,在多终端的清空下,最后退出的终端灰覆盖以前的历史记录

    在history历史记录中显示时间和执行命令的用户 echo ‘export HISTTIMEFORMAT=”%F %T `whoami` “‘ >> /etc/profile

     

    http://linuxtoy.org/archives/history-command-usage-examples.html

     

    History(历史)命令用法 15 例

    如果你经常使用 Linux 命令行,那么使用 history(历史)命令可以有效地提升你的效率。本文将通过实例的方式向你介绍 history 命令的 15 个用法。

    使用 HISTTIMEFORMAT 显示时间戳

    当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:

    # export HISTTIMEFORMAT='%F %T '# history | more1  2008-08-05 19:02:39 service network restart2  2008-08-05 19:02:39 exit3  2008-08-05 19:02:39 id4  2008-08-05 19:02:39 cat /etc/redhat-release

    注意:这个功能只能用在当 HISTTIMEFORMAT 这个环境变量被设置之后,之后的那些新执行的 bash 命令才会被打上正确的时间戳。在此之前的所有命令,都将会显示成设置 HISTTIMEFORMAT 变量的时间。[感谢 NightOwl 读者补充]

    使用 Ctrl+R 搜索历史

    Ctrl+R 是我经常使用的一个快捷键。此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。

    # [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt](reverse-i-search)`red‘: cat /etc/redhat-release[Note: Press enter when you see your command, which will execute the command from the history]# cat /etc/redhat-releaseFedora release 9 (Sulphur)

    快速重复执行上一条命令

    有 4 种方法可以重复执行上一条命令:

    1. 使用上方向键,并回车执行。
    2. 按 !! 并回车执行。
    3. 输入 !-1 并回车执行。
    4. 按 Ctrl+P 并回车执行。

    从命令历史中执行一个指定的命令

    在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:

    # history | more1  service network restart2  exit3  id4  cat /etc/redhat-release# !4cat /etc/redhat-releaseFedora release 9 (Sulphur)

    通过指定关键字来执行以前的命令

    在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:

    # !psps aux | grep yproot     16947  0.0  0.1  36516  1264 ?        Sl   13:10   0:00 ypbindroot     17503  0.0  0.0   4124   740 pts/0    S+   19:19   0:00 grep yp

    使用 HISTSIZE 控制历史命令记录的总行数

    将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:

    # vi ~/.bash_profileHISTSIZE=450HISTFILESIZE=450

    使用 HISTFILE 更改历史文件名称

    默认情况下,命令历史存储在 ~/.bashhistory 文件中。添加下列内容到 .bashprofile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:

    # vi ~/.bash_profileHISTFILE=/root/.commandline_warrior

    使用 HISTCONTROL 从命令历史中剔除连续重复的条目

    在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:

    # pwd# pwd# pwd# history | tail -444  pwd45  pwd46  pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]47  history | tail -4# export HISTCONTROL=ignoredups# pwd# pwd# pwd# history | tail -356  export HISTCONTROL=ignoredups57  pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]58  history | tail -4

    使用 HISTCONTROL 清除整个命令历史中的重复条目

    上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:

    # export HISTCONTROL=erasedups# pwd# service httpd stop# history | tail -338  pwd39  service httpd stop40  history | tail -3# ls -ltr# service httpd stop# history | tail -635  export HISTCONTROL=erasedups36  pwd37  history | tail -338  ls -ltr39  service httpd stop[Note that the previous service httpd stop after pwd got erased]40  history | tail -6

    使用 HISTCONTROL 强制 history 不记住特定的命令

    将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:

    # export HISTCONTROL=ignorespace# ls -ltr# pwd#  service httpd stop [Note that there is a space at the beginning of service, to ignore this command from history]# history | tail -367  ls -ltr68  pwd69  history | tail -3

    使用 -c 选项清除所有的命令历史

    如果你想清除所有的命令历史,可以执行:

    # history -c

    命令替换

    在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:

    # ls anaconda-ks.cfganaconda-ks.cfg# vi !!:$vi anaconda-ks.cfg

    补充:使用 !$ 可以达到同样的效果,而且更简单。[感谢 wanzigunzi 读者补充]

    下例中,!^ 从上一条命令获得第一项参数:

    # cp anaconda-ks.cfg anaconda-ks.cfg.bakanaconda-ks.cfg# vi -5 !^vi anaconda-ks.cfg

    为特定的命令替换指定的参数

    在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:

    # cp ~/longname.txt /really/a/very/long/path/long-filename.txt# ls -l !cp:2ls -l /really/a/very/long/path/long-filename.txt

    下例里,!cp:$ 获取 cp 命令的最后一项参数:

    # ls -l !cp:$ls -l /really/a/very/long/path/long-filename.txt

    使用 HISTSIZE 禁用 history

    如果你想禁用 history,可以将 HISTSIZE 设置为 0:

    # export HISTSIZE=0# history# [Note that history did not display anything]

    使用 HISTIGNORE 忽略历史中的特定命令

    下面的例子,将忽略 pwd、ls、ls -ltr 等命令:

    # export HISTIGNORE=”pwd:ls:ls -ltr:”# pwd# ls# ls -ltr# service httpd stop# history | tail -379  export HISTIGNORE=”pwd:ls:ls -ltr:”80  service httpd stop81  history[Note that history did not record pwd, ls and ls -ltr]

     

               

    给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

    这里写图片描述
    展开全文
  • Linux中禁用命令历史记录

    千次阅读 2018-01-06 17:05:00
    关闭history记录功能 set +o history ...rm -f $HOME/.bash_history 删除记录文件,清空历史。 临时不记录 在执行的命令前添加空格。例如:history 转载于:https://www.cnblogs.com/zhuxia...

    关闭history记录功能

    • set +o history

    打开history记录功能

    • set -o history

    清空记录

    • history -c 记录被清空,重新登录后恢复。
    • rm -f $HOME/.bash_history 删除记录文件,清空历史。

    临时不记录

    • 在执行的命令前添加空格。例如:history

    转载于:https://www.cnblogs.com/zhuxiaoxi/p/8214706.html

    展开全文
  • 如何查找命令历史记录 文章目录如何查找命令历史记录1、如何找到一个命令2、命令历史记录3、一些实用的快捷键4、小结5、参考资料 如何找到一个命令命令历史记录、一些实用的快捷键、总结 学习如何查找命令...
  • 清除Linux终端命令历史记录

    千次阅读 2015-06-11 16:21:32
    Linux终端下1、运行history,可以得到一个整洁的Linux终端命令历史记录的列表2、运行history -c,可以清除杂乱的历史记录(需要重启)3、运行history -r /home/yajiu/history.txt,可以将history.txt文件存储的...
  • 用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的...
  • LINUX彻底清除历史记录命令

    千次阅读 2018-04-16 01:13:55
    目的很简单,就是清除linux下的历史命令linux 下输入history 命令显示历史敲过的命令输入history -c 清除掉了,但是系统重启,敲history发现又出现了,怎么办呢用VI编辑器,编辑下profile文件,修改历史命令记录条数...
  • linux查看历史命令history

    万次阅读 2018-02-01 11:06:53
    1.可以按一下上\下方向键,命令行就会显示相对于当前命令的上一条或下一条历史记录. ...就用Ctrl+ r 组合键进入历史记录搜寻状态,然后,键盘每按一个字母,当前命令行就会搜索出命令历史记录
  • 使用history命令可以查看Linux历史记录。 有些时候可能由于安装了某个版本后的程序后,原有代码由于版本问题无法编译或执行。我们需要回滚安装原来的版本。这个时候最简单的办法就是在root用户下使用history命令...
  • linux shell 历史命令记录功能

    千次阅读 2015-12-09 13:32:08
    Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的.bash_history 文件中。通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和...
  • ubuntu/linux命令记录 长期更新

    万次阅读 2020-03-19 09:34:06
    #重启 reboot #关机 halt #查看内存 + 参数以兆为单位查看 free 和 free -m #清空文件内容 如txt log类型文件 echo ""> catalina.out #ll命令 查看文件目录和文件大小 ll -sh #查询进程PID ps aux | grep tomcat #杀...
  • 以Ubuntu16.04.3为例,默认只保存最近的1000条命令记录,1000条之后如再产生新记录,最前面超过1000的那部分记录将会被清除。 查询当前HISTSIZE值的命令: echo $HISTSIZE 实例见下图: 如果需要修改,可使用如下...
  • 1.echo $HISTSIZE命令查看当前记录数量 2.修改当前数量可以修改/etc/profile文件,在文件最后增加如下代码: #history modify export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S-$USER_IP-$USER]" USER_IP=`who -u am i ...
  • 设置Linux记录历史命令方法

    千次阅读 2019-09-13 12:53:39
    说明: 1、历史命令是被保存在内存和~/.bash_history中,当退出或者登录shell时,会自动保存或读取 2、在常见的Linux发行版本中,通常默认存储1000条历史命令,该数量是由环境变量...1、清空内存中的命令历史: #...
  • Linux历史命令

    2018-05-06 14:25:31
    敲过的命令Linux是会有记录的,预设可以记录1000条历史命令。这些命令保存在用户的家目录中的.bash_history文件中。只有当用户正常退出当前shell时,在当前shell中运行的命令才会保存至.bash_history文件中。 ...
  • Linux查看命令行历史命令记录

    万次阅读 2018-08-25 15:04:05
    通过history查看历史命令: [jiaozl@jiaozl 桌面]$ history 1 which mpirun 2 which gfortran 3 which ifort 4 which mpif90 5 ip a s 6 ifconfig 7 ip a s 8 ping baidu.com ...
  • Linux删除history历史命令记录

    千次阅读 2019-08-15 10:15:38
    有时在系统中登录数据库时不小心明文输入了...直接修改历史记录存储文件 vi ~/.bash_history 删除不希望其他人看到的命令并保存文件退出 history -r 方法2.删除指定行的历史记录 history -d 指定行号 例如 histo...
  • Linux字符界面下,History命令可以快速的展示我们操作过的命令,默认是1000行,如果我们需要保密操作的历史命令,或为了防止被过多的历史命令刷屏,需要修改历史命令数量。(当然嫌1000行不够用也可以增加历史命令数量...
  • 步骤如下: 1、建立一个文件来存储常用命令,例如/root/history....3、运行history -r /root/history.txt,把命令读进来作为当前bash的历史记录 4、运行history,就得到一个整洁的命令列表了,例如:
  • 用vim编辑器,编辑下profile文件,修改历史命令记录条数就搞定了 编辑命令为vim /etc/profile 查找/HISTSIZE 修改HISTSIZE=0 或者想记录的条数就可以了 注:没有的,在文件末尾添加就行。 source 一下文件生效 ...
  • Linux超全命令总结,看这一篇就够了,建议小伙伴们先收藏后阅读!!
  • linux历史命令

    千次阅读 2015-11-18 11:14:47
    linux历史命令
  • linux查看历史命令

    千次阅读 2021-03-01 15:58:04
    就用Ctrl+ r 组合键进入历史记录搜寻状态,然后,键盘每按一个字母,当前命令行就会搜索出命令历史记录. 1. history作用 linux的history命令的作用是,记录执行过的命令。 用法: history [n] .
  • 步骤如下: 1、建立一个文件来存储常用命令,例如/root/history.txt,把常用命令当成文本写进去,每个命令占一行 2、在终端运行history -c,清除杂乱的历史记录 3、运行history -r /root/history.txt,把命令读进来作为...
  • 步骤如下:  1、建立一个文件来存储常用命令,例如/root/history.txt,把常用... 3、运行history -r /root/history.txt,把命令读进来作为当前bash的历史记录  4、运行history,就得到一个整洁的命令列表了,例如:
  • linux删除历史操作命令

    万次阅读 2018-09-03 14:52:30
    linux系统里一旦操作了任何命令,都会被记录下来,可以通过history命令来查看历史命令,  查看手册可知history -c 便是清除历史命令,但是重新进入系统查看历史命令时,历史信息依然会存在,  那么history -c ...
  • linux查看完整历史记录

    万次阅读 2019-03-06 13:36:51
    1.命令history,但是如果及时记录很多,终端无法显示全。这是需要第二种方法解决。 2.在用户家目录下有一个隐藏文件.bash_history,查看它即可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,910
精华内容 28,364
关键字:

linux命令历史记录文件

linux 订阅