linux
文章平均质量分 63
daidaihaha
这个作者很懒,什么都没留下…
展开
-
linux下常用指令(一)
一 ls 指令语法:ls [选项] [目录或文件]功能:对于目录,ls指令列出该目录下的所有子目录与文件,对于文件,将列出文件名以及其他信息这里提到了目录和文件那我就先说说两者概念,在Linux中一切皆文件,而目录就是Windows下我们所说的文件夹,但在linux中我们称之为目录如果ls后面什么都没跟,代表显示当前目录下所有子目录与文件这里的选项可以为很多种,在此我们就先介原创 2018-01-21 17:24:25 · 361 阅读 · 0 评论 -
浅析正则表达式
正则表达式:是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过特殊字符+普通字符来进行模式描述。总结就是:正则表达式就是通过特殊字符+普通字符来匹配特定的字符串。---------是一种模糊匹配grep正则表达式分为三种:1.BREs:指令后不跟任何参数2.EREs:指令后面跟-E参数3.PREs:指令后跟-P参数正则表达式的基本要素:1.字符类2.数量限定...原创 2018-07-30 11:07:51 · 195 阅读 · 0 评论 -
HTTP协议-----------应用层协议
一 引言:协议:就是一种约定,双方为了更好的完成某项活动,而一致遵守的约定。应用层协议:我们程序员自己定义的协议,最常见的应用层协议是http协议二 URL和URI的区别与联系:URI统一资源标识符:用来唯一的标识一个资源 ,但不能定位URL统一资源定位符:是一种具体的URI,即用一个URL可以标识一个资源,而且还指明了如何定位这个资源。三 初识URL以上是一...原创 2018-07-22 23:31:58 · 1955 阅读 · 0 评论 -
进程和线程的区别,以及应用场景
什么是线程?Linux下线程用进程PCB模拟描述,也叫轻量级进程线程是进程内部的一个执行流,也就是线程在进程的地址空间内运行。一个进程内的所有线程共享进程资源线程是CPU调度的基本单位(CPU调度是按照PCB进行调度的)创建,销毁一个线程相较创建,销毁一个进程成本要低(创建进程要创建PCB,虚拟地址空间,创建页表,维护映射,把硬盘的代码数据加载到内存,文件描述符等等,而创建线程...原创 2018-09-15 22:39:22 · 7262 阅读 · 0 评论 -
死锁的产生,防止,避免
死锁在多任务系统下,当一个或多个进程等待对方的资源,而在等待对方资源之前不会释放得到的资源,这样造成循环等待的一种现象。产生死锁的原因:竞争系统资源进程的推进顺序不当死锁的四个必要条件:1.资源互斥/资源不共享(每个资源要么已经分配给一个进程,要么是可用的,只有这两种状态,资源不可以被共享使用)2.请求并保持(已经的到资源的进程还可以继续请求新的资源)3.不可剥夺(...原创 2018-08-04 16:33:08 · 231 阅读 · 0 评论 -
线程的互斥与同步
什么是互斥?什么是同步?互斥:一个资源一次只能被一个访问者使用(保证访问数据,唯一访问性)举个例子:你去上厕所,门一开,人进去,门锁上,在你上厕所期间别人不能打扰同步:当多个访问者一起工作时并对每个访问者访问的时序有一定限制(保证访问数据,时序访问性)举个例子:你上完厕所,刚出来,本来应该由别人了,但是你此时又进去,你反复的进去出来,导致别人都上不了厕所。因此同步就是保证时序性的,...原创 2018-08-04 20:52:10 · 3309 阅读 · 0 评论 -
system V 进程间通信-------消息队列
进程间通信,顾名思义就是进程和进程通信,也就是进程a和进程b可以访问内核的同一块空间一个放数据,一个取数据,那么这两个进程就完成通信通信了。消息队列也有管道一样的不足:1.每个消息的最大长度是有上限的MSGMAX字节,每个消息队列的总字节数是有上限的MSGMNB,系统中消息队列的总数是有上限的MSGMNI如何查看:cat /proc/sys/kernel/msgmaxcat ...原创 2018-08-11 21:20:21 · 183 阅读 · 0 评论 -
system V进程间通信-----------共享内存
共享内存:就是指把一段物理内存(共享内存)映射到不同进程的虚拟地址空间,两个进程只要操纵自己的虚拟地址空间便可访问物理内存,从而实现进程间的通信。如下图:要用共享内存进行通信,我们要做到?1.如何让共享内存映射到你进程的虚拟地址空间2.如何创建一个共享内存我们接着往下看创建或打开共享内存创建或打开共享内存函数原型:int shmget(key_t key,si...原创 2018-08-11 23:03:32 · 270 阅读 · 0 评论 -
pthreads提供的锁,你都了解哪些?
互斥锁(也叫互斥量)(不要用在性能敏感的地方使用互斥锁)阻塞互斥锁本质是一个二元变量,其状态为开锁和上锁,常用于多线程访问临界资源时使用,要访问临界资源就要先获取锁访问完之后释放锁,供别人访问。(1)访问公共资源前,必须申请该互斥锁,若处于开锁状态,则申请到锁对象,并立即占有该锁,如果该锁处于锁定状态,则阻塞当前线程。(2)如果不用记得释放锁,这样别的线程,进程才能继续访问。否则造...原创 2018-08-30 15:14:17 · 415 阅读 · 0 评论 -
浅谈传输层
上篇博客讲解了应用层协议,本篇接着讲传输层。一 传输层:负责数据能从发送端到接收端 在TCP/IP协议中用源端口号,源ip,目的端口号,目的ip ,协议号这样一个五元祖来表示一个通信 (用netstat-n查看)二 端口号:标识了一个主机上进行通信的不同的应用程序 端口号划分:0-1023知名端口号 1024-65535操作系统动态分配的端口号 ...原创 2018-07-23 13:58:09 · 318 阅读 · 0 评论 -
UDP,TCP报头分析,以及TCP三次握手和四次挥手
*UDP协议* 一 udp协议基本格式 由上图可知udp协议报头信息一共占8字节 1.2字节的目的端口号* 目的端口号保证了准确的将数据报交付应用层 2.2字节的源端口号* 源端口号保证了下一层准确的将信息交给传输层 3.2字节的UDP长度* 用户数据报收发长度确定,因此包含一个UDP长度字段。(udp报头和udp数据长度) 4.2字节的UDP校验和* udp尽管不保...原创 2018-06-19 00:43:56 · 670 阅读 · 0 评论 -
linux编译器 gcc /g++使用及预处理,编译,汇编,连接的相关知识
一.背景知识1.预处理(进行宏替换)2.编译 (生成汇编)3.汇编 (生成机器可识别代码)4.连接 (生成可执行文件或库文件)以上是简介,接下来详细讲解二 gcc如何完成1 预处理(进行宏替换) 预处理功能:1.将所有#define删除并展开所有宏定义 2.过滤所有注释“//”和原创 2018-01-21 19:24:31 · 442 阅读 · 0 评论 -
linux 编辑器 vim使用
vim基本概念:vim有好多模式,今天我们先来介绍最常用的三种模式 命令模式/正常/普通模式:控制光标的移动,字符或行的删除,可切换到插入模式或者末行模式 插入模式/编辑模式:顾名思义就是可以编辑,写代码,按ESC可回到命令模式 末行模式:文件保存,退出列原创 2018-01-22 06:38:51 · 240 阅读 · 0 评论 -
软链接与硬链接
今天为大家介绍以下软链接和硬链接一。inode是什么? 理解inode,要从文件存储说起 1. 文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”每个扇区存储512字节,相当于512字节 2. 操作系统读取硬盘时,不会一个个扇区的读取,这样效率太低,而是一次性连续读取多个扇区,即一次应读取一个“块”, 是文件存取的最小单位,“块”的大小最原创 2018-01-22 20:11:11 · 293 阅读 · 0 评论 -
linux下用gdb如何调试
linux下安装gdb: yum -y install gdb使用vim *.c命令 打开一个源文件*.c然后在里面输入源代码并且退出保存1.先进行命令gcc -g fib.c进行编译,记住一定要加上-g,否则没办法调试2.继续进行命令gdb a.out -----------gdb+可执行程序程序名 表示开始调试该程序,回车就会进入调试模式原创 2018-01-23 15:29:24 · 309 阅读 · 0 评论 -
linux 下家目录,根目录区别,以及普通用户到root用户的转换
根目录/指的是最上层的目录 根目录之下有很多目录,如/home,/etc,/lib,/root 家目录:一般普通用户,家目录是/home/用户名 root用户,家目录是/root如何普通用户切换到root用户:1.su 2.su root 需要密码如何从root用户到普通用户:1.su 用户名 2.ctrl+d 不需要密码原创 2018-01-17 20:11:55 · 14134 阅读 · 1 评论 -
Linux 下常用指令二
1.date 指令功能:指定格式,显示时间2.find 指令功能:在目录下找文件3.grep 指令功能:在文件中搜索内容格式:grep 内容 文件 find 目录 文件4.tar 指令功能:打包 ,解包,压缩,解压5 uname 指令功能:获取电脑和操作系统的相关信息6 shutdown 指令功能:关机注意:shutdown -h now 立即关机原创 2018-01-18 17:57:17 · 187 阅读 · 0 评论 -
RUID EUID SUID
在linux系统中每个进程都有两个id: 用户id(uid):你最开始登录的那个用户的id---------------通俗点讲就是你是谁 有效用户id(euid):当你使用su命令,切换了用户。那你的有效用户id就为你su之后的这个用户id-----------------通俗点讲就是你的有效身份是谁uid euid用原创 2018-05-11 12:08:58 · 625 阅读 · 0 评论 -
基础IO----文件描述符,重定向,C库文件操纵函数,系统调用文件操纵函数,软硬链接,inode
一:C语言中的文件IO相关操作fopen函数原型如下:函数参数:1.path为打开文件的相对或者绝对路径 2. mode打开文件的方式常见的文件打开方式: 返回值:如果打开文件成功返回该指向该文件流的指针,失败返回-1...原创 2018-06-11 13:36:49 · 454 阅读 · 0 评论 -
图片
原创 2019-05-02 11:34:12 · 312 阅读 · 0 评论