第9章 Shell基础(1)_Shell简介和脚本执行方式
1. Shell概述
1.1 Shell简介
(1)Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
(2)Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。
1.2 Shell的分类
(1)Bourne Shell:从1979年起Unix就开始使用Bourne Shell,其主文件名为sh。
(2)C Shell:主要在BSD版的Unix系统中使用,其语法和C语言相类似而得名。
(3)Shell的两种主要语法类型有Bourne和C,这两种语法彼此不兼容。Bourne家族主要包括sh、ksh、Bash、psh、zsh;C家族主要包括:csh、tcsh。
(4)Bash: Bash与sh兼容,现在使用的Linux就是使用Bash作为用户的基本Shell。
1.3 Linux支持的Shell
(1)/etc/shells
2. Shell脚本的执行方式
2.1 echo输出命令
(1)命令格式:echo [选项] [输出内容] (选项“-e”支持反斜线控制的字符转换)
控制字符 |
作用 |
\\ |
输出\本身 |
\a |
输出警告音 |
\b |
退格键,也就是向左删除一个字符 |
\c |
取消输出行末的换行符。和“-n”选项一致 |
\e |
Escape键 |
\f |
换页符 |
\n |
换行符 |
\r |
回车键 |
\t |
制表符,也就是Tab键 |
\v |
垂直制表符 |
\0nnn |
按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数 |
\xhh |
按照十六进制ASCII码表输出字符。其中hh是两位十六进制数 |
(2)应用举例:
①# echo 'hello world!' //但不能写成# echo "hello world!" 。因为!有特殊的作用
②演示“-e”选项的作用
[root@localhost ~]# echo "abc"
abc
[root@localhost ~]# echo "ab\bc"
ab\bc
[root@localhost ~]# echo -e "ab\bc"
ac
[root@localhost ~]# echo -e "a\tb\tc\nd\te\tf"
a b c
d e f
[root@localhost ~]# echo -e "\x61\t\x62\t\x63"
a b c
③输出颜色:#echo -e "\e[1;31m abcd \e[0m" //\e[1;表示开启颜色输出,\e[0m表示结束颜色输出
#30m=黑色,31m=红色,32m=绿色,33m=黄色
#34m=蓝色,35m=洋红,36m=青色,37m=白色
2.2 第1个脚本程序
(1)脚本程序
(2)脚本执行
①直接运行:
#chmod 755 hello.sh
#./hello.sh //使用绝对路径或相对路径
②通用Bash调用执行脚本:
#bash hello.sh //无须为hello.sh赋执行权限。表示通过bash程序来解释hello.sh文件。
(3)处理Windows和Unix换行符不同的问题:
①Windows中文件换行符为^M$,而Linux下为$,这会导致Windows下编写的bash文件在Linux下不能被正确读取。可以用#cat –A hello.sh查看出来。
②解决方案:#dos2unix hello.sh (命令的安装:#yum –y install dos2unix, unix2dos则进行相反的操作)
第9章 Shell基础(1)_Shell简介和脚本执行方式的更多相关文章
- centos shell编程4【分发系统】 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要同步的文件 expect文件分发系统 expect自动发送密钥脚本 Linux脚本执行方式 第三十八节课
centos shell编程4[分发系统] 服务器标准化 mkpasswd 生成密码的工具 expect讲解 expect传递参数 expect自动同步文件 expect指定host和要 ...
- shell基础、变量、相关脚本
目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...
- shell脚本编程之变量简介及脚本执行过程
脚本变量简介 变量类型:字符型.数值型.真.假:事先确定数据的存放格式和长度: 变量存放在内存空间: 编译型语言,没有额外的处理逻辑,属于强类型语言: 脚本型语言,可以有解释器控制:所以,可以是弱类型 ...
- 『SHELL』--SHELL脚本执行方式(转)
Shell脚本的执行方式: 注明:wd代表“脚本保存的目录” 1.fork 语法:/wd/shell.sh fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个 ...
- Shell系列(2)- 脚本执行方式
创建shell脚本 [root@localhost sh]# vim hello.sh shell脚本必须用.sh,同时方便文件管理 #!/bin/bash:shell文件第一行必须是这个,声明这个 ...
- 第9章 Shell基础(4)_Bash的运算符及环境变量配置文件
5. Bash的运算符 5.1 数值运算与运算符 5.1.1 declare 声明变量类型:#declare [+/-] [选项] 变量名 选项 说明 - 给变量设定类型属性 + 取消变量的类型属性 ...
- 第9章 Shell基础(3)_Bash的变量
4. Bash的变量 4.1 用户自定义变量 4.1.1 什么是变量 变量是计算机的内存单元,其中存放的值可以改变.当Shell脚本需要保存一些信息时,如一个文件名或是一个数字,就把它存放在一个变量中 ...
- 第9章 Shell基础(2)_Bash基本功能
3. Bash的基本功能 3.1 历史命令与命令补全 (1)历史命令:#history [选项] [历史命令保存文件] ①选项:-c:清空历史命令: -w:把缓存中的历史命令写入文件~/.bash_h ...
- linux笔记:shell基础-概述和脚本执行方式
什么是shell: linux使用的默认shell是Bash: shell脚本的后缀名为.sh,shell脚本的第一行#!/bin/bash 不是注释,而是标识这是一个shell脚本,因为linux并 ...
随机推荐
- ASP.NET Core管道深度剖析(3):管道是如何处理HTTP请求的?
我们知道ASP.NET Core请求处理管道由一个服务器和一组有序的中间件组成,所以从总体设计来讲是非常简单的,但是就具体的实现来说,由于其中涉及很多对象的交互,我想很少人能够地把它弄清楚.为了让读者 ...
- Django:手把手带你入门
一.开发环境: Python:2.7:PyCharm 4 二.Django的安装: 打开Pycharm --> 新建项目--> 看图操作--> 自动安装Django环境 三.创建第一 ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- 原创:MD5 32位加密软件
网站后台数据库切勿使用明文保存密码,否则一旦黑客拿下你的Webshell,后果不堪设想. 网站后台密码加密大多数采用的就是MD5算法加密.今天给大家送一个本人用c#简单编写的MD5 32位加密程序,虽 ...
- 2.JAVA之GUI编程布局
布局管理器 容器中的组件排放方式,就是布局 常见的布局管理器: **************************************************** 1.FlowLayout(流式 ...
- 数百个 HTML5 例子学习 HT 图形组件 – WebGL 3D 篇
<数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇>一文让读者了解了 HT的 2D 拓扑图组件使用,本文将对 HT 的 3D 功能做个综合性的介绍,以便初学者可快速上手使用 HT ...
- WebComponent魔法堂:深究Custom Element 之 标准构建
前言 通过<WebComponent魔法堂:深究Custom Element 之 面向痛点编程>,我们明白到其实Custom Element并不是什么新东西,我们甚至可以在IE5.5上定 ...
- Marshal.Copy将指针拷贝给数组
lpStatuss是一个UNITSTATUS*的指针类型实例,并包含SensorDust字段 //定义一个数组类型 byte[] SensorDust = new byte[30] //将指针类型拷贝 ...
- Sqlserver调用api
虽然使用sqlserver去调用服务接口的情况比较少,但也可以去了解下对应的使用情况 一.首先要开启组件的配置 sp_configure ; GO RECONFIGURE; GO sp_configu ...
- Autofac 组件、服务、自动装配 《第二篇》
一.组件 创建出来的对象需要从组件中来获取,组件的创建有如下4种(延续第一篇的Demo,仅仅变动所贴出的代码)方式: 1.类型创建RegisterType AutoFac能够通过反射检查一个类型,选择 ...