linux bash基础特性
使用history
命令,取得命令历史,当bash进程结束后,会把命令历史存放到文件中,下次开机还能看到命令历史。
-
定制
history
:通过设置环境变量,来定制history-
环境变量$HISTSIZE:默认值是1000,也就是最多存1000条命令。
-
环境变量$HISTFILE:默认值是/home/登录用户/.bash_history。root用户是/root/.bash_history。bash进程退出后,把内存里的命令历史存放到此文件中。
-
环境变量$HISTFILESIZE:默认值是1000。命令历史文件的大小。
-
环境变量$HISTCONTROL:默认值是ignoredups。忽略重复的命令。
- ignorespace:忽略以空格开头的命令。当不想让命令记录到history中时,使用此技巧。
- ignoreboth:忽略以空格开头的命令,忽略重复的命令。
-
修改环境变量的方法
$ HISTCONTROL=ignoreboth
-
-
语法:
history [-c] [-d offset] [n] or history -anrw [filename] or history -ps arg [arg...]
- -c:清空全部历史
- -d offset:删除指定位置的历史
- -a:只把在这个会话里用过的命令,追加保存到文件$HISTFILE中
- -r:加载文件$HISTFILE里的内容到history list内存中。
- -w:把history list内存中的所有命令,都追加到文件$HISTFILE中
- n:显示最后n条命令历史。
-
调用历史命令
!
- !n:执行指定n处的命令
- !!:执行上一次命令
- !STRING:执行最近一个以STRING开头的命令。
-
获得上一次命令里的最后一个参数
-
Esc .
-
Alt .
-
!$
# ls /etc/systemd/system/sysinit.target.wants/ dmraid-activation.service lvm2-monitor.service rhel-import-state.service iscsi.service multipathd.service rhel-loadmodules.service lvm2-lvmetad.socket rhel-autorelabel.service lvm2-lvmpolld.socket rhel-domainname.service # cd !$ cd /etc/systemd/system/sysinit.target.wants/
-