【shell笔记】Linux Shell脚本编程入门知识点全面涵盖

本文是我对白树明老师shell课程笔记的总结,课程链接:https://www.bilibili.com/video/BV1j541157Sr?from=search&seid=9757674743771615780

一:shell是什么?生成shell脚本

shell是什么?

1 shell是一个程序,采用C语言编写,是用户和Linux内核沟通的桥梁。
2 shell脚本就是将完成一个任务的所有命令按照执行的先后顺序,自上而下写入到一个文本文件中,然后给予执行权限。它能实现很多功能:如输出:echo “hello world” ;如通过管道将world替换为亲:echo “hello world”|sed ‘s/world/亲’

生成shell脚本

1 抒写shell脚本 vim 1.sh
.

二:shell脚本语法规范

shell脚本语法规范1

1 起名要有意义,开头要定义脚本的执行环境 #!/bin/bash 要注意这里“#!”不是注释的意思!没有找到这个执行环境会报错
2 完善脚本信息
#Author:
#Created Time: 2021/8/4
#Release:1.0
#Script Description: 功能
3 脚本组成
3.1 解释环境如#!/bin/env bash |python|perl
3.2 注释说明
3.3 执行代码
4 运行shell脚本有两种方法
4.1 给执行权限chomd 700 1.sh
4.2 解释器直接运行,不需要给权限。如bash 1.sh或者sh 1.sh 可以通过cat /etc/shells查看很多比如/bin/sh,不过推荐解释环境是什么就用什么。
5 特殊符号
5.1 **cd ~表示回到家目录,而cd -**代表回到上一级目录
5.2 !+首字母=执行历史命令 !!代表执行上一条命令
5.3 $ 变量中取内容符
5.4 + - * / % 分别对应加减乘除取余
5.5 & 后台执行
5.6 * shell中的通配符,匹配所有
5.7 ?shell中的通配符,匹配除回车以外的一个字符
5.8 ; 在shell中一行执行多个命令,命令之间用分号分隔
5.9 | 管道符 上一个命令输出作为下一个命令输入 cat filename | grep “abc”
5.10 \ 转义字符
5.11 `` 反引号 命令中执行命令 echo “today is `date +%F`”
5.12 ‘’ 将字符串引起来但是不解释变量
5.13 “” 将字符串引起来,能解释变量,但是两个单引号‘‘’’就可以解释变量了

shell脚本语法规范2

1 | 管道符在shell中用的最多,上一个命令输出作为下一个命令输入。如cat /etc/passwd | grep “root” 意思是把“cat /etc/passwd”命令的输入通过管道输给“grep”,grep检索以后把结果再输出到屏幕。
2 输入:echo haha > ./text.txt echo haha >> ./text.txt 第二种不会覆盖之前输出的
3 输出:wc < text.txt 统计的是数据流,得到4 4 20 分别为4行4个单词20个字节。 wc text.txt 统计的是文本,输出为4 4 20 text.txt。<<为追加输出,例如fdisk /dev/sdb/ < 4 数学运算
4.1 expr命令只能做整数运算,要注意空格。
加:expr 1+2 减 - 乘 * 除 / 取余 % ,用$?判断上一条命令能否执行成功,如果返回值为0则执行成功(echo $?)
例子:expr 7 + 1.1 &>/dev/null ; echo $? 意思是“expr 7 + 1.1”命令输出的结果不管对的还是错的都输出到/dev/null,它指的是系统的回收站
4.2 let也是对整数做运算,需要赋值
let sum=1+1; echo $sum
4.3 bc 提供的一个计算器,设置scale=2,意思是小数点保留2位,这个是交互的计算机。
4.4 例子:echo “当前内存使用率:`echo “scale=2;141*100/7966|bc”`%”
计算内存的使用率:里面的echo用于运算,外面的echo用于输出。将计算通过管道输入到bc中得到结果。
4.5 echo $(( )) 双小圆括号加美元符可以做运算。
5 exit退出脚本:注意它的返回值的设置范围是1-255
.

三:shell脚本输出与输入

shell格式化输出

1 echo:将内容输出到默认显示设备 语法:echo [-ne][字符串]
-n不要再最后自动换行
-e若字符串中出现转义字符,则做特殊处理。
\a喇叭发生
\t表示一个tab键
\n代表回车
\b删除一个字符如echo -n -e “a\b”输出为空

#倒计时代码
for time in `seq 9 -1 0`;do
	echo -n -e “\b$time”
	sleep 1
done
#echo后面什么都不写会输出一个空行。

2 颜色
echo -e “\033[背景色; 字体颜色 字符串 \033[属性效果” 效果包括下划线、高亮、闪烁等。
例子:echo -e “\033[40;37m 哈哈哈哈哈 \033[4m” 黑底白字下划线

shell基本输入

1 read:默认接受键盘输入,回车符代表输入结束
-p打印信息
-t限定时间
-s不显示输入
-n输入字符个数,超过后就截断。

#登录界面代码
#!/bin/bash
clear #整个屏幕清空
#echo -n -e “Login:”
#read acc
read -p “Login:” acc  #上面两行代码可以用这一行代码代替

echo -n -e “Password:”
read -s -t50 -n6 pw
echo
echo “account: $acc   password: $pw  ”

.

四:shell

你可能感兴趣的:(shell)