shell外壳:GUI:Gnome、KDE、Xface
CLI:sh、csh、ksh、bash、tcsh。zsh
程序:
进程:进程是程序的副本,是程序执行的实例,每个进程认为他执行的当前程序只支持它自己。,每个进程只看到内核和当前进程,它看不到这个程序的其它进程。
shell 支持子shell,并且子shell可以不是与父不是同一种shell
bash特性:1、命令历史
2、管道、重定向
3、命令别名
4、命令行编辑
5、命令行展开
6、文件名统配
7、变量
8、编程
1、命令行编辑:
光标移动:Ctrl+a :跳到行首。
ctrl+e:跳到行尾
ctrl+d:删除光标处字符
ctrl+u:删除光标处到行首
ctrl+k:删除光标处到行尾
ctrl+(左右键盘):一次移动一个单词
ctrl+l:清屏
2、历史命令:history:查看历史命令
-c:清空历史记录
-d:删除特定某行,或者连续的几行的命令
-w:将缓冲区的命令写至历史文件
.bash_history:记录操作历史记录
环境变量:HISTSIZE:history环境变量,默认为1000个
命令历史的使用记录:上下箭头
!数字:执行历史命令中的第N条命令。
!-数字:执行历史命令中的倒数第N条命令。
!!:执行上一条命令
! string:执行最后一次与string想匹配的命令
!$:引用上面最后一个命令的最后一个参数。
esc 松开点。
alt+. 都是引用上一个命令的最后一个参数
命令不全:在path环境变量下搜索补全。
路径补全:在目录下查找并不全命令
命令别名:alias:仅在当前shell生命周期中有效
alias 名字=“命令 可以加参数”
alias:显示当前所有别名
撤销:unalias
命令替换:把命令中某个命令替换为其执行结果的过程。
echo “ the corrent directory is $(pwd).”
[root@LAB1 ~]# echo “he corrent directory is $(pwd).”
the corrent directory is /root.”
时间格式:+%F-%H-%M-%S
命令替换:$(命令) 或者`命令`
bahs中的引号
・・:命令替换(!前面的那个反引号)
“”:弱引用,可以实现变量替换
‘’:单引号,强引用,不能实现变量替换。
文件名通配:globbing
*:任意长度的任意匹配
?:单个字符的任意匹配
[]:制定范围内的任意匹配
[^]:制定范围外的任意匹配
[:space:]:空格字符
[:punct:]:标点符号
[:lower:]:小写字符
[:upper:]:大写字符
[:alpha:]:大小写字符
[:digit:]:数字
[:alnum:]:数字和大小写字符
[^[:alpha:]]:非字母
系统设定:默认标准输入设备:标准输入: STDIN:键盘:0
默认标准输出设备:标准输出:STDOUT:屏幕显示器:1
默认错误输出:STDERR:屏幕:2:
I/O重定向
输出重定向:> 追加输出 : >>
输入重定向:<
例如:ls /var > /tmp/aaa.out
2>:错误输出重定向
2>>:追加的方式实现错误输出重定向。
例如:ls /varr 2> /tmp/err.out
ls /var > /tmp/aab.out 2> /tmp/erra.out
&> :重定向标准输出或者错误输出到同一个文件中
ls /varrr &> /tmp/aac.out
字符转化:tr
tr 'a-z' 'A-Z' < /tec/fstab
<< :在此处生成文档(输入结束)
<< EOF 或 <<END
cat >> /tmp/myfile.txt <<EOF 键盘输入的文件保存在myfile文档中
管道命令: 命令1|命令2|命令3
echo "Hello word" |tr 'a-z' 'A-Z'
cut -d : -f1 /etc/passwd /sort -n
tee:多重管道
echo ‘hello word ’ |tee /tmp/a.out. hello word即输出到屏幕也输出到a.out文档中
文本查找:grep egrep fgrep
grep:Global Research 根据某种模式去搜索文本,并将符合模式的文本输出
moshi:pattern:文本字符和正则表达式的元字符组成的匹配条件
grep: -i:忽略大小写
--color:匹配上的颜色显示
-v:反向查找(显示没有匹配上的)
-o:只显示匹配上的字符串
正则表达式:Regular Expression REGEXP
本地元字符:.:匹配任意单个字符
*:匹配前面的字符任意次
.*:任意长度的任意字符
\?:次数匹配,匹配前面的字符至多一次
\{m,n\}:匹配前面的字符至少m次,至多n次。
系统别的地方的元字符:* :任意长度的多个字符
?:任意单个字符
[ ]:制定范围
[^]::取反