第二周运维课后作业
一、
vim使用总结:
-
打开文件
要在vim中打开一个文件,只需在终端中输入以下命令:
vim filename -
退出vim
按下Esc键,然后输入冒号(😃,然后输入以下命令:
保存并退出:wq(或者按下Shift + ZZ)
不保存并退出:q!
强制退出,不保存:q -
移动光标
上下左右箭头键:移动光标
h:向左移动
j:向下移动
k:向上移动
l:向右移动
0:移动到行首
$:移动到行尾
gg:移动到文件开头
G:移动到文件末尾 -
插入和编辑文本
i:在当前光标处插入文本
a:在当前光标之后插入文本
o:在当前行之后插入新行
x:删除当前光标所在处的字符
dd:删除当前行
yy:复制当前行
p:粘贴复制的内容 -
搜索和替换
/pattern:向下搜索指定的模式
?pattern:向上搜索指定的模式
:%s/old/new/g:替换所有匹配的文本 -
撤销和重做
u:撤销上一步操作
Ctrl + r:重做上一步撤销的操作 -
保存和退出
:w:保存文件
:q:退出
:wq:保存并退出 -
分屏和多窗口
:split:水平分屏
:vsplit:垂直分屏
Ctrl + w + w:在窗口之间切换
:q:关闭当前窗口
grep:
- -i:忽略大小写
- -r:递归搜索子目录
- -n:显示匹配行的行号
- -v:显示不匹配的行
- -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:
- -e:允许对输入应用多条sed命令
- -i:直接修改文件内容
- -n:只显示经过sed处理的行
- -r:支持扩展正则表达式
- -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:
- -F:指定字段分隔符
- -f:从文件中读取awk脚本
- -v:定义变量并赋值
- -i:原地修改文件
- -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:
- -v:将格式化后的字符串赋值给变量
- %d:以十进制整数格式输出
- %s:以字符串格式输出
- %f:以浮点数格式输出
- -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编程中的变量命名规则通常遵循以下规定:
- 变量名只能包含字母、数字和下划线,且不能以数字开头。
- 变量名区分大小写。
- 一般情况下,变量名建议使用大写字母,以便与普通命令和系统变量区分开来。
变量使用方法:
环境变量
定义:环境变量是由Shell进程及其子进程共享的变量,可以在Shell脚本中使用。
命名规则:通常使用大写字母命名,例如PATH、HOME等。
使用方法:可以通过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结构还提供了更多的元数据备份,以增强数据的可靠性和安全性。
八、
-
分区管理相关命令和选项:
fdisk: 用于对磁盘进行分区管理,包括创建、删除、显示分区等操作。常用选项包括-l(显示分区表)、-n(创建新分区)、-d(删除分区)等。
parted: 提供了对磁盘进行分区管理的功能,支持GPT和MBR分区表。常用选项包括mklabel(创建新的磁盘标签)、mkpart(创建新的分区)等。 -
文件系统管理相关命令和选项:
mkfs: 用于创建文件系统,常用选项包括-t(指定文件系统类型)、-c(检查坏块)等。
tune2fs: 用于调整ext2、ext3和ext4文件系统的参数,常用选项包括-l(显示文件系统信息)、-m(设置保留块百分比)等。
xfs_info: 用于显示XFS文件系统的信息。
fsck: 用于检查和修复文件系统,常用选项包括-f(强制检查)、-y(自动回答“是”)等。
mount: 用于挂载文件系统,常用选项包括-t(指定文件系统类型)、-o(指定挂载选项)等。
umount: 用于卸载文件系统。 -
SWAP管理相关命令和选项:
swapon: 用于激活交换分区,常用选项包括-s(显示当前交换分区情况)等。
swapoff: 用于关闭交换分区。
浙公网安备 33010602011771号