网站建设的技术需要,内容类网站如何 流量,什么是网站死链,久久诗词网1、说一说常用的 Linux 命令 mkdir创建文件夹#xff0c;touch创建文件#xff0c;mv移动文件内容或改名 rm-r 文件名#xff1a;删除文件 cp拷贝#xff1a;cp 文件1 文件2#xff0c;cp-r跨目录拷贝 cp-r 路径1 路径2 vi 插入 #xff1a;wqb保存退出 :q!强制退出…1、说一说常用的 Linux 命令 mkdir创建文件夹touch创建文件mv移动文件内容或改名 rm-r 文件名删除文件 cp拷贝cp 文件1 文件2cp-r跨目录拷贝 cp-r 路径1 路径2 vi 插入 wqb保存退出 :q!强制退出 :w另存为 :set nn显示行号 查看文件内容cat看内容少的文件 cat还可以合并两个文件内容 cat a.c b.cc.c more分屏显示回车下一页按b回滚按空格往下到最后自己退出 less上下查看也很方便而且可以反复查看 head tail 看文件前几行、后几行 find 路径 -name还可以加cmin\ctime按最近几分钟几天查找文件名 grep-i “字符串” 文件名 查找该文件里的字符串grep用来过滤 ps显示正在运行的进程ps-e显示所有进程信息ps-f详细信息ps-L显示线程id pstree树状显示进程和其子进程 kill pid 杀死进程 tar-z压缩、解压tar cvf打包tar xvf释放包最简单解压tar zxf tcpdump抓包 netstat 监控tcp/ip网络的工具可以显示与ip、tcp、udp、icmp协议相关数据一般检验本机各端口的网络连接情况。 可以参考tcpdump详解实战 - 知乎 2、静态库和动态库如何制作及使用 静态库的制作命名规则libxxx.alinuxlibxxx.lib(windows)先用.c文件生成.o文件打包生成静态库ar crv libfoo.a add.o max.o; 使用gcc -o main main.c -l路径 -l库名 动态库的制作命名规则libxxx.so linuxlibxxx.dll(windows);先用.c文件生成.o文件gcc -c –fpic/-fPIC a.c b.c打包生成动态库gcc -shared a.o b.o -o libfoo.so 使用gcc -o main main.c -l路径 -l库名 静态链接时——依赖静态库把所需要的函数二进制代码都包含进可执行程序中本质是代码拷贝。 动态链接时——依赖动态库它用过一系列符号或者参数在函数执行或加载时把信息传递给操作系统由操作系统赋负责将需要的依赖库加载到内存中程序在执行时加载已经存在于内存的代码。 3、请你说说动态库静态库的区别和优缺点 1.使用方式不同静态链接把静态库编译进目标文件直接运行动态链接运行时加载已经存在于内存的代码需要给程序环境指定动态库查找环境 2.占用空间静态库会存在多个副本内存和磁盘比较浪费系统资源动态库只有一个副本 3.库文件发生改变时静态库当接口参数、函数名等发生改变时需要重新编译依赖其的程序也要重新编译链接动态库发生改变时只需要重新编译动态库 4.移植程序时依赖静态库的可执行文件不需要做什么静态库的代码已经被编译进可执行文件了依赖动态库的可执行文件移植时需要把动态库也移植过去 4、简述一下 GDB 常见的调试命令 用gdb调试时首先要把它转为debug版本加个-g l显示代码b加断点bt查看函数堆栈信息info查看断点r运行p打印某个参数 s进入函数info break查看断点信息 5、说一说进程调度算法有哪些 先来先服务调度算法——从进程队列中选择最先到达的一个或几个进程将它们调入内存为他们分配资源、创建进程。当每个进程就绪后将它们加入就绪队列。当前正在执行的进程停止运行时选择存在于就绪队列中最久的进程开始执行。 短作业优先调度算法——从后背队列中选择运行时间最短的一个或多个作业进程将它们调入内存将处理机分配给它使之立即执行直到任务完成或阻塞才释放处理机。 高响应比优先调度算法——它是一种基于先来先服务和短作业优先的一种平衡。考虑到每个作业的等待时间和运行时间。先计算后备作业队列中每个作业的响应比从中选出响应比最高的作业投入运行。 优先级调度算法——作业调度中从后备队列里选择优先级最高的作业将它们调入内存、分配资源创建进程并加入就绪队列进程调度中每次选择就绪队列中优先级最高的进程为其分配处理机使之运行。 时间片轮转调度算法——cpu从作业队列队首开始给每个都分配一定的时间时间片不固定当执行完时间片由时钟发出一个中断请求调度程序收到信号就让它停止执行把它放去就绪队列的队尾然后再把处理机分配给新队首也让它执行一个时间片。 多级反馈队列调度算法——时间片轮转调度算法和优先级调度算法的综合和发展通过动态调整进程优先级和时间片大小多级反馈队列调度算法可以兼顾多方面的系统目标。 6、说一说什么是大端、小端如何判断大端和小端 小端——整数的低位存在低地址高位存在高地址 大端——整数的低位存在高地址高位存在低地址 判断在32为平台下,int占4个字节char类型的指针占1个字节先用char类型的取一个字节再用int取四个再把int强转成char就只能取出一个字节了如果两个一样说明是小端不一样就是大端。 7、什么是孤儿进程什么是僵尸进程如何解决僵尸进程 孤儿进程——父进程已经释放子进程还在被init进程号为1的进程收养孤儿进程一般无危害。 僵尸进程——使用fork()创建的子进程退出了但父进程不知道没有使用wt或wtpid取得子进程的终止状态子进程还占着系统资源。 解决僵尸进程在fork()子进程时父进程及时wt、wtpid获取子进程的状态子进程退出时释放pcb资源。退出时内核都会给父进程一个SIGCHILD信号所以我们可以建立一个信号捕获函数在函数体中调用wt\wtpid。 8、说一说进程通信的方式有哪些 socket套接字、管道、共享内存、消息队列、信号 socket——主要用于不同主机之间的通讯 管道——有名任意进程和无名亲缘关系进程他有读写两个文件描述符写在前读在后并且读写完还可以循环从另一端重新开始。 共享内存——把一个进程的数据复制到共享内存中别的同一个段物理内存的一个区域的进程可用。 消息队列——一个消息链表有读权限的可以读消息队列上的信息有写权限的可以在上面写信息。 信号——有事件发生时对进程通知也称为软中断。它是在软件层次上对中断机制的一种模拟是一种异步通信的方式。信号可以导致一个正在运行的进程被另一个正在运行的异步进程中断转而处理某一个突发事件。 9、说一说进程有多少种状态如何转换 创建 就绪 运行 阻塞 终止 创建进程获得许可资源已经准备好但还未分配处理机时是就绪状态获得处理器资源后被系统调度开始运行如果时间片用完会回到就就绪态或者阻塞住了就会进入阻塞状态阻塞结束后又进入就绪状态运行结束就进入终止状态。 10、请你说说共享内存 进程的数据放入共享内存同段进程可以使用就像用自己内存区域的数据一样其中有进程改了数据同段其他进程也会受影响。共享内存在各种进程间通信方式中具有最高的效率不需要系统或切入内核也避免了数据不必要的复制。缺点是没有同步机制不能避免同时操作或读脏数据。进程间的同步是通过其他机制来实现的比如使用信号量、互斥锁等。 这些同步机制可以保证多个进程之间对共享内存的访问是有序的避免了多个进程同时访问同一段内存而导致的数据不一致的问题。