Linux调整命令历史方法详解_Linux

来源:脚本之家  责任编辑:小易  

你好,1、修改/etc/profile将HISTSIZE=1000改成21130或1清除用户home路径5261下。bash_history2、4102立即清空里的1653history当前历史命令的记录history -c3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。不过,可以调用'history -w'命令要求bash立即更新history文件。history -w后续操作的删除命令只会删除当前用户的操作命令,并不会影响其他用户。在提示符后输入命令history,就可以查看到当前用户的历史操作命令。图中所示的是目前系统保存到root用户输入的377条命令。在提示符下输入命令history -c就可以删除历史操作命令。再用history命令查看,发现历史操作命令已删除。如果希望系统不再保存历史操作命令,就必须更改配置文件目录下的配置文件profile。首先使用vi编辑器打开该文件。找到HISTSIZE这个值,默认情况下历史命令将保存1000条,可以将该值改为0,然后保存并退出,最后重启系统使得配置文件生效。6重启完成后,再次使用命令history查看,发现系统已不再记录命令,清除历2113史执行命令   [root@localhost root]# history -c   或者5261,清空用4102户目录下的这个文件即1653可   [root@localhost root]# echo > ./.bash_histowww.zgxue.com防采集请勿采集本网。

Linux 系统中的 bash history 命令有助于记住你以前运行过的命令,并重复这些命令,而不必重新输入。

你可以在超级用户 # 下面,输入:set history=0(我由于很久未使用Linux系统的 C-Shell 功能了,到底是否有 = 号,你自己试一下即可),即: #set history=0(或者是:set history 0) #history 这样就不会遗留下来 history -c 这条命令了。

如果可以的话,你肯定会很高兴不用翻阅十几页的手册,每过一会再次列出你的文件,而是通过输入 history 查看以前运行的命令。在这篇文章中,我们将探讨如何让 history 命令记住你希望它记住的内容,并忘记那些可能没有什么“历史价值”的命令。

无论是在哪种终端显示模式下面(例如:$set term=vt100),只要你使用的是 C-Shell,就会有命令历史记录(history)的。

查看你的命令历史

ctrl+r 然后输入搜索的关键词, 比如:之前输入过一个命令vim /etc/profile 只要ctrl+R 然后输入vim就可以查询到这个命令,可以用上下箭头进行模糊查看

要查看以前运行过的命令,你只需输入 history。你可能会看到一长串命令。记忆的命令数量取决于在 ~/.bashrc 文件中设置的名为 $HISTSIZE 的环境变量,但是如果你想保存更多或更少的命令,你可以根据你的需要改变这个设置。

chmod命令用于改变linux系统文件或目录的访问权限,用它控制文件或目录的访问权限。 该命令有两种用法: 一、文字设定法: 命令格式:chmod[对象][+|-|=][

要查看历史记录,请使用 history 命令:

路径/etc/bashrc。在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中。通过

$ history

209 uname -v

210 date

211 man chage

... ...

要查看将显示的最大命令数量:

$ echo $HISTSIZE

500

你可以通过运行这样的命令来改变 $HISTSIZE 并使之永久化:

$ export HISTSIZE=1000

$ echo "HISTSIZE=1000" >> ~/.bashrc

在为你保留多少历史记录和当你输入 history 时显示多少历史记录之间也有区别。$HISTSIZE 变量控制显示多少历史记录,而 $HISTFILESIZE 变量控制在你的 .bash_history 文件中保留多少命令。

$ echo $HISTSIZE

1000

$ echo $HISTFILESIZE

2000

你可以通过计算历史文件中的行数来验证第二个变量:

$ wc -l .bash_history

2000 .bash_history

需要注意的是,在登录会话中输入的命令在注销前不会被添加到你的 .bash_history 文件中,尽管它们会立即显示在 history 命令输出中。

使用历史

有三种方法可以重发你在 history 中发现的命令。最简单的方法,特别是当你想重用的命令是最近运行的时候,通常是输入一个 ! 后面跟上命令中足够多的首字母来唯一地识别它。

$ !u

uname -v

#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

另一种简单的重复命令的方法是,只需按上箭头键,直到显示了该命令,然后按回车键。

另外,如果你运行 history 命令,并看到你想重新运行的命令被列出,你可以输入一个 ! 后面跟着命令左边显示的序号。

$ !209

uname -v

#37-Ubuntu SMP Thu Mar 26 20:41:27 UTC 2020

隐藏历史

如果你想在一段时间内停止记录命令,你可以使用这个命令:

$ set +o history

当你输入 history 时,你输入的命令不会显示出来,当你退出会话或退出终端时,它们也不会被添加到你的 .bash_history 文件中。

要取消这个设置,使用 set -o history

要使它永久化,你可以把它添加到你的 .bashrc 文件中,尽管不使用命令历史记录通常不是一个好主意。

$ echo 'set +o history' >> ~/.bashrc

要暂时清除历史记录,这样在输入 history 时只显示之后输入的命令,可以使用 history -c(清除)命令:

$ history | tail -3

209 uname -v

210 date

211 man chage

$ history -c

$ history

1 history

注意:在输入 history -c 后输入的命令不会被添加到 .bash_history 文件中。

控制历史

许多系统上的 history 命令的设置会默认包括一个名为 $HISTCONTROL 的变量,以确保即使你连续运行同一命令七次,也只会被记住一次。它还可以确保你在首先输入一个或多个空格后跟着的命令将从你的命令历史记录中忽略。

$ grep HISTCONTROL .bashrc

HISTCONTROL=ignoreboth

ignoreboth 的意思是“忽略重复的命令和以空格开头的命令”。例如,如果你输入这些命令:

$ echo try this

$ date

$ date

$ date

$ pwd

$ history

你的 history 命令应该像这样报告:

$ history

$ echo try this

$ date

$ history

请注意,连续的 date 命令被缩减为一条,以空格缩进的命令被省略。

忽略历史

要忽略某些命令,使它们在你输入 history 时不会出现,也不会被添加到你的 .bash_history 文件中,可以使用 $HISTIGNORE 设置。例如:

$ export HISTIGNORE=”history:cd:exit:ls:pwd:man”

这个设置将导致所有的 history、cd、exit、ls、pwd 和 man 命令从你的 history 命令的输出和 .bash_history 文件中被忽略。

如果你想把这个设置变成永久性的,你必须把它添加到你的 .bashrc 文件中。

$ echo 'HISTIGNORE="history:cd:exit:ls:pwd:man"' >> .bashrc

这个设置只是意味着当你回看以前运行的命令时,列表不会被你在查看命令历史记录时不想看到的命令所干扰。

记住、忽略和忘记过去的命令

命令历史记录很有用,因为它可以帮助你记住最近使用过的命令,并提醒你最近所做的更改。它还可以让你更容易地重新运行命令,特别是那些有一串参数但你不一定想重新创建的命令。定制你的历史设置可以让你对命令历史的使用变得更容易,更有效率。

这个是某2113位高人写的。希望对你有帮助。那5261有没有什么办法实现通过记录4102登陆后的IP地址和某用1653户名所操作的历史记录呢?答案:有的。通过在/etc/profile里面加入以下代码就可以实现: #PS1=”`whoami`@`hostname`:”‘[$PWD]‘ #historyUSER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}’|sed -e ’s/[()]//g’`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiif [ ! -d /tmp/dbasky ]thenmkdir /tmp/dbaskychmod 777 /tmp/dbaskyfiif [ ! -d /tmp/dbasky/${LOGNAME} ]thenmkdir /tmp/dbasky/${LOGNAME}chmod 300 /tmp/dbasky/${LOGNAME}fiexport HISTSIZE=4096DT=`date +” %Y%m%d_%H%M%S”`export HISTFILE=”/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT”chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null可以看到在使用history命令的时候是没时间显示,不知道这个命令是什么时候所执行,这个时候可以编辑/etc/bashrc文件,加入如下三行:HISTFILESIZE=2000HISTSIZE=2000HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”export HISTTIMEFORMAT保存后退出,关闭当前shell,并重新登录这个时候,在~/.bash_History文件中,就有记录命令执行的时间了用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的,在linux系统的环境下,不2113管是root用户还5261是其它的用户只有登陆系统后用进入操作我们4102都可以1653通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。这时候通过查看历史记录(命令:history)是没有什么意义了(因为history只针对登录用户下执行有效,即使root用户也无法得到其它用户histotry历史)。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。通过在/etc/profile里面加入以下代码就可以实现:PS1="`whoami`@`hostname`:"'[$PWD]'historyUSER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`if [ "$USER_IP" = "" ]thenUSER_IP=`hostname`fiif [ ! -d /tmp/dbasky ]thenmkdir /tmp/dbaskychmod 777 /tmp/dbaskyfiif [ ! -d /tmp/dbasky/${LOGNAME} ]thenmkdir /tmp/dbasky/${LOGNAME}chmod 300 /tmp/dbasky/${LOGNAME}fiexport HISTSIZE=4096DT=`date "+%Y-%m-%d_%H:%M:%S"`export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/nullsource /etc/profile 使用脚本生效退出用户,重新登录上面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史,可以用这个方法来监测系统的安全性。root@zsc6:[/tmp/dbasky/root]ls 10.1.80.47 dbasky.2013-10-24_12:53:08 root@zsc6:[/tmp/dbasky/root]cat 10.1.80.47 dbasky.2013-10-24_12:53:08查看在12:53:08从10.1.80.47登录的root用户操作命令历史,不很明白您的问题。2113Linux下每个用户用5261他们各自的用户名4102登录,每个用户名下都有.bash_history(除1653非该用户或Admin另外设置),所以每个用户只会看到自己的history,而Admin只要去不同的用户下看该用户的.bash_history文件,就知道该用户的历史。如果您的用户都是共用同一个用户名,那就很难查了。本回答被网友采纳,last命令可以列出所有登陆的机器内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • ubuntu14.04安装opencv3.0.0的操作方法
  • linux系统之基础扫盲教程大全
  • linux后台运行的几种方式(小结)
  • linux(centos7)搭建svn服务器的思路
  • apache下运行cgi模式的配置方法
  • linux上创建、列出、删除docker容器方法总结
  • node.js环境在linux上的部署教程
  • centos 7.4中的远程访问控制的实现方法
  • 解决linux ftp匿名上传、下载开机自启问题
  • haproxy+keepalived实现高可用负载均衡(实例配置)
  • linux查看历史操作记录
  • 如何将Linux系统的历史操作命令删除
  • 如何查看Linux中各个用户的历史操作命令
  • linux如何快速输入从前历史命令?
  • linux命令下,删除历史命令,例如history -c。最后...
  • linux terminal 输入命令有历史记录吗?
  • linux如何快速输入从前历史命令
  • linux 中chmod命令使用的详细解释
  • linux中Shell历史命令记录文件的路径是什么?
  • 如何来清除Linux操作系统命令的历史记录
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器linux 查看历史命令并执行的方法教你隐藏linux的命令行历史linux中 shell 历史命令记录功能如何在linux命令行与其他用户通信linux中无make命令的问题(make: *** 没有指明目标并且找不到 makefile及make命令安装方法)linux telnet命令的使用linux gzip命令压缩文件实现原理及代码实例ubuntu14.04安装opencv3.0.0的操作方法linux系统之基础扫盲教程大全linux后台运行的几种方式(小结)linux(centos7)搭建svn服务器的思路apache下运行cgi模式的配置方法linux上创建、列出、删除docker容器方法总结node.js环境在linux上的部署教程centos 7.4中的远程访问控制的实现方法解决linux ftp匿名上传、下载开机自启问题haproxy+keepalived实现高可用负载均衡(实例配置)apache开启.htaccess及.htaccessservice temporarily unavailabllinux下实现免密码登录(超详细)apache rewrite url重定向功能的linux下用cron定时执行任务的方法apache性能测试工具ab使用详解centos 6.4安装配置lamp服务器(a阿里云服务器ping不通解决办法(centos+nginx+php+mysql详细配置apache you don""t have permisslinux下源码编译安装配置svn服务器的步骤阿里云添加的安全组端口以及添加后无法访linux免密码远程登录的实例详解linux系统中的tempfs与/dev/shmubuntu下用dpkg命令行运行deb安装包的方法apache设置自动将http跳转到https的方法linux(centos)环境下安装下载nginx并配linux proc目录下子文件或子文件夹的作用详解宝塔linux面板ftp无法连接的解决办法linux shell tr 命令详解
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved