Linux常用指令大全,这里包括了最常用的linux指令,方便快速查阅和进行定位使用,Linux常用命令包括:查看硬件信息命令、系统性能监视命令、内存命令、CPU命令、I/O命令、进程命令、负载命令、关机和查看系统命令等。
Linux常用指令
这里收录多种linux常用指令,并例举出实例,可以方便快速的进行使用!
信息
查看CPU架构
lscpu
内存
物理内存
free -t # 以总和的形式显示内存的使用信息
free -s 10 # 周期性的查询内存使用信息,每10s 执行一次命令
字段说明:
- total:内存总数;
- used:已经使用的内存数;
- free:空闲的内存数;
- shared:当前已经废弃不用;
- buffers Buffer:缓存内存数;
- cached Page:缓存内存数。
虚拟内存
# 每三秒查看一次虚拟内存
vmstat 3
字段说明:
Procs(进程)
- r: 运行队列中进程数量,这个值也可以判断是否需要增加CPU。(长期大于1)
- b: 等待IO的进程数量。
Memory(内存)
- swpd: 使用虚拟内存大小,如果swpd的值不为0,但是SI,SO的值长期为0,这种情况不会影响系统性能。
- free: 空闲物理内存大小。
- buff: 用作缓冲的内存大小。
- cache: 用作缓存的内存大小,如果cache的值大的时候,说明cache处的文件数多,如果频繁访问到的文件都能被cache处,那么磁盘的读IO bi会非常小。
Swap
- si: 每秒从交换区写到内存的大小,由磁盘调入内存。
- so: 每秒写入交换区的内存大小,由内存调入磁盘。
注意:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。有些朋友看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,不能光看这一点,还要结合si和so,如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。
IO(现在的Linux版本块的大小为1kb)
- bi: 每秒读取的块数
- bo: 每秒写入的块数
注意:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大。
system(系统)
- in: 每秒中断数,包括时钟中断。
- cs: 每秒上下文切换数。
注意:上面2个值越大,会看到由内核消耗的CPU时间会越大。
CPU(以百分比表示)
- us: 用户进程执行时间百分比(user time)
us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速。 - sy: 内核系统进程执行时间百分比(system time)
sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因。 - wa: IO等待时间百分比
wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)。 - id: 空闲时间百分比
磁盘空间信息
- df命令 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
- du命令 也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。
查看目录文件占用空间
du -sh /你的目录
查看当前目录空间总和
du -sh .
查看分区占用情况
df -h
网络
- ip命令 用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。
查看网卡
ip addr
查看端口
- netstat命令 用来打印Linux中网络系统的状态信息,可让你得知整个Linux系统的网络情况。
netstat -tunlp |grep 你的端口
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
netstat -c #每隔一秒输出网络信息
#通过端口找进程ID
netstat -anp|grep 8081 | grep LISTEN|awk '{printf $7}'|cut -d/ -f1
#查看连接某服务端口最多的的IP地址
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
显示或管理执行中的程序
- top命令 可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具。通过top命令所提供的互动式界面,用热键可以管理。
top
用户管理
重置用户/登录锁定
pam_tally2 --user=指定用户名 --reset
文件操作
列出目录/文件内容
- tree命令 以树状图列出目录的内容。
# 列出第一级目录/文件
tree /home/ -L 1
文件MD5
md5sum test.zip
文件移动
# 移动文件
mv test.txt /home/test/
# 移动目录
mv test1/ /home/test/
复制
# 将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
# 将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh
远程传输
- scp命令 用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
从远程机器复制文件到本地目录
scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
从远程机器复制目录到本地
scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/
上传本地文件到远程机器指定目录
scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
# 指定端口 2222
scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
上传本地目录到远程机器指定目录
scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest
查找
- grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能配合多种命令使用,使用上十分灵活。
查询指定目录下包含XXX的文件
grep -r -l "XXX" /home/baierou/logs/
压缩
- zip命令 可以用来解压缩文件,或者对文件进行打包操作。zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有“.zip”扩展名的压缩文件。
压缩
# 将/home/test这个目录下所有文件和文件夹打包为当前目录下的test.zip
zip -q -r test.zip /home/test
### 解决方案:-Bash: Zip: Command Not Found
yum install -y zip
解压
# 将压缩文件test.zip在指定目录下解压缩,如果已有相同的文件存在,覆盖原先的文件
unzip -o test.zip -d /home/test
### 解决方案:-Bash: Unzip: Command Not Found
yum install -y unzip
接口测试
- curl命令 是一个利用URL规则在命令行下工作的文件传输工具。它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征。做网页处理流程和数据检索自动化,curl可以祝一臂之力。
测试GET请求
curl http://www.baidu.com # 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
curl -i http://www.baidu.com # 显示全部信息
curl -l http://www.baidu.com # 只显示头部信息
curl -v http://www.baidu.com # 显示get请求全过程解析
测试POST请求
#表单提交
curl -d 'login=emma' -d 'password=123' -X POST https://localhost/login
#JSON提交
curl -l -H "Content-type: application/json" -X POST -d '{"phone":"13521389587","password":"test"}' https://localhost/api/users.json
跳过 SSL 检测
curl -k http://www.baidu.com
# 上面命令不会检查服务器的 SSL 证书是否正确。
设置请求头
curl -H 'Accept-Language: en-US' -H 'Your-Header: test' http://www.baidu.com
添加cookie
curl http://localhost/login --cookie "username=admin;pwd=123456"
左上角红星点个赞吧,么么哒~