• Linux shell脚本笔记


    shell 命令解释器 是用来解释用户对系统的操作 使用 cat /etc/shells 可以查看 系统安装的shell

    Linux 启动过程: BIOS -> MBR -> BootLoader(grub) -> kernel -> systemd -> 系统初始化 -> shell

      BIOS 基本输入输出系统 选择U盘启动还是硬盘启动;MBR 硬盘里可引导的部分;BootLoader(grub) 启动内核工具 选择启动的内核;

      kernel 启动内核;systemd 1号进程 其余所有进程派生于它;然后才是系统初始化 启动shell

    执行脚本的四种方式

      1 bash ./filename.sh   2 ./filename.sh 

      3souce ./filename.sh  4 . ./filename.sh

      1和2 执行脚本时 会创建一个新的进程来执行 3和4执行脚本时会用当前进程来执行(环境变量是当前系统的环境变量) (不产生新进程执行的命令叫做内建命令

      1 3 4 执行脚本时脚本可以不拥有执行权限 2 执行脚本时必须有可执行权限

    管道 '|' 两个进程之间的通信 第一个进程的输出当作第二个进程的输入  a|b|c a的输出当作b的输入 b的输出当作c的输入 (管道应该规避内建命令

    重定向 更改标准输入和标准输出为文件 利用文件代替键盘的输入 保存至文件代替终端的输出

      < 输入 wc -l < /etc/passwd  将<右侧的内容代替键盘输入

      > 输出 覆盖输出  >> 追加输出

      2>> 错误输出重定向 2 为标准错误流重定向 

      &>> 正确或错误都重定向输出

    变量 shell脚本中可以有变量 变量名由字母 数字 下划线组成 数字不能在变量名开始处

      shell 变量为弱类型 不区分类型 区分大小写

      使用方式 1name=value 等号左右不能有空格   2  read name 从用户处读入变量 交互式输入 3 name=ls 变量的值还可以是命令

        4 name=$(ls /etc/) 变量的值还可以是命令的字符串 $() 可以用``反引号代替 5let a=2 let关键字也可赋值 此时赋值数字时可以使用0开头八进制 和0x开头十六进制

        6 变量的值有特殊字符时应该用" 或者'包起来 这时候不应该使用let 使用'单引号包裹的内容不会解析变量 会被当作字符串输出

    变量引用 ${} 大括号{}可以省略 当使用字符串拼接时 也就是要把变量的值加上其他字符串 这时候{}不能省略

      变量作用范围  默认作用于当前执行的shell本身 若想让作用于子shell 时 需要用export 导出一个变量  变量不再使用时 可以用unset删除变量

    环境变量 环境变量是当前用户统一配置的 当前用户下每个shell都可以得到的变量  使用env set可以查看当前环境变量

      常用环境变量  $PATH 为命令搜索路径   $USER 用户名   $UID 用户id    $PSI 配置终端提示显示

      预定义变量   $? 保存上一条命令运行结果 0为正确 1为错误   $$ 当前进程PID  $0当前进程名

      位置变量   $0 $1 ... $9 执行脚本时的参数 不存在为空  (${2-_}  如果$2为空代表_  不空代表$2

    环境变量配置文件   /etc/profile  /etc/bashrc  ~/.bashrc  ~/.bash_bashrc  /etc/profile.d/

      /etc/目录下对所有用户生效 ~/目录下对当前用户生效

      执行 su - root 时 配置文件执行顺序  /etc/profile  ~/.bash_bashrc  ~/.bashrc  /etc/bashrc 有相同变量名时后面会覆盖前面的

      执行su root 时 执行~/.bashrc 和 /etc/bashrc

    数组的使用

      IPTS=(1 2 3)  定义数组   值之间用空格分开IPTS=(1 2 3)

      echo ${IPTS[@]} 显示所有元素

      echo ${#IPTS[@]} 显示元素个数

      echo ${IPTS[0]} 显示第0个元素

  • 相关阅读:
    Python for Infomatics 第14章 数据库和SQL应用四(译)
    展望2017
    bing的简单英文字典工具
    自我安慰
    Python for Infomatics 第14章 数据库和SQL应用三(译)
    Python for Infomatics 第14章 数据库和SQL应用二(译)
    Python for Infomatics 第14章 数据库和SQL应用一(译)
    希望父亲早日恢复
    Python for Infomatics 第13章 网页服务四(译)
    Python for Infomatics 第13章 网页服务三(译)
  • 原文地址:https://www.cnblogs.com/kkcoolest/p/11741414.html
Copyright © 2020-2023  润新知