Linux基础学习
文章平均质量分 61
青山是哪个青山
这个作者很懒,什么都没留下…
展开
-
Linux——进程
如果子进程已经退出,调用wait/waitpid时,wait/waitpid会立即返回,并且释放资源,获得子进程退出信息。传递NULL,表示不关心子进程的退出状态,否则操作系统会根据该参数,将子进程的信息反馈给父进程,status应该当作位图来看。本来父子进程的物理地址是相同的,因为代码和数据相同,但是当需要修改数据或者进行程序替换的时候,会在物理内存新开辟一片空间来给子进程使用,这就是写时拷贝。子进程没有退出,父进程检测的时候直接返回,不会占用父进程的所有精力,在轮询期间,可以做其他事。原创 2023-01-28 11:44:22 · 130 阅读 · 2 评论 -
Linux——环境变量
比如在写代码时需要链接的动静态库,虽然不知道动静态库的位置,但是仍然可以链接成功,就是因为环境变量的帮助,确认了位置。也可以通过export PATH =$ PATH : + 路径,把指令添加到系统的环境变量。set:显示本地/全局环境变量(在系统的全局变量无法查看本地的变量时可以用set)环境变量是指操作系统为了满足不同的应用场景,预先在系统内设置的全局变量(参数)。就比如ls,相当于创建子进程,继承了bash的环境变量,才能找到当前路径。通过echo $+环境变量名,来查看当前路径下的环境变量。原创 2023-01-24 16:26:02 · 1199 阅读 · 0 评论 -
Linux——进程fork,进程状态
我们的程序文件存在于磁盘当中,当需要运行的时候,会把文件代码加载在内存当中,而内存会产生相应的进程来控制文件代码,cpu又通过进程来控制程序文件。进程里会保存程序运行的临时数据,在cpu切换进程的时候,这些临时数据也必须保存下来,而进程在cpu里运行的时间就是进程的时间片。再输入进程的pid ,例如13160,查看该进程的状态,再输入要调整的NI ,就可以修改优先级。但是如果杀死父进程,那么就会导致孤儿进程,子进程的父进程就会变为1,也就是操作系统。这样就会占用内存空间,造成资源的浪费,也会导致内存泄漏。原创 2023-01-24 12:08:22 · 185 阅读 · 0 评论 -
Linux——gdb
2. 使用 l 键可以显示文件内容,l + 行号,显示这行的内容,回车显示剩下的内容。Linux的文件用gcc或者g++编译的时候默认是release版本。在编译文件的时候加上-g使文件准换成debug版本,就可以进行调试了。10.display/undisplay 常显示变量/取消。1.使用 gdb + 调试文件进入 调试。6. r 运行调试 会在断点处停下。5.d + 断点的行数 删除断点。4.info b 查看断点。9.c 运行至下一断点处。因为断点的影响,无法跳跃。取消断点后尝试 成功。原创 2023-01-20 22:43:31 · 369 阅读 · 0 评论 -
Linux——make/makefile
makefile是一个文件,可以定义一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,从而更好的管理各种文件。makefile可以使文件进行自动化编译,一旦完成,只需要make,就能执行整个工程,极大提高软件开发的效率。但如果刚刚test,test如果test.c没有更新内容,那么只会执行一次。依赖关系由冒号:决定,冒号左边的文件依赖于右边的文件,如果文件不存在,就不执行这个关系。而下面的就是依赖方法,表示执行的具体命令。有的,那就是伪目标。原创 2023-01-16 22:29:22 · 84 阅读 · 0 评论 -
Linux——gcc
在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等,以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。用户可以使用“-S”选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。在此可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码了。选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。汇编阶段是把编译阶段生成的“.s”文件转成目标文件。在成功编译之后,就进入了链接阶段。原创 2022-12-21 21:38:58 · 75 阅读 · 0 评论 -
Linux——基础开发工具vim
键,再输入想寻找的字符,如果第一次找的关键字不是想要的,可以一直按「n」会往后寻找到要的关键字为止。正常/命令模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,如输入数字15, 再回车,就会跳到文章的第15行。「u」:如果误执行一个命令,可以马上按下「u」,回到上一个操作。「#G」:例如,「15G」,表示移动光标至文章的第15行行首。原创 2022-12-19 22:50:11 · 222 阅读 · 0 评论 -
Linux——文件的权限管理
创建的文件或目录会受到umask的影响,默认权限是mask,则实际的权限是mask&~umask。r用二进制表现为100,w表现为010,x表现为001。将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。三位数字的每一位代表的是每个访问者的权限,也就是rwx的八进制自由组合的数字。权限r表示读,w表示写,x表示执行,-表示无权限。-R 同时递归修改所有文件,也使用权限修改。为防止其他用户删除自己的文件,可以设置粘滞位。用八进制就是r——4,w——2,x——1;+表示添加,-表示减少,=表示赋予。原创 2022-12-18 00:11:25 · 397 阅读 · 0 评论 -
Linux——基础指令(2)
Ctrl]-c按键---让当前的程序停掉、[Ctrl]-d按键---通常代表着:键盘输入结束(End Of File, EOF 戒。-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。H:小时、M:分钟、S:秒、X:相当于%H:%M:%S;d:日、m:月、Y:年份、F:相当于 %Y-从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件。-3 显示系统前一个月,当前月,下一个月的月历。原创 2022-12-16 00:22:37 · 64 阅读 · 0 评论 -
Linux——基础指令(1)
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存 在的目录,则会出现错误信息。touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理。-f 或 --force 强行复制文件或目录,不论目的文件或目录是否已经存在。访问Linux手册页的命令。原创 2022-12-14 22:34:04 · 62 阅读 · 0 评论