【Shell脚本语言五天从入门到精通】Day01

准备

博主:大大怪先森(记得关注,下次不要迷路哦)
编程环境:xshell(点击下载)

在这里插入图片描述


提示:写完文章后,目录可以自动生成


前言

五一长假即将来临!!!
宝子们想好去哪里玩了吗?小编可真是一个苦命的孩子,学校五一都不放假,呜呜呜…
但是小编可不会闲着哦,五天带各位宝子们shell脚本语言从入门到精通。


`提示:以下是本篇文章正文内容

一、Shell解释器

如下图:
在这里插入图片描述
Shell是linux操作系统的一个外壳程序,用户在使用命令操作os的时候必须需要一个解释器。不然的话是没法直接操作os的,当然bash也只是Shell解释器中的一种,还有其他多种解释器。

命令:
Usermod:
选项:
-a|--append  ##把用户追加到某些组中,仅与-G选项一起使用 
-c|--comment ##修改/etc/passwd文件第五段comment 
-d|--home    ##修改用户的家目录通常和-m选项一起使用 
-e|--expiredate  ##指定用户帐号禁用的日期,格式YY-MM-DD 
-f|--inactive    ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1 
-g|--gid     ##修改用户的gid,改组一定存在
-G|--groups  ##把用户追加到某些组中,仅与-a选项一起使用 
-l|--login   ##修改用户的登录名称 
-L|--lock    ##锁定用户的密码 
-m|--move-home   ##修改用户的家目录通常和-d选项一起使用 
-s|--shell   ##修改用户的shell 
-u|--uid     ##修改用户的uid,该uid必须唯一 
-U|--unlock  ##解锁用户的密码 
chsh:
选项:
 -l:查看解释器
 -s:修改解释器

在这里插入图片描述

二、脚本设计和运行

执行方法:

方法一:需要为文件赋予可执行的权限
绝对路径执行
相对路径执行
方法二:不需要文件看执行的权限
sh 脚本文件名
source 脚本文件名 (不会启动子进程,可以通过pstree查看进程数)

2.1脚本的运行

sh运行结果:
在这里插入图片描述
sourc运行结果:
在这里插入图片描述

三、变量的应用

变量类型:

环境变量(变量名通常大写,有操作系统来维护)
这里不在过多讲解,不懂得可以看看小编的这一篇文章《进程的概念》

位置变量(bash内置变量,存储脚本执行是的参数)
在这里插入图片描述

预定义变量(bash内置的变量,可以调用但是不能够赋值或者修改)
作用:用来保存脚本程序的执行信息
注意:能直接使用这些变量,但是不能给变量赋值

变量名含义
$0当前所执行进程或者脚本名
$$当前运行进程的ID号
$?上一条命令执行后的返回状态,0表示正常,1表示异常
$#已加载的变量位置的个数
$*所有位置变量的值

在这里插入图片描述

自定义变量(用户自己定义)

自定义变量:
定义变量名格式:
变量名 = 变量值
取消变量名:
unset 变量名
查看变量名格式:
$变量名
${变量名}

全局变量和局部变量

定义全局量的格式:
expot 变量=变量值
局部变量同上面内容

四、多重引用的区别

区别三种定界符
双引号:" "运行拓展,以KaTeX parse error: Double superscript at position 14: 引出其他变量 单引号:' '̲禁止拓展,即使也认为是普通的字符
反引号:` `将命令执行输出作为变量值,$()与反引用等效

在这里插入图片描述
read标准输入取值

read从键盘读取变量值完成赋值
格式:
read -p “提示信息” 变量名
-p 可选 -t 指定超多一定的秒数
-s 不在终端显示内容
在这里插入图片描述

五、shell中的运算

使用$()或者$(())表达式

格式:
$[整数1 运算符 整数2]
变量的自增:
i++;i+=2等和C语言的自增语法一样
注意:
bash不支持浮点数的运算,只支持整数运算(必须使用bc计算器,也支持判断)
其他:
scale=2
定义精度

在这里插入图片描述

其他:
echo -n 换行
echo -e 拓展属性
echo -e "\033[32mOK\033[0m"

在这里插入图片描述

小案例

#!/bin/bash
  2 
  3 echo -e "\033[34m-----服务器硬件信息-------\033[0m"
  4 
  5 echo -e "\033[32m网卡信息\033[0m"
  6 
  7 ifconfig ens33grep | grep "inet"
  8 
  9 echo -e "\033[32m内存的剩余容量信息:\033[0m"
 10                                                                                                                                                                                   
 11 grep MemAvailable /proc/meminfo
 12 
 13 echo -e "\033[32m磁盘根分区的使用情况:\033[0m"
 14 
 15 df -h /
 16 
 17 echo -e "\033[32m本机CPU型号信息如下:\033[0m"
 18 
 19 grep "model name" /proc/cpuinfo

在这里插入图片描述


结语

希望本篇文章能给各位带来帮助,如有不足还请指正!!!
码字不易,各位大大给个收藏点赞吧!!!

宝子们,点赞,支持。
三连走一波!!!
在这里插入图片描述

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值