Press "Enter" to skip to content

Day: July 22, 2017

Shell基础概念

Shell环境以及特性


什么是Shell

  • 解释器;
  • 操作系统的外壳

使用方式

  • 交互式——命令行
  • 非交互式——脚本

常见Shell程序种类

  • /etc/shells
  • 切换shell环境(chsh、usermod)

Bash基本特性

  • 快捷键、补全
  • 历史、别名
  • 标准输入输出
  • 重定向
  • 管道

历史命令

history

I/O设备与重定向

  • 标准输入 0 /dev/stdin
  • 标准输出 1 /dev/stdout
  • 标准错误 2 /dev/stderr

编写以及执行脚本

第一个Shell脚本

  • 什么是shell脚本;
    提前写好可顺序执行语句,能够完成特定任务
  • Shell脚本Helloworld的诞生
#!/bin/bash
echo "Hello world!"

脚本的构成以及执行

规范的脚本构成;

  • 脚本申明;
  • 注释;
  • 可执行语句

脚本的执行方式;

  • 命令
  • 参数

调试

  • 观察
  • sh -x开启调试模式
  • 在可能出错的地方设置echo

变量

变量的设置和取消

什么市变量

  • 固定名称存放;
  • 可能会变化的值;

定义、赋值、查看变量

  • 变量名=变量值;
  • 等号两边不能有空格;
  • 变量名由字母、数字、下划线组成,区分大小写;
  • 变量名不能以数字开头,不要使用关键字和特殊字符;

取消变量

  • 自动失效;
  • unset;

变量的种类

  • 存储类型;
  • 使用类型;

变量的分类

环境变量

  • /etc/profile
  • ~/.bash_profile
  • env\set
  • PWD\PATH\USER\LOGNAME\UID\SHELL\HOME

预定义变量

  • $0 当前所在进程或者脚本名;
  • $$ 当前PID号;
  • $?命令执行的返回状态,0正常、1异常;
  • $# 已加载的位置变量的个数;
  • $* 所有位置变量的值;

位置变量

  • 命令行参数
  • 表示为$n,n为序号;
  • $1 ${11};

变量值以及范围控制

扩展赋值操作

区分三种定界符 “” ’‘ ``

read标准输入取值

read

变量的作用范围

  • 局部变量
  • 全局变量