> 文章列表 > C++ Linux Web Server 面试基础篇-操作系统(一、Linux基础)

C++ Linux Web Server 面试基础篇-操作系统(一、Linux基础)

C++ Linux Web Server 面试基础篇-操作系统(一、Linux基础)

⭐️我叫忆_恒心,一名喜欢书写博客的在读研究生👨‍🎓。
如果觉得本文能帮到您,麻烦点个赞👍呗!

近期会不断在专栏里进行更新讲解博客~~~ 有什么问题的小伙伴 欢迎留言提问欧,喜欢的小伙伴给个三连支持一下呗。👍⭐️❤️
Qt5.9专栏定期更新Qt的一些项目Demo
项目与比赛专栏定期更新比赛的一些心得面试项目常被问到的知识点。

Linux Web Server项目虽然是现在C++求职者的人手一个的项目,但是想要吃透这个项目,还是需要一定的基础的,以项目为导向,进行基础的学习。

涵盖了计算机网络(网络编程)常见的知识点和常见的操作系统知识

博主参加过大大小小的互联网厂和银行的秋招和春招的笔试与面试,整理了下面的2万7千字的长文(😄都是干货,写作不易啊),喜欢,觉得有帮助的,欢迎订阅专栏,后续有很多优质的文章进行更新,有任何疑问,欢迎留言!
C++ Linux Web Server 面试基础篇-操作系统(一、Linux基础)

目录

      • 1、GDB调试
      • 2、多进程和多线程地调试
      • 3、熟悉Linux环境的常见命令
      • 4、VIM 常用命令

1、GDB调试

GDB调试:gdb调试的是可执行文件,在gcc编译时加入 -g ,告诉gcc在编译时加入调试信息,这样gdb才能调试这个被编译的文件 gcc -g tesst.c -o test

GDB命令格式:

  1. quit:退出gdb,结束调试

  2. list:查看程序源代码

    list 5,10:显示5到10行的代码

    list test.c:5, 10: 显示源文件5到10行的代码,在调试多个文件时使用

    list get_sum: 显示get_sum函数周围的代码

    list test,c get_sum: 显示源文件get_sum函数周围的代码,在调试多个文件时使用

  3. reverse-search:字符串用来从当前行向前查找第一个匹配的字符串

  4. run:程序开始执行

  5. help list/all:查看帮助信息

  6. break:设置断点

    break 7:在第七行设置断点

    break get_sum:以函数名设置断点

    break 行号或者函数名 if 条件:以条件表达式设置断点

  7. watch 条件表达式:条件表达式发生改变时程序就会停下来

  8. next:继续执行下一条语句 ,会把函数当作一条语句执行

  9. step:继续执行下一条语句,会跟踪进入函数,一次一条的执行函数内的代码

  10. 条件断点:break if 条件 以条件表达式设置断点

2、多进程和多线程地调试

多进程下如何调试:用set follow-fork-mode child 调试子进程

​ 或者set follow-fork-mode parent 调试父进程

多线程如何调试:

(gdb) info threads
//查看线程信息,当前被调试的是那个线程
(gdb) set scheduler-locking on
//不执行其他线程,锁定调试对象
(gdb)thread 2
//将调试切换到子线程,其ID为2

关于调试进程池或线程池程序的一个不错的方法:
先将池中的进程个数或线程个数减少至一,以观察程序的逻辑是否正确,然后逐步增加进程或线程的数量,以调试进程或线程的同步是否正确。

例如一个程序名为prog 参数为 -l a -C abc
则,运行gcc/g++ -g  prog.c/cpp -o prog
就可以用gdb调试程序prog
#gdb prog
进入gdb调试界面
输入参数命令set args 后面加上程序所要用的参数,注意,不再带有程序名,直接加参数,如:
set args -l a -C abc

多进程下如何调试:用set follow-fork-mode child 调试子进程

​ 或者set follow-fork-mode parent 调试父进程

3、熟悉Linux环境的常见命令

  • cd命令:用于切换当前目录
  • ls命令:查看当前文件与目录
  • grep命令:该命令常用于分析一行的信息,若当中有我们所需要的信息,就将该行显示出来,该命令通常与管道命令一起使用,用于对一些命令的输出进行筛选加工。
  • cp命令:复制命令
  • mv命令:移动文件或文件夹命令
  • rm命令:删除文件或文件夹命令
  • ps命令:查看进程情况
  • kill命令:向进程发送终止信号
  • tar命令:对文件进行打包,调用gzip或bzip对文件进行压缩或解压
  • cat命令:查看文件内容,与less、more功能相似
  • top命令:可以查看操作系统的信息,如进程、CPU占用率、内存信息等
  • pwd命令:命令用于显示工作目录。

4、VIM 常用命令

vi编辑器常用的命令

:n,m w path/filename 保存指定范围文档( n表开始行,m表结束行)

:q! 对文件做过修改后,强制退出

:q 没有对文件做过修改退出

Wqx 保存退出

dd 删除光标所在行

set number 显示行号

:n 跳转到n行

:s 替换字符串 😒/test/test2/g /g全局替换 /也可以用%代替

/ 查找字符串

具体的使用方法:
C++ Linux Web Server 面试基础篇-操作系统(一、Linux基础)

最后,最后
如果觉得有用,麻烦三连👍⭐️❤️支持一下呀,希望这篇文章可以帮到你,你的点赞是我持续更新的动力