一、 Linux Shell 基础
1. 基本概念
1> 简介
Shell是一个程序
- 一个命令行解释器
- 解释用户的指令,发送给内核执行,并将结果显示给用户
Shell还是一个脚本语言
- 定义和使用变量
- 使用流程控制语句
2> Shell中执行命令
启动一个新的进程来运行命令
新进程和Shell进程之间是父子关系
- Shell进程等待子进程执行完
- 子进程返回结果给Shell进程
一次执行多个命令
cmd1; cmd2
cmd1 && cmd2 || cmd3
3> 子进程的输入输出
标准输入(stdin,0)
cat < a.txt
cat a.txt
标准输出(stdout,1)
cat a.txt > b.txt
cat a.txt >> b.txt
标准错误(stderro,2)
cat a.txt 2> err.txt
4> 在Shell中使用管道
可以将多个命令通过管道(|)连接起来
上一个命令的输出数据就是下一个命令的输入数据
例如:ls -al /etc | less
2. Bash介绍
1> Shell的种类
sh
- Bourne Shell,Unix系统最早的Shell
bash
- Bourne Again Shell,使用最广泛,Linux系统默认的Shell
- 提供40个内置命令
zsh
- 最大的Shell之一,具有非常强大的功能
- 提供84个内置命令
其他
- ksh,csh,tcsh...
2> Bash特点
记录历史命令
tab键自动补全
alias命令别名
任务控制
通配符*
help查看帮助
man cd查看所有的内置命令
3> Bash的别名
为冗长的命令去一个简单易记的名字
alias ll='ls -l'
alias rm='rm -i'
取消命令别名
unalias ll
4> Bash的变量
多人同时运行Bash,每人都有自己运行时的配置(环境)
不同的程序执行的时候也可以有不同的配置(环境)
环境中包含了各种各样的变量
程序可以读取变量的值,并根据值进行相应的动作
可分为系统环境变量和用户自定义变量
变量的格式
- x=1
查看系统环境变量
- env
- export
查看单个变量
echo $PATH
5> Bash常用环境变量
环境变量 说明 LOGNAME 登录名(账户名) PATH 命令搜索路径 PS1 命令提示符 PWD 用户的当前目录 SHELL 用户的Shell类型 TERM 终端类型 HOME 用户的主目录位置,通常是/home/用户名
6> Bash的环境配置
二、 Linux Shell 编程
1. 基本概念
1> 什么是Shell Script
使用Shell语言编写的一个程序
包含一系列Shell命令,这些命令可以被批量执行
可以变量定义、循环、条件与逻辑判断结构
无需变异,解释执行
2> Shell编程的基本步骤
采用任意文本编辑器
- 推荐采用vim,gedit等带有语法高亮的编译器
按照规范编写程序
- 添加注释,增强可读性
- 定义变量
- 返回结果
执行脚本
调试脚本
3> Shell编程规范
第一行
#!/bin/bash
- 使用bash shell来执行改恒组
#表示注释
环境变量定义
程序主体
返回结果
3> 执行脚本
- 三种方式
bash test.sh
需要文件可读权限bash < test.sh
需要文件可读权限./test.sh
需要文件可执行权限
2. Shell编程语言
1> 概览
变量的定义和使用
条件判断
Case语句
循环控制语句
- if控制语句
- for控制语句
- while控制语句
定义和使用函数
输入输出
调试Shell
3> 变量
1. 变量定义
文本变量
message='hello world'
数字变量
declare -i x=5+1+2
数组变量
arr=(1 2 3 4 5)
arr[1]="e1", arr[2]="e2"
文本变量
message='hello world'
2. 变量使用
- 文本&数字变量
$name
${my_name}
${my_name:-"guest"}
- 数组变量
${arr[1]}
${#arr[@]}
${arr[@]}
3. 特殊变量
- /path/to/scriptname opt1 opt2 opt3 opt4
$1,$2,$3,$4
$@:"$1" "$2" "$3" "$4"
$*:$1 $2 $3 $4
$0:脚本路径
- 上一个命令的返回值
3> test判断
test判断
4> []判断
- 判断方式同test
- 空格分隔
- 变量以双引号引起来
- 常量以单引号或双引号引起来
["$1" == "test"]
5> Case
Case语句
网友评论