zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    学习总结:CSS(二)块级与行级元素特性、盒模型、层模型、BUG与BFC、浮动模型
    学习总结:CSS(一)定义方式、选择器、选择器权重
    html基础知识总结
    js学习总结:DOM节点二(dom基本操作)
    Javascript的作用域和闭包(一)
    js学习总结:DOM节点一(选择器,节点类型)
    jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
    正则表达式基于JavaScript的入门详解
    JavaScript深度克隆(递归)
    电子警察【思想】
  • 原文地址:https://www.cnblogs.com/tk55/p/12964416.html
Copyright © 2011-2022 走看看