记录历史命令,history,命令补全和别名通配符输入输出重定向
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录历史命令,history,命令补全和别名通配符输入输出重定向相关的知识,希望对你有一定的参考价值。
shellshell是一个命令解释器,提供用户与机器之间的交互,支持特定的语法(逻辑判断、循环等);
每个用户都可以有自己特定的shell;
centos7默认shell为bash,其他shell还有zsh、ksh等;
命令历史
history命令:
可以查看历史命令;
在用户的家目录下的.bash_history文件中保存着之前敲过的命令,
默认最大存储1000条;
history命令可以查询;
更改存储数:
更改变量HISTSIZE来达到更改存储数;
编辑文件vim /etc/profile
vim /etc/profile
修改HISTSIZE值,将HISTSIZE=1000改为5000
HISTSIZE=5000
更新缓存文件
source /etc/profile
查看变量值
[[email protected] ~]# echo $HISTSIZE
5000
[[email protected] ~]#
给history命令加上时间与日期
临时生效:
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
[[email protected] ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
[[email protected] ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[[email protected] ~]# history | grep 2000
2000 2018/01/10 18:34:46 tar -zxvf httpd-2.2.34.tar.gz
2041 2018/01/10 19:31:53 history | grep 2000
[[email protected] ~]#
永久生效方法:
vim /etc/profile
增加变量定义
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
HISTSIZE=5000
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "
更新缓存
[[email protected] ~]# source /etc/profile
[[email protected] ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
[[email protected] ~]#
特殊命令
-
!!:表示执行上一条命令;
[[email protected] ~]# pwd /root [[email protected] ~]# !! pwd /root [[email protected] ~]#
-
!n:这里的n表示数值,,表示执行命令历史中的第n条指令;
[[email protected] ~]# history | grep 1002 1002 2018/01/10 18:34:46 rmdir 123 2023 2018/01/10 18:45:15 history |grep 1002 2048 2018/01/10 19:44:16 history | grep 1002 2050 2018/01/10 19:45:21 history | grep 1002 [[email protected] ~]# !2050 history | grep 1002 1002 2018/01/10 18:34:46 rmdir 123 2023 2018/01/10 18:45:15 history |grep 1002 2048 2018/01/10 19:44:16 history | grep 1002 2050 2018/01/10 19:45:21 history | grep 1002 [[email protected] ~]#
- !字符串:表示执行历史命令中最近一次一字符串开头的命令,必须两个以上;
[[email protected] ~]# !pw pwd /root [[email protected] ~]#
命令补全和别名
命令补全
centos7支持命令参数补全;
centos6只支持命令补全,不支持参数补全;
安装bash-completion包:
yum install -y bash-completion
安装后,重启生效;
别名
当常用的命令与参数过长,我们可以定义一个别名来实现;
格式:
alias [别名] = ‘[源命令]‘
systemctl restart network.service
将这条重启网卡服务的命令定义一个新的命令restartnet
[[email protected] ~]# alias restartnet=‘systemctl restart network.service‘
[[email protected] ~]# alias
alias cp=‘cp -i‘
alias egrep=‘egrep --color=auto‘
alias fgrep=‘fgrep --color=auto‘
alias grep=‘grep --color=auto‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias restartnet=‘systemctl restart network.service‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[[email protected] ~]#
[[email protected] ~]# rest
restartnet restorecon
取消别名
格式:
unalias [自定义别名]
[[email protected] ~]# unalias restartnet
[[email protected] ~]# alias
alias cp=‘cp -i‘
alias egrep=‘egrep --color=auto‘
alias fgrep=‘fgrep --color=auto‘
alias grep=‘grep --color=auto‘
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
alias mv=‘mv -i‘
alias rm=‘rm -i‘
alias which=‘alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde‘
[[email protected] profile.d]# restartnet
-bash: restartnet: 未找到命令
[[email protected] profile.d]#
别名存放目录:
用户家目录下:~/.bashrc文件;
其他命令目录:/etc/profile.d/目录下的
通配符
- :在bash下,可以用来匹配零个或多个字符;
- ?:在bash下,?号表示匹配一个字符;
- [n-n]:n表示数值,n-n表示范围,例如:[0-3]表示范围0到3;
- *实验1:使用来查询;**
[[email protected] abc]# ls *txt 1.txt 2.txt 3.txt [[email protected] abc]# ls *.txt 1.txt 2.txt 3.txt [[email protected] abc]#
实验2:使用?来查询;
[[email protected] abc]# ls ?.txt
1.txt 2.txt 3.txt
[[email protected] abc]# ls 1?txt
1.txt
[[email protected] abc]#
实验3:使用【n-n】方括号范围来查询;
[[email protected] abc]# ls
1.txt 2.txt 3.txt a
[[email protected] abc]# ls [0-2].txt
1.txt 2.txt
[[email protected] abc]#
实验4:查询范围数字0-9的.txt 小写字母 大写字母.txt;
[[email protected] abc]# ls [0-9a-zA-Z].txt
1.txt 2.txt 3.txt a.txt B.txt
[[email protected] abc]#
实验5:“与”语句查询;
[[email protected]shu-test abc]# ls [a].txt
a.txt
[[email protected] abc]# ls [a3].txt
3.txt a.txt
[[email protected] abc]#
实验6:花括号
[[email protected] abc]# ls {1,2,a}.txt
1.txt 2.txt a.txt
[[email protected] abc]#
输入输出重定向
- >:输出重定向,将一个字符串输出到一个文本中;输入两次后只计算后面一次;
- >>:追加重定向,将一个字符串追加输入到一个文本中;
- <:输入重定向;
- 2>:错误重定向,将错误信息重定向到某个文本中;
- 2>>:错误追加重定向,将错误信息追加到某个文本中;
实验1:输出重定向;
[[email protected] abc]# echo "123" > x.txt
[[email protected] abc]# echo "456" > x.txt
[[email protected] abc]# cat x.txt
456
[[email protected] abc]#
实验2:追加重定向;
[[email protected] abc]# cat x.txt
123
[[email protected] abc]# echo "234" >> x.txt
[[email protected] abc]# cat x.txt
123
234
[[email protected] abc]# echo "345" >> x.txt
[[email protected] abc]# cat x.txt
123
234
345
[[email protected] abc]#
实验3:错误重定向;
[[email protected] abc]# ls [12].txt aaa.txt >x.txt 2>y.txt
[[email protected] abc]# cat x.txt
1.txt
2.txt
[[email protected] abc]# cat y.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
[[email protected] abc]#
以上是关于记录历史命令,history,命令补全和别名通配符输入输出重定向的主要内容,如果未能解决你的问题,请参考以下文章
shell介绍命令历史 命令补全和别名 通配符输入输出重定向
Linux学习笔记(二十三)shell介绍history命令历史命令补全和别名通配符
8.1 shell介绍 8.2 命令历史 8.3 命令补全和别名 8.4 通配符 8.5 输入输出重