初步bash
2016-05-30 22:46
274 查看
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:]](非标点符号)
...
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整理
- bash脚本输入密码不回显问题的解决方法
- bash 编程中循环语句用法
- Linux BASH多进程并行处理的方法实现
- BASH 学习笔记小结
- 写出健壮Bash Shell脚本的一些技巧总结
- Bash Shell中忽略大小写的设置方法
- Linux bash Shell中的变量类型详解
- Linux系统中bash shell编程的10个基础问题讲解
- linux BASH shell下设置字体及背景颜色
- bash获取当前路径示例
- Bash Shell 注释多行的几种方法
- linux bash字符串处理大全
- 让代码整洁、过程清晰的BASH Shell编程技巧
- 使用Bash Shell获取文件名和目录名的简单方法
- Bash Shell脚本学习小结
- bash批量修改文件名称的方法小结(增加,去除,修改后缀)
- Bash Shell中Shift用法分享
- bash 循环中变量作用范围的问题分析
- 在Debian系的Linux中检查软件包是否被安装的方法