We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Shell 是一个由c语言编写的应用程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言
Shell
c
它连接了用户和Linux内核,让用户能够更加高效、安全、低成本地使用 Linux 内核
Linux
其本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、微信等其它软件没有什么区别,特殊的地方就是开机立马启动,并呈现在用户面前
主要作用是接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,同样能够调用和组织其他的应用程序,相当于一个领导者的身份,如下图:
那么shell脚本就是多个 Shell 命令的组合并通过 if 条件分支控制或循环来组合运算,实现一些复杂功能,文件后缀名为.sh
shell
if
.sh
常用的 ls 命令,它本身也是一个 Shell 脚本,通过执行这个 Shell 脚本可以列举当前目录下的文件列表,如下创建一个hello.sh脚本
ls
hello.sh
#!/bin/bash # 执行的命令主体 ls echo "hello world"
#!/bin/bash :指定脚本要使用的 Shell 类型为 Bash
ls、echo: 脚本文件的内容,表明我们执行 hello.sh 脚本时会列举出当前目录的文件列表并且会向控制台打印 `hello world
执行方式为.hello.zsh
.hello.zsh
Linux 的 Shell 种类众多,只要能给用户提供命令行环境的程序,常见的有:
Bourne Shell(sh),是目前所有 Shell 的祖先,被安装在几乎所有发源于 Unix 的操作系统上
Bourne Again shell(bash) ,是 sh 的一个进阶版本,比 sh 更优秀, bash 是目前大多数 Linux 发行版以及 macOS 操作系统的默认 Shell
C Shell(csh) ,它的语法类似 C 语言
TENEX C Shell(tcsh) ,它是 csh 的优化版本
Korn shell(ksh) ,一般在收费的 Unix 版本上比较多见
Z Shell(zsh) ,它是一种比较新近的 Shell ,集 bash 、 ksh 和 tcsh 各家之大成
关于 Shell 的几个常见命令:
Shell 并不是简单的堆砌命令,我们还可以在 Shell 中编程,这和使用 C++、C#、Java、Python 等常见的编程语言并没有什么两样。
C++
C#
Java
Python
Shell 虽然没有 C++、Java、Python 等强大,但也支持了基本的编程元素,例如:
下面以bash为例简单了解一下shell的基本使用
bash
Bash 没有数据类型的概念,所有的变量值都是字符串,可以保存一个数字、一个字符、一个字符串等等
Bash
同时无需提前声明变量,给变量赋值会直接创建变量
访问变量的语法形式为:${var} 和 $var 。
${var}
$var
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,所以推荐加花括号。
word="hello" echo ${word} # Output: hello
跟其它程序设计语言一样,Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式
[[ ]]
跟其他语言一样,使用if...else进行表达,如果中括号里的表达式为真,那么then和fi之间的代码会被执行,如果则else和fi之间的代码会被执行
if...else
then
fi
else
if [[ 2 -ne 1 ]]; then echo "true" else echo "false" fi # Output: true
fi标志着条件代码块的结束
bash 函数定义语法如下:
[ function ] funname [()] { action; [return int;] }
The text was updated successfully, but these errors were encountered:
No branches or pull requests
一、是什么
Shell
是一个由c
语言编写的应用程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言它连接了用户和
Linux
内核,让用户能够更加高效、安全、低成本地使用Linux
内核其本身并不是内核的一部分,它只是站在内核的基础上编写的一个应用程序,它和 QQ、微信等其它软件没有什么区别,特殊的地方就是开机立马启动,并呈现在用户面前
主要作用是接收用户输入的命令,并对命令进行处理,处理完毕后再将结果反馈给用户,比如输出到显示器、写入到文件等,同样能够调用和组织其他的应用程序,相当于一个领导者的身份,如下图:
那么
shell
脚本就是多个Shell
命令的组合并通过if
条件分支控制或循环来组合运算,实现一些复杂功能,文件后缀名为.sh
常用的
ls
命令,它本身也是一个Shell
脚本,通过执行这个Shell
脚本可以列举当前目录下的文件列表,如下创建一个hello.sh
脚本#!/bin/bash :指定脚本要使用的 Shell 类型为 Bash
ls、echo: 脚本文件的内容,表明我们执行 hello.sh 脚本时会列举出当前目录的文件列表并且会向控制台打印 `hello world
执行方式为
.hello.zsh
二、种类
Linux
的Shell
种类众多,只要能给用户提供命令行环境的程序,常见的有:Bourne Shell(sh),是目前所有 Shell 的祖先,被安装在几乎所有发源于 Unix 的操作系统上
Bourne Again shell(bash) ,是 sh 的一个进阶版本,比 sh 更优秀, bash 是目前大多数 Linux 发行版以及 macOS 操作系统的默认 Shell
C Shell(csh) ,它的语法类似 C 语言
TENEX C Shell(tcsh) ,它是 csh 的优化版本
Korn shell(ksh) ,一般在收费的 Unix 版本上比较多见
Z Shell(zsh) ,它是一种比较新近的 Shell ,集 bash 、 ksh 和 tcsh 各家之大成
关于
Shell
的几个常见命令:三、命令
Shell
并不是简单的堆砌命令,我们还可以在Shell
中编程,这和使用C++
、C#
、Java
、Python
等常见的编程语言并没有什么两样。Shell 虽然没有 C++、Java、Python 等强大,但也支持了基本的编程元素,例如:
下面以
bash
为例简单了解一下shell
的基本使用变量
Bash
没有数据类型的概念,所有的变量值都是字符串,可以保存一个数字、一个字符、一个字符串等等同时无需提前声明变量,给变量赋值会直接创建变量
访问变量的语法形式为:
${var}
和$var
。变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,所以推荐加花括号。
条件控制
跟其它程序设计语言一样,Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在
[[ ]]
里的表达式跟其他语言一样,使用
if...else
进行表达,如果中括号里的表达式为真,那么then
和fi
之间的代码会被执行,如果则else
和fi
之间的代码会被执行fi
标志着条件代码块的结束函数
bash 函数定义语法如下:
参考文献
The text was updated successfully, but these errors were encountered: