shell常用命令

2021/4/12 7:30:02

本文主要是介绍shell常用命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

linux下批量杀死进程(使用了xargs)

ps-aux | grepping6 | cut -c 9-15 | xargskill -9
cut -c 9-15是截取上面输出的结果中的进程号,9-15正好是进程号
Shell 基本运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr最常用。
expr是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 ')
#!/bin/bash

val=expr2 + 2
echo “两数之和为 : $val”
表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
完整的表达式要被 包含,注意这个字符不是常用的单引号,在 Esc 键下边

wait shell wait 和sleep对比 在shell 中使用wait 是在等待上一批或上一个脚本执行完(即上一个的进程终止),再执行wait之后的命令。

#Shell中for循环的几个常用写法

fori inKaTeX parse error: Expected 'EOF', got '#' at position 11: (seq 1 5) #̲fori inonetwo t…i/ -name’*.pcm’ >> all_input_wav.txt
done
for((i=1;i<=10;i++));
do
echo ( e x p r (expr (expri * 3 + 1);
done

shell脚本内使用pwd命令
#!/bin/bash
path=pwd
echo $path

shell补位
$i = 3
idx= printf %05d $i
#仅适用于数字
printf “%04d\n” 86
echo 86|awk ‘{printf("%04d\n",$0)}’

#>> 表示接在文档后面写,>表示文档删除干净重写

linux 根据文件大小查找文件

查找当前目录下文件大小为2048(2k)字节的文件
find ./ -size2K
查找大于2K的文件,+ 表示大于
find ./ -size+2048c
查找小于2K的文件,- 表示小于
find ./ -size-2048c
查找大小在某个范围内的文件使用-size参数,-size+n表示大于n单位的范围,-size–n表示小于n单位的范围。例如,查找大于100k且小于400k的文件
find . -typef -mtime-1 -size+100k -size-400k
说明:
-typef表示只查找文件,过滤掉文件夹,块文件等

mtime即modify time,指文件内容被修改的时间。

shell脚本将gbk文件转化为utf-8

iconv -f gb2312 -t UTF-8 -c “$file” > tmp
shell如何输出换行符号
一般来说如果在echo里直接写上\n,他不会被转义,必须加上-e参数
echo “hello\nmorning”
#输出为 hello\nmorning

echo -e"hello\nmorning"
#输出为
#hello
#morning
貌似如果带-e参数,!等符号也变成shell的运算符,所以-e还是不能滥用

cat a.txt | head -n400 | tail -n201 > b.txt
#把a文本中201到400行输出到b文本

深入理解Linux shell中2>&1的含义(全网最全,看完就懂
https://www.jb51.net/article/169778.htm
nohup java -jarapp.jar>log 2>&1 &

Linux复制目录下排除某个文件或文件夹外的所有文件

#第一种
cpls|grep-v test2.py|xargs /home/duni/copy_test

#第二种
cpls|grep-v test2.py|xargs …/copy_test

#第三种
cpls/home/duni/test |grep-v test2.py|xargs /home/duni/copy_test

#第四种
cpls/home/duni/test |grep-v test2.py|xargs …/copy_test
1234567891011
"`ls|grep-v test2.py|xargs1"的作用是排除指定路径下名为test2.py外的所有文件
————————————————
版权声明:本文为CSDN博主「OCISLU」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42970378/article/details/89177318

Linux命令去重统计排序

cat *.log | sort | uniq
cat *.log | sort | uniq -c #uniq命令加-c选项可以实现对重复次数进行统计

多行注释
<<BLOCK
BLABLABLA
BLOCK

获取命令输出
第一种方法:

#output=echo "123"

#echo $output

123

第二种方法:

#output=$(echo “123”)

#echo $output

123

sleep 1 睡眠1秒 sleep 1s睡眠1秒 sleep 1m 睡眠1分 sleep 1h 睡眠1小时

-F 表示指定分隔符
echo a,b,c|awk -F"," ‘{print $1}’
将以","分隔字段,因此$1为a

Linux shell 获得字符串所在行数及位置的方法

cat test | grep -n exe | awk -F “:” ‘{print $1}’

awk -F的用法

print $0,全部打印出来

shell split 字符串 三种方式和效率

我一般会用

echo $str |awk -F, ‘{print $1}’ 这样的方式

或者是

echo $str|cut -d"," -f1 这样的方式

使用Bash Shell检查文件是否存在的方法

下面的命令,则使用Shell的条件表达式,判断/etc/hosts文件是否存在:

1[ -f /etc/hosts ] && echo “Found” || echo “Not found”

Shell字符串比较相等、不相等方法小结

#判断字符串是否相等,与上面的=等价
if [ “ A " = = " A" == " A"=="B” ];then
echo “[ == ]”
fi

使用sed 命令查找和替换文件中的字符串的方法总结

  1. 如何查找和替换包含分隔符的字符串
    当你搜索和替换含分隔符的字符串时,我们需要用反斜杠 \ 来取消转义。
    上述 sed 命令按预期工作,但它看起来来很糟糕。 为了简化,大部分的人会用竖线 | 作为正则表达式的定位符。 所以,我建议你用它。
    #sed ‘s|/bin/bash|/usr/bin/fish/|g’ sed-test.txt

实现方法:
  脚本中通过$#来判断,当前传递给脚本的参数的数量。
测试脚本:
#!/bin/bashecho $#

$* 和 $@ 都表示传递给函数或脚本的所有参数



这篇关于shell常用命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程