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
if [$1 == 1]
then
echo '1'
elif [$1 == 2]
then
echo '2'
else
echo '3'
fi
2. for
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done
3. while
while(( $int<=5 ))
do
echo $int
let "int++"
done
echo '按下 <CTRL-D> 退出'
echo -n '输入你最喜欢的网站名: '
while read FILM
do
echo "是的!$FILM 是一个好网站"
done
4. untile
5. case
while :
do
echo -n "输入 1 到 5 之间的数字:"
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"
break
;;
esac
done
while :
do
echo -n "输入 1 到 5 之间的数字: "
read aNum
case $aNum in
1|2|3|4|5) echo "你输入的数字为 $aNum!"
;;
*) echo "你输入的数字不是 1 到 5 之间的!"
continue
echo "游戏结束"
;;
esac
done
5. test
test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
num1=100
num2=100
if test $[num1] -eq $[num2]
then
echo '两个数相等!'
else
echo '两个数不相等!'
fi
num1="ru1noob"
num2="runoob"
if test $num1 = $num2
then
echo '两个字符串相等!'
else
echo '两个字符串不相等!'
fi
if test -e ./bash
then
echo '文件已存在!'
else
echo '文件不存在!'
fi
test测试文件有一些参数
- -e 文件是否存在
- -f 文件是否存在且未普通文件
- -d 文件存在且为目录
6. 函数
function test() {
echo $1
echo $2
}
test 1 2
7. 导入脚本
# test.sh
function test() {
echo $1
echo $2
}
# index.sh
. ./test.sh
test 1 1
node参数
node脚本参数和其他Linux命令行调用的程序传参一样,都是一个字符串数组,需要脚本程序开发者自己解析。解析时候,主要包含几个概念
- command
- option
- 长选项(
--
)- 可以空格指定选项的值(
--config /path/to/config.js
) - 也可以用等号连接(
--config=/path/to/config.js
)
- 可以空格指定选项的值(
- 短选项(
-
)
- 长选项(
- arguments
commander
库帮助开发者解析参数,是一款非常好用的命令行工具开发小助手