23. shell介绍、历史 命令补全和别名 通配符 输入输出重定向

拜拜、爱过 提交于 2019-12-30 12:33:49

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

8.1 shell介绍

8.2 命令历史

8.3 命令补全和别名

8.4 通配符

8.5 输入输出重定向

 

8.1 shell介绍:

shell是一个命令解释器,提供用户与机器之间的交交互

支持特定语法,不如逻辑变换、循环

每个用户都可以有自己特定的shell

centos7默认shell为bash(Bourne Agin Shell)

还有zsh、ksh等

 

可以看一下有没有zsh ksh

[root@localhost ~]# yum list |grep zsh

zsh.x86_64 5.0.2-28.el7 @base

autojump-zsh.noarch 22.3.0-3.el7 epel

zsh-html.x86_64 5.0.2-28.el7 base

zsh-lovers.noarch 0.9.0-1.el7 epel

[root@localhost ~]# yum list |grep ksh

ksh.x86_64 20120801-137.el7 base

mksh.x86_64 46-8.el7 base

python-XStatic-Rickshaw.noarch 1.5.0.0-4.el7 epel

python-moksha-common.noarch 1.2.3-2.el7 epel

python-moksha-wsgi.noarch 1.2.2-2.el7 epel

python2-moksha-hub.noarch 1.5.9-1.el7 epel

结果有的

--------------------------------------------------------------------------------------------------------------------------------------

 

8.2 命令历史:

 

~history命令

~.bash_history 用户的家目录下/.bash_history可以查看敲过的命令

~最多存1000条

~变量 HISTSIZE echo $HISTSIZE 为1000 是有他控制的

history -c清空内存中的敲过的命令,不会清空配置文件里的

退出终端的时候才保存到配置问文件里去

~/etc/profile中修改

vi /etc/profile 找到history将1000可改为5000,即保存5000条

重启生效或者,source /etc/profile也可生效

非正常关机不会记录命令(不全)

~HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

年 月 日 小时 分钟 秒

执行history时刻显示该命令使用的时间

~永久保存chattr +a ~/.bash_history

~!! 执行最后一条命令

~!n n代表数字 执行第几条命令

~!word 跟命令 在历史里倒着找出现的这条命令

 

---------------------------------------------------------------------------------------------------------------------------------------

 

8.3 命令补全和别名:

 

~ tab键,敲一下,敲两下

只有这一个开头的一下补全。多个两下列出

~参数补全,安装bash-completion

yum install -y bash -completion

需重启

~alias别名给命令重新起名字

alias chongqiwangluo='systemctl restart network.service'

直接alias可以列出系统里所有的别名,包括自己设置的

unalias chongqiwangluo 取消该别名

~各用户都有自己配置别名的文件 ~/bashrc

别名各自用户家目录下的/bashrc下

~ls /etc/profile.d/

还有一部的别名在 /etc/profile.d/xia

~自定义的alias放到~/bashrc

 

 

---------------------------------------------------------------------------------------------------------------------------------------

 

8.4 通配符,8.5 输入输出重定向:

 

 

~ls *.txt

*表示通配

~ls ?.txt

?表示一个任意的字符,两个的列不出来

~ls [0-9].txt

[]表示或者的意思,一个或者多个范围。[0-9a-zB-W]也可以这样写,多个范围

~ls {1,2}.txt

{}也是或者的意思,但是要这样写{1,2,3,4}

 

 

 

~cat 1.txt > 2.txt

> 重定向,把1.txt的文件内容输出到2.txt里面去。2.txt内容会删除

~cat 1.txt >> 2.txt

>>追加,1.txt追加到2.txt。2.txt内容不会删除

~ls aaa.txt 2>err

2>错误重定向 表示该命令的错误信息输出到err这个文件里去,原err文件内容消失

~ls aaa.txt 2>>err

2>>错误追加重定向 表示该命令的错误信息追加到err这个文件离去,原err文件内容不会消失

~command >1.txt 2>&1

&> = >+2>(不是命令,只是这样表示)

ls 存在的.txt 不存在的.txt &> 1.txt 即正确的输出和错误的信息都到1.txt里面去

同样支持追加 &>>

也可以一起写

ls [12].txt 不存在的.txt >1.txt 2>2.txt 即正确的输出到1.txt 错误的输出到2.txt

~wc -l < 1.txt (几乎不用。做了解)

<输入到一条命令,即查看1.txt的行数

<的左边必须是一条命令

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!