Linux 基础复习笔记(整合版)
1. 文件与目录操作
1.1 文件查看与编辑
- 查看文件内容:
cat file.txt
:显示小文件的全部内容。more file.txt
:分页查看大文件。less file.txt
:支持上下键滚动的分页查看。head -n 20 file.txt
:显示前20行。tail -n 20 file.txt
:显示后20行。tail -f log.txt
:实时监控日志文件更新。
- 删除文件:
rm file.txt
:删除单个文件。rm -i *.txt
:删除当前目录下所有.txt
文件(需确认)。rm -rf directory/
:强制删除目录及其内容(危险操作!)。
- 重命名/移动文件:
mv old_name.txt new_name.txt
:更改文件名。mv file.txt /path/to/new_directory/
:移动并重命名文件。
- 清空文件内容:
> example.txt
:覆盖文件内容为空。truncate -s 0 log.txt
:将文件大小设置为0字节。cat /dev/null > access.log
:通过空设备文件清空内容。
1.2 文件打包与压缩
- 打包:
tar -cvf backup.tar /home/user/
:将目录打包为.tar
文件。tar -tvf backup.tar
:查看打包文件内容。
- 压缩:
gzip file.txt
:压缩文件为.gz
。bzip2 file.txt
:压缩为.bz2
。xz file.txt
:压缩为.xz
。
- 打包+压缩:
tar -czvf archive.tar.gz /path/to/directory/
:打包并用gzip
压缩。tar -cjvf archive.tar.bz2 /path/to/directory/
:打包并用bzip2
压缩。tar -cJvf archive.tar.xz /path/to/directory/
:打包并用xz
压缩。
- 解压:
tar -zxf archive.tar.gz -C ~/myetc
:解压.tar.gz
文件到指定目录。
1.3 文件查找
- 按名称查找:
find /path -name "example.txt"
:查找文件。find /path -iname "report1.txt"
:忽略大小写的查找。whereis grep
:查找二进制文件、源码或文档。
- 按条件查找:
- 文件类型:
-type f
:普通文件。-type d
:目录。-type l
:符号链接。
- 时间戳:
-mtime -7
:7天内修改过的文件。-atime +30
:30天前访问过的文件。
- 文件大小:
-size +100M
:大于100MB的文件。-size -1k
:小于1KB的文件。
- 权限或所有权:
-user root
:属于用户root
的文件。-group www-data
:属于组www-data
的文件。
- 文件类型:
1.4 文件权限管理
- 修改权限:
- 符号法:
chmod u+x file.txt
(给用户添加执行权限)。 - 数字法:
chmod 755 file.txt
(rwxr-xr-x
)。
- 符号法:
- 修改所属组:
chown :ymyw file.txt
:将文件所属组改为ymyw
。chgrp ymyw file.txt
:通过chgrp
修改组。
2. 进程与线程管理
2.1 进程概念
- 进程:
- 动态执行的程序实例,占用系统资源(CPU、内存等)。
- PID:进程唯一标识符。
- 状态:
R
:运行中。S
:可中断睡眠。D
:不可中断睡眠。T
:停止。Z
:僵尸进程。
2.2 查看进程
ps -ef
:查看当前进程快照。top
:实时监控进程资源使用。htop
:增强版top
,支持交互式操作。pgrep sshd
:根据名称查找进程 PID。pkill nginx
:根据名称终止进程。
2.3 管理进程
- 终止进程:
kill 1234
:发送SIGTERM
信号(正常终止)。kill -9 1234
:发送SIGKILL
信号(强制终止)。
- 调整优先级:
nice -n 5 ./myprogram
:启动进程时设置优先级。renice -10 -p 1234
:修改运行中进程的优先级。
2.4 进程与线程
- 进程:独立的地址空间和资源。
- 线程:共享进程资源,拥有独立栈和寄存器。
- 查看线程:
top -Hp 1234
:查看进程的线程。
3. 网络配置与管理
3.1 IP 地址与端口
- IP 地址:唯一标识网络中的设备。
- 端口:设备上应用程序的逻辑通道(范围
0-65535
)。 - DHCP 与静态 IP:
- DHCP:自动分配 IP(如
netplan
配置文件)。 - 静态 IP:手动配置(如
/etc/netplan/50-cloud-init.yaml
)。
- DHCP:自动分配 IP(如
3.2 路由与网关
- 路由表:
ip route show
:查看当前路由表。- 默认路由:数据包离开本地网络的下一跳地址。
- 网关:连接不同网络的中转站(如
192.168.1.1
)。 - 子网掩码:划分网络地址和主机地址(如
255.255.255.0
)。
3.3 防火墙配置
-
iptables:
-
清空规则:
sudo iptables -F sudo iptables -X sudo iptables -Z
-
添加规则:
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
-
调整规则顺序:
sudo iptables -D INPUT 2 sudo iptables -I INPUT 1 -p tcp --dport 80 -j DROP
-
-
firewalld:
-
开放端口:
sudo firewall-cmd --add-port=80/tcp --permanent sudo firewall-cmd --reload
-
-
nftables:新一代防火墙工具,语法更简洁。
3.4 网络工具
- ping:测试网络连通性(使用 ICMP 协议)。
- netstat/ss:
sudo netstat -tulnp
:查看监听端口及进程。sudo ss -tulnp
:类似netstat
。
- curl:
curl https://www.baidu.com
:发送 GET 请求。curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' url
:发送 JSON 数据。
4. 用户与权限管理
4.1 用户与用户组
-
创建用户组:
sudo groupadd ymyw sudo groupadd -g 1001 ymyw
-
创建用户并指定组:
sudo useradd -g ymyw dev sudo usermod -aG ymyw ops
-
验证用户组:
id dev groups dev
4.2 文件权限
- 权限符号:
r
:Read,读取;文件权限为可读取文件内容,目录权限为可查看目录中的文件列表。w
:Write,写、修改;文件权限为可修改文件内容,目录权限为可在目录中创建/删除/重命名文件(需搭配-x
)。x
:Execute,执行;文件权限是可作为程序执行,目录权限为可进入目录。
- 权限数字表示:
r=4
,w=2
,x=1
,组合计算(如777
表示所有用户有读、写、执行权限)。
4.3 Root 与普通用户
- Root 用户:超级管理员,可修改系统关键文件、安装软件、管理用户账户等。
- 普通用户:受限于权限,仅能操作个人目录。
5. 服务管理与后台运行
5.1 后台运行进程
-
&
:将命令放入后台。ping www.baidu.com &
-
终端复用工具:
- Byobu:
byobu
:启动会话。F2
:新建窗口。Shift+F2
:水平分屏。F6
:分离到后台。byobu attach
:恢复会话。
- Byobu:
5.2 SSH 服务配置
-
修改 SSH 端口:
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config sudo systemctl restart sshd
-
禁止 root 登录:
sudo sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config sudo systemctl restart sshd
-
禁用密码登录:
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sudo systemctl restart sshd
6. 系统管理与调试
6.1 系统版本与内核
-
查看系统版本:
lsb_release -a cat /etc/os-release hostnamectl
-
查看内核版本:
uname -r
6.2 系统时间与时区
-
修改时区:
sudo timedatectl set-timezone Asia/Shanghai
-
同步网络时间:
sudo timedatectl set-ntp true
6.3 日志查看
-
查看日志:
journalctl -u sshd tail -f /var/log/auth.log
7. 脚本与定时任务
7.1 定时任务
-
crontab:
crontab -e # 示例:每分钟执行一次 * * * * * /path/to/script.sh
-
systemd 服务:
sudo systemctl enable my-script.service sudo systemctl start my-script.service
7.2 脚本调试
-
判断命令是否成功:
echo $?
-
重定向输出:
command > output.log 2>&1
8. RAID 与存储管理
8.1 RAID 类型
- RAID 0:条带化,无冗余,性能高。
- RAID 1:镜像,数据安全。
- RAID 5:分布式奇偶校验,平衡性能与容错。
- RAID 10:镜像+条带化,高性能高可靠性。
8.2 硬盘挂载
-
创建分区:
sudo fdisk /dev/sdb sudo mkfs.ext4 /dev/sdb1
-
挂载到目录:
sudo mount /dev/sdb1 /opt/mydir
-
开机自动挂载:
sudo blkid /dev/sdb1 # 获取 UUID sudo nano /etc/fstab # 添加行: UUID=xxxx-xxxx /opt/mydir ext4 defaults 0 2
9. 高级命令与工具
9.1 文本处理
-
替换文件内容:
sed -i 's/aaa/bbb/g' file.txt
-
查找内容:
grep -r "error" /path
9.2 系统监控
-
查看 CPU 使用:
top htop ps aux --sort=-%cpu
-
查看内存使用:
free -h smem -s rss -r
9.3 文件同步
-
SCP 同步:
scp -r /opt/mydir user@B机器:/opt/
-
rsync 同步:
rsync -avz /opt/mydir user@B机器:/opt/ rsync -avz --delete /opt/mydir user@B机器:/opt/
10. 网络与 DNS
10.1 DNS 解析流程
- 本地缓存检查(浏览器、操作系统)。
- Hosts 文件检查。
- 递归 DNS 查询(根域名服务器 → TLD 服务器 → 权威 DNS 服务器)。
10.2 Hosts 文件
-
修改 Hosts 文件:
sudo nano /etc/hosts # 示例: 127.0.0.1 www.testsite.com
11. 系统维护与故障排查
11.1 查看系统负载
uptime
:查看系统负载。vmstat
:监控内存和 CPU 使用。iostat
:查看磁盘 I/O。
11.2 日志分析
-
查看日志:
journalctl -u sshd cat /var/log/syslog
12. 其他实用命令
12.1 创建多级目录
mkdir -p a/b/c/d
:一次性创建嵌套目录。
12.2 硬链接与软链接
-
硬链接:
ln source_file hardlink
-
软链接:
ln -s target_file symlink
12.3 查看文件行数
-
统计行数:
wc -l file.txt grep -v '^$' file.txt | wc -l # 排除空行
13. 补充知识点
13.1 系统负载详解
- 系统负载:表示当前处于可运行状态(R)和不可中断状态(D)的进程数总和。
- 负载值参考:负载值 ≤ CPU 核心数 × 1.5 表示正常。
13.2 系统维护工具
-
查看磁盘使用:
df -h
-
查看目录大小:
du -sh /path/to/directory
13.3 文件权限 777
- 文件权限 777:所有用户(所有者、所属组、其他用户)拥有读、写、执行权限。
13.4 前台与后台运行
- 前台运行:直接执行命令(如
ping www.baidu.com
)。 - 后台运行:使用
&
或终端复用工具(如nohup
、screen
、tmux
)。
14. 补充命令速查
功能 | 命令 |
---|---|
查看进程 | ps , top , htop |
修改文件权限 | chmod 755 file , chown user:group file |
查看网络连接 | netstat -tulnp , ss -tulnp |
查看系统日志 | journalctl , dmesg , tail /var/log/syslog |
调整文件大小 | dd if=/dev/zero of=large_file bs=1M count=200 |
查找文件内容 | grep "keyword" file , find /path -name "*.log" |
查看系统负载 | uptime , top , htop |
15. 补充实际场景
15.1 同步文件并删除目标多余文件
rsync -avz --delete /opt/mydir user@B机器:/opt/sync_dir/
15.2 定时执行脚本
crontab -e
# 添加:
0 * * * * /path/to/script.sh
15.3 查看占用 CPU 最高的进程
top
# 按 P 排序
16. 补充注意事项
- 谨慎使用
rm -rf /
:会删除整个系统文件。 - 备份配置文件:修改前使用
cp
或git
备份。 - SSH 安全:禁用密码登录,使用密钥认证。
- 防火墙规则:避免误删 SSH 规则导致无法连接。
17. 补充关键概念
概念 | 说明 |
---|---|
进程 | 程序的运行实例,占用系统资源。 |
线程 | 进程内的执行单元,共享资源。 |
RAID | 通过磁盘阵列提升性能或可靠性(如 RAID 0、RAID 5)。 |
软链接 vs 硬链接 | 软链接是路径指向,硬链接共享 inode(不能跨文件系统)。 |
管道符 | ` |
18. 补充配置文件示例
18.1 Netplan 静态 IP 配置
network:
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.163.138/24
routes:
- to: default
via: 192.168.31.1
nameservers:
addresses:
- 8.8.8.8
version: 2
18.2 SSHD 配置
# /etc/ssh/sshd_config
Port 2222
PermitRootLogin no
PasswordAuthentication no
19. 补充命令速查表
命令 | 功能 |
---|---|
ls -lh | 查看文件大小、权限、所属组 |
df -h | 查看磁盘使用情况 |
du -sh | 查看目录大小 |
ps aux | 查看进程列表 |
free -h | 查看内存使用 |
ping | 测试网络连通性 |
scp | 安全复制文件 |
rsync | 同步文件(支持增量传输) |
sed | 文本替换 |
awk | 文本处理(字段提取、排序) |
20. 补充术语表
- UID:用户唯一标识符(User ID)。
- GID:组唯一标识符(Group ID)。
- NTP:网络时间协议(Network Time Protocol)。
- SSH:安全外壳协议(Secure Shell)。
- inode:文件系统的元数据节点(存储权限、大小等)。