
Linux
文章平均质量分 86
德卡拉
始于乐趣 终于经典
展开
-
Linux入门基础
一,增删查改基本操作(1)cd:切换目录 将当前目录改变到指定的目录下。 cd..:返回上级目录 cd~:进入用户家目录 cd-:返回最近访问的目录 (2)ls命令:用来显示目标列表-l:以长格式显示目录下的内容列表 -r:以文件名反序排列并输出目录内容列表 -t:用文件和目录的更改时间排序 -s:在文件名后输出文件大小 (3)touch命令: 如果文件不存在,则创建一个新的空原创 2017-12-01 14:54:59 · 698 阅读 · 2 评论 -
ROS------Catkin编译系统
(1)产生: 之前在学校学校学习的时候,在Linux下习惯通过gcc g++生成makefile来编译文件,但接触了大型项目随着代码量的增多,便接触了更高层次的Cmake工具,加上ROS对Cmake的扩展,便出现了catkin编译工具。(2)优点: 软件包编译后无需安装就可使用;自动生成find_package()代码,pkg-config文件;解决了多个软件包构建顺序问题;一次配置...原创 2019-07-27 16:38:10 · 972 阅读 · 0 评论 -
线程(上)
什么是线程? (1)在一个程序里的一个执行路线叫做线程。更准确的定义是:线程是一个进程内部的控制序列。 (2)根据运行环境和调度者的身份,线程可以分为内核线程和用户线程。内核线程:运行在内核空间,由内核来调度。用户线程:运行在用户空间,由线程库来调度。 (3)线程的实现方式:完全在用户空间实现(创建和调度线程无需内核的干预,速度相当快);完全由内核调度;双层调度(实现两种实现模式的混合体,不...原创 2018-04-13 16:36:52 · 148 阅读 · 0 评论 -
IPC-----消息队列
消息队列 消息队列是在两个进程之间传递二进制数据块数据的一种简单有效的方式。每个数据块都有特定的类型,接收方可以根据类型来有选择的接收数据,而不一定像管道和命名管道那样以先进先出的方式接收数据。 消息队列也有管道一样的不足,就是每个消息的最大长度(msgmax)是有上限的,每一个消息队列的总的字节数(msgmnb)是有上限的,系统上的消息队列的总数(msgmni)也有一个上限。 相关操作函数...原创 2018-04-06 20:35:09 · 227 阅读 · 0 评论 -
线程(下)
条件变量:了解了生产者消费者模型,我们来假设这样一个场景:你去超时买泡面可是发现货架是空的,生产者并没有提供任何口味的泡面,为了避免让顾客傻等,就需要条件变量来帮助我们。当有货物来的时候会通知你“有面了,快来买”。类比到线程,同样当一个线程访问队列时,发现队列为空,它只能等待,直到其它线程将一个节点添加到队列当中。条件变量相关函数: (1)初始化:pthread_cond_i...原创 2018-04-18 14:58:06 · 160 阅读 · 0 评论 -
IPC-----共享内存和信号量
共享内存 共享内存允许两个或者多个进程共享一个给定的存储区。因为数据不需要在客户进程和服务进程之间复制,所以这是最快的IPC形式(省略了两次内核拷贝),一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不在涉及到内核。信号量(后面有详解)用于同步共享存储访问。 它允许两个不相关的进程访问同一个逻辑内存。共享内存是在两个正在进行的进程之间传递数据的一种非常有效的方式。大多数的共享...原创 2018-04-02 19:06:06 · 948 阅读 · 0 评论 -
Linux:环境变量
环境变量 Linux是一个多用户的操作系统,每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。 概念: 一般指在操作系统中用来指定操作系统运行环境的一些参数。 每个用户都可以通过修改环境变量的方式对自己的运行环境进行配置。分类: (1)系统...原创 2018-03-21 17:00:17 · 260 阅读 · 0 评论 -
信号详解
什么是信号? 在生活中,我们会遇到各种信号,比过马路遇到的红绿灯,下课的铃声,水开的声音,这些信号都预示着不同的信息。接下来我们学习Linux中的信号。 每个信号都有一个名字,均以SIG开头且为大写,可以用kill -l命令查看系统定义的信号列表: 可以发现没有32 33信号,其中1-31号为普通信号,不支持排队等待,可能会造成信号丢失。 34-64为实时信号,支持排队等待,不会造成信...原创 2018-04-08 13:12:09 · 587 阅读 · 0 评论 -
IPC——管道
进程间通信(IPC) 英文名IPC,因为每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程看不到,所以进程之间要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户地址空间拷到内核缓冲区,进程2再从内核缓冲区把数据读走,内核提供的这种机制称为进程间通信。 管道: 管道是Unix中最古老的进程间通信的形式,是一种最基本的IPC机制。 我们把从一个进程连接到另...原创 2018-03-30 16:30:26 · 257 阅读 · 0 评论 -
Linux:软/硬链接 动/静态库
为了能解释清楚inode我们先简单了解一下文件系统: 超级块:存放文件系统本身的结构信息 inode:存放文件属性,如文件大小,所有者,最近修改时间等 数据区:存放文件内容 事实上,真正找到磁盘上文件的并不是文件名,而是inode。 inode (1)查看每一个目录下每个文件的inode号[a@localhost ~]$ ls -i270062 \ 269732 ...原创 2018-03-17 20:53:35 · 1190 阅读 · 1 评论 -
Linux:关于FILE那些事
流和FILE对象 对于标准I/O库,它们的操作是围绕流进行的,当用标准I/O库打开或者创建一个文件时,我们已使一个流与一个文件相关联。流的定向决定了所读,写的字符是单字节还是多字节(宽)。freopen函数清除一个流的定向;fwide函数可用于设置流的定向。 对于每个ANSI C程序,运行时系统必须提供至少三个流——标准输入(stdin),标准输出(stdout),标准错误流(stderr),...原创 2018-02-20 15:16:19 · 411 阅读 · 0 评论 -
进程等待和进程终止
进程终止 1》进程退出场景: (a)程序运行完毕,结果正确 (b)程序运行完毕,结果不正确 (c)代码异常终止2》进程退出方法: (1)正常退出 (a)在main函数内执行return语句 (b)调用exit (c)调用_exit或_Exit函数(2)异常退出 (a) 调用abort。 (b)当进程接收到某些信号时。原创 2018-01-31 15:47:20 · 1132 阅读 · 1 评论 -
Linux:进程创建与僵尸孤儿进程
一,进程与PCB进程典型定义 (1)进程是程序的一次执行。 (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 (3)进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 特征:动态性,并发性,独立性,异步性。 基本状态: PCB 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。 内容分类 (1原创 2017-12-28 12:50:59 · 1397 阅读 · 1 评论 -
Linux下预处理,编译,汇编,链接过程及gdb的使用
在linux下,vim hello.c以后打开我们的命令模式,按i我们进入插入模式,然后编辑以下文本,编辑好以后按shift + ;,进入底行模式,输入wq保存退出(只输入q是退出并不保存)#include<stdio.h>#define MAOMAO "maomao\n"//zhuhshi/*zhushi*/int main(){#pragma warning("normal err"原创 2017-12-29 17:50:16 · 406 阅读 · 0 评论 -
Linux:访问权限与粘滞位之详解
linux中文件权限与目录权限文件或目录的访问权限分为只读,只写和可执行三种。 权限代号: r (read):读权限,用数字4表示 w (write):写权限,用数字2表示 x(execute):执行权限,用数字1表示 - :删除权限,用数字0表示 s :特殊权限这3种权限组成一组rwx分别对应3个安全级别,分别为对象的所属者,对象的所属组原创 2018-01-22 13:38:21 · 516 阅读 · 0 评论 -
make/Makefile&&进度条&&yum
一,LINUX项目自动构建工具—make/Makefile make:是一个解释Makefile中指令的命令工具。 Makefile:是一个文件,makefile定义了一系列规则来指定哪些文件需先编译,哪些需后编译,哪些需重新编译,或者更复杂的功能。它带来的好处就是“自动化编译”,一旦写好,只需一个make命令,整个工程完全自动编译。 接下来,我们来举一个例子,首先,建立一个test.原创 2017-12-19 09:40:02 · 526 阅读 · 0 评论 -
Git 基础篇
一,基础配置git config --global user.name <your-account-name> 配置用户名git config --global user.email <your-email> 配置邮箱git config --global core.editor vi 配置编辑器git config --g...原创 2019-08-01 15:51:05 · 344 阅读 · 0 评论