shell

shell

$#传递到脚本的参数个数
$* 以一个单字符串显示所有向脚本传递的参数。 如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$$ 脚本运行的当前进程ID号
$! 后台运行的最后一个进程的ID号
$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。 如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$- 显示Shell使用的当前选项,与set命令功能相同。
$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

数组操作:

定义:a=(1 2 3 4)

长度:echo ${#a[*]}

遍历:a=${a[2]}

删除:unset a[1]

清空:unset a

切片:${a[@]:1:3}

替换:${a[@]/2/98} 第2个元素,替换为98

遍历:

for i in ${a[@]};do echo $i;done

for ((i=0;i<${#a[*]};i++));do echo ${a[$i]};done

expect用法,交互式

https://www.cnblogs.com/saneri/p/10819348.html

tar操作

https://www.jianshu.com/p/9953cec8c363

字符串处理

https://www.cnblogs.com/gaochsh/p/6901809.html

文本处理工具

https://cloud.tencent.com/developer/article/1366507

popd,pushd

https://blog.csdn.net/muzilanlan/article/details/45564163

find . -regex  ".*\(\.txt|\.pdf\)$"
find . \( -name "*.txt" -o -name "*.pdf" \) -print
find . ! -name "*.txt" -print
find . -maxdepth 1 -type f  
find . -type d -print //只列出所有目录
find . -type f -size +2k
find . -type f -perm 644 -print //找具有可执行权限的所有文件
find . -type f -user root -exec chown weber {} \; //将当前目录下的所有权变更为weber

sort -nrk 1 data.txt
-n 按数字进行排序 VS -d 按字典序进行排序
-r 逆序排序
-k N 指定按第N列排序
sort -bd data // 忽略像空格之类的前导空白字符
sort unsort.txt | uniq
统计各行在文件中出现的次数
sort unsort.txt | uniq -c
找出重复行
sort unsort.txt | uniq -d

sed 's/text/replace_text/' file   //替换每一行的第一处匹配的text
sed 's/text/replace_text/g' file //全局替换
sed -i 's/text/repalce_text/g' file //默认替换后,输出替换后的内容,如果需要直接替换原文件,使用-i:

查看某个文件被哪些进程在读写

lsof是什么意思

list open files

 

查看某个文件被哪些进程在读写

lsof 文件名

查看某个进程打开了哪些文件
lsof –c 进程名
lsof –p 进程号

lsof用法小全
lsof abc.txt 显示开启文件abc.txt的进程
lsof -i :22 知道22端口现在运行什么程序
lsof -c nsd 显示nsd进程现在打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /usr/local/ 显示目录下被进程开启的文件
lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i [i] 用以显示符合条件的进程情况




awk脚本结构
awk ' BEGIN{ statements } statements2 END{ statements } '

CURRENT_DIR="$(cd "$(dirname "$0")"; pwd)"

 

 

posted @ 2022-04-08 14:40  wqkant  阅读(29)  评论(0编辑  收藏  举报