Shell基础知识

shell基础知识

shell简介

Shell是一个C语言编写的脚本语言,它是用户与Linux的桥梁,用户输入命令交给Shell处理,Shell将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。

Linux的基本思想:

  • 一切都是文件
  • 每个软件都有确定的用途

Shell基本分类

  • 图形界面Shell(GUI Shell)
  • 命令行界面Shell(CLI Shell),许多Linux的默认Shell是bash

第一个Shell脚本

执行shell脚本的三种方法

  1. 直接使用bash解释器执行
  2. 添加可执行权限
  3. source命令执行,以当前默认Shell解释器执行

Shell变量

系统变量

一些写Shell脚本时常用的系统变量

SHELL 默认Shell
$HOME 用户家目录
$IFS 内部字段分割符
$LANG 默认语言
$PATH 默认可执行程序路径
$PWD 当前目录
$UID 当前用户
$USER 当前用户
$HOSTNAME 主机名
$RANDOM 随机生成一个0到32767的整数

普通变量与临时环境变量

  • 普通变量定义:VAR=value
  • 临时环境变量定义:export VAR=value
  • 变量引用:$VAR
    区别:shell环境变量的作用域是Shell进程,当export导入到系统变量时,则作用域是Shell进程以及Shell子进程。
    注意退出终端时,所有用户定义的变量都会清除。

位置变量

位置变量指函数或脚本后跟的第n个参数.
shift可对位置变量进行控制,每执行一次shift,位置变量个数就会减一,而变量值则提前一位,shift n则设置向前移动n位。

特殊变量

$0 脚本自身的名字
$? 返回上一条命令是否执行成功,0为执行成功,非0为执行失败
$# 位置参数总数
$* 所有位置参数都被看做一个字符串
$@ 每个位置参数都被看做独立的字符串
$$ 当前进程PID
$! 上一条运行后台程序的PID

变量引用

赋值运算符 示例
= 变量赋值
+= 两个变量相加

反撇号等效于$(),都是用于执行shell命令

双引号和单引号

在变量赋值时,如果值有空格,Shell会把空格后面的字符串解释为命令!

  • 不加引号,空格后面的字符串解释为命令
  • 双引号,解释特殊符号的原有意义,如VAR="1 2 $N"
  • 单引号,忽略特殊字符

注释

在每行前面加个#号,即表示Shell忽略解释。

坚持原创技术分享,您的支持将鼓励我继续创作!
0%