day2:linux
计算机由五大基本单元组成
控制器、运算器、存储器单元、输入单元、输出单元
进程管理:
一个CPU核同一时间只能运行一个进程
进程由它的进程ID(PID)和它父进程的进程ID(PPID)唯一识别
进程结构:树型结构
进程调度:
进程调度是指操作系统按某种策略或规则选择进程占用CPU进行运行的过程
linux文件系统:
Linux中一切皆文件,Linux文件系统采用树状的目录
day3:Shell 脚本与编程
Shell 处理来自终端模拟器的输入,解释执行之后输出结果给终端
Bash Shell的一种具体体现
Shell 即是一个解释器,又是一门编译语言
变量:
类型 作用域 声明方式 规范
自定义变量 当前Shell = 字符串、整形、浮点型、日期型
环境变量 当前Shell和其子Shell export、declare -x
系统环境变量 所有Shell 启动加载
自定义变量:
变量名=变量值(等号左右不能有空格)
x=10
y=5
可以将命令复制给变量
_ls=ls
#默认为字符串不会进行加法运算
tatal=x+y 错误
#声明变量为整型
let tatal=x+y
declare -I tatal=x+y
#导出环境变量
export tatal
declare -x tatal
declare的使用:
语法:declare [+/-] 选项 变量
- 给变量设置类型属性
+ 取消变量的类型属性
-a 将变量声明为数组类型
-i 将变量声明为整型
-x 将变量声明为环境变量
-r 将变量声明为只读变量
-p 显示指定变量的被声明类型
系统环境变量:
运算符和引用:
管道:
管道符 |,作用是将前一个命令的结果传递给后面的命令
语法:cmd1 | cmd2
判断命令:
shell中提供了test、[]、[[ ]] 三种判断符号,可用于:
整数测试、字符串测试、文件测试
语法:test condition
// 整数测试
test $nl -eq $n2
test $nl -lt $n2
test $nl -gt $n2
// 字符串测试
test -z $str_a 字符串为空
test -n $str_a 字符串非空
test $str_a = $str_b
// 文件测试
test -e 位置 echo "文件名" 文件是否存在
test -f 位置 echo "文件名" 文件是否存在、并且是普通文件
注意:中括号前后要有空格
分支语句:
语法1:if condition;then 语法2:case $变量 in:
程序段 "第一个变量内容")
elif condition;then 程序段
程序段 ;;
else "第二个变量内容")
程序段 程序段
fi ;;
*)
程序段
;;
esac
循环:
while循环、until循环(达成条件退出循环)、for循环
函数:
语法一:funcName(){语句段}
语法二:function funcName(){语句段}
注意:shell中return不是指返回值,不会退出函数
常用命令:
执行:
shell脚本一般以 .sh 结尾
1、第一行要指定用什么命令解释器来执行
#! /bin/bash
#! /user/bin/env bash
2、启动方式
//文件名启动
./xxx.sh
//解释器启动
bash ./xxx.sh
//source 运行
source ./xxx.sh