前言

Linux系统是开发和运维工作中不可或缺的操作系统,掌握常用的Linux命令可以大大提高工作效率。本文整理了日常工作中经常使用的Linux命令,按功能分类并提供详细解释和实用示例,方便查阅和使用。

系统信息查看

查看系统版本

1
2
3
4
5
# 查看Linux发行版信息
cat /etc/redhat-release # CentOS/RHEL系统
lsb_release -a # 大多数Linux发行版
cat /etc/issue # 查看系统信息
uname -a # 查看内核信息

查看资源使用情况

1
2
3
4
5
6
# 查看磁盘空间
df -h # 以人类可读方式显示磁盘使用情况
du -sh /path/to/directory # 查看指定目录大小
free -m # 查看内存使用情况(MB)
top # 实时查看系统资源使用情况
htop # 更友好的top替代品(需安装)

文件操作

基本文件操作

1
2
3
4
5
ls -la                     # 列出所有文件(包括隐藏文件)及详细信息
cp -r source destination # 递归复制目录
mv source destination # 移动文件或重命名
rm -rf directory # 递归强制删除目录(谨慎使用!)
touch filename # 创建空文件或更新文件时间戳

文件查找和内容搜索

1
2
3
find /path -name "*.txt"   # 查找指定路径下的txt文件
grep "pattern" filename # 在文件中查找匹配内容
grep -r "pattern" /path # 递归查找目录中的匹配内容

网络相关

端口和连接管理

1
2
3
4
5
6
7
8
9
10
11
# 查看网络连接和端口
netstat -tlpn # 查看所有TCP监听端口
netstat -aon|findstr "8080" # 在Windows中查找使用8080端口的进程
ss -tnl # 显示TCP监听端口(ss是netstat的替代)

# 精确查找特定端口
PORT=88
netstat -lntup | awk -v port="$PORT" 'NR>2 && $4 ~ ":"port"$" {gsub(/.*:/,"",$4); print $4}'

# 查看特定端口的进程
lsof -i:8080 # 查看使用8080端口的进程

防火墙管理

CentOS/RHEL (firewalld)

1
2
3
4
5
6
7
8
9
# 查看防火墙状态和端口
firewall-cmd --state # 查看防火墙状态
firewall-cmd --zone=public --list-ports # 查看开放的端口
firewall-cmd --query-port=80/tcp # 查询特定端口是否开放

# 管理防火墙规则
firewall-cmd --zone=public --add-port=9913/tcp --permanent # 永久开放端口
firewall-cmd --zone=public --remove-port=9913/tcp --permanent # 永久关闭端口
firewall-cmd --reload # 重新加载防火墙配置

Ubuntu (ufw)

1
2
3
4
sudo ufw status                # 查看防火墙状态
sudo ufw enable # 开启防火墙
sudo ufw allow 22 # 开放22端口
sudo ufw delete allow 21 # 关闭21端口

进程管理

1
2
3
4
5
ps aux                         # 查看所有进程
ps aux | grep process_name # 查找特定进程
kill -9 PID # 强制终止进程
killall process_name # 终止所有指定名称的进程
tasklist|findstr "2668" # Windows中查找PID为2668的进程

Redis操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Redis集群操作
/usr/local/redis/bin/redis-cli -a 123456 --cluster create \
10.101.37.179:6381 10.101.37.179:6380 10.101.37.200:6381 \
10.101.37.200:6380 10.101.37.111:6381 10.101.37.111:6380 \
--cluster-replicas 1 # 创建Redis集群

/usr/local/redis/bin/redis-cli -a 123456 --cluster check 10.101.37.179:6381 # 检查集群状态

# Redis服务管理
/usr/local/redis/bin/redis-server /data/redis/6379/redis.conf # 启动Redis服务
/usr/local/redis/bin/redis-cli -a 123456 -p 6380 shutdown # 关闭Redis服务
/usr/local/redis/bin/redis-cli -a 123456 # 连接Redis客户端

# Redis文件清理
rm -rf appendonly.aof # 删除AOF文件
rm -rf dump.rdb # 删除RDB文件
rm -rf nodes.conf # 删除节点配置文件

MySQL操作

1
2
3
4
5
6
7
8
9
# MySQL管理命令
mysqladmin -u root password 123456 # 设置root用户密码

# 修改MySQL密码(MySQL 8.0+)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

# 数据库备份
mysqldump -u username -p database_name > backup.sql # 备份数据库
mysqldump -u username -p --all-databases > all_db_backup.sql # 备份所有数据库

系统环境设置

字符编码设置

1
2
3
4
5
6
7
8
# 查看当前编码
echo $LANG

# 设置编码为zh_CN.UTF-8
export LANG=zh_CN.UTF-8

# 再次查看当前编码
echo $LANG

NPM相关

1
2
# 解决依赖冲突问题
npm install --legacy-peer-deps

命令行参数处理

1
2
3
4
5
# getopt命令用于解析命令行参数
# -o或--options选项后面接可接受的短选项,如ab:c::
# -l或--long选项后面接可接受的长选项,用逗号分开
# -n选项后接选项解析错误时提示的脚本名字
ARGS=`getopt -o s: --long p: -n "$BASH_NAME" -- "$@"`

安装问题解决

1
2
3
4
# 如果安装发生SSL/TLS错误(443)
yum install ca-certificates -y # 安装证书
# 或
yum install ssl-cert -y

实用技巧

网络调试

1
2
# 创建临时监听端口(用于测试)
nc -l 8080

命令组合

1
2
# 组合命令查找特定信息
netstat -lntup | awk 'NR>2{gsub(/.*:/," ",$4);print $4}' | grep " 31059$" # 精确找出端口31059

总结

本文整理了Linux系统中常用的命令,涵盖了系统信息查看、文件操作、网络管理、进程管理、数据库操作等多个方面。这些命令在日常的开发和运维工作中非常实用,掌握这些命令可以帮助我们更高效地完成工作任务。

对于更复杂的操作,建议查阅相关命令的手册页(使用man command命令)或官方文档,以获取更详细的信息和选项说明。