cd
cd /
cd ~
cd …/…/
cd xx
ll
ll -h 友好的展示
ls
mkdir
mkdir 目录名
mkdir -p a/b/b/b
mkdir -p a b c
rmdir
rmdir 目录名 :移除空目录
touch&cp&mv
touch 文件名:创建一个空文件
cp 文件名 目录/文件名:复制
mv 文件名 目录/文件名
mv 文件名 新文件名:重命名
tail
tail -f info.log 动态查看日志 tail -n 10 1.log 取后10行
head
head –n 10 1.log 或者写成head -10 1.log
head –n 10 1.log> b.txt 取a.txt前十行数据重定向到b.txt
清空日志
1.log 清空1.log文件
scp 跨服务器拷贝
scp -r performance yinyongjie@172.17.0.180:/home/yinyongjie
把当前机器的performance目录复制到172.17.0.180上的/home/yinyongjie目录scp -r -P 6789 root@172.16.123.54:/root/yyj/tiku.war
/data/tomcat-newtiku/webapps
把172.16.123.54上的/root/yyj/tiku.war拷贝到当前机器的/data/tomcat-newtiku/webapps目录下
-P后跟端口
跨服务器带密码拷贝用sshpass
sshpass -p “admin123456” scp -r -P 6789
root@172.16.123.54:/root/yyj/tiku.war /data/tomcat-newtiku/webapps
-p后跟登录172.16.123.54服务器的密码
rm
rm 文件名:带询问的删除文件
rm -f 文件名:不带询问的删除文件
rm -rf 目录|文件:不带询问的递归文件
:8,15d 删除第8到15行
chmod
chmod 777 文件名
chmod -R 777 aa目录递归添加读写执行权限
chmod -R -r a 给a目录取消读权限
chown 更改文件的归属者
find
find /home/performance/ -name ‘.sh’ 多文件查找需要用单引 或者双引
find /root -name “.tar.gz” 查找以.tar.gz结尾的文件及文件夹
find /root -type d -name “.tar.gz” 查找以.tar.gz结尾的文件夹
find /root -type f -name “.tar.gz” 查找以.tar.gz结尾的文件
find /root -name “.tar.gz” -delete 查到后删除
find . -type f -name “.tar.gz” -size +100M 查找当前目录下大于100M的.tar.gz文件
cat
cat 1.log | wc -l 统计行数
vim
批量替换:
vim模式下按冒 ,然后输入%s/被替换 格式: 字符/替换字符/g ,例如:%s/2/yidao/g
快速跳转到首行: gg
快速跳转到尾行 : G 批量删除: 删除5-10行 :5,10d
软连接
软连接就是window的快捷方式,前提软连接文件是不存在的
格式:ln -s 源文件 软连接文件(快捷方式) 例如: 执行ln -s
config.php config.php.dist 结果: config.php.dist -> config.php
访问config.php.dist 就相当于访问config.php
用户切换
sodo -i 切换到root用户
exit 退出root用户
上传下载
rz -e 给服务器上传数据(上传 错时需要加-e参数) sz 下载
打包-解压
tar: 打包|解压一个目录或者文件
tar -cvf 文件名 目录 将指定的目录打包成一个指定的文件
tar -zcvf 文件名 目录 将指定的目录打包并且压缩成一个指定的文件tar -xvf 文件名 将指定的文件解压到当前目录
tar -xvf 文件名 -C 目录定的文件解压到指定的目录
打包时排除某个目录
tar -cvf 20190923-user.tar.gz * –exclude log
注意:–exclude后为目录时,目录后不需要带/
–exclude后为文件时,直接写文件名,如果排除的文件或者目录过多,需写多个 –exclude
查看磁盘大小-文件大小
df -h 查看磁盘大
du – sh * 查看文件及文件夹大小
sort 排序命令
注意: sort默认是按照英文字母顺序(abcdefg…排序的)
-u去除重复
-n按数字排序(只要是按数字排序都需要该参数)
-r 按降序排列
-t 后边跟间隔符
-k列数(一般-k和-u参数一起使用,否则会 错) 例子: 日志内容如下 banana:30:5.5 apple:10:2.5 pear:90:2.3 orange:20:3.4 按第二数字从大到小排序的命令为: sort -n -r -k 2 -t: 1.log
uniq
-i 忽略大小写
-c或–count 在每列旁边显示该行重复出现的次数。如果相邻和不相邻的行都需要统计,则需要先排序,再uniq。 例如: cat 1.log |sort | uniq -c
-u或–unique 仅显示出一次的行列。
wc
-l 显示行数
cut
-b 字节
-c 字符
cut -c 2-8 截取第二个到第八个字符
watch
-d 高亮显示动态变化
-n 关闭命令顶部的时间间隔,命令显示
-t 时隔多少秒刷新
例如:
watch -n 3 date
watch -n 3 -d date
watch -n 3 -d -t date
watch -d cat /proc/softirqs
更新服务器时间
第一步:yum install ntp
第二步:ntpdate time.nist.gov
第三步:date
Centos7查看防火墙:
systemctl status firewalld
后台运行
nohup java –jar xxjar &
&表示在后台运行 nohupb表示不挂断的运行命令 一般nohup和&一起使用
sh
sh 1.sh 任务在前台执行
sh 1.sh & 将任务放在后台执行
ctrl+z 将一个正在前台执行的命令放到后台,并且处于暂停状态
bg 将一个在后台暂停的命令,变成在后台继续执行 (b代表back)
fg 将后台中的命令调至前台继续运行 (f代表front)
jobs -l 查看后台执行的所有任务
进程&端口&连接数
ps -ef | grep java
netstate -anp | grep pid #根据进程查端口
netstat -anp|grep port #根据端口查进程
jps -l 查看所有java进程
pkill java 杀死所有java进程
kill -9 pid :强制结束一个进程
killall nginx 杀死所有名字为nginx的进程
杀死所有java进程
ps -ef | grep java | grep -v grep | awk ‘{print $2}’ | xargs kill -9
参数说明: -v : 反选,除grep外的所有进程
xargs 作用是将参数列表转换成小块分段传递给其他命令,以避免参数列表过长的问题
lsof 该命令需要用root身份来执行
列出谁在使用某个端口(或者说某个端口被哪个进程占用)
lsof -i:端口 #根据端口查进程
lsof -i |grep pid #根据进程查端口
netstat命令
-a all
-n 不显示别名
-t tcp
-l listen
-p process
–
查看已打开服务对应的进程及端口
Netstat -ntlp
–
查看80端口占了多少个连接
netstat -nat | grep -i “80” | wc -l
–
查看当前80端口有多少连接处于连接状态
netstat -anp | grep ESTABLISHED | grep 80| wc -l
–
查看httpd进程占了多少个连接
ps -ef | grep httpd | wc -l
–

内存
free -g
硬盘
lsblk
nginx日志统计
nginx用空格进行分割时
$4 时间
$7 接口url
$9 状态码
统计每秒的请求数
tail -f access.log | awk ‘{print$4}’ | uniq -c
统计每个状态码出现了多少次
tail -f access.log | awk ‘{print $9}’ |sort|uniq -c
统计访问次数前10的接口
cat access.log |awk -F ‘”’ ‘{print $2}’|sort|uniq -c|sort -rn|head -10
——分割线——
根据时间统计接口的请求次数
sed -n ‘/01/Apr/2021/,/19/Ap/2021/p’ zzlcht.access.log | grep ‘sunlands-lite-panda’|awk ‘{print $7}’|sort|uniq -c|sort -rn
注意点:日期里正斜杠的转义
统计访问url的pv
sed -n ‘/01/Apr/2021/,/19/Ap/2021/p’ zzlcht.access.log | grep ‘sunlands-lite-panda’|awk ‘$7’|wc -l
服务器连接数统计
netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}’
注意:
SYN_RECV表示正在等待处理的请求数;
ESTABLISHED表示正常数据传输状态;
TIME_WAIT表示处理完毕,等待超时结束的请求数。
grep
不带任何参数,为打印被查询关键字所在行的内容
grep -i 忽略大小写
grep -o 精确查找(只显示匹配到的内容)
grep -v 反向查找
grep支持正则表达式
.表示任意一个字符;*表示任意字符 多层过滤
例如:grep ‘25786547’ 1.log | grep ‘13717624935’
awk
awk是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理
例如:
echo “123|456|789”|awk -F ‘|’ ‘{print $1}’
echo “123+345-789”|awk -F ‘+|-’ ‘{print $1}’ #根据加 或者减 分割
参数:
-F参数为指定分隔符 print为打印
$1为第一个域,$2为第二域
$为所有域 t为制表符
| 表示或
显示123.log文件中的所有包含404的字段
awk ‘/404/{print $0}’ 123.log
显示110文件中每个用户及对应的IP,要求用制表符分开
cat 110 | awk -F ‘:’ ‘{print $1″t”$2}’
某列求和
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum}’
求平均值
cat 5.log |awk -F ’ ’ ‘{sum=sum+$2} END {print “sum=”,sum/NR}’
sed
参数:
-n:sed会在处理一行文本前,将待处理的文本打印出来,-n参数关闭了这个功能(关闭默认输出)
-i: 修改内容
功能选项:
s: 取代
p:打印,表示打印当前行
sed -n p 1.log # 打印1.log的内容,相当于cat命令
2.定址
告诉sed你期望处理的行,由逗 分隔的两个数字表示,(美元符 )符 表示最后一行;
sed -n ‘2,3’p 5.log #打印第2到3行
sed -n ‘2,$’p 5.log #打印第2行到最后一行
sed -n ‘/100/p’ 5.log #打印文件中包含100的行
批量替换
sed ‘s/原字符/新字符/’ 1.log
sed -i ‘s/原字符/新字符/’ 1.log #-i参数保存到文件中
查看某时间段日志
例如:查看2014-12-17 16:17:20到2014-12-17 16:17:36的日志如下:
sed -n ‘/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p’ test.log
删除带有xxx的行
sed -i -e ‘/xxx/d’ 1.log
linux进程间的通信方式
查看CPU型
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查询系统具有多少个逻辑核:
cat /proc/cpuinfo | grep “processor” | wc -l
查询系统CPU的个数:
cat /proc/cpuinfo | grep “physical id” | sort | uniq | wc -l
软件包安装
linux查看某软件包是否已经安装
- rpm包安装的,用rpm -qa|grep xxx
- deb包安装的,用dekg -l | grep xxxx
- yum install 安装的, 用 yum list installed |grep xxxx
- 如果是源码包子自己编译安装的,例如.tar.gz , 这个只能看可执行文件是否存在了,用whereis xxx查找可执行文件
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux进阶新增用户25061 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!