首页 > 系统相关 >linux三剑客工具使用及硬盘知识介绍

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

时间:2024-06-24 12:11:25浏览次数:3  
标签:grep 分区 sudo 文件系统 dev file 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管理

标签:grep,分区,sudo,文件系统,dev,file,linux,硬盘,三剑客
From: https://www.cnblogs.com/linux-li/p/18264771

相关文章

  • linux基础知识
    总结计算机发展相关,并且总结服务器硬件相关知识计算机发展相关计算机的发展可以分为以下几个阶段:第一代计算机(1940s-1950s):使用电子管作为主要元件。体积庞大,功耗高。主要用于科学计算和军事用途。代表:ENIAC、UNIVAC。第二代计算机(1950s-1960s):使用晶体管代替电子管。体......
  • linux的source命令
    用法sourcefile也可以用.+空格file来代替.file作用在当前bash环境下读取并执行FileName中的命令.source(或点)令通常用于重新执行刚修改的初始化文档,如.bash_profile和.profile等配置文件.简单的说就是:source命令会把file里的命令在当前shell里一个一个执行区别......
  • Linux收到You have mail in xxx
    当系统显示"Youhavemailin/var/spool/mail/root"提示时,一般有一些重要的邮件被发送到了root用户的邮箱,存放在/var/spool/mail/root这个文件中。这些邮件通常包含了系统关键事件的通知或报告,例如系统状态变化、错误报告、定期任务的执行结果等。原因:系统报告和通知:系......
  • Linux passwd命令:守护账户安全的密钥
    Linuxpasswd命令:守护账户安全的密钥在Linux的广阔世界中,passwd命令是每位系统管理员和用户的得力助手。它不仅是账户安全的守护者,也是数据处理和分析中不可或缺的一环。本文将带您深入了解passwd命令的方方面面,从它的基本功能到高级应用,再到使用时的注意事项和最佳实践。......
  • Linux各个中间件日志位置
    Linux各个中间件日志位置Linux系统中各种常见中间件日志文件的默认位置取决于安装时的配置以及中间件的具体类型。以下是一些常见中间件日志文件的标准位置ApacheHTTPServer:访问日志:/var/log/httpd/access_log或/var/log/apache2/access.log ......
  • Linux Vim最全面的教程
    LinuxVim是一个功能强大的文本编辑器,在Linux系统中被广泛使用。它具有很多高级特性和快捷键,可以提高编辑效率。本教程将详细介绍LinuxVim的各种功能和用法,适合初学者和有一定经验的用户。第一部分:入门指南介绍Vim和它与其他编辑器的区别安装Vim启动Vim和基本操作基本编辑命......
  • 文件系统(八):Linux JFFS2文件系统工作原理、优势与局限
    liwen012024.06.23前言在嵌入式Linux设备中,经常使用jffs2文件系统来作为参数区的文件系统格式。至于为什么要使用jffs2来作为参数区的文件系统,我猜大部分人都没有做过多的思考。jffs2在2021年被设计出来,距今已过二十多年,现在在嵌入式设备中它还在被大量使用、说明这套设计本身......
  • Linux gdb lldb面试题及参考答案(万字长文)
    什么是GDB?简述其主要功能。GDB(GNUDebugger)是GNU项目的一部分,是一个功能强大的源代码级别的调试器,主要用于C、C++和其他多种编程语言的程序调试。GDB提供了丰富的功能来帮助开发者理解程序内部的工作方式,诊断并修复代码中的错误。其主要功能包括但不限于:启动程序:可以在GDB......
  • 在Linux中,如何统计ip访问情况?分析 nginx 访问日志?如何找出访问页面数量在前十位的ip?
    在Linux中统计IP访问情况并分析Nginx访问日志,以找出访问页面数量在前十位的IP地址,可以通过一系列命令行工具高效完成。这里以一个典型的工作流程为例,说明如何进行这一分析:1.确定日志文件位置首先,需要知道Nginx的访问日志文件位置。通常,这个文件位于/var/log/nginx/access.log,但......
  • 在Linux中,如何实时抓取并显示当前系统中tcp 80 端口的网络数据信息?
    在Linux中,实时抓取并显示当前系统中TCP80端口的网络数据信息,可以使用tcpdump这个强大的命令行工具。以下是详细的步骤和命令:打开终端:首先,打开一个具有足够权限的终端窗口。通常,需要使用sudo或以root身份执行tcpdump,因为它需要访问底层网络接口。确定网络接口:使用ifconfig(在......