当前位置:   article > 正文

centos7 查看进程/链接IP/数组-循环-if/同一个用户多个组之间切换/修改目录下文件名/截取/md5/文件分割_centos 查看数据流入流出ip

centos 查看数据流入流出ip

一 常用命令

1 查看进程

查看进程树

ps -axjf
  • 1

查看自己的进程

ps -l
  • 1

查看进程运行目录

pwdx 23121
  • 1

2 查看当前机器的链接IP

netstat -n | awk '/^tcp/ {n=split($(NF-1),array,":");if(n<=2)++S[array[(1)]];else++S[array[(4)]];++s[$NF];++N} END {for(a in S){printf("%-20s %s\n", a, S[a]);++I}printf("%-20s %s\n","TOTAL_IP",I);for(a in s) printf("%-20s %s\n",a, s[a]);printf("%-20s %s\n","TOTAL_LINK",N);}'
  • 1

3 查看当前目录占用空间

du -sh *
  • 1

4 查看内存占用

free -h
  • 1

5 查看文件行数

wc -l aa.txt
  • 1

6 查看排序后的数据

sort -h
  • 1

7 时间排序后查看

ls -lht dir
  • 1

8 同一个用户多个组之间切换

$ newgrp root
  • 1

9 修改目录所有者(及组)

chown -R xiaoming:dev /opt/dev
  • 1

9.1 查询用户所属组

id user #查看群组分配是否正确
  • 1

9.2 用户组切换(非追加)

usermod -g dev xiaoming
  • 1

9.3 查看组内用户

groups dev
  • 1

10 scp文件传输例子

 scp -r dev/redis xiaoming@192.168.1.1:/home/xiaoming
  • 1

11 字符替换

sed -i "s/wode/nide/g" test.log
  • 1

11.1 删除文件第一行

sed -i '1d'  test.log
  • 1

12 脚本后台运行(关闭窗口不停止)

nohup test.sh > log &
  • 1

13 批量杀进程

kill -9 `ps -ef | grep pushtestkill|awk '{print $2}'` 
  • 1

14 截取字符串(索引最后一个字符)

awk -F ',' '{print $5","$10","$NF }'
  • 1

15 文件分割split

split -a 2 --additional-suffix=".log" -d -b 10m mysql.log small_mysql
  • 1

生成文件名称:small_mysql00.log
small_mysql01.log
参数说明

  • -a生成长度为N的后缀(默认为2)
  • –additional-suffix为文件名追加一个后缀
  • -d 使用从0开始的数字后缀,而不是字母后缀
  • -b指定分割后文件大小为10m
  • mysql.log 源文件名称
  • small_mysql 分割后的文件名称前缀
    更多参数使用查看 --help

二 常用脚本例子

1 数组、for

#!/bin/bash
#条件
if [ $(ps -ef | grep -c "java") -gt 1 ]; 
then 
	echo "true"; 
fi

#数组
my_array=(1,2,3,4,5,6)

echo "第一个元素为: ${my_array[0]}"
echo "第二个元素为: ${my_array[1]}"
echo "第三个元素为: ${my_array[2]}"
echo "第四个元素为: ${my_array[3]}"
echo "第5个元素为: ${my_array[4]}"

echo "数组元素个数为: ${#my_array[*]}"
echo "数组元素个数为: ${#my_array[@]}"

#循环
for i in ${my_array[*]}
do
	printf "$i\n"
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

2 统计脚本执行计算时间

#!/bin/bash

starttime=`date +'%Y-%m-%d %H:%M:%S'`
echo "时间:$starttime 开始执行 $1"

sh $1

endtime=`date +'%Y-%m-%d %H:%M:%S'`
echo "时间:$startime 执行结束"

#耗时计算
start_seconds=$(date --date="$starttime" +%s);
end_seconds=$(date --date="$endtime" +%s);
echo "时间:$endtime 传输完成 耗时: $((end_seconds-start_seconds)) s"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

3 修改目录下文件名

#查看脚本打印信息
for name in `ls log/*`;do echo $name;done
#打印验证修改结果
for name in `ls log/*`;do echo ${name%_hdd*}_0901${name##*tps};done
#修改操作:慎重!!!!!!
for name in `ls log/*`;do mv $name ${name%_hdd*}_0902${name##*tps};done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3 if

判断非空

[ -z "3kw" ] && echo "yes" || echo "no";
  • 1

4 md5处理字符串(替换每行前32个字符)

#!/bin/bash
printf "*************************************\n"
echo " cat file whiel read line"
declare -i x=1

echo "">tmp.csv
cat source.csv |while read line
do

sub=${line:32}
pre=$(echo -n $x|md5sum|cut -d ' ' -f1)
#echo $x
echo "前缀---"$pre
#echo $sub

result=$pre""$sub
echo $result >> tmp.csv

x+=1
done
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

5 sed 替换内容

5.1 搜索并且在搜索内容后面添加:00

grep "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} [0-9]\{2\}:[0-9]\{2\}\"" tmp.csv | sed "s/:[0-9][0-9]/&:00/g"
  • 1

sed “s/11/&22/g” 在搜索到的内容后面添加22
sed “s/11/22&/g” 在搜索到的内容前面添加22
sed "s/$/&22/g"在搜索到的一行数据后面添加22
sed "s/^/22&/g"在搜索到的一行数据前面添加22

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/49099
推荐阅读
相关标签
  

闽ICP备14008679号