shell命令
sh -x 脚本路口 参数
># 进入调试模式
https://www.bilibili.com/video/BV1ep4y1s7Eb?p=30
find命令
- 基本参数和用法
-name
-iname #忽略大小写
-amin n: #在过去n分钟内被读取过
-cmin n: #修改过
-atime n:
-ctime n: #+n表示在过去n天前被修改过。-n 代表n天之内,n 代表第n天
-empty #空的文件
-ipath #忽略大小写,匹配路径
-size
-type #文件类型
d f #目录,文件
访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
修改时间(-mtime/天,-mmin/分钟):文件最后一次修改时间
变化时间(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
# find /var/log -type f -mtime +7 -ok rm {} \;
# 7 日以前的普通文件,并在删除之前询问它们
find ... -exec rm {} \;
- 记一次find正则匹配:匹配目录下长度为19的数字目录名称
file="/opt/zmm/file"
files=$(find $file -regextype "posix-egrep" -regex '\/opt\/zmm\/file\/[0-9]{19}')
- 对目录或文件取反匹配
Linux下清理内存和cache缓存方法
网站:
https://www.cnblogs.com/the-tops/p/8798605.html
hostname
HOSTNAME -I #取出所有IP
du详解-常用参数详解
> du -sh /opt/ #查看单个文件/文件目录的大小
> du -a -x -h --max-depth=1 / |sort -hr #查看根目录下每个文件目录的大小,并按从大到小排序
> awk '{print $1}' access.log |sort |uniq -c |sort -nr -k1
> du -sh /* | sort -rh #安装文件大小排序
> du -s #仅显示目录或文件的总计数值
> du -h #以K,M,G为单位,提供可读性
> du -a #显示所有目录或文件的大小
> du -x #跳过不同的文件系统目录
> --max-depth #表示要查看几层目录
> -m #以MB为单位输出
> -k #以KB为单位输出
sort详解-常见参数详解
> sort filename #输出时默认按ASCII正向排序
> sort -u #输出时去除重复行
> sort -r #反向显示
> sort -h #显示(k,m,G)
> sort -n #以数值大小显示
> sort -k #指定列数,以哪个区间 (field) 来进行排序
> sort -t #指定间隔符
> sort -o #重定向到文件。例如 sort -n -r a.txt -o b.txt
> sort -c #检查文件是否已经按照顺序排序,如未排序,会提示从哪一行开始乱序
> uniq -c #显示该行重复的次数
-b:忽略每行前面开始的空格字符,空格数量不固定时,该选项几乎是必须要使用的("-n"选项隐含该选项,测试发现都隐含)
-c:检查文件是否已经按照顺序排序,如未排序,会提示从哪一行开始乱序
-C:类似于"-c",只不过不输出任何诊断信息。可以通过退出状态码1判断出文件未排序
-d:只处理英文字母、数字及空格,忽略其他的字符
-f:将小写字母视为大写字母
-h:使用易读性数字(例如:2K、1G)
-i:除了040至176之间的ASCII字符外(八进制0-177),忽略其他的字符(忽略无法打印的字符如退格/换页键/回车)
-k:以哪个区间 (field) 来进行排序
-m:将几个排序好的文件进行合并,只是单纯合并,不做排序
-M:将前面3个字母依照月份的缩写进行排序
-n:依照数值的大小排序
-o <输出文件>:将排序后的结果存入指定的文件
-r:降序
-u:忽略相同行
-t <分隔字符>:指定分隔符,默认的分隔符为空白字符和非空白字符之间的空字符
> #linux系统使用CPU率前10的应用
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head
> #linux系统使用内存前10的应用
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -10
system
systemctl -t target #查看
模式的控制:
纯文本字符模式:multi-user.target
图形模式:graphical.target
当前模式切换:
systemctl isolate multi-user.target
修改默认模式:
systemctl get-default #查看默认模式
syetemctl set-default graphical.target #修改为图形
reboot
关于DNS域名指向问题
在网卡配置文件中添加:PEERDNS=no 这个命令,重启网卡,/etc/resolv.conf文件不会被重写
如果上述方法不成功则执行如下方法
可以使用chattr +i /etc/resolv.conf 方法解决
lsattr -a # 查看chattr执行的结果
route
traceroute与tracert
Linux系统初始化安装
yum -y install wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel \
openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf \
automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrack ntpdate \
yum-utils device-mapper-persistent-date lvm2 lsof telnet
rpm
rpm -q mysql-community-client
rpm -qa |grep mysql
rpm -qi mysql-community-client
rpm -ql mysql-community-client
rpm -qf `which mysql`
yum
yum list kubelet --showduplicates |sort -r #展示版本列表
ssh-keygen
ssh-keygen -N '' 回车
系统负载
]# uptime
01:53:16 up 6 days, 20:33, 1 user, load average: 0.00, 0.01, 0.05
# 当前时间
# 系统已运行时间
# 当前在线用户
# 系统平均负载:1分钟,5分钟,15分钟
~]# cat /proc/loadavg
0.00 0.01 0.05 1/158 17959
前3个表示平均进程
1/158 # 分母表示系统总进程数,分子表示正在运行的进程数;
17959 # 表示最近运行的进程ID
何为系统负载
定义:在特定时间间隔内运行队列中的平均进程数。
需满足一下条件:
1:没有在等待I/O操作的结果
2:没有进入主动等待状态(也就是没有调用'wait')
3:没有被停止:(例如:等待终止)
一般来书,每个CPU内核当前活动进程数不大于3,则系统运行良好。如果是4核,进程数小于12表示负载正常
exec
执行一个命令后退出终端
exec ls、exec cd
Linux时间同步
ntpdate -u ntp.api.bz
ntpdate -b ntp.aliyun.com
# 设置时区
timedatectl set-timezone "Asia/Shanghai"
# 查看当前的时区状态
timedatectl status
timedatectl
# 查看时区
date -R
https://blog.csdn.net/z13615480737/article/details/82776167
https://www.cnblogs.com/suiyueshentou/p/7798340.html
- ps
ps -P pid #查看pid进程的详细信息
- stress 压测
yum -y install stress
-c --cpu N #产生N个进程,每个进程反复不停的计算随机数的平方根
-i --io N #产生N个进程,每个进程反复调用sync()将内存上的内容写到硬盘上
-t --timeout N #在n秒后接受程序
sysstat 系统监控
yum -y install sysstat
mpstat #实时系统监控工具
-P {cpu | ALL}
mpstat -P ALL 5
# 每5s检查一次所有cpu,查看是用户还是系统导致的负载过高。
mpstat -P ALL 5 2
表示每5秒产生一个报告,总共产生2个
pidstat #进程监控
pidstat -u 5 1
# 每5s输出一组数据,最后一组数据是平均值,查看是哪个程序导致的负载过高
iperf 网络测速
- udp模式下
服务端:
iperf -u -s
客户端:
iperf -u -c server-ip -b 100M -t 60
-u:udp协议
-b:udp模式下,单位bits/sec,默认为1Mb/s,设置每秒的带宽
-t:设置传输的总时间,iperf在指定时间内,重复的发送指定长度的数据包,默认为10秒钟。
-P:客户端向服务端发起的线程总数
-d:运行双测试模式。这将使服务器端反向连接到客户端,使用-L 参数中指定的端口
- tcp模式下
服务端:
iperf -s
客户端:
iperf -c server-ip -P 30 -t 60 -i 1
iperf -c server-ip -d -t 60
-i n: 设置每次报告之间的时间间隔,单位为秒
来自: http://lnmp.ailinux.net/iperf
iftop 查看流量流入流出信息
- watch more /proc/net/dev #使用watch查看网卡流量
TX:发送流量
RX:接收流量
cum:总流量
peak:流量峰值
rates:分别表示2s,10s,40s的平均流量
常用参数:
iftop -i ens192 -n -P -B
-n :使host信息默认直接都显示IP
-P :使host信息及端口信息默认都显示
-B :显示bytes(KB)默认为bits
gperf
gperf
wget