没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
32页
shell编程 创建shell脚本 ①创建第一个shell脚本②运行shell脚本 shell 基础语法 ①变量②变量分类与数组③shell传递参数④基本运算符 shell流程控制语法 ①if else条件判断②for循环③while循环④until循环⑤case语句⑥跳出循环 shell函数①定义函数②函数参数 实践练习
资源推荐
资源详情
资源评论
Shell 编程
shell 入门简介
1、shell 是操作系统的最外层,是一个用户跟操作系统之间交互的命令解释器。
2、大多数 linux 默认的 shell 命令解释器是 bash(/bin/bash)
3、shell 独立于内核,是链接内核和应用程序的桥梁,通俗来讲 shell 是内核周围的外壳
什么是
shell
脚本
shell 脚本是 shell 命令组成的文件。换一种说法,shell 脚本是利用 shell 的功能所写的一个程序,这个程序使用纯文本文
件将一些 shell 语法和指令写在里面,让使用者很容易的就能够一个操作执行多个命令。
shell
的用途
1、shell 可以合并编程语言以控制进程和文件,以及启动和控制其他程序
2、shell 能够减少大量的重复输入和交互操作,能够进行批量的处理和自动化完成维护,减轻管理层的负担
shell 编程有哪些注意事项
1、shell 命名: Shell 脚本名称命名一般为英文、大写、小写,后缀以.sh 结尾
2、不能使用特殊符号、空格。shell 脚本变量不能以数字、特殊符号开头,可以使用下划线—,但不能用破折号-
linux 中的命令大致可分为两类,内部命令和外部命令
内部命令:也称 shell 内嵌命令;
外部命令:存放在一个文件中,使用时需要去文件中查找,这些文件被定义在$PATH
[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
type 命令可以查看命令类型,以区别是内部命令还是外部命令
(1)查看 shell 内嵌命令 cd,命令如下
type cd
type 命令很稀奇的指出了 cd 命令是一个 shell 内嵌命令
(2)查看 shell 非内嵌命令 ps,命令如下
type ps
type 命令很稀奇的指出了 ps 命令的类型和 ps 所在的目录
vi/vim
的使用
基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last
line mode)。 这三种模式的作用分别是:
命令模式:
用户刚刚启动 vi/vim,便进入了命令模式。
此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符。比如我们此时按下 i,并不会输入一个字符,i 被当作了一个
命令。
以下是常用的几个命令:
·i 切换到输入模式,以输入字符。
·x 删除当前光标所在处的字符。
·: 切换到底线命令模式,以在最底一行输入命令。
若想要编辑文本:启动 Vim,进入了命令模式,按下 i,切换到输入模式。
命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。
输入模式:
在命令模式下按下 i 就进入了输入模式。
在输入模式中,可以使用以下按键:
·字符按键以及 Shift 组合,输入字符
·ENTER,回车键,换行
·BACK SPACE,退格键,删除光标前一个字符
·DEL,删除键,删除光标后一个字符
·方向键,在文本中移动光标
·HOME/END,移动光标到行首/行尾
·Page Up/Page Down,上/下翻页
·Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
·ESC,退出输入模式,切换到命令模式
提醒
在一般情况下并不需要区分内嵌命令和非内嵌命令,但由于内嵌命令是 shell 中的一部分工具,
不需要外部程序就可执行,也不用创建子进程,所以效率更高,执行速度更快。而非内嵌命令被执
行时,会创建出一个子进程。这种操作被称为衍生,会消耗更多的资源。
在 shell 中,当一个命令既有内嵌命令,也有非内嵌命令时,默认使用的是内嵌命令,如果需
要使用它的非内嵌命令,需要使用命令的绝对路径来直接调用它。
底线命令模式:
在命令模式下按下:(英文冒号)就进入了底线命令模式。
底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
在底线命令模式中,基本的命令有(已经省略了冒号):
·q 退出程序
·w 保存文件
按 ESC 键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
创建第一个 Shell 脚本
(3)打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 firstSH.sh ,扩
展名为 sh(sh 代表 shell),扩展名并不影响脚本执行,编辑和运行步骤如下:
a. 创建并打开文件 firstSH.sh ,命令如下:
b. 打开文件后,输入以下内容:
#!/bin/sh
ls
在内容输入完毕后,保存并退出,第一个 shell 脚本就创建好了。
运行
Shell
脚本
在工作中,运行 Shell 脚本有 3 种执行脚本的方式,具体如下:
1.作为可执行程序
将上面的代码保存为 firstSH.sh,并切换到相应目录。
(1)使脚本具有执行权限,命令如下:
(2)执行脚本命令如下:
2. 作为解释器参数
这种运行方式时直接运行解释器,其参数就是 shell 脚本的文件名,命令如下:
3. 使用 sourc 命令执行
这种运行方式是将文件中的内容直接读取交给 shell 执行,命令如下:
注意
Shell 脚本的第一行要写#!/bin/Sh,它指明了脚本中命令的解释器,否则在世
界运行脚本时,将不能识别内嵌命令。
cd 切换工作目录
当 Linux 终端(命令行)打开的时候,会默认以用户的 HOME 目录作为当前的工作目录
我们可以通过 cd 命令,更改当前所在的工作目录。
cd 命令来自英文:Change Directory
语法:
cd 命令无需选项,只有参数,表示要切换到哪个目录下
cd 命令直接执行,不写参数,表示回到用户的 HOME 目录
注意
在执行脚本时一定要写成./firstSH.sh,而不是 firstSH.sh,运行其他二进制的程序也一样,
直接写 firstSH.sh,Linux 系统回去 PATH 里寻找有没有叫 firstSH.sh 的,PATH 里只有/bin /sbin
/user/bin 和/user/sbin 等,当前目录通常不在 PATH 里,所以写成 firstSH.sh 会找不到命令,要
用./firstSH.sh 告诉系统就在当前目录中找。
提醒
这种方式运行的脚本,不需要在第一行指定解释器信息。
为什么大多数 shell 脚本都包含 #! /bin/bash 在 shell 脚本的开头?
“#!/bin/bash”这一行被称为 shebang 行,在某些文献中,它被称为 hashbang 行,这是因为它以两个字符 hash '#' 和 bang '!' 开头。
这三种执行脚本的方式是有细微差别的,如果不能区分它们的不同,可能会出现执行的
结果和预想不同的情况。他们的
对比与区别
如下:
Shell
基础语法
(1)变量名的命名规则
A. 命名只能使用英文字母、数字和下划线,首个字符不能以数字开头
B. 中间不能有空格,可以使用下划线(_)
C. 不能使用标点符号
D. 不能使用 sh 里的关键字(可用 help 命令查看保留关键字)
(1)当 shell 脚本具有可执行权限时,用 sh filename 与./filename 执行脚本是没有区别的。./filename 是因为当
前目录没有在 PATH 中,所有“.”是用来表示当前目录的。
(2)sh filename 重新建立一个子 shell,在子 shell 中执行脚本里面的语句,该子 shell 继承父 shell 的环境变量,
但子 shell 新建的、改变的变量不会被带回父 shell,除非使用 export。
(3)source filename:这个命令其实只是简单的读取脚本里面的语句依次在当前 shell 里面执行,没有建立新的子
shell。那么脚本里面所有新建、改变变量的语句都会保存在当前 shell 里面。
有效的 shell 变量名,如 A、LD_LIBRARY_PATH、_var 与_var2
无效的变量命名,如?var=123 与 user*name=a
注意
变量名和等号之间不能有空格
剩余31页未读,继续阅读
资源评论
想不出好的昵称-
- 粉丝: 3
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功