1. Linux系统环境概述
第一次接触Linux是在2008年的一台老旧服务器上,当时面对黑底白字的命令行界面完全不知所措。十几年过去了,Linux早已成为我日常开发的主力系统。对于初学者来说,理解Linux系统环境和掌握基础命令就像学习一门新语言——需要从字母表开始。
Linux系统的核心是内核(Kernel),它负责管理硬件资源、进程调度和内存分配。与Windows不同,Linux采用分层架构:内核之上是Shell(命令行解释器),再往上是各种应用程序。这种设计使得Linux极其灵活——你可以选择不同的Shell(如bash、zsh)、不同的桌面环境(如GNOME、KDE),甚至完全不用图形界面。
提示:大多数服务器环境都使用纯命令行界面,因此掌握基础命令是Linux学习的必经之路
Linux的文件系统采用单一的树形结构,所有设备、分区都挂载在根目录(/)下。这种设计与Windows的盘符(C:、D:)截然不同。常见的目录包括:
- /bin:存放基本命令二进制文件
- /etc:系统配置文件
- /home:用户主目录
- /var:经常变化的文件(如日志)
2. 终端操作基础
2.1 Shell基础认知
打开终端时,你会看到类似user@hostname:~$的提示符,这就是Shell的交互界面。其中:
user是当前登录用户名hostname是计算机名~表示当前在用户主目录$表示普通用户身份(#表示root超级用户)
我强烈建议初学者先掌握bash(Bourne Again Shell),它是Linux默认的Shell,具有以下特点:
- 支持命令历史(上下箭头调取)
- 提供Tab键自动补全
- 允许命令别名(alias)设置
- 支持脚本编程
2.2 基础命令三剑客
ls命令 - 查看目录内容
bash复制ls -l # 详细列表显示(包含权限、大小等信息)
ls -a # 显示隐藏文件(以.开头的文件)
ls -lh # 人类可读的文件大小显示(KB/MB/GB)
cd命令 - 切换目录
bash复制cd /path/to/dir # 绝对路径跳转
cd .. # 返回上级目录
cd ~ # 返回用户主目录
cd - # 返回上一个工作目录
pwd命令 - 显示当前路径
bash复制pwd # 输出如/home/username
注意:Linux路径区分大小写!/home和/Home是两个不同目录
3. 文件操作命令详解
3.1 文件管理基础
cp命令 - 复制文件/目录
bash复制cp file1 file2 # 复制文件
cp -r dir1 dir2 # 递归复制目录
cp -v *.txt backup/ # 详细模式复制所有txt文件
mv命令 - 移动/重命名
bash复制mv oldname newname # 重命名文件
mv file1 dir/ # 移动文件到目录
mv dir1/ dir2/ # 移动目录(dir2存在时)
rm命令 - 删除文件
bash复制rm file # 删除文件
rm -r dir # 递归删除目录
rm -i *.tmp # 交互式删除(每次询问)
警告:
rm -rf /会删除系统所有文件!永远不要尝试
3.2 文件查看与编辑
cat命令 - 查看文件内容
bash复制cat file.txt # 显示全部内容
cat -n file.txt # 显示行号
less/more命令 - 分页查看
bash复制less large_file.log # 支持上下翻页、搜索(/)
head/tail命令 - 查看首尾
bash复制head -n 20 file.log # 显示前20行
tail -f /var/log/syslog # 实时追踪日志更新
nano编辑器 - 新手友好
bash复制nano file.txt # 简单文本编辑
# 常用快捷键:
# Ctrl+O 保存
# Ctrl+X 退出
# Ctrl+K 剪切行
4. 系统信息与进程管理
4.1 系统状态监控
uname命令 - 系统信息
bash复制uname -a # 显示所有系统信息
df命令 - 磁盘空间
bash复制df -h # 人类可读的磁盘使用情况
free命令 - 内存使用
bash复制free -m # 以MB为单位显示内存
top/htop命令 - 实时监控
bash复制top # 动态显示进程资源占用
htop # 增强版top(需安装)
4.2 进程管理技巧
ps命令 - 查看进程
bash复制ps aux # 显示所有用户进程
ps -ef | grep nginx # 查找特定进程
kill命令 - 终止进程
bash复制kill -9 PID # 强制终止进程
pkill process_name # 按名称终止
后台作业管理
bash复制command & # 后台运行
jobs # 查看后台作业
fg %1 # 将作业1调到前台
bg %2 # 继续后台运行作业2
5. 权限与用户管理
5.1 文件权限系统
Linux采用经典的权限三元组:
- 用户(u)、组(g)、其他(o)
- 读(r=4)、写(w=2)、执行(x=1)
查看权限:
bash复制ls -l file.txt
# 输出类似:-rw-r--r-- 1 user group 1024 Jan 1 10:00 file.txt
修改权限:
bash复制chmod 755 script.sh # rwxr-xr-x
chmod +x file # 添加执行权限
5.2 用户与组管理
用户操作
bash复制sudo adduser newuser # 添加用户
passwd username # 修改密码
su - username # 切换用户
组操作
bash复制sudo groupadd devteam # 创建组
sudo usermod -aG devteam user1 # 添加用户到组
groups # 查看当前用户所属组
sudo配置
bash复制sudo visudo # 编辑sudoers文件
# 添加行:username ALL=(ALL) ALL
6. 网络相关命令
6.1 网络配置检查
ifconfig/ip命令
bash复制ifconfig # 查看网络接口(旧版)
ip addr show # 新版替代命令
ping命令 - 连通性测试
bash复制ping google.com -c 4 # 发送4个测试包
netstat/ss命令 - 网络连接
bash复制netstat -tulnp # 查看监听端口(旧版)
ss -tulnp # 新版替代命令
6.2 远程连接工具
ssh命令 - 安全连接
bash复制ssh user@remote_host -p 2222 # 指定端口连接
scp命令 - 安全传输
bash复制scp file.txt user@remote:/path/ # 上传文件
scp -r dir/ user@remote:/path/ # 上传目录
wget/curl命令 - 下载工具
bash复制wget https://example.com/file.zip
curl -O https://example.com/file.zip
7. 实用技巧与问题排查
7.1 高效使用技巧
命令历史优化
bash复制history | grep ssh # 搜索历史命令
!ssh # 执行最近ssh开头的命令
Ctrl+R # 反向搜索历史
管道与重定向
bash复制command > file.txt # 输出重定向到文件
command >> file.log # 追加输出
ps aux | grep python # 管道过滤
压缩解压常用命令
bash复制tar -czvf archive.tar.gz dir/ # 创建gzip压缩包
tar -xzvf archive.tar.gz # 解压gzip包
zip -r archive.zip dir/ # 创建zip压缩
unzip archive.zip # 解压zip
7.2 常见问题排查
磁盘空间不足
bash复制du -sh * | sort -rh | head -n 10 # 找出前10大文件
内存泄漏定位
bash复制top -o %MEM # 按内存占用排序
pmap -x PID # 查看进程内存映射
网络连接问题
bash复制traceroute google.com # 跟踪路由路径
nslookup domain.com # DNS查询测试
系统日志查看
bash复制journalctl -xe # 查看系统日志(systemd)
dmesg | grep error # 查看内核日志
掌握这些基础命令后,你会发现Linux命令行比图形界面更高效。我至今记得第一次用find命令批量处理文件时的震撼——原来几秒钟就能完成Windows下需要手动操作半小时的任务。命令行就像乐高积木,单个命令很简单,但组合起来能构建出无限可能。