便宜做网站怎么样,wordpress 小程序 标签,网站制作价格 上海,做网站的参考文献面试官#xff1a;说说你对 shell 的理解#xff1f;常见的命令#xff1f; 一、是什么
Shell 是一个由c语言编写的应用程序#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言#xff0c;又是一种程序设计语言
它连接了用户和Linux内核#xff0c;让用户能…面试官说说你对 shell 的理解常见的命令 一、是什么
Shell 是一个由c语言编写的应用程序它是用户使用 Linux 的桥梁。Shell 既是一种命令语言又是一种程序设计语言
它连接了用户和Linux内核让用户能够更加高效、安全、低成本地使用 Linux 内核
其本身并不是内核的一部分它只是站在内核的基础上编写的一个应用程序它和 QQ、微信等其它软件没有什么区别特殊的地方就是开机立马启动并呈现在用户面前
主要作用是接收用户输入的命令并对命令进行处理处理完毕后再将结果反馈给用户比如输出到显示器、写入到文件等同样能够调用和组织其他的应用程序相当于一个领导者的身份如下图 那么shell脚本就是多个 Shell 命令的组合并通过 if 条件分支控制或循环来组合运算实现一些复杂功能文件后缀名为.sh
常用的 ls 命令它本身也是一个 Shell 脚本通过执行这个 Shell 脚本可以列举当前目录下的文件列表如下创建一个hello.sh脚本
#!/bin/bash# 执行的命令主体
ls
echo hello world#!/bin/bash 指定脚本要使用的 Shell 类型为 Bash ls、echo 脚本文件的内容表明我们执行 hello.sh 脚本时会列举出当前目录的文件列表并且会向控制台打印 hello world
执行方式为.hello.zsh
二、种类
Linux 的 Shell 种类众多只要能给用户提供命令行环境的程序常见的有 Bourne Shellsh是目前所有 Shell 的祖先被安装在几乎所有发源于 Unix 的操作系统上 Bourne Again shellbash 是 sh 的一个进阶版本比 sh 更优秀 bash 是目前大多数 Linux 发行版以及 macOS 操作系统的默认 Shell C Shellcsh 它的语法类似 C 语言 TENEX C Shelltcsh 它是 csh 的优化版本 Korn shellksh 一般在收费的 Unix 版本上比较多见 Z Shellzsh 它是一种比较新近的 Shell 集 bash 、 ksh 和 tcsh 各家之大成 关于 Shell 的几个常见命令
ls查看文件cd切换工作目录pwd显示用户当前目录mkdir创建目录cp拷贝rm删除mv移动du显示目录所占用的磁盘空间
三、命令
Shell 并不是简单的堆砌命令我们还可以在 Shell 中编程这和使用 C、C#、Java、Python 等常见的编程语言并没有什么两样。
Shell 虽然没有 C、Java、Python 等强大但也支持了基本的编程元素例如
if…else 选择结构case…in 开关语句for、while、until 循环变量、数组、字符串、注释、加减乘除、逻辑运算等概念函数包括用户自定义的函数和内置函数例如 printf、export、eval 等
下面以bash为例简单了解一下shell的基本使用
变量
Bash 没有数据类型的概念所有的变量值都是字符串可以保存一个数字、一个字符、一个字符串等等
同时无需提前声明变量给变量赋值会直接创建变量
访问变量的语法形式为${var} 和 $var 。
变量名外面的花括号是可选的加不加都行加花括号是为了帮助解释器识别变量的边界所以推荐加花括号。
wordhello
echo ${word}
# Output: hello条件控制
跟其它程序设计语言一样Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式
跟其他语言一样使用if...else进行表达如果中括号里的表达式为真那么then和fi之间的代码会被执行如果则else和fi之间的代码会被执行
if [[ 2 -ne 1 ]]; thenecho true
elseecho false
fi
# Output: truefi标志着条件代码块的结束
函数
bash 函数定义语法如下
[ function ] funname [()] {action;[return int;]
}函数定义时function 关键字可有可无函数返回值 - return 返回函数返回值返回值类型只能为整数0-255。如果不加 return 语句shell 默认将以最后一条命令的运行结果作为函数返回值函数返回值在调用该函数后通过 $? 来获得所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分直至 shell 解释器首次发现它时才可以使用。调用函数仅使用其函数名即可
参考文献
http://c.biancheng.net/view/706.htmlhttps://whyta.cn/post/9e001580d863/https://juejin.cn/post/6930013333454061575