本篇文章主要是介绍一些 shell 的一些入门常识,引起读者书写 shell ,运用 shell 的兴趣。

在恣意方位运转自己的 shell 脚本

在笔者看来,想要 shell 用的好,那运用上必须得便利。ps: 以下操作针对 mac 电脑

在自己的 HOME 目录下面,新建一个 bin 目录,用于放置自己的小脚本。为了便利运用,主张把$HOME/bin 放在你的 PATH 变量(PATH 是一个环境变量,它告诉 shell 在哪里找可执行的文件)里边。这样,你的 shell 指令就能够在全局恣意当地运用。

// 进入自己的$HOME 目录
cd
// 创立一个 bin 目录
mkdir bin
// 将 bin 目录增加到 path 里边, 能够写在 .zshrc  或 .bashrc 等 shell 配置文件里边
export PATH=$PATH:$HOME/bin

现在咱们就能够在 bin 目录新建咱们的脚本了。依照常规,咱们来输出个 hello world

// $HOME 指的是你的家目录
cd $HOME/bin
// 新建一个 hello 文件
touch hello
// 给 hello 文件加上可执行权限
chmod +x hello

接下来咱们来写 hello 脚本,脚本内容如下

// 意思是运用 bash 来解析这个文件
// 以指令#!/bin/sh最初的文件在执行时会实践调用/bin/sh程序(通常是Bourne shell或兼容的shell,例如bash、dash等)来执行。这行内容也是shell脚本的规范起始行。
#!/bin/bash
// 在控制台输出 "hello world"
echo "hello world"

写完之后,保存,退出即可。接下来你就能够在恣意当地调用这个 hello 指令

当然你也能够指定 node 来这行,很简单, 只需求在脚本第一行指定 node 来解析就行

#!/usr/bin/env node
setTimeout(() => {
  console.log('hello');
}, 1000);

当咱们有些小需求的时分,就能够很便利的在 bin 文件夹中新建 shell 脚本文件,然后再恣意当地去运用它。下面是笔者几个常见的运用 shell 的场景

工作中常见的 shell 用法

组合指令

有一些操作需求运转多个指令,咱们就能够把多个指令都放在 shell 文件里边。举个例子,比方一些项目咱们想快速提交到长途。 咱们在 $HOME/bin 里边新建一个文件fgp

#!/bin/bash
git add .
git commit -m 'fast push' -n
git push

这样,咱们就能够愉快的在恣意方位运用 fgp 快速提交了。

守时执行任务

咱们期望守时运转 shell 指令。 需求凭借 crontab

比方咱们想守时提示咱们自己喝水,先在 bin 文件夹里边写一个 drinking 脚本

#! /bin/bash
osascript -e 'display notification "该喝水了" with title "守时提示"'

咱们给这个文件加上可执行权限,chmod +x drinking

接着咱们需求修正一下 crontab 脚本, 运转 crontab -e 增加一下 30 * * * * sh ~/bin/drinking

crontab 增加规矩,能够通过crontab guru这个网站查看, 30 * * * * sh ~/bin/drinking 的意思是每 30 分钟运转一下 drinking 脚本

简单修正一些文件

咱们有些时分需求修正一些文件,或许需求运用到 sed , awk 这些原生指令,写法比较复杂,后边有兴趣能够自己研讨。我这儿推荐的是 jq 这个指令。在一些修正 json 的场景非常好用。

比方我想修正 package.json 的 name 字段为 test , 操作如下:

jq ".name=test" package.json | sponge package.json

sponge 作用是接受管道的输出,而且将输出写入到 package.json 文件中去 , 假如你没有这个指令,需求手动装置一下 brew install jq brew install sponge

本文正在参加「金石方案」

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。