shell的作用

        Shell是操作系统中的一种命令行解释器,它是用户与计算机硬件之间的接口。Shell可以解释并执行用户输入的命令,同时也可以调用其他程序和脚本来完成特定的任务。Shell可以直接与操作系统内核交互,通过执行系统调用来操作文件、进程和网络等系统资源。

        Shell作为操作系统的命令行解释器,提供了用户与计算机之间的交互界面,可以执行命令,控制环境,通过管道和重定向实现数据传输,同时也提供了脚本编程的能力。

常见的shell解释器 

linux中查看本机shell种类

cat /etc/shells

 

  • bash:基于GUN的框架下发展的shell
  • csh:类似C语言的shell
  • tcsh:整合了csh 提供了更多功能
  • sh:已经被bash替换
  • nologin:让用户无法登录

bash(/bin/bash)是目前大多数 Linux 版本采用的默认 shell。

bash的特性:
  1. 命令自动补全:在输入命令时,按下Tab键会自动补全命令或路径。

  2. 命令历史记录:可以使用上下箭头键来浏览以前执行过的命令。

  3. 通配符扩展:可以使用通配符来匹配文件名。

  4. 管道:可以使用管道符号(|)将多个命令连接起来,让前一个命令的输出作为后一个命令的输入。

  5. 变量和环境变量:可以定义和使用变量,还可以设置和修改环境变量。

  6. 脚本编写:可以编写脚本文件,用来自动执行一系列命令。

  7. 多重重定向:可以使用重定向符号(> 和 <)来重定向命令的输入和输出。

  8. 条件判断和循环:可以使用条件语句来进行条件判断,还可以使用循环语句进行循环操作。

  9. 函数定义:可以定义和使用函数,可以将一系列命令封装在一个函数中,方便调用和复用。

  10. 文件和目录操作:可以对文件和目录进行创建、删除、移动、复制等操作。

shell 脚本的用途和应用场景

用途:

  • 自动化常用命令
  • 执行系统管理和故障排除
  • 创建简单的应用程序
  • 处理文本或文件
应用场景:
  • 重复性操作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行
shell脚本的编写规范和执行方法

脚本命名规范:基本名称,以.bash为结尾。

shell 脚本创建:

vim demo.bash

-------------------------

#!/bin/bash
#this is a shell test!
echo hello.Shell!


相对路径的执行方式:

//为文件增加执行权限

chmod +x demo.bash
//相对路径方式进行执行

./demo.bash

绝对路径的执行方式:

/root/demo.bash

使用解释器名称直接使用脚本

bash demo.bash

“.”和source 启动脚本

source demo.bash 或  . demo.bash

错误排查

bash -n 脚本名称 //只检查语法错误,不执行脚本。定位的错误行不清晰。

bash -x 脚本名称 //显示每个命令的执行过程,方便发现逻辑错误。

shell中的括号

小括号 ():

子shell:用于创建子shell,也称为子进程,子shell中的命令在一个子进程中执行,不会影响当前shell的环 境。

(command1; command2)

命令替换:可以使用小括号执行命令替换,将命令的输出嵌套到一个变量中。

variable=$(command)

中括号 [] :

条件测试: 中括号用于条件测试,可以用于字符串比较、数值比较等。

if [ condition ]; then

        

fi

数组: 中括号也用于定义数组。

my_array=["value1" "value2" "value3"]

大括号 {} :

代码块: 大括号可以用于创建代码块,将一组命令组合在一起。

{

        command1

        command2

}

扩展: 大括号还可以用于进行扩展,生成一系列字符串。

echo {1..5}

文件重定向: 大括号还可以用于文件重定向。

{ command1; command2; } > output.txt

如有错误给孩子提醒一下,感谢观看!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐