一、设置主机名称
1、通过修改系统文件来修改主机名称
[root@sakura1 桌面]# vim /etc/hostname
sakura
/etc/hostname
:Linux 系统中存储主机名的配置文件。- 修改完文件后,在当前的shell中是不生效的,需要关闭当前shell后重新开启才能看到效果。
2、通过命令来更改主机名称
[root@sakura1 桌面]# hostnamectl hostname sakura
- 修改后立即生效,无需重启shell
二、简单处理字符
seq的基本语法:
seq [选项] 终止值
seq [选项] 起始值 终止值
seq [选项] 起始值 步长 终止值
seq常用选项详解
选项 | 说明 | 示例 | 输出 |
---|---|---|---|
无选项 | 默认生成整数序列 | seq 3 |
|
-f, --format=格式 | 指定输出格式(支持 printf 样式) | seq -f "%03g" 3 |
|
-s, --separator=分隔符 | 指定分隔符(默认是换行符 \n ) | seq -s " " 3 | 1 2 3 |
-w, --equal-width | 等宽输出(自动补零) | seq -w 8 10 |
|
无 | 指定步长 | seq 1 2 10 |
|
printf的基本语法:
printf 格式字符串 [参数1 参数2 ...]
- 格式字符串:包含普通文本和格式化占位符(如
%s
、%d
)。 - 参数:依次替换格式字符串中的占位符。
1、printf常用格式说明符
说明符 | 含义 | 示例 | 输出 |
---|---|---|---|
%s | 字符串 | printf "%s" "hello" | hello |
%d | 十进制整数 | printf "%d" 255 | 255 |
%f | 浮点数 | printf "%f" 3.14 | 3.140000 |
%x | 十六进制(小写) | printf "%x" 255 | ff |
%X | 十六进制(大写) | printf "%X" 255 | FF |
%o | 八进制 | printf "%o" 64 | 100 |
%c | 单个字符 | printf "%c" 65 | A (ASCII 65) |
%% | 百分号 | printf "%%" | % |
2、printf常用修饰符
修饰符 | 功能 | 示例 | 输出 |
---|---|---|---|
%Ns | 最小宽度N(不足空格填充) | printf "%5s" "hi" | hi |
%-Ns | 左对齐字符串,并确保输出宽度至少为 5 个字符。若字符串长度不足,会在右侧补空格;若超过 5 个字符,则完整显示。 | printf "%-5s" "hi" | hi |
%0Nd | 数字补零 | printf "%05d" 42 | 00042 |
%.Mf | 浮点数保留M位小数 | printf "%.2f" 3.14159 | 3.14 |
%x.yf | 总宽度x,小数位y | printf "%8.3f" 3.14 | 3.140 |
\n | 换行 | printf "Line1\nLine2" | 两行文本 |
\t | 制表符 | printf "A\tB" | A B |
\\ | 反斜杠 | printf "\\" | \ |
echo的基本语法:
echo [选项] [字符串...]
- 若不指定选项,
echo
会将所有参数连接并输出,参数间用空格分隔。
1、echo的常用选项(GNU 扩展版)
选项 | 说明 | 示例 | 输出 |
---|---|---|---|
-n | 不输出结尾的换行符 | echo -n "Hello"; echo " World" | Hello World |
-e | 启用反斜杠转义解释 | echo -e "Line1\nLine2" | Line1 Line2 |
-E | 禁用反斜杠转义解释(默认) | echo -E "Line1\nLine2" | Line1\nLine2 |
--help | 显示帮助信息 | echo --help | 帮助文档 |
--version | 显示版本信息 | echo --version | 版本信息 |
2、转义字符(需配合 -e
使用)
转义序列 | 含义 | 示例 | 输出 |
---|---|---|---|
\n | 换行 | echo -e "A\nB" | A B |
\t | 水平制表符 | echo -e "A\tB" | A B |
\\ | 反斜杠 | echo -e "\\" | \ |
\a | 警报(响铃) | echo -e "\a" | 终端响铃 |
\b | 退格 | echo -e "123\b4" | 124 |
\r | 回车 | echo -e "Old\rNew" | New |
\v | 垂直制表符 | echo -e "A\vB" | A B |
\c | 禁止继续输出 | echo -e "Hello\c World" | Hello |
\0NNN | 八进制值字符 | echo -e "\0101" | A (ASCII 65) |
\xHH | 十六进制值字符 | echo -e "\x41" | A |
1. 打印连续数字
(1)连续打印3个数字
(2)指定打印格式
(3)设定打印步长
2. 反向打印文件内容
3. 打印字符
(1)使用printf命令
打印字符
指定格式打印字符
打印百分号
打印整数、浮点数
(2)使用echo命令
默认会换行打印字符
不换行打印字符
解析转义字符
4. 使用 sort 命令对内容进行排序
sort
命令常用选项速查表
选项 | 长选项 | 功能描述 | 使用示例 |
---|---|---|---|
基础排序 | |||
-r | --reverse | 逆序排序(降序) | sort -r file.txt |
-n | --numeric-sort | 按数值大小排序 | sort -n numbers.txt |
-h | --human-numeric-sort | 按人类可读数值排序(2K, 1G) | du -h | sort -h |
-f | --ignore-case | 忽略大小写 | sort -f mixed_case.txt |
字段处理 | |||
-k POS | --key=KEYDEF | 按指定字段/列排序 (POS格式: 开始[.字符],结束[.字符] ) | sort -k 2,2 data.txt sort -k 3n,3 data.txt |
-t SEP | --field-separator=SEP | 指定字段分隔符 | sort -t',' -k2n data.csv |
输出控制 | |||
-u | --unique | 排序并去重 | sort -u duplicates.txt |
-o FILE | --output=FILE | 结果输出到文件(支持原地排序) | sort file.txt -o file.txt |
-c | --check | 检查文件是否已排序 | sort -c sorted.txt |
测试文件:
[root@sakura 桌面]# vim master
3
5
4
52
64
12
4
2
5
4
3
52
按数值大小排序
按数值大小逆序排列
按数值大小逆序排列并且去除重复的
然后修改测试文件成下列代码这样:
[root@sakura 桌面]# vim master
3:5
5:33
4:5
52:42
64:56
12:24
4:42
2:11
5:09
4:2
3:42
52:11
使用冒号 :
作为字段分隔符,以第 2 个字段作为排序键并且按数值排序 。
5. 使用 uniq 命令对 sort 命令输出的字符冗余部分进行处理
uniq
命令常用选项速查表
选项 | 功能描述 | 使用示例 |
---|---|---|
-c | 在行首显示重复次数 | uniq -c file.txt sort file.txt | uniq -c |
-d | 仅显示重复行(每组重复行显示一次) | uniq -d file.txt |
-D | 显示所有重复行 | uniq -D file.txt |
-u | 仅显示唯一行(不重复的行) | uniq -u file.txt |
uniq的关键说明:
必需的预处理:uniq只能对有序的文件进行处理,所以uniq通常要与sort一起使用
uniq
只能检测相邻的重复行,通常需要先排序:
sort file.txt | uniq [选项]
测试文件:
[root@sakura 桌面]# vim tec9
2
4
5
2
42
56
5
6
1
24
使用sort按数值排序,uniq起到在行首显示重复次数的作用
仅显示重复的行(每组重复行显示一次)
显示唯一的行
6. 使用 cut 命令对字符进行截取
cut
命令核心选项速查表
选项 | 长选项 | 功能描述 | 使用示例 |
---|---|---|---|
-d | --delimiter | 指定字段分隔符(默认是TAB) | cut -d ',' -f1 file.csv |
-f | --fields | 选择指定的字段(列) | cut -d':' -f1,3-5 /etc/passwd |
-c | --characters | 选择指定的字符位置(按字符计数) (数字用法同 -f) | cut -c1-5,10-15 file.txt |
如图:/etc/passwd里面的信息被冒号:分割成了7列。
下图 cut 命令详解
-f 1代表第一列。
-f 1,5 代表第一列和第五列。
-f 1-5 代表第一列到第五列
-f 5- 代表从第五列开始到最后一列,因为5-后面没跟数字。
-f -7 代表从第一列开始到第七列。
下图的测试文件以如下代码为准:
[root@sakura 桌面]# vim passwd
passwd
对文件内字符的截取
四、xargs 命令
xargs
命令核心功能
作用:将标准输入(stdin)转换为命令行参数,能够处理管道或者标准输入并将其转换成特定命令
典型场景:与 find
, grep
, rm
等命令结合使用
xargs的常用选项速查表
选项 | 长选项 | 功能描述 | 使用示例 |
---|---|---|---|
-n | --max-args | 每次执行命令使用的最大参数数量 | echo {1..10} | xargs -n 2 echo |
-I | --replace | 定义替换字符串,用于参数插入 | find . -name "*.txt" | xargs -I {} mv {} ~/backup |
-p | --interactive | 交互模式,执行前确认 | ls | xargs -p rm |
-t | --verbose | 详细模式,打印要执行的命令 | find . -name "*.log" | xargs -t rm |
-d | --delimiter | 指定自定义输入分隔符(默认是空格/换行) | echo "a,b,c" | xargs -d, -n 1 echo |
-r | --no-run-if-empty | 输入为空时不执行命令 | find /tmp -empty | xargs -r rm |
1、xargs命令的作用
2、多行输入单行输出
测试文件如下:
[root@sakura media]# vim /media/lcf
a a a a a a
b b b b b b
c c c c c c
d d d d d d
e e e e e e
f f f f f f