Linux 常用命令详解与系统管理实战指南
01 基础知识
1.1 Linux 系统的文件结构
Linux 文件系统采用树状结构,根目录为 /。以下是核心目录的说明:
| 目录 | 说明 |
|---|---|
/bin | 二进制文件,存放系统常规命令(如 ls, cp) |
/boot | 系统启动分区,存放内核及引导加载程序文件 |
/dev | 设备文件,代表硬件设备(如 /dev/sda) |
/etc | 大多数配置文件存放位置 |
/home | 普通用户的家目录 |
/lib | 32 位函数库 |
/lib64 | 64 位库 |
/media | 手动临时挂载点(如 U 盘、光盘) |
/mnt | 手动临时挂载点 |
/opt | 第三方软件安装位置 |
/proc | 进程信息及硬件信息的虚拟文件系统 |
/root | root 用户的家目录 |
/sbin | 系统管理命令(如 shutdown, ifconfig) |
/srv | 服务数据 |
/tmp | 临时文件,重启可能清空 |
/usr | 用户相关设定及应用程序 |
/var | 经常变化的数据(如日志、邮件) |
/sys | 内核相关信息 |
1.2 Linux 系统命令行的含义
命令行提示符通常包含以下元素:
示例:root@app00:~#
root:用户名,root 为超级用户。@:分隔符。app00:主机名称。~:当前所在目录,默认用户目录为~,随目录切换而变化。#:表示当前用户是超级用户;普通用户通常为$。
1.3 命令的组成
标准命令格式为:
命令 [参数] [参数值]
例如:ls -l /home。
02 基础操作
2.1 关机与重启
立即关机:
shutdown -h now
# 或
poweroff
两分钟后关机:
shutdown -h 2
取消关机计划:
shutdown -c
立即重启:
shutdown -r now
# 或
reboot
2.2 帮助命令
查看命令用法:
ifconfig --help
man shutdown
在 man 页面中,可按 q 键退出,按空格翻页。
2.3 切换用户
切换到其他用户(需密码):
su yao
exit
使用 sudo 执行单条命令:
sudo command
03 目录操作
3.1 切换目录 (cd)
cd / # 切换到根目录
cd /bin # 切换到 bin 目录
cd .. # 切换到上一级目录
cd ~ # 切换到 home 目录
cd - # 切换到上次访问的目录
cd xx # 切换到子目录
cd /xxx/xx/x # 使用绝对路径,支持 Tab 补全
3.2 查看目录 (ls)
ls # 列出当前目录内容
ls -a # 显示隐藏文件(以 . 开头)
ls -l # 列表模式,显示详细信息
ls -lh # 人类可读的文件大小
ll # 等同于 ls -l
3.3 创建目录 (mkdir)
mkdir tools # 创建当前目录下的 tools
mkdir -p /a/b/c # 递归创建多级目录
3.4 删除目录与文件 (rm)
rm filename # 删除文件
rm -f filename # 强制删除,不询问
rm -r directory # 递归删除目录
rm -rf directory # 强制递归删除(慎用!)
rm -rf /* # 危险操作,相当于格式化系统
3.5 移动与重命名 (mv)
mv oldname newname # 重命名
mv file /dest # 移动文件
mv -r dir /dest # 递归移动目录
3.6 复制目录 (cp)
cp src dest # 复制文件
cp -r src dest # 递归复制目录
cp -i # 覆盖前询问
3.7 搜索目录 (find)
find /bin -name 'a*' # 查找 bin 下以 a 开头的文件
find . -type f # 查找当前目录下所有普通文件
find . -ctime -20 # 查找 20 天内修改过的文件
find /var/log -mtime +7 # 查找 7 天前修改的文件
3.8 查看当前路径 (pwd)
pwd # 显示当前工作目录绝对路径
04 文件操作
4.1 新增文件 (touch)
touch a.txt # 创建空文件或更新时间戳
4.2 编辑文件 (vi/vim)
进入三种模式:命令模式、插入模式、底行模式。
基本操作:
i:插入模式Esc:返回命令模式dd:删除当前行/字段:查找::进入底行模式
保存与退出:
:wq:保存并退出:q!:强制退出不保存:w filename:另存为
高级用法:
vim +10 filename.txt # 打开文件跳到第 10 行
vim -R /etc/passwd # 只读模式打开
4.3 查看文件内容
cat a.txt # 一次性显示全部内容
less a.txt # 分页查看,支持上下翻页
more a.txt # 简单分页查看
tail -100 a.txt # 查看最后 100 行
tail -f a.txt # 实时跟踪文件更新(常用于日志)
head -n 10 a.txt # 查看前 10 行
05 文件权限
5.1 权限说明
权限分为三类:读 (r=4)、写 (w=2)、执行 (x=1)。
示例:-rwxrw-r--
- 第一位
-代表文件,d代表目录。 - 第一组三位:拥有者权限。
- 第二组三位:所属组权限。
- 第三组三位:其他用户权限。
5.2 修改权限 (chmod)
符号法:
chmod +x a.txt # 添加执行权限
chmod u+w a.txt # 用户增加写权限
数字法:
chmod 777 a.txt # 赋予所有人读写执行权限
chmod 755 script.sh # 所有者可读写执行,其他人可读执行
5.3 修改所有者 (chown)
chown user:group file # 修改文件所有者和组
chown -R user dir # 递归修改目录及其内容
06 打包与解压
6.1 常见压缩格式
.zip:Windows 常用.tar:Linux 打包(未压缩).gz:gzip 压缩.tar.gz:打包并压缩(最常见).rar:Windows 压缩
6.2 打包文件
tar -zcvf archive.tar.gz file1 file2
# z: gzip 压缩, c: 创建, v: 显示过程, f: 指定文件名
6.3 解压文件
tar -zxvf archive.tar.gz # 解压到当前目录
tar -zxvf archive.tar.gz -C /opt # 指定解压位置
unzip test.zip # 解压 zip 文件
unzip -l test.zip # 查看 zip 内容
07 其他常用命令
7.1 whereis & which
whereis ls # 查找 ls 相关文件
which bash # 查找 bash 的绝对路径
7.2 sudo
sudo -l # 列出当前用户 sudo 权限
sudo -u yao vi index.html # 以 yao 身份编辑文件
7.3 grep (文本搜索)
grep -i "the" demo_file # 忽略大小写搜索
grep -A 3 "example" text # 输出匹配行及之后 3 行
grep -r "ramesh" * # 递归搜索文件夹
7.4 service & systemctl
System V init 脚本管理:
service ssh status # 查看 SSH 状态
service ssh restart # 重启服务
chkconfig iptables on # 设置开机自启
CentOS 7+ 使用 systemd:
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
7.5 内存与磁盘
free -g # 以 GB 显示内存使用情况
free -t # 显示总计
df -h # 查看磁盘空间(人类可读)
du -sh /var/log # 查看目录占用大小
7.6 top & ps
top # 动态显示进程资源占用
ps -ef # 查看所有进程
ps aux # BSD 风格显示
pstree # 树状显示进程关系
pgrep nginx # 根据名称查找 PID
7.7 mount & umount
mount /dev/sdb1 /u01 # 挂载设备
umount /u01 # 卸载设备
7.8 uname
uname -a # 显示系统内核信息
7.9 yum & rpm
YUM 包管理:
yum install httpd # 安装 Apache
yum update httpd # 更新
yum remove httpd # 卸载
RPM 包管理:
rpm -ivh package.rpm # 安装
rpm -e package # 卸载
7.10 date & time
date # 显示当前时间
date -s "01/31/2010 23:59:53" # 设置系统时间
ntpdate ntp.server.com # 同步网络时间
7.11 wget & curl
下载工具:
wget -O file.tar.gz url # 下载并重命名
curl -O url # 下载原文件名
7.12 ftp & scp
FTP 连接:
ftp IP/hostname
SCP 安全拷贝:
scp localfile user@host:/path
scp -r dir user@host:/path
08 系统管理进阶
8.1 防火墙配置
CentOS 7 使用 firewalld:
firewall-cmd --state
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
8.2 修改主机名
hostnamectl set-hostname newname
8.3 网络配置
编辑网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEVICE=ens00
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
重启网络:
service network restart
# 或
nmcli connection up eth0
8.4 hosts 映射
编辑 /etc/hosts:
192.168.1.101 node1
192.168.1.102 node2
8.5 进程管理
kill pid # 正常终止进程
kill -9 pid # 强制杀死进程
killall process_name # 按名称杀死进程
nice -n 10 command # 降低进程优先级
8.6 远程连接 (SSH)
ssh user@ip # 登录远程主机
ssh-keygen -t rsa # 生成密钥对
ssh-copy-id user@ip # 配置免密登录
8.7 清屏与历史
clear # 清屏
Ctrl+l # 快捷键清屏
history # 查看命令历史
!! # 执行上一条命令
09 用户与组管理
9.1 用户操作
useradd -m username # 创建用户并建家目录
passwd username # 修改密码
userdel -r username # 删除用户及家目录
9.2 组操作
groupadd groupname # 创建组
gpasswd -a user groupname # 将用户加入组
groupdel groupname # 删除组
10 定时任务 (Cron)
编辑 crontab:
crontab -e
格式:分 时 日 月 周 命令
示例:每天凌晨 3 点备份:
0 3 * * * tar -czf backup.tar.gz /data
11 日志分析
journalctl -xe # 查看系统日志
tail -f /var/log/messages # 实时监控消息日志
grep ERROR /var/log/syslog # 搜索错误日志
12 文本处理 (sed/awk)
12.1 sed
替换文本:
sed 's/old/new/g' file # 全局替换
sed -i 's/old/new/g' file # 原地修改
12.2 awk
提取列:
awk '{print $1}' file # 打印第一列
awk -F: '{print $1}' /etc/passwd # 冒号分隔取第一列
13 故障排查技巧
- 检查网络连接:使用
ping,traceroute,netstat -an。 - 检查端口监听:使用
netstat -tulpn或ss -tulpn。 - 检查磁盘空间:使用
df -h和du -sh *。 - 检查内存泄漏:使用
top观察内存趋势。 - 检查系统负载:使用
uptime或w。
掌握以上命令,能够应对绝大多数 Linux 日常运维场景。建议在实际环境中多练习,熟悉不同发行版(如 CentOS, Ubuntu)的命令差异。

