shell 是一个命令解释器,提供用户和机器之间交互
支持特定语法,逻辑判断、循环
每个用户都可以有自己特定的shell
centos7 默认shell为bash
还有zsh、ksh
yum list|grep zsh
yum list|grep ksh
命令历史
history命令
.bash_history
ls /用户家目录/.bash_history 查看历史记录,即历史记录存放位置
[[email protected] yum.repos.d]# echo $HISTSIZE #查看最大保存历史记录数
1000
[[email protected] yum.repos.d]# history -c #清楚历史记录
[[email protected] yum.repos.d]# history #再次验证,只有刚刚使用的一条
1 history
修改历史记录保存最大值
/etc/profile中修改
soure /etc/profile 使修改的数字生效
修改历史命令显示时间
[[email protected] ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
[[email protected] ~]# echo $HISTTIMEFORMAT
%Y/%m/%d %H:%M:%S
临时生效
[[email protected] ~]# history
1 2018/01/11 05:47:08history
2 2018/01/11 05:47:58ls -l .bash_history
3 2018/01/11 05:48:01cd ..
4 2018/01/11 05:48:07cd .
5 2018/01/11 05:48:08pwd
6 2018/01/11 05:48:11cd /root/
7 2018/01/11 05:49:29cat /etc/profile
8 2018/01/11 05:49:44vim /etc/profile
9 2018/01/11 05:49:48vi /etc/profile
10 2018/01/11 05:54:50echo $HISTTIMEFORMAT="%y/%m/d% %H:%YM:%S "
11 2018/01/11 05:55:18HISTTIMEFORMAT="%Y/%m%d %H:%M:%S"
12 2018/01/11 05:55:29echo $HISTTIMEFORMAT
13 2018/01/11 05:55:44HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
14 2018/01/11 05:55:45echo $HISTTIMEFORMAT
15 2018/01/11 05:56:25history
永久生效
vim /etc/profile
HISTSIZE=1000
添加:HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
重新登录 history验证
330 2018/01/11 05:48:11cd /root/
331 2018/01/11 05:49:29cat /etc/profile
332 2018/01/11 05:49:44vim /etc/profile
333 2018/01/11 05:49:48vi /etc/profile
334 2018/01/11 05:54:50echo $HISTTIMEFORMAT="%y/%m/d% %H:%YM:%S "
335 2018/01/11 05:55:18HISTTIMEFORMAT="%Y/%m%d %H:%M:%S"
336 2018/01/11 05:55:29echo $HISTTIMEFORMAT
337 2018/01/11 05:55:44HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"
338 2018/01/11 05:55:45echo $HISTTIMEFORMAT
339 2018/01/11 05:56:25history
340 2018/01/11 05:56:56yum install vim
341 2018/01/11 06:00:06vim /etc/profile
342 2018/01/11 06:01:57source $HISTTIMEFORMAT
343 2018/01/11 06:02:56source $!
344 2018/01/11 06:03:51source /etc/profile
345 2018/01/11 06:04:12echo $HISTTIMEFORMAT
346 2018/01/11 06:04:17exit
347 2018/01/11 06:04:25history
348 2018/01/11 06:04:49vim /etc/profile
349 2018/01/11 06:05:31history
正常退出后都可永久保存
chattr +a ~/.bash_history
!! 上一条命令
!n 第n条命令
!echo 从下往上找最近一次 以echo开头的命令
命令补全及别名
tab键 一下补全命令 两下补全所有内容
centos7下参数补全 安装bash-comletion,按2下除了可以补充命令本身,还能补全参数
alias别名
定义别名
[[email protected] ~]# alias restartnet=‘systemctl restart network.service‘
[[email protected] ~]# restartnet
Job for network.service failed. See ‘systemctl status network.service‘ and ‘journalctl -xn‘ for details.
[[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-tild
alias 位置
1、用户家目录/.bashrc
2、/etc/profile.d/
[[email protected] ~]# cd /etc/profile.d/
[[email protected] profile.d]# ls
256term.csh colorgrep.csh colorls.sh less.csh vim.sh
256term.sh colorgrep.sh lang.csh less.sh which2.csh
bash_completion.sh colorls.csh lang.sh vim.csh which2.sh
[[email protected] profile.d]#
取消自定义的别名
unalias 别名
通配符
- 满足条件的任一个
? 满足条件的某一个
【】范围 范围内满足条件的范围 [0-9a-zA-Z]
{,,,} 范围内满足条件的某一个
重定向
输出重定向
正确输出到目标文件
cat 1.txt > 2.txt 把1.txt的内容输出到2.txt去,同时把2.txt原内容抹去> 追加重定向
cat 2.txt >>2.txt 把1.txt的内容输出到2.txt去,同时把2.txt原内容保留
2> 错误重定向输出
输出重定向,错误输出重定向分开
[[email protected] ~]# ls [12].txt aaa.txt > 1.txt 2>a.txt
[[email protected] ~]# cat 1.txt
1.txt
2.txt
[[email protected] ~]# cat a.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
&>错误重定向
[[email protected] ~]# ls [12].txt aaa.txt &> a.txt
[[email protected] ~]# cat a.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
1.txt
2.txt
2>> 错误追加重定向
[[email protected] ~]# ls aaa.txt 2>>a.txt
[[email protected] ~]# cat a.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
1.txt
2.txt
ls: 无法访问aaa.txt: 没有那个文件或目录
< 输入重定向
[[email protected] ~]# wc -l 1.txt
2 1.txt
[[email protected] ~]# wc -l < 1.txt
2
只能文件到命令,不能文件到文件
原文地址:http://blog.51cto.com/13528516/2059633