Shell基础——概述、echo输出命令、第一个脚本、脚本执行

Shell基础大纲:

  • Shell概述
  • Shell脚本的执行方式
  • Bash的基本功能
  • Bash的变量
  • Bash的运算符
  • 环境变量配置文件

一、Shell概述

  • Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
  • Shell还是一个功能相当强大的编程语言,易编写、易调用,灵活性强。Shell是解释执行的脚本语言,在Shell中可以直接调用Linux系统命令。所有的系统命令都可以直接在脚本中直接调用。

Linux支持的Shell的基本信息如下:

  • 命令名称:Shell
  • 所在路径:/etc/shells(即etc下的Shells)

在这里插入图片描述

二、Shell脚本的执行方式

1,echo输出命令

格式:[root@localhost ~]# echo [选项] [输出内容]

选项:

  • -e:支持反斜杠控制的字符转换;

反斜杠的相关用法:

控制字符 作用
\\ 输出反斜杠本身
\ 输出警告音
\b 退格键,也就是想左删除键
\c 取消输出行末的换行符。与“ -n ”选项一样
\e ESCAPE键
\f 换页符
\n 换行符
\r 回车键
\t 制表符,也就是Tab键
\v 垂直制表符
\0nnn 按照八进制ASCII码表输出字符。其中0位狮子零,nnn是三位八进制数
\xhh 按照十六进制ASCII码表输出字符。其中hh是两位十六进制数

举例说明:

  • 删除左侧字符:
[root@root ~]# echo "abc"
abc
[root@root ~]# echo -e "ab\bc"
ac
[root@root ~]# 

-制表符与换行符

[root@root ~]# echo -e "a\tb\tc\nd\te\tf"
a	b	c
d	e	f
  • 按照十六进制ASCII码也同样可以输出:
[root@root ~]# echo -e "\x61\t\x62\t\x63\n\x64\t\x65\t\x66"
a	b	c
d	e	f

不加选项的echo输出。直接加所要输出的内容。:

[root@root 桌面]# echo "hello world"
hello world
[root@root 桌面]# echo 'hello world'
hello world
[root@root 桌面]# 
[root@root 桌面]# echo 'hello world!'
hello world!
[root@root 桌面]# echo "hello world!"
bash: !": event not found

注意:

  • 如果输出的内容有空格,就要加""(双引号),如果没有空格可以不用双引号括起来。
  • 感叹号(!)在Shell当中是有特殊作用的。如果输出的内容里面有感叹号(!),就必须用单引号将感叹号的作用去掉,否则会报错。
  • 输出颜色
[root@root ~]# echo -e "\e[1;31m abcd \e[0m"
 abcd 

命令格式:[root@root ~]# echo -e "\e[1;31m abcd \e[0m"

  • -e ——>是特殊符号,支持反斜杠控制的字符转换;
  • \e[1 ——>开启颜色输出;
  • \e[0m ——>结束颜色输出;
  • abcd ——>表示输出的字符;
  • 31m ——>表示输出的颜色;
    #30#=黑色,31m=红色,32m=绿色,33m=黄色
    #34#=蓝色,35m=洋红,36m=青色,37m=白色

2、第一个脚本

[root@localhost sh]# vi hello.sh
#!/bin/Bash
#The first program
# Author: shenchao  (E-mail: [email protected])

echo -e "Mr. Shen chao is the most honest am in LampBroher"
  • vi hello.sh ——> 一般Linux是不区分扩展名的。若将脚本的扩展名携程.sh时,这个的作用是告诉系统,写得这个是Bash脚本。若用的不是vi编译器,而使用的是vim编译器那么会使用颜色来帮助提示编译。因此,建议将脚本写成.sh;
  • #!/bin/Bash ——> 一般在Linux中以#开始表示的是注释,但是这句话不是注释。而是标志,标称我以下写得都是Shell脚本。若脚本比较简单时,这句话不写可以的,但是若Shell脚本比较复杂嵌套其他语句,没有标称其他语句为Shell,程序运行就会报错。换句话说,这句话不能省略;
  • #The first program ——> 表示注射;

3、脚本执行

  • 赋予执行权限,直接运行;
  • 通过Bash调用执行脚本;
(1)赋予执行权限,直接运行;
  • 第一步给脚本赋予执行权限,例如:chmod 755 hello.sh ——>基于所用用户权限
  • 第二步通过绝对路径或相对路径的方式来调用例如:./hello.sh

注意:在Linux当中所有的执行文件,不管是我们写得Shell脚本,还是二进制执行命令,要想执行都必须用绝对路径或相对路径才能执行的。

脚本运行如下:

[root@root ~]# chmod 755 hello.sh
[root@root ~]# ll
总用量 104
-rwxr-xr-x. 1 root root    78 7月   5 10:13 hello.sh
zhaoliying is the most honest man in sisters
[root@root ~]# ls
anaconda-ks.cfg  install.log         公共的  视频  文档  音乐
hello.sh         install.log.syslog  模板    图片  下载  桌面
(2)通过Bash调用执行脚本;

命令格式:[root@root ~]# bash hello.sh

  • 通过Bash来执行脚本时,甚至这个执行权限我们都不用赋予,就可以直接去执行。
  • 意思为:通过这个bash来解释后面的这个脚本。但是我们习惯的还是第一种方式来运行;
[root@root ~]# bash hello.sh
zhaoliying is the most honest man in sisters

猜你喜欢

转载自blog.csdn.net/weixin_45116657/article/details/94628193