SHELL脚本,常用规范:
- 第一行声明SHELL,如:#!/bin/bash
- 脚本功能;
- 脚本的版本信息;
- 脚本作者与联络方式;
- 脚本的版权声明方式;
- 脚本的History(历史记录);
- 脚本内较特殊的命令,使用【绝对路径】的方式来执行;
- 脚本运行时需要的环境变量PATH预先声明与设置。
常用SHELL命令:
指令 | 描述 | 参考 |
---|---|---|
netstat -tuln | 本机启动的网络服务(端口80:WWW、22:ssh、21:ftp、25:mail、111:PRC(远程)、631:CUPS(打印)) | P403 |
指令 | 描述 | 参考 |
---|---|---|
history | 能够记录使用过的指令 | P314 |
alias | 设置命令别名 | P314 |
type | 查询命令是否为BASH shell内置命令 | |
od | 针对非纯文件文件进行处理 | P191 |
file | 查看文件类型 | P200 |
ulimit | 限制用户资源(开启文件数、CPU使用时间、可用内存数) | P329 |
bash | 启动子进程(exit退出) | |
source | 读取环境配置文件 如(source ~./bashrc) | P341 |
time | 显示程序运行时间 | P267 |
last | 显示登陆者信息 | P352 |
split | 拆分文件,如果文件太大,如一个4GB的文本文档,内存较小,可以进行拆分。 | P357 |
id(非管道命令) | 查看uid,gid等id信息 | P358 |
xargs(管道命令) | 读取stdin的数据,并以某种空格或换行符作为分隔符,将其作为参数,提供给后面的命令command 通过-n说明,按1个一个赋予参数。常用于为非管道命令提供stdin使其可以使用标准输入。 |
P358 |
dmesg | 列出内核信息 | |
sh | 开启子进程,运行shell脚本文件,运行结束后,子进程bash消失 | P392 |
test | 测试文件属性,并返回结果,常与&&和||结合在一起 | P396 |
authconfig --test | 查看当前的加密机制 | P423 |
运算符 | 描述 | 参考 |
---|---|---|
${var} | 取变量值 | P318 |
var=value | var="myname is $uname" 设置变量值 | P319 |
|
将echo参数内容没有管道则导入到屏幕,如果有管道则传给管道后面作为其stdin | P394 |
\\ | 转义特殊变量值符号 | P319 |
\[Enter] \$ \\ \(一个看不见的空格) | \' 换行、$、\、空格、单引号 | P319 |
var="$var"value | (如PATH="$PATH":/home/bin,其中value是【:/home/bin】 (有个冒号)) 变量追加内容 | P319 |
export var | 使变量称为环境变量 | P319 |
unset var | 取消变量 | P318 |
$(command) `command` | 取命令执行结果 | P320 |
${var#keyword}(一般是用通配符*) | 删除${var}从左向右的一个符合keyword的最短匹配项 | P332 |
${var##keyword} | 删除${var}从左向右的一个符合keyword的最长匹配项 | P332 |
${var%keyword} | 删除${var}从右向左的一个符合keyword的最短匹配项 | P332 |
${var%%keyword} | 删除${var}从右向左的一个符合keyword的最长匹配项 | P332 |
${var/旧字符串/新字符串} | echo ${path/bin/BIN}, 替换${var}从左往右第一个匹配的旧字符串 | P332 |
${var//旧字符串/新字符串} | echo ${path//bin/BIN}, 替换${var}从左往右全部匹配的旧字符串 | P332 |
var2=${var1-str} |