Linux常用命令大全:新手必会的30个Essential命令详解

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%的日常运维工作。建议:

  1. 多练习,在虚拟机中尝试每个命令
  2. 记住常用参数组合(如 -l, -a, -r, -i, -h)
  3. 学会使用 man 命令查看帮助:man ls
  4. 熟练使用管道和重定向,提升效率

Linux命令的掌握需要时间积累,多用多练才能熟练。

发表评论