curl
- 输出某个文件 -o(output)
- curl -o ./build-android-app.sh http://git.caimi-inc.com/client/jenkins-pack-code/raw/master/android/app/build-android-app.sh 将url 转为本地的./build-android-app.sh
- 一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具
- -s 减少输出的信息,比如进度
- -d 指定POST的内容
- curl -s -d "type=android&appname=${ProjectName}" "http://192.168.4.233:8092/api/get_channel_txt_by_appname" > ${dir}/markets.txt
chmod
- chmod [-cfvR] [--help] [--version] mode file...
- chmod 777 file
- 其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
- r=4,w=2,x=1 r 表示可读取,w 表示可写入,x 表示可执行
- 若要rwx属性则4+2+1=7;
- 若要rw-属性则4+2=6;
- 若要r-x属性则4+1=7。
#!/bin/bash
- 这个脚本需要什么解释器来执行 使用bash来执行
set [+-abCdefhHklmnpPtuvx]
- 设置shell执行过程中发生的事 所有
- -a 标示已修改的变量,以供输出至环境变量。
- -b 使被中止的后台程序立刻回报执行状态。
- -C 转向所产生的文件无法覆盖已存在的文件。
- -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
- -e 若指令传回值不等于0,则立即退出shell。
- -f 取消使用通配符。
- -h 自动记录函数的所在位置。
- -H Shell 可利用"!"加<指令编号>的方式来执行history中记录的指* 令。
- -k 指令所给的参数都会被视为此指令的环境变量。
- -l 记录for循环的变量名称。
- -m 使用监视模式。
- -n 只读取指令,而不实际执行。
- -p 启动优先顺序模式。
- -P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
- -t 执行完随后的指令,即退出shell。
- -u 当执行时使用到未定义过的变量,则显示错误信息。
- -v 显示shell所读取的输入值。
- -x 执行指令后,会先显示该指令及所下的参数。
- +<参数> 取消某个set曾启动的参数。
export [-fnp][变量名称]=[变量设置值]
- 用于设置或显示环境变量 效力仅及于该次登陆操作
- -f 代表[变量名称]中为函数名称。
- -n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
- -p 列出所有的shell赋予程序的环境变量。
$ $() ${}
- $ 获取变量的值
- $() 括号里面是个执行的命令
- ${} 效果类似于$
find
- find path -option [ -print ] [ -exec -ok command ]
- 寻找某个路径下的文件
- find . -name "gradlew"
|
- 管道符号 把前面1个找到的结果输出给后面1个
head
- 用来查看具体文件的前面几行的内容
- head -n 1一直读到n行 但是要删掉头部第一行
[[]] []
- [[]]中可以是使用&& ||
- []需要用-a -o !来表示
if else then fi
- -f 如果文件为常规文件 就是真的
- -d 如果文件为目录 就为真
- -e 如果文件存在就为真
dirname [file]
- 寻找这个文件的目录
>> >
- 讲某句话输入到 某个文件中 追加内容
- echo "" >> ${dir}/gradle.properties 强制换行
- > 表示文件不存在就创建 存在就清空
../ ./ . ~
- 一个点.代表[当前目录]
- 两个点..代表上一个目录
- ./filename代表当前目录下的文件
- ~代表用户的home 目录
ssh
scp
- 通过ssh的方式来讲文件进行copy操作(cp)
jq
- jq .key filename 在file中解析为key的value json所使用
sh
与bash对应的脚本解释器 用sh结尾的都可以用这个来开头写 表示我字儿这句的解释器不一样了
ssh
- 最简单的方式就是登录某台主机 ssh user@hostname ssh obelisk@192.168.2.73
- -p 指定端口号
- ssh pi@10.42.0.47 ls -l 运行远程主机的命令
- -o StrictHostKeyChecking=no 可规避没有信任关系挂死的问题
sudo
- 暂时执行超级管理员才能执行的命令
- -i 暂时不用每次都输入密码
- -u 以指定用户的身份执行命令 后面要跟着一个用户名