Linux 基础教程

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 等