POSIX标准
就是定义了类Unix系统提供接口(系统API(应用程序和库之间的编程接口),shell命令)的标准,便于代码的移植.
除了API还有ABI
应用程序二进制接口
他是让一个可执行的文件可以在支持ABI标准的平台上运行
主流Unix都支持POSIX标准,但是不仅仅局限于Unix,简单的说市面上绝大部分系统为了兼容性都会支持.(这些不准确啊,只是个人理解,有兴趣了解详情还是查查比较好)
当然了,标准嘛一定会跟随时代的改变而改变,例如C/C++也会更新,新的标准.
Linux常见系统调用
文件I/O, 进程/线程, 进程间通信, 系统控制, 内存管理, 网络管理
这些在系统编程里,在搞.
shell脚本
其实这个东西吧,很纠结.可能很多时候不需要去写,但是需要能看懂.因为这是运维的工作.
但是能写脚本的语言太多了,shell,python,php,JS,lua等等.说python火吧,但是js(前端)和lua(游戏)的程度并不差,但是shell还是一些"前辈的"首选.这就很烦
shell和shell脚本(shell script)
shell是C写的一个程序,作用于用户和系统之间的沟通
shell脚本通过脚本语言写的一些指令,使繁琐的工作实现自动化(其实可以理解成就是一个批处理)
shell种类
默认的是bash(也是使用最多的),还有ash, ksh, csh(C风格), tcsh(csh的进化版), zsh(最牛的,也是最不好用的)
第一个shell脚本
python
shell
python环境需要安装,网上收一下一堆.
#!/bin/python3, 约定的东西,告诉系统这个脚本需要什么解释器来执行.(shell的话就是#!/bin/bash)
文件名,python以xxx.py,shell就是xxx.sh
执行脚本
./hello.py就是作为可执行程序来解释脚本
python3 hello.py是使用解释器来解释脚本,这种可以不用写#!(写了也0作用)(不过只有那么一句,还是写一下吧)
脚本意思就是输出"hello world"
使用脚本创建文件
还可以使用python调用shell命令
res是一个变量,可以作为返回值查看命令结果
由此可见,还是shell的曲线很缓和,因为命令我们都已经很熟悉.但是这只是命令的堆积, 脚本同样需要设计也就需要变量和控制语句.
变量
在shell中" '是有区别的,' 不能转义(\就是转义字符)
当shell命令作为变量时
正常写法不会显示命令
我们需要反引号 ` `
可能不是很清楚,就是在字符串两端 ~ 键上的那个
输入
shell中不常用的keyword
readonly 变量//定义一个只读的变量
unset 变量 删除一个变量