批量修改文件名
原始文件名
1
| file_1_finished.jpg file_2_finished.jpg file_3_finished.jpg
|
批量修改文件名
将所有文件名的 _finished
去掉
1 2 3 4 5 6 7 8 9
| #!/bin/bash
for file in `ls *.jpg`
do # echo $file|sed 's/_finished//g'
mv $file `echo $file|sed 's/_finished//g'` done
|
修改后的文件名称
1
| file_1.jpg file_2.jpg file_3.jpg
|
批量添加文件名
1 2 3 4 5 6
| ls|awk -F "." '{print "mv",$0,$1"_finished."$2}'|bash
# "mv" 拼成了mv修改命令 mv file_1.jpg file_1_finished.jpg
# |bash 由bash执行命令
|
rename方法
1 2 3 4 5
| # 修改前的文件名称:file_1_finished.jpg file_2_finished.jpg file_3_finished.jpg
rename "_finished" "" *.jpg
# 修改后的文件名称:file_1.jpg file_2.jpg file_3.jpg
|
删除find后的文件名
find ./ -name filename -exec rm -rf {} \;
(1) “./“ 表示从当前目录开始递归查找
(2) “ -name ‘*.exe’ “根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
(3) “ -type f “查找的类型为文件
(4) “-print” 输出查找的文件目录名
(5) 最主要的是是-exec了,-exec选项后边跟着一个所要执行的命令,表示将find出来的文件或目录执行该命令。
exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{},一个空格和一个,最后是一个分号.
为每个文件夹下的文件生成list绝对路径
1 2 3 4 5 6 7 8 9 10
| (base) [yujing@capricorn 8k16bitLeft]$ ls 办公室 虫 厨房 纯音乐 地铁 歌曲人声 公交车 核酸 火车 街道 雷雨声 马路边 鸟 人声 食堂 手机铃声 洗衣机 装修
(base) [yujing@capricorn 8k16bitLeft]$ list=".list"
(base) [yujing@capricorn 8k16bitLeft]$ for file in `ls`; do ls `pwd`/$file/* > ../$file$list; done
(base) [yujing@capricorn voice]$ ls 8k16bitLeft 虫.list 纯音乐.list 歌曲人声.list 核酸.list 街道.list 马路边.list 人声.list 手机铃声.list 装修.list 办公室.list 厨房.list 地铁.list 公交车.list 火车.list 雷雨声.list 鸟.list 食堂.list 洗衣机.list
|
检测磁盘IO
iostat命令
1 2 3 4 5 6 7 8 9 10 11 12 13
| [root@localhost unimrcp] Linux 3.10.0-1062.4.1.el7.x86_64 (localhost.localdomain) 07/21/2022 _x86_64_ (24 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle 4.63 0.00 0.84 0.61 0.00 93.91
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sdb 30.54 558.87 219.60 4631847649 1820013606 sdc 0.00 0.00 0.00 4372 0 sda 18.88 105.91 843.55 877787772 6991263568 dm-0 31.27 558.82 219.44 4631447628 1818731803 dm-1 0.05 0.04 0.15 366288 1279052
|
监控IO日志,每1秒执行一次,3次后停止监控
iostat -d 1 3
每一秒检测一次sdb盘的io,将日志存放在io.log
1
| for i in {1..10} ;do `iostat | grep "sdb" >> io.log`;sleep 1;done
|
截取日志中间几行到几行
从第3000行开始,显示1000行,即显示3000~3999行
cat 文件名 | tail -n +3000 | head -n 1000
通过sed查看,推荐
sed -n '10,20p' 文件名
查看该文件10-20行
sed命令妙用
只显示文件最后一行或只显示第一行
1 2 3 4
| sed -n '1p' test.txt
sed -n '$p' test.txt
|
日志监控
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| #!/bin/bash
# 我自己写的脚本,还请海涵
#获取当前时间 date1=`date "+%Y%m%d%H%M%S"`
#========================配置============================== # mrcp原始日志 path_m="/usr/local/unimrcp/log/unimrcpserver-00.log"
# vcg原始日志 path_v="/log/qy/qy.log"
# 结果存放路径 result="/usr/local/unimrcp/result/"$date1'/' #========================配置==============================
# 创建日期路径 mkdir -p $result
#------------------------io------------------------------- while true do # 检测umc进程,如果进程消失,停止所有监控 UMC_PID=`ps -ef | grep -v grep |grep "./umc" | awk '{print $2;exit}'` if [ -n "$UMC_PID" ]; then printf "`date "+%Y-%m-%d %H:%M:%S"`\t" >> $result"io.log" iostat |grep sdb | awk '{print $1 "\t\t\t" $4 "\t\t\t" $5}'>> $result"io.log" sleep 1 else break fi done
#处理IO日志 # cat $result$date1"_io.log" | grep sdb | awk '{print $1 "\t\t\t" $4 "\t\t\t" $5}' > $result"ioDone.log"
# 打印IO日志路径 echo "io监控完毕,日志存放路径:"$result"io.log"
#-------------------------提取日志--------------------------
if [ -n "${path_v}" ] then echo "开始提取vcg日志"
#获取vcg对应的行号 nu_start=`grep -n "request=http:" $path_v | sed -n '$p' | awk -F ':' '{print $1;exit}'` echo "VCG开始行号:$nu_start"
#获取最后的行号 nu_end=`cat $path_v |wc -l` echo "VCG结束行号:$nu_end"
#截取日志 sed -n "${nu_start},${nu_end}p" $path_v > $result"vcg.log"
#提取结果 echo "vcg提取结果存放路径:"$result"vcg.log" fi
if [ -n "${path_m}" ] then
echo "开始提取mrcp日志" #获取mrcp日志对应的行号 nu_start=`grep -n "VCG success" $path_m | sed -n '$p' | awk -F ':' 'NR==1{print $1}'` echo "MRCP开始行号:$nu_start"
#获取最后的行号 nu_end=`cat $path_m|wc -l` echo "MRCP结束行号:$nu_end"
#截取日志 sed -n "${nu_start},${nu_end}p" $path_m > $result"mrcp.log"
#提取关键日志信息 grep -E "VCG success|vcg ret" $result"mrcp.log" | awk '{print $2}'|sed 's/\(.*\)\(:\)/\1\./' > $result"result_mrcp.log"
#提取结果 echo "mrcp提取结果存放路径:"$result"result_mrcp.log" cat $result"result_mrcp.log"
fi
|
使用dd命令快速生成大文件或者小文件的方法
- dd命令可以轻易实现创建指定大小的文件,如
dd if=/dev/zero of=test bs=1M count=1000
在当前目录下会生成一个1000M的test文件,文件内容为全0(因从/dev/zero中读取,/dev/zero为0源),但是这样为实际写入硬盘,文件产生速度取决于硬盘读写速度,如果欲产生超大文件,速度很慢。在某种场景下,我们只想让文件系统认为存在一个超大文件在此,但是并不实际写入硬盘则可以
dd if=/dev/zero of=test bs=1M count=0 seek=100000
此时创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block,因此创建速度与内存速度相当,seek的作用是跳过输出文件中指定大小的部分,这就达到了创建大文件,但是并不实际写入的目的。当然,因为不实际写入硬盘,所以你在容量只有10G的硬盘上创建100G的此类文件都是可以的。
- 随机生成1百万个1K的文件
seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1
dd命令功能很强大具体可以参考 http://www.cnblogs.com/licheng/archive/2008/03/21/1116492.html
转载自: http://blog.csdn.net/cywosp/article/details/9674757
查看当前路径下的进程
根据进程号查看当前程序路径
为每个文件单独打包
xargs
1 2 3 4 5
| # 每个文件都单独打包 ls |xargs -i tar zcvf {}.tar.gz {}
# tar解压文件夹下的所有tar.gz文件 ls *.tar.gz | xargs -n1 -I {} tar xzvf {} -C ..
|
监控每个核使用情况
mpstat
mpstat
是一个用于监视多处理器系统的命令行工具,它可以提供关于每个处理器或处理器组件的详细统计数据。是工具包的一部分,在大多数Linux发行版中都可以mpstat
找到sysstat
。
mpstat
命令的常见用法是查看CPU的使用情况,包括各个核心的使用率。以下是mpstat
命令的基本用法:
1
| mpstat [options] [interval [count]]
|
以下是mpstat
命令的示例用法:
mpstat -P ALL 1 3
此命令将按 1 秒的间隔刷新 3 次所有处理器的统计数据,包括每个处理器的 CPU 使用率、中断等信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| ➜ ~ mpstat -P ALL 1 3 Linux 5.15.0-50-generic (william-ARM-Ubuntu) 2023年07月17日 _aarch64_ (2 CPU)
22时02分39秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 22时02分40秒 all 0.00 0.00 1.00 0.50 0.00 0.00 0.00 0.00 0.00 98.50 22时02分40秒 0 0.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 99.00 22时02分40秒 1 0.00 0.00 1.00 1.00 0.00 0.00 0.00 0.00 0.00 98.00
22时02分40秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 22时02分41秒 all 2.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 97.00 22时02分41秒 0 0.99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.01 22时02分41秒 1 3.03 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 94.95
22时02分41秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 22时02分42秒 all 1.55 0.00 0.52 0.00 0.00 0.52 0.00 0.00 0.00 97.42 22时02分42秒 0 2.04 0.00 1.02 0.00 0.00 0.00 0.00 0.00 0.00 96.94 22时02分42秒 1 1.04 0.00 0.00 0.00 0.00 1.04 0.00 0.00 0.00 97.92
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle Average: all 1.18 0.00 0.84 0.17 0.00 0.17 0.00 0.00 0.00 97.64 Average: 0 1.00 0.00 0.67 0.00 0.00 0.00 0.00 0.00 0.00 98.33 Average: 1 1.36 0.00 1.02 0.34 0.00 0.34 0.00 0.00 0.00 96.95 ➜ ~
|
%usr
:使用用户空间进程所占用的CPU率。
%nice
:很好修改过优先级的进程所占用的CPU使用率。
%sys
:使用内核空间进程所占用的CPU率。
%iowait
:等待I/O完成而空闲的CPU使用率。
%irq
:处理硬件中断的CPU使用率。
%soft
:处理软中断的CPU使用率。
%steal
:被其他虚拟机(如果有的话)或物理服务器窃取的CPU使用率。
%guest
:运行虚拟机占用的CPU使用率。
%gnice
:很好修改过优先级的虚拟机底层的CPU使用率。
%idle
:空闲CPU的使用率。