Linux 常用命令详解与系统管理实战指南
01 基础知识
1.1 Linux 系统的文件结构
Linux 文件系统采用树状结构,根目录为 /。以下是核心目录的说明:
本文详细整理了 Linux 操作系统中的常用命令与系统管理方法。内容涵盖文件系统结构、基础操作、目录与文件管理、权限控制、打包解压、网络配置、用户管理、进程监控及日志分析等核心模块。通过提供具体的命令示例、参数解释及实际应用场景,帮助读者快速掌握 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 | 内核相关信息 |
命令行提示符通常包含以下元素:
示例:root@app00:~#
root:用户名,root 为超级用户。@:分隔符。app00:主机名称。~:当前所在目录,默认用户目录为 ~,随目录切换而变化。#:表示当前用户是超级用户;普通用户通常为 $。标准命令格式为:
命令 [参数] [参数值]
例如:ls -l /home。
立即关机:
shutdown -h now
# 或
poweroff
两分钟后关机:
shutdown -h 2
取消关机计划:
shutdown -c
立即重启:
shutdown -r now
# 或
reboot
查看命令用法:
ifconfig --help
man shutdown
在 man 页面中,可按 q 键退出,按空格翻页。
切换到其他用户(需密码):
su yao
exit
使用 sudo 执行单条命令:
sudo command
cd / # 切换到根目录
cd /bin # 切换到 bin 目录
cd .. # 切换到上一级目录
cd ~ # 切换到 home 目录
cd - # 切换到上次访问的目录
cd xx # 切换到子目录
cd /xxx/xx/x # 使用绝对路径,支持 Tab 补全
ls # 列出当前目录内容
ls -a # 显示隐藏文件(以 . 开头)
ls -l # 列表模式,显示详细信息
ls -lh # 人类可读的文件大小
ll # 等同于 ls -l
mkdir tools # 创建当前目录下的 tools
mkdir -p /a/b/c # 递归创建多级目录
rm filename # 删除文件
rm -f filename # 强制删除,不询问
rm -r directory # 递归删除目录
rm -rf directory # 强制递归删除(慎用!)
rm -rf /* # 危险操作,相当于格式化系统
mv oldname newname # 重命名
mv file /dest # 移动文件
mv -r dir /dest # 递归移动目录
cp src dest # 复制文件
cp -r src dest # 递归复制目录
cp -i # 覆盖前询问
find /bin -name 'a*' # 查找 bin 下以 a 开头的文件
find . -type f # 查找当前目录下所有普通文件
find . -ctime -20 # 查找 20 天内修改过的文件
find /var/log -mtime +7 # 查找 7 天前修改的文件
pwd # 显示当前工作目录绝对路径
touch a.txt # 创建空文件或更新时间戳
进入三种模式:命令模式、插入模式、底行模式。
基本操作:
i:插入模式Esc:返回命令模式dd:删除当前行/字段:查找::进入底行模式保存与退出:
:wq:保存并退出:q!:强制退出不保存:w filename:另存为高级用法:
vim +10 filename.txt # 打开文件跳到第 10 行
vim -R /etc/passwd # 只读模式打开
cat a.txt # 一次性显示全部内容
less a.txt # 分页查看,支持上下翻页
more a.txt # 简单分页查看
tail -100 a.txt # 查看最后 100 行
tail -f a.txt # 实时跟踪文件更新(常用于日志)
head -n 10 a.txt # 查看前 10 行
权限分为三类:读 (r=4)、写 (w=2)、执行 (x=1)。
示例:-rwxrw-r--
- 代表文件,d 代表目录。符号法:
chmod +x a.txt # 添加执行权限
chmod u+w a.txt # 用户增加写权限
数字法:
chmod 777 a.txt # 赋予所有人读写执行权限
chmod 755 script.sh # 所有者可读写执行,其他人可读执行
chown user:group file # 修改文件所有者和组
chown -R user dir # 递归修改目录及其内容
.zip:Windows 常用.tar:Linux 打包(未压缩).gz:gzip 压缩.tar.gz:打包并压缩(最常见).rar:Windows 压缩tar -zcvf archive.tar.gz file1 file2
# z: gzip 压缩, c: 创建, v: 显示过程, f: 指定文件名
tar -zxvf archive.tar.gz # 解压到当前目录
tar -zxvf archive.tar.gz -C /opt # 指定解压位置
unzip test.zip # 解压 zip 文件
unzip -l test.zip # 查看 zip 内容
whereis ls # 查找 ls 相关文件
which bash # 查找 bash 的绝对路径
sudo -l # 列出当前用户 sudo 权限
sudo -u yao vi index.html # 以 yao 身份编辑文件
grep -i "the" demo_file # 忽略大小写搜索
grep -A 3 "example" text # 输出匹配行及之后 3 行
grep -r "ramesh" * # 递归搜索文件夹
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
free -g # 以 GB 显示内存使用情况
free -t # 显示总计
df -h # 查看磁盘空间(人类可读)
du -sh /var/log # 查看目录占用大小
top # 动态显示进程资源占用
ps -ef # 查看所有进程
ps aux # BSD 风格显示
pstree # 树状显示进程关系
pgrep nginx # 根据名称查找 PID
mount /dev/sdb1 /u01 # 挂载设备
umount /u01 # 卸载设备
uname -a # 显示系统内核信息
YUM 包管理:
yum install httpd # 安装 Apache
yum update httpd # 更新
yum remove httpd # 卸载
RPM 包管理:
rpm -ivh package.rpm # 安装
rpm -e package # 卸载
date # 显示当前时间
date -s "01/31/2010 23:59:53" # 设置系统时间
ntpdate ntp.server.com # 同步网络时间
下载工具:
wget -O file.tar.gz url # 下载并重命名
curl -O url # 下载原文件名
FTP 连接:
ftp IP/hostname
SCP 安全拷贝:
scp localfile user@host:/path
scp -r dir user@host:/path
CentOS 7 使用 firewalld:
firewall-cmd --state
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
hostnamectl set-hostname newname
编辑网卡配置文件:/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
编辑 /etc/hosts:
192.168.1.101 node1
192.168.1.102 node2
kill pid # 正常终止进程
kill -9 pid # 强制杀死进程
killall process_name # 按名称杀死进程
nice -n 10 command # 降低进程优先级
ssh user@ip # 登录远程主机
ssh-keygen -t rsa # 生成密钥对
ssh-copy-id user@ip # 配置免密登录
clear # 清屏
Ctrl+l # 快捷键清屏
history # 查看命令历史
!! # 执行上一条命令
useradd -m username # 创建用户并建家目录
passwd username # 修改密码
userdel -r username # 删除用户及家目录
groupadd groupname # 创建组
gpasswd -a user groupname # 将用户加入组
groupdel groupname # 删除组
编辑 crontab:
crontab -e
格式:分 时 日 月 周 命令
示例:每天凌晨 3 点备份:
0 3 * * * tar -czf backup.tar.gz /data
journalctl -xe # 查看系统日志
tail -f /var/log/messages # 实时监控消息日志
grep ERROR /var/log/syslog # 搜索错误日志
替换文本:
sed 's/old/new/g' file # 全局替换
sed -i 's/old/new/g' file # 原地修改
提取列:
awk '{print $1}' file # 打印第一列
awk -F: '{print $1}' /etc/passwd # 冒号分隔取第一列
ping, traceroute, netstat -an。netstat -tulpn 或 ss -tulpn。df -h 和 du -sh *。top 观察内存趋势。uptime 或 w。掌握以上命令,能够应对绝大多数 Linux 日常运维场景。建议在实际环境中多练习,熟悉不同发行版(如 CentOS, Ubuntu)的命令差异。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online