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 键下边
#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 命令查找和替换文件中的字符串的方法总结
- 如何查找和替换包含分隔符的字符串
当你搜索和替换含分隔符的字符串时,我们需要用反斜杠 \ 来取消转义。
上述 sed 命令按预期工作,但它看起来来很糟糕。 为了简化,大部分的人会用竖线 | 作为正则表达式的定位符。 所以,我建议你用它。
#sed ‘s|/bin/bash|/usr/bin/fish/|g’ sed-test.txt
实现方法:
脚本中通过$#来判断,当前传递给脚本的参数的数量。
测试脚本:
#!/bin/bashecho $#
$* 和 $@ 都表示传递给函数或脚本的所有参数
这篇关于shell常用命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南