提高命令行生产率

文章目录

  • 主要内容
    • 一.编写简单的Bash脚本
      • 1.创建并执行一个简单的Bash脚本(创建一个新的文本文件,并将其命名为first script.sh)
          • 代码如下(示例):
      • 2.向firstscript.sh脚本中添加更多命令,执行它并查看输出
          • 代码如下(示例):
      • 3.查看脚本生成的输出文件
          • 代码如下(示例):
  • 二.使用循环更高效地运行命令
      • 1.使用ssh和hostname命令将server a和server b的主机名显示到标准输出
          • 代码如下(示例):
      • 2.创建for循环以提高执行同一任务的效率
          • 代码如下(示例):
      • 3.创建shell脚本来执行同—for循环
          • 代码如下(示例):
      • 4.在/home/student/bin/print hostname.sh中创建shell脚本来执行for循环。
          • 代码如下(示例):
    • 三.使用正则表达式匹配命令输出中的文本
      • 1.使用sudo -i 命令,切换为root用户。
          • 代码如下(示例):
      • 2.postfix软件包已由start脚本安装好。使用grep命令查找postfix与postdrop组和用户的GID和UID。要减少grep命令的输出,则显示始于某个特定 Start Time的所有日志。
          • 代码如下(示例):
      • 3.修改正则表达式,以查找/var/log/maillog 文件中的前两条消息。(请注意,该搜索中没有使用脱字符号(^),因为搜索的并不是一行中的第一个字符)
          • 代码如下(示例):
      • 4.找到Postfix服务器queue目录的名称。要获取有关队列的信息,搜索/etc/postfix/main.cf配置文件。使用-i选项可忽略大小写区分。
          • 代码如下(示例):
      • 5.确认postfix将消息写入/var/log/messages。使用less命令加斜杠字符搜索文件。
          • 代码如下(示例):
      • 6.使用ps aux命令确认postfix服务器当前是否正在运行。通过与grep命令组合使用,可以减少ps aux的输出。
          • 代码如下(示例):
      • 7.确认qmgr、cleanup和pickup队列是否配置正确。对grep命令使用-e选项可匹配同一文件中的多个条目。相应的配置文件为/etc/postfix/master.cf。
          • 代码如下(示例):
  • 总结

主要内容

  1. 编写简单的Bash脚本
  2. 使用循环更高效地运行命令
  3. 使用正则表达式匹配命令输出中的文本

命令 说明
cat 显示文件内容
sh 命令行解释器
date 显示或设置系统的时间和日期
grep 在文件中搜索指定的模式或字符串
less 查看文件内容,它可以逐页显示文件的内容,并提供搜索、翻页等功能
ps aux 显示当前系统中运行的进程信息

一.编写简单的Bash脚本

  1. 一编写并执行一个简单的Bash脚本
  2. 将简单Bash脚本的输出重定向到文件

1.创建并执行一个简单的Bash脚本(创建一个新的文本文件,并将其命名为first script.sh)

代码如下(示例):
vim firstscript.sh //编辑内容
sh firstscript.sh //用sh命令执行脚本
cat output.txt //查看脚本生成的输出文件

提高命令行生产率_第1张图片

2.向firstscript.sh脚本中添加更多命令,执行它并查看输出

代码如下(示例):
vim firstscript.sh
chmod a+x firstscript.sh //使文件可执行
./firstscript.sh //执行脚本

提高命令行生产率_第2张图片

3.查看脚本生成的输出文件

代码如下(示例):
cat output.txt

提高命令行生产率_第3张图片


二.使用循环更高效地运行命令

1.创建for循环,用于迭代命令行和shell脚本中的项目列表

1.使用ssh和hostname命令将server a和server b的主机名显示到标准输出

代码如下(示例):
ssh student@servera hostname
ssh student@serverb hostname

在这里插入图片描述

2.创建for循环以提高执行同一任务的效率

代码如下(示例):
for HOST in servera serverb
 do
 ssh student@${HOST} hostname
 done

提高命令行生产率_第4张图片

3.创建shell脚本来执行同—for循环

代码如下(示例):
mkdir ~/bin
echo $PATH //验证

提高命令行生产率_第5张图片

4.在/home/student/bin/print hostname.sh中创建shell脚本来执行for循环。

代码如下(示例):
vim ~/bin/printhostname.sh
cat ~/bin/printhostname.sh //验证
chmod +x ~/bin/printhostname.sh  //可执行
printhostname.sh  //运行脚本

提高命令行生产率_第6张图片


三.使用正则表达式匹配命令输出中的文本

  1. 高效搜索日志文件和配置文件中的文本

1.使用sudo -i 命令,切换为root用户。

代码如下(示例):
sudo -i

在这里插入图片描述

2.postfix软件包已由start脚本安装好。使用grep命令查找postfix与postdrop组和用户的GID和UID。要减少grep命令的输出,则显示始于某个特定 Start Time的所有日志。

代码如下(示例):
date //确定当前时间
grep  '^Jul 26 20:5.*GID' /var/log/secure

3.修改正则表达式,以查找/var/log/maillog 文件中的前两条消息。(请注意,该搜索中没有使用脱字符号(^),因为搜索的并不是一行中的第一个字符)

代码如下(示例):
grep  'postfix' /var/log/maillog | head -n 2

提高命令行生产率_第7张图片

4.找到Postfix服务器queue目录的名称。要获取有关队列的信息,搜索/etc/postfix/main.cf配置文件。使用-i选项可忽略大小写区分。

代码如下(示例):
grep -i 'queue' /etc/postfix/main.cf

提高命令行生产率_第8张图片

5.确认postfix将消息写入/var/log/messages。使用less命令加斜杠字符搜索文件。

代码如下(示例):
less /var/log/messages

在这里插入图片描述

6.使用ps aux命令确认postfix服务器当前是否正在运行。通过与grep命令组合使用,可以减少ps aux的输出。

代码如下(示例):
ps aux | grep postfix

在这里插入图片描述

7.确认qmgr、cleanup和pickup队列是否配置正确。对grep命令使用-e选项可匹配同一文件中的多个条目。相应的配置文件为/etc/postfix/master.cf。

代码如下(示例):
grep -e qmgr -e pickup -e cleanup /etc/postfix/master.cf

提高命令行生产率_第9张图片


总结

以上是今天要讲的的内容,学到了编写简单的Bash脚本;使用循环更高效地运行命令;使用正则表达式匹配命令输出中的文本。

你可能感兴趣的:(RH,Linux,linux,运维)