Linux系统-Shell编程
一.Shell基础
(1)shell概述
(2)shell的分类
(2)shell脚本的执行方式
-e 选项的反斜线:
范例:
\e[1; :开启颜色输出
\e[0m :关闭颜色输出
.sh:告诉系统,写的是bash脚本
建议所有脚本文件加上.sh
所有shell脚本第一行必须加上:#!/bin/bash
4.Windows编译的shell脚本放入Linux执行:
Windows中字符格式与Linux不同,编译的shell脚本文件转入Linux后需要用命令转换格式:
dos2unix [shell脚本名]
(需要安装dos2unix:yum -y install dos2unix)
范例:
dos2unix Tetris.sh
二.Bash基本功能
(1)历史命令与命令补全
历史命令:
history [选项][历史命令保存文件]
选项:
-c:清空历史命令
-w: 把缓存中的命令写入指定文件
默认保存目录:[家目录]/.bas_history
!412 :执行第412行的历史命令
!!:执行上一个历史命令
!ser:执行上一个以字符串ser开头的历史命令
(2)命令别名与常用快捷键
命令别名:
alias [命令别名]=[命令]
alias vi=vim (命令vi相当于vim)
root==[家目录]
快捷键:
(3)输入输出重定向
在Shell中,0表示标准输入,1表示标准输出,2代表错误输出
输出重定向
:将原本输出到屏幕的结果,输出到文件里面。
输出重定向范例:
首先,必须是有输出流的命令。
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
wc<文件名 把文件名作为输入
(3)多命令顺序执行与管道符
多命令顺序执行:
范例:
1.
ls;cd/user;date
2.
ls && echo “yes”
lsl && echo "yes"
ls && echo “yes”|| echo "no"
lsl && echo “yes”|| echo "no"
管道符:
范例:
df -h | grep sdb5 (只查询设备名sdb5磁盘的相关信息)
(4)通配符和其他特殊符号
通配符用于匹配文件名
关于$()、$
echo "date"
echo "$(date)"
echo "$date"
三.Bash 的变量
(1)用户自定义变量
变量默认为字符串变量
如:time=$(date)
(2)环境变量
export
查询所有 环境变量:
env
(3)位置参数变量
$1、$2、$3、... ...、${n}、代表用户接下来将输入的第1,2,3,... ...,n个参数
比如:
canshu.sh
echo $1
echo $2
echo $3
执行canshu.sh a b c 后,输出为:
a b c
(4)预定义变量
系统接收用户输入
范例:
read.sh
read -p "input your name" name
echo “name is $name"
输出结果:
四.Bash 的变量的数值运算与运算符
1.变量的声明
declare -i cc --------------->将变量cc声明为整数型变量
declare -p cc --------------->查询变量cc类型
CC声明为整数类变量,并且赋值为98
数值运算:
推荐使用第三种:
$((运算式 ))
2.变量测试
(1)变量的测试