查看当前目录下各个文件及目录占用空间大小
du -sh *
shell获取最后一列:awk '{print $NF}'
shell去掉最后一个字符:
sed 's/.$//'
awk '{sub(/.$/,"")}1'
awk '{printf $0"\b \n"}' ufile
shell数组去重:arr=`cat mylog/top_monitor_record_1_100.log|grep v-binbi|awk '{print $NF}'|sed 's/ /\n/g'|sort|uniq`
shell输出数组:echo ${arr[*]}
awk打印除第一列之外的所有列:awk '{for(i=2;i<=NF;++i) printf $i "\t";printf "\n"}' test.txt
$$
Shell本身的PID(ProcessID)
$!
Shell最后运行的后台Process的PID
$?
最后运行的命令的结束代码(返回值)
$-
使用Set命令设定的Flag一览
$*
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。
$@
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。
$#
添加到Shell的参数个数
$0
Shell本身的文件名
$1~$n
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。
1. 使用tar压缩文件
tar -zcvf test.tar.gz ./test/
该命令表示压缩当前文件夹下的文件夹test,压缩后缀名为test.tar.gz
如果不需要压缩成gz,只需要后缀为tar格式的,那么输入如下命令:
tar -cvf test.tar ./test/
2. 使用tar解压文件
tar -xzvf test.tar.gz
该命令表示把后缀为.tar.gz的文件解压到当前文件夹下。
如果压缩文件的后缀是.tar,没有gz,则使用命令:
tar -xvf test.tar
df 查看磁盘占用
htop 比top更人性化
free 查看内存空闲
监控gpu
pid=()
for。。。
do
nvidia-smi dmon -s u -f './gpu_status_'${data}'.txt' &
pid+=("$!")
nvi_pid=${pid[${#pid[*]}-1]}
sleep 20
kill ${nvi_pid}
sleep 20
done
监控cpu
#!/bin/bash
process_name_1="【xxx】" # get the specifical process_name
path=`pwd`
log_file=$path"/top_monitor_record.log"
hostname=`uname -n`
CPU_info=`cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c`
MEM_info=`cat /proc/meminfo | grep -i 'MemTotal'`
echo "hostname: "$hostname", CPU: "$CPU_info", MEM: "$MEM_info > $log_file
echo "TIME, PID, USER, VIRT, RES, SHR, %CPU, %MEM, COMMAND" >> $log_file
while true
do
pid_1=`ps -ef | grep root | grep $process_name_1 | grep -v grep | grep -v /home |sed -n '1p' |awk '{print $2}'`
top -p $pid_1 -b -n 1|sed -n '8,16p'|awk 'BEGIN {FS=" ";OFS=", "}{now=strftime("%Y/%m/%d %T",systime());print now,$1,$2,$5,$6,$7,$9,$10,$12}' >> $log_file
sleep 10
done