1.什么命令可以查看用户之前输入的所有命令?如果要更改配置文件将

1.什么命令可以查看用户之前输入的所有命令?如果要更改配置文件将,第1张

一、查看Linux系统的历史记录指令

1、 使用w命令查看登录用户正在使用的进程信息

w命令用于显示已经登录系统的用户的名称,以及他们正在做的事。该命令所使用的信息来源于/var/run/utmp文件。w命令输出的信息包括:

• 用户名称

• 用户的机器名称或tty号

• 远程主机地址

• 用户登录系统的时间

• 空闲时间(作用不大)

• 附加到tty(终端)的进程所用的时间(JCPU时间)

• 当前进程所用时间(PCPU时间)

• 用户当前正在使用的命令

Exampl:

此外,可以使用who am i查看使用该命令的用户及进程,使用who查看所有登录用户进程信息,这些查看命令大同小异;

2、使用pkill强制退出登录的用户

使用pkill可以结束当前登录用户的进程,从而强制退出用户登录,具体使用可以结合w命令;

首先:使用w查看当前登录的用户,注意TTY所示登录进程终端号

其次:使用pkill –9 -t pts/1 结束pts/1进程所对应用户登录(可根据FROM的IP地址或主机号来判断)

3、使用history指令查看历史用户 *** 作指令

使用完W指令查看用户的 *** 作进程后,使用history指令可以看到以往的用户 *** 作指令。

History使用参数

[neusoftadmin@server]# history [n] **:数字,要列出最近的 n 笔命令列表

[neusoftadmin@server]# history [-c] **:将目前的shell中的所有 history 内容全部消除

[neusoftadmin@server]# history [-raw] histfiles

-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,

则预设写入 ~/.bash_history

-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中

-w :将目前的 history 记忆内容写入 histfiles。

备注:

Linux系统当你在shell(控制台)中输入并执行命令时,shell会自动把你的命令记录到历史列表中,一般保存在用户目录下的.bash_history文件中。默认保存1000条,你也可以更改这个值。

如果你键入 history, history会向你显示你所使用的前1000个历史命令,并且给它们编了号,你会看到一个用数字编号的列表快速从屏幕上卷过。你可能不需要查看1000个命令中的所有项目, 当然你也可以加入数字来列出最近的 n 笔命令列表。

linux中history命令不仅仅让我们可以查询历史命令而已. 我们还可以利用相关的功能来帮我们执行命令。

二、查看所有登录用户的 *** 作历史的代码

通过在/etc/profile里面加入以下代码就可以实现:

**#this script records log of user,and records IP address .**

PS1="`whoami`@`hostname`:"'[$PWD]'

history

USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`

if [ "$USER_IP" = "" ]

then

USER_IP=`hostname`

fi

if [ ! -d /tmp/Iprecords ]

then

mkdir /tmp/Iprecords

chmod 777 /tmp/Iprecords

fi

if [ ! -d /tmp/Iprecords/${LOGNAME} ]

then

mkdir /tmp/Iprecords/${LOGNAME}

chmod 300 /tmp/Iprecords/${LOGNAME}

fi

export HISTSIZE=4096

DT=`date "+%Y-%m-%d_%H:%M:%S"`

export HISTFILE="/tmp/Iprecords/${LOGNAME}/${USER_IP} Iprecords.$DT"

chmod 600 /tmp/Iprecords/${LOGNAME}/*Iprecords* 2>/dev/null

[neusoftadmin@server]# source /etc/profile ********执行脚本

重启之后,上面脚本在系统的/tmp新建个Iprecords目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内 *** 作历史,可以用这个方法来监测系统的安全性。

linux查看过去用过的命令如下;

1、切换到要查看的用户下。

2、运行history命令即可。

cat /那个用户的家目录/.bash_history

linux的bash内部命令history就可以显示命令行的命令历史,默认环境执行 history

命令后,通常只会显示已执行命令的序号和命令本身。

如果想要查看命令历史的时间戳,那么可以执行:

# export HISTTIMEFORMAT='%F %T '

# history | more

1 2008-08-05 19:02:39 service work restart

2 2008-08-05 19:02:39 exit

3 2008-08-05 19:02:39 id

这样显示的格式就变成,序号 - 时间 - 命令行。

history的其他的一些基本功能:

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

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

条:

# vi ~/.bash_profile

HISTSIZE=450

HISTFILESIZE=450

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

默认情况下,命令历史存储在 ~/.bash_history 文件中。

添加下列内容到 .bash_profile 文件并重新登录

bash shell,将使用 mandline_warrior 来存储命令历史:

# vi ~/.bash_profile

HISTFILE=/root/mandline_warrior

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

在下面的例子中,pwd 命令被连续执行了三次。

执行 history 后会看到三条重复的条目。

要剔除这些重复的条目,可以将

HISTCONTROL 设置为 ignoredups:

# export HISTCONTROL=ignoredups

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

上例中的 ignoredups 只能剔除连续的重复条目。

要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成

erasedups:

# export HISTCONTROL=erasedups

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

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

# history -c

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

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

# export HISTIGNORE=”pwd:ls:ls -ltr:”


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9012493.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存