一、常用Linux命令
1. 两台服务器之间传输文件 scp
scp -r 1.log root@192.168.33.110:/test/update/
或者
scp -r 1.log root@192.168.33.110:$PWD
2. 赋权命令 chown
chown -R test:test aa.log
3. 压缩、解压命令 unzip tar
unzip 20230519.zip
tar -zxvf 20231125.tar.gz
压缩: tar -zcf test.tar.gz test
4. 远程登录另一台服务器 ssh
ssh -p ${port} ${user}@${ip}
5. 查看文件目录 ls
ls -al | grep plugin
more aa.txt 、cat aa.txt 、 less aa.txt 、 vim aa.txt
6. 删除文件
rm -f aa.log
rm -rf aa.log 慎用
7. 查看、杀死进程
ps -ef | grep nginx
kill -9 进程id
拓展: ps -ef | grep nginx | grep -v "grep" | awk '{print $2}' | xargs kill -9
8. 查看日志
tail -500f aa.log 或者 tail -f aa.log 或者 tailf -500 aa.log
9. 文本匹配
grep aa test.txt 匹配文件内容
grep aa -C10 test.txt 匹配文件内容,并展示上下10行
grep -r aa ./*.txt 匹配当前文件夹,所有包含 aa 的txt文件
10. 改名字 和移动文件
mv aa.txt bb.txt
11.创建文件夹
mkdir -p test
12. 文本替换
sed -i "
s/192.168.2.11/192.168.2.13/g" bootstrap.yml 成组匹配替换;
sed -n '/sqoop import/p' RunSqoopTdh20200807.log 打印内容
13. 建立软连接
ln -s hadoop-2.6.0-cdh5.14.0/ hadoop
14. 查看应用程序端口
netstat ano | grep 3306
15. 找到某个路径下【文件名为 **】的文件
find /opt -name '*jmeter*'
16. vim命令
16.1 yy 复制 p粘贴 ; u 撤销 ; i 插入 ; :set number 展示行数 set nu 或者 set nonu
16.2 q! 不保存退出; wq! 保存退出
17. 查看当前用户
whoami 或者 who
二、应用案例
2.1 获取参数 rq=20231225
a.sh
#!/bin/bash
arg=$1
rq=${arg:0-8:8}
echo $rq
执行和结果 sh a.sh rq=20231225
2.2 格式化日期、从Mysql取数
#!bin/bash
arg=$1
rq=${arg:0-8:8}
ny=`date -d "$rq" +%Y%m`
lastn=`date -d "$rq last year" +%Y`
ksrq=`mysql -h192.168.11.110 -uroot -p123456 -Ne " select min (jyr) from test.t_xtjyr where jyr like '%$ny%' " ;`
jsrq=`mysql -h192.168.11.110 -uroot -p123456 -Ne " select min (jyr) from test.t_xtjyr where jyr like '%$lastn%' " ;`
echo $lastn
echo "start_time: $ksrq"
echo "end_time: $jsrq"
执行: sh a.sh rq=20231225