linux常用命令
系统信息
top
实时显示系统进程和资源使用情况
- top - 10:40:36
• 系统当前时间
- up 10 days, 35min
• 系统到目前为止已运行的时间
- 1 user
• 当前登录系统的用户数量
- load average: 0.39, 0.35, 0.48
• 系统负载(任务队列的平均长度),3个数值分别为1分钟、5分钟、15分钟前到现在的平均值
- Tasks : 85 total, 2 running, 83 sleeping, 0stopped, 0 zombie
• 显示的是进程状态信息的汇总,分别对应:所有启动的进程数、正在运行的进程数、挂起的进程数、停止的进程数、僵尸进程数
- %Cpu(s) : 3.2 us, 6.5 sy, 0.0 ni, 90.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
• 3.2% us
• 用户空间占用CPU百分比
• 6.5% sy
• 内核空间占用CPU百分比
• 0.0% ni
• 用户进程空间内改变过优先级的进程占用CPU百分比
• 90.3% id
• 空闲CPU百分比
• 0.0% wa
• 等待输入输出的CPU百分比
• 0.0% hi
• 硬中断占用CPU百分比
• 0.0% si
• 软中断CPU百分比
• 0.0% st
• 虚拟CPU等待实际CPU的时间的百分比
- Kib Mem : 3880884 total, 622008 free, 493640 used, 2765236 buff/cache
• 物理内存总量、已经使用的物理内存、空闲物理内存、内核缓存内存量
• buffer和cache的作用是所用I/O系统调用的时间,比如读写等。一般一个系统而言,如果cache的值很大,说明cache住的文件多。如果频繁访问文件都能被命中,很明显会比读取磁盘调用快,磁盘的IO必定会减小
• 从字段的意义上来说mem.free表示的是空闲内存总量,但是需要注意的是,虽然buffer/cache会占用一定的物理内存,但是当系统需要内存的时候,这些内存立即释放出来,也就是说buffer/cache可以看成可用内存
- Kib Swap : 0 total, 0free, 0 used. 2993920 avail Mem
• 交换区总量、已使用交互区总量、空闲交换区总量、缓冲的交换区总量
- 进程信息
• PID
• 进程ID
• USER
• 进程所有者
• PR
• 优先级
• NI
• nice值,负值表示高优先级,正值表示低优先级
• VIRT
• 进程使用的虚拟内存总量,单位kb,VIRT=SWAP+RES
• RES
• 进程使用的、未被换出的物理内存大小,单位kb,RES=CODE+DATA
• 进程实际使用的内容
• SHR
• 共享内存大小,单位kb
• %CPU
• 上传更新到现在的CPU时间占用百分比
• %MEM
• 进程使用的物理内存百分比
• TIME+
• 进程使用的CPU时间总计,单位1/100秒
• COMMAND
• 命令名/命令行
- 概要
• 统计使用的是CPU需要用1-%id获取。或者us+sy+si
• wa:使用率过高的时候,我们需要考虑IO的性能是否有瓶颈,可以在使用iostat、sar等命令做进一步分析
• hi:使用率过高时,表示当前硬件中断占用很大的百分比。一般硬件中断我们可以分析文件/proc/interrupts、/proc/irq/pid/smp_affinity、服务irqbalance是否配置,以及CPU的频率设置,通过这些可以帮系统打散优化系统的硬件中断
• Linux kernel通过用一种软件的方法(可延迟函数)来模拟硬件的中断模式,通常叫做软中断。常见的软件中断一般都是和网络有关。从网卡到IP层的数据报文收发都是si处理的,长时间写日志也可能产生软件中断
• 当软中断出现瓶颈的时候,系统有个进行叫ksoftirqd,每个CPU都有自己对应的ksoftirqd/n(n为CPU的逻辑ID),每个ksoftirqd的内核线程都会去运行对应的ksoftirqd(函数)来处理自己的中断队列上的软件中断。所以,当网络出现阻塞的时候,软件中断程序ksoftirqd肯定会出现瓶颈。此时我们可以通过ps aux|grep ksoftirqd查看ksoftirqd的瓶颈
du
显示目录或文件的磁盘使用量
df
显示磁盘空间使用情况
- -h(--human-readable):以易于阅读的格式(如MB、GB)显示信息
系统管理
ps
查看当前进程
通常用来查看Java进程的情况以及检查JVM参数
- //查找java进程,相当于jps命令,但是有的时候线上服务器没办法执行jps,可以用以下命令代替
ps aux|grep java
//查询java进程,并高亮显示Xmx参数部分
ps aux|grep java | grep --color Xmx - //只滚动输出ERROR的日志
tail -f application.log |grep ERROR - TAR 是一个归档工具,用于将多个文件和目录集合到一个单一的文件中(tarball),但本身并不压缩文件
- TAR 可以说是打包工具,它保持了文件的目录结构和属性信息,便于备份和传输
- 为了减小体积,TAR 文件经常与其他压缩工具如GZIP或BZIP2一起使用,生成如 .tar.gz(通常称为tarball)或 .tar.bz2 的文件
- GZIP 是一个压缩工具,主要用于对单个文件进行压缩,不提供归档多文件的功能
- GZIP 不保留原始文件的文件结构和权限信息,只关注于压缩单个文件的内容
- ZIP 是一种常用的归档与压缩格式,原生支持于Windows操作系统,并且在Mac和Linux上也被广泛支持
- ZIP 支持多种压缩算法,而且可以添加文件注释、密码保护等额外功能
- procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 1 0 2446260 0 3202312 0 0 201 16304 1 6 0 0 84 5 1 - cpu指标
kill
杀死进程
chmod
更改文件或目录权限
chown
更改文件或目录的所有者和群组
文件操作
ls
列出目录内容
当需要显示隐藏文件的时候用ls -a
ll
ll是ls -l命令的一个别名,用于以详细列表格式显示当前目录中的文件和目录
mkdir:创建新目录。
rmdir:删除空目录。
rm:删除文件或目录。
cp:复制文件或目录。
mv:移动或重命名文件或目录。
touch:创建空文件或更新文件时间戳。
find:搜索文件和目录
// 在当前目录及其子目录中查找名为filename.txt的文件:
find . -name filename.txt
//查找所有目录
find . -type d
//查找所有普通文件
find . -type f
//查找大于10MB的文件
find . -size +10M
//查找修改时间在过去7天内的.log文件
find . -name "*.log" -mtime -7
日志查看
vi/vim
cat
查看文件内容
用于查看较小的文本文件
more / less
分页查看文件内容
less可以翻页,more不能翻页
查看较大的文本文件
tail
查看文件末尾内容,通常用来实时监视日志文件的新增内容
head
查看文件开始部分的内容。用于快速查看文件的开头部分。
grep
搜索文件中的文本行,并显示匹配的行。通常用来查找包含特定关键词的日志条目。
网络和通信
ping
检测网络到另一台主机的连接
curl / wget
从网络上下载文件
netstat
显示网络连接、路由表、接口统计等信息
ssh
安全远程登录
scp
通过SSH复制远程文件
telnet
主要被用于创建到远程主机的终端会话,或者测试远程主机上特定端口的可达性和服务的响应性
ifconfig
查看和更改网络接口的配置,例如IP地址、子网掩码和广播地址
压缩与解压
tar
压缩和解压tar文件
gzip / gunzip
压缩和解压gzip文件
zip / unzip
压缩和解压zip文件
概要
GZIP 通常提供的压缩比率对于文本文件来说是比较高的,但因为它主要设计为单文件压缩,所以当需要处理多个文件时,通常会先用TAR打包再用GZIP压缩
ZIP 在压缩比率上可能不如GZIP对文本文件的压缩效果,但它提供了更多的功能,如加密、分卷压缩等,并且可以直接处理多个文件和目录
当比较纯粹的压缩率,XZ和BZIP2通常提供比GZIP更高的压缩比,但它们的压缩/解压速度较慢
包管理
apt-get(Debian系)
yum(RedHat系)
概要
软件包的安装、更新和管理(根据你的Linux发行版而定)
系统监控和性能分析
vmstat
显示虚拟内存统计信息
• %us:用户进程执行时间百分比
• %sy:内核系统进程执行时间百分比
• %id:空闲时间百分比
• %wa:IO等待时间百分比
• %st:虚拟 CPU 等待实际 CPU 的时间的百分比
• 概要
• us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。
• sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。
• wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。
iostat
显示CPU和输入/输出统计信息
dmesg
显示内核相关的日志信息
- 日志太多,看不懂,还需要root权限
- 1.74 1.87 1.97 这三个数字的意思分别是1分钟、5分钟、15分钟内系统的平均负荷。我们一般表示为load1、load5、load15