linux

0. 进程间通信

进程间通信有几种方式

  • 信号量
    信号量主要是用来对共享资源进行互斥控制的,不能传输信息
  • 管道
  • FIFO管道
  • 消息队列
  • 共享内存

1. 系统启动过程

  • bios
  • 操作系统
  • /boot
  • init进程
  • 运行级别
  • /etc/init.d
  • 用户登录

2. 用户、用户组合权限管理

3. 文件属性

drwxr-xr-x,第一位是文件类型(“-”是文件,“d”是目录,“l”是软链)。后9位分3组,每组分别代表“属主权限”、“属组权限”和“其他用户权限”。

4. ssh远程登录

5. 文本编辑器vi和vim

6. 磁盘管理

6. 常用命令

  • 文件管理
  • 文件传输
  • 文档编辑
  • 磁盘管理
  • 网络通讯
  • 系统管理
  • 备份压缩
  • 设备管理

shell

0. 定义

  • 一个应用程序,用来访问系统内核服务
  • 一种语言

1. 变量

声明变量不用加”$ “,使用时候需要加” $”。

建议都加大括号,例如${env}

双引号里面的变量可以正常解析,单引号里的解析成字符串

2. 参数

shell脚本按顺序解析

3. 数组

my_array=(A B "C" D)

4. 流程控制

1. if

  1. if [$1 == 1]
  2. then
  3. echo '1'
  4. elif [$1 == 2]
  5. then
  6. echo '2'
  7. else
  8. echo '3'
  9. fi

2. for

  1. for loop in 1 2 3 4 5
  2. do
  3. echo "The value is: $loop"
  4. done

3. while

  1. while(( $int<=5 ))
  2. do
  3. echo $int
  4. let "int++"
  5. done
  1. echo '按下 <CTRL-D> 退出'
  2. echo -n '输入你最喜欢的网站名: '
  3. while read FILM
  4. do
  5. echo "是的!$FILM 是一个好网站"
  6. done

4. untile

5. case

  1. while :
  2. do
  3. echo -n "输入 1 到 5 之间的数字:"
  4. read aNum
  5. case $aNum in
  6. 1|2|3|4|5) echo "你输入的数字为 $aNum!"
  7. ;;
  8. *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
  9. break
  10. ;;
  11. esac
  12. done
  1. while :
  2. do
  3. echo -n "输入 1 到 5 之间的数字: "
  4. read aNum
  5. case $aNum in
  6. 1|2|3|4|5) echo "你输入的数字为 $aNum!"
  7. ;;
  8. *) echo "你输入的数字不是 1 到 5 之间的!"
  9. continue
  10. echo "游戏结束"
  11. ;;
  12. esac
  13. done

5. test

test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

  1. num1=100
  2. num2=100
  3. if test $[num1] -eq $[num2]
  4. then
  5. echo '两个数相等!'
  6. else
  7. echo '两个数不相等!'
  8. fi
  1. num1="ru1noob"
  2. num2="runoob"
  3. if test $num1 = $num2
  4. then
  5. echo '两个字符串相等!'
  6. else
  7. echo '两个字符串不相等!'
  8. fi
  1. if test -e ./bash
  2. then
  3. echo '文件已存在!'
  4. else
  5. echo '文件不存在!'
  6. fi

test测试文件有一些参数

  • -e 文件是否存在
  • -f 文件是否存在且未普通文件
  • -d 文件存在且为目录

6. 函数

  1. function test() {
  2. echo $1
  3. echo $2
  4. }
  5. test 1 2

7. 导入脚本

  1. # test.sh
  2. function test() {
  3. echo $1
  4. echo $2
  5. }
  1. # index.sh
  2. . ./test.sh
  3. test 1 1

node参数

node脚本参数和其他Linux命令行调用的程序传参一样,都是一个字符串数组,需要脚本程序开发者自己解析。解析时候,主要包含几个概念

  • command
  • option
    • 长选项(--
      • 可以空格指定选项的值(--config /path/to/config.js
      • 也可以用等号连接(--config=/path/to/config.js
    • 短选项(-
  • arguments

commander库帮助开发者解析参数,是一款非常好用的命令行工具开发小助手