bash和vim的使用-1
我们知道对Linux操作系统而言,shell是离用户最近的程序,也是用户和计算机能够交互的程序
shell:外壳,用户直接连入计算机的时候使用的外壳程序
shell分类:
GUI(Graphical User Interface):Gnome,KDE,Xfce
CLI(Command Line Interface):
bsh(早期)
csh(加州大学伯克利分校,近似于C语言)
ksh(属于商业化的产品)
bash(Linux流行,开源,所有Linux都能运行)
tcsh
zsh(最新)
bash的特性:
Bash作为大多数linux系统的默认字符解释器,必须必须必须得学好!
Bash的优势:
1.默认保存历史命令(可用上下键翻看)
2.命令仅需输入前几位就可以用tab键补全(RHEL7更牛的是参数补全)
3.强大的批处理脚本
4.实用的环境变量
常用特性:
命令行编辑(光标跳转)
Ctrl + A:跳到命令行首
Ctrl + E:跳到命令行尾
Ctrl + U:删除光标至命令行首的内容
Ctrl + K:删除光标至命令行尾的内容
Ctrl + L:清屏
命令历史:history
命令初识:type history
常用选项:
-c:清空命令历史
-w:保存命令历史到历史文件中
使用技巧
!n:执行命令历史中的第n条命令
!!:执行上一条命令
!string:执行命令历史中最近一个以指定字符串开头的命令
!$:执行最后一条命令
用前一个命令的最后一个参数
按下Esc松开再按.
Alt+.(只能在本地用)
命令/路径补全(按TAB)
输入的部分命令能够唯一识别,按tab补全,不能则连按两次tab
搜索我们给出的起始路径下的每个文件名,并试图补全
命令别名
作用:为使用频率较高的复杂命令行设置简短的调用名称
生效范围:在shell中定义的别名仅在当前shell进程中有效
查看命令别名
格式:alias [别名]
设置命令别名
alias 别名='实际执行的命令'
取消已设置的命令别名
格式:unalias 别名
unalias -a //表示取消所有
使别名永久生效
将设置命令保存到~/.bashrc文件中
命令替换
作用:把命令中某个子命令替换为其执行结果的过程
$(COMMAND) 或反引号 `COMMAND`
例如:
echo "The current directory is $(pwd)."
touch ./file-$(date +%F-%T).txt
``:反引号,代表命令替换
“”:弱引用,可以实现变量替换,即本来是个变量,最后替换成了它的值
‘’:强引用,不完成变量替换
文件名通配
*:匹配任意长度的任意字符
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[^]:匹配指定范围外的任意单个字符
字母数字表示方式
[a-z] 匹配小写字母
[A-Z] 匹配大写字母
[0-9] 匹配数字
[0-9a-zA-Z] 匹配数字和字母
字符集表示方式
[[:space:]] 匹配空格
[[:lower:]] 小写
[[:upper:]] 大写
[[:alpha:]] 大小写
[[:digit:]] 数字
[[:punct:]] 标点符号
[[:alnum:]] 字母大小写+数字
实例:
ls [[:digit:]][[:alpha:]]* //查找第一个字符是数字,第二个是字母的文件。
ls [^[:digit:]]* //查找第一个字符不是数字的。
ls | grep a //查找以a开头的文件。
ls | grep 6$ //以6结尾的文件。
echo "fdgd" > go-home 把*放到go-home里。
echo "fdfdfd" >> go-home 追加到go-home
然后cat go-home 就可以都看到。不追加的话只能覆盖,只能看到一个输出结果。
ls 666 2> 666.err //错误输出,而不是显示在屏幕上。
ls 666 &> 666.err //把正确和错误的输出结果,都写进去。放进同一个文件。
//从标准输入中读入
cat > test .txt <<EOF 回车--//把cat变成了文本编辑器。把cat的输出结果输入到test/txt中。
>12131
>1313
>EOF 中间为test中的内容 以EOF结尾结束。
重定向标准输入:
cat > test .txt <<qwe 回车--//把cat变成了文本编辑器。把cat的输出结果输入到test/txt中。
>12131
>1313
>qwe 中间为test中的内容 EOF可以随意替换,但结尾必须和上边的命令一致。