第二周运维课后作业

一、
vim使用总结:

  1. 打开文件
    要在vim中打开一个文件,只需在终端中输入以下命令:
    vim filename

  2. 退出vim
    按下Esc键,然后输入冒号(😃,然后输入以下命令:
    保存并退出:wq(或者按下Shift + ZZ)
    不保存并退出:q!
    强制退出,不保存:q

  3. 移动光标
    上下左右箭头键:移动光标
    h:向左移动
    j:向下移动
    k:向上移动
    l:向右移动
    0:移动到行首
    $:移动到行尾
    gg:移动到文件开头
    G:移动到文件末尾

  4. 插入和编辑文本
    i:在当前光标处插入文本
    a:在当前光标之后插入文本
    o:在当前行之后插入新行
    x:删除当前光标所在处的字符
    dd:删除当前行
    yy:复制当前行
    p:粘贴复制的内容

  5. 搜索和替换
    /pattern:向下搜索指定的模式
    ?pattern:向上搜索指定的模式
    :%s/old/new/g:替换所有匹配的文本

  6. 撤销和重做
    u:撤销上一步操作
    Ctrl + r:重做上一步撤销的操作

  7. 保存和退出
    :w:保存文件
    :q:退出
    :wq:保存并退出

  8. 分屏和多窗口
    :split:水平分屏
    :vsplit:垂直分屏
    Ctrl + w + w:在窗口之间切换
    :q:关闭当前窗口

grep:

  1. -i:忽略大小写
  2. -r:递归搜索子目录
  3. -n:显示匹配行的行号
  4. -v:显示不匹配的行
  5. -E:支持扩展正则表达式
    示例:
    grep -i "hello" file.txt
    grep -r "pattern" directory/
    grep -n "word" file.txt
    grep -v "exclude" file.txt
    grep -E "pattern1|pattern2" file.txt

sed:

  1. -e:允许对输入应用多条sed命令
  2. -i:直接修改文件内容
  3. -n:只显示经过sed处理的行
  4. -r:支持扩展正则表达式
  5. -f:从文件中读取sed脚本
    示例:
    sed -e 's/old/new/g' file.txt
    sed -i 's/123/456/g' file.txt
    sed -n '2,5p' file.txt
    sed -r 's/ab{2,3}/xyz/g' file.txt
    sed -f script.sed file.txt

awk:

  1. -F:指定字段分隔符
  2. -f:从文件中读取awk脚本
  3. -v:定义变量并赋值
  4. -i:原地修改文件
  5. -W:设置宽度
    示例:
    awk -F, '{print $1}' file.csv
    awk -f script.awk file.txt
    awk -v var=10 '{print var, $2}' file.txt
    awk -i inplace '{print $1}' file.txt
    awk -W 20 '{print $1}' file.txt

printf:

  1. -v:将格式化后的字符串赋值给变量
  2. %d:以十进制整数格式输出
  3. %s:以字符串格式输出
  4. %f:以浮点数格式输出
  5. -e:支持转义字符
    示例:
    printf "The value is %d\n" 10
    printf -v var "The value is %d" 10
    printf "%s\t%d\n" "Name" 25
    printf "The result is %.2f\n" 3.14159
    printf "This is a\ttab\n"

二、
grep命令:
基本正则表达式:
基本正则表达式是grep命令默认使用的正则表达式,常见元字符:
.:匹配任意单个字符
*:匹配前面的字符零次或多次
^:匹配行的开头
$:匹配行的结尾
[...]:匹配括号内的任意一个字符
[^...]:匹配不在括号内的任意一个字符
\:转义字符,用于匹配特殊字符

扩展正则表达式:
扩展正则表达式需要使用-E选项启用,包括基本正则表达式的元字符,以及以下常见元字符:
+:匹配前面的字符一次或多次
?:匹配前面的字符零次或一次
|:逻辑或,匹配两边任意一边的内容
():分组,用于指定匹配的优先级
{n}:匹配前面的字符恰好n次
{n,}:匹配前面的字符至少n次
{n,m}:匹配前面的字符至少n次,至多m次

三、
Shell编程中的变量命名规则通常遵循以下规定:

  1. 变量名只能包含字母、数字和下划线,且不能以数字开头。
  2. 变量名区分大小写。
  3. 一般情况下,变量名建议使用大写字母,以便与普通命令和系统变量区分开来。
    变量使用方法:
    环境变量
    定义:环境变量是由Shell进程及其子进程共享的变量,可以在Shell脚本中使用。
    命名规则:通常使用大写字母命名,例如PATHHOME等。
    使用方法:可以通过export命令将局部变量导出为环境变量,例如export MY_VAR="value"

位置变量
定义:位置变量是在执行Shell脚本时由命令行参数传递给脚本的变量。
命名规则:通常使用数字表示,例如$1$2等,分别表示第一个位置变量、第二个位置变量,以此类推。
使用方法:可以在Shell脚本中通过$1$2等来引用传递进来的位置变量的值。

只读变量
定义:只读变量是在Shell脚本中被设置为只读的变量,其值不能被修改。
命名规则:遵循普通变量的命名规则。
使用方法:可以使用readonly命令将变量设置为只读,例如readonly MY_VAR

局部变量
定义:局部变量是在Shell脚本中定义的只在当前Shell进程中可见的变量。
命名规则:遵循普通变量的命名规则。
使用方法:可以直接在Shell脚本中定义,例如MY_VAR="value"

状态变量
定义:状态变量是Shell脚本中用于存储执行状态或结果的变量,例如返回值变量$?
命名规则:通常使用特定的符号或名称,例如$?表示上一个命令的返回值。
使用方法:可以直接在Shell脚本中使用,例如$?表示上一个命令的返回值。

四、
`#!/bin/bash

heads=30
legs=80

rabbits=$((($legs - 2*$heads) / 2))
chickens=$(($heads - $rabbits))

echo "鸡的数量为:$chickens"
echo "兔的数量为:$rabbits"`

五、
批量创建用户脚本:
`#!/bin/bash

for ((i=1; i<=100; i++))
do
username="user$i"
id $username &>/dev/null
if [ $? -eq 0 ]
then
echo "用户 $username 已存在"
else
useradd $username
echo "用户 $username 已添加"
fi
done
`
六、
Head: 磁盘上的读/写头,用于读取或写入数据到磁盘的表面。一个磁盘通常有多个磁头,每个磁头对应一个磁盘表面。
Track: 磁盘表面上的一个圆形轨道,磁头在读/写数据时沿着这些轨道移动。每个磁盘表面通常由多个同心圆组成,每个圆形轨道就是一个track。
Sector: 在磁盘上的一个扇形区域,用于存储数据。磁盘的每个track被划分为多个扇区,每个扇区可以存储固定大小的数据。
Cylinder: 多个磁盘盘面上相同轨道位置的集合,即多个盘面上的同一磁道组成一个圆柱体。在磁盘寻址中,某个cylinder上的所有磁道号相同。
七、
MBR:
MBR是一种传统的磁盘分区结构,用于在磁盘上定义分区和引导操作系统。
MBR结构包含一个主引导记录(Master Boot Record),它位于磁盘的第一个扇区(通常是扇区0),占用512字节。
MBR结构只支持最多4个主分区,或者3个主分区和一个扩展分区(extended partition)。
每个分区的信息被记录在分区表中,分区表的大小为64字节。
MBR结构有一些局限性,比如不支持超过2TB的磁盘。
GPT:
GPT是一种新的磁盘分区结构,引入了更多的特性和灵活性。
GPT结构使用GUID(Globally Unique Identifier)来标识分区,因此支持更多的分区数量。
每个磁盘上都有一个GPT头(GPT Header)和一个GPT尾(GPT Header),这两者分别位于磁盘的起始和结束位置。
GPT结构支持最多128个分区(取决于操作系统和工具的支持),并且支持超过2TB的大容量磁盘。
GPT结构还提供了更多的元数据备份,以增强数据的可靠性和安全性。
八、

  1. 分区管理相关命令和选项:
    fdisk: 用于对磁盘进行分区管理,包括创建、删除、显示分区等操作。常用选项包括-l(显示分区表)、-n(创建新分区)、-d(删除分区)等。
    parted: 提供了对磁盘进行分区管理的功能,支持GPT和MBR分区表。常用选项包括mklabel(创建新的磁盘标签)、mkpart(创建新的分区)等。

  2. 文件系统管理相关命令和选项:
    mkfs: 用于创建文件系统,常用选项包括-t(指定文件系统类型)、-c(检查坏块)等。
    tune2fs: 用于调整ext2、ext3和ext4文件系统的参数,常用选项包括-l(显示文件系统信息)、-m(设置保留块百分比)等。
    xfs_info: 用于显示XFS文件系统的信息。
    fsck: 用于检查和修复文件系统,常用选项包括-f(强制检查)、-y(自动回答“是”)等。
    mount: 用于挂载文件系统,常用选项包括-t(指定文件系统类型)、-o(指定挂载选项)等。
    umount: 用于卸载文件系统。

  3. SWAP管理相关命令和选项:
    swapon: 用于激活交换分区,常用选项包括-s(显示当前交换分区情况)等。
    swapoff: 用于关闭交换分区。

posted @ 2024-01-15 09:07  藏海花V5  阅读(20)  评论(0)    收藏  举报