Bash Shell基础笔记

常见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-ugoa表示,其中u表示用户,g表示组,o表示其他,以及a对所有类。
  • operator(+-)用于添加或删除权限。
  • permission由指示符rwx表示,以分别允许访问以读取,修改或运行脚本。

 

路径

  • 单点(.)代表当前目录。
  • 双点(..)代表当前工作目录的父目录。
  • 波浪号(~)代表已登录用户的主目录。

 

命令行参数或特殊变量

  • $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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-05-26 14:48  Honey_Badger  阅读(353)  评论(0编辑  收藏  举报

导航

github