Linux环境下查看历史操作命令及清除方法

在Linux环境中可以通过方向键的上下按键查看近期键入的命令。但这种方法只能一个一个的查看,其实系统提供了查看所有历史命令的方法。

在终端中输入以下命令查看所有命令:

history

[[email protected] ~]# history
    1  ifconfig
    2  vim /etc/ssh/sshd_config
    3  /etc/init.d/sshd restart
    4  vim /boot/grub/grub.conf
    5  vim /etc/selinux/config
    6  vim /etc/sysconfig/network-scripts/ifcfg-eth0
    7  rm -rf /etc/udev/rules.d/70-persistent-net.rules
    8  useradd vsroot
    9  echo -e ‘vsroot\tALL=(ALL)\tNOPASSWD: ALL‘ >> /etc/sudoers
   10  yum clean all
   11  rm -rf /var/log/yum.log
   12  rm -rf /var/lib/yum/*
   13  rm -rf /root/install.log
   14  rm -rf /root/install.log.syslog
   15  rm -rf /var/log/anaconda.*

history命令列出了所有已键入的命令,用户所键入的命令都会记录在文件中,该文件保存在当前登录用户的家目录中。

文件名称为:.bash_history,该文件是一个隐藏文件。

历史操作命令的清除:

如果在服务器中干了不好的事情,可以通过“history -c”命令进行清除,那么其他人登录终端时就无法查看历史操作命令了。

但此命令并不会清除保存在文件中的记录,因此需要手动删除.bash_profile文件中的记录。

配置是否记录历史操作命令或记录条数:

在“/etc/profile”配置文件中可以配置是否记录历史操作命令。

vi /etc/profile

[[email protected] ~]# cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc

# It‘s NOT a good idea to change this file unless you know what you
# are doing. It‘s much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.

pathmunge () {
    case ":${PATH}:" in
        *:"$1":*)
            ;;
        *)
            if [ "$2" = "after" ] ; then
                PATH=$PATH:$1
            else
                PATH=$1:$PATH
            fi
    esac
}

if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

# Path manipulation
if [ "$EUID" = "0" ]; then
    pathmunge /sbin
    pathmunge /usr/sbin
    pathmunge /usr/local/sbin
else
    pathmunge /usr/local/sbin after
    pathmunge /usr/sbin after
    pathmunge /sbin after
fi

HOSTNAME=`/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
    export HISTCONTROL=ignoreboth
else
    export HISTCONTROL=ignoredups
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done

unset i
unset -f pathmunge
[[email protected] ~]#

在profile配置文件中找到HISTSIZE选项,该配置选项用于配置历史操作命令条数的。

如果将此值置0则不记录历史操作命令。

默认该值为1000,也就是记录最近的1000条命令。

如果需要增大后缩小记录的条数,则修改相应的值即可。

时间: 2024-10-06 16:07:14

Linux环境下查看历史操作命令及清除方法的相关文章

Linux环境下查看网络性能的基本命令

                 Linux环境下查看网络性能的基本命令 由于Linux经常使用的是字符界面,而且Linux的功能比较强大,具有默认路由功能,相当于网关和路由器.在网络性能方面也比较稳定,而且配置简单.当然在配置网络的时候可能会发生网络的连通性不稳定或者不通.一下命令或许对大家有所帮助: 1.curl & wget 使用curl或wget命令,不用离开终端就可以下载文件.如你用curl,键入curl -O后面跟一个文件路径.wget则不需要任何选项.下载的文件在当前目录. cur

Windows/Linux环境下查看Java进程ID方法

如果启动多个Java程序,因所有Java程序都在JVM中运行,进程管理器会出现多个java.exe,但如何确定某个Java程序与进程中java.exe是对应的呢? 可以使用Java自带的VisualVM工具实现,在Windows的CMD控制台或者Linux终端下执行"jvisualvm"命令进入Java VisualVM工作台. 鼠标双击左侧树形进程列表中某一进程(PID即为进程ID),在弹出窗口右下方点击"系统属性"选项卡,向下拖动滚动条到底部,查看"u

Linux环境下查看服务器硬件配置信息以及服务占用资源命令

查看机器型号: dmidecode | grep"Product Name" 查看网卡信息: dmesg | grep -ieth 查看CPU信息: cat /proc/cpuinfo 只看CPU型号: cat/proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 查看物理CPU个数: grep "physical id" /proc/cpuinfo|sort -u|wc -l 查看每个物理CPU内核个数: grep&qu

[转]Linux环境下查看线程数的几种方法

1.cat /proc/${pid}/status 2.pstree -p ${pid} 3.top -p ${pid} 再按H,或者直接输入 top -bH -d 3 -p  ${pid} top -H手册中说:-H : Threads toggle加上这个选项启动top,top一行显示一个线程.否则,它一行显示一个进程. 4.ps xH手册中说:H Show threads as if they were processes这样可以查看所有存在的线程. 5.ps -mp <PID>手册中说

在Linux环境下设置 ora-01031:insufficient privileges解决方法总结

今天需要使用sys用户处理问题,但是报错上面ora-01031:insufficient privileges. 在网上有很多方法,这个是自己经过测试的方法步骤. 1:首先检查文件sqlnet.ora文件是否设置正确(文件地址就是你oracle安装的目录) [html] view plain copy # sqlnet.ora Network Configuration File: /app/oracle/product/10.2.0/network/admin/sqlnet.ora # Gen

Linux环境下进程的CPU占用率

阿里云服务器网站:https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=qqwovx6h 文字来源:http://www.samirchen.com/linux-cpu-performance/ 1.Linux 环境下查看 CPU 信息 1.1.查看 CPU 详细信息 通过 cat /proc/cpuinfo 命令,可以查看 CPU 相关的信息: [[email protected]~]$cat/proc/cpuinfo

mosquitto在Linux环境下的部署/安装/使用/测试

mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. 使用传统源码安装步骤: 步骤1:http://mosquitto.org/files/source/官网下载源码,放到Linux环境中.解压后,找到主要配置文件config.mk,其中包含mosquitto的安装选项,需要注意的是,默认情况下mosquitto的安装需要OpenSSL(一个强大的安全

Linux环境下线程的同步与互斥以及死锁问题

由于本次要讨论操作系统的死锁问题,所以必须先研究的是linux环境下的线程同步与互斥 先看下面的代码 大家猜想输出应该是什么呢? 结果是下面这个样子 好吧,似乎并没有什么区别... 那么下面再看这段代码(请无视并忽略屏蔽的内容...) 大家猜想正确的结果是什么呢?5000,10000? 好吧,或许你们都错了. 在运行了一段时间后,它的结果是这样的. 是不是又对又错? 为什么呢? 这就是因为程序中printf语句作用:本身是库函数,所以必须进行系统调用,必须进入内核进行切换,有很大概率形成数据的混

Linux环境下使用JFS文件系统

Linux环境下使用JFS文件系统 JFS是IBM公司为linux系统开发的一个日志文件系统.从IBM的实力及它对Linux的态度来看,JFS应该是未来日志文件系统中最具实力的一个文件系统. JFS提供了基于日志的字节级文件系统,该文件系统是为面向事务的高性能系统而开发的.JFS 能够在几秒或几 分钟内就把文件系统恢复到一致状态.JFS能够保证数据在任何意外宕机的情况下,不会造成磁盘数据的丢失与损坏. 一.JFS文件系统特点 1.存储空间更大 JFS 支持的最小文件系统是 16M 字节.最大文件