作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
本小章内容就是Linux进阶部分的日常运维部分,掌握这些日常运维技巧或者方法在我们的日常运维过程中会带来很多方便。主要从以下几个部分来讲解:
Linux日常运维-主机名&hosts
Linux日常运维-history(本章节)
Linux日常运维-SSHD(一)
Linux日常运维-SSHD(二)
Linux日常运维-ENV(一)
Linux日常运维-ENV(二)
Linux日常运维-任务计划
history
命令用于显示当前 Bash shell 会话的命令历史记录。它会列出已经在当前 shell 会话中执行过的命令,每个命令都有一个对应的序号,可以用来重新执行这些命令。
history
命令即可显示当前会话中执行过的命令列表,每行一个命令,序号从小到大排列。history
输出示例:
1 ping qq.com
2 ip a
3 ping 192.168.179.1
4 ping 192.168.179.2
5 cd /etc/sysconfig/network-scripts/
6 vi /etc/sysconfig/network-scripts/ifcfg-ens33
7 systemctl restart network
2.使用序号重新执行命令:
可以使用 !
加上命令的序号来重新执行特定的命令。例如,要重新执行历史记录中的第 3 条命令,可以这样:
!3
这将重新执行 ping 192.168.179.1
这条命令。
3.搜索历史记录:
可以使用 Ctrl+R
键来搜索历史记录中的命令。按下 Ctrl+R
后,输入关键字(如 vi
),Bash 将会显示最近使用过的包含该关键字的命令,按下 Enter
可以执行搜索到的命令。
history -c
命令清空当前 shell 会话的所有历史记录。history -w
命令将当前的命令历史记录保存到默认的历史文件(通常是 ~/.bash_history
)中,这样即使关闭 shell 会话,历史记录也能被保留。总结
1.我们通常通过该命令分析曾经执行过的命令,来确定服务器的某些状态是谁执行的,比如谁在什么时候删除了文件,修改了时间等操作。
2.非正常退出是不会保存到历史记录的,必须是正常退出才会自动保存当前shell执行的命令。
3.不同的用户的histroy是独立的 ,因为这个文件是被记录在家目录.bash_history 文件。
4.快速生成1000条的历史命令。
for ((i=1; i<=1000; i++)); do echo "echo Command $i"; history -s "echo Command $i"; done
5.最常用的配置是修改历史命令数量,和添加时间戳及用户功能。
HISTSIZE=10000
export HISTTIMEFORMAT="%F %T $(whoami)"
6.ctrl+r 搜索以后,如果这个命令被执行过多次,可以继续用ctrl+r 继续向前搜索。