Linux 常用命令

Linux 常用命令

面向运维、排障、服务器调试、网络排查场景,【系统基础】【网络排查】【进程/端口】【文件处理】【权限磁盘】【性能分析】【服务管理】。

一、系统基础命令

1. cd

切换目录

bash 复制代码
cd /etc/network     # 进入指定目录
cd ~                # 回到家目录
cd ..               # 上一级目录
cd -                # 返回上一次所在目录

2. ls

列出目录文件

bash 复制代码
ls -l               # 长格式,权限、大小、时间
ls -lh              # 人类可读大小
ls -a               # 显示隐藏文件
ls -lt              # 按修改时间排序

3. pwd

打印当前工作目录

bash 复制代码
pwd

4. cat / less / more

查看文件

bash 复制代码
cat /etc/hosts               # 小文件一次性输出
less /var/log/messages       # 分页浏览(q退出,空格翻页)
tail -f /var/log/syslog      # 实时跟踪日志
tail -n 100 xxx.log          # 查看最后100行
head -n 20 xxx.log           # 前20行

5. cp、mv、rm

bash 复制代码
cp -r dir1 dir2              # 递归复制文件夹
mv oldname newname           # 移动/重命名
rm -rf /tmp/test             # 强制递归删除(高危!谨慎)

6. mkdir

bash 复制代码
mkdir -p /data/logs/nginx    # 递归创建多级目录

7. find 文件搜索(运维高频)

bash 复制代码
find /etc -name "*.conf"                 # 在/etc下查找所有conf文件
find /var/log -size +100M                # 查找大于100M文件
find . -type f -mtime -1                 # 24小时内修改过的文件

8. grep 文本过滤

bash 复制代码
grep "error" xxx.log                     # 匹配关键字
grep -i "warn" xxx.log                   # 忽略大小写
grep -v "debug" xxx.log                  # 反向匹配,排除debug
grep -A5 -B5 "Exception" xxx.log         # 匹配行前后各5行

二、权限与用户

chmod 修改权限

bash 复制代码
chmod 644 file.conf
chmod +x start.sh                        # 添加执行权限

chown 修改属主属组

bash 复制代码
chown root:root /etc/hosts
chown -R nginx:nginx /var/www            # 递归修改目录所有者

useradd / passwd / su

bash 复制代码
useradd testuser
passwd testuser
su - root                                 # 完整切换用户环境变量

三、磁盘、IO、空间排查

df 磁盘分区使用率

bash 复制代码
df -h

du 查看目录占用

bash 复制代码
du -sh /*                                 # 统计根目录下各文件夹大小
du -sh /var/log

mount / umount 挂载

bash 复制代码
mount /dev/sdb1 /data
umount /data

四、网络命令

1. ip(推荐,替代老旧ifconfig)

bash 复制代码
ip a                                   # 查看所有网卡IP
ip addr show eth0                      # 指定网卡信息
ip link set eth0 up                    # 启用网卡
ip link set eth0 down                  # 关闭网卡
ip route                               # 查看路由表
ip route add 192.168.2.0/24 via 192.168.1.1  # 添加静态路由
ip route del default                   # 删除默认路由

2. ping 连通性测试

bash 复制代码
ping www.baidu.com
ping -c 4 192.168.1.1                 # 发送4个包停止
ping -i 0.5 192.168.1.1                # 间隔0.5秒发包(root)

3. traceroute / mtr 路由追踪(排链路丢包神器)

bash 复制代码
traceroute 8.8.8.8
mtr --report 8.8.8.8                   # 持续路由质量检测,看各跳丢包
mtr 192.168.1.1

4. ss(强烈推荐,替代netstat,速度更快)

端口、连接排查首选

bash 复制代码
ss -tuln                  # 监听TCP/UDP端口(常用!)
ss -tan                   # 所有TCP连接,数字形式不解析域名
ss -tan state ESTABLISHED # 只看已建立连接
ss -lp                    # 查看端口对应进程
ss -s                     # 汇总连接统计

5. netstat(兼容老系统,新系统优先ss)

bash 复制代码
netstat -tulnp
netstat -an | grep :80

6. curl / wget 应用层连通测试

bash 复制代码
curl -I http://127.0.0.1:8080          # 只获取HTTP响应头
curl -v https://api.xxx.com            # 详细握手过程,排查SSL、超时
curl --connect-timeout 3 192.168.1.1:22
wget http://xxx/file.iso

7. telnet / nc(ncat) 端口连通性

bash 复制代码
telnet 192.168.1.100 3306
nc -zv 192.168.1.100 1-1000            # 批量扫描端口
nc -l 8888                             # 监听端口做测试

8. tcpdump 抓包

bash 复制代码
# 抓取eth0网卡所有流量
tcpdump -i eth0
# 只抓取目标端口80
tcpdump -i eth0 port 80
# 抓取指定源IP
tcpdump -i eth0 src 10.0.0.5
# 保存抓包文件,可用wireshark打开分析
tcpdump -i eth0 -w traffic.pcap
# 读取pcap文件
tcpdump -r traffic.pcap
# 过滤ICMP(ping包)
tcpdump icmp

9. hostname / DNS相关

bash 复制代码
hostname                                 # 查看主机名
cat /etc/resolv.conf                     # DNS配置
nslookup www.baidu.com
dig www.baidu.com                        # DNS解析详细信息
dig @114.114.114.114 www.baidu.com       # 指定DNS服务器查询
host www.baidu.com

五、进程、服务、性能排查

ps 进程查看

bash 复制代码
ps aux                                   # 完整进程列表
ps -ef | grep nginx

top / htop 实时资源监控

bash 复制代码
top                                      # 系统负载、CPU、内存
# 快捷键:P按CPU排序,M按内存排序
htop                                     # 更友好的增强版(需安装)

free 内存

bash 复制代码
free -h

kill 进程终止

bash 复制代码
kill 1234               # 优雅终止
kill -9 1234            # 强制杀死(尽量少用)
pkill nginx             # 根据进程名批量杀

systemd 服务管理(CentOS7+/Ubuntu16.04+)

bash 复制代码
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl enable nginx          # 开机自启
systemctl disable nginx
systemctl status nginx          # 查看服务状态
journalctl -u nginx -f          # 实时查看服务日志
journalctl -u nginx --since "1 hour ago"

六、文本处理高级命令(日志分析必备)

awk 文本处理

bash 复制代码
# 查看ss输出,提取第5列IP端口
ss -tan | awk '{print $5}'
# 统计访问日志IP访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -nr

sed 流编辑器(替换文本)

bash 复制代码
sed -i 's/oldstr/newstr/g' file.conf   # 文件内直接替换
sed '/^#/d' file.conf                  # 删除注释行

sort & uniq 统计

bash 复制代码
sort ip.txt | uniq -c

七、压缩解压

bash 复制代码
tar -zcvf archive.tar.gz dir/      # 压缩
tar -zxvf archive.tar.gz           # 解压gz
unzip file.zip

八、远程运维

bash 复制代码
ssh root@192.168.1.100
ssh -p 2222 root@ip                # 指定端口
scp local.file root@ip:/data/      # 上传文件
scp root@ip:/data/file ./          # 下载文件

九、高频排障命令组合

  1. 查看监听端口
bash 复制代码
ss -tulnp
  1. 排查连接数、ESTABLISHED连接
bash 复制代码
ss -tan state ESTABLISHED | wc -l
  1. 持续链路质量监控
bash 复制代码
mtr 目标IP
  1. 抓包排查业务流量
bash 复制代码
tcpdump -i eth0 port 443 -w ssl_traffic.pcap
  1. 日志检索报错上下文
bash 复制代码
grep -A10 -B10 "Timeout" /var/log/app.log
相关推荐
ShirleyWang0122 小时前
让headlamp控制台能访问
linux·服务器·python·k8s·k3s
liuccn3 小时前
Linux 存储系统:LVM 与直接分区
linux·运维
xexpertS4 小时前
CI/CD 熔断机制:如何通过编排级熔断器提升开发者效率
java·linux·运维
带娃的IT创业者5 小时前
突破内存瓶颈:利用 Nvidia GPU 显存作为 Linux Swap 空间的深度实践
linux·运维·服务器·nvidia·swap·gpu显存
zy happy5 小时前
VMware虚拟机添加新的硬盘
java·linux·jvm·docker
LCG元5 小时前
嵌入式开发踩坑排查实战:从 STM32 外设初始化到 Linux SPI 驱动的 15 类硬件疑难故障深度复盘
linux·stm32·单片机
代码AC不AC5 小时前
【Linux】Socket编程TCP
linux·tcp·socket编程
扛枪的书生5 小时前
SeaweedFS 学习总结
linux
minglie16 小时前
香橙派zero3配个iic屏显示ip
linux·学习