当前位置:松语文学 > 其他类型 >Linux实用培训教程合并版最新章节 > Linux实用培训教程合并版TXT下载
错误举报

第 30 章

  户当然可以任意setUid和setGid。但尚方宝剑不能用来假传圣旨,普通用户只能给属于自己的

  文件配置setUid或setGid。由于setUid或setGid文件会使普通用户提升权限,谨慎的系统管理员通常会留意系统中

  有setUid或setGid文件的变化。减少安全隐患。

  在Linux下,/tmp是一个存放临时文件的目录,要求是对所有用户可写。但每个用户都只能删除自己拥有的

  文件。这种情况下,就可以把目录加一个粘着位。

  [root@yaoyao /]# ls -l |grep tmp

  drwsrwsrwt 9 root root 4096 8月7 10:50 tmp

  注意第是个字符"t",它代表了这个目录被设置了粘着位。

  我们自行建立一个abc的目录,使之具有和/tmp相同的特点

  chmod 777 abc

  chmod +t abc

  上述的个两个命令组合等同于下边的一个命令:

  chmod 1777 abc

  用ls –l 看abc 目录的属xìng如下:

  [root@yaoyao test]# ls -l

  总用量 4

  网站:http://www.fywxw.com 70/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  drwsrwsrwt 2 root root 4096 8月 7 11:32 abc

  和/tmp目录相同的需求往往在ftp服务器的upload 目录中也存在。可以用相同的方式处理。

  网站:http://www.fywxw.com 71/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  四、socket 文件

  发布时间:2007-05-04 23:04:22

  socket文件类似于管道,但它是在网络上面工作的。您到计算机就是靠它来做网络处理的。您可能听说过

  “Winsock”,那是 Windows 的套接口。我们在这里不深入谈有关套接口,因为如果您不写程序,您不会用到

  它,但如果您看到您系统里有个文件类型是s,您知道它是什么就行了。

  比如说mysql 运行的时候通常会产生一个socket文件。

  [root@yaoyao tmp]# ls -l /tmp/mysql.sock

  srwxrwxrwx 1 mysql mysql 08月 7 10:03 mysql.sock

  /tmp目录下还有一些socket文件,多半是运行Xwindows的时候产生的。

  网站:http://www.fywxw.com 72/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  五、疑难杂症--删除不掉的文件

  发布时间:2007-05-04 23:04:43

  “为什么有些文件以讨厌的减号("-")开头做文件名,无论如何都删除不掉,这到底为什么?",您可能听过您

  临桌的新手这样的叫喊过,希望同样的事情不会发生在您的身上,这个非常容易解决,您只要用带路径的方法

  就可以把他们删除了,假定一个文件名为"-abc",您可以用:

  rm ./-abc 或者

  rm /hcom/yaoyao/-abc

  命令将其轻松删除,另外您也可以用相同的方式用vi或者其他工具对他们进行修改。

  另一些文件看上去可能一切正常,但当您尝试删除的时候,居然也会报错,就象下边一样:

  [root@linux236 root]# ls -l 1.txt

  -rw-r--r-- 1 root root 0 Aug 5 23:00 1.txt

  [root@linux236 root]# rm -rf 1.txt

  rm: cannot unlink `1.txt': Operation not permitted

  您是全能root用户,居然系统告诉您cāo作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有

  了答案。

  [root@linux236 root]# lsattr

  ---i---------- ./1.txt

  -------------- ./weiqi.ldif

  -------------- ./qi.schema

  秘密终于暴露了,在lsattr命令下,这个1.txt文件带有一个"i"的属xìng,所以才不可以删除。您现在可以用下

  边的一系列命令:

  [root@linux236 root]# lsattr 1.txt

  ---i---------- 1.txt

  [root@linux236 root]# chattr -i 1.txt

  [root@linux236 root]# rm -rf 1.txt

  [root@linux236 root]#

  成功了,这个属xìng专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的通常系统管理

  员有能力判断这个文件是否可以被删除。 如果您想给一个文件多加点保护,可以使用下边的命令:

  chattr +i filencom

  命令,这样一来,想要删除这个文件就要多一个步骤。同时,这样的文件也是不可以编辑和修改的。只

  有root用户才能使用chattr命令。此命令可以在Linux ext2或ext3系统上使用。

  类似于Dos和Windows文件系统,不能随意删除的文件多半都有其道理,即使您知道如何删除,都应该三思

  而后行。

  网站:http://www.fywxw.com 73/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  总结

  发布时间:2007-05-04 23:05:04

  Linux/Unix系统管理是个复杂的工作,掌握和理解Linux/Unix文件类型是必备的基础之一。学习Linux/Unix

  没有捷径,必需通过大量的实践和努力学习。

  网站:http://www.fywxw.com 74/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  linux编程基础

  编程基础

  发布时间:2007-05-04 23:05:23

  学习编程,主要应该学习三方面的知识,即程序开发环境的使用、编程语言的语法规则以及可供直接使用的标

  准类库/函数库。

  网站:http://www.fywxw.com 75/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  基于文本的C/C++

  发布时间:2007-05-04 23:05:47

  C/C++语言非常灵活,是众多专业程序员最为喜欢的编程语言之一。下面讨论基于文本的C/C++编程问题

  ,主要涉及:如何编写程序,如何编译,如何调试,如何运行。涉及的开发工具有GNU C/C++、GNU GDB。

  网站:http://www.fywxw.com 76/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  vi 最基本cāo作

  发布时间:2007-05-04 23:06:08

  要编程,第一步就是要写程序。用什么写呢?用文本编辑器Kedit和高级文本编辑器KWrite编写当然可以。但这

  里要介绍是基于纯文本环境的编辑工具,那就是大名鼎鼎的vi。在以命令行方式启动Linux,或者通过ssh 远程登

  陆到某Linux 系统时,很可能只有vi这样一个工具可以用来编写程序。

  vi用不同的颜色表示不同的程序元素,增加了程序的可读xìng,看起来也特别漂亮。好,下面结合一个简单的例

  子,来讨论vi的最基本cāo作。值得注意的是,vi支持的cāo作是非常丰富的,这里只介绍最常用的cāo作。执行下面

  的指令,在当前目录下建立一个文件名为calculator.c的程序文件。如果该文件已存在,此命令将打开这个文件

  。

  vi calculator.c

  执行完上面的指令后,就进入了vi编辑界面。下面说说vi最基本的cāo作方法。进入编辑界面后,按i键就进入了

  “chā入”模式,按Esc 键就退出了“chā入”模式。如此可以来回切换。

  不管哪种模式,都可以用光标键(←↑↓→)及Hcom、End、PageUp、PageDn键移动光标。这与图形方式下的cāo

  作习惯是一致的。在“chā入”模式下就可以输入字符了。可以用Delete 和BackSpace键删除字符。在非“chā入”

  模式下可以执行一些带冒号的指令。例如:w存盘,注意是输入一个冒号后面再跟一个字母w。还有一些其他指

  令,列举如下:

  :wq 存盘并退出vi。

  :q 退出vi。如果尚未保存,vi会提示,并拒绝退出。

  :q! 不保存已做的修改,强制退出。

  :g/str1/s//str2/g 寻找str2,并全都替换成str1。注意,s后面是两个斜杠(/)。如果斜杠(/)本身就是str1或str2中的字符

  ,则加前导反斜杠(\)区别。这一点对用vi编辑html文件的cāo作尤为有用。

  要进行复制、粘贴、查找等cāo作,也必须在非“chā入”模式下输入指令完成,这时输入的指令不带冒号。现列

  举如下:

  y5y 包括光标所在行,往下数,复制5 行到内存。若只复制一行,可以不写数字。

  y3w 复制光标后面的3 个英文单词。

  p 小写,把剪贴板内容粘贴到光标之后。

  P 大写,把剪贴板内容粘贴到光标之前。

  d3d 包括光标所在行,往下数,剪切3行到内存。若只剪切一行,可以不写数字。接下若不进行粘贴cāo作,就相

  当于删除cāo作。

  /str1 寻找字符串str1,str1就是要寻找的字符串。如果斜杠(/)本身就是str1中的字符,则加前导反斜杠(\)区别。

  网站:http://www.fywxw.com 77/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  C程序编译和运行

  发布时间:2007-05-04 23:06:29

  假设已经写好了一段C 程序,源代码文件是calculator.c。那么,如何把它编译成可执行文件呢?

  很简单,只需执行如下指令即可。-o表示要指定可执行文件的名字,可执行的文件名是calc。gcc -o calc

  calcutlator.c如果编译成功,就可以执行这个程序了。编译形成的可执行文件有5KB。./calc

  网站:http://www.fywxw.com 78/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  用GNU gdb 调试

  发布时间:2007-05-04 23:06:51

  如果编译时,使用下面的指令(增加了参数-g),就会生成带源代码调试符号的可执行文件。编译形成的可执行

  文件有7KB。之所以增加了2KB,就是因为增加的调试符号。

  gcc -o calc calcutlator.c -g

  进一步地,就可以执行下面的指令启动调试工具进入调试环境对程序进行调试了。

  gdb calc

  在调试环境下,可以输入下列指令来控制调试。

  l 28 第一个字母是小写的L,列出第28行附近的源程序。

  b sum 在sum函数处设断点

  b 25 在第25行处设断点

  r 运行程序

  n 单步执行,不进入函数

  s 单步执行,进入函数

  c 继续连续执行

  p choice 显示变量choice 的值

  q 退出调试环境

  k 杀死程序

  网站:http://www.fywxw.com 79/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  C++程序的编译

  发布时间:2007-05-04 23:07:11

  假设用vi编写好了一个C++程序,源程序文件名为hello.cxx。如何编译?编译,指定生成的可执行文件名为hw。

  g++ -o hw hello.cxx

  带源代码调试符号进行编译。g++ -o hw hello.cxx -g

  网站:http://www.fywxw.com 80/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  Kdevelop-安装和启动

  发布时间:2007-05-04 23:07:31

  在红旗Linux4.1的开发工具盘中,提供了集成开发环境Kdevelop3.0.92。可以下载相应的ISO文件并利用其中

  的安装程序进行安装。安装完成后,从开始菜单中就可以启动Kdevelop:【开始】→【应用程序】→【软件开

  发】→【Kdevelop】利用Kdevelop可以编写C和C++程序,它把编辑、编译、调试和运行集成到一起,给编程工

  作带来很大方便。

  网站:http://www.fywxw.com 81/153 制作于:2007-05-06 Powered by X-Space

  枫叶文学网www.fywxw.com

  枫叶文学网制作:Linux实用培训教程 第二部分作者:红联

  基本步骤

  发布时间:2007-05-04 23:07:54

  一般而言,用Kdevelop编程大体要经历如下几个步骤。编程是比较复杂的,很难一次成功,这些步骤可能要反

  复进行多次。

  第一步,新建工程

  可以通过菜单cāo作启动相应的向导程序,借助它完成工程的初建工作。【Project】→【New Project】在新建工

  程过程中,主要需要指定工程文件保存位置、工程名称、工程类型,并且可以填写编程作者的信息。根据所选

  工程类型(比如,是文本界面的程序还是图形界面的程序,是C 程序还是C++程序),向导程序会自动生成一批

  模板文件。

  第二步,编辑程序文件

  向导程序一般会创建一些程序文件,应该对这些文件进行编辑以满足特定的编程需要。还可以执行菜单cāo作来

  增加新的文件。【File】→【New】上述cāo作后,会出现一个对话框,用于指定文件名和文件类型。根据文件类

  型的不同,会自动设定合适的扩展名。

  注意,“Add to project”复选框应该勾选上以确保新文件被加入到当前的工程中。

  第三步,生成源码结构

  在编辑好程序文件后,要先借助GNU Build System 生成系统生成源码结构。在增加了新文件(或目录)、修改了文

  件(或目录)名、改变文件的保存位置之后,都应该重新生成源码结构。具体而言,生成源码结构包括autoconf

  、automake等cāo作,把每个子目录的Makefile.am变成了

  松语文学免费小说阅读_www.16sy.com