shell学习教程(超详细完整)

为了方便以后工作使用和复习,吐血整理记录一下学习shell脚本的笔记,看这篇文章需要对linux系统熟悉,希望对大家有所帮助!

文章目录

一、什么是shell?

shell是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。

为什么要学习和使用shell?

Shell属于内置的脚本,程序开发的效率非常高,依赖于功能强大的命令可以迅速地完成开发任务(批处理)语法简单,代码写起来比较轻松,简单易学


二、shell的分类

cat /etc/shells
在linux中有很多类型的shell,不同的shell具备不同的功能,shell还决定了脚本中函数的语法,Linux中默认的shell是 / b a s h / b a s h ( 重 点 ) color{#FF3030}{/bash/bash(重点)} /bash/bash(重点),流行的shell有ash、bash、ksh、csh、zsh等,不同的shell都有自己的特点以及用途。

编写规范:

#!/bin/bash				[指定告知系统当前这个脚本要使用的shell解释器]
Shell相关指令

文件命名规范:

文件名.sh .sh是linux下bash shell 的默认后缀

Bash 常用快捷键

快捷键

作用

ctrl+A

把光标移动到命令行开头。如果我们输入的命令过长,想要把光标移动到命令行开头时使用。

ctrl+E

把光标移动到命令行结尾。

ctrl+C

强制终止当前的命令。

ctrl+L

清屏,相当于clear命令。

ctrl+U

删除或剪切光标之前的命令。我输入了一行很长的命令,不用使用退格键一个一个字符的删除,使用这个快捷键会更加方便

ctrl+K

删除或剪切光标之后的内容。

ctrl+Y

粘贴ctrl+U或ctul+K剪切的内容。

ctrl+R

在历史命令中搜索,按下ctrl+R之后,就会出现搜索界面,只要输入搜索内容,就会从历史命令中搜索。

ctrl+D

退出当前终端。

ctrl+Z

暂停,并放入后台。这个快捷键牵扯工作管理的内容,我们在系统管理章节详细介绍。

ctrl+S

暂停屏幕输出。

ctrl+Q

恢复屏幕输出。

输入输出重定向

linux 的标准输入与输出

设备

设备名

文件描述符

类型

键盘

/dev/stdin

0

标准输入

显示器

/dev/stdout

1

标准输出

显示器

/dev/stderr

2

标准错误输出

输入重定向

输入重定向:是指不使用系统提供的标准输入端口,而进行重新的指定。换言之,输入重定向就是不使用标准输入端口输入文件,而是使用指定的文件作为标准输入设备。(重定向简单理解就是使用 “<”符来修改标准输入设备)

类型

符号(语法)

功能

标准输入

命令<文件1

命令把文件1的内容作为标准输入设备

标识符限定输入

命令<<标识符

命令把标准输入中读入内容,直到遇到“标识符”分解符为止

输入输出重定向(同时使用)

命令< 文件1 >文件2

命令把文件1的内容作为标准输入,把文件2作为标准输出。

输出重定向

输出重定向:(通俗的讲,重定向输出就是把要输出的文件信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏),在linux中,默认的标准输出设备是控制台(或称为显示器),用户输出的信息默认情况下都会显示到控制台

&表示全部文件,文件不管对错,1表示标准输出文件,2表示标准错误输出。

类型

符号

作用

标住输出重定向

命令 > 文件

以覆盖方式,把命令的正确输出内容输出到指定的文件或设备当中

标住输出重定向

命令 >> 文件

以追加方式,把命令的正确输出内容输出到指定的文件或设备当中

标准错误输出重定向

错误命令2 > 文件

以覆盖方式,把命令的错误输出输出到指定的文件或设备当中

标准错误输出重定向

错误命令2 >> 文件

以追加方式,把命令的错误输出输出到指定的文件或设备当中

正确输出和错误输出同时保存

命令 > 文件 2>&1

以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。

正确输出和错误输出同时保存

命令 >> 文件 2>&1

以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

正确输出和错误输出同时保存

命令 &> 文件

以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。

正确输出和错误输出同时保存

命令 &>> 文件

以追加的方式,把正确输出和错误输出都保存到同一个文件当中。

正确输出和错误输出同时保存

命令 >> 文件1 2>>文件2

把正确的输出追加到文件1中,把错误的输出追加到文件2中。

/dev/null 文件

如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到**/dev/null**中

[root@localhost ~]$  command > dev/null
多命令顺序执行

多命令执行符

作用

格式

命令1 ;命令2

多个命令顺序执行,命令之间没有任何逻辑联系

&&

命令1 && 命令2

当命令1正确执行( = 0 ) , 则 命 令 2 才 会 执 行 当 命 令 1 执 行 不 正 确 ( =0),则命令2才会执行 当命令1执行不正确( =0),则命令2才会执行当命令1执行不正确(≠0),则命令2不会执行

ll

命令1 || 命令2

当命令1执行不正确( ≠ 0 ) , 则 命 令 2 才 会 执 行 当 命 令 1 正 确 执 行 ( ≠0),则命令2才会执行当命令1正确执行( =0),则命令2才会执行当命令1正确执行(=0),则命令2不会执行

shell脚本的执行

[root@localhost ~]$ vim test.sh
#!/bin/bash
echo “hello world”

两种方式执行shell脚本

第一种:给文件增加执行权限

[root@localhost ~]$ chmod u+x test.sh
[root@localhost ~]$ ./test.sh  #绝对路径或相对路径执行

第二种(了解):通过Bash调用执行脚本

[root@localhost ~]$ bash test.sh

三、shell变量

什么是变量?
在一个脚本周期内,其值可以发生改变的量就是变量。

1. 变量的命名规则:

在定义变量时,有一些规则需要遵守:

  1. 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。

  2. 等号左右两侧不能有空格,可以使用下划线“_”,变量的值如果有空格,需要使用单引号或双引号包括。如:“test=“hello world!””。其中双引号括起来的内容“$”,“(”和反引号都拥有特殊含义,而单引号括起来的内容都是普通字符。

  3. 不能使用标点符号,不能使用bash里的关键字(可用help命令查看保留关键字)。

  4. 环境变量建议大写,便于区分

  5. 如果需要增加变量的值,那么可以进行变量值的叠加。不过变量需要用双引号包含" 变 量 名 " 或 用 变量名"或用 "{变量名}包含变量名。

    [root@localhost ~]$ test=123
    [root@localhost ~]$ test=" t e s t " 456 [ r o o t @ l o c a l h o s t   ] test"456 [root@localhost ~] test"456[

  • 0
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值