shell - 01

初识shell

shell | shell script

shell是一种命令解释器,它提供了用户和操作系统之间的交互接口,还有其他的交互接口比如 GUI。
shell script即shell脚本,是一种通过shell执行的编程语言

helloworld

1
2
3
#!/bin/bash

echo helloworld

基本结构

顺序 && 条件 && 循环

1
2
3
4
5
6
7
8
9
# 条件
## 判断是否目录 -d -- directory
## 判断是否文件 -f -- file
## 判断是否相等 -eq -- equal 等价 ==
## 判断是否不相等 -ne -- not equal 等价 !=
## 判断是否大于
if [[ -d "/path/to/binary" ]]; then
echo "Is directory"
fi
1
2
3
4
5
# 遍历当前目录
for file in `ls .`
do
echo "file:$file"
done

变量

定义

1
newer=123

使用

变量名加”$”前缀

“” 包含的变量会解析
‘’ 包含的变量不解析

“$newer11” 中变量是 newer11 但是实际的变量是 newer, 为了解决这个情况,可以用括号”${newer}11”

环境变量

环境变量(environment variables)一般是指在 操作系统 中用来指定操作系统运行环境的一些参数,如: 临时文件夹 位置和 系统文件夹 位置等。

使用env命令可以输出当前的环境变量

1
2
3
4
5
...
PATH=XXX
HOME=XXX
SHELL=/bin/zsh
...
相对路径和绝对路径

可以参考坐标轴去理解, 通过相对原点可以定位一个点,通过坐标轴上的其它位置也可以定位一个点。只是这个原点这这里就是 / 代表挂载的最顶层的路径,从这里开始算就是绝对路径, 比如/usr/bin/git就是绝对路径

PATH

计算机并不知道如何找到对应的命令,PATH变量就是提供了一组路径,让shell在解释命令时能找到对应的可执行文件

比如git可执行文件在 /usr/bin/git,PATH中有/usr/bin,所以会去这个目录下去匹配,这样才能顺利找到git命令

其他目录

HOME 家目录 ~
当前目录 .
上一级目录 ..
根目录 /

cd - 切回上一个目录 – 通过PATH实现

数据结构: 数值 && 字符串 && 列表

常用字符串分割

获取文件的后缀名

获取文件名
获取目录名

helloworld 的解释

“#!/bin/bash”

首先是 #!, 是魔数(Magic Number),关于魔数,详见扩展部分,是一个标志,代表这个文件是脚本文件,/bin/bash,声明要用哪个可执行文件执行这个文件

echo helloworld

调用 echo “函数” 打印helloworld到显示器

echo -> shell -> OS -> hardware

1
2
3
4
5
6
#include <stdio.h>

int main(int argc,char[] argv) {
printf("helloworld");
return 0;
}

shell解释器

执行shell的脚本的可执行文件

1
echo $SHELL

默认的是bash,

可以使用 zsh
终极 Shell——ZSH

参考

  1. Shell 教程
  2. 結構化程式理論
  3. Unix中文手册
hexo deploy 命令执行失败
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×