
Linux
文章平均质量分 92
这里收录了关于Linux的文章
苏貝貝
勤奋耕耘,收获满满;不辍努力,未来可期。
展开
-
【Linux】vim
在命令模式下,先对100或101行yy,再p一下,然后按shift+i再进入插入模式,将用户名改为zkj。我们可以实现命令模式和插入模式的转换,命令模式和底行模式的转换,那么能否直接实现插入模式和底行模式的转换呢?按wq退出时,会报错,别慌,只需要将wq改成 wq!原创 2024-04-10 09:00:00 · 898 阅读 · 0 评论 -
【Linux】进程(6):环境变量
当我们登录Linux系统时,环境变量对应的配置文件被加载到了bash进程中,所以默认我们查到的环境变量是内存级的,我们对环境变量PATH的修改也是在内存里修改,并不影响环境变量对应的配置文件。对于./myprocess进程,其父进程是bash,且在Linux登录时,环境变量对应的配置文件被加载到了bash进程中,所以./myprocess进程能看到并访问bash的数据(环境变量)是可以理解的。在Linux系统中,有80%的命令都是bash创建子进程执行的,如:ls,mkdir,cp等;原创 2024-06-05 18:00:00 · 1064 阅读 · 0 评论 -
【Linux】进程(7):地址空间
在小学的时候,大家都应该和同桌在桌子上划过“三八线”吧,现在假设你和同桌2个人共用一个100cm的桌子, 你们每个人50cm,那这如何用计算机语言来描述呢?只需要构建2个结构体,第二个结构体表示一个课桌分为左右两部分,第一个结构体表示每部分的开始和结束位置,再构建第二个结构体的结构体变量,最后将左右两块空间的起始和终止位置都赋值即可如果同桌太过分了,每次都侵占了属于你的10cm区域,再用计算机语言来描述事实上,地址空间本质是内核的一个struct结构体(struct mm_struct)原创 2024-06-07 06:45:00 · 1070 阅读 · 0 评论 -
【Linux】Linux编译器-gcc/g++使用
Linux中编译程序后默认的可执行程序的文件名为a.out,这也可以被修改。用gcc filename -o you.exe或者gcc -o my.exe filename (-o my.exe 要与filename相邻)。g++同理Gcc命令:gcc -DV1 test.c / gcc -D V2 test.c /gcc -DV3=1 test.c(-D和V1之间可以有空格,也可以没有)原创 2024-04-10 21:31:36 · 1499 阅读 · 0 评论 -
【Linux】进程(2):进程状态
如果没有父进程读取,该进程虽然已经运行完毕但task_struct会一直存在,即僵尸进程,task_struct占的空间非常大,这就导致内存泄漏。因为直接在命令行中启动的进程,它的父进程是bash,bash会自动读取新进程的退出信息,然后由操作系统释放。编译.c文件,运行进程,通过每秒显示的进程信息中我们发现,进程处于S+状态,而非R状态(运行状态),这是为什么?原创 2024-05-31 18:00:00 · 1390 阅读 · 0 评论 -
【Linux】进程(9):进程控制1
exit底层调用的就是_exit,因为杀掉进程本质就是释放进程对应的代码和数据,释放进程的除pcb以外的其它内核数据结构。一个进程结束,系统会释放它对应的代码和数据的空间,释放内核数据结构(mm_struct和页表),但是task_struct会维持一段时间,变成Z状态(僵尸状态),系统会将进程的退出码和退出信号写入进程的task_struct中,等待父进程进行读取。原创 2024-06-09 07:00:00 · 2200 阅读 · 1 评论 -
【Linux】进程(1)
父进程的代码和数据是从磁盘加载过来的,子进程的代码默认继承父进程的代码,数据我们后面会学:如果子进程没有写入,那父子进程的数据也是共享的,如果父子进程中有一个要对数据进行写入,那么会发生写时拷贝,数据就不共享了。所以,如果没有存储器(内存),那么一台电脑的成本就高,而高成本的东西是不利于广泛传播和使用的,所以内存的存在还是非常有必要的。第一行是我们所找的myprocess进程,第二行是我们使用grep命令所运行的进程,记得吗,我们前面讲的,在Linux中运行的大部分执行操作,本质都是运行进程。原创 2024-05-31 08:25:44 · 1050 阅读 · 0 评论 -
【Linux】调试器-gdb使用
在上面的print/p命令中,想要知道每次循环时a/&a,就要在每次循环时print/p a/&a,很麻烦,且没有必要,所以出现了display,只要display a/&a,在每次循环时,自动出现a/&a。原创 2024-05-14 08:00:00 · 1129 阅读 · 1 评论 -
【Linux】进程(8):Linux真正是如何调度的
假如此时active指针指向array[0],那么CPU调度进程时,就访问array[0]的quene[140],这时array[0]的quene[140]的队列只出不进:进程结束,就从CPU上剥离进程的pcb;等到本quene[140]中没有进程了,就将active指向array[1],让empired指向array[0],CPU运行进程时,就访问array[1]的quene[140],此时它就变成了只出不进,另一个就是只进不出。可能有人会说了,那这不还是要遍历吗,看每一个下标对应的比特位是否为0?原创 2024-06-07 18:00:00 · 1246 阅读 · 0 评论 -
【Linux】进程(5):命令行参数
在我们命令行输入的时候,Linux中会有一些内部的功能将输入的整体的字符串打散成4个字符串:./myprocess ,-a,-b和-c(它们之间以空格作为分隔符)。根据上面的代码,我们能够感觉到,数组argv是个变长数组,最后一个元素指向NULL,argc是数组的非NULL元素个数,我们以./myprocess -a -b -c为例。第二个参数明显是指针数组,每个元素的类型是char*,这说明每个元素指向的要不是字符,要不是一个字符串,它的作用是存储用户从命令行输入进来的参数。原创 2024-06-05 06:00:00 · 652 阅读 · 0 评论 -
【Linux】进度条
7。原创 2024-04-17 09:00:00 · 953 阅读 · 0 评论 -
【Linux】进程(9):进程控制2(进程等待)
睡眠8秒后,父进程等待子进程退出,子进程已经退出,wait函数得到子进程的pid,解决子进程退出的僵尸问题。我们上面讲的,都是如果子进程没有退出,那么父进程在执行waitpid时在阻塞等待,这表示在等待期间,父进程其它事情什么都没有干。其中次8个比特位表示退出状态,即退出码。上面代码的意思是,如果子进程代码跑完了,即正常退出,那么查看子进程的退出码。当然不能,因为进程具有独立性,子进程写入时,会先发生写时拷贝,所以父进程看不到子进程写入的数据,因此不能使用全局变量来接收退出码和退出信号。原创 2024-07-10 06:00:00 · 1117 阅读 · 0 评论 -
【Linux】git
如下面的,先建立一个后缀名为.o的文件test.o,再git add . ,再用git status,发现与之前相比没有变化,所以提示说没有能提交的。git push:将git的本地仓库同步到git的远端仓库,此时在gitee上我们刷新一下就能看到有ProcessBar文件夹。等到我们将git的本地仓库同步到git的远端仓库,我们就能在gitee刷新后的界面中看到。原创 2024-04-17 20:20:32 · 1161 阅读 · 0 评论 -
【Linux】权限理解
就是通过一定的条件,拦住一部分人,给了一部分人权力,来访问某种资源。比如:腾讯视频的vip能看一些非vip不能看的电影。原创 2024-04-02 19:10:11 · 1540 阅读 · 1 评论 -
【Linux】进程(4):优先级
优先级是指定进程获取某种资源(如CPU)的先后顺序一个进程有一个task_struct结构体,所以里面有许多内部字段,内部字段中存在几个与优先级有关的数据(如:int prio=?Linux中优先级数字越小,优先级越高。原创 2024-06-03 18:00:00 · 572 阅读 · 0 评论 -
【Linux】进程(3):运行,阻塞,挂起
但是在时间片内,进程1还没有执行完成,要从CPU上剥离,这时CPU会将寄存器内的临时数据存入进程的task_struct中,CPU的寄存器内的临时数据也叫进程的上下文,即将上下文数据存入task_struct中。等到用户按了键盘上的按键,通过驱动程序会被操作系统最先知道,知道之后,将设备的struct device的工作状态改为ok,再将在设备队列里的进程重新链回到运行队列中(这个过程叫唤醒),等CPU再次调度时,会执行scanf后续代码,将键盘设备的数据读取。我们知道,操作系统是管理软硬件资源的。原创 2024-06-03 07:00:00 · 1514 阅读 · 0 评论 -
【Linux】进程(9):进程控制3(进程程序替换)
先直接看代码和现象,execl函数先不用管,后面会说到通过结果我们发现,进程在执行完第一个printf函数后,执行的是ls -a -l的命令,而且不再执行第二个printf函数。所以,我们可以看出,execl函数的作用是让进程通过execl函数,执行新的程序。还是不理解,现在让我们来了解进程程序替换的原理。原创 2024-07-10 18:00:00 · 866 阅读 · 0 评论