linux显示指令条数,Linux系统设置 history 相关系统变量(包括显示时间、history条数)...

Linux系统设置 history 相关系统变量(包括显示时间、history条数)

摘要

显示history时间;history条数;指定存储history文件;控制实时写入history文件

一、设置历史记录的时间

编辑 /etc/profile文件

# vi /etc/profile

在文件末尾添加

exportHISTTIMEFORMAT='%F %T '#注意有个空格,为了显示时日期与命令之间有空格分割。

exportHISTSIZE="10000"#默认保留10000条。

保存

重新login即可生效。

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

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

# vi ~/.bash_profileexportHISTSIZE=450exportHISTFILESIZE=450

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

三、使用 HISTFILE更改历史文件名称

默认情况下命令历史存储在 ~/.bash_history 文件中 。 添加下列内容到 .bash_profile 文件并重新登录 bash shell, 将使用 /var/history/$USER-$UID.log 来存储命令历史 :

# vi ~/.bash_profileexportHISTFILE=/var/history/$USER-$UID.log

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

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

# vi ~/.bash_profile

export HISTCONTROL=ignoredups

保存

测试# ls# ls# ls# pwd# pwd# pwd  $ cat .bash_history #1436160573

ls#1436160575

pwd

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

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

# export HISTCONTROL=erasedups

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

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

# export HISTCONTROL=ignorespace# pwd#  service httpd stop(不被history记录的命令)# history | tail -368pwd69history | tail -3

七、用户打开多个终端(产生多个session)情况下,共享history

由于bash的history文件默认是覆盖,如果存在多个终端,最后退出的会覆盖以前历史记录,改为追加形式

shopt -s histappend

八、实时追加history,不必等用户退出才将内存中的history记录到文件

PROMPT_COMMAND=”history -a”

==================================

实例,设置uid大于等于500的用户的history安全性

需求:

·记录统一转移到/var/history目录下;

·用户无法删除自己的history文件,无法清空history;

·多个终端共享history,实时追加;

·限制history文件大小和保存的条数;

举例用户,lionel;uid=522

1)配置全局环境变量文件/etc/profile

#vi /etc/profile

……# add by shenxiaoranif[$UID-ge500];then

readonlyHISTFILE=/var/history/$USER-$UID.log

readonlyHISTFILESIZE=50000

readonlyHISTSIZE=10000

readonlyHISTTIMEFORMAT='%F %T '

readonlyHISTCONTROL=ignoredups

shopt-shistappend

readonlyPROMPT_COMMAND="history -a"fi

创建目录结构

# mkdir /var/history

配置目录权限,使得用户有权限创建自己的history文件

# chmod 777 /var/history

# chmod a+t /var/history

2)限制用户删除自己的history文件

# chattr +a /var/history/lionel-522.log

3)限制用户修改自己主目录的环境变量配置文件

# chattr +a /home/lionel/.bash*

# lsattr /home/lionel/.bash*-----a------- /home/lionel/.bash_logout-----a------- /home/lionel/.bash_profile-----a------- /home/lionel/.bashrc

4)禁止普通用户切换到系统中其他shell环境(一般包括csh,tcsh,ksh)

# chmod 750 tcsh(csh是tcsh的软连接,设置tcsh就可以了)

# chmod 750 /bin/ksh

普通帐号测试

[zhangfei@node1 ~]$ tcsh-bash: /bin/tcsh: Permission denied[zhangfei@node1 ~]$ ksh-bash: /bin/ksh: Permission denied

你可能感兴趣的:(linux显示指令条数)