文章目录
注:转载请标明原文出处链接:https://xiongyiming.blog.csdn.net/article/details/105886969
1 概述
1.1 Shell是什么
计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,而让各种硬件设备各司其职且又能协同运行的东西就是系统内核。Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。一般不建议直接去编辑内核中的参数,而是让用户通过基于系统调用接口开发出的程序或服务来管理计算机,如下图所示:
Shell是一个命令行解释器,它为用户提供一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以用Shell来启动、挂起、停止、编程等操作。
Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell还是一个功能强大的编程语言、编写方面、调试方便、灵活性强。
Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
注: 用户不能直接访问内核,需要通过Shell访问内核。
1.2 Shell的分类
Shell 编程跟 JavaScript、php 编程类似,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了。
Linux 的 Shell 种类众多,主要类型有:Bourne Shell 、Bourne Again Shell和C Shell。
(1) Bourne Shell :从1979起,Unix系统就开始使用Bourne Shell,Bourne Shell的主文件名为sh。Bourne Shell家族主要包括 sh、ksh、Bash、psh、zsh。
(2) C Shell:主要是在BSD版的Unix系统中使用,其语法和C语言类似。C Shell家族主要包括 csh、tcsh。
(3) Bash(Bourne Again SHell) 与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。Bash 也是大多数Linux 系统默认的 Shell。
2 Shell脚本
2.1 echo输出命令
echo命令用于在终端输出字符串或者变量提取后的值。echo命令格式为:
echo [选项] [字符串 或 $变量]
其中选项参数及作用:
-e 表示支持反斜杠控制的字符控制,其中控制字符有:
例如:
(1) 输出指定字符串 Hello World
(2) 换行控制字符
(3) 输出提取变量值SHELL的值
(4) 输出字符更改颜色,输入命令
echo -e “\e[1;31m Hello World \e[0m”
其中输出字符颜色常见的有:
30m
表示黑色;31m
表示红色;32m
表示绿色;33m
表示黄色;34m
表示蓝色;35m
表示洋红色;36m
表示青色;37m
表示白色;
2.2 第一个Shell脚本
建立脚本文件,然后写入程序,然后终端调用脚本文件。
(1) 第一步: 输入命令:vi hello.sh
建立hello.sh脚本文件
(2) 第二步: 写程序,然后保存退出。程序如下所示:
#! /bin/bash
#The first program
echo -e “\e[1;31m Hello World \e[0m”
注意事项:
- 符号
#!
是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行(使用哪一种 Shell来执行程序)。 - 在一般情况下并不区分 Bourne Shell 和 Bourne Again Shell,所以,
#!/bin/bash
也可以改为#!/bin/sh
。
(3) 第三步: 脚本执行。有两种执行方法:
方法1:赋予执行权限,直接运行,命令如下:
chmod 755 hello.sh
./hello.sh
方法2:通过Bash调用执行脚本,命令如下:
bash hello.sh
脚本执行结果如下图所示:
也可以通过 vim hello.sh
建立脚本,一般常用vim方式建立脚本。
(1) 写脚本
(2) 执行脚本
2.3 vi/vim 编辑、保存、退出快捷键
(1) 编辑脚本
vi 脚本名
或 vim脚本名
进入脚本,按 i 键
或 insert键
开始编辑脚本
(2) 退出脚本编辑模式
脚本写完后想退出脚本需要先按 ESC键,然后由三种方式退出编辑模式:
- 键盘输入: :
q!
表示不保存文件,然后退出; - 键盘输入: :
w
表示保存文件,不退出; - 键盘输入: :
wq
表示保存文件,然后退出;