常见shell种类
1 Bourne Shell(/usr/bin/sh或/bin/sh) 2 Bourne Again Shell(/bin/bash) 3 C Shell(/usr/bin/csh) 4 K Shell(/usr/bin/ksh) 5 Shell for Root(/sbin/sh)
切换root管理员
注释
#!解析器路径 #单行注释 <<BLOCK 多行注释 BLOCK : ' 多行注释 ' name变量命名后面可以为"和‘ echo "¥变量" 一定要双引号
echo打印输出
文件系统
第一列: 常规文件(-) 目录(d) 链接(l) 特殊档案(c) 套接(s) 命名管道(p) 块设备(b) 第二列代表存储块的数量 第三列代表文件的所有者或具有管理权限的超级用户 第四列代表所有者/超级用户组 第五列代表文件大小 第六列表示创建或最后修改文件的日期和时间 最后一列代表文件或目录的名称
r 读 w 写 x 执行
- 第一个插位(
-
)表示由test.sh命名的文件:文件(-)、目录(d),链接(l) - 前三个插位(
rwx
)代表所有者(owner)的权限:文件所有者的权限是读、写和执行 - 中三个插位代表所属组(group)的权限,r-x代表有读和执行权限,没有写权限
- 后三个插位代表其他者(others)的权限,同样是读和执行权限,没有写权限
r=4,w=2,x=1 因此rwx=4+2+1=7
- 1 表示连接的文件数
root 表示用户
-root表示用户所在的组
25 表示文件大小(字节)
表示最后修改日期
test.sh表示文件名
更改权限
chmod [class][operator][permission] file_name
class
由-u
,g
,o
和a
表示,其中u
表示用户,g
表示组,o
表示其他,以及a
对所有类。operator
(+
或-
)用于添加或删除权限。permission
由指示符r
,w
,x
表示,以分别允许访问以读取,修改或运行脚本。
路径
- 单点(
.
)代表当前目录。 - 双点(
..
)代表当前工作目录的父目录。 - 波浪号(
~
)代表已登录用户的主目录。
命令行参数或特殊变量
$0
- 指定要调用的脚本的名称。$1
-$9
- 存储前9个自变量的名称,或可用作自变量的位置。$#
- 指定传递给脚本的参数总数(计数)。$*
- 通过将所有命令行参数连接在一起来存储它们。$@
- 将参数列表存储为数组。$?
- 指定当前脚本的进程ID。$$
- 指定最后一个命令或最近执行过程的退出状态。$!
- 显示最后一个后台作业的ID。
用户输入
read方式,如果不用read变量默认REPLY
-p 可以在同一行上输入,-sp例如输入密码输入不是明文
read -p PROMPT <variable_name>
read -sp PROMPT <variable_name>
-a 数组
日期时间
date '+<format-option-codes><format-option-codes> <format-option-codes>'
符号是`不是'
运算
条件判断
参数直间有空格
for语句
{START..END..INCREMENT}
字符串
if [ -n str1 ] 当串的长度大于0时为真(串非空) if [ -z str1 ] 当串的长度为0时为真(空串) if [ str1 ] 当串str1为非空时为真
截取
${variable:offset:length}
打印日志
>>追加,>覆盖
开机启动脚本
可执行脚本放在
/etc/rc.d/init.d目录下
添加到开机启动里
chkconfig --add xx.h
判断端口是否打开
netstat -an | grep 80
#!/bin/sh STRING= if [ -z "$STRING" ]; then echo "STRING is empty" fi if [ -n "$STRING" ]; then echo "STRING is not empty" fi
参考https://www.yiibai.com/bash