Linux 基础复习笔记(整合版)

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.txtrwxr-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)。

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:恢复会话。

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 解析流程

  1. 本地缓存检查(浏览器、操作系统)。
  2. Hosts 文件检查。
  3. 递归 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)。
  • 后台运行:使用 & 或终端复用工具(如 nohupscreentmux)。

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 /:会删除整个系统文件。
  • 备份配置文件:修改前使用 cpgit 备份。
  • 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:文件系统的元数据节点(存储权限、大小等)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值