本节主要内容:
系统IO原理:Linux
VFS FD
pagecache
[java]
1文件系统的io
2内存和io关系
3网络io
任何程序都有
0:标准输入
1:标准输出
2:报错输出
/proc/$$进入当前进程目录
$$表示当前bash的pid
$BASHPID 也可以获取进程pid
/proc/$$/fd 进入当前进程的文件描述符目录,可以查看打开哪些文件
命令:lsof -op $$ 也可以查看当前进程的详细信息
文件重定向:
ls ./ /etc/ 1> zzz02.out 2>& 1
语法注意:1> zzz02.out 必须在前,因为标准输出2需要重定向到标准输入1
一般都是重定向到文件,但是这里是标准输出重定向到标准输入,因此必须使用>&
管道 | ------------非常重要
先掌握几个基本的命令
head -n 文件名 显示文件的前n行,如果不带n,默认显示前10行
tail -n 文件名 显示文件的后n行,如果n不带,显示后10行
问题:怎么显示第八行的数据呢???
通过管道可以实现
head -8 zzz.txt | tail -1
export 变量名 export后的变量,会成为环境变量
代码块---即执行多条指令
{ echo "123"; echo "abc"; }
原因是:管道两边都会起一个子进程,然后将两个子进程并在一起。执行完管道后,又进入了父进程,因此a还是1
原因:$$ 的优先级比 | 高 但是$BASHPID的优先级比 | 低