shell
逗逗家本逗
这个作者很懒,什么都没留下…
展开
-
Parted硬盘分区相关
gpt解析:设置分区类型为gpt,这里注意gpt和MBR分区格式的区别解析:parted是分区命令。/dev/sda:是要被分区的设备;--script mkpart primary ${partion_start} ${partion_end}:primary指定分区是主分区,partion_start是分区开始的位置,partion_end是分区结束的位置,分区的起始、结束位置在分区表里指明;原创 2023-05-12 18:06:44 · 625 阅读 · 1 评论 -
shell隐藏内容、错误、警告的输出内容
shell隐藏内容、错误、警告的输出内容原创 2022-07-06 17:58:14 · 2426 阅读 · 0 评论 -
shell的计算方式
计算的命令种类利用(())进行赋值计算:b=0while read linedo ((b+=1))done < disk.txtecho $b使用$[]#echo $[1+1]2使用(())#((i=1+1))#echo $i2使用let# let i=1+1#echo $i2使用expr# expr 1 + 12使用bc#bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004,原创 2022-05-06 16:12:54 · 134 阅读 · 0 评论 -
shell如何截取特定两行间的数据
数据:aaaaastartup nomountsdfgsasdggassdfgasstartup nomountbbbbbbccccccdddddstartup nomountddddggggcccc解决方案:cat file | sed -n '/startup nomount/,/startup nomount/{//!p}'sdfgsasdggassdfgasddddggggcccccat file | sed -n '/startup nom原创 2022-03-25 16:01:09 · 2970 阅读 · 0 评论 -
shell如何实现字符串不足N位自动补零
printf "%04d\n" 99解释:其中0表示不足为数用0补全,4表示补全到4为数原创 2022-03-03 17:03:09 · 2591 阅读 · 1 评论 -
shell脚本里获取字符串的最后一个字符
STR=123456abcFINAL=echo ${STR: -1}或者FINAL=${STR: -1}都可以让FINAL获得c这个最后一个字符注意:${STR: -1},-1前面有空格原创 2022-01-28 17:00:54 · 2249 阅读 · 0 评论 -
shell之sort排序
sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。[rocrocket@rocrocket programming]$ cat seq.txtbananaapplepearorange[rocrocket@rocrocket programming]$ sort seq.txtapplebananaorangepear2 sort的-u选项它的作用很简单,就是在输出行中去除重复行。[rocrocket@rocr原创 2022-01-28 16:58:17 · 2679 阅读 · 0 评论 -
Shell脚本之break,continue,和exit区别
Linux脚本中的break continue exit returnbreak结束并退出循环continue在循环中不执行continue下面的代码,转而进入下一轮循环exit退出脚本,常带一个整数给系统,如 exit 0return在函数中将数据返回或返回一个结果给调用函数的脚本我理解为:break是立马跳出循环;continue是跳出当前条件循环,继续下一轮条件循环;exit是直接退出整个脚本...原创 2022-01-26 14:53:46 · 185 阅读 · 0 评论 -
使用sftp自动下载文件
lftp sftp://wb-jhp786942:[email protected] -e "get /home/wb-jhp786942/bb.sh;bye"原创 2021-12-13 17:57:38 · 806 阅读 · 0 评论 -
shell脚本报错:“[: =: unary operator expected“解决办法
在匹配字符串相等时,我用了类似这样的语句:if [ $STATUS == "OK" ]; then echo "OK" fi在运行时出现了 [: =: unary operator expected 的错误,就一直找不到原因,尝试了删除等号两侧的空格和括号里的空格都不管用,最后baidu了一下,才找到原因。把语句改成这样就不会出错了.if [[ $STATUS = "OK" ]]; then echo "OK" fi究其原因,是因为如果变量STATUS值为空,那么就原创 2021-11-15 17:34:28 · 6525 阅读 · 0 评论 -
Linux终端无法输入问题解决
解决办法原因可能是在终端下输入了“CTRL+S”代表锁定屏幕显示,使用“CTRL+Q”退出即可(解除之后,会出现在锁定期间输入的字符,即CTRL+S只是锁定了显示而已);其它特殊按键ctrl+c 结束正在运行的程序【ping、telnet等】ctrl+d 结束输入或退出shellctrl+s 暂停屏幕输出ctrl+q 恢复屏幕输出ctrl+l 清屏,等同于Clear原文:https://blog.csdn.net/Ching_777/article/details/75997960...原创 2021-09-16 17:44:30 · 9444 阅读 · 0 评论 -
shell变量内携带变量
eval 接受一个字符串作为它的参数,并对它进行评估、转义。n=1eval echo ${$n}运行传递给eval的参数。扩展后,参数是 echo和 ${1}。所以eval echo ${$n}运行命令echo ${1}。string=idid=1stream_1=“111111”cmd="{$(eval echo ${stream_${id}}), 222222}"echo $cmd有些bash不支持下面写法echo ============echo “${!string}”原创 2021-09-16 17:40:40 · 2150 阅读 · 0 评论 -
shell获取特定行的前后几行命令
例如文件:work hardchinaunixshelllinuxhello worldwork hardchinaunixshell12134542344dedfrgrdfvflinux343445568798我想输出"linux"所在行的前后2行#cat 3.log | grep -A2 linuxlinuxhello worldwork hard--linux34344556解决方法:方法1:grep -C 2 ‘linu原创 2021-09-13 15:16:13 · 1956 阅读 · 0 评论 -
shell变量名中含有变量
这里需要使用到 eval 方法解释:接受一个字符串作为它的参数,并对它进行评估、转义。list=(1 3 5 7 9)l=${list[*]}for i in $ldo eval a_${i}=`echo $i+1 | bc` eval echo "a_$i:\$a_$i"done解析:不加 eval 的情况下,程序只执行一次扫描,使用 eval 后 会实行二次扫描;第一次扫描时,因为扫描到$符号,所以只替换了${i}。第二次扫描时,才进行赋值操作。当需要输出变量所赋原创 2021-09-10 00:31:48 · 1967 阅读 · 0 评论 -
shell bc计算保留两位小数
$echo "scale=2;10/3" | bc3.33原创 2021-09-09 17:38:35 · 3188 阅读 · 1 评论 -
shell数组求和
a=(`cat 1.log | grep WRITE | awk '{print $9}'`)n=${a[*]}s=0for i in $ndo s=`echo $s+$i | bc` echo i=$i echo s=$s echo "++++++"doneecho $necho "======================"echo $s原创 2021-09-09 15:29:53 · 853 阅读 · 0 评论 -
shell 运算符; 判断中 if -a 与运算 -o或运算
#!/bin/basha=10b=20val=`expr $a + $b` # 将 + 符号换成: 减- 乘 \* 除 / 取余 %echo "a +b = $val" # 响应一个字符串, 和变量的值 $valif [ $a == $b ] # if 如果,then 然后, echo 响应,fi 结束字句then # [ $a == $b ] 用绝对等于符号判断两个字符串 echo "a 等于 b " fi---------原创 2021-08-25 16:19:42 · 3860 阅读 · 0 评论 -
iostat
概述iostat 主要用于输出磁盘IO 和 CPU的统计信息。iostat属于sysstat软件包。可以用yum install sysstat 直接安装。iostat 用法用法:iostat [选项] [<时间间隔>] [<次数>]如下图:iostat 用法命令参数:-c: 显示CPU使用情况-d: 显示磁盘使用情况-N: 显示磁盘阵列(LVM) 信息-n: 显示NFS 使用情况-k: 以 KB 为单位显示-m: 以 M 为单位显示-t: 报告每秒向终原创 2021-08-24 18:40:52 · 73 阅读 · 0 评论 -
shell小数比较大小
a=$1b=$2if [ `echo "$a>$b" | bc` -eq 1 ];then echo aelse echo bfi原创 2021-08-24 17:43:29 · 658 阅读 · 0 评论 -
shell模糊匹配
shell字符串比较说明1 完全比较方法(完全匹配)if [ "$soure" == "$dest" ]; then echo "is =="else echo "is !="fiif语句中的==判断字符串是否相等:1、使用完全匹配方式;2、两边的双引号都是可有可无的,但当字符串为空的时候就会报错,提示unary operator expected,因此,需要加入双引号;3、也可以使用=号,但==更合适一些,防止误解,避免误认为是在进行赋值操作。2 模糊比较原创 2021-07-20 15:25:37 · 5966 阅读 · 0 评论 -
mount/umount挂载
mount /dev/sdb /mnt在这里插入代码片umount /mnt参数说明:-V:显示程序版本-h:显示辅助讯息-v:显示较讯息,通常和 -f 用来除错。-a:将 /etc/fstab 中定义的所有档案系统挂上。-F:这个命令通常和 -a 一起使用,它会为每一个 mount 的动作产生一个行程负责执行。在系统需要挂上大量 NFS 档案系统时可以加快挂上的动作。-f:通常用在除错的用途。它会使 mount 并不执行实际挂上的动作,而是模拟整个挂上的过程。通常会和 -v 一起使原创 2021-07-14 18:02:30 · 207 阅读 · 0 评论 -
格式化磁盘
mkfs.ext4 /dev/xxxx原创 2021-07-14 17:59:29 · 60 阅读 · 0 评论 -
bash:/build.sh:/bin/bash^M:bad interpreter:No such file or directory报错解决方法:
原因:build.sh文件格式为dos格式导致解决方法:1. vi build.sh2. :set ff3. :set fileformat=unix #或者 :set ff=unix4. :wq原创 2021-07-13 17:55:46 · 1379 阅读 · 0 评论 -
zip与unzip一般压缩和带密码压缩与解压缩
# -P加密 zip -r -P T09j03x# 20180109.zip inc_day\=20180109# -P指定密码unzip -o -P T09j03x# 20180109.zip -d /home/sfapp/tianjin/fengtu_rst/rst原创 2021-07-05 16:38:16 · 2578 阅读 · 0 评论 -
shell取字符串最后一位
STR=123456abcFINAL=echo ${STR: -1}或者FINAL=${STR: -1}都可以让FINAL获得c这个最后一个字符(注意:-1前有空格)原创 2021-04-09 10:53:45 · 2630 阅读 · 0 评论 -
shell代带密码压缩解压缩zip
一、zip文件加解密1、把文件压缩为zip文件,并在压缩的时候输入密码zip -r -P ${PASSWORD} ${zipfileName}.zip ${fileName}例子:zip -r -P pwd test.zip test2、对应的把zip文件解压缩unzip -P ${PASSWORD} ${fileName}例子:对应上面压缩密码 unzip -P pwd test.zip...原创 2021-04-02 14:41:16 · 1401 阅读 · 0 评论 -
shell忽略最后一个字符
去掉line变量的最后一个字符${line%?}原创 2021-03-29 21:01:04 · 328 阅读 · 0 评论