1、历史命令history
[root@localhost ~]# history 【选项】[历史命令保存文件]
选项:
-c :清空历史命令
-w :强制把缓存中的历史命令写入历史命令保存文件 ~/.bash_history (因为缓存中的内容不是实时写入该文件中的,需要该用户登录退出时,才会写入。所以如果有特别需求,可以通过该选项强制将缓存中的历史命令即时写入历史命令保存文件)
[root@localhost ~]# history
1 ifconfig eth0 192.168.1.132
2 ifconfig
3 setup
4 service network start
5 ifconfig
6 ll /etc/passwd
7 clean
8 clear
9 vi /etc/passwd
10 man 5 /etc/passwd
11 man 5 passwd
12 vim /etc/passwd
13 vim /etc/shadow
省略其他,该命令显示出了该用户之前所执行过的命令
查看下历史命令保存文件,如下
[root@localhost ~]# cat .bash_history
ifconfig eth0 192.168.1.132
ifconfig
setup
service network start
ifconfig
ll /etc/passwd
clean
clear
vi /etc/passwd
man 5 /etc/passwd
man 5 passwd
如果想要清空历史命令保存文件,可以通过加history -c 历史命令保存文件来清空该文件中的内容
2)历史命令保存文件放在哪儿?
答:正常情况下,放在用户的家目录下,以bash_history 命令,每个用户有一个。
如果用户特别更改了该文件的存放位置,则以上不符。
3)建议正常情况下不清空该文件。
4)历史命令默认会保存1000条,保存的条数可以在环境变量配置文件/etc/profile中进行修改
注意:/etc/profile 是Linux中重要的环境变量配置文件,
历史命令保存文件默认保存多少条的配置选项在该文件中的
HISTORYSIZE=1000 处,如果要修改该值,需要该用户退出重新登录才能生效
[root@localhost ~]# vim /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=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/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 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/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
5)历史命令的调用:
》使用上、下箭头调用以前的历史命令;
》使用“!n” 重复执行第n条历史命令; 注:n 表示该命令为第几条,使用history 命令即可查看各条命令的编号
》使用“!!” 重复执行上一条命令; 注:n 表示该命令为第几条,使用history 命令即可查看各条命令
》使用“!字串”重复执行最后一条以该字串开头的命令; 注:字串表示命令的开头开始的字符,系统自动匹配最近的命令开头和该字串相匹配的命令
2、命令与文件补全:
》在Bash中,命令与文件补全是非常方便与常用的功能,我们只要在输入命令或文件是,按“Tab”键就会自动进行补全
可以多次按Tab键进行补全提示
建议使用Tab补全命令代替自己手动补全,防止自己输错。