一、常用指令
1、Vim
(1)命令行模式
(2)插入模式
(3)移动光标
(4)删除文字
2、查找替换文件
(1)查找纯数字文件:
find . -regex "https://www.cnblogs.com/robots2/p/[0-9]+.jpg"
当前目录和子目录查找文件名 find https://www.cnblogs.com/robots2/p/ -name 'hadoop-temrfs*'
(2)查找纯数字文件,移动到上一层的test文件夹下
find . -regex "https://www.cnblogs.com/robots2/p/[0-9]+.jpg" | xargs -i cp {} https://www.cnblogs.com/robots2/test1
(3??)当前目录模糊搜索文件内容
find . -type f | xargs grep 'test-p'
cat */*.properties | grep '搜索内容'
grep -E "10.224.196.171|10.224.193.58" * 批量搜索
(3)当前文件夹下查找包含字符串mysql-bin的文件
grep -rn mysql-bin https://www.cnblogs.com/robots2/p/
grep -l mysqlstar */* (推荐,当前下一级目录下搜索mysqlstr)
(4)替换当前文件夹下文件内容
sed -i 's:/apps/home/worker/wanglei:/apps/srv:g' *
参数说明:
-i 加上后修改文件,不加则控制台展示
s: 指定分隔符
g: 一行出现多个都替换
*:当前目录所有文件
sed -i 's:替换前:替换后:g' *
(5)清空文件
echo >test.sh
(6)删除文件
删除文件:rm text.txt
删除文件夹:rm -rf https://www.cnblogs.com/robots2/p/test
删除大文件夹: 首先创建空目录 mkdir /tmp/empty
然后删除(注意末尾斜线): rsync --delete-before -d /tmp/empty/ /home/ubuntu/test1/
剔除一个文件,其它删除 ls impala_lineage_log_1.0-16* | grep -v impala_lineage_log_1.0-59 | xargs -n100 rm -f
删除乱码文件:先ls -i 拿到文件id,然后执行 find -inum 节点号 -delete
(7)当前目录搜索文件名
3、压缩解压文件
(1)压缩文件夹
tar -czf test1.tar.gz https://www.cnblogs.com/robots2/p/test1/
(2)解压文件夹
tar -zxf nginx-1.20.1.tar.gz -C /opt/softWare/
tar -zxf kafka_2.12-2.4.0.tgz
4、系统资源
(1)统计每个目录下磁盘使用情况
df -h
(2)查看某个目录文件大小
某目录大小 du -bsh https://www.cnblogs.com/robots2/p/storage/
当前目录下文件大小,按大小排序 du -sh * | sort -h
当前目录总容量 du -sh
当前目录下一级节点占用资源 du -lh --max-depth=1
文件夹中文件个数,需要组合grep使用:
(3)查看内存占用情况
free -h 友好展示
free -m 以MB展示
(4)查看端口占用情况
(5)查看Java程序进程情况
jps -lm 可加v
查看进程连接的端口
netstat -nap | grep | grep 7001
(6)定时任务
crontab -l 查看本地定时任务
crontab -e 编辑本机定时任务,两分钟左右生效
例:* 3 * * * /bin/sh /apps/home/worker/bin/clean_log.sh >> /apps/home/worker/bin/logs/clean_log.log
查看定时任务执行日志:sudo tail -100 /var/log/cron
(7)搜索Linux服务
查询所有进程 ps -ef
查找指定进程 ps -ef | grep 'java'
查看某个服务启动参数 ps -ef|grep jindowin
查看pid启动的工作目录 pwdx pid

查看进程,带进程占用资源 ps aux
(8)查看远程端口是否开启
(10)查询服务器tcp连接状态
netstat -n|grep 80 | awk ‘/^tcp/ {++S[\(NF]} END {for(a in S) print a, S[a]}' </p> <p>(11)查看当前tcp连接</p> <p> 连接数netstat -anp |grep tcp |wc -l</p> <p> tcp连接的ip:</p> <div> <div> netstat -ntu | awk '{print \)5}’ | cut -d: -f1 | sort | uniq -c | sort -n |grep -E ‘172.16.42.196|172.16.42.197|172.16.18.237|172.16.18.238|172.16.22.30|172.16.22.31|172.16.7.227’
(12)服务器信息查看
查看cpu信息 less /proc/cpuinfo
物理cpu个数 less /proc/cpuinfo|grep ‘physical id’
物理cpu中核数 less /proc/cpuinfo|grep ‘cpu cores’
逻辑cpu核数 less /proc/cpuinfo|grep ‘processor’
(13)清理12月之前的Flink checkpoint 目录
除了2021年12月的保留,其它删除
hdfs dfs -ls /flink/flink-checkpoints | grep -v 2021-12 | grep “/flink” | awk ‘{print \(8}' | xargs -n50 hdfs dfs -rm -r -skipTrash</p> <p> 仅删除2021-11的数据,放回收站。 可多个操作,实际执行命令 hdfs dfs -rm -r 文件1 文件2</p> <p> hdfs dfs -ls /flink/flink-checkpoints | grep 2021-11|awk '{print \)8}’|xargs -n2 hdfs dfs -rm -r
仅删除2022-02的数据,放回收站。传参方式执行{}为参数值,每次操作一个,实际执行命令 hdfs dfs -rm -r 文件1
hdfs dfs -ls /flink/flink-checkpoints | grep 2022-02|awk ‘{print \(8}'|xargs -n1 -i hdfs dfs -rm -r {}</p> <p>(14) 查看服务器使用率</p> <p> cpu使用率最高top2 ps auxw|head -1;ps auxw|sort -rn -k3|head -2</p> <p> 内存使用率最高top2 ps auxw|head -1;ps auxw|sort -rn -k4|head -2</p> <p>(15)查询等待连接数</p> <p> netstat -nap| grep \)port | grep TIME_WAIT | wc -l
(16)服务器抓udp类型包
tcpdump -i eth0 udp -w ~/udplog.txt
(17)查询本服务器连接的ip
(18)本地发送post请求
(19)查询mysql并下载结果到本地
(20)根据进程id批量kill进程
(21)查看某个任务内存使用情况
jstat -gcutil 1000
(22)jstack
(24)parallel
单机并行工具,极大地缓解了awk, sed等工具在处理大文件时的单线程高延时问题,前提是机器具备多处理器,相当于在单机执行一次map-only任务。
例如对于大文件求和,原命令 awk '{sum+=$0}END{print sum}' bigfile
使用并行方式 cat bigfile | parallel -j 8 --pipe awk '{sum+=$0}END{print sum}'
执行结果将输出8个子文件的统计结果,需再次进行加工处理求总和,但运行时间大篇幅缩短。
(25)需改权限组
lsof +L1
5、上传下载
(1)本地和服务器之间文件传输
rz sz 上传下载
上传失败使用rz -bey方式
(2)sftp方式上传下载(上传下载都需要挪文件到/tmp目录下)
连接:sftp -P 2222
下载:get -r /home/data /home/my
上传:put /home/fuyatao /var/www/fuyatao/
(3)服务器之间传输文件,跨堡垒机
(4)scp文件上传下载
A在a服务器执行: nc -l 1234 < file 然后B在b上执行nc a 1234 > file 即可通过协议将文件以流形式传递。 1234不是专属端口,可根据情况随意指定, 只要当前在a端没有被占用即可,但要保证两边一致。因为以流形式传递,权限不会附带,在b端都是普通的文本文件,默认权限644.
如果传输目录,可边压缩边传输边解压,a端执行 tar -zcvf - dir | nc -l 1234, b端执行 nc a 1234 | tar -zxvf -
6、代码shell
(1)生成连续数字(seq)
seq
(2)管道过滤器,一般结合管道符(|)使用(xargs)
文本打印成一行输出(不带参数)
seq | xargs
文本一行三列输出(-n)
seq | xargs -n3
文本根据界定符分割(dX单个字符X)
echo "nameXnameXnameXname" | xargs -dX
查找所有jpg文件,并压缩它们
find . -type f -name "*.jpg" -print | xargs tar -czvf images.tar.gz
批量删除文件(只能一个一个月删除)
seq |xargs -n1 -i rm -r /home/ubuntu/test/{}
seq | xargs -n1 -i hdfs dfs -rm -r /user/hive/warehouse/dw.db/logbak/batchEventLog/dt={}
(3)日期段删除数据
date -f <(seq -f%.0f ) +%Y%m%d 2>/dev/null | xargs -n1 -i hdfs dfs -rm -r /user/hive/warehouse/dw.db/logbak/gsLog/dt={}
(4)curl模拟请求(可用postman生成)
(5)文件对比,需要先对文件排序去重。
区分大小写:comm <(sort a.txt|uniq) <(sort b.txt|uniq)
不区分大小写:comm <(sort a.txt|uniq -d -i) <(sort b.txt|uniq -d -i)
统计重复次数:uniq -c uniq_file.txt
(6)文件对比,不需要先去重
文件去重:awk ‘(NR==FNR){a[\(1]=1}(NR>FNR && !a[\)1]){print \(1}' <(cat test1|uniq) <(cat test2|uniq)</p> <p> 文件内大小写去重: awk '(NR==FNR){a[tolower(\)1)]=1}(NR>FNR && !a[tolower(\(1)]){print \)1}’ <(cat test1|uniq -i) <(cat test2|uniq)
7、系统管理优化
(1) 修改权限,支持worker用户切换root
root用户修改:/etc/sudoers
Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
下面新增
worker ALL=(ALL) NOPASSWD: ALL,ALL
8、堡垒机登录

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/158716.html