Unix/Linux
_123杨子江
这个作者很懒,什么都没留下…
展开
-
Linux 强制保存“:w !sudo tee %”
Linux 下强制修改并保存文件指令 “:w !sudo tee %”原创 2020-11-13 09:56:52 · 1999 阅读 · 0 评论 -
GCC编译的4个阶段
GCC 编译可以分为4个阶段: 预处理(pre-processing)、编译(compiling)、汇编(assembling)、链接(linking)。一、预处理阶段在预处理阶段,编译器主要作加载头文件、宏替换、条件编译的作用。一般处理带“#”的语句。例如一开始#include <stdio.h>,那么预处理阶段就会把这个stdio.h文件加载到你的.c中去这边还有一个要注意的是#include “stdio.h” 和 #include <stdio.h> 的区别gcc转载 2020-09-18 13:00:16 · 1396 阅读 · 0 评论 -
本人的Linux系统学习
目录2020年6月1、Linux系统常用指令2、命令解析器shell3、Linux下常用快捷键4、linux下的目录结构5、文件和目录操作相关的命令6、用户权限、用户、用户组7、find命令8、grep命令9、find和grep命令结合使用10、Linux中常用的压缩工具11、软件的安装和卸载11.1 在线安装11.2 软件包安装12、VIM13、gcc编译器14、静态库和共享(动态)库15、makefile16、gdb调试17、文件IO2020年6月28日(文件和目录操作)1、文件权限计算方法:2 思考:原创 2020-07-22 17:50:19 · 1153 阅读 · 0 评论 -
处理方法:Linux安装显卡驱动的血与泪
1、最全面解析 Ubuntu 16.04 安装nvidia驱动 以及各种错误2、更新NVIDIA显卡的CUDA驱动出错,You appear to be running an X server; please exit X before3、Ubuntu 安装nvidia驱动一直遇到 pre-install scipt failed 错误4、在sudo su下安装显卡驱动...原创 2020-07-22 11:19:55 · 405 阅读 · 0 评论 -
计算机网络(Linux系统)--libevent
以下引用自:https://zhuanlan.zhihu.com/p/87562010一、libevent介绍Libevent 是一个用C语言编写的、轻量级的开源高性能事件通知库,主要有以下几个亮点:事件驱动( event-driven),高性能;轻量级,专注于网络,不如 ACE 那么臃肿庞大;源代码相当精炼、易读;跨平台,支持 Windows、 Linux、 *BSD 和 Mac Os;支持多种 I/O 多路复用技术, epoll、 poll、 dev/poll、 select 和 kqueue 等.原创 2020-07-14 23:39:53 · 207 阅读 · 0 评论 -
计算机网络(Linux系统)--本地套接字通信
1、IPC 进程间通信(1)pipe管道 半双工 ps_grep(2)fifo有名管道(3)mmap文件映射共享IO --速度最快(4)本地socket套接字 --最稳定(5)信号 --携带信息量最小(6)共享内存(7)消息队列本地套接字是 IPC,也就是本地进程间通信的一种实现方式。除了本地套接字以外,其它技术,诸如管道、共享消息队列等也是进程间通信的常用方法,但因为本地套接字开发便捷,接受度高,所以普遍适用于在同一台主机上进程间通信的各种场景。server.c#include &..原创 2020-07-12 20:38:34 · 474 阅读 · 0 评论 -
计算机网络--Linux下select、poll和epoll之间的区别
目录标题1、select——>原理概述:缺点:1、每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大;2、同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大;3、select支持的文件描述符数量太小了,默认是1024。优点:2、poll——>原理概述:缺点:1、大量的fd的数组被整体复制于用户态和内核地址空间之间,而不管这样的复制是不是有意义;2、与select一样,poll返回后,需要轮询pollfd来获取就绪的描述符。优转载 2020-07-11 23:43:42 · 546 阅读 · 0 评论 -
计算机网络--linux下epoll函数详解
目录标题1、epoll基础(1)epoll基础API(2)server(3)client2、epoll进阶(1)事件模型ET模式LT模式基于网络C/S模型的epoll ET触发模式基于网络C/S非阻塞模型的epoll ET触发模式1、epoll基础 epoll是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率,因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合,原创 2020-07-11 23:33:04 · 258 阅读 · 0 评论 -
计算机网络--linux下poll函数详解
poll函数概述select() 和 poll() 系统调用的本质一样,poll() 的机制与 select() 类似,与 select() 在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量过大后性能也是会下降)。poll() 和 select() 同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。头文件:#转载 2020-07-11 22:00:09 · 957 阅读 · 0 评论 -
计算机网络--linux下select函数详解
select()的使用所需头文件:#include <sys/select.h>#include <sys/time.h>#include <sys/types.h>#include <unistd.h>int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout);功能:监视并等待多个文件描述符的转载 2020-07-11 21:19:48 · 756 阅读 · 0 评论 -
Linux系统--socket端口复用
1 - 端口复用端口复用最常用的用途是:防止服务器重启时之前绑定的端口还未释放程序突然退出而系统没有释放端口设置方法:int opt = 1;SO_REUSEADDR,setsockopt(sockfd, SOL_SOCKET, (const void *)&opt, sizeof(opt));注意事项:绑定之前设置端口复用的属性为什么要有这个端口复用呢因为在服务端结束后,也就是第三次挥手的时候会有个等待释放时间,这个时间段大概是1-4分钟,在这个时间内,端原创 2020-07-11 20:33:23 · 955 阅读 · 0 评论 -
Linux系统--多线程和多进程的并发
一、定义进程:指在系统中能独立运行并作为资源分配的基本单位,它是由一组机器指令、数据和堆栈等组成的,是一个能独立运行的活动实体。线程:线程是进程中的一个实体,作为系统调度和分派的基本单位。Linux下的线程看作轻量级进程。图解定义:进程的三态模型:(1)运行:当一个进程在处理机上运行时,则称该进程处于运行状态。处于此状态的进程的数目小于等于处理器的数目,对于单处理机系统,处于运行状态的进程只有一个。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。(2)就绪:当转载 2020-07-11 18:40:04 · 734 阅读 · 0 评论 -
GitHub克隆仓库
转载:https://blog.csdn.net/K_520_W/article/details/82825318Git版本控制工具之Windows系统安装 项目版本控制软件SourceTree安装SourceTree之Git本地仓库创建⑵下面我们需要将在GitHub上创建的远程仓库克隆到本地 a:首先我们在本地新建一个文件夹用于存放仓...翻译 2019-03-02 12:49:57 · 2748 阅读 · 0 评论 -
Linux系统--缓存的命中与未命中
缓存很有帮助,但缓存无法保存世界上每份文档的副本,即便可以保持也不能进行及时的更新。缓存命中(cache hit):可以用已有的副本为某些到达缓存的请求提供服务。缓存未命中(cache miss):其他一些到达缓存的请求可能会由于没有副本可用,而被转发给原始服务器。1. 再验证HTTP 再验证 (revalidation):原始服务器的内容可能会发生变化,缓存要不时对其进行检测,看看...转载 2019-11-05 17:31:27 · 1210 阅读 · 0 评论 -
Linux系统--buffer与cache有什么区别
Linux 性能优化笔记:内存中的Buffer和CacheLinux中Buffer和Cache的区别对于新手,可以参考如下说明来理解或解答。①.缓冲区(buffer)将数据写入到内存中,这个存放数据的内存空间在linux系统中一般被称为缓冲区(buffer),例如:写入到内存缓冲区,即写缓冲。为了提高写操作性能,数据在写入最终介质或下一层级介质前,会合并放在缓冲区中。这样会增加数据持久写...翻译 2019-11-05 17:23:22 · 133 阅读 · 0 评论 -
Linux系统--liunx进程通信方式
liunx六大进程间通信方式??? 管道,消息队列,共享内存,信号量,socket,信号,文件锁1,管道1,匿名管道:概念:在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,一般使用fork函数实现父子进程的通信。2,命名管道 FIFO:概念:在内核中申请一块固定大小的缓冲区,程序拥有写入和读取的权利,没有血缘关系的进程也可以进程间通信。3,特点:1,面向字节流...翻译 2019-11-05 17:19:11 · 130 阅读 · 0 评论 -
Linux系统--Linux守护进程
守护进程(daemon)是指在后台运行的,没有控制终端与之相连的进程。它独立于控制终端,周期性地执行某种任务。Linux的大多数服务器就是用守护进程的方式实现的。如web服务器进程http等。守护进程在后台运行,类似于Windows中的系统服务。编写守护进程程序的要点:(1)让程序在后台执行。方法是调用fork()产生一个子进程,然后使父进程退出。(2)调用setsid()创建一个新对话期。...翻译 2019-11-05 17:08:40 · 152 阅读 · 0 评论 -
Linux系统--多进程和多线程的区别
https://blog.csdn.net/linraise/article/details/12979473转载 2019-10-26 10:59:47 · 366 阅读 · 0 评论 -
Linux系统--进程与线程的区别
看了一遍排在前面的答案,类似”进程是资源分配的最小单位,线程是CPU调度的最小单位“这样的回答感觉太抽象,都不太容易让人理解。做个简单的比喻:进程=火车,线程=车厢线程在进程下行进(单纯的车厢无法运行)一个进程可以包含多个线程(一辆火车可以有多个车厢)不同进程间数据很难共享(一辆火车上的乘客很难换到另外一辆火车,比如站点换乘)同一进程下不同线程间数据很易共享(A车厢换到B车厢很容易)...转载 2019-10-21 11:29:34 · 226 阅读 · 0 评论 -
Linux系统--虚拟地址到物理地址的映射
引子这是一道常见的面试题,主要是对Linux系统掌握的考察。以下引自:虚拟地址和物理地址及其映射前言其实之前我看过这个问题,据我理解的,当时是这么回答的“进程在运行的时候,操作系统都为其分配一个4GB的地址空间,即所谓的虚拟地址空间,一般情况下,当我们的程序很大的时候,实际的物理内存根本不能满足我们的需求的时候,这个时候操作系统就会借助磁盘空间来做虚拟的内存空间,把当前进程不需要的数据放在...原创 2019-10-10 19:16:16 · 903 阅读 · 0 评论 -
处理方法:用putty上传文件至远程服务器和从远程服务器下载数据
如图所示,用putty上传文件至远程服务器先cd / 进入putty目录下,使用pscp.exe// An highlighted blockpscp 待上传文件(文件夹 -r)及其路径(默认为putty目录) 用户名@IP地址:上传路径pscp link.exe Yangzijiang@22.22.22.22pscp D:/demo/demo/link.exe Yangzijiang...原创 2019-08-10 10:23:29 · 1806 阅读 · 2 评论 -
处理方法:linux的-bash: ./xx.sh: Permission denied
在运行程序时有时会遇到Permission denied错误为了获得执行权限,借助chmod指令修改文件权限即可其中777是111,111,111,即获得可读可写可执行权限再次运行程序就会发现程序可以运行了...转载 2019-08-10 10:27:50 · 5178 阅读 · 0 评论 -
处理方法:Linux:screen指令(离线运行)
最近用putty远程服务器,奈何实验室网络不算稳定偶尔会有断网现象让我两天的努力白费!所以无奈之下用了screen指令,还是挺好用的!网上大牛不少:linux 技巧:使用 screen 管理你的远程会话Linux公社:https://www.linuxidc.com/Linux/2019-08/159958.htm(讲得很详细,从安装到使用)1、创建screenscreen一路向下...原创 2019-10-20 22:02:02 · 1033 阅读 · 1 评论 -
处理方法:ubuntu安装FFmpeg技巧(x264x265)
1、下载git clone https://github.com/FFmpeg/FFmpeg.git进入FFmpeg目录2、checkgit checkout 74c6a6d3735f79671b177a0e0c6f2db696c2a6d23、清理make clean4、编辑profile文件: vi /etc/profile在文件末尾加上两句话:export FFMPE...原创 2019-09-19 11:56:26 · 3002 阅读 · 1 评论 -
处理方法:linux环境变量设置方法总结(PATH/LD_LIBRARY_PATH)
PATH和LD_LIBRARY_PATH本质都是变量,所谓变量的意思就是由别人赋值产生的,直觉往往会让我们添加和减少这个变量本身的某些路径,实际上这是不正确的。正确的做法是我们要去修改赋予这个变量数值的那些配置文件,加一条路径或者减一条。说到底变量只关乎显示,不关乎其用于显示的内容。PATH: 可执行程序的查找路径查看当前环境变量:echo $PATH设置:方法一: export PA...转载 2019-09-25 14:32:19 · 171 阅读 · 0 评论 -
处理方法:错误ValueError: Object arrays cannot be loaded when allow_pickle=False的解决
今天在试使用Google Colab中的IMDb数据集来实现二进制分类示例。我以前实现过这个模型。但是当我试图在几天后再次执行它时,它返回了一个ValueError: Object arrays cannot be loaded when allow_pickle=False错误。Numpy 1.16.3几天前发布了。从发行版本中说明:“函数np.load()和np.lib.format.rea...翻译 2019-10-09 12:18:57 · 2439 阅读 · 0 评论 -
处理方法:pytorch0.3.0和pytorch1.1.0(0.4.1)的区别
1、官方文档介绍2、PyTorch 0.4新版本 升级指南 no_grad3、pytorch0.3和0.4对比总结4、pytorch0.4使用注意5、pytorch 0.3到0.4迁移6、PyTorch | 0.3到0.4不完整迁移手册7 、Pytorch 0.3加载0.4模型及其之间版本的变化8、Pytorch常见问题、PyTorch 0.4新版本升级指南no_grad、cuda(...原创 2019-10-09 14:29:50 · 2755 阅读 · 0 评论 -
处理方法:gzip: stdin: unexpected end of file 错误
这两天碰到一个很蛋疼的问题,在网上一看原来大家都遇到过(????)。在vi中解压文件中报错如下: 反复试了几次不行,后来经过排查,是由于将压缩文件copy到Linux系统里时 我直接拖拽导致的,后来使用了共享文件夹,可以解压成功。共享文件夹的启用方式,戳http://blog.csdn.net/qq_22641085/article/details/52994435共享的话我觉得没必要,用Linu...转载 2019-12-04 20:49:38 · 4859 阅读 · 1 评论 -
处理方法:/usr/bin/env: "python\r"或者"bash\r"没有那个文件或目录
最近在github上download了一个程序但是总是有点问题searched for a useful solution.1使用VIM打开该文件按一下ESC输入:set ff #千万别少了“:”冒号后回车发现文件格式为dos,需要被改为unix格式2输入:set ff=unix #千万别少了“:”冒号后回车,设置为unix格式3:wq #保存后退出这样就...原创 2019-05-29 19:34:14 · 8588 阅读 · 0 评论