【跟我学Linux】第六天

一、学习目标

  1. 掌握文件权限进阶操作(修改所有者、所属组,理解特殊权限基础)。
  2. 学会磁盘分区查看、挂载 / 卸载及磁盘空间细节查看(du 命令)。
  3. 入门 Shell 脚本:编写简单脚本,理解变量和基本输出。

二、学习内容

(一)文件权限进阶(2 小时)

之前学了chmod修改权限,今天重点学文件所有者、所属组的修改(实际工作中经常需要调整文件归属,比如将文件交给某个用户组管理)。

1. 修改文件所有者(chown 命令)
  • 作用:改变文件 / 目录的所有者(谁拥有这个文件)。
  • 命令格式sudo chown 新所有者 文件名/目录名
  • 示例
    ~/linux_study/day1_note.txt的所有者改为之前创建的workuser(若已删除,可先用sudo useradd workuser重建):

    bash

    sudo chown workuser ~/linux_study/day1_note.txt
    
  • 验证:用ls -l查看,文件权限前的所有者会从你的用户名变成workuser

    bash

    ls -l ~/linux_study/day1_note.txt
    # 输出类似:-rw-r--r-- 1 workuser your_username ... day1_note.txt
    
2. 修改文件所属组(chgrp 命令)
  • 作用:改变文件 / 目录的所属组(哪个用户组可以管理这个文件)。
  • 命令格式sudo chgrp 新所属组 文件名/目录名
  • 示例
    day1_note.txt的所属组改为workgroup(若已删除,先用sudo groupadd workgroup重建):

    bash

    sudo chgrp workgroup ~/linux_study/day1_note.txt
    
  • 验证ls -l查看,所属组会从你的用户组变成workgroup

    bash

    ls -l ~/linux_study/day1_note.txt
    # 输出类似:-rw-r--r-- 1 workuser workgroup ... day1_note.txt
    
3. 同时修改所有者和所属组(chown 的快捷用法)
  • 命令格式sudo chown 新所有者:新所属组 文件名
  • 示例:把文件改回自己的所有者和用户组(假设你的用户名为your_user,组为your_user):

    bash

    sudo chown your_user:your_user ~/linux_study/day1_note.txt
    
4. 特殊权限基础(简化版,了解即可)
  • 粘滞位(Sticky Bit):只对目录有效,设置后只有文件所有者能删除自己的文件(防止他人误删公共目录文件)。
    • 命令:sudo chmod +t 目录名
    • 示例:给/tmp(系统临时目录,默认有粘滞位)设置:

      bash

      ls -ld /tmp  # 查看权限,会显示't':drwxrwxrwt
      

(二)磁盘管理进阶(2 小时)

之前学了df -h看磁盘整体空间,今天学更细致的磁盘操作:分区查看、挂载 / 卸载、目录占用空间。

1. 查看磁盘分区详情(fdisk 命令)
  • 作用:列出所有磁盘的分区情况(比如硬盘分了几个区,每个区多大)。
  • 命令sudo fdisk -l-l表示列出所有磁盘)
  • 输出解读(重点看这几行):

    bash

    Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors  # 磁盘/dev/sda,总大小20GiB
    Device     Boot Start      End  Sectors Size Id Type
    /dev/sda1  *     2048 41943039 41940992  20G 83 Linux  # 分区/dev/sda1,大小20G,类型Linux
    
     
    • Device:分区设备名(如/dev/sda1);Size:分区大小;Type:分区类型。
2. 挂载与卸载磁盘(mount/umount)
  • 什么是挂载:把新的磁盘 / U 盘分区 “连接” 到系统目录(比如把 U 盘挂载到/mnt/usb,才能访问里面的文件)。
(1)挂载步骤(以虚拟机共享文件夹为例,模拟 U 盘)
  1. 先创建挂载点(一个空目录):

    bash

    sudo mkdir /mnt/share  # /mnt是系统默认挂载目录,share是自定义名称
    
  2. 查看要挂载的设备(假设虚拟机共享文件夹设备为/dev/sr0,实际中可用lsblk查看所有设备):

    bash

    lsblk  # 列出所有磁盘/分区,找到你要挂载的设备名(如sdb1)
    
  3. 挂载设备到目录:

    bash

    sudo mount /dev/sr0 /mnt/share  # 把/dev/sr0挂载到/mnt/share
    
  4. 验证:进入挂载点查看文件:

    bash

    ls /mnt/share  # 能看到共享文件夹里的内容表示挂载成功
    
(2)卸载磁盘(必须先退出挂载目录,否则报错)
  1. 先退出挂载目录(若当前在/mnt/share,执行cd ~):

    bash

    cd ~
    
  2. 卸载:

    bash

    sudo umount /mnt/share  # 卸载/mnt/share目录对应的设备
    
3. 查看目录 / 文件占用空间(du 命令)
  • 作用:比df更细致,查看单个目录或文件的大小。
  • 常用命令
    • du -sh 目录/文件-s只显示总和,-h人类可读格式(推荐)。
      示例:查看~/linux_study目录总大小:

      bash

      du -sh ~/linux_study
      # 输出类似:4.0K    /home/your_user/linux_study
      
    • du -h 目录:显示目录下所有子目录的大小(逐层列出)。
      示例:查看/home目录下各用户的空间:

      bash

      du -h /home
      

(三)Shell 脚本入门(2 小时)

Shell 脚本是 “命令的集合”,可以批量执行命令(比如一键备份文件、自动清理日志),今天从最简单的脚本学起。

1. 什么是 Shell 脚本
  • 一个以.sh为后缀的文本文件,里面写 Linux 命令,加执行权限后可直接运行。
2. 编写第一个脚本(输出问候语)
步骤 1:创建脚本文件

bash

nano ~/linux_study/hello.sh  # 在linux_study目录下创建hello.sh
步骤 2:写入脚本内容(复制以下内容)

bash

#!/bin/bash  # 声明脚本用bash解释器执行(固定开头)
echo "Hello, Linux!"  # 输出一句话
echo "当前时间是:$(date)"  # $(date)会自动替换为当前时间

  • 解释:#!/bin/bash是脚本 “签名”,必须放在第一行;echo用于输出文字;$(命令)表示执行命令并获取结果。
步骤 3:保存并添加执行权限
  1. Ctrl+O保存,Ctrl+X退出nano
  2. 加执行权限(之前学过chmod +x):

    bash

    chmod +x ~/linux_study/hello.sh
    
步骤 4:运行脚本

bash

~/linux_study/hello.sh  # 直接输入脚本路径运行

  • 预期输出:

    bash

    Hello, Linux!
    当前时间是:2025年 07月 09日 星期三 10:30:00 CST
    
3. 脚本变量基础
  • 变量:存储数据的 “容器”,方便脚本中重复使用。
  • 示例(修改hello.sh,加入变量):
    1. 打开脚本:nano ~/linux_study/hello.sh
    2. 修改内容:

      bash

      #!/bin/bash
      name="小白"  # 定义变量name,值为“小白”(等号前后不能有空格)
      echo "你好,$name!"  # 用$name调用变量(必须加$)
      echo "你的家目录是:$HOME"  # $HOME是系统内置变量,代表用户主目录
      
    3. 保存后运行,输出:

      bash

      你好,小白!
      你的家目录是:/home/your_user
      

三、实践操作(超详细步骤)

(一)文件权限进阶实践

  1. 进入linux_study目录:

    bash

    cd ~/linux_study
    
  2. 创建测试文件和组:

    bash

    sudo groupadd testgroup  # 创建组testgroup
    sudo useradd testuser    # 创建用户testuser
    touch test_perm.txt      # 创建测试文件
    
  3. 修改文件所有者为testuser

    bash

    sudo chown testuser test_perm.txt
    ls -l test_perm.txt  # 查看:所有者变为testuser
    
  4. 修改文件所属组为testgroup

    bash

    sudo chgrp testgroup test_perm.txt
    ls -l test_perm.txt  # 查看:所属组变为testgroup
    
  5. 改回原所有者(你的用户名):

    bash

    sudo chown $USER:$USER test_perm.txt  # $USER是系统变量,代表当前用户名
    

(二)磁盘管理实践

  1. 查看磁盘分区:

    bash

    sudo fdisk -l  # 找到你的系统磁盘(如/dev/sda),记录分区大小
    
  2. 查看/home目录占用空间:

    bash

    du -sh /home  # 显示/home总大小
    du -h /home   # 显示/home下各子目录大小(可能需要sudo)
    
  3. 模拟挂载(以临时文件作为 “虚拟磁盘”,适合小白练习):

    1. 创建一个 100MB 的虚拟磁盘文件:

      bash

      dd if=/dev/zero of=~/test_disk bs=1M count=100  # 生成100MB空文件
      
    2. 格式化虚拟磁盘(格式化为 ext4):

      bash

      sudo mkfs.ext4 ~/test_disk  # 提示“是否继续?”输入y
      
    3. 挂载到/mnt/test

      bash

      sudo mkdir /mnt/test
      sudo mount ~/test_disk /mnt/test
      
    4. 验证挂载:

      bash

      df -h | grep /mnt/test  # 能看到挂载的100MB磁盘
      
    5. 卸载虚拟磁盘:

      bash

      sudo umount /mnt/test
      

(三)Shell 脚本实践

  1. 创建并编辑脚本myfirst.sh

    bash

    nano ~/linux_study/myfirst.sh
    

  2. 写入以下内容(复制粘贴):

    bash

    #!/bin/bash
    echo "===== 系统信息 ====="
    echo "当前用户:$(whoami)"  # 显示当前用户名
    echo "当前目录:$(pwd)"     # 显示当前目录
    echo "内存使用:$(free -h | grep Mem)"  # 显示内存信息
    

  3. 保存退出(Ctrl+O→回车→Ctrl+X)。

  4. 加执行权限并运行:

    bash

    chmod +x ~/linux_study/myfirst.sh
    ~/linux_study/myfirst.sh  # 查看输出的系统信息
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值