目录一,跟正宗的bash见个面二,实现一个山寨的bash1.提示符2.输入命令与回显命令 3.解析命令4.执行命令5.执行逻辑三,全部代码一,跟正宗的bash见个面 在这篇文章中,我会写一个myshell小程序。这个小程序其实就是一个解释器。在我的机器上它长这样: 二,实现一个山寨的bash1.提示符在图:中。这个提示符的信息可以分为四类:1.用户名 2.主机名 3.当前地址 4.其他字符在这个图片里:cq就是用户名 VM-8-9-centos就是主机名 mybash就是当前所在路径。那我们该如何获取呢?两条路:1.其它字符直接打印 2.用户名等用环境变量获取。代码如下:#inclu
1、挂载镜像文件,CentOS-7-x86_64-DVD-1804.iso,并且要处于连接状态#光盘挂载至/mntmount/dev/sr0/mnt#备份yum源文件cd/etc/yum.repos.d/mkdir-p./bakmvCentOS*./bak#编缉本地源vimlocal.repo[centos7]name=CentOS7baseurl=file:///mntenable=1gpgcheck=0 关闭防火墙并设置开机不启动firewall服务开启与关闭firewalld状态:#systemctlstatusfirewalld.service关闭firewalld:#systemct
本文基于内核5.4版本源码讨论在前面两篇介绍mmap的文章中,笔者分别从原理角度以及源码实现角度带着大家深入到内核世界深度揭秘了mmap内存映射的本质。从整个mmap映射的过程可以看出,内核只是在进程的虚拟地址空间中寻找出一段空闲的虚拟内存区域vma然后分配给本次映射而已。vma=vm_area_alloc(mm);vma->vm_start=addr;vma->vm_end=addr+len;vma->vm_flags=vm_flags;vma->vm_page_prot=vm_get_page_prot(vm_flags);vma->vm_pgoff=pgoff;如果是文件映射的话,内核还
目录🎃了解goto语句🚀前言🕹️运行效果🛸运行原理🎢程序源码🍻最后开始整人最后🎃了解goto语句C语言提供了⼀种非常特别的语法,就是goto语句和跳转标号,goto语句可以实现在同⼀个函数内跳转到设置好的标号处。#includeintmain(){ printf("1234\n"); gotonext;//goto到next语句 printf("5678\n");//被夹在里面的语句被跳过无法执行。next: printf("跳过了5678的打印\n"); return0;}运行结果:程序执行过程:该程序先从上往下执行,得到1234,之后遇到goto语句后,程序将会直接从gotonext跳到n
上一篇介绍了一个最简单的驱动程序和驱动程序大体结构,但那还是用本地编译只能在Ubuntu上运行,我们该怎么编译一个能加载到开发板上呢,就需要交叉编译,交叉编译通常都是在嵌入式开发中使用到的。交叉编译理解交叉编译前先了解下本地编译:是指编译源代码的平台和执行源代码编译后程序的平台是同一个平台。例如在x86平台下编译的程序,就只能在x86平台下运行。而我们现在是在Ubuntu下(x86)编译,到ARM开发板(arm)上去运行自然不行,所以交叉编译:是指编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台,其中运行编译程序称为宿主机,运行编译程序所产生目标代码的称为目标机。那为什么不在ARM
磁盘分析命令:df-h查看当前文件夹所有文件大小:du-sh*查看docker各容器占用的磁盘空间du-d1-h/var/lib/docker/containers|sort-hdocker日志文件:containers哈希名加后缀-json.log清空日志命令,如:cat/dev/null>/var/lib/docker/containers/`container_id`/`container_id`-json.log限制日志文件的大小,设置日志文件的格式。dockerrun-it--log-optmax-size=10m--log-optmax-file=3alpineashdockers
Hosts文件是一种在计算机网络中存储主机名与IP地址对应关系的文本文件。通过配置Hosts文件,可以避免在网络环境中DNS无法正常解析时,出现无法访问互联网的问题。Windows修改hosts文件1以windows10系统为例,手指同时按住windows键和X键,在电脑桌面右下角弹出来的菜单里选择WindowsPowershell(管理员)2在打开的powershell界面输入notepad,按回车,就会出现记事本的界面。3在记事本界面点击文件,然后点新建,在弹出来的窗口里找到路径c:\windows\system32\drivers\etc\,找到后可以看到目录里面是空白。点击右下角的选择
>作者简介:დ旧言~,目前大二,现在学习Java,c,c++,Python等>座右铭:松树千年终是朽,槿花一日自为荣。>目标:了解冯诺依曼体系结构与操作系统,掌握Linux的进程>毒鸡汤:一花凋零荒芜不了整个春天,一次挫折也荒废不了整个人生。>望小伙伴们点赞👍收藏✨加关注哟💕💕 🌟前言 本篇博客基于学习完冯诺依曼体系结构与操作系统及其进程,进一步深度理解进程,学习完本篇对进程的理解会更上一层楼,想必大家已经按耐不住接收新的知识,那咱们话不多说进入今天的主题--->【Linux】进程状态、进程优先级和进程切换😳😳。⭐主体我们从以下学习【Linux】进程状态、进程优先级和进程切换🤗🤗
👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C++》《Linux》🌝每一个不曾起舞的日子,都是对生命的辜负目录前言1.程序地址空间1.1验证地址空间的排布 1.2利用fork函数观察当子进程修改某个共享变量时父子进程分别读取到的值和地址2.进程地址空间2.1操作系统是如何建立起进程与物理内存之间的联系的呢? 2.2什么是进程地址空间?2.3为什么有进程地址空间和页表2.4malloc和new开辟空间的原理2.5页表与写时拷贝的更多细节前言在之前学习进程概念时我们提到过fork函数,了解了如何创建进程,并且知道了fork之后的父
ssh登录作用在开发时,通常会用Terminal通过ssh登录到每个服务器里,打开服务器终端,以进行开发,通常来说,一个服务器会给出如下的几个信息:hostIPpassword登录服务器基本格式:sshuser@hostnameuser:用户名hostname:IP地址/域名如果是第一次登录的时候,会有提示,输入yes,输入密码,即可登录,密码输入时不显示。输入exit/ctrl+d/logout即可退出当输入yes时,会将服务器信息存入ssh文件夹中的known_hosts文件(~/.ssh/known_hosts),再次登录就无需验证Yes修改端口号默认端口号为22,修改端口号的基本命令格