Linux
没有撤退可言~
花有重开日,人无再少年
展开
-
linux下的目录分布
1.假如你 要切换到当前目录下的 etc 目录中去那么就用这个 cd etc 这就是相对路径,而这种写法 cd /etc 就是回到根目录下的etc 目录下 绝对路径 ,绝对路径文件前面多出一个/ .绝对路径:以根目录作为起始路径相对路径:以当前路径作为起始路径2.有相对路径有时候操作起来问题就简单多了,例如我有个目录 /home/test/study 和 /home/...转载 2019-03-24 21:43:54 · 1096 阅读 · 0 评论 -
系统编程概述(进程)
进程概念:冯诺依曼体系结构—现代计算机硬件体系结构操作系统—管理进程概念–进程是什么所有的设备都是围绕存储器工作的标准输入设备输入指令,加载到内存中,然后内存交给cpu处理指令,将处理好的指令再交给内存,内存在交给标准输出设备。(时加载到cpu的寄存器上处理)。操作系统:一个软件安装在计算机硬件上。为的是让计算机更加好用,合理统筹计算机上的硬件资源。库函数与系统调用接口的关系...原创 2019-03-31 17:54:42 · 173 阅读 · 0 评论 -
linux就该这么学
ens33网卡名称ether物理地址,mac地址RX,收到的数据包大小TX,发送出去的数据包大小uname -a显示内核信息uptime 负载情况free 内存使用量 free -h自带单为更加清晰,但是会有少许误差history 查看命令历史 !+编号 执行命令pwd 显示当前所在目录cd 目录 切换目录cd …上一级cd -上一次.开头的隐藏文...原创 2019-04-21 13:51:31 · 115 阅读 · 0 评论 -
Linux下的常用命令
Linux下各种链接文件开头字符f普通文件d命令文件c字符设备文件b块设备文件l符号链接文件p管道文件s套接字文件目录相关的命令每个目录下都有两个特殊的文件 .目录自身 . .自身目录的上一层目录pwd 显示当前所在路径(绝对路径(唯一路径),以/开始的路径)linux下的目录结构是唯一的(树型结构)Linux下和window下文件分配分配空间方式不一样...原创 2019-05-04 17:49:08 · 191 阅读 · 0 评论 -
Linux下的权限和常用工具,安装linux下简单工具,以及工具的使用
权限:多用户操作系统:操作权限的分类:管理员用户root,普通用户文件权限:文件权限对用户的分类:文件所有者u,文件所属组g,其他用户o用户对文件操作的权限:可读r,可写w,可执行x(对于一个目录来说就是可浏览,可创建/删除,可进入)一般文件操作权限通过二进制/8进制位图来记录,111 111 101/775文件权限的常见命令:umask:查看/设置文件的默认权限掩码权限掩码:设...原创 2019-05-04 18:38:56 · 1406 阅读 · 0 评论 -
vim中make/makefile
make/makefile:项目自动化构建工具make/makefile:项目自动化构建工具makefile:普通文本文件,记录了项目的流程构建规则make:解释程序,到当前执行make命令的目录下寻找makefile文件,并且对makefile中记录的项目构建规则进行解释执行。大型工程,一个目标可能由成千上万个文件组成,要是哪个文件修改那么就要重新进行编译,但是文件很多呀...原创 2019-05-15 09:17:22 · 959 阅读 · 0 评论 -
在linux下使用git上传代码,在Linux下写一个进度条程序
git:项目版本控制工具—分布式,除了git之外还有svn,但是svn属于集中式,大家在同一段代码上进行编辑,而git是各自从代码上的一个分支拷贝,各自有各自的仓,然后自己写自己的代码,最后选择一个分支,大家把代码都上传上去。Linux下给git提交代码:进入git,复制项目链接–》进入Linux,首先可以新建一个目录mkdir git然后通过链接把git下的项目克隆到目录下(git cl...原创 2019-05-15 09:30:23 · 252 阅读 · 0 评论 -
写时拷贝技术,虚拟地址空间,进程调度算法,return,exit,_exit区别,进程等待,程序替换
写时拷贝技术:父进程创建子进程,但是并没有直接给子进程开辟空间,拷贝技术,而是跟父进程映射到同一块物理位置,但是如果内存中的数据发生改变,那么对于改变的这块内存,就需要给予子进程开辟新的内存空间,并且更新页表信息。虚拟地址空间(程序地址空间):程序地址空间在32位操作系统下oxffffffff到oxc0000000段是内核空间,剩下的3g由上到下分别是(粗略),变量/环境变量,栈信息,...原创 2019-05-22 13:18:37 · 187 阅读 · 0 评论 -
软硬链接,动静态库制作
软硬链接:硬链接:(不能进行目录链接)ln 原文件名 链接文件名,从磁盘块引出链接,链接计数会+1软链接:(文件目录都可以)ln -s 原文件名 连接文件名 不影响硬链接计数一般用箭头表示软链接相当于创建快捷方式删除软硬连接:rm和unlink都可以删除软硬链接文件,删除的原理是,文件保存在磁盘块上,然后文件就是进行链接引用,你要是逐个删除链接的话,等到删除完最后一个...原创 2019-06-22 18:22:59 · 123 阅读 · 0 评论 -
文件操作符表以及read,open,close,write
linux操作系统ioFILE *stdout 文件流指针我们写入printf,操作系统调用write函数,write函数再第哦啊用sys_write函数,然后sys_write再调用 底层的设备驱动,调用设备驱动和底层相关,如果要写入网络则调用网卡驱动,如果要显示到显示器上那么就调用显示器 。虚拟地址空间中有1g是内核区,用来虚拟文件系统,内存管理,进程管理,设备管理的,其中进程管理有...原创 2019-06-23 09:02:17 · 465 阅读 · 0 评论 -
lseek函数的三种用法以及open函数的补充
lseek的有三个作用:1.调整文件读写位置2.计算文件大小,因为返回值是文件开头到目前读写位置的长度可以用这个属性进行查看大小3.作为一个文件拓展首先了解一下lseek函数:lseek:移动文件读写位置off_t lseek(int fd, off_t offset, int whence);fd文件描述符offset 偏移量一般设置为0,一般在拓展文件的时候需要设置...原创 2019-06-24 11:17:02 · 2083 阅读 · 0 评论 -
使用open,read,write,close实现简单的touch,cat,命令,了seek函数代码举例
实现一个cat命令 1 #include<stdio.h> 2 #include<sys/stat.h> 3 #include<unistd.h> 4 #include<sys/types.h> 5 #include<fcntl.h> 6 int main (int argc,char *argv[]) 7 {...原创 2019-06-24 11:31:51 · 631 阅读 · 0 评论 -
truncate函数,默认文件最大打开数,进程和程序,进程的状态转换,MMU内存管理单元,环境变量,查看进程信息,创建子进程,exec函数族,父子进程差别
1.linux下一个进程默认最多打开1024个文件2.truncate函数:int truncate(const char *path, off_t length);path文件名,length长度,返回值成功返回0失败返回-1文件名必须存在,若长度大于原则拓展,反之截断进程和程序:什么是程序:编译好的二进制文件什么是进程:运行中的程序站在程序员角度:运行一系列指令的过程站在操...原创 2019-06-27 01:14:33 · 321 阅读 · 0 评论 -
进程等待wait,waitpid,僵尸进程与孤儿进程,shell与bash
孤儿进程与僵尸进程:孤儿进程:父亲死了,子进程被init进程领养僵尸进程:子进程死了,父进程没有回收子进程的资源(pcb一个400多行的结构体)如何回收子进程--------杀死父亲,子进程被init领养,负责回收pcbpid_t wait(int *status);⦁ ststus传出参数,不关心子进程是被信号杀死,还是自退出的话的话传null即可⦁ 返回值:成功返回终止子进...原创 2019-06-27 02:22:47 · 524 阅读 · 0 评论 -
进程间通信,ipc通信的几种方式,pipe通信,pipe实现有血缘关系进程通信,文件描述符,FIFO通信,FIFO实现没有血缘关系进程通信,mmap通信,mmap实现父子进程通信,mmap实现无血缘关
进程间通信:ipc:进程间通信(InterProcess Communication),每块虚拟内存0-3g相互独立,而不同的进程想要通信,由4-3g虚拟空间内核所提供的缓冲区进行信息交换,也叫进程间通信(InterProcess Communication)ipc通信的几种方式:⦁ pipe匿名管道—最简单⦁ fifo 有名管道⦁ mmap 文件映射(共享)io -----...原创 2019-06-29 23:20:01 · 447 阅读 · 0 评论 -
信号(上):信号的简单介绍,阻塞信号集和未决信号集,系统关于信号的函数kill,raise,abort,alsrm时钟信号,setitimer函数,捕捉函数signal,setitimer实现alar
信号的概念:由内核发出并处理信号四要素:⦁ 编号⦁ 名称⦁ 时间⦁ 默认处理动作终止忽略终止,产生暂停,继续信号的特点:简单不能携带大量信息特定条件下产生信号也叫软中断,可能会有延迟信号的处理方式:⦁ 执行默认动作⦁ 捕捉⦁ 忽略9.19号信号不能捕捉,不能忽略,甚至不能阻塞阻塞信号集(信号屏蔽字)和未决信号集:要想理解信号函数,先理解未...原创 2019-07-10 12:48:46 · 324 阅读 · 0 评论 -
信号(下):信号集函数,信号捕捉,信号捕捉的特性
信号集:什么是信号集,信号集可以粗略的理解为,那个31个信号位的位图(信号集和)我们没有声明是阻塞信号集的话指的都是未决信号集信号集函数:man sigemptyset清空信号集:int sigemptyset(sigset_t *set);填充信号集:int sigfillset(sigset_t *set);添加某个信号到信号集:int sigaddset(sigset_t *...原创 2019-07-10 13:51:34 · 348 阅读 · 0 评论 -
进程同步,线程同步,互斥量,死锁,读写锁,条件变量,条件变量实现消费者与生产者模型,信号量,信号量实现消费者与生产者模型,两者区别与联系
进程同步的概念:两个线程访问同一个共享资源,需要协调步骤,意思就是要有先有后不能同时进行!线程同步:初始化:int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);restrict:约束该块内存区域对应的数据,只能通过后面的变量进行修改和访问m...原创 2019-07-12 02:49:28 · 235 阅读 · 0 评论 -
网络基础(1),网络基础(2)
网络基础(1)网络编程:1.网络基础:协议:ftp:文件传输协议Linux下栈的默认大小8Mvs下默认栈大小1M协议数据包:包一般不会太大我们一般说的都是tcp/ip协议数据链路层[网络接口层]–以太网帧协议,只是数据传输层协议用的较多的协议的一种网络层–ip传输层–tcp/udp应用层–ftp,http,ssh,telent程序员只需要搞应用层,前三层是操...原创 2019-07-14 20:26:26 · 157 阅读 · 0 评论 -
TCP三次握手,数据传送以及TCP四次挥手
tcp三次握手:握手并不需要我们去做,连接服务器过程中内部进行三次握手标志位 共六个SYN:请求建立连接ACK:应答FIN:断开连接连接需要三次握手:第一次握手:(客户端发送一个包)客户端:⦁ 携带标志位:SYN(1)⦁ 发送32位随机序号1(用四个字节表示),这一步可以携带数据,也可以不携带数据,一般不携带服务器端:检测SYN的是是否为1第二次握手:服务器:⦁ A...原创 2019-07-15 14:23:33 · 951 阅读 · 0 评论 -
TCP/IP
在巨大的网络中,首先分为公网IP和私网IP,IP是在七层模型中的第三层,网络层,当两个主机之间通信的时候,你必须知道对端的IP以及mac地址,网卡地址,虽然网卡在全球是唯一的,但是需要通信的时候必须是IP和mac同时知道才能定位一个主机,实现通信。就好比你要找一个人,只知道这个人的名字是肯定找不到的,你必须还要知道,他在哪个地方哪个村(ip),网络之中通过ip找到这个村也就是ip(公网IP),然后...原创 2019-07-30 23:06:03 · 89 阅读 · 0 评论 -
套接字编程
网络编程:网络基础1,套接字编程,网络基础2,网络基础3,高级io(多路复用,多路转接(高并发网络编程))socket(伯克利套接字)计算机网络发展信息发送:数据----->交换机---->另一台交换机----->交换机连接的其中一台电脑但是每一台交换机连接的计算机和交换机都是很多的,那交换机如何区分这些数据要发送到拿一台电脑呢,这个时候就出现了路由器,替代了交换机,路...原创 2019-07-31 22:15:37 · 206 阅读 · 0 评论 -
网络基础认识加深版,网络中如何建立连接,如何实现视频通话,以及套接字的再次深入从原理剖析,以及cs模型原理介绍,及常用函数以及参数意义
c/s模式:服务端和客户端之间的模式。 优点: 1.可以使用自定义的协议,协议比较灵活。需要下载客户端,连接到服务器。qq,lol, 2.数据可以提前缓存到主机上。 缺点: 1。客户端安装在客户主机上,会对客户安全造成威胁,比如360和腾讯撕逼,就因为安全问题互相说窃取用户信息为自己牟利。 这也就是近些年来cs逐...原创 2019-08-01 01:04:38 · 613 阅读 · 0 评论 -
在linux下按照视频安装xmxl 2.1
在linux下按照视频安装xmxl 2.1关于步骤在这里总结一下: 1.首先下载安装包,就可以放在你的用户目录向下,这里我选择的是mxml-2.1. 可以去我git上下载https://github.com/2416390994/LINUX/blob/master/mxml-2.10.tar 2.下载之后就会在你的用户目录之下,然后你就可以tar xvf mxml-2.10.tar 打开...原创 2019-08-08 13:42:25 · 266 阅读 · 0 评论 -
网络基础复习,tcp通信分析
应用层:负责应用程序之间的数据沟通;HTTP/FTP传输层 :负责端与端之间的数据传输;TCP/UDP,也是在主机内部实现的网络层:负责地址管理与路由选择;IP;路由器(分配私网ip,网络中找路)链路层:负责相邻设备之间的数据帧传输;以太网协议,在相邻设备之间用的就是物理mac地址进行定位,交换机物理层:负责广电信号的传输;以太网协议,在物理层主要规定的是传输频率,什么什么之类的,典型设备...原创 2019-08-10 17:15:50 · 149 阅读 · 0 评论 -
TCP套接字通信流程,TCP编程,多进程,多线程版本
应用层:负责应用程序之间的数据沟通;HTTP/FTP传输层 :负责端与端之间的数据传输;TCP/UDP,也是在主机内部实现的网络层:负责地址管理与路由选择;IP;路由器(分配私网ip,网络中找路)链路层:负责相邻设备之间的数据帧传输;以太网协议,在相邻设备之间用的就是物理mac地址进行定位,交换机物理层:负责广电信号的传输;以太网协议,在物理层主要规定的是传输频率,什么什么之类的,典型设备...原创 2019-09-09 06:50:14 · 279 阅读 · 0 评论 -
网络基础2-1(序列化和反序列化;HTTP协议;URL;电脑里的域名解析文件;URL解码解析;cookie和session的区别;)
网络基础2应用层:程序员只需要自己完成应用层的协议就可以了,其他的只要交给操作系统就欧克了关于自定制的协议: 所谓的自定致协议就是,就是按照自己的方式进行序列化和反序列化,可以在服务器端和客户端 之间进行数据的 发送和接受, 假如说现在我们要实现一个网络版的计算器就是,客户端发送A,B两个数字到服务器端,服务器端会自动的对你发送的数据进行计算并且发送回去。我们需要考虑的就时数据...原创 2019-09-09 07:15:18 · 470 阅读 · 0 评论 -
网络基础2-2(TCP,UDP,从特性展开详解)
网络基础2-2TCP,UDP协议:端口:端口在一个主机上标识一个进程,将拿到的东西交给操作系统,然后操作系统拿到数据层层分用,进行解析,、解析完毕之后,就可以知道数据是哪个端口的,这时候,就放到哪个端口对应的socket,每个socket都有自己的缓冲区,然后由这个socket的进程读取。每条数据里面都有五元组(标识一条通信):源端口,目的端口,源IP,目的IP,协议UDP:无连接...原创 2019-09-09 07:32:27 · 194 阅读 · 0 评论 -
网络套接字3-1(三次握手为什么是三次;挥手为什么是四次;三次握手连接失败怎么办;TIME_WAIT:问题;服务端出现大量TIME_WAIT是什么原因;面向字节流;粘包问题的可能出现方式和预防措施)
UDP报文头部(源端口,目的端口,报头长度和数据长度和,校验和),有16位的校验和指的是一条数据通过sendto发送,数据到了传输层封装了UDP报头之后直接进行发送;对端收到UDP报文;对整个报文进行二进制反码求和(协议字段中的校验和),判断接受的报文是否和发送的一致;若数据一致表示这条数据可以交付给上层处理(当用户调用recvfrom能够获取数据);因为协议中有长度所以就会根据头部中的长度进行交...原创 2019-09-09 19:36:49 · 436 阅读 · 0 评论 -
网络剩余知识梳理
相邻的网络不能使用相同的网络号。MTU网卡的最大传输单元(不算以太网帧协议头)。其他典型协议与技术:DNS:domain name system --域名解析,通过域名获取服务器的IP地址分布式存储的优点:分摊压力+容灾处理域名服务器:根域名服务器–》顶级域名服务器–》二级域名服务器–》三级域名服务器域名的划分: 顶级域名(.com/.org/.gov.cn.jp.us)二级域名(...原创 2019-09-16 11:37:43 · 1222 阅读 · 0 评论 -
网络基础3-2
面向字节流: 将二进制数据串以字节流的形式进行传输 特性:传输灵活;但是会造成tcp的粘包; 产生年报的本质原因:数据之间没有明确的边界划分TCP保活机制: 一段时间(LINUX默认7200秒)能没有数据往来,则每隔一会(默认75秒)往对方发送保活探测包, 要求对方进行回应,当多个(默认9个)保活探测包没有响应,则认为连接断开; 连接断开在程序中的体现:recv返回...原创 2019-09-17 16:19:53 · 683 阅读 · 0 评论