bash及其特性

对于整个操作系统,shell是离用户最近的

shell:外壳

GUI:Gnome,KDE,Xface

CLI:sh,bash,csh,ksh

假如两个用户同时登陆,程序只有一个,进程是2个

进程:在每个进程看来,当前主机上只存在内核和当前进程

进程是程序的副本,进程是程序执行的实例

用户工作环境:大环境相同,小环境不同

bash:

#

$

tom,jerry

shell中有子shell的概念

#bash 开启一个子shell,可以使用pstree查看,通过exit退出


bash特性:

1,命令历史:

2,管道、重定向

3,命令别名alias

4,命令行编辑

5,命令行展开

6,文件名通配

7,支持使用变量

8,支持编程


光标快速跳转:

ctrl+a跳到行首

ctrl+e跳到命令行尾

ctrl+u 删除光标之前的内容

ctrl+k删除光标之后的内容

ctrl+左右键 跳转一个单词


命令历史:

查看历史命令:history

-c:清空命令历史 #history -c

-w:保存命令历史至历史文件 #history -w test.txt


环境变量:

PATH:命令搜索路径 #echo $PATH

HISTSIZE:命令历史缓冲区大小 #echo $HISTSIZE (1000)

命令历史的使用技巧:

!n:执行命令中的第n条命令 eg:!41

!-n:执行命令中倒数第n条:eg !-5

!!执行上一条命令

!string :执行命令历史中最近一个以指定字符串开头的命令

!$:引用前一个命令的最后一个参数,也可以:

ESC => .

ALT + .

命令别名:

定义别名:alias commandalias = 'command [options] [arguments]' eg:alias cls=clear

定义的别名只在当前的shell生命周期中有效 :别名的有效范围仅为当前shell进程

想要永久有效,

#alias:查看当前系统的所有别名

unalias 别名:撤销别名 eg:unalias cls

使用别名原命令:\command


命令替换:把命令中某个子命令替换为其执行结果的过程 $(command)或`command` 反引号

[root@localhost wilson]# echo "the current directory is $(pwd)."

the current directory is /home/wilson.

练习:创建文件:file-2014-06-10-19-33-20.txt

[root@localhost wilson]# touch ./file-$(date +%F-%H-%M-%S).txt

[root@localhost wilson]# ls

Desktop  file-2014-06-10-19-35-19.txt  test.txt


bash支持的引号:

``,命令替换(反引号)

"":弱引用,可以实现变量替换

'':强引用,不完成变量替换


文件名通配,globbing

*:匹配任意长度的任意字符

?:匹配“单个”任意字符

[]:匹配指定范围内的任意单个字符

[abc](任选abc一个),范围:[a-z],[A-Z],[0-9]

[^]:匹配指定范围之外的任意单个字符

[:space:] 表示所有的空白字符

[:punct:]所有标点符号的集合

[:lower:]所有的小写字母

[:upper:]所有的大写字母

[:alpha:]大小写字母

[:digit:]数字=[0-9]

[:alnum:]数字和大小写字母

man 7 glob

 touch abc abc ab123 xyz x12 xyz123

ls a*

ls a*3 以a开头,3结尾

ls [a-zA-Z]*[0-9] 以字母开头,数字结尾

ls ?y* 一个字母开头+y+任意长度任意字符

ls ??y* 两个字母开头+y+任意长度任意字符

ls [^0-9]* 非数字开头

 touch 'a b' (中间一个空格)

ls [[:alpha:]]*[[:space:]]*[[:alpha:]] 显示字母开头,字母结尾,中间必须有空格

ls [[:alpha:]]*[[:space:]]*[^[:alpha:]] 显示字母开头,“非”字母结尾,中间必须有空格

显示所有文件名中包含了数字的文件:

ls *[0-9]*

ls *[[:digit:]]*

显示所有以数字结尾且文件名中不包含空白的文件

ls *[^[:space:]]*[0-9]

显示文件名包含了非字母或数字的特殊符号的文件:

ls *[^[:alnum:]]*


你可能感兴趣的:(操作系统,history,程序,缓冲区,工作环境)