Linux C++网络编程

要想找一份Linux c++ 方面的好工作,在面试过程中游刃有余,那么这篇文章就是为你定制的。因为作为一个校招的学生,我在学习和面试过程中的经历总这个体系的文章,希望可以帮助到你。因为内容太多,本文先从学习资料入手。

谈到 Linux c++ 网络编程,一时之间不知从何入手,那么大问题不好解决,就拆解成小问题逐个击破。
Linux C++网络编程_第1张图片

一、Linux

起初对 Linux 的认识就是黑框、高大上。但是在慢慢接触的过程中你会逐渐爱上她,因为你会省去双手从键盘移动到鼠标的时间,同时他一切皆文件 的思想,让你管理任何东西都可以像操作文件一样简单。那么接下来介绍我的 Linux 学习之路。

我的学习方法有两种:
Linux C++网络编程_第2张图片
我个人学习一门新的东西,喜欢将其拆分成一个个模块分而治之,然后再将他们糅合起来总体把握,再拆分、再糅合…… 那么我们将 Linux 也拆分成模块进行学习:

目录结构

Linux 既然一切皆文件,那么就从文件入手:
在这里插入图片描述
上面的文件目录大体功能:

  • root,该目录为系统管理员,也称作超级权限者的用户主目录。

  • home,用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

  • bin(binary缩写),存放二进制可执行文件,存放常用命令的目录,如vi,su

  • mnt,默认挂载光驱和软驱的目录,如果你想共享win文件,需要挂在到这里

  • etc,存放配置的相关文件

  • var,存放经常变化的文件,如网络连接的sock文件 、日志

  • boot,存放引导系统启动的相关文件

  • usr,很重要的文件,安装一个软件的默认目录,相当于windows下的program files

  • proc,这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息

  • srv ,service缩写。该目录存放一些服务启动之后需要提取的数据

  • sys,这是linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统

  • tmp,这个目录是用来存放一些临时文件的

  • del,类似于windows的设备管理器,把所有的硬件用文件的形式存储

  • media,系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。

  • opt,这是给主机额外安装软件所摆放,如安装oracle数据库就可放到该目录下默认为空。

  • selinux,selinux是一种安全子系统,它能控制程序只能访问特定文件。
    Linux C++网络编程_第3张图片

文件操作

  • ls: 展示文件夹内容

  • cd: 进入当前文件夹

  • tar: 解压缩文件, 解压 tar -zxvf filename, 压缩 tar -zcvf filename.tar.gz filename

  • mv: 移动文件 mv srcFile destFile

  • find:查询文件 find 查询目录 filename

  • tree:列举当前文件树结构

  • rm: 删除文件 rm -rf filename

  • mkdir:创建文件 mkdir filename

权限操作

  • chmod:更改文件权限

  • chown:更改文件所有者

网络命令

  • tcpdump:抓包命令

  • curl: http 请求模拟工具

  • nc: 网络界的“瑞士军刀” 分析网络工具

  • lsof: 查看文件描述符命令 -Pni

  • netstat:查看网络连接状态 -anp

  • telnet: 查看端口是否开启

  • ping: 查看主机是否开启

  • ifconfig:查看ip 子网掩码等

进程命令

  • ps: 查看进程状态 -ef -ajx -aux

  • top: 显示进程的数据包括PID、进程属主、优先级、%CPU、%memory等

  • kill: 杀死进程 -10 -9

  • pkill:杀死进程 pkill <进程名>

  • ulimit:ulimit -a 显示当前用户关联的资源限制

注意:只有动手敲才能更快更深的掌握,切记要搞手低

二、C++

学习 C++ 本身就是一个浩瀚的工程,不是一簇而就的。但是掌握了 C++ ,学习其他语言也就相对容易(还有什么比程序员自己管理垃圾回收更难的吗?)。
Linux C++网络编程_第4张图片
linux技术栈

C/C++Linux服务器开发/架构师

三、网络

计算机世界的发展永远离不开网络,只要你是一名程序员网络应该是必备知识,无论是前端还是后端都和网络息息相关。

网络模块根据层次划分:应用层、传输层、网络层、实体层

  • 应用层:HTTP 协议:post / get请求、请求头 / 请求行 / 请求体等

  • 传输层:TCP / UDP、拥塞控制、超时重传、内核参数、半(全)连接队列等

  • 网络层:IP / ICMP 等协议

  • 实体层:MTU / ARP 攻击等

总结

不管学习任何一门知识,都需要静下心来,一步一步来,不要怕出错,出错的过程中才能更好的学习,掌握的更加通透,稳扎稳打。

需要C/C++ Linux服务器架构师学习资料加群960994558获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享Linux C++网络编程_第5张图片

你可能感兴趣的:(Linux,C/C++,C++,Linux,服务器开发)