专栏首页Linux基础入门(15)Shell概述及脚本执行方式

(15)Shell概述及脚本执行方式

一、Shell是什么?

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来 启动、挂起、停止甚至是编写一些程序。

Shell还是一个功能相当强大的编程语言,易编写,易调试,灵活性较强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。

我们通过外层应用命令或者敲入的代码,内核是不能识别的,因为计算机识别的是0101的机器语言,所以代码与机器语言之间就需要有转换,需要将我们的命令转成机器语言,同时还要将返回的结果从机器语言翻译成命令。这就是Shell的作用。

后面的推文我们将对Bash这个Shell进行讲解。

二、脚本执行方式

1.echo输出命令

语法:echo [选项] [输出内容]

echo -e 支持反斜线控制的字符转换

下表为控制符的作用:

控制字符

作用

\\

输出\本身

\a

输出警告音

\b

退格键,也就是向左删除键

\c

取消输出行末的换行符。

\e

ESCAPE键

\f

换页符

\n

换行符

\r

回车键

\t

制表符,也就是Tab键

\v

垂直制表符

\0nnn

按照八进制ASCII码表输出字符。其中0为数字零,nnn是三位八进制数

\xhh

按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

例1:简单的输出

例2:echo -e 部分示例

①\b:退格键,也就是向左删除键

②\t:制表符,也就是Tab键;\n:换行符

例3:输出带有颜色的字符

PS:\e[1:表示开启颜色输出;\e[0m:表示结束颜色输出

31m=红色,30m=黑色,31m=红色,32m=绿色,33m=黄色,34m=蓝色,35m=洋红,36m=青色,37m=白色

2.脚本演示(可左右滑动)

[lhh98330@laptop ~]$vim hello.sh   #Linux中最好把脚本的后缀名改成.sh
#以下为hello.sh的内容
#!/bin/bash        #不是注释,是标识符,说明以下为shell脚本,必须加
#The first program  #注释
#Author:yuzai      #注释
echo -e "Welcome to learn Linux"

脚本执行

#赋予执行权限,直接运行,PS:所有程序必须用绝对路径或者相对路径执行
[root@laptop ~]#chmod 755 hello.sh
[root@laptop sh]#/root/sh/hello.sh   #绝对路径
[root@laptop sh]#./hello.sh      #相对路径
#通过Bash调用执行脚本,不需要执行权限就可以执行
[root@laptop ~]# bash hello.sh

PS:如果从Windows里面拷贝一个脚本到Linux,虽然有的时候格式一样但是还是会报错,这便是因为两个系统中脚本的格式不同,想要运行,此时用到一个命令进行转换:dos2unix [文件名],转换后,Linux就可以执行了。

END

本文分享自微信公众号 - 生信real(hh98330),作者:鱼仔real

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • (32)条件判断

    生信real
  • (28)字符截取命令cut、printf

    PS:cut的局限性:当文件的分隔符是空格,不是Tab,我们就无法利用cut进行提取了,此时我们需要用到后面将要讲到的awk命令来进行提取。

    生信real
  • (4)Linux权限管理命令chmod

    第一类:所有者(只有一个),用"u"表示; 第二类:所属组,用"g"表示; 第三类:其他人,用"o"表示。

    生信real
  • RHCE培训笔记-6(下)

    弥补原有的基本权限的不足:chown , chmod , chgrp 一个文件只有一个所有者和一个所属组

    Elapse
  • Linux 程序编译过程的来龙去脉

    大家肯定都知道计算机程序设计语言通常分为机器语言、汇编语言和高级语言三类。高级语言需要通过翻译成机器语言才能执行,而翻译的方式分为两种,一种是编译型,另一种是解...

    刘盼
  • 新鲜出炉的混合云实战秘籍,快来抢先看!

    港湾人儿
  • 0792-5.16.2-如何通过Hive跨集群迁移Kudu表

    在日常使用中你的Kudu 集群版本非常低或者部署在其他非CDH集群中,迁移起来非常麻烦。本文主要介绍如何通过Hive 进行跨集群迁移Kudu 表

    Fayson
  • TypeScript设计模式之组合、享元

    看看用TypeScript怎样实现常见的设计模式,顺便复习一下。 学模式最重要的不是记UML,而是知道什么模式可以解决什么样的问题,在做项目时碰到问题可以想到...

    用户1147588
  • Android开发获取当前系统日期和时间功能示例

    本文实例讲述了Android开发获取当前系统日期和时间功能。分享给大家供大家参考,具体如下:

    砸漏
  • 用例关系 和 UML类关系

    用例图使用户 与开发人员交流的一种重要的方式,是对用户需求的一种描述。开发人员从用户的角度整体上理解系统的功能。

    全栈自学社区

扫码关注云+社区

领取腾讯云代金券