Linux 实战指南
FreeGuideOnline
最新
2026-07-15
bash pwd # 显示当前工作目录 ls # 列出目录内容 ls -la # 显示包括隐藏文件在内的详细信息 cd /path # 切换目录,cd ~ 回到用户主目录,cd - 回到上次目录
### 文件和目录管理
```bash
touch file.txt # 创建空文件或更新文件时间戳
mkdir dir # 创建目录
mkdir -p a/b/c # 递归创建多级目录
cp source dest # 复制文件
cp -r sourcedir dest # 递归复制目录
mv oldname newname # 移动/重命名文件或目录
rm file # 删除文件(不可恢复)
rm -r dir # 递归删除目录及其内容
rm -rf dir # 强制递归删除(谨慎使用)
查看文件内容
cat file # 一次性输出全部内容
less file # 分页浏览,按 / 搜索,q 退出
head -n 20 file # 查看前20行
tail -f file # 实时追踪文件新增内容(常用于日志)
文件权限与用户管理
理解 Linux 文件权限
使用 ls -l 可看到类似 -rwxr-xr-- 的权限标识:
- 第一位:文件类型(
-文件,d目录,l符号链接) - 后九位:每三位为一组,分别表示拥有者、所属组、其他用户的读(r)、写(w)、执行(x)权限
修改权限与归属
chmod 755 script.sh # 数字方式:拥有者读写执行,组及其他读执行
chmod u+x file # 符号方式:给拥有者增加执行权限
chown user:group file # 修改文件的拥有者和所属组
chown -R user:group dir # 递归修改目录下所有文件
用户与组管理
useradd -m newuser # 创建用户并自动创建家目录
passwd newuser # 为用户设置密码
usermod -aG sudo newuser # 将用户加入 sudo 组(赋予管理员权限)
groupadd devgroup # 创建组
gpasswd -a user devgroup # 将用户加入组
进程与服务管理
查看进程
ps aux # 列出所有进程详细信息
ps -ef | grep nginx # 查找特定进程
top # 动态实时监控系统进程与资源
htop # top 的增强版(需安装)
管理进程
kill PID # 优雅结束进程
kill -9 PID # 强制杀死进程
pkill processname # 按名称杀死进程
bg # 将暂停的作业放入后台
fg # 将后台作业调至前台
jobs # 查看当前会话的后台作业
使用 systemd 管理服务
现代 Linux 发行版大多使用 systemd 管理系统服务。
systemctl status nginx # 查看服务状态
systemctl start nginx # 启动服务
systemctl stop nginx # 停止服务
systemctl restart nginx # 重启服务
systemctl enable nginx # 设置开机自启
systemctl disable nginx # 取消开机自启
网络配置与诊断
基础网络命令
ip addr # 查看网络接口及 IP 地址(替代旧 ifconfig)
ip route # 查看路由表
ping -c 4 google.com # 测试连通性,发送4个包后停止
ss -tulnp # 查看监听的 TCP/UDP 端口及对应进程
curl -I https://example.com # 获取 HTTP 响应头
wget https://file.url # 下载文件
网络故障排查思路
- 检查网卡状态:
ip link show查看接口是否 UP - 检查 IP 配置:
ip addr确认 IP 是否分配正确 - 检查路由:
ip route确认默认网关可达 - DNS 解析测试:
nslookup baidu.com或dig baidu.com - 端口连通性:
telnet IP 端口或nc -vz IP 端口
防火墙简单设定(firewalld)
CentOS 7+ 常用 firewalld 管理防火墙:
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 列出当前区域所有规则
firewall-cmd --add-port=80/tcp --permanent # 永久开放 80 端口
firewall-cmd --reload # 重载规则使其生效
软件包与更新管理
不同发行版包管理器不同,这里以 Debian/Ubuntu(apt)、RHEL/CentOS(yum/dnf)为例。
Debian/Ubuntu 系的 apt
apt update # 更新软件包列表
apt upgrade # 升级所有可升级的包
apt install packagename # 安装软件包
apt remove packagename # 卸载软件包
apt purge packagename # 卸载并删除配置文件
apt search keyword # 搜索软件包
RHEL/CentOS 系的 yum/dnf
yum update # 更新所有包(CentOS 7)
dnf update # 更新所有包(RHEL 8+/CentOS 8)
yum install packagename # 安装软件
yum remove packagename # 卸载软件
yum search keyword # 搜索
源码编译安装
部分自定义软件需通过源码编译:
tar -xzf software.tar.gz
cd software
./configure --prefix=/usr/local/software
make -j$(nproc)
sudo make install
Shell 编程入门与自动化
编写简单脚本
创建一个文件 hello.sh:
#!/bin/bash
echo "Hello, $USER"
echo "Current date: $(date)"
赋予执行权限:chmod +x hello.sh
运行:./hello.sh
批量重命名实例
实战:将当前目录下 .txt 文件后缀改为 .md
#!/bin/bash
for file in *.txt; do
mv "$file" "${file%.txt}.md"
done
定时任务 crontab
crontab -e # 编辑当前用户的任务表
# 格式:分 时 日 月 周 命令
# 每天凌晨 2:30 执行备份脚本
30 2 * * * /home/user/backup.sh
crontab -l # 查看已设置的任务
常用实战技巧
查找与处理文件
find /var/log -name "*.log" -mtime +7 -exec rm {} \; # 删除7天前的日志文件
grep -r "ERROR" /var/log/app.log # 递归搜索文件中的错误信息
locate filename # 快速按名称定位文件(需要 updatedb)
磁盘与存储
df -h # 查看磁盘分区使用情况
du -sh * # 统计当前目录下各文件/目录大小
fdisk -l # 列出所有磁盘和分区
mount /dev/sdb1 /mnt/data # 挂载分区
压缩与归档
tar -czvf archive.tar.gz /path/to/dir # 打包并 gzip 压缩
tar -xzvf archive.tar.gz # 解压到当前目录
zip -r backup.zip /data # 创建 zip 包
unzip backup.zip # 解压 zip 包