一、设置历史记录的时间

# vi /etc/profile //在文件末尾添加以下内容,然后保存退出重新登陆即可

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

HISTSIZE="3000" //默认保留1000条。

export HISTTIMEFORMAT='%F %T '

2015-07-27 10:33:58 echo from1

如果是

export HISTTIMEFORMAT='%F %T' //%T少了个空格,日期与命令就连在一起了

2015-07-27 10:33:58echo from1

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

将下面两行内容追加到.bash_profile文件并重新登陆,history命令的记录数将变成3000条。

# vi ~/.bash_profile

HISTSIZE=3000

HISTFILESIZE=3000

HISTFILESIZE 定义了在 .bash_history 中保存命令的记录总数.

HISTSIZE 定义了 history 命令输出的记录数.

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

修改.bash_profile,只对当前用户的history有效,如果修改/etc/profile则对所有用户用效!

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

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

# vi ~/.bash_profile //输入以下内容

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

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

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

# vi ~/.bash_profile

HISTCONTROL=ignoredups //保存退出

测试,分别连续3次输入ls、pwd

# ls

# ls

# ls

# pwd

# pwd

# pwd

可以看到,只有1条ls和pwd命令

# cat .bash_history

#1436160573

ls

#1436160575

pwd

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

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

# vi ~/.bash_profile //将HISTCONTROL修改成erasedups

HISTCONTROL=erasedups

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

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

# vi ~/.bash_profile //添加以下内容

HISTCONTROL=ignorespace

# pwd

# service httpd stop //不被history记录的命令

# history | tail -3

68 pwd

69 history | tail -3

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

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

# vi ~/.bash_profile //添加以下内容

shopt -s histappend

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

# vi ~/.bash_profile //添加以下内容

PROMPT_COMMAND=”history -a”

这里补充下,history -a是追加当前session的历史命令记录到history文件,而history -w则是会用当前session的历史命令替换history文件

实例

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

需求:

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

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

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

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

举例用户,lionel;uid=522

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

# vi /etc/profile //添加以下内容

# add by coolnull

if [ $UID -ge 500 ];then

readonly HISTFILE=/var/history/$USER-$UID.log

readonly HISTFILESIZE=50000

readonly HISTSIZE=10000

readonly HISTTIMEFORMAT='%F %T '

readonly HISTCONTROL=ignoredups

shopt -s histappend

readonly PROMPT_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

Post Views:

33

linux session 设置时间设置,设置linux系统history相关变量,命令时间、保存history条数,多session共享history...相关推荐

  1. 【KingSCADA】如何建立硬件系统及相关变量

    小伙伴们大家好,我是雷工! 本篇学习了解KingSCADA3.8如何建立硬件系统及相关变量,以下为学习过程和操作记录. 一.前言 本篇主要讲解如何定义设备,如何定义变量. KingSCADA3.8的采 ...

  2. Linux系统登录相关(命令,应急响应可以用到)

    whoami:查看当前用户 who:查看当前登录系统的所有用户 tty指的是主机的图形化界面的面板 pts/x指的是远程ssh连接的窗口 who -b:主机的上一次启动时间 w:显示已经登陆系统的用户 ...

  3. 计算机开机时时间老变,win10系统电脑每次开机后时间都变成出厂时间的还原步骤...

    win10系统使用久了,好多网友反馈说win10系统电脑每次开机后时间都变成出厂时间的问题,非常不方便.有什么办法可以永久解决win10系统电脑每次开机后时间都变成出厂时间的问题,面对win10系统电 ...

  4. linux设置历史命令保留数目限制,linux下修改history命令保存条数

    在linux系统下.history命令会保存多少条命令呢?曾在一本书上说,如果注销系统,那么会将所有的历史命令都定入到~/.bash_history, 但只保留1000条命令(这个是由默认的shell ...

  5. linux webservice端口号,解决在Linux环境下访问webservice发送中文乱码问题的方案

    首先,看在windows环境下正常显示中文的原因:打开cmd窗口,输入:chcp你会发现输出 活动代码页: 936 查阅936的意义:它指明了当前系统使用的编码,936 代表GBK 扩展的EUC-CN ...

  6. linux系统中防止系统时间,设置系统时间与在Linux中

    设置系统时间的GPS timestamp_t结构与GPS在Linux的设置系统时间与在Linux中 timestamp_t结构 大家好, 我想,一旦我得到一个succesfull GPS锁定(写代码A ...

  7. linux使用date命令修改系统日期,使用date命令设置CentOS Linux修改系统日期和时间...

    您可以使用date命令来修改CentOS Linux的时间 修改日期: 将时间设置为2014年6月20日的命令如下: #date -s 2014年6月20日 修改时间: 将系统时间设置为14:20:0 ...

  8. linux系统时钟使用utc,如何设置时间,时区和同步系统时钟使用timedatectl命令

    该timedatectl命令是RHEL / CentOS 7和Fedora 21+根据发行,这是作为systemd系统和服务经理,用于基于sysvinit的后台程序的Linux发行版使用旧的传统dat ...

  9. linux系统怎么设置为中午_Linux修改系统时间与时区

    GMT  (Greewich Mean Time) 格林威治标准时间:GMT是老的时间计量标准,根据地球的自转和公转来计算时间,也就是太阳每天经过位于英国伦敦郊区的皇家格林尼治天文台的标准时间就是中午 ...

最新文章

  1. mysql hive 内置函数_Hive中与时间相关的内置函数
  2. android 串口调试工具_树莓派通用串口通信实验
  3. 第十二天--Property List和NSUserDefaults
  4. 《Reids 设计与实现》第十一章 服务器
  5. 20. 利用Veeam ONE监控vSphere虚拟化平台(Veeam ONE安装及配置)
  6. MATLAB函数调用
  7. dosbox运行C语言,DOSBox使用教程 在windows下模拟DOS
  8. 仪表盘故障图像识别_一张图教你识别汽车故障灯!
  9. mac 安装android apk文件,.apk文件用苹果系统怎么打开
  10. php打印直角三角形,中考几何丨通过构造直角三角形斜边上的中线结合中位线解决问题!...
  11. 威联通使用Typecho搭建博客
  12. 注销使用苹果登录的账号
  13. 手机系统更新(提示已是最新版本),怎么升级更新
  14. 小米盒子为什么搜不到电视家?电视安装包解析错误解决方案
  15. VBS + SendKeys 方法
  16. 智能网联车路协同智慧交通沙盘+无人驾驶汽车+多车协同调度系统
  17. spark程序运行异常:java.lang.OutOfMemoryError: GC overhead limit exceeded
  18. java 银行笔试题库_Java笔试题库及其答案.doc
  19. 反爬虫的简单实现-有道翻译
  20. 流动资金池:我们需要知道的一切

热门文章

  1. C++新手入门学习笔记(跟着敲)
  2. 吴恩达神经网络和深度学习-学习笔记-34-LeNet-5 + Alexnet + VGG
  3. hue安装使用,集成数据库
  4. python应用系列教程——python使用socket创建tcp服务器和客户端
  5. 从零开始--系统深入学习android(实践-让我们开始写代码-新手指南-6.使用Fragments构建动态UI)...
  6. Win8Metro(C#)数字图像处理--2.7图像伪彩色
  7. Jmeter(GUI模式)教程
  8. 洛谷 P3807 【模板】卢卡斯定理
  9. 【linux】web socket
  10. (转)大公司里怎样开发和部署前端代码?