前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Shell 和 Shell 脚本 (Shell Script)

Shell 和 Shell 脚本 (Shell Script)

原创
作者头像
小小范
修改2021-12-14 14:30:41
2.1K0
修改2021-12-14 14:30:41
举报
文章被收录于专栏:持续学习

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

业界所说的 Shell 通常都是指 Shell 脚本,但要知道,Shell 和 Shell Script 是两个不同的概念。

Shell 脚本种类众多,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • Shell for Root(/sbin/sh)

除了上面的几种,Node.js 本质上也是一种 Shell 脚本,只不过他的语法是 JavaScript。不同 Shell 脚本的区别就是语法不一样。

总结:我们通过编写 Shell 脚本,然后放在 Shell 应用程序里面运行,常见的 Shell 应用程序有 Cmd、git Bash 等等。常见的Shell 脚本有 Bash、Node。

不同的 Shell 脚本需要不同的 Shell 应用程序来执行,默认 Shell 应用程序都是执行 Bash 脚本的,如果需要切换 Node 脚本的执行环境,我们需要安装 Node,配置完成环境变量后,输入node即可切换 Node 脚本的执行环境中。

Shell 脚本 - Bash

Bash 是大多数 Linux 系统默认的 Shell 脚本。

Bash Documents(暂时没找到更好的资源学习)

Linux系统目录结构
Linux系统目录结构
目录文字说明
目录文字说明
代码语言:txt
复制
mkdir demo
cd demo
mkdir css js
touch index.html css/style.css js/main.js
exit

脚本执行的原理(Bash 脚本)

你每次在 Shell 应用程序 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行。

当我们自己写的脚本不在 PATH 列表里面应该怎么执行呢?比如我们写了一个名为 demo 的脚本。

第一种

代码语言:txt
复制
cd demo 脚本的目录
./demo

第二种

代码语言:txt
复制
脚本目录/demo

注意:如果我们直接在 Bash 里面输入 demo 的话,会发现执行不了,因为 demo 这个脚本不在 PATH 列表里。

查看脚本所在的 PATH

使用 type ls 可以看到寻找过程(在 Win 系统下好像没啥用)

使用 which ls 可以看到寻找结果

Shell 脚本 - Node

我们在 Bash 执行环境里输入 Bash 脚本,也可以在 Node 执行环境里输入 Node 脚本。

Bash 脚本能做的事情,JS 脚本也能做。(sh demo.sh 对应 node demo.js)

Node.js Document

查看当前目录

代码语言:javascript
复制
process.cwd();

创建目录

代码语言:txt
复制
var fs = require('fs')
fs.mkdirSync("./demo")

创建文件

代码语言:txt
复制
var fs = require('fs')
fs.writeFileSync("./demo.txt","123")

注意点

脚本后缀

作用:毫无作用。

Linux 中的文件是通过敲命令来执行的,可以用vi demo通过 vi 来打开,也可以通过sh demo当做脚本来执行,默认是 sh

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Shell 脚本 - Bash
  • 脚本执行的原理(Bash 脚本)
  • Shell 脚本 - Node
  • 脚本后缀
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档