1.命令常用符号
- `
- `ls` 反撇号内命令表示输出 Linux 命令
- *
- ls *.sh * 表示模糊匹配,*在前表示查询以 .sh结尾的文件/目录,后面反之
- -
- cd - 表示返回上次所在路径
- /
- cd / 进入根目录
- ./ 表示当前目录(复制文件到当前目录 cp xxx ./)
- ./ xxx.sh 执行 xxx.sh 文件(xxx.sh 需要可执行权限)
- &
- sleep 5 & & 表示某个命令后台执行(jobs 可调出后台ID)
- |
- cat file |grep 'a' | 表示上一个命令的输出作为下一个命令的输入(过滤条件很好用)
- >
- echo > file > 表示覆盖(echo 输出为空,将这个空值覆盖到 file,相当于清空文件)
- echo 'a' >> file >> 表示追加,将字符串 a 追加到 file
- !
- !! 执行上一个命令
- !p 执行上一次以p开头的命令
- !20 执行历史命令编号为20的命令(使用 history 查看编号)
2.shell编程
2.1.注释
- 单行注释:#
- 多行注释:(上下字符必须相同)
内容
EOF(任意字符串)
- 幻数,表示使用的解析器,第一行以#!/bin/bash
2.2.$
- 包含变量名、脚本名、位置参数
- $$ 表示当前脚本 PID
- $0 表示当前脚本名
- $n
表示命令行位置参数,从0开始计数
$1 表示第一个位置参数,$2 表示第2个位置参数,以此类推
注意:$n 放在脚本全局,表示整个脚本的第 n 个位置参数
注意:$n 放在函数中,表示这个函数的第 n 个位置参数
- $* 表示所有的位置参数
- $@ 表示所有的位置参数
- $# 表示参数个数
- $? 返回上一个指令的状态(0表示正常,其他数字表示异常)
2.3.括号
- 包含数组、计算器、判断语句、循环语句、截取字符串、判断变量
- 双中括号和单中括号都可以用作判断,但执行的方式有所不同
1.小括号(单)__数组+命令
- $( ) 命令:相当于`命令`:
- 单独使用命令时:$() ls -l
- 命令套命令时:ls -l $(pwd)
- a=(1 2 3):依次取数(顺序索引数组)1,2,3,以空格分割为一个数,定义数组
- a=([1]="a1" [4]="a4"):指定索引添加数组?
- a[1]="a":替换/添加指定的索引,将索引为1的值替换为a。若原索引1为空,那么直接添加
- 拼接两个数组
- unset a[0] :删除数组,将a索引为0 的值删除
2.小括号(