Linux入门笔记

Linux 2026-04-20 17
预计阅读时间:8 分钟

Linux 入门学习笔记

一、Linux 是什么?为什么要学?

Linux 是一个开源、免费的类 Unix 操作系统内核。我们常说的“Linux”,其实指的是基于这个内核的完整操作系统(发行版)。

为什么值得学? - 服务器领域绝对霸主(90%+ 云服务器跑 Linux) - 开发必备(Android、嵌入式、Docker、K8s 都基于 Linux) - 安全、稳定、高效 - 学会后理解计算机运作本质


二、选择一个发行版

建议新手从 Ubuntu 或 CentOS Stream 开始。

发行版 特点 适用场景
Ubuntu 社区活跃,文档多,apt 包管理 桌面、开发、AI
CentOS / Rocky 稳定,yum/dnf 包管理 服务器生产环境
Debian 极其稳定 服务器
Arch 滚动更新,高度定制 进阶玩家

我的建议:先装 Ubuntu 虚拟机或 WSL2(Windows Subsystem for Linux)。


三、核心哲学:一切皆文件

Linux 中,硬件、进程、网络连接等都被抽象成文件,用统一的接口操作。

# 查看普通文件
cat /etc/passwd

# 查看设备文件(硬盘)
ls -l /dev/sda

# 查看进程信息(每个进程都是一个目录)
ls /proc/$$   # $$ 是当前 shell 的 PID

四、必会基础命令(带着例子学)

4.1 文件和目录操作

# 显示当前路径
pwd

# 列出文件(带详情)
ls -la

# 切换目录
cd /var/log

# 创建目录(父目录一并创建)
mkdir -p project/src

# 复制文件/目录
cp file1.txt file2.txt
cp -r dir1 dir2

# 移动/重命名
mv oldname.txt newname.txt

# 删除(危险!)
rm file.txt
rm -rf directory   # 强制递归删除,慎重

# 查看文件内容
cat small.txt
less bigfile.log   # 分页查看,按 q 退出
head -20 log.txt   # 前20行
tail -f app.log    # 实时追踪日志

4.2 文本处理三剑客(grep、sed、awk)

# grep:搜索行
grep "error" /var/log/syslog
grep -r "TODO" ./src/          # 递归搜索
grep -E "error|fatal" log.txt  # 扩展正则

# sed:流编辑器(替换)
sed 's/old/new/g' file.txt     # 替换所有 old 为 new
sed -i 's/foo/bar/g' file.txt  # 直接修改文件

# awk:文本处理语言
awk '{print $1, $3}' data.txt           # 打印第1、3列
awk '$2 > 100 {print $0}' scores.txt    # 第2列 >100 的行
ps aux | awk '{sum+=$6} END {print sum}'

4.3 权限管理

# 查看权限
ls -l file.txt
# 输出: -rw-r--r-- 1 user group 1024 Jan 1 12:00 file.txt
# 解读: d(目录)|-(文件) rwx(属主) r-x(组) r-x(其他)

# 修改权限(数字法)
chmod 755 script.sh   # rwxr-xr-x
# 4=读, 2=写, 1=执行,7=4+2+1

# 修改权限(符号法)
chmod u+x script.sh   # 属主加执行
chmod g-w file.txt    # 组去掉写

# 修改属主
chown user:group file.txt

4.4 进程管理

# 查看进程
ps aux                 # 所有进程
ps -ef | grep nginx    # 过滤
top                    # 动态监控(按 q 退出)
htop                   # 更友好的 top(需安装)

# 杀进程
kill -9 1234          # 强制杀死 PID 1234
pkill nginx           # 按名字杀

# 后台运行
./long_task.sh &
nohup ./task.sh &     # 退出终端后继续运行

# 查看端口占用
netstat -tlnp         # 监听端口
ss -tlnp              # 现代替代

五、输入输出重定向和管道(核心技巧)

# 重定向
command > out.txt      # 标准输出到文件(覆盖)
command >> out.txt     # 追加
command 2> error.txt   # 标准错误重定向
command &> all.txt     # 全部输出

# 管道:一个命令的输出作为下一个的输入
ps aux | grep python | wc -l     # 统计 Python 进程数
cat log.txt | sort | uniq -c | sort -rn | head -10  # 统计高频词

# 常用组合
dmesg | grep -i error | head -20
find . -name "*.log" | xargs grep "ERROR"

六、用户和组

# 用户相关
whoami                 # 当前用户
sudo useradd -m alice  # 创建用户(带家目录)
passwd alice           # 改密码
userdel -r alice       # 删除用户及家目录

# 切换用户
su - alice             # 切换并加载环境
sudo command           # 以 root 执行单条命令

# 组管理
groups                 # 查看当前用户所属组
groupadd dev
usermod -aG dev alice  # 将 alice 加入 dev 组

七、包管理(以 Ubuntu/Debian 为例)

# 更新软件源
sudo apt update

# 升级所有软件
sudo apt upgrade

# 搜索包
apt search nginx

# 安装
sudo apt install htop git vim

# 卸载
sudo apt remove vim
sudo apt purge vim    # 连配置文件一起删

# 查看已安装
apt list --installed | grep python

八、第一个实用脚本

创建一个自动备份脚本:

#!/bin/bash
# backup.sh - 备份指定目录到 /backup

SOURCE="$1"
DEST="/backup/$(basename $SOURCE)_$(date +%Y%m%d).tar.gz"

if [ -z "$SOURCE" ]; then
    echo "用法: $0 <目录路径>"
    exit 1
fi

if [ ! -d "$SOURCE" ]; then
    echo "错误: $SOURCE 不是一个目录"
    exit 1
fi

mkdir -p /backup
tar -czf "$DEST" "$SOURCE"

if [ $? -eq 0 ]; then
    echo "✅ 备份成功: $DEST"
    echo "📦 大小: $(du -h $DEST | cut -f1)"
else
    echo "❌ 备份失败"
    exit 1
fi

使用:

chmod +x backup.sh
./backup.sh /home/alice/Documents

九、常见新手的坑

问题 正确做法
rm -rf / 永远不要执行,会删整个系统
直接用 root 做所有事 用 sudo,仅必要时提权
路径中有空格不加引号 用 "my file.txt" 或 my\ file.txt
chmod 777 任何文件 危险!通常 755 或 644 足够
脚本不检查错误 检查 $? 或用 set -e

十、推荐的学习路径

  1. 第1周:熟悉 20 个常用命令,学会 man 查手册
  2. 第2周:理解文件权限、管道、重定向
  3. 第3周:写 3-5 个自动化脚本(备份、监控、批量处理)
  4. 第4周:学习 vim/nano 编辑器,配置环境变量
  5. 进阶:进程间通信、网络配置、systemd、shell 编程深入

十一、速查卡片

# 我最常用的日常命令
alias ll='ls -alh'
alias gs='git status'
alias ..='cd ..'

# 查找大文件
find / -type f -size +100M 2>/dev/null

# 查看内存
free -h

# 查看磁盘
df -h

# 实时查看系统日志
journalctl -f          # systemd 系统
tail -f /var/log/syslog

# 压缩解压
tar -czf out.tar.gz dir/
tar -xzf out.tar.gz

# 网络测试
ping -c 4 google.com
curl -I https://example.com

记住:Linux 的文档就是最好的老师。任何时候遇到不懂的命令或函数,输入:

man 命令名
# 或
命令名 --help

坚持使用命令行一个月,你会发现鼠标效率实在太低了。祝你玩得开心!🐧


本文由 尚先生 原创,转载请注明出处。

📖相关推荐

评论

0
暂无评论,来发表第一条评论吧

发表评论

登录 后发表评论