linux常用
文章平均质量分 59
Linux的知识点
虎式坦克我最爱
这个作者很懒,什么都没留下…
展开
-
网络编程-线程同步技术
线程A访问共享资源步骤:A对共享资源上锁-A访问共享资源-A释放锁;此时共享资源没有被上锁,才能由其他线程进行访问,在A访问期间,其他线程将被阻塞直到A释放锁。原创 2023-03-20 16:33:48 · 102 阅读 · 0 评论 -
gcc,g++编译选项-网络编程学习笔记
生成可使用gdb调试的代码。搜索指定的库文件路径。生成共享目标文件,建立共享库时使用。生成与位置无关的代码。使用代码中的DEBUG宏,输出其中的信息。使用指定的库文件链接生成可执行文件。最后就是链接成可执行文件,链接启动文件,库文件,.o文件。使用指定的路径搜索头文件。将文件生成二进制机器.o文件。通过预编译器生成.i文件。gcc -i 或大i。将文件生成汇编.s文件。gcc -l (小L)原创 2023-03-08 13:28:20 · 136 阅读 · 0 评论 -
Linux面试题
find /home -name "main.cpp" 查找home目录下名字为main.cpp的位置。返回:ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz。特别需要注意空格问题!{}的两边需要空格,\前面需要空格,后面没有空格紧跟;-ok选项代表并且的意思,我们找到这些文件需要进行操作后面接操作的命令。alias ls -l gg 将ls -l 命令取别名为gg。返回非常多的内容,基本上所有文件带ls的都返回了。返回目录中大小大于5M的文件,这里命令出错了!原创 2023-09-17 21:46:57 · 64 阅读 · 0 评论 -
网络编程-epoll多路复用技术
原创 2023-04-24 17:22:52 · 75 阅读 · 0 评论 -
Linux网络编程-Makefile
一个项目中有太多的cpp文件,.h头文件等,编译的时候可能有依赖关系,即需要确定哪些文件需要先编译,哪些文件需要后编译,由于文件太多,当某个文件修改后需要重新编译,再去数哪些需要编译的文件是不合适的,不如定义一个文件,可以用一条指令就能运行。这就是Makefile文件,运行命令即make -j16,可以指定处理器数量加快运算速度。原创 2023-03-09 11:06:00 · 94 阅读 · 0 评论 -
Linux网络编程-GDB调试
在黑乎乎的shell命令行中,gdb成了你手中照路的手电筒--鲁x。原创 2023-03-09 15:07:30 · 111 阅读 · 0 评论 -
标准c库IO函数与Linux基础
文件描述符在内核区进程管理中,有一个文件描述符数组用来存储,0,1,2分别是标准输入,标准输出和标准错误,他们指向的是当前终端,文件描述符数组最大长度是1024。mode 无符号8进制数表示该新增文件的权限,最高为0777,因为rwx二进制最大为7,而有用户权限,组权限和其他组对该文件的权限,其中x是可执行的意思。虚拟地址空间由两部分构成,内核区和用户区,内核区有进程管理,内存管理,,堆空间,未初始化全局变量区,初始化全局变量区,二进制代码段,原创 2023-03-15 15:29:46 · 116 阅读 · 0 评论 -
网络编程-多线程基础
各个线程会占据栈空间的一部分,也会占据代码段的一部分,而其余虚拟地址空间对各个线程来说是共享的。现在 的线程实现是NPTL的,命令查看当前线程库版本。原创 2023-03-20 11:05:09 · 68 阅读 · 0 评论 -
网络编程-网络协议tcp-ip-http
还有的ip地址写为192.168.100.1/24代表子网掩码有24个1,即B类网络。端口绑定指定应用程序,0~1024是知名端口号,如80是万维网端口号,21是FTP。原创 2023-03-27 11:19:50 · 49 阅读 · 0 评论 -
Linux网络编程-静态库和动态库
其中的参数在上篇gcc 编译可选项中讲过,-o是生成自己想要的名字,-I(大i)是找到自己的头文件目录,因为静态库制作并不包含头文件信息,-l(小L)加的是自己刚制作的静态库名称,-L是自己静态库的目录,便于找到该库。静态库是在链接阶段打包到可执行文件中的,加载速度快,而动态库是独立于可执行文件的,它运行在ram随机存储内存中。但是动态库在链接时只有简要信息,生成的可执行文件并不包含动态库代码,所以需要加入到环境变量中,供系统调用。动态库使用和静态库一致,也需要头文件目录,库文件名称及目录。原创 2023-03-08 16:35:45 · 157 阅读 · 0 评论 -
linux下git第一次使用记录
git 的原理不是很懂,但它涉及分布式系统和远程连接技术,很多教程可能由于和自己需求不一致导致上传不上去。复制里面的密钥,在GitHub上点击个人头像,settings 有个ssh密钥,填进去。另外初始化一个本地仓库和配置名称,修改部分文件,添加tags版本之后再写。git commit -m "的施工图回复的噶 "首先我的电脑上本来就有git的,我还是装了一遍。push到远程GitHub仓库中,推荐ssh链接。注册自己的GitHub账号密码。cd到克隆的文件夹中。cd到自己的工作目录。原创 2023-04-26 17:27:39 · 108 阅读 · 0 评论 -
网络编程-main函数主要逻辑
我们知道,c++网络编程有建立套接字,绑定端口号,监听端口号这三个步骤,然后等待epoll连接事件到来,客户端连接请求,服务端接受请求,若是epoll中的事件是读写事件,则进行读写操作。在这个阶段,内核做了一些事情,内核维护了两个队列,一个是已经连接的队列,一个连接请求但未连接,该函数最后一个参数即队列的最大的请求数量限制。做好这一切,我们就可以开启死循环,调用epoll_wait函数,返回epoll数组中事件个数,遍历事件数组中事件个数,并进行处理。这个函数是建立一个套接字,返回一个文件描述符。原创 2023-05-22 10:49:58 · 78 阅读 · 0 评论 -
Linux常用指令记录
1.安装指令,挂了VPN速度更快proxychains4 pip install nibabel2.清华镜像源下载库pip install tensorflow==1.8 -i https://pypi.tuna.tsinghua.edu.cn/simple3. 复制文件cp -r 源地址 目的地址4.迭代删除目录下所有文件rm -rf 目录5.查看服务器内存情况,内存不够将会导致传输文件错误甚至新建文件夹失败df -h6.查看h...原创 2022-05-10 17:50:24 · 485 阅读 · 0 评论