通过键盘上的方向键↑和方向键↓来快速找到最近的几次输入命令。比如我们依次输入了以下几个命令:cd cm5 ls cd .. ls pwd这几个命令
站在用户的角度思考问题,与客户深入沟通,找到万载网站设计与万载网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、做网站、企业官网、英文网站、手机端网站、网站推广、空间域名、虚拟主机、企业邮箱。业务覆盖万载地区。
当我们输入方向键↑的时候会看到之前的一个命令pwd。这样就不用再输入命令了。
当我们再按下方向键↑的时候,我们会看到之前的倒数第二个命令ls。依次类推,可以一直往前找。而方向键↓可以往后找。
如果要找的命令需要按↑键很多次的时候,就不太方便了,这时候我们可以用history命令来查看。
history命令默认会查看最近的所有命令,如果我们只想看最近的几条命令,可以使用history 数字的形式。
当然history可以配合grep命令使用,如果想查看最近的命令中包含cd的命令,可以使用history|grep cd
如果我们想执行历史记录中的第83个命令,cd /etc/yum.repos.d,我们可以将此命令复制,粘贴执行。也可以采用如下方式:!83
Bash是Linux系统(包括MacOS)默认的shell,它也可以安装在Windows 10上,Bash shell可以保存你运行过的命令的历史记录,并将它们保存在历史文件中。Bash在运行时,会将内部命令列表保存在内存中,在退出时会写入bash历史中。
实时保存 Bash在运行时,会将内部命令列表保存在内存中,在退出时会写入.bash_history中。如果你想确保它们总是实时写入,你可以将该命令放入PROMPT_COMMAND变量中:export PROMPT_COMMAND='history -a'
设置历史存储默认值
在我们开始使用bash history之前,我们可以修改一些bash的设置来让他更好使用。Bash允许我们修改它在历史中存储的先前命令的数量。
有两种不同的方式处理:HISTFILESIZE 参数配置历史文件中存储了多少个命令,而HISTSIZE控制当前会话存储在内存中的数量。
用 nano ~/.bashrc
打开~ /.bashrc文 在编辑器中更改这些设置:
找到HISTSIZE和HISTFILESIZE这两个参数。如果它们已经被设置过来,就修改这些值。如果这些参数还没有出现,只需添加它们。出于我们的目的,我们可以轻松地将1000行存储到磁盘,并将最后的500行加载到内存中。对于大多数系统,这是一个保守的估计,但是如果你觉得对性有的影响,可以进行调整:
修改后使用快捷键Ctrl+O保存,回车写入,Ctrl+X退出到nano。
默认情况下,bash在每个会话结束时写入其历史记录,并覆盖以前存在的文件。这意味着如果你使用多个bash会话登录,只有最后一个bash窗口退出才会保存其历史记录。
使用快捷键
为了查看我们最后运行的bash命令,我们可以使用许多击键来获得优势并节省时间。
下箭头或Ctrl+N:转到下一个命令。多次点击将显示我们上次运行的命令。
向上箭头或Ctrl + P:转到上一个命令。
多次敲击相同的按键将通过我们使用的命令向后移动。
Alt + R:这也称为反向搜索,并且很有用。
当你只记你之前输入的命令的零散部分时候,这会很有帮助,有的系统是Ctrl+R
如图所示,''被搜索,bash寻找历史记录中最后与之相匹配的命令。
查看bash历史记录 查看命令的历史很容易,直接运行history命令。
我们可以使用grep命令来缩小搜索范围。
我们甚至可以通过tail命令来查看最近五次使用的命令。
或者,我们甚至可以截断tail命令,并简单地传递我们想要查看的命令的数量。
从bash history中执行第n个命令
将整个bash历史显示出来很不错,但它并不能帮助我们轻松访问这些命令,除非作为参考。如果我们想要执行bash历史记录中的第n个命令,比如第15个命令,输入 !15就会立即回顾并执行与历史记录第15个关联的命令。
特别提示
现在我们很好地了解了如何利用bash提供的历史操作,其中的某些方法很有效。
当我们需要找到某条命令的位置,如果知道bash具有这样操作命令就非常方便了。
熟练掌握上面的命令可帮助我们提高工作效率哟!
last
-a 把从何处登入系统的主机名称或ip地址,显示在最后一行。
-d 指定记录文件。指定记录文件。将IP地址转换成主机名称。
-f 记录文件 指定记录文件。
-n 显示列数或-显示列数 设置列出名单的显示列数。
-R 不显示登入系统的主机名称或IP地址。
-x 显示系统关机,重新开机,以及执行等级的改变等信息
以下看所有的重启、关机记录
last | grep reboot
last | grep shutdown
history
列出所有的历史记录:
[zzs@Linux] # history
只列出最近10条记录:
[zzs@linux] # history 10 (注,history和10中间有空格)
使用命令记录号码执行命令,执行历史清单中的第99条命令
[zzs@linux] #!99 (!和99中间没有空格)
重复执行上一个命令
[zzs@linux] #!!
执行最后一次以rpm开头的'命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
[zzs@linux] #!rpm
逐屏列出所有的历史记录:
[zzs@linux]# history | more
立即清空history当前所有历史命令的记录
[zzs@linux] #history -c
cat, tail 和 watch
系统所有的日志都在 /var/log 下面自己看(具体用途可以自己查,附录列出一些常用的日志)
cat /var/log/syslog 等
cat /var/log/*.log
tail -f
如果日志在更新,如何实时查看 tail -f /var/log/messages
还可以使用 watch -d -n 1 cat /var/log/messages
-d表示高亮不同的地方,-n表示多少秒刷新一次。
该指令,不会直接返回命令行,而是实时打印日志文件中新增加的内容,
这一特性,对于查看日志是非常有效的。如果想终止输出,按 Ctrl+C 即可。
除此之外还有more, less ,dmesg|more,这里就不作一一列举了,因为命令太多了,关键看个人喜好和业务需求.个人常用的就是以上那些
linux日志文件说明
/var/log/message 系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/secure 与安全相关的日志信息
/var/log/maillog 与邮件相关的日志信息
/var/log/cron 与定时任务相关的日志信息
/var/log/spooler 与UUCP和news设备相关的日志信息
/var/log/boot.log 守护进程启动和停止相关的日志消息
/var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
1、当前登录用户信息
who:
用户名、终端类型、登陆日期以及远程主机地址。
who /var/log/wtmp
可以查看自从wtmp文件创建以来的每一次登陆情况
-H:打印每列的标题
users命令: 打印当前登录的用户,从上面可以看到我自己从不同主机同时登录,所以下面显示2次。
2、查看命令历史
每个用户的命令历史记录保存在 ~/.bash_history 文件里,
或者在终端输入: history
要想再执行哪条,使用 !96 重新执行该条命令。
3、last命令查看用户登录历史
此命令会读取 /var/log/wtmp文件;/var/log/btmp可以显示远程登陆信息。
last默认打印所有用户的登陆信息。
如果想打印某个用户的登陆信息,可以使用
last 用户名
一些选项:
(1)-x:显示系统开关机以及执行等级信息
(2)-a:将登陆ip显示在最后一行
(3)-d:将IP地址转换为主机名
(4)-t:查看指定时间的用户登录历史
例如: 查看axing在
axing@ax:~$ last axing -a -t 20190201160000
4、lastlog命令查看所有用户最近一次登录历史
读取/var/log/lastlog文件;用户排列顺序按照/etc/passwd中的顺序
一些选项:
(1) -u:查看某用户的最后一次登录记录
比如: lastlog -u axing
(2) -t:查看最近几天之内的用户登录历史
比如: lastlog -t 1
查看最近1天之内的登陆历史
(3) -b:查看指定天数之前的用户登录历史
例如: lastlog -b 60
查看60天之前的用户登录历史
5、ac命令
根据/var/log/wtmp文件中的登陆和退出时间报告用户连接的时间(小时),默认输出报告总时间
需要安装:
(1)-p:显示每个用户的连接时间
(2)-d:显示每天的连接时间
(3)-y:显示年份,和-d配合使用
ctrl+r 然后输入搜索的关键词,
比如:之前输入过一个命令 /etc/profile
只要ctrl+R 然后输入就可以查询到这个命令,可以用上下箭头进行模糊查看ctrl+r 然后输入搜索的关键词,
比如:之前输入过一个命令vim /etc/profile
只要ctrl+R 然后输入vim就可以查询到这个命令,可以用上下箭头进行模糊查看
Ctrl+r
然后输入,自动匹配输过的命令
继续按Ctrl+r,匹配下一个