Linux 实践 . Shell 脚本总结大全 . 常用的Shell脚本命令用法即介绍

shell
>例: '>' 为创建: echo “hello shell” > out.txt当out.txt 文本不存在时,'>'与‘>>’都会默认创建out.txt文本,
并将hello shell 字符串保存到out.txt中
>>例: '>>' 为追加:echo “hello shell” >> out.txt当out.txt文本存在时,‘>’会将out.txt文本中的内容清空,
并将hello shell 字符串存入而‘>>’会将 hello shell追加保存到out.txt的末尾
${}配合#及%使用达到
字符串中特定位置字符删除操作
例:file=/dir1/dir2/fir3/my.file.txt
${file#*/}:删掉第一个/及其左边的字符串 结果 -- dir1/dir2/dir3/my.file.txt
${file##*/}:删掉最后一个/及其左边的字符串 结果 -- my.file.txt
${file#*.}:删除第一个.及其左边的字符串 结果 -- file.txt
${file##*.}:删除最后一个.及其左边的字符串 结果 -- txt
${file%/*}:删除最后一个/及其右边的字符串 结果 -- /die1/dir2/dir3
${fiel%%/*}:删除第一个/及其右边的字符串 结果 -- 空值
${file%.*}:删掉最后一个.及其右边的字符串 结果 -- /dir1/dir2/dir3/my.file

 
按一定规律提取字符
${file:0:5}:提取最左边的 5 个字节:/dir1 (第0个字符之后的5个字符)
${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2 (第五个字符之后的5个字符)
$1、$#

表示执行脚本传入参数的个数

2、$*

表示执行脚本传入参数的列表(不包括$0)

3、$$

表示进程的id

4、$@

表示执行脚本传入参数的所有个数(不包括$0)

5、$0

表示执行的脚本名称

6、$1

表示第一个参数

7、$2

表示第二个参数

8、$?

表示脚本执行的状态,0表示正常,其他表示错误
devmem[用法]:直接读写内存
Usage: devmem ADDRESS [WIDTH [VALUE]]
读取:在地址0x97000000读取32bit值(WIDTH默认等于32, 可选值为[8, 16, 32, 64])
/dev # devmem 0x97000000
0x11111111
读取:在地址0x97000000读取16bit值
/dev # devmem 0x97000000 16
0x1111

写入:在地址0x97000000写入32bit值0x7777ABCD
/dev # devmem 0x97000000 32 0x7777ABCD
/dev # devmem 0x97000000
0x7777ABCD

注意:如果/dev下没有mem这个node,会出现错误:
/dev # devmem 0x97000000
devmem: can’t open ‘/dev/mem’: No such file or directory

 
pingping -c 3 localhost
linux指令,ping -c count ip,向指定IP发送指定数量的ping包
ethtool用于获取以太网的配置信息或者修改配置
例: ethtool $1 | grep "Speed" | grep "1000M"
查看内核版本路径 : cat /proc/version
[[ ]]在[]里面,使用-eq的时候,需要用整数来做参数,如果是非整数就会提示报错,而[[]]则直接把非整数的字符串转成了0(),而不会去检查并显示报错内容。 当if [ $x -eq $y ]时
[root@localhost shelltest]# ./teststring.sh 1 ad
./teststring.sh: line 4: [: ad: integer expression expected
当if [[ $x -eq $y ]]时
[root@localhost shelltest]# ./teststring.sh ad ad
ok
[root@localhost shelltest]# ./teststring.sh 1 a
not equel
[root@localhost shelltest]# ./teststring.sh aa 0
ok
[root@localhost shelltest]# ./teststring.sh 0 aa
ok
amixer Linux下amixer指令用法小结_wangqingchuan92的博客-CSDN博客_amixer命令
execexec 命令就是为解决这种困境而生的,它可以让重定向对当前 Shell 进程中的所有命令有效,它的用法为:

exec 文件描述符操作
在《结合Linux文件描述符谈重定向,彻底理解重定向的本质》一节讲到的所有对文件描述符的操作方式 exec 都支持,请看下面的例子:
[mozhiyan@localhost ~]$ echo “重定向未发生”
重定向未发生
[mozhiyan@localhost ~]$ exec >log.txt
[mozhiyan@localhost ~]$ echo “c.biancheng.net”
[mozhiyan@localhost ~]$ echo “C语言中文网”
[mozhiyan@localhost ~]$ exec >&2
[mozhiyan@localhost ~]$ echo “重定向已恢复”
重定向已恢复
[mozhiyan@localhost ~]$ cat log.txt
c.biancheng.net
C语言中文网
对代码的说明:
exec >log.txt将当前 Shell 进程的所有标准输出重定向到 log.txt 文件,它等价于exec 1>log.txt。

后面的两个 echo 命令都没有在显示器上输出,而是输出到了 log.txt 文件。

exec >&2用来恢复重定向,让标准输出重新回到显示器,它等价于exec 1>&2。2 是标准错误输出的文件描述符,它也是输出到显示器,并且没有遭到破坏,我们用 2 来覆盖 1,就能修复 1,让 1 重新指向显示器。

接下来的 echo 命令将结果输出到显示器上,证明exec >&2奏效了。

最后我们用 cat 命令来查看 log.txt 文件的内容,发现就是中间两个 echo 命令的输出。
satalinux测试sata的函数,linux测试sata硬盘读写速度_weixin_39979332的博客-CSDN博客RTC:https://www.cnblogs.com/libra13179/p/14299317.html?ivk_sa=1024320u
read当我们输入的字段比变量数目多时,最后一个变量的值将不只一个字段,而是所有剩余的内容;当输入字段比变量数少时,多余的变量将是空值,你可以自己试试。现在我们再来看
while read line
do

done < file
read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。还记得while根据其后的命令退出状态来判断是否执行循环体吗?是的,read命令也有退出状态,当它从文件file中读到内容时,退出状态为0,循环继续惊醒;当read从文件中读完最后一行后,下次便没有内容可读了,此时read的退出状态为非0,所以循环才会退出。
另一种也很常见的用法:
command | while read line
do

done
如果你还记得管道的用法,这个结构应该不难理解吧。command命令的输出作为read循环的输入,这种结构长用于处理超过一行的输出,当然awk也很擅长做这种事。
hexdumphttps://blog.csdn.net/zybasjj/article/details/7874720https://blog.csdn.net/cqbamboo/article/details/41863977
md5summd5sum:计算和校验文件的md5值
功能:用于校验和计算文件的md5值,它是一种不可逆的加密算法。
https://www.cnblogs.com/olddriver-t/p/14517343.html
flash_erase
flash_eraseall
https://blog.csdn.net/mayue_web/article/details/105453979https://www.lmlphp.com/user/16685/article/item/537826/
GPIOhttps://blog.csdn.net/tongxin1101124/article/details/105075340?spm=1001.2014.3001.5502https://blog.51cto.com/u_15155077/2716473
UARTShell 脚本实现串口操作
主要的实现思路:stty实现串口波特率等的设置,cat实现内容的读取,echo实现串口输入。
通常使用的命令为stty -F /dev/$serial_port raw $port_speed。在该命令之后就可以使用echo/cat进行输入输出操作.

把16进制数据0xdd 0xff 发送到/dev/ttyUSB0里去
echo -e -n “\xdd\xff” > /dev/ttyUSB0
-e:表示便能“\”反斜杠,“\x”表示后边的数据为16进制
-n:表示不添加换行符“0x0A
Linux通过shell脚本操作串口_501007162021的博客-CSDN博客_linux shell 操作串口
ddshell中的dd命令使用详解_weixin_30260399的博客-CSDN博客
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值