Linux命令是运维工程师和开发人员必备技能。本文整理Linux新手必须掌握的30个常用命令,帮助你快速上手Linux系统。
文件与目录操作
ls - 列表显示目录内容
ls # 显示当前目录文件
ls -l # 显示详细信息(包含权限、大小、时间)
ls -a # 显示所有文件(包括隐藏文件)
ls -la # 组合显示
ls /home # 显示指定目录
cd - 切换工作目录
cd /home # 进入 /home 目录
cd .. # 返回上一级目录
cd ~ # 回到主目录
cd - # 返回上次目录
pwd - 显示当前工作目录
pwd # 显示完整路径
mkdir - 创建目录
mkdir test # 创建 test 目录
mkdir -p a/b/c # 递归创建多级目录
mkdir -m 755 test # 指定权限创建
cp - 复制文件或目录
cp file1 file2 # 复制文件
cp file1 /dir/file2 # 复制到指定目录
cp -r dir1 dir2 # 递归复制目录
cp -i file1 file2 # 交互式复制(覆盖前询问)
mv - 移动或重命名文件
mv file1 file2 # 重命名
mv file1 /dir/ # 移动到目录
mv -i file1 file2 # 交互式
rm - 删除文件或目录
rm file1 # 删除文件
rm -f file1 # 强制删除(不提示)
rm -r dir1 # 递归删除目录
rm -rf dir1 # 强制递归删除(危险!)
cat - 查看文件内容
cat file1 # 显示整个文件内容
cat -n file1 # 显示行号
cat > file1 # 重定向输入到文件
文件内容查看
more - 分页显示
more /etc/passwd # 分页查看文件
# 空格键: 下页, b: 上页, q: 退出
less - 高级分页查看
less file1 # 查看文件
# 支持上下箭头、PageUp/PageDown、/搜索、q退出
head - 显示文件开头
head -n 10 file1 # 显示前10行
head -5 file1 # 显示前5行
tail - 显示文件结尾
tail -n 10 file1 # 显示最后10行
tail -f file1 # 实时跟踪(常用于日志)
文件查找
find - 根据条件查找文件
find / -name "nginx*" # 按名称查找
find /home -type f # 查找文件(非目录)
find / -name "*.conf" -mtime -7 # 查找7天内修改的conf文件
find /tmp -size +100M # 查找大于100MB的文件
grep - 文本搜索
grep "root" /etc/passwd # 在文件中搜索
grep -r "error" /var/log/ # 递归搜索目录
grep -i "ERROR" file # 忽略大小写
grep -v "error" file # 反选(显示不包含error的行)
系统监控
top - 动态显示进程信息
top # 显示实时进程
# 按 u: 按用户筛选, k: 杀死进程, q: 退出
ps - 显示进程状态
ps aux # 显示所有进程
ps aux | grep nginx # 查找特定进程
ps -ef # 显示全格式
df - 显示磁盘空间
df -h # 显示人类可读的磁盘使用情况
df -h /home # 显示指定目录磁盘使用
du - 显示目录或文件大小
du -sh /var # 显示 /var 目录总大小
du -sh * # 显示当前目录下各文件/目录大小
netstat - 网络状态
netstat -tlnp # 显示监听端口
netstat -an | grep 80 # 检查端口80是否被占用
用户与权限
chmod - 修改文件权限
chmod 755 file # rwx r-x r-x
chmod u+x file # 为所有者添加执行权限
chmod -R 755 dir # 递归修改
chown - 修改文件所有者
chown user file # 修改所有者
chown user:group file # 修改所有者和组
chown -R user /dir # 递归修改
压缩与解压
# tar 指令
tar -czvf archive.tar.gz /dir # 压缩目录
tar -xzvf archive.tar.gz # 解压
tar -czvf archive.tar.gz file1 file2 # 压缩文件
# zip / unzip
zip -r archive.zip /dir # 压缩
unzip archive.zip # 解压
unzip -l archive.zip # 查看内容
进程管理
# 查看进程
ps -aux | grep sshd # 查看sshd进程
pgrep -f nginx # 查找进程PID
kill PID # 结束进程
kill -9 PID # 强制结束进程
killall nginx # 按名称结束进程
# 服务管理 (systemd)
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl status nginx # 查看服务状态
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
网络工具
ping baidu.com # 测试网络连通性
ifconfig # 查看网络接口 (新版: ip addr)
ip addr # 查看IP地址
nslookup baidu.com # DNS解析
curl -O http://example.com/file.zip # 下载文件
wget http://example.com/file.zip # 下载文件
文本处理
# sed 文本替换
sed 's/old/new/g' file # 替换
sed -i 's/old/new/g' file # 原地修改
# awk 文本处理
awk '{print $1, $3}' file # 打印第1、第3列
awk '/pattern/ {print}' file # 匹配模式的行
# cut 字段分割
cut -d':' -f1 /etc/passwd # 按:分隔,取第1字段
cut -c1-5 file # 截取前5个字符
实用技巧
# 命令组合
cmd1 && cmd2 # 前一个执行成功才执行下一个
cmd1 || cmd2 # 前一个失败才执行下一个
cmd1; cmd2 # 顺序执行
# 管道
cat file | grep pattern | sort | uniq -c # 管道链式处理
# 历史命令
history # 查看命令历史
!! # 执行上一条命令
!816 # 执行第816条历史命令
# 快捷键
Ctrl + R # 搜索历史命令
Ctrl + C # 中断当前命令
Ctrl + Z # 挂起当前命令
Ctrl + L # 清屏
# 通配符
*.txt # 匹配所有txt文件
file{1,2,3}.txt # 匹配 file1.txt file2.txt file3.txt
? # 匹配单个字符
[a-z] # 匹配a到z之间的单个字符
总结
掌握这些Linux常用命令,你就能胜任90%的日常运维工作。建议:
- 多练习,在虚拟机中尝试每个命令
- 记住常用参数组合(如 -l, -a, -r, -i, -h)
- 学会使用 man 命令查看帮助:
man ls - 熟练使用管道和重定向,提升效率
Linux命令的掌握需要时间积累,多用多练才能熟练。
📖 延伸阅读: