目录1.shell讲解2.变量3.read,histroy命令4.运算,字符比较,循环,判断,函数,中断 one.1 什么是shell?shell是linux内核和用户之间的解释器,通常是/bin/bashcat /etc/shells可以看到当前系统支持的she ...
目录
1.shell讲解
2.变量
3.read,histroy命令
4.运算,字符比较,循环,判断,函数,中断
one.1 什么是shell?
shell是linux内核和用户之间的解释器,通常是/bin/bash
cat /etc/shells可以看到当前系统支持的shell解释器
one.2 交互式硬件设备
标准输入:从设备接收用户输入的数据
标准输出:通过设备向用户输出数据
标准错误:通过设备向用户报告执行中的错误
one.3 重定向
改变标准输入/输出/错误输出的方向
one.4 脚本构成
#!/bin/bash 脚本声明,使用哪种解释器
# 做注释,写注释有助于整理思路和阅读脚本
one.5 脚本执行方式
bash one.sh 执行脚本,不需要开头写解释器
source one.sh 加载脚本,会将脚本中变量加载到当前
./one.sh 需要开头写解释器
/root/one.sh 需要开头写解释器
one.6 调试脚本
sh -x one.sh 查看脚本详细执行过程
tow.1 变量类型
tow.2 环境变量
$HOSTNAME 主机名
$SHELL 当前默认解释器
$PATH 环境变量
在linux中使用命令时,系统会查看环境变量,从环境变量显示的那些文件夹中寻找是否有这个命令
$USER 当前用户
$PWD 当前目录
$HOME 家目录的路径
$LOGNAME 目前用户
$RANDOM 生成随机数
tow.3 位置变量
$0 脚本名
$1-9 附加参数1-9
例如bash one.sh xixi haha 那么 xixi haha 就是$1与$2
$* 显示所有位置变量
$# 显示位置值得总数量
$$ d当前进程的PID
$? 上一个进程执行后的返回值,成功为0,失败为非0
$! shell最后运行的后台进程的PID
tow.4 特殊符号
"$abc" 双引,引用整体
'$abc' 单引,引用整体,特殊字符不起作用
`ls -l` 返回反引号中执行的结果
${abc}de 变量用花括号防止混淆
two.5 相关命令
/etc/profile或~/.bash_profile 环境变量配置文件
env 列出环境变量
set 列出所有变量
three.1 read命令
read -p "请输入:" name -p后面加上提示符,name为变量名,存储输入的字符
-s 输入的数值不可见
-t 3 设置时间为3秒,超时值为空
-n 3 设置字符输入字符数量,达到3立刻执行
stty -echo 关闭显示,之后的输入将不可见,通常用户输入密码前设置
stty echo 开启显示
three.2 历史命令
history 查看历史命令,默认存储1000条,在/etc/profile中HISTORY变量修改
!cat 执行以cat开头最近的那条历史命令
!100 执行第100条历史命令
three.3 小命令
export abc 将局部变量变成全局变量
export -n abc 取消变量的全局属性
unset abc 取消这个变量的值
a;b 分隔符,每个单独执行
a&&b a执行成功才执行b
a||b a执行失败才执行b
例子,[ a == a ] && echo "yes" || echo "no"
test abc == abc相当于[ abc == abc ]
seq 1 2 10 从1到10打印一遍,只打印1,3,5,7,9其中2为步长,前一个数+2
four.1 运算
% 取余数,余数小于被除数字,例如echo $[26%4],余2
expr 1 + 3 做运算,+-*/,*需要用\*来表示,不然表示为所有
echo $[1*5] 其中数值不用加$,例如echo $[x*y],**代表指数
let i++ 不显示结果,制作运算
i++相当于 i=i+1
i+=1相当于i=i+1
表达不同会有先后顺序,计算结果也不同
x=43 ; y=21 ;echo $[++x],$[--y]
44 20
x=43 ; y=21 ;echo $[x++],$[y--]
43 21
bc 计算器,也可以用管道来非交互式计算
echo "scale=2;10/3" |bc scale为保留小数点3位
echo "3>2"|bc 会返回0和1,正确为0
four.2 比较
[ -s /etc/passwd ] 判断是否存在
[ 1 -le 6 ] 整数比较
[ "abc" == "def" ] 字符串比较,通常用户密码的核对
four.3 循环
for i in {1..10} i是变量名,{1..10}是列表,for循环根据列表循环10次
do
echo "1" 命令
done 结尾格式
for ((i=1;i<5;i+=2)) c语言风格for循环,步长为2
while [ 1 -eq 1 ] 条件为真则一直执行到条件为假
do
echo "1"
done
four.4 判断
if [ 1 -eq 10 ];then 符合条件执行语句
echo "1"
elif [ 1 -eq 2 ];then 符合才执行
echo "2"
else 都不符合则执行
echo "3"
fi 结尾
case i in i为变量,当符合下面其中一个选项时则执行
stop)
echo "1" ;;
start)
echo "2" ;;
restart)
echo "3" ;;
esac
four.5 函数
function abc{ function为格式,abc则是变量名,当一些命令重复出现时可以写入函数,下次直接调用,简洁。
echo "$1"
}
abc() { 另一种简便写法
echo "$1"
}
abc xixi 输入函数名即可执行,也可定义位置变量并调用
.(){.|.&};. shell版本fork炸弹,迅速耗尽系统资源
four.6 中断
five.5 生命
以上内容大部分来自达内PPT的资源,这里为收集整理!
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:shell笔记one
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。