回顾Linux 所学:
初识:
基础指令:
tab自动补全 ctrl+c(中断当前操作)
目录:ls pwd(绝对路径和相对路径) .当前路径 …上层路径 mkdir rmdir(删除目录 只能删除空目录) rm cp mv cd
文件:touch实现信息 cat more less head tail gzip/gunzip/zip/unzip/bzip2/bunzip2(文件压缩) tar
匹配:find grep
其他:ifconfig man date cal bc |(管道符 连接 把前面结果的输出结果当作后面的输入) >>(追加重定向) >
权限:su(切换用户root、user) ugo+rwx(可读写执行) rwxr wxr ——x 111 111 101 775 umask(掩码)(给定的权限与掩码取反) chmod
chown(修改文件所有者) chowgrp(所有组)
常用:ps kill ipcs ipcrm
常用工具:yum
vim(编辑器):光标 hjkl wb ctrl+fb(向下上翻页) ggG 文本操作:nyy/pP ndd(按行删除) dw(按单词删除) x 其他:u(撤销) ctrl+r
gcc/g++: gdb(程序调试):生成debug gcc-g run start n(下一步) s(下一步 进入函数) until l c(ontinue) watch(变量断点) b(打断点)
ib(产看断点信息) bt(查看函数调用栈) make/makefaile(项目构建工具):伪对象 .PHONY(声明伪对象) git:gitclone gitadd gitcommit
gitpush
系统:
进程概念:冯诺依曼 操作系统 进程概念 cpu -> pcb -> main 进程创建(创建一个pcb):数据独有 代码共享 进程状态 环境变量 虚拟地址空间
(为进程提供一个连续的线性的地址空间)
进程控制:
进程创建:fork(写时拷贝),vfork(父进程阻塞),clone->复制->修改->创建完毕
进程终止:return exit(库函数,退出的时候刷新缓冲区,关掉文件流指针,释放许多库资源) _exit(系统调用结构,不会刷新缓冲区,而是进程直接退出)
进程等待:wait/waitpid–等待子进程退出,获取返回值,释放资源避免产生僵尸进程
程序替换:exec函数族 execl/execlp/execle,execv/execvp/execve
minishell:
基础io:
系统调用接口认识:open()O_CREAT|O_APPEND|O_TRUNC|O_RDWR|O_WRONLY|O_RDONLY
文件描述符:
重定向:
文件描述符和文件流指针的关系: