![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux基础
文章平均质量分 56
robbyc
这个作者很懒,什么都没留下…
展开
-
Linux + C - 程序语言的发展以及程序的基本组成 (必备内容)
** 程序语言的简单定义 * 什么是程序? * 程序的作用是什么? * 我们必须通过指令,指挥计算机执行我们想要它做的动作。 * 而依照顺序执行的一组指令就是程序。 ** 程序的特征 1, 程序是与计算机沟通的语言 2, 程序是由特定语法与关键字构成 3, 程序是一行一行执行的 4, 程序的执行, 从入口点开始, 原则上是由上而下, 从左而右执行。 入口点可能是原创 2013-01-13 23:58:23 · 234 阅读 · 0 评论 -
《第 14 章》 信号量,共享内存和消息队列
IPC *1 信号量 : 用于管理对资源的访问。 *2 共享内存 : 用于在程序之间高效的共享数据。 *3 消息队列 : 在程序之间传递数据的一种简单方法。 @1 信号量 『 编写线程程序时,不管他是运行在多用户系统上,多进程系统上,还是运行在多用户 多进程的系统上,通常发现程序存在一部分临界代码,我们确保只有一个进程可以进入 这个临界代码并拥有对资源独占式原创 2013-01-14 00:45:54 · 267 阅读 · 0 评论 -
Linux 的整体认识第一节笔记
操作系统 操作系统 (OS) 是一种作为用户和计算机之间接口的软件程序,如 : Linux, Unix, Microsoft Windows 等。 操作系统的功能 { * 命令解释 : shutdown ... * 进程管理 概念 : 正在运行的程序。 一边听音乐一遍上网。OS采用分时机制,好像多个程序同时运行的假象。 主要是原创 2013-01-13 23:55:52 · 179 阅读 · 0 评论 -
Linux下C语言程序开发环境
1、概述:Linux系统内核就主要是用C写的,另外Linux下的很多软件也是用C写的,特别是一些著名的服务软件,比如MySQL(免费开源数据库)、Apache(Web服务器)等。 2、开发环境的构成 *编译器:选择VI *编译器:选择GNU C/C++编译器gcc *调试器:应用广泛的gdb(对逻辑错误进行调试跟踪定位) *函数库:glibc *系统头文件:glibc_header原创 2013-01-14 00:05:45 · 714 阅读 · 0 评论 -
Linux基础 - 第六章 Linux 常用操作命令
6.1 文本显示和处理 cat, more, less, head, tail, sort, uniq, cut, comm, diff; 6.2 文件和命令查找 grep, find, locate, whereis, file, whatis原创 2013-01-14 00:08:53 · 209 阅读 · 0 评论 -
linux进程间通讯的几种方式
linux进程间通信(IPC)有几种方式,下面将将简单的简述一下: 一。管道(pipe) 管道是Linux支持的最初IPC方式,管道可分为无名管道,有名管道等。 (一)无名管道,它具有几个特点: 1) 管道是半双工的,只能支持数据的单向流动;两进程间需要通信时需要建立起两个管道; 2) 无名管道使用pipe()函数创建,只能用于父子进程或者兄弟原创 2013-01-14 00:10:29 · 264 阅读 · 0 评论 -
X/Open规范 与 POSIX 标准
X/Open国际联盟有限公司是一个欧洲基金会,它的建立是为了向UNIX环境提供标准。它主要的目标是促进对UNIX语言、接口、网络和应用的开放式系统协议。它还促进在不同的UNIX环境之间的应用程序的互操作性,以及支持对电气电子工程师协会(IEEE)对UNIX的可移植操作系统接口(POSIX)规范。 在欧洲,X/Open组织将各种UNIX标准汇集到一起,包括新近研究的通用开放系统环境(COSE,Co原创 2013-01-14 00:13:55 · 817 阅读 · 0 评论 -
《Linux 二》 Linux 的 安装
1* 总纲 { #1,Linux 系统安装流程 #2,Linux 文件系统结构及分区设置 #3,VMware 虚拟机软件应用 #4,远程登陆工具 } 2* 硬盘 : { sd : sda sdb sdc hd : hda hdb hdc } root -> 树根 3* 对比一下 { /home/hp D:\program files (原创 2013-01-14 00:16:17 · 199 阅读 · 0 评论 -
《Linux 三》 常用命令 [ 1 ]
课程大纲 { *1 文件处理命令 [ ls, cp, mv, rm, cat, ln] *2 权限管理命令 [ chmod u + r g - w o = x, chown, chgrp, umask ] *3 文件搜索命令 [ which, find, locate, updatedb, grep ] *5 压缩解压命令 [ gzip, gunz原创 2013-01-14 00:18:05 · 364 阅读 · 0 评论 -
《Linux 五》 引导流程 2 [剖析inittab+grub+小结]
inittab 文件剖析 #1 grep -v "^#" /etc/inittab | more #2 man inittab id #3 在inittab中,所有条目采取以下格式: id:run-levels:action:process id:标识符,一般为两位字母或数字 run-levels:指定运行级别,可原创 2013-01-14 00:24:45 · 259 阅读 · 0 评论 -
《Linux 五》 引导流程 1
Linux 引导流程 课程大纲『 #1 Linux引导流程 #2 Linux运行级别 #3 Linux启动服务管理 #4 GRUB配置与应用 #5 启动故障分析与解决 』 系统引导流程 『 固件 firmware(CMOS/BIOS) → POST 加电自检 ↓ 自举程序 BootL原创 2013-01-14 00:22:55 · 317 阅读 · 0 评论 -
《Linux 六》 软件包管理
知识点总结 『 #1 软件包管理的思路与方法 #2 RedHat系Linux软件包管理 * 二进制包管理 : RPM, YUM * 源代码包管理 * 脚本安装 #3 Dabian系Linux软件包管理 { APT包管理 [多] 搜索软件包 apt-cache search 软件包信息 apt-cache show原创 2013-01-14 00:26:17 · 292 阅读 · 0 评论 -
《第九章》 开发工具
Linux哲学体系 * make命令和makefile文件 * 使用patch和tar命令来发布软件 * 开发环境 *1, 多个源文件带来的问题 @1,make的选项和参数 -k : make命令发现错误之后仍然继续执行。 -n : 作用是让make命令输出将要执行的操作步骤,而不真正执行。 -f : 告诉make命令把哪一个文件作为原创 2013-01-14 00:38:05 · 238 阅读 · 0 评论 -
《第 12 章》 POSIX 线程
fork调用来创建新进程的代价太高。 *1 在进程中创建新线程 *2 在一个进程中同步线程之间的数据访问 *3 修改线程属性 *4 在同一个进程中,从一个线程中控制另一个线程。 @1,程序中的多个执行路线就叫做线程。线程是进程内部的一个控制序列。 @2, 弄清楚fork系统调用和创建新线程之间的区别非常重要。 当进程执行fork调用时,将创建出该进程的一份原创 2013-01-14 00:43:42 · 346 阅读 · 0 评论 -
《Linux 十》 网络设置
课程大纲 『 Robert_Chan *1 互联网寻址过程 *2 Linux网络管理配置文件及命令 』 TCP/IP Http,Ftp,Smtp TCP 和 UDP IP,ICMP,IGMP ARP,RARP ATM,FDDI,ISDN ---------------- TCP/IP物理层 : 网卡 OSI物理层 : 网卡 数据链路层原创 2013-01-14 00:33:20 · 348 阅读 · 0 评论 -
《Linux 九》Shell 讲解
课程大纲 『 Shell编程语法 Shell脚本调试 Shell应用实例 』 一个简单的shell程序 shell结构 : 1. #!指定执行脚本的shell 2. #注释行 3. 命令和控制结构 创建shell程序的步骤: 第一步 : 创建一个包含命令和控制结构的文件。 第二步 : 修改这个文件的权限使它可以执行。 使用chm原创 2013-01-14 00:30:19 · 327 阅读 · 0 评论 -
《Linux 八》 文件系统管理
Linux文件系统管理 课程大纲 『 文件系统构成及命令 硬盘分区及管理 磁盘配额 备份与恢复 』 文件系统构成 『 *1 /usr/bin、/bin : 存放所有用户可以执行的命令 *2 /usr/sbin、/sbin : 存放只有root可以执行的命令 *3 /home : 用户缺省宿主目录 *4 /proc : 虚拟文件系统,存放当前进程信息 [保存在原创 2013-01-14 00:29:04 · 227 阅读 · 0 评论 -
《Linux 一》 Linux 应用与发展
李明linux 学习笔记 一, Linux 应用与发展 课程大纲 { Unix/linux 发展历史 自由软件 Linux应用领域 Linux学习方法 } Multics -> unicx -> unix [unix是小而精巧的意思] unix用 C语言重写,有个很好的移植性! 因为汇编有很大的对硬件的依赖性! AIX [原创 2013-01-14 00:15:04 · 288 阅读 · 0 评论 -
cc、gcc、g++、CC的区别概括
gcc是C编译器;g++是C++编译器;linux下cc一般是一个符号连接,指向gcc;gcc和g++都是GUN(组织)的编译器。而CC则一般是makefile里面的一个名字,即宏定义,嘿,因为Linux/Unix都是大小写敏感的系统,这点一定要注意。 cc是Unix系统的C Compiler,而gcc则是GNU Compiler Collection,GNU编译器套装。gcc原名为Gun C语原创 2013-01-14 00:01:41 · 250 阅读 · 0 评论 -
GCC编译过程 [ISO -> -ESc]
gcc的编译流程分为四个步骤,分别为: · 预处理(Pre-Processing) · 编译(Compiling) · 汇编(Assembling) · 链接(Linking) 以hello.c为例子,在这四个步骤中可以设置选项分别生成hello.i, hello.s, hello.o以及最终的hello文件: hello.c : 最初的源代码文件; hello.i : 经过编译预处原创 2013-01-14 00:04:07 · 578 阅读 · 0 评论 -
读书笔记之:Linux程序设计(第4版)(ch1-7) [ 学如逆水行舟,不进则退
《Linux 程序设计》是一本非常好的书,内容很全面,并且对于给出的例子都进行了详细的讲解。并且是通过一个的小型的项目的来讲解的:开始是使用shell进行编程实现,然后逐步进行改进,使用C语言实现,使用ncurses库实现,改用dbm数据库,改用MySQL数据库,添加套接字,最后是使用GTK和Qt添加了图形界面,所以非常的值得仔细的看。 第1章 入门 1. 什么是UNIX转载 2013-01-14 00:07:19 · 541 阅读 · 0 评论 -
《Linux 三》 常用命令 [ 2 ]
压缩解压命令 { #1 gzip 命令所在路径:/bin/gzip 语法:gzip 选项 [文件] 功能描述:压缩文件 特点 : 1, 只能压缩文件[not d] 2, 不保留源文件 #2 gunzip / gzip -d 语法:gunzip 选项 [压缩文件] 功能描述:解压缩.gz的压缩文件 范例: $ gunzip file1.原创 2013-01-14 00:19:06 · 237 阅读 · 0 评论 -
《 Linux 四 》 Vim (我个人的总结,很好!)
www.vim.org 命令 :set nu 要想更快的使用 vi 我们要掌握几组命令 { #1,[插入命令] a, A, i, I, o, O #2,[定位命令] h, j, k, l, $, 0, H, M, L :set nu 设置行号 :setnonu 取消行号 gg 到第一行 G 到最后一行 nG 到第n行原创 2013-01-14 00:20:28 · 346 阅读 · 0 评论 -
《Linux 七》 进程管理
课程大纲 『 进程的概念 进程管理命令 计划任务 』 进程和程序的区别 1、程序是静态概念,本身作为一种软件资源长期保存;而进程是程序的执行过程, 它是动态概念,有一定的生命期,是动态产生和消亡的。 2、程序和进程无一一对应关系。一个程序可以由多个进程共用;另一方面,一个 进程在活动中有可顺序地执行若干个程序。 父进程与子进程 1、子进程是由一个进原创 2013-01-14 00:27:37 · 207 阅读 · 0 评论 -
《Linux 11》 文件共享服务器(了解) [用户管理(略)]
『 *1 Windows 与 Linux 文件共享 --- Samba *2 FTP应用 -- vsftpd 』 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 在UNIX系统中,Samba是通过服务器消息快协议(SMB)在网络上的计算机之间共享文件和打印服务 的软件包。 SMB协议是一种客户端服务器协议,位于应用层,是Window原创 2013-01-14 00:34:13 · 235 阅读 · 0 评论 -
《第七章》 数据管理 --之 动态内存分配
第七章 数据管理 * 资源分配的管理方式 * 如何对可能被多个用户同时访问的文件进行处理 *1 动态内存管理 : 可以做什么以及Linux不允许做什么 *2 文件锁 : 协调锁,共享文件的区域锁定和避免死锁 *1 : UNIX以一种非常干净的方式管理内存,Linux程序不允许直接访问物理内存。 Linux 提供了内存保护原创 2013-01-14 00:35:11 · 247 阅读 · 0 评论 -
《第十章》 调试
调试 *1 使用GDB和其他工具进行调试 *2 断言 *3 内存调试 @1,OS分配给程序的内存一般都会比程序实际需要使用的大一些。如果非法内存访问 出现在这部分内存区域内,硬件就可能检测不到。 如果想捕捉到数组访问方面的错误,最好增加数组元素的大小,因为这样同时也增加 错误的大小。如果只是在数组的结尾之后读取一个字节,我们很有可能看不到有错误原创 2013-01-14 00:38:47 · 298 阅读 · 0 评论 -
《第 11章》 进程与信号
*1 进程的结构,类型和调度。 *2 用不同的方法启动新进程 *3 父进程,子进程和僵尸进程 *4 什么是信号以及如何使用它们。 @1,什么是进程? 进程是由程序代码,数据,变量(占用着系统内存),打开的文件(文件描述符)和环境组成。 Linux系统会在进程之间共享程序代码和系统函数库。所在在任何时刻内存中都只有代码 的一份副本。 @2,原创 2013-01-14 00:43:01 · 226 阅读 · 0 评论 -
《第 13 章 》 进程间通信 : 管道
第 13 章 进程间通信 : 管道 第11章 我们看到进程间发送消息的非常简单的方法 :使用信号。 但是传送的信息只限于一个信号值。 大纲 { *1 管道的定义 *2 进程管道 *3 管道调用 *4 父进程与子进程 *5 命名管道 : FIFO *6 客户 / 服务器架构 } *1, 什么是管道? 当从原创 2013-01-14 00:44:23 · 345 阅读 · 0 评论 -
《第 15 章》 套接字
《第 15 章》 套接字原创 2013-01-14 00:46:54 · 198 阅读 · 0 评论 -
《linux程序设计 - 第四章》 [ 程序参数 / 环境变量 / 日期与时间]
【程序参数】相关 int main(int argc, char *argv[]) getopt(), getopt_long(), 【环境变量】相关 getenv(), putenv() environ 变量 【日期与时间 】相关 #include #include #include #includ原创 2013-01-14 00:12:22 · 259 阅读 · 0 评论 -
一,GCC编译器简介
一,GCC编译器简介 GCC是Linux平台下常用的编译链接器。编译链接的过程分为: 源代码-->预处理文件(.i)-->编译后的汇编代码(.s)-->汇编后的二进制文件(.o)-->链接后的二进制物件(无后缀)。 处理程序分别是 :cpp、ccl、as、ld。 使用 -v选项,可以看到各个阶段关联的处理程序。 使用gcc -E 指示gcc对源代码进行预处理,结果直接转载 2013-01-14 00:05:01 · 415 阅读 · 0 评论 -
《第七章》 数据管理 --之 文件锁定
文件锁定是多用户多任务OS中非常重要的部分。 *1,程序经常需要共享数据,这通常是通过文件来实现的。 当一个程序正在对文件进行write操作,文件就会进入一个暂时状态, 在这个状态下,如果另外一个程序尝试读这个文件,它就会自动停下来 等待这个状态的结束。 *2,Linux提供了多种特性来实现文件锁定。其中最简单的方法 方法一 :就是以”原子操作“原创 2013-01-14 00:37:03 · 314 阅读 · 0 评论