一个工具·bash-completion
选项/参数补齐
1
|
$ apt install bash-completion |
Bash中的常用命令
type
1
|
# 查询指令是否为bash shell的内置指令(找指令) |
echo
1
2
3
4
|
# 变量的取用与设置
$ $Variable_Name | ${Variable}
# 设置myname变量:
$ myname=zhe |
printf
1
2
3
|
# Usage
$ printf format-string [args...]
$ printf "%d %s\n" 1 "abc" |
test
1
2
3
|
# test命令用于测试某个条件是否成立
# 测试对象: 数值,字符串,文件
# [] 也是用于测试某个条件是否成立的,等价于 test 指令 |
unset
1
2
|
# 取消设置的变量
$ unset myname |
反单引号
1
|
# 反单引号包含的命令会优先执行,结果作为外部的输入 |
env
set
1
|
# 列出系统所有变量(环境变量 & 自定义变量) |
$
1
2
|
# 目前shell的pid
# 本身就是一个变量 |
?
1
2
|
# 上个执行指令的回传值:0-正确,!0-错误
# 本身就是一个变量 |
export
1
2
|
# 自定义变量转化成环境变量
# 自定义变量不能被子程序bash继承 |
locale
read
1
2
3
4
5
|
# 读取键盘输入的变量
# -p:后面接提示信息
# -t:后面接等待的秒数
$ read -p "Please keyin your name: " -t 30 myname
$ echo $myname |
declare/typeset
1
2
|
# 宣告变量的类型
# Options: [-aixr] |
ulimit
1
2
|
# 与文件系统及程序的限制关系
$ ulimit [-SHacdfltu] [配额] |
alias & unalias
1
2
|
# 命令的别名与取消命令的别名
$ alias 别名='指令 选项...' |
history
1
2
3
4
5
|
# Bash命令历史 | 别名如下
$ alias h='history'`
$ !n` 执行第 n 条命令
$ !!` 执行上一条命令
$ !command` 执行最近的以'command'开头的指令 |
Bash Shell操作环境
命令执行顺序
1
2
3
4
|
# 路径下搜索( 绝对 /bin/ls | 相对 ./ls )
# alias
# builtin
# $PATH 中的第一个 |
Bash的环境配置文件
login shell
取得bash时需要完整的登陆流程
login shell读取的配置文件
non-login shell
- 取得bash接口的方法不需要重复操作
non-login shell读取的配置文件
通配符
*
代表 “0 到无穷多个” 任意字符
?
代表 “一定有一个” 任意字符
[]
代表 “一定有一个在括号内” 的字符(非任意字符)
数据流重导向
stdin
:代码为0, <
或 <<
stdout
:代码为1, >
或 >>
stderr
:代码为2, 2>
或 2>>
>
& 2>
覆盖
>>
& 2>>
累加
命令执行的判断依据
;
不考虑指令相关性的连续下达
&&
||
$?
上个指令的回传值
管道 Pipe
See Also
Thanks to the authors 🙂