shell基础知识总结

1、shell入门
A、shell是什么
命令行解释器,接收应用程序和用户命令来操作linux内核,同时它也是一个功能强大的编程语言。
B、shell解释器
sh和bash,都是在/bin下面,默认bash。
C、shell脚本执行
第一行都是#!/bin/bash,然后写对应代码,需要注意的是外面执行的时候,sh或者bash hello.sh是别人帮忙执行,不需要权限,但直接./hello.sh即自己执行需要chmod权限。
输出某句话到某文件:echo 双引号字符串然后右位运算(Java中两个大于)文件名
2、变量
A、系统变量
直接用
B、自定义变量
1)变量不需要java那样指定类型,直接i=0(但等于前后不能有空格)
2)unset撤销变量,但如果是静态变量则不能unset。
3)readonly b=3就是静态变量
4)变量是默认字符串类型,不能直接数值运算,比如b=1+1结果还是1+1。
5)如果一个变量里多个字符串,并且空格隔开怎么办?单引号或者双引号括起来,比如c=“hello word”
6)全局变量:如果在控制台定义一个变量,则这个变量是局部变量,所以要想在shell脚本里用,那这个变量必须设置为全局变量才行,怎么使其成为全局变量?定义A后export A即可。
C、特殊变量
1)$n
类似命令行参数,n是数字,比如在一个名为hello.sh的shell脚本中echo “$0 $1”,然后执行的时候sh hello.sh 1,则结果为hello.sh 1即$0是脚本名, 1 就 是 脚 本 名 后 第 一 个 参 数 。 2 ) 1就是脚本名后第一个参数。 2) 12#
以上面的sh hello.sh 1为例,则KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲是1即脚本名后面的参数数量。(…*和 @ 都 是 直 接 输 出 脚 本 名 后 面 的 所 有 参 数 4 ) @ 都是直接输出脚本名后面的所有参数 4) @4
如果上一条命令正确执行则返回0,否则返回非0
3、运算符
1)expr
使用expr,但这个后面必须是空格隔开,和前面的变量=相反,比如expr 2 + 3。
注:shell中的乘是*,需要加上\,那如何实现2+3之后乘以6?两次expr,即expr ‘expr 2 + 3’ * 6
2) [ ] 这 种 更 好 ! 因 为 读 起 来 更 容 易 , 直 接 s = [] 这种更好!因为读起来更容易,直接s= []s=[(2+3)*6],然后echo $s即可。
4、条件判断
[condition]里面会进行判断(condition前后要留空格),比如判断两个整数大小、某个文件是否有读写权限还有文件类型判断等,然后还要echo $?看是否输出0来判断条件判断是否为true,0为true,其他为false。
5、流程控制
A、if
#!/bin/bash
空一行
if空格[空格$1 -eq 1空格]
then
echo “hello”
elif空格[空格$1 -eq 2空格];then
echo “hi”
fi
B、case
用的时候再查
C、for
for后面双括号,里面写的和Java的for循环一样,即初始化(但不用int);判断条件;i++
然后Java直接{}里面写东西,这里是do done。
D、while
s=0
i=1
while [ i − l e 100 ] d o s = i -le 100 ] do s= ile100]dos=[$i + s ] 这 个 不 是 条 件 判 断 , 前 后 不 空 格 i = s]这个不是条件判断,前后不空格 i= s]i=[$i + 1]
done
echo $s
6、read读取控制台输入
这个不难,用的时候可以百度,在自定义函数中可以用到,比如让用户输入两个参数然后求和输出,类似Java的Scanner。
7、函数
A、系统函数
主要两个,一个是获取绝对路径最后的文件名;另一个是获取绝对路径前面的目录
B、自定义函数
也不是很难,具体用到可以百度
8、shell工具
A、cut
cut -d 分隔符(比如逗号)-f 第几个数(类似数组第几个元素,但这里第一个是1)
如果内容很多,可以通过grep过滤,比如ifconfig eth0 | grep “inet addr” | cut … | cut …
B、awk
和cut类似,可以切,具体到时用到百度
C、sort
比如某个文件里每行都是姓名冒号年龄冒号性别,然后要对第二列的年龄倒序排名,则可以使用sort命令按冒号切然后取第二列年龄倒序排名。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值