Shell编程基础(重定向???)

931 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情

Shell脚本概述

  1. 将要执行的命令按顺序保存到一个文本文件
  2. 给文件执行权限
  3. 结合各种shell控制语句完成各种复杂的操作

shell作用

shell又叫命令解释器,介于内核和用户之间,由于电脑只能识别二进制语言,所以shell接受到用户指令后会自动翻译并传递给内核,内核调度硬件资源完成指令。

常用shell 存放在/etc/shells

image.png

  • bash:(/bin/bash)是生产环境中用的最多的,基准于GNU的框架下发展出的shell
  • nologin:这个shell可以让用户无法登录
  • sh:以已经被bash替换

shell脚本的作用

1. 自动化运维

2. 减轻管理员工作量

3. 批量化重复操作可以编写脚本结合计划任务自动周期运行

4. 提高处理文本文件的速度

5. 避免配置出差

shell脚本的构成

  • 脚本声明(解释器)第一行为#!/bin/bash,表示此行以下的代码语句是通过/bin/bash解释执行(有的省略是因为linux默认/bin/bash),但如果用python代码

  • 注释信息“#”开头,运行脚本时不会被执行

  • 可执行语句:比如echo

注:shell脚本的后缀名是 .sh

chmod + x 给脚本运行权限

运行脚本的方式

  • 使用绝对路径运行
  • 使用相对路径运行
  • 指定shell程序运行(sh,bash)
  • source运行(会在当前环境中执行)
  • . + 脚本运行(会在当前环境中执行)

重定向与管道符

标准输入与输出

  • 标准输出:从该设备接收用户输入的数据
  • 标准输出:通过该设备向用户输出数据
  • 标准错误:通过该设备报告执行出错信息

image.png

重定向操作

image.png

image.png

管道符

管道符的作用是连接两个命令,将第一个命令的标准输出作为第二个命令的标准输入。 同一行命令中可以使用多个管道符。

  • linux下的管道符使用"竖杠"表示:| 。

  • 格式:命令A | 命令B

image.png

如果管道符号右边的命令一定是需要执行对象的命令,则管道符号后面要有xargs命令来传递执行参数