GUI:GNOME,KDE,Xfce CLI:sh,csh,ksh,bash,tcsh,zsh
允许一个用户登录多次 进程:在每一个进程看来,当前主机上只存在内核和当前进程 进程是程序的副本,进程是程序执行的实例
bash自身是外部命令 但是它带有自身命令
bash: shell,子shell
某些设定bash之间互不影响(非环境变量)
Ctrl+a:跳到命令行首 Ctrl+e:跳到命令的行尾 Ctrl+u:删除光标到行首 Ctrl+k:删除光标到行尾 Ctrl+l:清屏
上下箭头即可以翻历史命令
history
:查看命令历史
-c:清空命令历史
-d offset [n] :删除指定位置的命令
history -d 500 3 从500
-w :保存命令历史到文件中去
PATH:命令搜索路径 HISTSIZE:命令历史缓冲区大小
!n :执行命令历史中的第n条命令 !-n:执行命令历史中的倒数第n条命令 !!:执行上一条命令 !string:执行命令历史中最近一次匹配的命令 引用前一个命令的最后参数 !$:引用前一个命令的最后参数 ESC,. 上一次命令 ALT+.
PATH: TAB:自动补全 连敲两次TAB键 路径补全:(文件,目录补全)在给定的打头的路径下查找
alias CMDalias=command [option] 注意:如果有空格必须要单引号。 在shell定义的别名仅在当前生命周期中有效;别名的有效范围为当前shell进程。 alias 可以显示系统上所有的别名 ualias cmdalias
把命令中某个子命令替换为其执行结果的过程 file-2013-02-28-53-31.txt touch ./file-$(date +%F-%H-%M-%S).txt
``:命令替换 "":弱引用,可以实现变量替换 '':强引用,不完成变量替换
*:可以匹配任意长度的任意字符
?:匹配任意单个字符
[]:匹配指定范围内的单个字符
[abc] [a-z] [A-Z] [0-9] [a-zA-z]
[^]:匹配指定范围内之外的任意单个字符
touch a b touch 'a b'
[:space:]:空白字符
[:punct:] :标点符号
[:lower:]:小写字母
[:upper:]:大写字母
[:digit:]:数字
[:alnum:]:数字和字母
man 7 glob
[[:alpha:]]*[[:space:]]*[[:alpha:]]
[^[:alpha:]]
ls [am]*
ls *[0-9] ls *[[:digit:]]
ls [^[:space:]]*[0-9]
ls *[^[:alnum:]]*