Linux系统基础之七:Shell编程基础上

Linux系统-Shell编程

一.Shell基础

(1)shell概述
Linux系统基础之七:Shell编程基础上_第1张图片
Linux系统基础之七:Shell编程基础上_第2张图片

Linux系统基础之七:Shell编程基础上_第3张图片
(2)shell的分类
Linux系统基础之七:Shell编程基础上_第4张图片
Linux系统基础之七:Shell编程基础上_第5张图片


Linux系统基础之七:Shell编程基础上_第6张图片



(2)shell脚本的执行方式
Linux系统基础之七:Shell编程基础上_第7张图片

-e 选项的反斜线:
Linux系统基础之七:Shell编程基础上_第8张图片
范例:
Linux系统基础之七:Shell编程基础上_第9张图片
\e[1; :开启颜色输出
\e[0m :关闭颜色输出


Linux系统基础之七:Shell编程基础上_第10张图片
.sh:告诉系统,写的是bash脚本
建议所有脚本文件加上.sh

所有shell脚本第一行必须加上:#!/bin/bash
Linux系统基础之七:Shell编程基础上_第11张图片


4.Windows编译的shell脚本放入Linux执行:

Windows中字符格式与Linux不同,编译的shell脚本文件转入Linux后需要用命令转换格式:

dos2unix [shell脚本名]

(需要安装dos2unix:yum -y install dos2unix)

范例:
dos2unix Tetris.sh


二.Bash基本功能

(1)历史命令与命令补全

历史命令:
history [选项][历史命令保存文件]
选项:
-c:清空历史命令
-w: 把缓存中的命令写入指定文件
Linux系统基础之七:Shell编程基础上_第12张图片
默认保存目录:[家目录]/.bas_history
Linux系统基础之七:Shell编程基础上_第13张图片


!412 :执行第412行的历史命令
!!:执行上一个历史命令
!ser:执行上一个以字符串ser开头的历史命令
Linux系统基础之七:Shell编程基础上_第14张图片
(2)命令别名与常用快捷键

命令别名:
alias [命令别名]=[命令]
alias vi=vim (命令vi相当于vim)
Linux系统基础之七:Shell编程基础上_第15张图片
Linux系统基础之七:Shell编程基础上_第16张图片
root==[家目录]
Linux系统基础之七:Shell编程基础上_第17张图片

快捷键:
Linux系统基础之七:Shell编程基础上_第18张图片

(3)输入输出重定向

Linux系统基础之七:Shell编程基础上_第19张图片



在Shell中,0表示标准输入,1表示标准输出,2代表错误输出

输出重定向 :将原本输出到屏幕的结果,输出到文件里面。

Linux系统基础之七:Shell编程基础上_第20张图片
Linux系统基础之七:Shell编程基础上_第21张图片
输出重定向范例:

首先,必须是有输出流的命令。

date >> shuchu.log
(将date的输出结果以追加方式写入了shuchu.log文件里面)

datet 2>> shuchu.log
(将date天的报错输出结果以追加方式写入了shuchu.log文件里面)

输出重定向命令推荐

1.统一保存
命令 &>>shuchu2.log
(不管命令对错,都以追加方式将输出结果保存在shuchu2.log中)
2.分开保存
命令 >>shuchu2.log 2>>defult.log
(将正确命令输出保存在shuchu2.log 错误输出保存在defult.log中)


3.将输出结果扔进垃圾箱,(不看输出结果)
ls &>/dev/null

Linux系统基础之七:Shell编程基础上_第22张图片


wc<文件名 把文件名作为输入

(3)多命令顺序执行与管道符

多命令顺序执行:

Linux系统基础之七:Shell编程基础上_第23张图片
范例:
1.
ls;cd/user;date

2.
ls && echo “yes”
lsl && echo "yes"
ls && echo “yes”|| echo "no"
lsl && echo “yes”|| echo "no"
Linux系统基础之七:Shell编程基础上_第24张图片
管道符:
Linux系统基础之七:Shell编程基础上_第25张图片

范例:
df -h | grep sdb5 (只查询设备名sdb5磁盘的相关信息)



(4)通配符和其他特殊符号

Linux系统基础之七:Shell编程基础上_第26张图片
通配符用于匹配文件名

Linux系统基础之七:Shell编程基础上_第27张图片

关于$()、$
echo "date"
echo "$(date)"
echo "$date"
Linux系统基础之七:Shell编程基础上_第28张图片
三.Bash 的变量

(1)用户自定义变量

Linux系统基础之七:Shell编程基础上_第29张图片
Linux系统基础之七:Shell编程基础上_第30张图片
变量默认为字符串变量
Linux系统基础之七:Shell编程基础上_第31张图片
Linux系统基础之七:Shell编程基础上_第32张图片
如:time=$(date)




Linux系统基础之七:Shell编程基础上_第33张图片
Linux系统基础之七:Shell编程基础上_第34张图片
Linux系统基础之七:Shell编程基础上_第35张图片

(2)环境变量

export
Linux系统基础之七:Shell编程基础上_第36张图片
Linux系统基础之七:Shell编程基础上_第37张图片

查询所有 环境变量:
env
Linux系统基础之七:Shell编程基础上_第38张图片
Linux系统基础之七:Shell编程基础上_第39张图片


Linux系统基础之七:Shell编程基础上_第40张图片

(3)位置参数变量

Linux系统基础之七:Shell编程基础上_第41张图片

$1、$2、$3、... ...、${n}、代表用户接下来将输入的第1,2,3,... ...,n个参数

比如:

canshu.sh
echo $1
echo $2
echo $3

执行canshu.sh a b c 后,输出为:

a b c
Linux系统基础之七:Shell编程基础上_第42张图片



(4)预定义变量
Linux系统基础之七:Shell编程基础上_第43张图片

系统接收用户输入


Linux系统基础之七:Shell编程基础上_第44张图片
范例:

read.sh
read -p "input your name" name

echo “name is $name"
输出结果:


四.Bash 的变量的数值运算与运算符

1.变量的声明
Linux系统基础之七:Shell编程基础上_第45张图片


declare -i cc --------------->将变量cc声明为整数型变量
declare -p cc --------------->查询变量cc类型


CC声明为整数类变量,并且赋值为98




数值运算:

Linux系统基础之七:Shell编程基础上_第46张图片
Linux系统基础之七:Shell编程基础上_第47张图片
推荐使用第三种:

$((运算式 ))

Linux系统基础之七:Shell编程基础上_第48张图片
Linux系统基础之七:Shell编程基础上_第49张图片

2.变量测试


(1)变量的测试
Linux系统基础之七:Shell编程基础上_第50张图片



你可能感兴趣的:(Linux系统)