linux三剑客工具使用及硬盘知识介绍

  1. 文本处理工具,文件查找工具,文本处理三剑客, 文本格式化命令(printf)的相关命令及选项,示例。
    文本处理工具
    cat:连接文件并打印到标准输出。

    cat file1 file2
    tac:反向连接文件并打印到标准输出。

    tac file
    nl:给文件的每一行添加行号。

    nl file
    more:分页显示文件内容。

    more file
    less:分页显示文件内容,支持向前翻页。

    less file
    head:显示文件的前几行。

    head -n 10 file
    tail:显示文件的后几行。

    tail -n 10 file
    文件查找工具
    find:在目录中查找文件。

    find /path -name "filename"
    locate:快速查找文件,基于数据库。

    locate filename
    which:查找并显示可执行文件的位置。

    which command
    whereis:查找文件的二进制、源代码和手册页。

    whereis command
    grep:在文件中搜索文本。

    grep "pattern" file
    文本处理三剑客
    grep:搜索文本。

    grep "pattern" file
    sed:流编辑器,用于文本替换、删除、插入等。

    sed 's/old/new/g' file
    awk:强大的文本处理工具,用于数据提取和报告生成。

    awk '{print $1}' file
    文本格式化命令(printf)
    printf:格式化输出。

    printf "Hello, %s!\n" "World"

  2. 总结文本处理的grep命令相关的基本正则和扩展正则表达式。
    基本正则表达式
    字符匹配:

    grep "pattern" file
    锚点:
    ^:匹配行首。

    grep "^pattern" file
    $:匹配行尾。

    grep "pattern$" file
    字符类:
    [abc]:匹配a、b或c。

    grep "[abc]" file
    重复:
    *:匹配前一个字符0次或多次。

    grep "a*" file
    扩展正则表达式
    使用-E选项:

    grep -E "pattern" file
    字符匹配:

    grep -E "pattern" file
    锚点:
    ^:匹配行首。

    grep -E "^pattern" file
    $:匹配行尾。

    grep -E "pattern$" file
    字符类:
    [abc]:匹配a、b或c。

    grep -E "[abc]" file
    重复:
    +:匹配前一个字符1次或多次。

    grep -E "a+" file
    ?:匹配前一个字符0次或1次。

    grep -E "a?" file
    {n,m}:匹配前一个字符n到m次。

    grep -E "a{1,3}" file

  3. 总结变量命名规则,不同类型变量(环境变量,位置变量,只读变量,局部变量,状态变量)如何使用。
    变量命名规则
    变量名只能包含字母、数字和下划线。
    变量名不能以数字开头。
    变量名区分大小写。
    不同类型变量
    环境变量:
    使用export命令定义。

    export VAR_NAME="value"
    位置变量:
    脚本参数,使用$1、$2等表示。

    echo "第一个参数是 $1"
    只读变量:
    使用readonly命令定义。

    readonly VAR_NAME="value"
    局部变量:
    使用local命令在函数中定义。

    function my_func {
    local VAR_NAME="value"
    }
    状态变量:
    使用$?表示上一个命令的退出状态。

    command
    echo "命令的退出状态是 $?"

  4. 通过shell编程完成,30鸡和兔的头,80鸡和兔的脚,分别有几只鸡,几只兔?

!/bin/bash

heads=30
legs=80

for ((chickens=0; chickens<=heads; chickens++)); do
rabbits=$((heads - chickens))
if ((chickens * 2 + rabbits * 4 == legs)); then
echo "鸡的数量: $chickens"
echo "兔的数量: $rabbits"
break
fi
done
5. 结合编程的for循环,条件测试,条件组合,完成批量创建100个用户

!/bin/bash

for i in $(seq 1 100); do
username="user$i"
if id "$username" &>/dev/null; then
echo "用户 $username 已存在"
else
sudo useradd "$username"
echo "用户 $username 已添加"
fi
done
6. 磁盘存储术语总结: head, track, sector, cylinder.
Head(磁头):
磁盘驱动器中用于读取和写入数据的组件。
Track(磁道):
磁盘表面上的同心圆,每个磁道包含多个扇区。
Sector(扇区):
磁盘上的最小存储单位,通常为512字节或4096字节。
Cylinder(柱面):
由多个磁盘表面上的相同半径的磁道组成。
7. 总结MBR,GPT结构。
MBR(Master Boot Record)
特点:
支持最大2TB的磁盘。
支持最多4个主分区或3个主分区和1个扩展分区。
分区表存储在磁盘的第一个扇区。
结构:
引导代码(446字节)。
分区表(64字节)。
魔数(2字节)。
GPT(GUID Partition Table)
特点:
支持最大18EB的磁盘。
支持最多128个分区。
提供冗余和CRC校验以提高数据完整性。
结构:
保护MBR。
GPT头。
分区表。
分区条目。

8、分区、文件系统管理和SWAP管理相关的命令及选项的总结和示例。
分区管理

  1. fdisk
    fdisk 是一个用于管理磁盘分区的交互式工具。
    查看磁盘分区:

sudo fdisk -l /dev/sda
进入交互模式:

sudo fdisk /dev/sda
在交互模式下,常用命令包括:
n:新建分区
d:删除分区
p:显示分区表
w:写入分区表并退出
q:退出不保存
2. parted
parted 是一个高级分区工具,支持大容量磁盘和GPT分区表。
查看磁盘信息:

sudo parted /dev/sda print
创建新分区:

sudo parted /dev/sda mkpart primary ext4 1MiB 100MiB
删除分区:

sudo parted /dev/sda rm 1
文件系统管理
3. mkfs
mkfs 用于创建文件系统。
创建ext4文件系统:

sudo mkfs.ext4 /dev/sda1
创建xfs文件系统:

sudo mkfs.xfs /dev/sda1
4. tune2fs
tune2fs 用于调整ext2/ext3/ext4文件系统参数。
查看文件系统信息:

sudo tune2fs -l /dev/sda1
设置最大挂载次数:
sh
Copy
sudo tune2fs -c 50 /dev/sda1
设置文件系统标签:

sudo tune2fs -L "MyLabel" /dev/sda1
5. xfs_info
xfs_info 用于显示XFS文件系统信息。
查看XFS文件系统信息:

sudo xfs_info /dev/sda1
6. fsck
fsck 用于检查和修复文件系统。
检查并修复文件系统:

sudo fsck /dev/sda1
强制检查文件系统:

sudo fsck -f /dev/sda1
挂载和卸载文件系统
7. mount
mount 用于挂载文件系统。
挂载文件系统:

sudo mount /dev/sda1 /mnt
挂载时指定文件系统类型:

sudo mount -t ext4 /dev/sda1 /mnt
查看已挂载的文件系统:

mount
8. umount
umount 用于卸载文件系统。
卸载文件系统:

sudo umount /mnt
强制卸载文件系统:

sudo umount -f /mnt
SWAP管理
9. swapon
swapon 用于启用交换分区或交换文件。
启用交换分区:

sudo swapon /dev/sda2
查看交换空间使用情况:

swapon --show
10. swapoff
swapoff 用于禁用交换分区或交换文件。
禁用交换分区:

sudo swapoff /dev/sda2
示例脚本
以下是一个示例脚本,展示了如何使用上述命令创建分区、格式化文件系统、挂载文件系统以及管理交换空间。

!/bin/bash

检查是否以root用户运行

if [ "$EUID" -ne 0 ]; then
echo "请以root用户运行此脚本。"
exit 1
fi

创建新分区

echo "创建新分区..."
sudo parted /dev/sda mkpart primary ext4 1MiB 100MiB

格式化新分区为ext4文件系统

echo "格式化新分区为ext4文件系统..."
sudo mkfs.ext4 /dev/sda1

挂载新分区

echo "挂载新分区..."
sudo mount /dev/sda1 /mnt

查看挂载情况

echo "查看挂载情况..."
mount | grep /mnt

启用交换分区

echo "启用交换分区..."
sudo swapon /dev/sda2

查看交换空间使用情况

echo "查看交换空间使用情况..."
swapon --show

禁用交换分区

echo "禁用交换分区..."
sudo swapoff /dev/sda2

卸载文件系统

echo "卸载文件系统..."
sudo umount /mnt

echo "完成。"
总结
通过使用fdisk、parted、mkfs、tune2fs、xfs_info、fsck、mount、umount、swapon和swapoff等命令,您可以在Linux系统中进行分区管理、文件系统管理和SWAP管理

posted @ 2024-06-24 12:01  自足。  阅读(43)  评论(0)    收藏  举报