协会网站建设公司建网站流程
web/
2025/10/2 18:12:25/
文章来源:
协会网站建设,公司建网站流程,常德论坛官网,一站式网站设计【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器#xff08;bash#xff09;参数 5、find、grep、xargs、sort、… 【运维工程师学习三】shell编程 Shell程序分类1、系统中sh命令是bash的软链接2、Shell脚本标准格式之文件后缀3、Shell脚本标准格式之文件内容首行4、Shell脚本的运行方法一、作为可执行程序解释 二、作为解释器bash参数 5、find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk的常用命令1. find用于在文件系统中搜索文件或目录。2. grep用于在文件或输入中查找特定模式。3. xargs用于从标准输入中读取参数并将其传递给其他命令。4. sort用于对文本进行排序。5. uniq用于从排序后的输入中筛选出唯一的行。6. tr用于字符替换和删除。7. cut用于从文本中提取指定字段。8. paste用于将多个文件的内容合并为一行。9. wc用于计算文件或文本的行数、字数和字符数。10. sed用于流式文本编辑。11. awk用于处理结构化文本数据。 Shell程序分类
Shell程序有很多 如Korn shell(ksh)、Bourne Again shell(bash)、C shell(包括csh与tcsh)等等 各主要操作系统下缺省的shell
AIX下是Korn ShellSolaris缺省的是Bourne shellFreeBSD缺省的是C shellHP-UX缺省的是POSIX shellLinux缺省的是Bourne Again shell
1、系统中sh命令是bash的软链接
shbashfile /usr/bin/sh
sh --version
/usr/bin/bash --versionwhereis sh但这种在命令行中的命令是即时输出结果的不能重复使用重复输入可以重复使用但如果是要多行输入的命令则极不方便要想方便重复使用同一个功能就把多行的命令放到一个标准格式的文件中这就是shell编程了。 所以所谓shell编程就是一行或多行不同功能的shell命令的集合这个shell命令集合的文件叫shell scriptshell脚本。
2、Shell脚本标准格式之文件后缀
Shell脚本文件一般是以.sh为后缀如下图显示的文件fin是系统上默认存在的shell脚本文件
find /-name *.sh3、Shell脚本标准格式之文件内容首行
首行通常是#!/bin/sh或#!/bin/bash或#!/usr/bin/sh或#!/usr/bin/bash开头或者你还会看到其它的路径或者全部有之。该行的意思是它告诉系统这个脚本需要什么解释器即是什么shell本系统是bash来执行。 从第二行开始凡是以#开头的行说明该行均不会被执行多用来作注释、说明。
注意是以行为单位的。
到不是#开头的行开始才是有效的命令、代码。 因篇幅原因本截图省了后面很多内容请自行在系统上查看该文件完整内容。
4、Shell脚本的运行方法
一、作为可执行程序
#!/bin/sh
ip addr | grep -v 127.0.0.1 | grep -v inet6 | grep inet | awk {print $2} | cut -d / -f 1解释
这段Shell脚本的作用是获取本机的IPv4地址并将其输出。
让我来一步一步解释这段脚本的具体内容 #!/bin/sh这是一个shebang也称为hashbang用于指定脚本使用哪个解释器来执行。在这里#!/bin/sh表示脚本将使用默认的shell解释器来执行通常是Bash或类似的shell。 ip addr这个命令用于获取关于网络接口的信息包括IP地址和其他网络配置。 grep -v 127.0.0.1这个命令用于过滤掉IP地址中包含 127.0.0.1 的行即过滤掉环回地址。 grep -v inet6这个命令用于过滤掉IP地址中包含 inet6 的行即过滤掉IPv6地址。 grep inet这个命令用于筛选出包含 inetIPv4地址的行。 awk {print $2}这个命令使用awk来提取每一行的第二个字段IPv4地址并进行打印输出。 cut -d / -f 1这个命令使用cut来根据 / 进行分隔提取分隔后的第一个字段IPv4地址的主机部分并进行打印输出。
综合起来这个脚本的作用是获取本机的IPv4地址除了本地回环地址和IPv6地址并将其输出。
请注意这段脚本在Linux环境下执行可能需要确保你的系统中已经安装了所需的命令如ip、grep、awk、cut。
将上面内容保存了/root目录下的showip.sh文件中并cd到/root目录下。
chmod x ./showip.sh #使脚本具有执行权限
./showip.sh #执行脚本二、作为解释器bash参数
本系统的解释器shell是bash而我们知道sh是bash的软连接类似于windows下的快捷方式则最常用的方法就是“sh 脚本文件名”。
后面两种只是故意演示出来而已。请使用上面的方法。理由是输入少因而效率高。我们知道sh是命令而命令后面跟的就叫该命令参数。所以本方法叫“作为解释器的参数”运行脚本。而该方法运行脚本会无视脚本内的首行即首行写与不写都没关系。为什么 因为直接调用了解释器
5、find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk的常用命令
当涉及到文本处理和数据操作时下面是一些find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed和awk的常用命令
1. find用于在文件系统中搜索文件或目录。
find /path/to/directory -name filename按照文件名在指定目录下搜索文件。find /path/to/directory -type f找出指定目录下的所有文件。find /path/to/directory -type d找出指定目录下的所有目录。 2. grep用于在文件或输入中查找特定模式。
grep pattern file.txt在文件中搜索包含指定模式的行。cat file.txt | grep pattern在输入流中搜索包含指定模式的行。
3. xargs用于从标准输入中读取参数并将其传递给其他命令。 find /path/to/directory -name *.txt | xargs rm找到所有以 .txt 结尾的文件并删除它们。 find /path/to/directory -name *.txt | xargs cat找到所有以 .txt 结尾的文件并查看它们。
4. sort用于对文本进行排序。 sort file.txt对文件中的行按字母顺序进行排序。 sort -n file.txt对文件中的行按数值大小进行排序。
5. uniq用于从排序后的输入中筛选出唯一的行。 sort file.txt | uniq对文件中的行排序并消除重复行。 sort file.txt | uniq -c计算每个唯一行的出现次数。
6. tr用于字符替换和删除。
cat file.txt | tr a b将输入中的所有字母 ‘a’ 替换为 ‘b’。cat file.txt | tr -d a删除输入中的所有字母 ‘a’。
7. cut用于从文本中提取指定字段。
cut -d , -f 1,3 file.csv以逗号为分隔符提取CSV文件中的第1和第3个字段。
8. paste用于将多个文件的内容合并为一行。
paste file1.txt file2.txt将两个文件的内容并排合并。
9. wc用于计算文件或文本的行数、字数和字符数。
wc -l file.txt计算文件中的行数。echo Hello, World! | wc -w计算输入内容的字数。
10. sed用于流式文本编辑。
sed s/pattern/replacement/g file.txt将文件中的所有匹配 pattern 的内容替换为 replacement。sed /pattern/d file.txt从文件中删除包含 pattern 的行。
11. awk用于处理结构化文本数据。
awk {print $1} file.txt打印文件中每一行的第一个字段。awk -F , {print NF} file.csv计算文件中每一行的字段数。
以上只是这些命令中的一些常见用法示例它们具有更多强大和灵活的功能。你可以查阅命令的文档或在终端上运行 man command 来了解更多详细的用法和选项。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/85748.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!