本文主要叙述以下内容:

  • 什么是脚本?
  • 一个简单的脚本
  • PATH 的作用
  • .bashrc的作用
  • nodejs脚本创建demo目录

一.脚本是什么?

脚本源自戏剧舞台:

公馆一室内

王妈:(小心翼翼地)小姐,您还是得注意身子,就吃点东西吧。

鸡小姐:(把碗砸在地上)不吃,我就是不吃。

(王妈下)

脚本主要由人物对话和舞台提示组成。演员和道具组只需要按照脚本说的做即可.

计算机编程就是计算机按照脚本写的执行的,脚本就是文本,由英文字母,数字,特殊符号组成一串具有特殊意义的文本,可以一行一行的输入运行,可以写成一个文件.

脚本可以用很多语言写,javeScript, nodejs(本质还是js),VB,bash,C,php..., 每种语言有每种语言的写法(语法),不管是那种语言都可以实现相同的功能,只是用法(语法)上不同,或者说那种语言更适合,最后都是计算机照着执行的,比如 js 虽然是运行在浏览器之上,而浏览器运行在操作系统上(计算机操作系统),很多方面,高级编程语言与脚本语言没有明显的界限。


二.一个简单的脚本

  1. 新建并进入目录local: mkdir  ~/local; cd ~/local
  2. 新建脚本文件demo:     touch demo.txt
  3. 打开demo.txt : start demo.txt ,并写入内容:
mkdir mydemo
cd mydemo
mkdir css js
touch index.html  css/style.css   js/main.js
exit
  1. 任意位置(不是 ~/local)执行: sh ~/local/demo.txt ,
  2. 你会看到当前目录下 多出 mydemo 文件夹,mydemo 里面有 /css /js index.html 
  3. ok, demo.txt 就是一个脚本,包括几行命令文本,以下为拓展
  4. 如果需要目录名可变,在步骤3 将mydemo 改为 $1 执行 demo.txt  asd , 则会新建名为asd 的目录,$1类似于占位符,1表示第1个参数
  5. 如果.txt 后缀麻烦, 执行 mv ~/local/demo.txt ~/local/demo ,执行 demo asd 即可
  6. 文件后缀只是方便区分,命名一个 A.png  的文件就一定是一个图片吗?
  7. 判断目录是否已经存在,将步骤3的修改如下
if [ -d $1 ]; then
  echo 'error: dir exists'
  exit
else
  mkdir $1
  cd $1
  mkdir css js
  touch index.html css/style.css js/main.js
  exit
fi

 

  11.返回值

  1. exit 0 表示没有错误
  2. exit 1 表示错误代码为 1
  • demo && echo ‘结束’
  • 只有在demo成功的时候,才会执行 echo "结束"

三.PATH的作用

你每次在 Bash 里面输入一个命令时(比如 cd cp demo),Bash 都会去 PATH 目录里面寻找对应的文件,如果找到了就执行。

使用 type 可以打开一个命令的路径,

  • 所有的命令都是可执行文件,就像执行 缩写的 demo,然后运行里面的脚本
  • 所有文件分为可执行文件和不可执行文件,可执行文件有很多种,不可执行文件就是配置
  • type demo 查看 demo 的路径 
  • PATH 里面有很多目录,由 ":" 分隔,当执行 demo 时先在第一个目录找,没有找到就去第二个,第三个..再没有就报错:bash: demo: command not found
  • 打印系统命令 如 type ls,不同的操作系统打印的不同,但没关系

使用 which可以看到寻找结果

使用PATH:(如果你想只运行 demo.txt  就能达到 sh ~/lcoal.demo.txt 的作用,就需要将 ~/local 添加到path 里面,分为永久设置PATH 和 临时设置,具体如下)

  • 获取 ~/local 的绝对路径 : cd ~/local; pwd
  • 临时设置PATH :
  1. export PATH="local的绝对路径:$PATH" 
  2. 任意位置(不是 ~/local)执行: demo.txt 
  • 永久设置PATH
  1. 创建 .bashrc( 理解见下节) : touch ~/.bashrc
  2. 进入并编辑:start ~/.bashrc 
  • 写入以下内容: export PATH="local的绝对路径:$PATH" 
  1. 执行 .bashrc :  source  ~/.bashrc
  2. 任意位置(不是 ~/local)执行: demo.txt  
  • 所以 当执行 demo.txt 时,由于已经在 /.bashrc 里面,为PATH添加了一个目录 ~/local,能找到demo.txt,直接执行就好了

四.~/.bashrc

.bashrc 这个文件主要保存个人的一些个性化设置,如命令别名、路径等, 是bash的个人配置文件,在用户目录下,是个隐藏文件.

可以实现 在进入 Git Bash 前执行任何命令,可以进行命令别名进行缩写,可以设置环境变量及PATH

  • 新建 .bashrc文件:touch ~/.bashrc
  • 自动运行:
  1. 命令行编辑也可以直接在文件内修改: echo "cd ~/Desktop" >> ~/.bashrc
  2. 重新打开会发现默认进入桌面目录
  • alias
  1. 命令行新增: touch"alias newTxt = 'touch demo.txt'" >>  ~/.bashrc
  2. 执行 .bashrc : source ~/.bashrc (每次修改.bashrc 都要运行)
  3. 运行 newTxt
  4. 在桌面目录新增 demo.txt
  • 环境变量
  • export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
  • 以后安装 node-sass 的时候就不会因为被墙而报错了
  • 设置PATH
  • export PATH="目录的绝对路径:$PATH",上面已经用过了

五.nodejs脚本创建demo目录

进入node 的 REPL编译器:node

  • 打印当前目录: process.cwd()
  • 切换目录:process.chdir("/Users/ZhouLiLi/Desktop")

下图为 打印和切换的演示

bash配置python_可执行文件

 

  • 重写demo.txt
  1. 创建 node脚本:touch ~/jsdemo.js,编辑内容如下
  • fs:file system 所有关于文件的操作
  • writeFileSync第二个参数可以写入 文本
  1. cd ~/desktop
  2. node ~/local/jsdemo.js mydemo 即可在桌面新建 mydemo 目录
  3. 在js文件第I行添加 #!/usr/bin/env node (指定执行环境)可直接运行 ~/local/jsdemo.js zzz   加入path 可直接 jsdemo.js  mv 可直接jsdemo windows测试失败!

在此我们可以得出一个容易理解的结果 :nodejs 可以理解为可以执行 js 的bash