初步bash

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初步bash相关的知识,希望对你有一定的参考价值。

bash及其特性:

shell:外壳(也是一种程序)

GUI:Gnome,KDE,Xfce

CLI:sh,csh,ksh(unix),bash,tcsh,ksh(linux),zsh


sh的特点:

1.每一个用户打开一个shell都是占用不同的进程,尽管是同一个程序

2.sh可以嵌套使用,bash里面可嵌套bash,可用pstree命令查看,子bash和父bash互不影响

3.不同的shell也可以混用如bash-->ksh-->bash-->csh ...



bash的特点:(支持以下功能)

1.命令历史

2.管道、重定向

3.命令别名

4.命令行编辑

5.命令行展开

6.文件名统配

7.变量

8.编程(shell 脚本)

9.命令补全


命令行编辑

光标跳转:

Ctrl+a:跳到命令行行首

ctrl+e:跳到命令行行尾

ctrl+u:删除从光标到行首

ctrl+k:删除从光标到行尾

ctrl+l:清屏

命令历史:

查看命令历史:history

-c:清空命令历史

-d: history -d 4: 删除第4个命令;  history -d 4 1 :删除第4个以及后面1个命令

-w: 保存命令历史至历史文件中去 /home/.bash_history

使用技巧:!+ ‘n‘ 例如:!4: 第四条命令

!+ ‘-n‘   例如:!-4:倒数第四条命令

!!:执行上条命令

!+ string:执行最近一条和 string字符相同的命令如 !man

!$:引用前一个命令最后一个参数 或者 esc . 或者 alt .

命令别名:

alias CMDALIAS=‘COMMAND [option] [argument]‘ alias cls=‘clear‘

在shell中定义的别名仅在当前shell生命周期中有效;别名的范围仅为当前shell进程,如果想永久生效,写入指定文件

alias 可以查看当前系统所有别名

撤销别名:unalias CMDALIAS

如果重命名的别名与原系统中命令重名,想使用原声系统的命令 \CMD 命令前加 ‘\‘即可


命令替换:

方式1:$(CMD) 方式2:反引号:`CMD`

把命令中某个子命令替换成为其执行结果的过程:echo "the current directory is %(pwd) ."

创建一个文件命名为 file-2016-4-5-00-00.txt :touch ./file$(date +%F-%H-%M-%S).txt


bash支持的引号:

``:命令替换

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

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


文件名统配:globbing 

*:任意长度的任意字符

?:匹配任意单个字符,占位符

[]:匹配 任意范围内的 单个字字符,例如:[abc],[a-z],[A-Z],[a-zA-Z],

[[:space:] (空白字符集合)],

[[:punct:](标点符号字符集合)],

[[:lower:](小写字母)]

[[:upper:](大写字母)]

[[:alpha:](大小写字母)]

[[:digit:](数字)]

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

#man 7 glob

要求:找到符合字母开头中间有空格数字结尾的文件: # ls [[:alpha:]]*[[:space:]]*[[:digit:]]

[^]:与上上面的取反,匹配 任意范围之外的 单个字符

[^[:space:]](非空格)

[^[:punct:]](非标点符号)

...


以上是关于初步bash的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程初步

2017-11-27Linux基础知识(14)bash特性之脚本编程初步

linux之shell编程初步

Strace 的初步使用, 结合nginx

git的初步使用

linux初步