一、Linux 目录结构(树形结构)
Linux 所有文件和目录均挂载于根目录 / 下,无盘符概念。
| 目录 |
说明 |
/bin |
基本用户命令(如 ls, cp) |
/boot |
引导文件(内核、GRUB 配置等) |
/dev |
设备文件(如 /dev/sda) |
/etc |
系统配置文件(核心目录) |
/home |
普通用户家目录(如 /home/itheima) |
/lib |
共享库(.so 文件) |
/mnt |
临时挂载点(U盘、光盘等) |
/opt |
第三方软件安装目录 |
/proc |
虚拟文件系统(进程 & 内核实时信息) |
/root |
root 用户家目录 |
/sbin |
系统管理命令(如 reboot, ifconfig) |
/tmp |
临时文件(可能被自动清理) |
/usr |
用户级程序(类似 Windows 的 Program Files) |
💡 对比 Windows:Linux 无 C:\ D:\,一切从 / 开始。
二、目录操作命令
| 命令 |
作用 |
示例 |
pwd |
显示当前路径 |
pwd |
ls |
列出目录内容 |
ls -l |
mkdir |
创建目录 |
mkdir dir1 |
cd |
切换目录 |
cd /etc |
rmdir |
删除空目录 |
rmdir empty_dir |
tree |
树形展示目录结构 |
dnf install -y tree → tree |
三、文件操作命令
# 创建文件
touch file.txt# 复制(-r 递归)
cp file.txt /tmp/
cp -r dir/ /backup/# 移动或重命名
mv old.txt new.txt
mv file.txt /opt/# 删除(谨慎!)
rm file.txt
rm -rf dir/ # 强制递归删除# 查找文件
find /home -name "*.log"
find . -type f -size +10M
find /var/log -mtime -7 -exec rm -f {} \;
find 常用选项
| 选项 |
说明 |
-name "*.txt" |
按名称匹配(支持通配符) |
-type f/d |
文件 / 目录 |
-size +10M |
大于 10MB(单位:c, k, M, G) |
-mtime -7 |
7 天内修改过 |
-exec cmd {} \; |
对结果执行命令 |
四、文本查看与编辑
查看文件
| 命令 |
说明 |
cat file |
全文输出(小文件) |
more file |
分页查看(仅向下) |
less file |
高级分页(支持搜索、上下滚动) |
head -n 5 file |
查看前 5 行 |
tail -n 5 file |
查看后 5 行 |
tail -f log.txt |
实时监控日志(运维必备) |
统计信息
wc -l file.txt # 行数
wc -w file.txt # 单词数
wc -c file.txt # 字节数
文本搜索
grep "error" /var/log/syslog
grep -r "TODO" ./src/ # 递归搜索
编辑器:vim
三种模式
| 模式 |
进入方式 |
功能 |
| 命令模式 |
默认 |
移动、删除、复制 |
| 插入模式 |
i/a/o |
输入文本 |
| 底行模式 |
: |
保存、退出、设置 |
常用快捷键
| 操作 |
命令 |
| 删除当前行 |
dd |
| 复制 n 行 |
nyy |
| 粘贴 |
p |
| 撤销 |
u |
| 跳到顶部/底部 |
gg / G |
| 保存退出 |
:wq 或 :x |
| 强制退出不保存 |
:q! |
五、压缩与解压
| 格式 |
压缩 |
解压 |
.tar.gz |
tar -czvf archive.tar.gz dir/ |
tar -xzvf archive.tar.gz |
.zip |
zip -r file.zip dir/ |
unzip file.zip [-d /path] |
六、用户与用户组管理
用户组
groupadd admin
groupadd -g 2000 test
groupmod -n newname oldname
groupdel test
cat /etc/group # 查看所有组
用户
useradd alice
passwd alice
usermod -aG sudo alice # 添加到 sudo 组(Ubuntu)
userdel -r alice # 删除用户及家目录
su - alice # 切换用户并加载环境
七、权限管理
基础权限(rwx)
chmod 755 script.sh # rwxr-xr-x
chown user:group file # 修改所有者和组
chgrp group file # 仅修改组
ACL(高级权限)
# 查看 ACL
getfacl file# 设置用户权限
setfacl -m u:alice:rwx file# 设置组权限
setfacl -m g:dev:rx dir/# 删除 ACL
setfacl -x u:alice file
setfacl -b file # 清除所有 ACL
✅ 支持对单个用户精细授权,突破传统“属主/组/其他”限制。
八、软件包管理
CentOS / RHEL(RPM 系)
# dnf(推荐)
dnf install nginx
dnf search python
dnf repolist
dnf config-manager --set-enabled epel# rpm(底层)
rpm -ivh package.rpm
rpm -e package --nodeps
rpm -qa | grep mysql
rpm -ql package # 查看安装了哪些文件
rpm -qf $(which nginx) # 查看某命令来自哪个包
Ubuntu / Debian(DEB 系)
apt update
apt install nginx
apt remove nginx
apt purge nginx # 彻底删除(含配置)
dpkg -i package.deb
dpkg -L package # 查看文件列表
九、系统服务管理(systemd)
# 查看服务
systemctl list-units --type=service --all# 控制服务
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl status nginx# 开机自启
systemctl enable nginx
systemctl disable nginx# 查看日志
journalctl -u nginx
journalctl -f # 实时跟踪
journalctl --since "1 hour ago"
journalctl -p err # 错误日志
十、定时任务(crontab)
crontab -e # 编辑当前用户任务
crontab -l # 列出任务
格式:
# 分 时 日 月 周 命令
0 2 * * * /bin/systemctl restart tomcat
🕒 示例:每天凌晨 2 点重启 Tomcat。
十一、防火墙配置
CentOS(firewalld)
systemctl start firewalld# 临时开放端口
firewall-cmd --add-port=80/tcp# 永久开放(需 reload)
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload# 查看规则
firewall-cmd --list-all
Ubuntu(ufw)
sudo ufw enable
sudo ufw allow 80/tcp
sudo ufw status verbose
十二、网络与进程管理
网络管理(NetworkManager)
systemctl restart NetworkManager
nmcli con show # 查看连接
进程查看
ps aux # 详细进程
ps -ef # 基础信息
ps --forest # 树状结构top # 实时监控
htop # 增强版(需安装)# 查看端口占用
ss -tunlp # 监听中的 TCP/UDP 端口
杀死进程
kill 1234 # 正常终止
kill -9 1234 # 强制终止
pkill firefox # 按名称杀
pgrep nginx # 查 PID
十三、系统状态与后台运行
磁盘 & 内存
df -h # 磁盘空间
free -h # 内存使用
后台运行
# nohup:退出终端仍运行
nohup ./script.sh > output.log 2>&1 &# screen:会话保持(推荐)
screen -S mytask
# 在 screen 中运行命令,Ctrl+A+D 脱离
screen -r mytask # 重新连接
修改主机名
hostnamectl set-hostname web-server
# 或编辑 /etc/hostname(需重启生效)