关于shell的理解

关于shell的理解:

知乎链接:https://www.zhihu.com/question/35382632/answer/65331452
shell: 中文名,壳。区别于kernel,核。Linux的核叫做kernel。
壳有很多中,有命令行的:bash 、sh 、csh 、ksh;有图形化的: KDE、GNOME、CDE、 XFCE等。

Windows 9X系列的核是DOS,图形化的壳 叫 Windows Explorer (用来管理windows的文件)
,命令行壳叫command。 从Windows XP 开始,Windows的核叫做Windows NT (Windows New
Technology),图形化 壳叫Windows Explorer,命令行壳有command、cmd.exe。Windows NT
是针对图形化壳设计出来的核,更加稳定。

实际上不管是命令行shell,还是图形化shell,都是访问操作系统中的某个具有一定功能、可以处理具体事务的文件(二进制文件,此类文件经常被称作工具,在windows下的exe文件,或者是linux的/bin或者/usr/bin目录下的文件)、或包含一定内容的文件(文本文件),通常都是通过文件名访问。

**可以把shell理解为命令解释器。**而 shell 的作用就是解释某条命令对应的文件的文件路径,供用户使用并返回使用结果。这也就是为何有 shell 脚本一说。脚本语言是种解释型语言,不能被编译为二进制代码。就如 shell ,它的作用是将命令解释成对应的文件名,然后通过文件名调用文件。对于图形化 shell 是通过鼠标的点击来访问文件的,但实际也是通过文件名,因为每个文件都有包含文件名的完整路径。

百度百科,脚本语言的定义: 脚本语言又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。

查看当前ubuntu支持的shell类型

cat /etc/shells

/bin/sh
/bin/dash
/bin/bash
/bin/rbash

查看当前使用的shell类型

echo $SHELL
/bin/bash
在ubuntu下创建一个可以执行的shell脚本

本质上,shell脚本就是一个文本文档,可以不包含任何后缀,不过为了方便,我们一般以.sh作为后缀。
但是,你把shell脚本文件命名为hhh.txt,而不是hhh.sh,也是可以被执行的。
执行的方式:

  1. 在命令行,输入sh+文件名,或者bash+文件名,sh xxx.sh or bash xxx.sh
    因为在ubuntu系统中,sh和bash文件的路径已经被添加到系统环境变量中,所以可以直接执行sh或者是bash命令。
  2. 给文件添加可执行的权限,sudo chmod +x 文件名,然后在终端输入./文件名 即可。(需要在shell脚本首行添加#!/bin/sh,表明这个文档是sh脚本)
sudo chmod +x xxx.sh
./xxx.sh
  1. source命令
    source(或点)命令通常用于重新执行刚修改的初始化文档,该文档可以没有可执行权限。
    通常用来修改环境变量: source ~/.bashrc

你可能感兴趣的:(ubuntu使用中遇到的问题)