目录

快速教程:Shell 脚本

分类

  • Bourne Shell: sh, ksh, Bash, psh, zsh
  • C shell: csh,tcsh

脚本执行

  • echo [选项] [输出内容]

    -e:支持反斜线控制的字符转换
    \\: 输出\本\a:输出警告音
    \b:退格键
    \c:同 -n,取消行末换行符
    \f:换页符
    \n:换行符
    \r:回车
    \t:制表符,Tab
    -n:取消输出后行末的换行符号
  • 赋予执行权限,直接运行: 如: chmod 755 hello.sh

  • 通过bash调用执行: 如: bash hello.sh

Bash基本功能

  • history:历史命令查看 history [选项] [文件]
    • -c:清空历史
    • -w:将缓存命令保存到文件
  • 历史调用:
    • !n 重复执行第n条;
    • !! 重复执行上一条;
  • 命令优先级: 相对或绝对路命令>别名>内部命令>$PATH

输入输出重定向

  • 命令 > 文件: 覆盖输出
  • 命令 » 文件: 追加输出
  • 正确和错误输出同时保存: 命令>/»文件 2>&1

输入重定向

wc [选项] [文件名]

  • -c: 统计字节数
  • -w: 统计单词数
  • -l: 统计行数

多命令顺序执行

  • 命令1;命令2:都执行
  • 命令1&&命令2:1正确执行,2才会执行
  • 命令1||命令2:1执行不正确,2才会执行

管道 grep

  • -A n: 列出符合条件的行,并列出后续的n行:
  • -B n: ——————–前面的n行;

单引号,双引号

  • 单引号直接输出;
  • 双引号输出变量值;
  • 反引号也输出值或命令;

环境变量

  • 设置: export age=“18”
    • 查看: set(查看全部);
    • env(只查看环境变量)
    • 删除: unset age
  • PATH变量:系统查找命令 /bin/(可直接调用执行) 添加:PATH="$PATH":命令或目录

参数变量

  • $n: 0代表命令本身,1-9代表第n个参数,10以上的参数需加大括号,如${10}
  • $*: 命令行中所有的参数,看成一个整体
  • $@: 命令行中所有的参数,但区分对待
  • $#: 参数个数

预定义变量:

  • $?: 最后一次执行状态;0正确,非0不正确
  • $$: 当前进程的进程号
  • $!: 后台运行的最后一个进程的进程号

环境变量配置文件

从上到下逐渐调用

  • /etc/profile
  • /etc/profile.d/*.sh
  • ~/.bash_profile
  • ~/.bashrc
  • /etc/bashrc