shell基础课程(一)

shell基础课程

bash语言

变量

变量定义使用
a=1               <变量不能有空格>
echo $a  		  ——输出到屏幕
a='hello world'   ——中间加空格需打引号
a="avf $a"		  ——在字符串引入变量使用双引号
echo ${a}_1		  ——打印变量a和_1

echo(向屏幕输出)
echo $不存在的变量打印什么都不会发生
预定义变量
echo $PWD		<和pwd一样>
echo $USER
echo $HOME
echo $PATH
数组变量
a=(1 2 3 4 5)
echo $a 			>>输出索引0
echo ${a[索引值]} 	  >>@*会输出所有的数组值
echo ${#a[@]}		>>会输出长度
a=`ls`				>>反引号
echo $a				>>执行反引号里面的命令
a=(`ls`)
echo $a				>>返回第一个值
  • which  》》寻找文件位置,只能加载环境变量
    
特殊符号
- 双引号用于括起一段字符串值,,支持$var形式变量替换
- 单引号也表示其内容是字符串值,不支持转义
- \反斜杠,某些情况下表示转义
- $(ls)表示执行ls后的结果,与``类似,不过可以嵌套
- `反引号,用法比较独特,代表命令的输出
- $(())对变量进行操作,比如相加$((a+b)) $((2+3))
- (())是整数扩展,把里面的变量当做整数去处理
- ((1..10))等价于seq 1 10,表示1到10

image-20220328200420497

数字变量

image-20220328201154419

image-20220328201534077

image-20220328201715771

echo $?		》》看上一条语句执行是否成功
浮点数运算:awk 'BEGIN{print 2/3}'
字符串操作
s='hello wo de di yi ge'
echo ${s:6:8}		》从第6位输出,在数8个
echo ${#s}			》获取长度
掐头:
echo ${s#hello}		》去除掉hello
echo ${s#*l}		》匹配到l就去除掉前面的内容,在加一个#贪婪匹配,会去除掉有l的内容
去尾:
echo ${s%ge}		》去除ge
echo ${s/de/pa}		》de换成pa

image-20220328203348168

算术判断
[ 2 -eq 2 ]相等
[ 2 -ne 2 ]不等
[ 3 -gt 1 ]大于
[ 3 -ge 3 ]大于等于
[ 3 -lt 4 ]小于
[ 3 -le 3 ]小于等于
内置判断
[ -e file ];echo $? 	>如果文件存在,就为真
[ -d file ]				>如果文件是一个子目录
[ -f file ]				>如果文件是一个普通文件
[ -r file ]				>如果文件可读
[ -s file ]				>如果文件的长度不为0
[ -w file ]				>如果文件可写
[ -x file ]				>如果文件可执行

逻辑环境

条件if
if [condtion]; then..;else...;fi
简单的逻辑可以使用$$(与,前面条件为true执行)  ||(或)去代替
条件可以用命令返回
if [ -e 1.shs ];then echo true;else echo falsh;fi
判断文件是否存在,存在打印true,否则打印falsh

image-20220329192514119

for循环
for((c1;c2;c3));
do
....
done

实例:

image-20220329192839337

image-20220329193216534

image-20220329193431297

while循环
i=0;while [ $i -lt 3];do echo $i;((i=i+1));done

实例:

image-20220329194214848

shell环境

shell运行环境概念

bash是一个进程

  • bash下还可以在重新启动一个shell,这个shell是sub shell,源shell会复制自身给他
  • 在sub shell里定义的变量,会随着sub shell的消亡而消失

()子shell中运行

[]当前shell中执行

$$ 当前脚本执行的pid

&后台运行

$!运行在后台的最后一个作业的PID(进程id)

ps
ps -e
ps -ef   	>所有进程
sleep 10&	>后台运行
jobs	》查看运行进程

创建文件并执行文件
chmod +x 文件名称 --执行权限
bash 文件名  ——执行文件

加到环境变量
cd ~
ls -al
vim .bash_profile
最后一行加上路径
export PATH=$PATH:/home/jiange
完成后退出文件
source ~/.bash_profile
直接运行文件即可

grep简单应用
grep 'hello' 1.txt			>查找hello在1.txt
grep -i 'hello' 1.txt		>忽略大小写
grep -io 'hello' 1.txt		>只显示hello
cat 1.txt | grep 'hello'	>显示1.txt里面包含hello

image-20220329202202012

image-20220329202513394

脚本应用

自动化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值