1. Linux系统环境概述
第一次接触Linux时,我被那个黑底白字的终端窗口吓到了——没有熟悉的开始菜单,没有可视化的操作界面。但当我真正开始使用后才发现,这个看似简陋的环境蕴藏着惊人的力量。Linux作为服务器领域的绝对霸主,全球超过90%的超级计算机和75%的web服务器都运行在Linux系统上。
典型的Linux环境由以下几个核心组件构成:
- 内核(Kernel):系统的心脏,负责内存管理、进程调度等底层操作
- Shell:用户与内核交互的接口,常见的有Bash、Zsh等
- 文件系统:采用树状目录结构,一切皆文件的设计哲学
- 实用工具:grep、awk、sed等文本处理神器
提示:新手常犯的错误是试图在Linux中寻找Windows的操作逻辑。Linux有自己的设计哲学——"每个程序只做好一件事",理解这点能更快上手。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 终端操作基础
2.1 Shell基础认知
打开终端时,你会看到类似这样的提示符:
code复制user@hostname:~$
这表示系统已经准备好接收命令。其中:
- user:当前登录用户
- hostname:主机名
- ~:当前所在目录(~代表用户家目录)
- $:普通用户权限(#表示root超级用户)
2.2 命令结构解析
Linux命令通常遵循以下结构:
code复制命令 [选项] [参数]
例如:
bash复制ls -l /home
- ls:列出目录内容
- -l:长格式显示(选项)
- /home:要查看的目录(参数)
3. 文件系统操作
3.1 目录导航
bash复制pwd # 显示当前工作目录
cd ~ # 返回家目录
cd .. # 返回上级目录
cd - # 返回上一个所在目录
ls -alh # 显示所有文件(包括隐藏文件)的长格式列表
3.2 文件操作
bash复制touch file.txt # 创建空文件
mkdir project # 创建目录
cp file.txt backup/ # 复制文件
mv file.txt newname # 移动/重命名
rm -r old_dir # 递归删除目录
警告:Linux没有回收站,rm删除的文件通常无法恢复。建议新手使用
-i选项(如rm -i file)进行交互式删除。
4. 文本处理三剑客
4.1 grep文本搜索
bash复制grep "error" log.txt # 查找包含error的行
grep -i "warning" *.log # 忽略大小写搜索
grep -v "success" data.csv # 显示不匹配的行
4.2 sed流编辑器
bash复制sed 's/old/new/g' file.txt # 全局替换文本
sed -n '5,10p' document.md # 打印5-10行
sed '/^#/d' script.sh # 删除所有注释行
4.3 awk数据处理
bash复制awk '{print $1}' data.txt # 打印每行第一个字段
awk -F',' '$3 > 100 {print $2}' sales.csv # 处理CSV数据
awk 'BEGIN{sum=0} {sum+=$1} END{print sum}' numbers.txt # 求和计算
5. 权限管理系统
5.1 权限基础
使用ls -l可以看到类似这样的权限表示:
code复制-rwxr-xr-- 1 user group 4096 Jan 1 10:00 script.sh
其中rwxr-xr--分为三组:
- 前三位(rwx):所有者权限
- 中三位(r-x):所属组权限
- 后三位(r--):其他用户权限
5.2 权限修改
bash复制chmod u+x script.sh # 给所有者添加执行权限
chmod 755 program # rwxr-xr-x
chown user:group file # 修改所有者和所属组
6. 进程管理
6.1 进程监控
bash复制ps aux # 查看所有进程
top # 动态进程监控
htop # 增强版top(需安装)
6.2 进程控制
bash复制kill -9 1234 # 强制终止PID为1234的进程
pkill -f "python" # 终止所有python进程
nohup long_task & # 后台运行任务
7. 网络工具集
7.1 连接测试
bash复制ping example.com # 测试网络连通性
traceroute google.com # 显示网络路径
netstat -tuln # 查看端口监听状态
7.2 文件传输
bash复制scp file.txt user@remote:/path # 安全复制
rsync -avz src/ user@remote:dest/ # 增量同步
wget https://example.com/file # 下载文件
8. 实用技巧合集
8.1 历史命令优化
bash复制history | grep "ssh" # 搜索历史命令
!42 # 执行历史记录中第42条命令
ctrl+r # 反向搜索历史命令
8.2 终端多路复用
bash复制tmux new -s session1 # 新建tmux会话
tmux attach -t session1 # 连接已有会话
# 在tmux中:
# ctrl+b % 垂直分割
# ctrl+b " 水平分割
# ctrl+b d 分离会话
8.3 环境变量配置
bash复制echo $PATH # 查看PATH变量
export PATH=$PATH:/new/path # 临时添加路径
# 永久生效需修改~/.bashrc或~/.zshrc
9. 系统信息查询
bash复制uname -a # 查看内核版本
df -h # 磁盘空间检查
free -h # 内存使用情况
lscpu # CPU信息
10. 包管理工具
10.1 Debian/Ubuntu系
bash复制apt update # 更新软件列表
apt install nginx # 安装软件
apt remove package # 卸载软件
10.2 RHEL/CentOS系
bash复制yum check-update # 检查更新
yum install httpd # 安装软件
dnf remove package # 卸载软件
11. 脚本编程入门
11.1 基础脚本示例
bash复制#!/bin/bash
# 这是一个简单的备份脚本
BACKUP_DIR="/backups"
DATE=$(date +%Y%m%d)
tar -czf $BACKUP_DIR/backup_$DATE.tar.gz /important_data
11.2 脚本调试技巧
bash复制bash -x script.sh # 显示执行过程
set -e # 遇到错误立即退出
trap "echo Error!" ERR # 错误处理
12. 安全最佳实践
12.1 SSH安全配置
bash复制# 修改/etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
Port 2222
12.2 防火墙配置
bash复制ufw allow 22/tcp # Ubuntu防火墙
firewall-cmd --permanent --add-port=80/tcp # CentOS
13. 性能监控与优化
13.1 实时监控
bash复制vmstat 1 # 系统资源统计
iostat -x 2 # 磁盘I/O监控
iftop # 网络流量监控
13.2 日志分析
bash复制journalctl -xe # 查看系统日志
tail -f /var/log/nginx/access.log # 实时查看日志
grep "ERROR" /var/log/syslog | wc -l # 错误计数
14. 容器化入门
14.1 Docker基础
bash复制docker ps -a # 查看容器
docker images # 查看镜像
docker run -it ubuntu bash # 运行容器
14.2 常用操作
bash复制docker build -t myapp . # 构建镜像
docker-compose up -d # 启动服务栈
docker logs container_id # 查看日志
15. 版本控制集成
15.1 Git基础
bash复制git init # 初始化仓库
git add . # 添加文件
git commit -m "message" # 提交变更
15.2 远程操作
bash复制git remote add origin url # 添加远程仓库
git push -u origin main # 推送代码
git pull origin feature # 拉取更新
16. 系统服务管理
16.1 systemd基础
bash复制systemctl start nginx # 启动服务
systemctl enable sshd # 设置开机启动
systemctl status firewalld # 查看状态
16.2 日志查看
bash复制journalctl -u nginx --since "1 hour ago" # 服务日志
journalctl -p err -b # 本次启动的错误日志
17. 磁盘管理进阶
17.1 分区与挂载
bash复制fdisk -l # 查看磁盘分区
mkfs.ext4 /dev/sdb1 # 格式化分区
mount /dev/sdb1 /mnt # 挂载分区
17.2 LVM管理
bash复制pvcreate /dev/sdc # 创建物理卷
vgcreate vg1 /dev/sdc # 创建卷组
lvcreate -L 10G -n lv1 vg1 # 创建逻辑卷
18. 定时任务配置
18.1 crontab使用
bash复制crontab -e # 编辑定时任务
# 示例:每天3点备份
0 3 * * * /path/to/backup.sh
18.2 systemd定时器
bash复制# 创建/etc/systemd/system/backup.timer
[Unit]
Description=Daily backup
[Timer]
OnCalendar=*-*-* 03:00:00
[Install]
WantedBy=timers.target
19. 网络配置详解
19.1 静态IP配置
bash复制# /etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 8.8.4.4]
19.2 网络诊断
bash复制ip addr show # 查看IP地址
ss -tulnp # 查看端口占用
mtr google.com # 网络路径诊断
20. 用户与组管理
20.1 用户操作
bash复制useradd -m -s /bin/bash newuser # 创建用户
passwd newuser # 设置密码
usermod -aG sudo newuser # 添加sudo权限
20.2 组管理
bash复制groupadd developers # 创建组
gpasswd -a user1 developers # 添加用户到组
getent group developers # 查看组成员
21. 环境定制技巧
21.1 Shell配置
bash复制# ~/.bashrc 常用配置
alias ll='ls -alF'
export EDITOR=vim
PS1='\[\e[32m\]\u@\h:\w\$ \[\e[m\]' # 彩色提示符
21.2 命令补全
bash复制# 安装bash-completion
sudo apt install bash-completion
source /etc/profile.d/bash_completion.sh
22. 远程管理方案
22.1 SSH密钥认证
bash复制ssh-keygen -t ed25519 # 生成密钥
ssh-copy-id user@host # 部署公钥
ssh -i ~/.ssh/id_ed25519 user@host # 使用密钥登录
22.2 跳板机配置
bash复制# ~/.ssh/config
Host internal-server
HostName 10.0.0.1
ProxyJump jumpuser@jumpserver
User internaluser
23. 性能调优实战
23.1 内核参数优化
bash复制# /etc/sysctl.conf
vm.swappiness = 10
net.ipv4.tcp_fin_timeout = 30
fs.file-max = 65535
23.2 服务优化
bash复制# nginx优化示例
worker_processes auto;
worker_connections 1024;
keepalive_timeout 65;
gzip on;
24. 备份与恢复
24.1 完整系统备份
bash复制# 使用tar全量备份
tar --exclude=/backup --exclude=/proc --exclude=/sys \
--exclude=/dev --exclude=/mnt --exclude=/tmp \
-cvpzf /backup/full_backup.tar.gz /
24.2 增量备份方案
bash复制rsync -a --delete --link-dest=/previous_backup \
/source/ /current_backup/
25. 故障排查指南
25.1 启动问题排查
bash复制journalctl -xb # 查看启动日志
dmesg | grep error # 检查内核消息
fsck /dev/sda1 # 文件系统检查
25.2 性能瓶颈定位
bash复制perf top # 性能分析工具
strace -p 1234 # 跟踪进程系统调用
iotop # 磁盘I/O监控
26. 虚拟化环境
26.1 KVM基础
bash复制virt-install --name vm1 --ram 2048 --disk size=20 \
--vcpus 2 --os-type linux --os-variant ubuntu20.04
26.2 虚拟机管理
bash复制virsh list --all # 查看虚拟机
virsh start vm1 # 启动虚拟机
virsh console vm1 # 连接控制台
27. 安全审计工具
27.1 漏洞扫描
bash复制lynis audit system # 系统安全审计
openssl s_client -connect example.com:443 # SSL检查
27.2 入侵检测
bash复制aide --init # 初始化文件完整性检测
aide --check # 运行检测
28. 高级文本处理
28.1 正则表达式实战
bash复制grep -E '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$' emails.txt # 邮箱匹配
28.2 awk高级用法
bash复制awk 'BEGIN{FS=",";OFS="|"} NR>1 {print $1,$3,$5}' data.csv # CSV处理
29. 编译安装软件
29.1 标准流程
bash复制./configure --prefix=/usr/local
make -j$(nproc)
sudo make install
29.2 依赖管理
bash复制apt build-dep package_name # 安装编译依赖
ldd /usr/local/bin/program # 查看动态库依赖
30. 系统自动化
30.1 Ansible基础
bash复制ansible all -m ping # 测试连接
ansible-playbook deploy.yml # 运行playbook
30.2 常用模块
yaml复制# deploy.yml示例
- hosts: webservers
tasks:
- name: Ensure nginx is installed
apt: name=nginx state=present
