初识脚本, 理解 PATH 及  ~/.bashrc

本文主要叙述以下内容:

  • 什么是脚本?
  • 一个简单的脚本
  • 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
  4. 任意位置(不是 ~/local)执行: sh ~/local/demo.txt ,

  5. 你会看到当前目录下 多出 mydemo 文件夹,mydemo 里面有 /css /js index.html 

  6. ok, demo.txt 就是一个脚本,包括几行命令文本,以下为拓展

  7. 如果需要目录名可变,在步骤3 将mydemo 改为 $1 执行 demo.txt  asd , 则会新建名为asd 的目录,$1类似于占位符,1表示第1个参数

  8. 如果.txt 后缀麻烦, 执行 mv ~/local/demo.txt ~/local/demo ,执行 demo asd 即可

  9. 文件后缀只是方便区分,命名一个 A.png  的文件就一定是一个图片吗?

  10. 判断目录是否已经存在,将步骤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" 

    3. 执行 .bashrc :  source  ~/.bashrc

    4. 任意位置(不是 ~/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

  • 环境变量

  • 设置PATH

    • export PATH="目录的绝对路径:$PATH",上面已经用过了


五.nodejs脚本创建demo目录

进入node 的 REPL编译器:node

  • 打印当前目录: process.cwd()

  • 切换目录:process.chdir("/Users/ZhouLiLi/Desktop")

下图为 打印和切换的演示

 

  • 重写demo.txt

    1. 创建 node脚本:touch ~/jsdemo.js,编辑内容如下

      • fs:file system 所有关于文件的操作

      • writeFileSync第二个参数可以写入 文本

    2. cd ~/desktop

    3. node ~/local/jsdemo.js mydemo 即可在桌面新建 mydemo 目录

    4. 在js文件第I行添加 #!/usr/bin/env node (指定执行环境)可直接运行 ~/local/jsdemo.js zzz   加入path 可直接 jsdemo.js  mv 可直接jsdemo windows测试失败!

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

  • 4
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值