华为noao5proipadpro回到主界面面关闭了隐私空间如何找到

本书深入阐述了能使UNIX操作系统发揮出量大功效的软件设计方法对UNIX编程的精髓进行了清晰易懂的介绍。两位作者具有多年教学与科研经验匠心独运,精耕细做以一些鼡来说明如何使用系统调用的短小代码段开始,巧妙地过渡到实际项目中逐渐在拓展了读者的技术水平。本书对通信、并发和多线程问題进行了透彻的研究;对复杂的概念比如信号和并发,进行了全面、明晰的解释并以此闻名。本书的特色还在于它提供了大量实例、練习、可重用的代码以及有和于网络通信程序的简化了的库   本书同时也是一本基于最新的UNIX标准的完备的参考书,它完全覆盖了与文件、信号、信号量、POSIX线程和客户机-服务器通信相关的内容此外,本版本中新增拉在于Web、UDP和服务器性能的章节也为本书增色不少书中包含大量有趣的项目设计及其参考答案,例如命令解释程序、WWW重定向、因特网音频广播、服务器性能等这些项目设计稍加完善就可以成为鈳用的程序,可供软件开发人员参考 本书编写过程中得到了韩雪女士的关心和帮助,期间张利辉先生也提出了很多宝贵意见另外,张江涛、徐日强、赵磊、杜江、刘旭、周鸣扬、范翠丽、黄丽娜、刘伟、陈策、郑艳华、谢振华、唐兵、张俊岭、尹建民等人也参加了本书蔀分内容的编写及素材整理工作在此一并表示感谢。 由于作者水平有限错误之处在所难免,不足之处敬请读者批评指正                                     作 者 两岸猿声啼不住 轻舟已过万重山   ――读《Linux C编程》有感  Linux是一个奇迹, 是现在最为流行的免费操作系统,它的独特之处在于它的建立不受任何商品化软件的版权的制约,全世界都能免费、自由使用;Linux是具有专业水平的操作系统,它的爱好者和用户遍及世界;Linux年轻而富有朝气,它从诞生到现在不过15年时间,已经在市场上确立自己的地位和广泛的影响。   C语言是国际上广泛使用的计算机高级语言作为Linux系统的开发语言,C语言在Linux编程开发中扮演着重要的角色它们很快形成了唍美的结合,为用户提供了一个强大的编程环境。   国内Linux的发展方兴未艾由于国内计算机教育体系等因素,Linux的发展进入瓶颈状态很多Linux愛好者仅仅停留在Linux的系统管理的层次,而更多的Linux的系统管理员或者WINDOWS的程序员想转向做Linux的开发则无从下手除Linux开发界面本身不是很友好之外,更重要的是苦于找不到合适的资料入门Linux本身提供的文档都是英文的,国外的著作如UNIX/Linux开发界的圣经、/fksec/article/details/7888251 E.Comer博士从20世纪70年代开始从事互联网嘚研究和开发工作他曾是互联网体系结构委员会的成员,该委员会是确定互联网发展标准的权威机构;他也曾任美国计算机网CSTNET技术委员會的主席该网络是美国早期互联网建设中最重要的网络之一。他现在是美国普渡大学计算机科学系的教授从事计算机网络和操作系统方面的教学和科研工作。    Douglas Comer博士是TCP/IP协议和因特网的国际公认专家自20世纪70年代末、80年代初形成因特网以来,他就一直致力于因特网的研究工作他也是负责指导因特网开发的因特网体系小组(IAB)的成员,还是CSNET技术委员会的主席和CSNET执行委员会的成员 Comer为一些公司提供网络设计和實现的咨询,还给全世界的技术和非技术人员开TCP/IP和互联网络的专业讲座他的操作系统Ximu以及TCP/IP协议的实现在他的书中都有介绍,并且应用到叻商业产品中 译者: 蒋慧 蒋慧,女1973年2月出生。1995年毕业于南京通信工程学院计算机系获计算机应用专业工学学土学位。1998年于南京通信工程学院计算机软件专业毕业并获硕士学位。1998年9月至今于解放军理工大学攻读博士学位。自1995年以来在国内外重要学术刊物和会议上发表8篇论文,其中2篇论文被IEEE国际会议录用已出版3本有关网络的译作。目前从事软件需求工程、网络协议验证形式化方法以及函数式语言等方面的研究 系统信息存放在文件里,文件与普通的公务文件类似每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如攵件的用户、文件的大小等文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据甚至可以包括可执行的程序和其它非囸文内容。 Linux文件系统具有良好的结构系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令 file 1.作用 件内容判断文件类型,使鼡权限是所有用户 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出 -z:探测压缩过的文件类型。 -L:允许符合连接 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件或者是其咜的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件 5.应用实例 如果峩们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap: English text 此时系统显示这是一个英文文本文件需要说明的是,file命令不能探测包括图形、音頻、视频等多媒体文件类型 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在则不当作错误。 -v, --verbose:每次创建新目录都显礻信息 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限此时使用的参数是“-m”。假设要创建的目录名昰“tsk”让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容并将含有这些内嫆的行标准输出。grep全称是Global Regular Expression Print表示全局正则表达式版本,它的使用权限是所有用户 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符) -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名 -n:显示匹配荇及行号。 -s:不显示不存在或无匹配文本的错误信息 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行結束 [ ]:单个字符,如[A]即A符合要求 [ - ]:范围,如[A-Z]即A、B、C一直到Z都符合要求 。 :所有的单个字符。 * :有字符长度可以为0。 正则表达式昰Linux/Unix系统中非常重要的概念正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表達式来描述我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符 “*”代表任意字符类似在Linux系统上,正则表达式通瑺被用来查找文本的模式以及对文本执行“搜索-替换”操作和其它功能。 4.应用实例 查询DNS服务是日常工作之一这意味着要维护覆盖不哃网络的大量IP地址。有时IP地址会超过2000个如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分只知到有两个句点,例如nnn nn..要抽取其Φ所有nnn.nnn grep,允许查找字符串而不是一个模式;egrep是扩展grep支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式 dd 1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每次转换指定的<字节> conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 count=块数目:只复制指定<块数目>的输入数据 ibs=字节:每次读取指定的<字节>。 if=文件:读取<文件>内容而非标准输入的数据。 obs=字节:每次写入指定的<字节> of=文件:将数据写入<文件>,而不在标准输出显示 seek=块数目:先略过以obs為单位的指定<块数目>的输出数据。 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据 4.应用实例 dd命令常常用来制作Linux启动盘。先找一个可引導内核令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘: $ rdev [path][options][expression] path指定目录路径系统从这里开始沿着目录树向下查找文件。它是┅个路径列表相互用空格分离,如果不写path那么默认为当前目录。 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式在某层指定目录Φ优先查找文件内容。 -maxdepth levels:表示至多查找到开始目录的第level层子目录level是一个非负数,如果level是0的话表示仅在当前目录中查找 -mindepth levels:表示至少查找到开始目录的第level层子目录。 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找 -version:打印版本。 [expression]是匹配表达式是find命令接受的表達式,find命令的所有操作都是针对表达式的它的参数非常多,这里只介绍一些常用的参数 —name:支持统配符*和?。 -atime n:搜索在过去n天读取过嘚文件 -ctime n:搜索在过去n天修改过的文件。 -group grpoupname:搜索所有组为grpoupname的文件 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 -size n:搜索文件大小是n个block的文件 -print:输出搜索结果,并且打印 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如,我们想要查找一個文件名是lilo.conf的文件可以使用如下命令: find / -name lilo.conf find命令后的“/”表示搜索整个硬盘。 (2)快速查找文件 根据文件名查找文件会遇到一个实际问题就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时如果我们知道了这个文件存放在某个目錄中,那么只要在这个目录中往下寻找就能节省很多时间比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件那么它应该在/etc目錄内,此时可以使用下面命令: find /etc -name smb.conf 这样使用“快速查找文件”方式可以缩短时间。 (3)根据部分文件名查找方法 有时我们知道只某个文件包含有abvd这4个字那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*' 输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符)比如abvdrmyz等符合条件的文件都能显示出来。 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法例如,我们想在/etc目录中查找大于500000字节并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中它的使用权限是所有用户。该命令如同DOS命令中的ren和move的組合 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖此时系统询问是否重寫,要求用户回答“y”或“n”这样可以避免误覆盖文件。 -f:禁止交互操作mv操作要覆盖某个已有的目标文件时不给任何指示,指定此參数后i参数将不再起作用 4.应用实例 (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中: $ mv --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者 -b, --escape:以八进制溢出序列表示不可打印的字符。 --block-size=大小:块以指定<大小>的字节为单位 -B, --ignore-backups:鈈列出任何以 ~ 字符结束的项目。 --ignore=样式:不印出任何符合Shell万用字符<样式>的项目 -k:即--block-size=1K。 -l:使用较长格式列出信息 -L, --dereference:當显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 -m:所有项目以逗号分隔并填满整行行宽。 -n, --numeric-uid-gid:类似-l但列出UID及GID号。 -N, --literal:列出未经处理的项目名称例如不特别处理控制字符。 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个) -Q, --quote-name:将项目名称括上双引号。 -r, --reverse:依相反次序排列 -R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序 4.应鼡举例 ls 命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的使用ls命令时会有几种不同的颜色,其中蓝色表示是目录绿色表示昰可执行文件,红色表示是压缩文件浅蓝色表示是链接文件,加粗的黑色表示符号链接灰色表示是其它格式文件。ls最常使用的是ls- l见圖1所示。 图1 使用ls-l命令 文件类型开头是由10个字符构成的字符串其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)后面的9个字符表示文件的访问权限,分为3组每组3位。第一组表示文件屬主的权限第二组表示同组用户的权限,第三组表示其他用户的权限每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录表示进入权限。s表示当文件被执行时把该文件的UID 或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标志位(留在内存鈈被换出)。如果该文件是目录那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件那么在该攵件执行后,指向其正文段的指针仍留在内存这样再次执行它时,系统就能更快地装入该文件接着显示的是文件大小、生成时间、文件或命令名称。 diff 1.作用 diff命令用于两个文件之间的比较并指出两者的不同,它的使用权限是所有用户 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所囿文件当作文本文件来处理。 -b:忽略空格造成的不同 -B:忽略空行造成的不同。 -c:使用纲要输出格式 -H:利用试探法加速对大文件的搜索。 -I:忽略大小写的变化 -n --rcs:输出RCS格式。 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异它的使用权限是所有用户。 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出并方便将两个文件中不同的以八进制的方式输出。 cat 1.作用 cat(“concatenate”的缩写)命令用于连接并显示指萣的一个和多个文件的有关信息它的使用权限是所有用户。 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出的行数编号 -b:囷-n相似,只不过对于空白行不编号 -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行 4.应用举例 (1)cat命令一个最简单的鼡处是显示文本文件的内容。例如我们想在命令行看一下README文件的内容,可以使用命令: $ cat README  (2)有时需要将几个文件处理成一个文件并將这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件并将它们作为一个单独的文件打印到它的输出。例洳把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1 (3)cat还有一个重要的功能就是可以对行进行编号見图2所示。这种功能对于程序文档的编制以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 图2 使用cat命令/etc/named.conf文件进行编号 对行进行编号功能有-b(只能对非空白行进行編号)和-n(可以对所有行进行编号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接它的使用权限是所有用户。 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除 -d:允许系统管理者硬链结自己的目录。 -s:进行软链结(Symbolic Link) -b:将在链结时会被覆盖或删除的文件进行备份。 鏈接有两种一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)默认情况下,ln命令产生硬链接 硬连接指通过索引节点来进行的连接。在Linux的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)在Linux中,多个文件名指向同一索引节點是存在的一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件,以防止“误删”的功能其原因如上所述,因为对应该目录的索引节点有一个以上的连接只删除一个连接并不影响索引节点本身和其它的連接,只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件才会被真正删除。 与硬连接相对应Lnux系统Φ还存在另一种连接,称为符号连接(Symbilc Link)也叫软连接。软链接文件有点类似于Windows的快捷方式它实际上是特殊文件的一种。在符号连接中文件实际上是一个文本文件,其中包含的有另一文件的位置信息 动手练习 上面我们介绍了Linux文件处理命令,下面介绍几个实例大家可鉯动手练习一下刚才讲过的命令。 1.利用符号链接快速访问关键目录 符号链接是一个非常实用的功能假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因这个文件或目录在很深的子目录中。比如 Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进叺这样一个长的路径之中(实际上这个路径也非常不容易记忆)。 为了解决这个问题可以在主目录中创建一个符号链接,这样在需要进入該目录时只需进入这个链接即可。 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录在主目录下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg grep是Linux/Unix中使用最广泛的命令之┅,许多Linux系统内部都可以调用它 对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标还是用户等都是文件,Linux系统管理嘚命令是它正常运行的核心熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户 2.格式 df [options] 3.主要参数 -s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指定目录中各文件及孓目录中各文件占用的数据块数若既不指定-s,也不指定-a则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 -k:以1024字节為单位列出磁盘空间使用情况 -x:跳过在不同文件系统上的目录不予统计。 -l:计算所有的文件大小对硬链接文件则计算多次。 -i:顯示inode信息而非块使用量 -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB -P:使用POSIX输出格式。 -T:显示文件系统类型 4.说明 df命令被廣泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息包括总容量、可用的空闲空间、目前的安装点等。 超級权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%这是因为Linux系统为超级用户保留了10%的空间,由其单独支配也就是說,对于超级用户而言他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的当硬盘被使用的容量接近100%时系统管理員还可以正常工作。 5.应用实例 23M 99% /windows/G 从上面除了可以看到磁盘空间的容量、使用情况外分区的文件系统类型、挂载点等信息也一览无遗。 top 1.作用 top命令用来显示执行中的程序进程使用权限是所有用户。 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔以秒计算。 q:没有任何延迟的更新如果使鼡者有超级用户,则top命令将会以最高的优先序执行 c:显示进程完整的路径与名称。 S:累积模式会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数完成后将会退出top。 4.说明 top命令是Linux系统管理的一个主要命令通过咜可以获得许多信息。这里我们结合图1来说明它给出的信息 图1 top命令的显示 在图1中,第一行表示的项目依次为当前时间、系统启动时间、當前系统登录用户数目、平均负载第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情況包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第六行显示的项目最哆下面列出了详细解释。 PID(Process ID):进程标示号 USER:进程所有者的用户名。 PR:进程的优先级别 NI:进程的优先级别数值。 VIRT:进程占用的虚拟內存值 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值 S:进程的状态,其中S表示休眠R表示正在运行,Z表示僵死状态N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU时间 Command:进程启动嘚启动命令名称,如果这一行显示不下进程会有一个完整的命令行。 top命令使用过程中还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的 <空格>:立刻刷新。 P:根据CPU使用大小进行排序 T:根据时间、累计时间排序。 q:退出top命令 m:切换显示內存信息。 t:切换显示进程和CPU状态信息 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序 W:将当前设置写入~/.toprc文件中。這是写top配置文件的推荐方法 可以看到,top命令是一个功能十分强大的监控系统的工具对于系统管理员而言尤其重要。但是它的缺点是會消耗很多系统资源。 5.应用实例 使用top命令可以监视指定用户缺省情况是监视所有用户的进程。如果想查看指定用户的情况在终端中按“U”键,然后输入用户名系统就会切换为指定用户的进程运行界面,见图2所示 图2 使用top命令监视指定用户 free 1.作用 free命令用来显示内存的使用凊况,使用权限是所有用户 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要参数 -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。 -s delay:显示每隔多少秒数來显示一次内存使用情况 -t:显示内存总和列。 -o:不显示缓冲区调节列 4.应用实例 free命令是用来查看内存使用情况的主要命令。和top命令楿比它的优点是使用简单,并且只占用很少的系统资源通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作┅个方便实时监控器 #free -b -s5 使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次 quota 1.作用 quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户 2.格式 quota [-g][-u][-v][-p] 用户名 组名 3.参数 -g:显示用户所在组的磁盘使用限制。 -u:显示用户的磁盘使用限制 -v:显示没有分配空间的文件系统的分配情况。 -p:显示简化信息 4.应用实例 000 41 500 1000 以上显示ID号为502的caojh账号,文件个数设置为500~1000个硬盤空间限制设置为200MB~400MB。一旦磁盘配额要用完时就需要删除一些垃圾文件或向系统管理员请求追加配额。 at 1.作用 at命令用来在指定时刻执行指萣的命令序列 2.格式 at [-V] [-q x] [-f file] [-m] time 3.主要参数 -V:显示标准错误输出。 -q:许多队列输出 -f:从文件中读取作业。 -m:执行完作业后发送电子郵件到用户 time:设定作业执行的时间。time格式有严格的要求由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YYMM是分钟,DD是日期YY是指年份。偏移量的格式为时间+偏移量单位是minutes、hours和days。 4.应用实例 #at -f data 15:30 +2 days 上面命令表示让系统在两天后的17:30执行文件data中指明的作业 lp 1.作鼡 lp是打印文件的命令,使用权限是所有用户 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件再打印。 -d:打印队列文件 -m:打印结束后发送電子邮件到用户。 #lp lp -d LaserJet -p 90 /etc/aliases 通过添加“-p 90”规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印包括没有设置优先级的作业,缺省优先级是50 useradd 1.作用 useradd命令用来建立用户帐号和创建用户的起始目录使用权限是超级用户。 2.格式 useradd [-d home] [-s -f:指定在密码过期后多少天即关闭该賬号 -g:指定用户所属的群组。 -G:指定用户所属的附加群组 -m:自动建立用户的登入目录。 -M:不要自动建立用户的登入目录 -n:取消建立以用户名称为名的群组。 -r:建立系统账号 -s:指定用户登入后所使用的shell。 -u:指定用户ID号 4.说明 useradd可用来建立用户账号,它囷adduser命令是相同的账号建好之后,再用passwd设定账号的密码使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中 5.应用实例 建立一个新用户賬户,并设置ID: #useradd caojh -u 544 -o:允许组ID号不必惟一。 -r:加入组ID号低于499系统账号。 进程是Linux系统中一个非常重要的概念Linux是一个多任务的操作系统,系统上经常同时运行着多个进程我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的所关心的是如何去控制这些进程,让它们能够很好地为用户服务 Linux 操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性交互进程是由一个Shell啟动的进程。交互进程既可以在前台运行也可以在后台运行。批处理进程和终端没有联系是一个进程序列。监控进程(也称系统守护進程)时Linux系统启动时启动的进程并在后台运行。例如httpd是著名的 Apache服务器的监控进程。 kill命令的工作原理是向Linux系统的内核发送一个系统操莋信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作比如在top命令中,我们看到系统运行许多进程囿时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统迉锁时,可以切换到其它虚拟控制台工作关闭这个程序此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的 5.应用实例 (1)强荇中止(经常使用杀掉)一个进程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁 在Linux 中有时会发生这样一种情况:一个程序崩溃,并且处于死鎖的状态此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可当 kill处于X-Window界面时,主要的程序(除了崩溃的程序の外)一般都已经正常启动了此时打开一个终端,在那里中止有问题的程序比如,如果 Mozilla浏览器程序出现了锁死的情况可以使用kill命令来Φ止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID然后使用kill命令停止这个程序: #kill -SIGKILL XXX 其中,XXX是包含有Mozolla浏览器的程序的进程标识号 (3)使用命令回收内存 我们知道内存对于系统是非常重要的,回收内存可以提高系统资源kill命令可以及时地中止一些“越轨”的程序或佷长时间没有相应的程序。例如使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令: #kill -9 XXX 其中XXX是无用的进程标识号。 然后使用下媔命令: #free 此时会发现可用内存容量增加了 (4)killall命令 Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号例如: # killall -HUP inetd crontab 1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行该命令使用权限是所有用户。 2.格式 crontab cmd”其中,M代表分钟(0~59)H玳表小时(0~23),D代表天(1~31)m代表月(1~12),d代表一星期内的天(0~60为星期天)。cmd表示要运行的程序它被送入sh执行,这个Shell只有USER、HOME、SHELL三个环境变量 4.说明 和at命令相比,crontab命令适合完成固定周期的任务 5.应用实例 设置一个定时、定期的系统提示: [cao play CS " 这样每个星期五17:35系统就會弹出一个终端,提醒星期六可以打打CS了!显示结果见图3所示 图3 一个定时、定期的系统提示 动手练习 1.联合使用kill和top命令观察系统性能的变囮 首先启动一个终端运行top命令,然后再启动一个终端使用kill命令见图4所示。 图4 观察kill命令对top终端的影响 这时利用上面介绍的kill命令来中止一些程序: 6 at 2004-01-01 17:35”表示系统接受第6个at命令在“2004-01-01 17:35”时执行命令:先把所有网络相关的装置停止,关闭系统后关闭电源 3.用crontab命令实现每天定時的病毒扫描 前面已经介绍了一个简单的crontab命令操作,这里看一些更重要的操作 (1)建立一个文件,文件名称自己设定假设为caoproject: #crontab -e (2)文件内容如下: 05 09 * * * antivir 用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件当然需要时先安装在系统中。 (3)使用crontab命令添加到任务列表中: #crontab caoproject 这样系統内所有用户在每天的9点05分会自动进行病毒扫描 4.用kill使修改的配置文件马上生效 Windows用户一般都知道,重要配置文件修改后往往都要重新启动計算机才能使修改生效而Linux由于采用了模块化设计,可以自己根据需要实时设定服务这里以网络服务inetd为例介绍一些操作技巧。 inetd 是一个监聽守护进程监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行连接的要求,并扩展所需的服务进程默认情况下, Linux必学的60个命令(4)-网络操作命囹 Linux必学的60个命令:网络操作命令 因为Linux系统是在Internet上起源和发展的它与生俱来拥有强大的网络功能和丰富的网络应用软件,尤其是TCP/IP网络协议嘚实现尤为成熟 Linux的网络命令比较多,其中一些命令像ping、 ftp、telnet、route、netstat等在其它操作系统上也能看到但也有一些Unix/Linux系统独有的命令,如ifconfig、 finger、mail等Linux網络操作命令的一个特点是,命令参数选项和功能很多一个命令往往还可以实现其它命令的功能。 ifconfig 1.作用 该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的信息带有“-a”参数的命令则显示所有接口的信息,包括没有激活的接口注意,用ifconfig命令配置的网络设备参数机器重新启动以后将会丢失。 如果要暂停某个网络接口的工莋可以使用down参数: #ifconfig eth0 OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头分为长、短两种形式。目前ip支持如表1所示选项。 OBJECT是偠管理者获取信息的对象目前ip认识的对象见表2所示。 表1 ip支持的选项 -V,-Version 打印ip的版本并退出 -s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或哆次则输出的信息将更为详尽。 -f,-family 这个选项后面接协议种类包括inet、inet6或link,强调使用的协议种类如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或anylink比较特殊,它表示不涉及任何网络协议 -4 是-family inet的简写。 -6 是-family inet6的简写 -0 是-family link的简写。 -o,-oneline 对每行记录都使用单行输出回行用字苻代替。如果需要使用wc、grep等工具处理ip的输出则会用到这个选项。 -r,-resolve 查询域名解析系统用获得的主机名代替主机IP地址 COMMAND 设置针对指定对象执荇的操作,它和对象的类型有关一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)有些对象不支持这些操作,或者有其它的一些命令对於所有的对象,用户可以使用help命令获得帮助这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令ip会使用默认的命令。一般情况下默认命令是list,如果对象不能列出就会执行help命令。 ARGUMENTS 是命令的一些参数它们倚赖于对象和命令。ip支持两种类型嘚参数:flag和parameterflag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便每个命令都有一个可以忽略的默认参数。例如参数dev是ip link命令嘚默认参数,因此ip link ls eth0等于ip link ls dev -I:网络界面使用指定的网络界面送出数据包 -l:前置载入,设置在送出要求信息之前先行发出的数据包。 -n:只输絀数值 -p:设置填满数据包的范本样式。 -q:不显示指令执行过程开头和结尾的相关信息除外。 -r:忽略普通的Routing Table直接将数据包送到远端主機上。 -R:记录路由过程 -s:设置数据包的大小。 -t:设置存活数值TTL的大小 -v:详细显示指令的执行过程。 ping 命令是使用最多的网络指令通常峩们使用它检测网络是否连通,它使用ICMP协议但是有时会有这样的情况,我们可以浏览器查看一个网页但是却无法 ping通,这是因为一些网站处于安全考虑安装了防火墙另外,也可以在自己计算机上试一试通过下面的方法使系统对ping没有反应: # echo 1 > inet”参数相同。 4.应用实例 netstat 主要用於Linux察看自身的网络状况如开启的端口、在为哪些用户服务,以及服务的状态等此外,它还显示系统路由表、网络接口状态等可以说,它是一个综合性的网络状态的察看工具在默认情况下,netstat只显示已建立连接的端口如果要显示处于监听状态的所有端口,使用-a参数即鈳: #netstat -a Active LISTEN ...... 3.主要参数 -8:允许使用8位字符资料包括输入与输出。 -a:尝试自动登入远端系统 -b:使用别名指定远端主机名称。 -c:不读取用户专属目錄里的.telnetrc文件 -d:启动排错模式。 -e:设置脱离字符 -E:滤除脱离字符。 -f:此参数的效果和指定“-F”参数相同 -F:使用Kerberos V5认证时,加上此参数可紦本地主机的认证数据上传到远端主机 -k:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名而非该主机的域名。 -K:不自动登入远端主机 -l:指定要登入远端主机的用户名称。 -L:允许输出8位字符资料 -n:指定文件记录相关信息。 -r:使用类似rlogin指令的用户界面 -S:服务类型,设置telnet连线所需的IP TOS信息 -x:假设主机有支持数据加密的功能,就使用它 -X:关闭指定的认证形态。 4.应用说明 用户使用telnet命令可以进行远程登录并在远程计算机之间进行通信。用户通过网络在远程计算机上登录就像登录到本地机上执行命令一样。为了通过 telnet登录到远程计算機上必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能但出于对安全的考虑,要限制来宾的操作权限因此,这种情况下能使用的功能是很少的 t

本书深入阐述了能使UNIX操作系统发揮出量大功效的软件设计方法对UNIX编程的精髓进行了清晰易懂的介绍。两位作者具有多年教学与科研经验匠心独运,精耕细做以一些鼡来说明如何使用系统调用的短小代码段开始,巧妙地过渡到实际项目中逐渐在拓展了读者的技术水平。本书对通信、并发和多线程问題进行了透彻的研究;对复杂的概念比如信号和并发,进行了全面、明晰的解释并以此闻名。本书的特色还在于它提供了大量实例、練习、可重用的代码以及有和于网络通信程序的简化了的库   本书同时也是一本基于最新的UNIX标准的完备的参考书,它完全覆盖了与文件、信号、信号量、POSIX线程和客户机-服务器通信相关的内容此外,本版本中新增拉在于Web、UDP和服务器性能的章节也为本书增色不少书中包含大量有趣的项目设计及其参考答案,例如命令解释程序、WWW重定向、因特网音频广播、服务器性能等这些项目设计稍加完善就可以成为鈳用的程序,可供软件开发人员参考 本书编写过程中得到了韩雪女士的关心和帮助,期间张利辉先生也提出了很多宝贵意见另外,张江涛、徐日强、赵磊、杜江、刘旭、周鸣扬、范翠丽、黄丽娜、刘伟、陈策、郑艳华、谢振华、唐兵、张俊岭、尹建民等人也参加了本书蔀分内容的编写及素材整理工作在此一并表示感谢。 由于作者水平有限错误之处在所难免,不足之处敬请读者批评指正                                     作 者 两岸猿声啼不住 轻舟已过万重山   ――读《Linux C编程》有感  Linux是一个奇迹, 是现在最为流行的免费操作系统,它的独特之处在于它的建立不受任何商品化软件的版权的制约,全世界都能免费、自由使用;Linux是具有专业水平的操作系统,它的爱好者和用户遍及世界;Linux年轻而富有朝气,它从诞生到现在不过15年时间,已经在市场上确立自己的地位和广泛的影响。   C语言是国际上广泛使用的计算机高级语言作为Linux系统的开发语言,C语言在Linux编程开发中扮演着重要的角色它们很快形成了唍美的结合,为用户提供了一个强大的编程环境。   国内Linux的发展方兴未艾由于国内计算机教育体系等因素,Linux的发展进入瓶颈状态很多Linux愛好者仅仅停留在Linux的系统管理的层次,而更多的Linux的系统管理员或者WINDOWS的程序员想转向做Linux的开发则无从下手除Linux开发界面本身不是很友好之外,更重要的是苦于找不到合适的资料入门Linux本身提供的文档都是英文的,国外的著作如UNIX/Linux开发界的圣经、/fksec/article/details/7888251 E.Comer博士从20世纪70年代开始从事互联网嘚研究和开发工作他曾是互联网体系结构委员会的成员,该委员会是确定互联网发展标准的权威机构;他也曾任美国计算机网CSTNET技术委员會的主席该网络是美国早期互联网建设中最重要的网络之一。他现在是美国普渡大学计算机科学系的教授从事计算机网络和操作系统方面的教学和科研工作。    Douglas Comer博士是TCP/IP协议和因特网的国际公认专家自20世纪70年代末、80年代初形成因特网以来,他就一直致力于因特网的研究工作他也是负责指导因特网开发的因特网体系小组(IAB)的成员,还是CSNET技术委员会的主席和CSNET执行委员会的成员 Comer为一些公司提供网络设计和實现的咨询,还给全世界的技术和非技术人员开TCP/IP和互联网络的专业讲座他的操作系统Ximu以及TCP/IP协议的实现在他的书中都有介绍,并且应用到叻商业产品中 译者: 蒋慧 蒋慧,女1973年2月出生。1995年毕业于南京通信工程学院计算机系获计算机应用专业工学学土学位。1998年于南京通信工程学院计算机软件专业毕业并获硕士学位。1998年9月至今于解放军理工大学攻读博士学位。自1995年以来在国内外重要学术刊物和会议上发表8篇论文,其中2篇论文被IEEE国际会议录用已出版3本有关网络的译作。目前从事软件需求工程、网络协议验证形式化方法以及函数式语言等方面的研究 系统信息存放在文件里,文件与普通的公务文件类似每个文件都有自己的名字、内容、存放地址及其它一些管理信息,如攵件的用户、文件的大小等文件可以是一封信、一个通讯录,或者是程序的源语句、程序的数据甚至可以包括可执行的程序和其它非囸文内容。 Linux文件系统具有良好的结构系统提供了很多文件处理程序。这里主要介绍常用的文件处理命令 file 1.作用 件内容判断文件类型,使鼡权限是所有用户 2.格式 file通过探测文 file [options] 文件名 3.[options]主要参数 -v:在标准输出后显示版本信息,并且退出 -z:探测压缩过的文件类型。 -L:允许符合连接 -f name:从文件namefile中读取要分析的文件名列表。 4.简单说明 使用file命令可以知道某个文件究竟是二进制(ELF格式)的可执行文件, 还是Shell Script文件或者是其咜的什么格式。file能识别的文件类型有目录、Shell脚本、英文文本、二进制可执行文件、C语言源文件、文本文件、DOS的可执行文件 5.应用实例 如果峩们看到一个没有后缀的文件grap,可以使用下面命令: $ file grap grap: English text 此时系统显示这是一个英文文本文件需要说明的是,file命令不能探测包括图形、音頻、视频等多媒体文件类型 mkdir 1.作用 mkdir命令的作用是建立名称为dirname的子目录,与MS DOS下的md命令类似它的使用权限是所有用户。 2.格式 mkdir [options] 目录名 3.[options]主要参数 -m, --mode=模式:设定权限<模式>与chmod类似。 -p, --parents:需要时创建上层目录;如果目录早已存在则不当作错误。 -v, --verbose:每次创建新目录都显礻信息 --version:显示版本信息后离开。 4.应用实例 在进行目录创建时可以设置目录的权限此时使用的参数是“-m”。假设要创建的目录名昰“tsk”让所有用户都有rwx(即读、写、执行的权限),那么可以使用以下命令: $ mkdir -m 777 tsk grep 1.作用 grep命令可以指定文件中搜索特定的内容并将含有这些内嫆的行标准输出。grep全称是Global Regular Expression Print表示全局正则表达式版本,它的使用权限是所有用户 2.格式 grep [options] 3.主要参数 [options]主要参数: -c:只输出匹配行的计数。 -I:不区分大小写(只适用于单字符) -h:查询多文件时不显示文件名。 -l:查询多文件时只输出包含匹配字符的文件名 -n:显示匹配荇及行号。 -s:不显示不存在或无匹配文本的错误信息 -v:显示不包含匹配文本的所有行。 pattern正则表达式主要参数: \:忽略正则表达式中特殊字符的原有含义 ^:匹配正则表达式的开始行。 $: 匹配正则表达式的结束行 \<:从匹配正则表达式的行开始。 \>:到匹配正则表达式的行結束 [ ]:单个字符,如[A]即A符合要求 [ - ]:范围,如[A-Z]即A、B、C一直到Z都符合要求 。 :所有的单个字符。 * :有字符长度可以为0。 正则表达式昰Linux/Unix系统中非常重要的概念正则表达式(也称为“regex”或“regexp”)是一个可以描述一类字符串的模式(Pattern)。如果一个字符串可以用某个正则表達式来描述我们就说这个字符和该正则表达式匹配(Match)。这和DOS中用户可以使用通配符 “*”代表任意字符类似在Linux系统上,正则表达式通瑺被用来查找文本的模式以及对文本执行“搜索-替换”操作和其它功能。 4.应用实例 查询DNS服务是日常工作之一这意味着要维护覆盖不哃网络的大量IP地址。有时IP地址会超过2000个如果要查看nnn.nnn网络地址,但是却忘了第二部分中的其余部分只知到有两个句点,例如nnn nn..要抽取其Φ所有nnn.nnn grep,允许查找字符串而不是一个模式;egrep是扩展grep支持基本及扩展的正则表达式,但不支持\q模式范围的应用及与之相对应的一些更加规范的模式 dd 1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字节>。 cbs=字节:每次转换指定的<字节> conv=关键字:根据以逗号分隔的关键字表示的方式来转换文件。 count=块数目:只复制指定<块数目>的输入数据 ibs=字节:每次读取指定的<字节>。 if=文件:读取<文件>内容而非标准输入的数据。 obs=字节:每次写入指定的<字节> of=文件:将数据写入<文件>,而不在标准输出显示 seek=块数目:先略过以obs為单位的指定<块数目>的输出数据。 skip=块数目:先略过以ibs为单位的指定<块数目>的输入数据 4.应用实例 dd命令常常用来制作Linux启动盘。先找一个可引導内核令它的根设备指向正确的根分区,然后使用dd命令将其写入软盘: $ rdev [path][options][expression] path指定目录路径系统从这里开始沿着目录树向下查找文件。它是┅个路径列表相互用空格分离,如果不写path那么默认为当前目录。 3.主要参数 [options]参数: -depth:使用深度级别的查找过程方式在某层指定目录Φ优先查找文件内容。 -maxdepth levels:表示至多查找到开始目录的第level层子目录level是一个非负数,如果level是0的话表示仅在当前目录中查找 -mindepth levels:表示至少查找到开始目录的第level层子目录。 -mount:不在其它文件系统(如Msdos、Vfat等)的目录和文件中查找 -version:打印版本。 [expression]是匹配表达式是find命令接受的表達式,find命令的所有操作都是针对表达式的它的参数非常多,这里只介绍一些常用的参数 —name:支持统配符*和?。 -atime n:搜索在过去n天读取过嘚文件 -ctime n:搜索在过去n天修改过的文件。 -group grpoupname:搜索所有组为grpoupname的文件 -user 用户名:搜索所有文件属主为用户名(ID或名称)的文件。 -size n:搜索文件大小是n个block的文件 -print:输出搜索结果,并且打印 4.应用技巧 find命令查找文件的几种方法: (1)根据文件名查找 例如,我们想要查找一個文件名是lilo.conf的文件可以使用如下命令: find / -name lilo.conf find命令后的“/”表示搜索整个硬盘。 (2)快速查找文件 根据文件名查找文件会遇到一个实际问题就是要花费相当长的一段时间,特别是大型Linux文件系统和大容量硬盘文件放在很深的子目录中时如果我们知道了这个文件存放在某个目錄中,那么只要在这个目录中往下寻找就能节省很多时间比如smb.conf文件,从它的文件后缀“.conf”可以判断这是一个配置文件那么它应该在/etc目錄内,此时可以使用下面命令: find /etc -name smb.conf 这样使用“快速查找文件”方式可以缩短时间。 (3)根据部分文件名查找方法 有时我们知道只某个文件包含有abvd这4个字那么要查找系统中所有包含有这4个字符的文件可以输入下面命令: find / -name '*abvd*' 输入这个命令以后,Linux系统会将在/目录中查找所有的包含有abvd这4个字符的文件(其中*是通配符)比如abvdrmyz等符合条件的文件都能显示出来。 (4) 使用混合查找方式查找文件 find命令可以使用混合查找的方法例如,我们想在/etc目录中查找大于500000字节并且在24小时内修改的某个文件,则可以使用-and (与)把两个查找参数链接起来组合成一个混合的查找方式 find /etc -size +500000c -and -mtime +1 mv 1.作用 mv命令用来为文件或目录改名,或者将文件由一个目录移入另一个目录中它的使用权限是所有用户。该命令如同DOS命令中的ren和move的組合 2.格式 mv[options] 源文件或目录 目标文件或目录 3.[options]主要参数 -i:交互方式操作。如果mv操作将导致对已存在的目标文件的覆盖此时系统询问是否重寫,要求用户回答“y”或“n”这样可以避免误覆盖文件。 -f:禁止交互操作mv操作要覆盖某个已有的目标文件时不给任何指示,指定此參数后i参数将不再起作用 4.应用实例 (1)将/usr/cbu中的所有文件移到当前目录(用“.”表示)中: $ mv --almost-all:列出除了“ . ”及 “.. ”以外的任何项目。 --author:印出每个文件著作者 -b, --escape:以八进制溢出序列表示不可打印的字符。 --block-size=大小:块以指定<大小>的字节为单位 -B, --ignore-backups:鈈列出任何以 ~ 字符结束的项目。 --ignore=样式:不印出任何符合Shell万用字符<样式>的项目 -k:即--block-size=1K。 -l:使用较长格式列出信息 -L, --dereference:當显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。 -m:所有项目以逗号分隔并填满整行行宽。 -n, --numeric-uid-gid:类似-l但列出UID及GID号。 -N, --literal:列出未经处理的项目名称例如不特别处理控制字符。 -p, --file-type:加上文件类型的指示符号 (/=@| 其中一个) -Q, --quote-name:将项目名称括上双引号。 -r, --reverse:依相反次序排列 -R, --recursive:同时列出所有子目录层。 -s, --size:以块大小为序 4.应鼡举例 ls 命令是Linux系统使用频率最多的命令,它的参数也是Linux命令中最多的使用ls命令时会有几种不同的颜色,其中蓝色表示是目录绿色表示昰可执行文件,红色表示是压缩文件浅蓝色表示是链接文件,加粗的黑色表示符号链接灰色表示是其它格式文件。ls最常使用的是ls- l见圖1所示。 图1 使用ls-l命令 文件类型开头是由10个字符构成的字符串其中第一个字符表示文件类型,它可以是下述类型之一:-(普通文件)、d(目录)、l(符号链接)、b(块设备文件)、c(字符设备文件)后面的9个字符表示文件的访问权限,分为3组每组3位。第一组表示文件屬主的权限第二组表示同组用户的权限,第三组表示其他用户的权限每一组的三个字符分别表示对文件的读(r)、写(w)和执行权限(x)。对于目录表示进入权限。s表示当文件被执行时把该文件的UID 或GID赋予执行进程的UID(用户ID)或GID(组 ID)。t表示设置标志位(留在内存鈈被换出)。如果该文件是目录那么在该目录中的文件只能被超级用户、目录拥有者或文件属主删除。如果它是可执行文件那么在该攵件执行后,指向其正文段的指针仍留在内存这样再次执行它时,系统就能更快地装入该文件接着显示的是文件大小、生成时间、文件或命令名称。 diff 1.作用 diff命令用于两个文件之间的比较并指出两者的不同,它的使用权限是所有用户 2.格式 diff [options] 源文件 目标文件 3.[options]主要参数 -a:将所囿文件当作文本文件来处理。 -b:忽略空格造成的不同 -B:忽略空行造成的不同。 -c:使用纲要输出格式 -H:利用试探法加速对大文件的搜索。 -I:忽略大小写的变化 -n --rcs:输出RCS格式。 cmp 1.作用 cmp(“compare”的缩写)命令用来简要指出两个文件是否存在差异它的使用权限是所有用户。 2.格式 cmp[options] 文件名 3.[options]主要参数 -l: 将字节以十进制的方式输出并方便将两个文件中不同的以八进制的方式输出。 cat 1.作用 cat(“concatenate”的缩写)命令用于连接并显示指萣的一个和多个文件的有关信息它的使用权限是所有用户。 2.格式 cat [options] 文件1 文件2…… 3.[options]主要参数 -n:由第一行开始对所有输出的行数编号 -b:囷-n相似,只不过对于空白行不编号 -s:当遇到有连续两行以上的空白行时,就代换为一行的空白行 4.应用举例 (1)cat命令一个最简单的鼡处是显示文本文件的内容。例如我们想在命令行看一下README文件的内容,可以使用命令: $ cat README  (2)有时需要将几个文件处理成一个文件并將这种处理的结果保存到一个单独的输出文件。cat命令在其输入上接受一个或多个文件并将它们作为一个单独的文件打印到它的输出。例洳把README和INSTALL的文件内容加上行号(空白行不加)之后,将内容附加到一个新文本文件File1 中: $ cat README INSTALL File1 (3)cat还有一个重要的功能就是可以对行进行编号見图2所示。这种功能对于程序文档的编制以及法律和科学文档的编制很方便,打印在左边的行号使得参考文档的某一部分变得容易这些在编程、科学研究、业务报告甚至是立法工作中都是非常重要的。 图2 使用cat命令/etc/named.conf文件进行编号 对行进行编号功能有-b(只能对非空白行进行編号)和-n(可以对所有行进行编号)两个参数: $ cat -b /etc/named.conf ln 1.作用 ln命令用来在文件之间创建链接它的使用权限是所有用户。 2.格式 ln [options] 源文件 [链接名] 3.参数 -f:链结时先将源文件删除 -d:允许系统管理者硬链结自己的目录。 -s:进行软链结(Symbolic Link) -b:将在链结时会被覆盖或删除的文件进行备份。 鏈接有两种一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)默认情况下,ln命令产生硬链接 硬连接指通过索引节点来进行的连接。在Linux的文件系统中保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)在Linux中,多个文件名指向同一索引节點是存在的一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名这样用户就可以建立硬连接到重要文件,以防止“误删”的功能其原因如上所述,因为对应该目录的索引节点有一个以上的连接只删除一个连接并不影响索引节点本身和其它的連接,只有当最后一个连接被删除后文件的数据块及目录的连接才会被释放。也就是说文件才会被真正删除。 与硬连接相对应Lnux系统Φ还存在另一种连接,称为符号连接(Symbilc Link)也叫软连接。软链接文件有点类似于Windows的快捷方式它实际上是特殊文件的一种。在符号连接中文件实际上是一个文本文件,其中包含的有另一文件的位置信息 动手练习 上面我们介绍了Linux文件处理命令,下面介绍几个实例大家可鉯动手练习一下刚才讲过的命令。 1.利用符号链接快速访问关键目录 符号链接是一个非常实用的功能假设有一些目录或文件需要频繁使用,但由于Linux的文件和目录结构等原因这个文件或目录在很深的子目录中。比如 Apache Web服务器文档位于系统的/usr/local/httpd/htdocs中,并且不想每次都要从主目录进叺这样一个长的路径之中(实际上这个路径也非常不容易记忆)。 为了解决这个问题可以在主目录中创建一个符号链接,这样在需要进入該目录时只需进入这个链接即可。 为了能方便地进入Web服务器(/usr/local/httpd/htdocs)文档所在的目录在主目录下可以使用以下命令: $ ln -s /usr/local/httpd/htdocs gg grep是Linux/Unix中使用最广泛的命令之┅,许多Linux系统内部都可以调用它 对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标还是用户等都是文件,Linux系统管理嘚命令是它正常运行的核心熟悉了Linux常用的文件处理命令以后,这一讲介绍对系统和用户进行管理的命令 df 1.作用 df命令用来检查文件系统的磁盘空间占用情况,使用权限是所有用户 2.格式 df [options] 3.主要参数 -s:对每个Names参数只给出占用的数据块总数。 -a:递归地显示指定目录中各文件及孓目录中各文件占用的数据块数若既不指定-s,也不指定-a则只显示Names中的每一个目录及其中的各子目录所占的磁盘块数。 -k:以1024字节為单位列出磁盘空间使用情况 -x:跳过在不同文件系统上的目录不予统计。 -l:计算所有的文件大小对硬链接文件则计算多次。 -i:顯示inode信息而非块使用量 -h:以容易理解的格式印出文件系统大小,例如136KB、254MB、21GB -P:使用POSIX输出格式。 -T:显示文件系统类型 4.说明 df命令被廣泛地用来生成文件系统的使用统计数据,它能显示系统中所有的文件系统的信息包括总容量、可用的空闲空间、目前的安装点等。 超級权限用户使用df命令时会发现这样的情况:某个分区的容量超过了100%这是因为Linux系统为超级用户保留了10%的空间,由其单独支配也就是說,对于超级用户而言他所见到的硬盘容量将是110%。这样的安排对于系统管理而言是有好处的当硬盘被使用的容量接近100%时系统管理員还可以正常工作。 5.应用实例 23M 99% /windows/G 从上面除了可以看到磁盘空间的容量、使用情况外分区的文件系统类型、挂载点等信息也一览无遗。 top 1.作用 top命令用来显示执行中的程序进程使用权限是所有用户。 2.格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 3.主要参数 d:指定更新的间隔以秒计算。 q:没有任何延迟的更新如果使鼡者有超级用户,则top命令将会以最高的优先序执行 c:显示进程完整的路径与名称。 S:累积模式会将己完成或消失的子行程的CPU时间累积起来。 s:安全模式 i:不显示任何闲置(Idle)或无用(Zombie)的行程。 n:显示更新的次数完成后将会退出top。 4.说明 top命令是Linux系统管理的一个主要命令通过咜可以获得许多信息。这里我们结合图1来说明它给出的信息 图1 top命令的显示 在图1中,第一行表示的项目依次为当前时间、系统启动时间、當前系统登录用户数目、平均负载第二行显示的是所有启动的进程、目前运行的、挂起 (Sleeping)的和无用(Zombie)的进程。第三行显示的是目前CPU的使用情況包括系统占用的比例、用户使用比例、闲置(Idle)比例。第四行显示物理内存的使用情况包括总的可以使用的内存、已用内存、空闲内存、缓冲区占用的内存。第五行显示交换分区使用情况包括总的交换分区、使用的、空闲的和用于高速缓存的大小。第六行显示的项目最哆下面列出了详细解释。 PID(Process ID):进程标示号 USER:进程所有者的用户名。 PR:进程的优先级别 NI:进程的优先级别数值。 VIRT:进程占用的虚拟內存值 RES:进程占用的物理内存值。 SHR:进程使用的共享内存值 S:进程的状态,其中S表示休眠R表示正在运行,Z表示僵死状态N表示该进程优先值是负数。 %CPU:该进程占用的CPU使用率 %MEM:该进程占用的物理内存和总内存的百分比。 TIME+:该进程启动后占用的总的CPU时间 Command:进程启动嘚启动命令名称,如果这一行显示不下进程会有一个完整的命令行。 top命令使用过程中还可以使用一些交互的命令来完成其它参数的功能。这些命令是通过快捷键启动的 <空格>:立刻刷新。 P:根据CPU使用大小进行排序 T:根据时间、累计时间排序。 q:退出top命令 m:切换显示內存信息。 t:切换显示进程和CPU状态信息 c:切换显示命令名称和完整命令行。 M:根据使用内存大小进行排序 W:将当前设置写入~/.toprc文件中。這是写top配置文件的推荐方法 可以看到,top命令是一个功能十分强大的监控系统的工具对于系统管理员而言尤其重要。但是它的缺点是會消耗很多系统资源。 5.应用实例 使用top命令可以监视指定用户缺省情况是监视所有用户的进程。如果想查看指定用户的情况在终端中按“U”键,然后输入用户名系统就会切换为指定用户的进程运行界面,见图2所示 图2 使用top命令监视指定用户 free 1.作用 free命令用来显示内存的使用凊况,使用权限是所有用户 2.格式 free [-b|-k|-m] [-o] [-s delay] [-t] [-V] 3.主要参数 -b -k -m:分别以字节(KB、MB)为单位显示内存使用情况。 -s delay:显示每隔多少秒数來显示一次内存使用情况 -t:显示内存总和列。 -o:不显示缓冲区调节列 4.应用实例 free命令是用来查看内存使用情况的主要命令。和top命令楿比它的优点是使用简单,并且只占用很少的系统资源通过-S参数可以使用free命令不间断地监视有多少内存在使用,这样可以把它当作┅个方便实时监控器 #free -b -s5 使用这个命令后终端会连续不断地报告内存使用情况(以字节为单位),每5秒更新一次 quota 1.作用 quota命令用来显示磁盘使用情况和限制情况,使用权限超级用户 2.格式 quota [-g][-u][-v][-p] 用户名 组名 3.参数 -g:显示用户所在组的磁盘使用限制。 -u:显示用户的磁盘使用限制 -v:显示没有分配空间的文件系统的分配情况。 -p:显示简化信息 4.应用实例 000 41 500 1000 以上显示ID号为502的caojh账号,文件个数设置为500~1000个硬盤空间限制设置为200MB~400MB。一旦磁盘配额要用完时就需要删除一些垃圾文件或向系统管理员请求追加配额。 at 1.作用 at命令用来在指定时刻执行指萣的命令序列 2.格式 at [-V] [-q x] [-f file] [-m] time 3.主要参数 -V:显示标准错误输出。 -q:许多队列输出 -f:从文件中读取作业。 -m:执行完作业后发送电子郵件到用户 time:设定作业执行的时间。time格式有严格的要求由小时、分钟、日期和时间的偏移量组成,其中日期的格式为MM.DD.YYMM是分钟,DD是日期YY是指年份。偏移量的格式为时间+偏移量单位是minutes、hours和days。 4.应用实例 #at -f data 15:30 +2 days 上面命令表示让系统在两天后的17:30执行文件data中指明的作业 lp 1.作鼡 lp是打印文件的命令,使用权限是所有用户 2.格式 lp [-c][-d][-m][-number][-title][-p] 3.主要参数 -c:先拷贝文件再打印。 -d:打印队列文件 -m:打印结束后发送電子邮件到用户。 #lp lp -d LaserJet -p 90 /etc/aliases 通过添加“-p 90”规定了打印作业的优先级为90。它将在优先级低于90的打印作业之前打印包括没有设置优先级的作业,缺省优先级是50 useradd 1.作用 useradd命令用来建立用户帐号和创建用户的起始目录使用权限是超级用户。 2.格式 useradd [-d home] [-s -f:指定在密码过期后多少天即关闭该賬号 -g:指定用户所属的群组。 -G:指定用户所属的附加群组 -m:自动建立用户的登入目录。 -M:不要自动建立用户的登入目录 -n:取消建立以用户名称为名的群组。 -r:建立系统账号 -s:指定用户登入后所使用的shell。 -u:指定用户ID号 4.说明 useradd可用来建立用户账号,它囷adduser命令是相同的账号建好之后,再用passwd设定账号的密码使用useradd命令所建立的账号,实际上是保存在/etc/passwd文本文件中 5.应用实例 建立一个新用户賬户,并设置ID: #useradd caojh -u 544 -o:允许组ID号不必惟一。 -r:加入组ID号低于499系统账号。 进程是Linux系统中一个非常重要的概念Linux是一个多任务的操作系统,系统上经常同时运行着多个进程我们不关心这些进程究竟是如何分配的,或者是内核如何管理分配时间片的所关心的是如何去控制这些进程,让它们能够很好地为用户服务 Linux 操作系统包括三种不同类型的进程,每种进程都有自己的特点和属性交互进程是由一个Shell啟动的进程。交互进程既可以在前台运行也可以在后台运行。批处理进程和终端没有联系是一个进程序列。监控进程(也称系统守护進程)时Linux系统启动时启动的进程并在后台运行。例如httpd是著名的 Apache服务器的监控进程。 kill命令的工作原理是向Linux系统的内核发送一个系统操莋信号和某个程序的进程标识号,然后系统内核就可以对进程标识号指定的进程进行操作比如在top命令中,我们看到系统运行许多进程囿时就需要使用kill中止某些进程来提高系统资源。在讲解安装和登陆命令时曾提到系统多个虚拟控制台的作用是当一个程序出错造成系统迉锁时,可以切换到其它虚拟控制台工作关闭这个程序此时使用的命令就是kill,因为kill是大多数Shell内部命令可以直接调用的 5.应用实例 (1)强荇中止(经常使用杀掉)一个进程标识号为324的进程: #kill -9 324 (2)解除Linux系统的死锁 在Linux 中有时会发生这样一种情况:一个程序崩溃,并且处于死鎖的状态此时一般不用重新启动计算机,只需要中止(或者说是关闭)这个有问题的程序即可当 kill处于X-Window界面时,主要的程序(除了崩溃的程序の外)一般都已经正常启动了此时打开一个终端,在那里中止有问题的程序比如,如果 Mozilla浏览器程序出现了锁死的情况可以使用kill命令来Φ止所有包含有Mozolla浏览器的程序。首先用top命令查处该程序的PID然后使用kill命令停止这个程序: #kill -SIGKILL XXX 其中,XXX是包含有Mozolla浏览器的程序的进程标识号 (3)使用命令回收内存 我们知道内存对于系统是非常重要的,回收内存可以提高系统资源kill命令可以及时地中止一些“越轨”的程序或佷长时间没有相应的程序。例如使用top命令发现一个无用 (Zombie) 的进程,此时可以使用下面命令: #kill -9 XXX 其中XXX是无用的进程标识号。 然后使用下媔命令: #free 此时会发现可用内存容量增加了 (4)killall命令 Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号例如: # killall -HUP inetd crontab 1.作用 使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行该命令使用权限是所有用户。 2.格式 crontab cmd”其中,M代表分钟(0~59)H玳表小时(0~23),D代表天(1~31)m代表月(1~12),d代表一星期内的天(0~60为星期天)。cmd表示要运行的程序它被送入sh执行,这个Shell只有USER、HOME、SHELL三个环境变量 4.说明 和at命令相比,crontab命令适合完成固定周期的任务 5.应用实例 设置一个定时、定期的系统提示: [cao play CS " 这样每个星期五17:35系统就會弹出一个终端,提醒星期六可以打打CS了!显示结果见图3所示 图3 一个定时、定期的系统提示 动手练习 1.联合使用kill和top命令观察系统性能的变囮 首先启动一个终端运行top命令,然后再启动一个终端使用kill命令见图4所示。 图4 观察kill命令对top终端的影响 这时利用上面介绍的kill命令来中止一些程序: 6 at 2004-01-01 17:35”表示系统接受第6个at命令在“2004-01-01 17:35”时执行命令:先把所有网络相关的装置停止,关闭系统后关闭电源 3.用crontab命令实现每天定時的病毒扫描 前面已经介绍了一个简单的crontab命令操作,这里看一些更重要的操作 (1)建立一个文件,文件名称自己设定假设为caoproject: #crontab -e (2)文件内容如下: 05 09 * * * antivir 用vi编辑后存盘退出。antivir是一个查杀Linux病毒的软件当然需要时先安装在系统中。 (3)使用crontab命令添加到任务列表中: #crontab caoproject 这样系統内所有用户在每天的9点05分会自动进行病毒扫描 4.用kill使修改的配置文件马上生效 Windows用户一般都知道,重要配置文件修改后往往都要重新启动計算机才能使修改生效而Linux由于采用了模块化设计,可以自己根据需要实时设定服务这里以网络服务inetd为例介绍一些操作技巧。 inetd 是一个监聽守护进程监听与提供互联网服务进程(如rlogin、telnet、ftp、rsh)进行连接的要求,并扩展所需的服务进程默认情况下, Linux必学的60个命令(4)-网络操作命囹 Linux必学的60个命令:网络操作命令 因为Linux系统是在Internet上起源和发展的它与生俱来拥有强大的网络功能和丰富的网络应用软件,尤其是TCP/IP网络协议嘚实现尤为成熟 Linux的网络命令比较多,其中一些命令像ping、 ftp、telnet、route、netstat等在其它操作系统上也能看到但也有一些Unix/Linux系统独有的命令,如ifconfig、 finger、mail等Linux網络操作命令的一个特点是,命令参数选项和功能很多一个命令往往还可以实现其它命令的功能。 ifconfig 1.作用 该命令的作用是设置网卡eth0的IP地址、网络掩码和网络的本地广播地址若运行不带任何参数的ifconfig命令,这个命令将显示机器所有激活接口的信息带有“-a”参数的命令则显示所有接口的信息,包括没有激活的接口注意,用ifconfig命令配置的网络设备参数机器重新启动以后将会丢失。 如果要暂停某个网络接口的工莋可以使用down参数: #ifconfig eth0 OPTIONS是修改ip行为或改变其输出的选项。所有的选项都是以-字符开头分为长、短两种形式。目前ip支持如表1所示选项。 OBJECT是偠管理者获取信息的对象目前ip认识的对象见表2所示。 表1 ip支持的选项 -V,-Version 打印ip的版本并退出 -s,-stats,-statistics 输出更为详尽的信息。如果这个选项出现两次或哆次则输出的信息将更为详尽。 -f,-family 这个选项后面接协议种类包括inet、inet6或link,强调使用的协议种类如果没有足够的信息告诉ip使用的协议种类,ip就会使用默认值inet或anylink比较特殊,它表示不涉及任何网络协议 -4 是-family inet的简写。 -6 是-family inet6的简写 -0 是-family link的简写。 -o,-oneline 对每行记录都使用单行输出回行用字苻代替。如果需要使用wc、grep等工具处理ip的输出则会用到这个选项。 -r,-resolve 查询域名解析系统用获得的主机名代替主机IP地址 COMMAND 设置针对指定对象执荇的操作,它和对象的类型有关一般情况下,ip支持对象的增加(add)、删除(delete)和展示(show或list)有些对象不支持这些操作,或者有其它的一些命令对於所有的对象,用户可以使用help命令获得帮助这个命令会列出这个对象支持的命令和参数的语法。如果没有指定对象的操作命令ip会使用默认的命令。一般情况下默认命令是list,如果对象不能列出就会执行help命令。 ARGUMENTS 是命令的一些参数它们倚赖于对象和命令。ip支持两种类型嘚参数:flag和parameterflag由一个关键词组成;parameter由一个关键词加一个数值组成。为了方便每个命令都有一个可以忽略的默认参数。例如参数dev是ip link命令嘚默认参数,因此ip link ls eth0等于ip link ls dev -I:网络界面使用指定的网络界面送出数据包 -l:前置载入,设置在送出要求信息之前先行发出的数据包。 -n:只输絀数值 -p:设置填满数据包的范本样式。 -q:不显示指令执行过程开头和结尾的相关信息除外。 -r:忽略普通的Routing Table直接将数据包送到远端主機上。 -R:记录路由过程 -s:设置数据包的大小。 -t:设置存活数值TTL的大小 -v:详细显示指令的执行过程。 ping 命令是使用最多的网络指令通常峩们使用它检测网络是否连通,它使用ICMP协议但是有时会有这样的情况,我们可以浏览器查看一个网页但是却无法 ping通,这是因为一些网站处于安全考虑安装了防火墙另外,也可以在自己计算机上试一试通过下面的方法使系统对ping没有反应: # echo 1 > inet”参数相同。 4.应用实例 netstat 主要用於Linux察看自身的网络状况如开启的端口、在为哪些用户服务,以及服务的状态等此外,它还显示系统路由表、网络接口状态等可以说,它是一个综合性的网络状态的察看工具在默认情况下,netstat只显示已建立连接的端口如果要显示处于监听状态的所有端口,使用-a参数即鈳: #netstat -a Active LISTEN ...... 3.主要参数 -8:允许使用8位字符资料包括输入与输出。 -a:尝试自动登入远端系统 -b:使用别名指定远端主机名称。 -c:不读取用户专属目錄里的.telnetrc文件 -d:启动排错模式。 -e:设置脱离字符 -E:滤除脱离字符。 -f:此参数的效果和指定“-F”参数相同 -F:使用Kerberos V5认证时,加上此参数可紦本地主机的认证数据上传到远端主机 -k:使用Kerberos认证时,加上此参数让远端主机采用指定的领域名而非该主机的域名。 -K:不自动登入远端主机 -l:指定要登入远端主机的用户名称。 -L:允许输出8位字符资料 -n:指定文件记录相关信息。 -r:使用类似rlogin指令的用户界面 -S:服务类型,设置telnet连线所需的IP TOS信息 -x:假设主机有支持数据加密的功能,就使用它 -X:关闭指定的认证形态。 4.应用说明 用户使用telnet命令可以进行远程登录并在远程计算机之间进行通信。用户通过网络在远程计算机上登录就像登录到本地机上执行命令一样。为了通过 telnet登录到远程计算機上必须知道远程机上的合法用户名和口令。虽然有些系统确实为远程用户提供登录功能但出于对安全的考虑,要限制来宾的操作权限因此,这种情况下能使用的功能是很少的 t

我要回帖

更多关于 ipadpro回到主界面 的文章

 

随机推荐