查看當前目錄下各個文件及目錄佔用空間大小
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