
Linux 基础
戎·码一生
自信来自实力,改变来自挑战。做一只生活小强。
展开
-
linux下Makefile文件的总结
GNU makeLinux程序员必须学会使用GNUmake来构建和管理自己的软件工程。GNU 的make能够使整个软件工程的编译、链接只需要一个命令就可以完成。Makefilemake在执行时, 需要一个命名为Makefile的文件。Makefile文件描述了整个工程的编译,连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译;需要创建那些库文件以及如何原创 2013-07-31 19:52:41 · 875 阅读 · 0 评论 -
zombie僵尸进程、孤儿进程和守护进程
以前一直对僵尸进程和孤儿进程都没怎么理解,真是罪过,最近在看liunx编程设计(第四版),看到了他们的概念,所以对它们做个总结!加深印象。 基本概念: 我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程再创建新的进程。子进程的结束和父进程的运行是一个异步过程,即父进程永远无法预测子进程 到底什么时候结束。 当一个 进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。 但是如果情况原创 2016-05-07 22:17:26 · 4927 阅读 · 0 评论 -
linux下exit()和_exit()区别
linux下exit()和_exit()的用法及区别: exit和_exit作为系统调用而言,_exit和exit是一对孪生兄弟。通常我们会认为,他们之间没有什么区别:但是没有区别会有两个函数,你要知道程序猿虽然苦但不笨,这种事儿发生的概率比较低,所以答案是否定的。这种区别主要体现在它们在函数库中的定义,_exit在Linux函数库中的原型是:#include<unistd.h>void _exit(int status); (1)exit()函数定义在 stdlib.h中;而_原创 2016-05-07 22:22:31 · 1972 阅读 · 0 评论 -
wiat()与waitpid()
在创建进程后,为了避免僵尸进程,资源的浪费和进程数量的空闲占据,则需要对进程资源进行回收,这里主要看看wait和waitpid两个进程的功能与区别!!一、pid_t wait(int *status) 作用(1):清理结束的子进程资源或者得到进程执行后的返回信息; 进程一旦调用了wait,就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出(主要是回收资源),如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找原创 2016-05-07 22:22:08 · 1669 阅读 · 0 评论 -
exec函数
exec函数族的作用是根据指定的文件名找到可执行文件,并用它来取代调用进程的内容,主要是在fork()之后,它会诱导fork后的子进程另起炉灶,但是PID不变,自己开创一片新天地,清空原来的堆栈区、代码区和数据区,让新的可执行程序完全替代现有的资源。换句话说,就是在调用进程内部执行一个可执行文件,这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。与一般情况不同,exec、、、原创 2016-05-06 21:37:53 · 8260 阅读 · 0 评论 -
fork()问题详解
最近在看linux编程方面的书,然后也在网上查阅相关的资料发现了一个关于fork()的几个题,在这里记录一下! #include "sys/types.h" #include "unistd.h" #include pit_t fork(void ); fork()函数调用成功,返回两个值; 父进程:返回子进程的PID; 子进程:返回0; 出错:返回-1、、、、原创 2016-05-08 19:07:53 · 6369 阅读 · 2 评论 -
RadHat系统u盘的挂载方法
RedHat 9挂载U盘的方法:比如你将光驱挂载到/mnt/cdrom这个目录,操作步骤如下:方法一:挂载光盘:mount -t iso9660 /dev/cdrom /mnt/cdrom拷贝光盘上一个软件,例如a:cp /mnt/cdrom/a /home/soft卸载光盘umount /mnt/cdrom方法二:挂载U盘:要是u盘的话你先必须使用fd原创 2013-08-01 16:15:04 · 1599 阅读 · 1 评论 -
RedHat系统下Samba服务器配置详解及具体应用实例
Smaba服务器中/etc/samba/smb.conf文件详解:Samba服务器实例练习题目:设置Samba共享目录/software,允许jack和mary通过windows来读写权限;1、根目录下创建/software mkdir /software;2、添加用户(因为samba你的用户必须是系统的用户): useradd mery; useradd Jack; passwd mery; passwd Jack;3、如果安装了SELinux,这也是系统的一个防火墙,执行命令允许原创 2013-07-31 21:58:39 · 7131 阅读 · 0 评论 -
RadHat系统下的Samba服务器的配置方法
文件和打印机共享是局域网最常用的功能。同一网络下,如果所有的主机都是windows系统,那么很容易实现文件和打印机的共享,但在实际的网络中,不仅会有windows主机也还有linux主机,在这种情况下,Samba服务器就发挥了重大的作用:它其实是专门用于windows和linux之间进行共享文件和打印机的一个软件包,当然其功能远飞如此。这里我们主要介绍实现文件的共享功能。 其中有一个非常重要协议SMB(Server Message Block),把linux伪装成windows一样使其和windo原创 2013-07-31 21:56:46 · 1736 阅读 · 0 评论 -
linux下VNC服务器的配置与安装
2012-530(总结)CentOS Linux下VNC Server远程桌面配置详解发表于: Linux, UNIX, 个人日记, 原创总结 | 作者: 谋万世全局者 标签: centos,Linux,server,VNC,总结,详解,远程桌面,配置PS:偶以前基本不用Linux的远程图形桌面,前几天有开发的同事配置CentOS转载 2013-07-20 10:49:46 · 2537 阅读 · 0 评论 -
ubantu12.04安装mysql的方法
玩儿完了windows下的数据库了,我们是不是的看看linux下的数据库怎么安装了,怎么玩儿了!!数据库有Oracl和Mysql,在这里我就对Mysql怎么安装来简单的说明一下:现在下载Mysql数据库客户端:命令: sudo apt-get install mysql-server mysql-client sudo apt-get install php5-mysq原创 2013-06-26 14:10:50 · 1230 阅读 · 0 评论 -
RadHat系统下的FTP服务器的配置
FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。和大多数Internet服务一样,FTP也是一个客户机/服务器系统。用户通过一个支持FTP协议的客户机程序,连接到在远程主机上的FTP服务器程序。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件。在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"原创 2013-07-31 22:00:28 · 1792 阅读 · 0 评论 -
select poll epoll
虽然电脑没有意识,但是中断(阻塞与非阻塞)使硬件在某些方面具有了智能! 因为发现了缺点,所以计算机的大牛们一直在改进!所以才有了一系列的select、poll和epoll模型的诞生。为了适应不同的环境,新的发现和改进是无可避免的,只是为了技术更过硬,生活更美好。相比与select和poll模型,epoll模型的优点: (1) FD连接数量:Epoll它没有最大连接数的限制,只受进程打开描述符总数的限制; (2)I/O效率:epoll支持水平触发和边缘触发,最大的特点在于边缘触发,它只告诉原创 2016-05-07 17:55:49 · 848 阅读 · 0 评论 -
Epoll详解
什么是epollepoll是什么?按照man手册的说法:是为处理大批量句柄而作了改进的poll。当然,这不是2.6内核才有的,它是在2.5.44内核中被引进的(epoll(4) is a new API introduced in Linux kernel 2.5.44),它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。 epol转载 2016-05-07 16:13:18 · 807 阅读 · 0 评论 -
linux下GDB调试
GDB是GNU发布的一款功能强大的程序调试工具。GDB主要完成下面三个方面的功能:1、启动被调试程序。2、让被调试的程序在指定的位置停住。3、当程序被停住时,可以检查程序状态(如变量值)。1.编译生成可执行文件:gcc -g tst.c -o tst2.启动GDBgdb tst3. 在main函数处设置断点break main4. 运行程序run原创 2013-07-31 19:56:48 · 721 阅读 · 0 评论 -
linux下GCC编译器
linux下编译源文件makefile文件的简单总结:Linux系统下的gcc(GNU CCompiler)是GNU推出的功能强大、性能优越的多平台编译器,是GNU的代表作之一。gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平均效率要高20%~30%。GCC编译器能将C、C++语言源程序、汇编程序编译、链接成可执行文件。在Linux系统中,可执原创 2013-07-31 19:58:11 · 986 阅读 · 0 评论 -
linux下GCC编译代码的优化方法总结
代码优化指的是编译器通过分析源代码,找出其中尚未达到最优的部分,然后对其重新进行组合,目的是改善程序的执行性能。 GCC提供的代码优化功能非常强大,它通过编译选项-On来控制优化代码的生成,其中n是一个代表优化级别的整数。 对于不同版本的GCC来讲,n的取值范围及其对应的优化效果可能并不完全相同,比较典型的范围是从0变化到2或3。 编译时使用选项-O可以告诉原创 2013-08-16 21:12:26 · 3104 阅读 · 0 评论 -
linux下动态库
动态库.【 .SO】– 动态库是可执行程序在运行,动态加载到进程内存中去.动态库与可执行程序是分离的两部分文件.–两者作用完全等效,主要是使用方法不同.由开发者根据项目情况自行评估使用哪种形式.创建动态链接库动态链接库的创建分为两步:– 1.编译目标文件,必须带上-fpic 标志,使输出的对象模块是按照可重定位地址方式生成的。• gcc -c mystrlen.c原创 2013-08-16 21:00:34 · 758 阅读 · 0 评论 -
linux下静态库
在Linux下开发软件时,完全不使用第三方函数库的情况是比较少见的,通常来讲都需要借助一个或多个函数库的支持才能够完成相应的功能。从程序员的角度看,函数库实际上就是一些头文件(.h)和库文件(.so或者.a)的集合。虽然Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下,但并不是所有的情况都是这样。正因如此,GCC在编译时必须原创 2013-08-16 20:48:37 · 912 阅读 · 0 评论 -
各种文件类型的区别
各种文件类型的区别 :.h是源代码;o: 编译的目标文件,就相当于windows里的obj文件;a: 静态库,其实就是把若干o文件打了个包,是好多个.o合在一起,用于静态连接;so: 动态链接库(共享库)是shared object,用于动态连接的,和dll差不多,是编译过的文件;DLL:【Dynamic Link Library】的缩写,意为动态链接库。在Windows系原创 2013-08-16 21:01:45 · 1755 阅读 · 0 评论 -
liunx下vivi的移植
一. 先安装交叉编译tar包(cross-2.95.3.tar.bz2)首先通过建立好的ftp服务器把cross-2.95.3.tar.bz2传送到/var/ftp/pub然后命令解压:tar –vfxj cross-2.95.3.tar.bz2 -C /usr/local/arm (必须解压到此目录下,否则会出错)注: 1、tar –vfxj XXX.tar.bz2原创 2013-09-30 22:10:00 · 975 阅读 · 0 评论 -
linux下手动命令大全
33、查看命令总结:(0)man --help帮助命令;(1)cat 查看,创建,合并(2)head -n 5 filename 前5行(3)tail -n 5 filename 后5行(4)more 和cat类似,加载整个文件,按space向下走,按back后退;直至整个文件的结束,方便查阅;(5)less 比more更加人性化,可以随意前后翻滚,查看资料;(6)gedit 文本编辑器,可以一次打开很多!(7)touch file;改变文件或目录时间。34、21.查看文件cat原创 2013-09-30 22:16:30 · 1272 阅读 · 1 评论 -
linux下查看进程的几种常用方法
查看进程(1)ps:(Process Status)的缩写。取得是执行命令时抓取的当前进程状态,不动态变化,当前的进程;ps命令是相当强大的进程查看命令。用该命令可以确定有哪些进程正在运行和运行地状态、进程是否结束、进程有没有僵死、哪些进程占用了过多地资源等等.总之大部分信息均为可以通过执行该命令得到地.(2)pstree//按树型来查看进程 -c显示PID。树的根节点为pid或init。如果指定了用户名,进程树将以用户所拥有的进程作为根节点。例如循环的fork函数,我们可以通过pstree来查看树的进原创 2013-08-16 21:31:30 · 5971 阅读 · 0 评论 -
free命令、buffer与cache的区别、交换分区swap
free命令:主要提供了简介的查看系统的内存情况;默认情况下这里的单位是kb;free命令总共输出四行:第一行:就是参数名,不做多的解释。第二行;输出是从OS来看的,从操作系统改的角度来看:计算机一共有x物理内存(缺省时为KB,如果是free -m,单位则是M);这些物理内存共有x被用了,还有x空闲可用。这里有一个等式:total=used+free;share表示被几个内存共享的内存,buffer:表示被OS用作缓冲区的;cache:表示OS的高速缓存区;第三行:是从一个应用程序的角度来看系原创 2013-08-16 21:15:43 · 3173 阅读 · 0 评论 -
fork()、vfork()、clone()的区别
因为生活的复杂,这是一个并行的世界,在同一时刻,会发生很多奇妙的事情,北方下雪,南方下雨,这里在吃饭,那边在睡觉,有人在学习,有人在运动,所以这时一个多彩多姿的世界,每天都发生着很多事情,所以要想很好的表现这个世界,协调完成一件事儿,就得用到多进程或者多线程。所以进程是程序猿一定会接触到的一个东西,他能使我们的程序效率提高,高效的完成多任务,并行执行。原创 2016-05-07 10:35:30 · 17978 阅读 · 14 评论 -
RadHat系统下的NFS服务的配置
NFS(Network File System)即网络文件系统。Samba服务器主要用于Linux和windows操作系统之间的文件共享,而在Linux操作系统之间,文件则可以通过NFS实现。是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。原创 2013-08-01 16:12:47 · 1033 阅读 · 0 评论