当前位置:网站首页>Shell编程规范与变量
Shell编程规范与变量
2022-07-28 14:48:00 【眼下一颗柠檬】
文章目录
一、Shell脚本概述
1.什么是Shell
Shell是一个命令解释器,它在系统的最外层,负责直接与用户进行对话,把用户的输入解释给操作系统,并处理各种各样的操作系统的输出结果,输出到屏幕反馈给用户。这种对话方式可是交互也可以是非交互式的,我们所输入的命令计算机是不是别的,这时就需要一种程序来帮助我们进行翻译,变成计算机能识别的二进制程序,同时又把计算机生成的结果返回给我们。
2.Shell的作用
Linux系统中的Shell是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个"命令解释器"的角色,负责接收用户输入的操作指令并进行解释,将需要执行的操作传递给内核执行,并输出执行结果。
常见的Shell解释器程序有很多种,使用不同的Shell时,其内部指令、命令行提示符等方面会存在一些区别。
通过/etc/shells文件可以了解当前系统所支持的Shell脚本种类
/bin/sh #是bash命令的软连接
/bin/bash #基准于GNU的框架下发展出的Shell
/usr/bin/sh #已经被bash所替换
/usr/bin/bash #centos和redhat系统默认使用bash shell(解释器)
/bin/txsh #csh的增强版,与csh完全兼容整合了csh,提供更多的功能
/bin/csh #已经被/bin/bash所替换(整合C shell,提供更多的功能)
3.Shell脚本能干什么
- 自动化完成软件的安装部署,如安装部署LAMP架构服务
- 自动化完成系统的管理,如批量添加用户
- 自动化完成备份,如数据库定时备份
- 自动化分析处理,如网站访问量
4.Shell脚本使用场景
- 重复性操作
- 交互性任务
- 批量事务处理
- 服务运行状态监控
- 定时任务执行
二、Shell脚本的构成
1.脚本声明(解释器):若第一行为"#!/bin/bash",表示此行一下的代码语句是通过/bin/bash程序来解释执行,#!/bin/bash为默认解释器。还有其他类型的解释器,比如:#!/usr/bin/python、#!/usr/bin/expect
2.注释信息:以"#"开头的语句表示为注释信息,被注释的语句再运行脚本时不会被执行
3.可执行语句:比如echo命令,用于输出" "之间的字符串


三、Shell脚本的执行
1.方法一:指定路径
指定路径的命令,要求文件必须有x权限
指定绝对路径
指定相对路径
2.方法二:指定Shell
指定Shell来解释脚本,不要求文件必须有x权限
sh 脚本路径
soucre 脚本路径
bash 脚本路径
四、重定向与管道操作
1.管道操作"|"
将管道符号"|"左侧的命令输出的结果,作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道
2.重定向
2.1交互式硬件设备
| 类型 | 设备文件 | 文件描述编号 | 默认设备 |
|---|---|---|---|
| 标准输入 | /dev/stdin | 0 | 键盘 |
| 标准输出 | /dev/stdout | 1 | 显示器 |
| 标准错误输出 | /dev/stderr | 2 | 显示器 |
2.2重定向操作

重定向输出
覆盖原文件内容
重定向输入

错误输出
总结
边栏推荐
- 一波骚操作解决Laya场景编辑器报错问题
- Software architecture and design (IV) -- data flow architecture
- samba服务器搭建指南
- Pytorch - optimize model parameters
- AS如何不区分大小写去进行智能提示
- Learn RX programming from me -- concat
- 取组合数问题
- Software architecture and design (VII) -- interactive architecture
- FTP文件传输协议
- Among the three "difficult and miscellaneous diseases" of machine learning, causal learning is the breakthrough | Liu Li, Chongqing University
猜你喜欢

Learn about the native application management platform of rainbow cloud

热敏电阻PT100,NTC转0-10V/4-20mA转换器

ECCV 2022 | ssp: a new idea of small sample tasks with self-supporting matching

FTP file transfer protocol

如何有效进行回顾会议(上)?

软件架构与设计(六)-----层次结构体

5-channel di/do relay output remote IO acquisition module Modbus tcp/ibf95

About the pictures inserted in the word document, only the following part is displayed

About how Simulink generates model coverage reports

Getting started with crawlers (1) -- requests (1)
随机推荐
如何快速接入统一的认证鉴权体系
Docker implements redis cluster mode hash slot partition for 100 million level data storage
Deutsche Telekom denied strengthening its cooperation with Huawei and said it had reduced its cooperation with Huawei in the past three years
融云实时社区解决方案
DNS域名解析协议
软件架构与设计(四)-----数据流架构
String (3)
Framework定制系列(一)-----SystemUI NavigationBar导航栏上滑返回Launcher
Rust 入门指南(rustup, cargo)
记项目 常用js方法
How to configure Samba server
Transformation principle of voltage and frequency
22. Realization of message processing task
全国211院校考研信息汇总整理
File and directory operations (5)
在OBS上进行H265推流
800V high voltage system
记录一下 clearfix 清除浮动
Framework customization series (I) -- systemui NavigationBar slide back to launcher on the navigation bar
虚拟机之NAT模式下设置静态IP