Linux常用命令详解

发布于:2025-09-13 ⋅ 阅读:(19) ⋅ 点赞:(0)

前言

作为一名开发者,掌握Linux命令是必备技能之一。无论你是刚接触Linux的新手,还是想要系统梳理命令知识的老司机,这篇文章都能为你提供实用的参考。我将结合实际工作场景,介绍那些真正高频使用的Linux命令。

文件和目录操作

基础导航命令

pwd - 显示当前工作目录

pwd
# 输出:/home/coldscholor/project

ls - 列出目录内容

ls -la          # 详细列表,包含隐藏文件
ls -lh          # 人性化显示文件大小
ls -lt          # 按修改时间排序

cd - 切换目录

cd /path/to/directory    # 绝对路径
cd ../                   # 返回上级目录
cd ~                     # 回到家目录
cd -                     # 返回上一个工作目录

文件操作命令

mkdir - 创建目录

mkdir newdir              # 创建单个目录
mkdir -p path/to/newdir   # 递归创建多级目录
mkdir {dir1,dir2,dir3}    # 批量创建目录

cp - 复制文件或目录

cp file1 file2           # 复制文件
cp -r dir1 dir2          # 递归复制目录
cp -p file1 file2        # 保持原文件属性

mv - 移动或重命名文件

mv oldname newname       # 重命名文件
mv file /path/to/dest/   # 移动文件到指定目录

rm - 删除文件或目录

rm file                  # 删除文件
rm -r directory          # 递归删除目录
rm -f file               # 强制删除,不提示
rm -rf directory         # 强制递归删除(请谨慎使用!)

文件内容查看和编辑

查看文件内容

cat - 显示文件全部内容

cat file.txt
cat -n file.txt          # 显示行号

less/more - 分页查看文件

less file.txt            # 推荐使用less,功能更强大
# 在less中:空格键向下翻页,b键向上翻页,q键退出

head/tail - 查看文件开头或结尾

head -n 10 file.txt      # 显示前10行
tail -n 20 file.txt      # 显示后20行
tail -f log.txt          # 实时监控文件变化(查看日志神器)

文本处理

grep - 文本搜索

grep "pattern" file.txt          # 在文件中搜索模式
grep -r "pattern" directory/     # 递归搜索目录
grep -i "pattern" file.txt       # 忽略大小写
grep -n "pattern" file.txt       # 显示行号
grep -v "pattern" file.txt       # 显示不匹配的行

sed - 流编辑器

sed 's/old/new/g' file.txt       # 替换文本(不修改原文件)
sed -i 's/old/new/g' file.txt    # 直接修改原文件
sed -n '1,10p' file.txt          # 显示第1-10行

awk - 文本处理工具

awk '{print $1}' file.txt        # 打印第一列
awk -F: '{print $1,$3}' /etc/passwd  # 指定分隔符,打印第1和第3列

系统监控和进程管理

进程管理

ps - 查看进程

ps aux                   # 显示所有进程详细信息
ps -ef | grep process    # 查找特定进程

top - 实时监控系统

top                      # 实时显示系统资源使用情况
htop                     # 更美观的top替代品(需要安装)

kill - 终止进程

kill PID                 # 正常终止进程
kill -9 PID              # 强制终止进程
killall process_name     # 根据进程名终止进程

系统信息

df - 查看磁盘使用情况

df -h                    # 人性化显示磁盘使用情况
df -i                    # 显示inode使用情况

du - 查看目录大小

du -sh directory         # 显示目录总大小
du -h --max-depth=1      # 显示当前目录下各子目录大小

free - 查看内存使用

free -h                  # 人性化显示内存使用情况

uname - 系统信息

uname -a                 # 显示系统完整信息

网络和权限管理

网络相关

wget/curl - 下载文件

wget https://example.com/file.zip
curl -O https://example.com/file.zip
curl -s https://api.example.com/data | jq .  # 配合jq处理JSON

ping - 网络连通性测试

ping -c 4 google.com     # ping 4次后停止

netstat - 网络连接状态

netstat -tlnp            # 查看监听端口
netstat -anp | grep :80  # 查看80端口使用情况

权限管理

chmod - 修改文件权限

chmod 755 file           # 数字方式设置权限
chmod +x script.sh       # 添加执行权限
chmod -R 644 directory/  # 递归修改目录权限

chown - 修改文件所有者

chown user:group file    # 修改文件所有者和组
chown -R user directory/ # 递归修改目录所有者

sudo - 以管理员权限执行

sudo command             # 以root权限执行命令
sudo -u user command     # 以指定用户身份执行命令

压缩和归档

tar - 归档工具

tar -czf archive.tar.gz directory/    # 创建压缩归档
tar -xzf archive.tar.gz               # 解压归档
tar -tzf archive.tar.gz               # 查看归档内容

zip/unzip - ZIP压缩

zip -r archive.zip directory/         # 创建ZIP压缩包
unzip archive.zip                     # 解压ZIP文件
unzip -l archive.zip                  # 查看ZIP内容

实用技巧和组合命令

管道和重定向

# 管道:将一个命令的输出作为另一个命令的输入
ps aux | grep nginx | grep -v grep

# 重定向:将输出保存到文件
echo "Hello World" > file.txt        # 覆盖写入
echo "New Line" >> file.txt          # 追加写入
command 2> error.log                 # 重定向错误输出
command > output.log 2>&1            # 重定向所有输出

查找文件

find - 强大的文件查找工具

find /path -name "*.txt"             # 按文件名查找
find /path -type f -size +100M       # 查找大于100MB的文件
find /path -mtime -7                 # 查找7天内修改的文件
find /path -name "*.log" -exec rm {} \;  # 查找并删除日志文件

locate - 快速查找文件

locate filename                      # 在数据库中快速查找文件
updatedb                            # 更新locate数据库(需要root权限)

命令历史和别名

history                             # 查看命令历史
!123                               # 执行历史中第123条命令
!!                                 # 重复执行上一条命令
!string                           # 执行最近以string开头的命令

# 设置别名
alias ll='ls -la'
alias grep='grep --color=auto'

实际工作中的使用场景

日志分析

# 分析nginx访问日志
tail -f /var/log/nginx/access.log | grep "404"

# 统计IP访问次数
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10

# 查看特定时间段的错误日志
grep "2024-01-15 14:" /var/log/error.log | grep "ERROR"

系统监控

# 监控磁盘使用率
df -h | awk '$5 > 80 {print $0}' 

# 查找占用CPU最高的进程
ps aux --sort=-%cpu | head -10

# 监控内存使用
free -h && echo "---" && ps aux --sort=-%mem | head -5

总结

掌握这些Linux命令,基本上能应对日常开发和运维工作的大部分需求。记住,熟能生巧,多在实际工作中使用这些命令,才能真正掌握它们。Linux的命令行世界博大精深,这篇文章只是冰山一角。希望能为你的Linux学习之路提供一个良好的起点!


网站公告

今日签到

点亮在社区的每一天
去签到