Linux 基础教程
简介
Linux 是一个开源的 Unix-like 操作系统内核,广泛应用于服务器、云计算、嵌入式系统等领域。掌握 Linux 是每个开发者的必备技能。
常见 Linux 发行版
- Ubuntu - 易于使用,社区活跃
- CentOS/RHEL - 企业级,稳定
- Debian - 高度稳定,软件丰富
- Arch Linux - 滚动更新,高度定制
基础命令
目录操作
pwd # 显示当前目录
cd /home # 切换到 /home 目录
cd .. # 返回上一级目录
cd ~ # 返回用户主目录
cd - # 返回上一次所在目录
查看目录内容
ls # 列出当前目录文件
ls -l # 详细列表形式
ls -a # 显示隐藏文件
ls -la # 详细列表 + 隐藏文件
ls -lh # 文件大小人性化显示
帮助命令
man ls # 查看 ls 命令手册
ls --help # 查看简要帮助
info cat # 查看 info 文档
文件操作
创建文件
touch file.txt # 创建空文件
touch file1.txt file2.txt # 创建多个文件
创建目录
mkdir mydir # 创建目录
mkdir -p dir1/dir2/dir3 # 递归创建目录
mkdir -p project/{src,dist,test}
复制文件/目录
cp file.txt backup.txt # 复制文件
cp -r mydir/ backup/ # 递归复制目录
cp -i file.txt dest/ # 覆盖前提示
移动/重命名
mv file.txt newfile.txt # 重命名
mv file.txt /home/ # 移动到目录
删除
rm file.txt # 删除文件
rm -r mydir # 删除目录
rm -rf mydir # 强制删除目录(危险!)
查看文件内容
cat file.txt # 显示全部内容
head -n 20 file.txt # 显示前20行
tail -n 50 file.txt # 显示后50行
tail -f /var/log/syslog # 实时查看日志
less file.txt # 分页查看(可搜索)
more file.txt # 分页查看(仅向下)
搜索文件
find /home -name "*.txt" # 按名称搜索
find /home -type d -name "test" # 搜索目录
find /home -mtime -7 # 搜索7天内修改的文件
grep -r "pattern" /home # 递归搜索内容
链接
ln -s target.txt link.txt # 创建软链接
ln target.txt hardlink # 创建硬链接
权限管理
权限表示
drwxr-xr-x
| d | rwx | r-x | r-x |
|__| 所有者|_组_|__其他__|
权限类型:r=读取、w=写入、x=执行
查看权限
ls -l file.txt
-rw-r--r-- 1 user group 4096 Mar 23 10:00 file.txt
修改权限
chmod 755 script.sh # 数字方式
chmod u+x script.sh # 给所有者添加执行权限
chmod g-w file.txt # 移除组的写入权限
chmod a+r file.txt # 给所有用户添加读取权限
chmod -R 644 mydir/ # 递归修改目录权限
修改所有者
sudo chown user:group file.txt
sudo chown -R user:group mydir/
常用权限数值
777- rwxrwxrwx(完全开放)755- rwxr-xr-x(所有者可写)644- rw-r--r--(仅所有者可写)600- rw-------(仅所有者可读写)
进程管理
查看进程
ps # 查看当前终端进程
ps aux # 查看所有进程(详细)
ps -ef # 查看所有进程(标准格式)
top # 动态查看进程(按 CPU 排序)
htop # 交互式进程查看(需安装)
查找进程
pgrep -a nginx # 查找 nginx 进程
ps aux | grep nginx # 管道查找
终止进程
kill 1234 # 正常终止进程(PID)
kill -9 1234 # 强制终止进程
kill -SIGTERM 1234 # 发送终止信号
pkill nginx # 按名称终止进程
killall nginx # 终止所有 nginx 进程
后台进程
./script.sh & # 后台运行
nohup ./script.sh & # 后台运行(忽略挂起信号)
jobs # 查看后台作业
fg %1 # 将后台作业1转到前台
bg %1 # 将停止的作业1放到后台
系统资源
free -h # 查看内存使用
df -h # 查看磁盘使用
du -sh * # 查看当前目录各文件大小
网络命令
查看网络配置
ifconfig # 查看网络接口(需安装 net-tools)
ip addr # 查看 IP 地址
ip link show # 查看网络接口
netstat -tulpn # 查看监听端口
测试连接
ping google.com # 测试网络连通性
curl https://google.com # 测试 HTTP 请求
wget https://example.com/file.zip # 下载文件
远程连接
ssh user@192.168.1.100 # SSH 连接
ssh -p 2222 user@host # 指定端口
scp file.txt user@host:/path/ # 安全复制文件
scp -r mydir/ user@host:/path/ # 复制目录
防火墙 (Ubuntu)
sudo ufw status # 查看防火墙状态
sudo ufw allow 80/tcp # 允许端口
sudo ufw allow ssh # 允许 SSH
sudo ufw enable # 启用防火墙
sudo ufw disable # 禁用防火墙
学习建议
- 多使用命令行,熟能生巧
- 多查阅 man 手册
- 学会使用 Tab 键自动补全
- 使用 ↑/↓ 键浏览命令历史
- 注意危险命令:rm -rf、mkfs 等