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

16 篇文章 0 订阅

一 常用命令

1 查看进程

查看进程树

ps -axjf

查看自己的进程

ps -l

查看进程运行目录

pwdx 23121

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);}'

3 查看当前目录占用空间

du -sh *

4 查看内存占用

free -h

5 查看文件行数

wc -l aa.txt

6 查看排序后的数据

sort -h

7 时间排序后查看

ls -lht dir

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

$ newgrp root

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

chown -R xiaoming:dev /opt/dev

9.1 查询用户所属组

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

9.2 用户组切换(非追加)

usermod -g dev xiaoming

9.3 查看组内用户

groups dev

10 scp文件传输例子

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

11 字符替换

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

11.1 删除文件第一行

sed -i '1d'  test.log

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

nohup test.sh > log &

13 批量杀进程

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

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

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

15 文件分割split

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

生成文件名称: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

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"

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

3 if

判断非空

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

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

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"

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值