Ubuntu教程 -06.08.09

新手涉及到的教学或入门贴,推荐新手必看,版主维护
回复
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

Ubuntu教程 -06.08.09

#1

帖子 kardinal » 2006-06-29 21:52

这部分内容作了一些整理,合并到 《开源世界旅行手册》

这里 有下载链接

-----------------------------
补充更新了一点内容,请下载附件 ubuntu_tutor_0707.html.zip 。并将扩展名改为html



本贴中贴出的内容久未更新,稍微陈旧; 请登录后下载本贴包含的附件

特别提醒: 点击标题可以返回目录!!! 不需要辛苦地翻页。

对Ubuntu不太了解的兄弟,请认真阅读 Linux基础软件安装 部分的内容
系统管理 通读即可,建议作为手册查阅。剩下的内容可根据个人兴趣选读 :lol:

因为本教程在陈述方面,最大限度的向简约、冼练的风格努力;倾向巴尔扎克风格的兄弟,可能会觉得有些简陋
为了弥补这一点,教程的基础部分,被设计为引导式:在知识面上由远及近,层层铺开;在知识点上由易到难,环环相扣……
所以,从 Linux基础 到 软件安装 之前的部分,请按顺序仔细阅读;建议不要尝试跳跃……





-----------------------------------------------------------------------------------------------------------
欢迎以任何形式转载、传播,最好注明出处
请不要用于商业用途!
-----------------------------------------------------------------------------------------------------------
以下内容,因篇幅较长,或未能定稿,故未收录至教程中,感兴趣的兄弟请单独下载


《Xwindow简介》
想不到我还是搞定了:lol:哈哈……不过有些地方不太有把握,欢迎讨论
viewtopic.php?p=107237

《Emacs入门指南》
作为一个编辑器,基本介绍的差不多了。其它部分并不是必要的,而且也不难摸索……当然,有条件的话我会尽力完成
viewtopic.php?p=105293#105293

《重构建文本reStructuredText 简明教程》
viewtopic.php?t=20245

《内核与硬件》
………………从长计议吧……真的是没时间了…………

《应用软件》
………………发现是一种乐趣…………

《办公环境》
………………还没考虑清楚,倒底是Latex好还是Docbook好……不过都很难配置……Latex的资料相当多,质量也很高
……如果您足够懒,您会发现reStructuredText足够好……任何人都可以变得~懒惰,只要他尝试过什么叫轻松:lol:……这个句型够经典……

----------------------------------------------------------------------------------------------
最近要去沙漠,也许不会常来…… :lol:
----------------------------------------------------------------------------------------------

现在使用reStructuredText编写,所以网页中的内容不再更新
已将源文件和教程打包上传 ubuntu.html 为教程 ubuntu.rst 为源文件

sudo apt-get install python-docutils 安装Rst工具
rst2html -r 4 xxx.rst xxx.html 将rst转换为html


另:首页中关于Ubuntu的介绍,用的语言太过于西化了,我改了下,见下一贴,大家觉得咋样?
附件
ubuntu_tutor_0707.html.zip
并没有太大的改动,只是增加了一点心得,作一点补充
!请将扩展名更改为html!
(275.51 KiB) 已下载 10602 次
ubuntu_tutor_0707.rst.zip
源文件
(174.51 KiB) 已下载 4588 次
ubuntutor.tar.gz
(131.17 KiB) 已下载 8418 次
上次由 kardinal 在 2009-04-12 10:07,总共编辑 118 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

进入Linux系统

#2

帖子 kardinal » 2006-06-29 21:53

Ubuntu 简介

代码: 全选

Ubuntu的发音

    Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意义的,您不是第一个为此困惑的人,当然,也不会是最后一个:)

    大多数的美国人读 ubuntu 时,将 u 作为元音发音,类似单词 who 或者 boo ,重音在第二个音节即 u'buntu ,oo-boon-too 。

    如果您喜欢撒哈拉,喜欢它令人窒息的温柔、梦幻般的寂寥还有张扬恣肆的旷远,您大可在第一个 u,后面带些嗡嗡声: oom-boon-too。

    Ubuntu的中文发音大约为: 乌班图

Ubuntu的涵义

    Ubuntu这个单词源自非洲,意谓“班图精神”────谁都不是一座孤岛,自成一体。每个人都包孕于人类,因他人存在而存在,因他人幸福而幸福。

Ubuntu当前版本

    Ubuntu Linux v6.06 LTS (Dapper Drake)

    LTS:Long Term Support

    Dapper Drake:当前版本的开发代号

Ubuntu的特点

    Ubuntu 完全基于 Linux 操作系统, 可以免费得到社区及专业机构的支持。庞大的社区是它成长的沃土,请向这片动人的热忱敞开心扉。

    Ubuntu 社区恪守 Ubuntu 理念:自由!软件应是自由的,应尊重人类的自由意志,它与人类之间不应有任何隔膜。本地语种,功能限制,自主改进的权利……都不应成为使用的障碍或负担。

    自由,让 Ubuntu 与传统的私有软件从根本上不同: 免费不能用来遮羞,您有权修正它,直到满意为止。

    Ubuntu 适合桌面和服务器。当前 Ubuntu 发布版支持 PC (Intel x86), 64-bit PC (AMD64) 和 PowerPC (Apple iBook 和 Powerbook, G4 和 G5) 架构。

    Ubuntu 包涵了超过 16,000 种软件, 核心的桌面系统却只有一张光盘, Ubuntu 覆盖了所有的桌面应用程序, 从文字处理,电子表格到 web 服务器和开发设计环境一应俱全。 详情查看 Ubuntu 桌面 和 Ubuntu 服务器的介绍。

Ubuntu相对其它Linux发行版的主要特点

    基于Debian/Linux,使用 APT 包管理系统。

    相对于Fedora Code: APT 包管理系统优雅地解决了依赖问题,并且可以从容的在线安装升级

    相对于Debian:软件更新积极,而Debian较保守。

    相对于Gentoo:基本无需编译,省力、省时、省心。




上次由 kardinal 在 2006-08-06 19:59,总共编辑 18 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

Linux基础

#3

帖子 kardinal » 2006-06-29 21:58

整理了一点FAQ,建议开一个“一句话问答”专贴:lol:将各种问题的答案和解决方案,用简洁的语言描述


----------------------------------------
LINUX的终端与命令(运行)的区别在哪?
----------------------------------------
基本一样,只是父进程不一样

使用终端的,终端关了,程序就关了(有些程序被设计为以守护进程运行,它们启动后,一直在后台运行)
使用运行对话框的,父进程应该是 gnome-panel之类的进程


----------------------------------------
刻录ubuntu的LiveCD的时候,能否让windows系统搭个便车?
----------------------------------------
理论上是可以的,我见过有一张系统维护LiveCD中,即有WIN,又有Linux……

好像要有专门的工具选择进入的系统,光盘的制作也要求一点技术含量……关键是非常繁琐……

制作这么一张光盘,不但费力,而且没有任何实用价值 Laughing

Windows下的很多软件都可以,Nero ,A120,CloneCD,UltraISO……Linux下好像都是调用 cdrecord 作为后端,用什么都没有太大的区别(Win下的游戏光盘加密非常复杂,如果想复制的话,ISO这种标准格式是不支持的。而Linux下根本没有类似的问题)

不过要直接刻录光盘镜像,而不要把镜像中的文件解包后再刻到光盘上,那样启动信息就丢失了,不能光盘引导启动


----------------------------------------
安装Ubuntu,使用哪一张CD比较好?
----------------------------------------
以现在的情形 ,Hiweed是不错的(因为它使用Xfce4桌面,省资源),不过才Beta1,有点小问题…… Dubuntu也很好的说


----------------------------------------
这个linux是不是真的免费?为什么总是说权限不够,也没提示输入密码。
----------------------------------------
Linux的权限管理是很麻烦。不过Win那样的权限管理,麻烦要大的多……即便一时半会儿体会不到,也不影响大家学习和使用它…… 置顶的 Ubuntu教程 建议看一看,非常多的问题都可以在里面找到答案(有时候可能要动点脑筋:)


----------------------------------------
最小化程序后,任务栏里没有最小化窗口,怎么会这样?
----------------------------------------
Alt+TAB看能否切换回来,如果不能,个人感觉这不太可能……Laughing

如果能:
楼主可能把任务栏删掉了,看到的只是底部面板……
任务栏显示在底部面板上而已,仔细检查一下……


----------------------------------------
SystemCommander提示MBR错误?
----------------------------------------
如果使用其它引导管理器,那么将Grub装在分区中,而不要装在MBR中(其实Grub本身就支持链式装载,多数Win平台的引导管理器只支持这种方式)

也很有可能SystemCommander之流程序的问题,使用这类程序要看人品,还是少用为妙……


----------------------------------------
我在一本书上看到过,UNIX和Linux系统从最底层开始就是一个多人多功的架构,而windows以之为基础的DOS是一个单人多功的架构。
那本书比较老了,2000年出版的。我想知道在windows发展到Vista的今日,这种情况有没有变化?
----------------------------------------
多任务WIN早就实现了,多用户也是……

不过WIN的多用户形同虚设,98不用账户就可以登录,NT随便操作其它用户的文件,还可以对系统作一些重要改动……

仔细想想,木马安到Win上的时候,什么时候需要用户给它授权了?
要是在Linux中,就得这样:
1、我们打算在您的系统中安装木马……请输入管理员密码,否则木马不能安装到 /usr/local/bin 目录下,其它用户将无法激活它……
2、如果木马不能安装到系统目录,则木马只能拥有您的权限,而不能控制系统权限,骇客们将无法在您的电脑上进行很多操作……
3、请赋予木马可执行权限,并运行它,否则,您无论把木马放到哪里,都不会起作用……

Unix的多用户是在系统底层实现的,而Win的多用户是在文件系统,甚至是应用程序的层面实现的
例如:NTFS可以使用加密,但是是在文件系统级别进行的,对文件系统进行了控制,如此一来,文件系统对于其它系统,甚至是其它WIN都是不透明的,这显然是一种罪恶…… WIN在VISTA里的硬盘加密,忘了叫什么,把这种罪恶发展到了一个新的至高点
在应用程序层面有加密和访问控制两种方式:Winrar可以加密,它只是对于单个文件加密,并不影响文件系统的透明性,而且rar是专有格式,这样作无可厚非……缺点就是速度和效率方面不能让人满意
还有一种就是在应用程序的层面作一些访问控制,比如资源管理器可以隐藏文件,也可以对一些文件夹设密码……但是只对资源管理器有用,换一个TotalCommander浏览文件,就一点作用也没有了

Linux是系统底层进行了访问控制,这样不会有文件加密的效率问题;也不会因为对文件系统作出修改,而影响到文件系统的透明性(新增文件系统权限由 UMASK控制);由于在底层实现,不可能有程序能够绕过权访问控制系统,一个没有可执行权限的文件夹,用gnomer的nautilus打不开,在 Shell里用cd命令一样进不去……

VISTA没有用过,个人认为只是界面加强了一点(通过硬件销量拉动IT行业,延续M$生命周期,进一步增加M$的话语权,获得可观的实在的利益──硬件是VISTA的主题)
……连WinFS这种文件系统层的调整都作不好,系统底层的调整……一个八十来岁的老汉,给他换个心脏,楼主想象一下吧……那么应不应该换呢?


----------------------------------------
root权限
----------------------------------------
Ubuntu使用随机密码,也不能直接登录

在终端里 sudo xxxxxxx 执行命令。 提问时输入当前用户的密码就可以了

如果怕麻烦,可以 sudo su 切换到root 帐户



----------------------------------------
ubuntu-6.06有没有中文版?
----------------------------------------
官方的都是多国语言支持的版本,没有中文定制版。
dUbuntu基于ubuntu-6.06,请搜索论坛


----------------------------------------
xubuntu-6.06有没有中文版?
----------------------------------------
Hiweed基于xubuntu
www.hiweed.com

----------------------------------------
tar是linux下的压缩文件,那在安装文件时,得到这种文件的第一步是不是要先解压缩??????用tar能解开ZIP文件么???
----------------------------------------
常规情况下需要解压,有时不需要,例如安装桌面主题……(实质来说,桌面主题的安装程序可以处理压缩包;而源码安装时,gcc编译器不能,因为那样作可能是灾难)

tar 不能解开Zip格式的文件,但是tar可以在解包的时候,调用Gnuzip程序解包(Winzip格式的建议还是用zip解包)



----------------------------------------
LINUX下的文件大小是用K,KB,MB,GB等表示的么?
----------------------------------------
K,KB,MB,GB……这些表达方式是工业标准,在任何系统中都是通用的……
Linux遵从绝大多数正统和正派的标准;而M$就不这样,总是喜欢生些怪胎出来……
上次由 kardinal 在 2006-08-07 0:52,总共编辑 12 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

系统简介

#4

帖子 kardinal » 2006-06-29 21:59

代码: 全选

Linux 系统简介

路径
====
   路径分为绝对路径和相对路径。
   绝对路径的起始点为根目录“/”,例如“/usr/local/bin”就是绝对路径,它指向系统中的一个绝对的位置,不受任何因素影响。
   而相对路径的起始点为当前目录,如果您现在位于“/usr”目录,那么相对路径“local/bin”所指示的位置为“/usr/local/bin”。
   也就是说,相对路径所指示的位置,除了相对路径本身,还要受到当前位置的影响。例如Linux系统中常见的目录“/bin”、“/usr/bin”、 “/usr/local/bin”,如果只有一个相对路径“bin”,那么它指示的位置可能上面三个目录中的任意一个,也可能是其它目录。
   如果我告诉您到“bin”目录寻找一个文件,您不可能知道我要告诉您的是哪一个目录。只有当前位置确定,相对路径指示的位置才能够确定。现在我告诉您,我位于“/usr/local”目录下,它的相对路径“bin”中含有某个文件。您就可以轻松的找到它了。
   
   在相对路径中 “.”表示当前目录,“..”表示当前目录的上一级目录。
   例如您安装一个程序,它的主程序没有被放置到上面三个“bin”目录中的任何一个,或者其它系统能够搜索到的地方,这样您就得告诉系统,它的可执行文件在哪里。
   可以使用绝对路径,例如:/home/user/bin/exe
   或者定位到/home/user/bin 目录,使用相对目录来定位它   ./exe
   如果您定位到了它的子目录,比如/home/user/bin/gui,您可以使用“..”来表示它的上级目录  ../exe


   路径相关命令
      cd (change directory)改变目录。
      pwd (print working directory)显示当前路径。
      ls (list)显示当前目录中的文件列表。
   您可以尝试以下操作:
      cd /etc  进入“/etc”目录,这里使用的是绝对路径
      pwd    显示当前路径,这个命令返回结果“/etc”
      cd init.d 进入“/etc”目录的子目录“init.d”,这里使用的是相对路径
      cd ..     进入上一级目录“/etc”
      cd ../home “/etc”目录的上一级目录为“/”,它的子目录“home”为“/home”
      cd -    回到上一次的目录,我们在“/etc”目录跳转到“/home”目录,所以这次是回到“/etc”目录
      cd ~    “~”代表当前用户的“$HOME”目录,也就是“/home/{用户名}”目录。
      ls     在任何时候,您都可以使用“ls”命令,来了解当前目录下都有哪些文件。


远程路径:
	远程路径的表示方法为“协议://用户名:密码@位置/路径:端口”
	  大多数的远程路径可以使用默认端口匿名访问,由此用户名、密码、端口通常不需要填写。例如:
	  http://www.ubuntu.org.cn/.../index.html
	  
	  要求身份验证的远程路径,您可以使用下面的方式访问
	  ftp://user:passwd@ftp.ubuntu.org.cn:21

软件
====
   Linux中没有“注册表”的概念,因此安装软件,理论上只要拷贝所有相关文件,并运行它的主程序就可以了。
   按照传统,一个软件通常分别拷贝到同级目录下的bin、etc、lib、share等文件夹。
   bin目录下为可执行文件,我们将大部分程序的可执行文件都放在这个目录下,并且在环境变量中设定搜索路径,便不需要定位其路径,可以直接执行命令。
   etc目录下为配置文件,大部分系统程序的配置文件保存于“/etc”目录,便于集中修改。
   lib目录下为库文件,库文件集中在一起,可以共享给不同程序使用。相较不同的软件单独保存库文件,能够节约一些磁盘空间。
   share目录下为程序运行所需要的其它资源,例如图标、文本等,这部分文件通常不能共享使用,而且目录结构相对复杂,混放在一起会比较乱,所以单独存放。

   还有一些软件,占用一个单独的目录,所有的文件都集中在一起,类似于Windows下的绿色软件,不过这种方式并不推荐。
   在执行时,系统找不到可执行文件(系统搜索所有路径,资源开销过大,是不现实的),需要定位其位置,像这样/home/user/bin/exe,使用起来不够方便。
   配置程序,需要定位其目录,如果同时配置多个系统软件(许多系统软件需要协作运行),切换目录会非常繁琐。
   如果每个程序使用的库文件,比如图形库文件,都单独存放,那么磁盘空间的浪费会非常严重。
   
   有一些大型软件,或者您布署的重要应用,您可以将它们单独安装在一个文件夹下。(通常源码安装支持这种方式,将在程序安装部分介绍)


配置方式
========
   Linux下没有类似“注册表”的系统,系统和软件选项都提供文本文件的配置方式。
   事实上,图形界面的配置工具,通常也是以一种直观的方式提供对配置文件的修改。当然图形界面配置工具只适合配置一些不太复杂的程序,如果一个软件,有几千个可以配置的选项,全部作成菜单,您应该能够想象那有多么恐怖。
   对于Linux系统来说,图形界面的配置工具,只是用来编辑某一特定配置文件的文本编辑器。您一样可以使用通用文本编辑器来编辑这些配置文件,比如 Nano、Gedit、Knote、Vim或者Emacs等等。不考虑您配置所占用的时间,直接修改配置文件甚至更迅速。
   如果您只是要修改某一常用选项,而且经常需要修改,比如修改主机的IP地址,使用文本编辑器的话,您要找到相应的配置文件,还要在配置文件中找到相应的选项,会浪费掉您的时间和耐心。而图形配置工具经常会受各种因素制约,比如网络服务器中没有安装桌面环境,GUI界面不太稳定等等。这个时候,您可以使用命令行的配置工具来完成这些工作。
   比如修改主机IP地址,可以使用ifconfig这个程序,执行下面的命令:
      ifconfig eth0 192.168.0.1


   Tips:在以后的章节中,如果我们提示您修改某一文件,例如“/etc/fstab”,您可以使用您喜欢的任何文本编辑器打开它。


隐藏文件
========
   Linux下,名称中第一个字符为“.”的文件或者文件夹,系统默认情况下将它们隐藏起来,
   您可以尝试以下操作:
   cd ~   进入您的用户目录
   ls    查看当前目录下的文件列表
   ls -a   查看所有文件的文件列表(包括隐藏文件)。现在,您可以看到许多文件名以“.”起始的文件或者文件夹了吧?使用“ls”命令无法显示它们

   Tips:每个目录下都包含两个特殊目录“.”和“..”。您也许猜到了,“.”代表当前目录,“..”代表上一级目录。目录是一种特殊类型的文件!
   如果您只想查看隐藏文件,而不包括这两个特殊目录,您可以使用“ls”命令的参数“-A” (ls -A)

文件类型
========
   Linux下,系统主要根据文件头信息来判断文件的类型,扩展名并不是决定因素。
   现在使用“ls -l”命令,查看详细信息格式的文件列表,您将会看到如下内容:
          total 5
          drwxr-x---  4 user  group    4096 Mar 10 00:37 a
          drwxr-xr-x 21 user  group   4096 Mar 10 20:16 b
          -rw-------  1 user  group    524 Mar 10 00:40 c
          -rw-r--r--  1 user  group     24 Jun 11  2000 d
          drwx------  2 user  group   4096 Mar  9 11:06 e
         
   共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称
   
   其中要特别留意的是第一列:
      drwxr-xr-x
   一共有10个位置,可以分为4组:
      d rwx r-x r-x
   第一组为“d”,表示这是一个文件夹;如果为空,也就是“-”,表示这是一个普通文件;为“l”,表示这是一个符号链接;为“b”,表示它是块设备文件;为“c”,表示它是字符设备文件。
   剩下的3组分别为归属用户、归属群组、其它用户或群组对于该文件的权限。我们看它的格式
   rwx   “r”为可读,“w”为可写,“x”为可执行。它们的顺便不能颠倒,某一位置为空(“-”)则表示不具有相应的权限。   


   Tips:Linux下的可执行文件并不是由其扩展名(例如“exe”)决定的,而是由其可执行权限决定的。


权限
====
        我们已经知道了,文件的权限分为“r”(可读)、“w”(可写)、“x”(可执行)三种类型,而一个文件可以针对归属用户,归属群组,其它用户用户或群组分别设定权限。
        这种权限管理的方式非常灵活。由于它本身非常简单,所以稳定可靠,不会产生混乱。不过在最初的阶段,您可能会不适应,因为时常需要与它打交道,而您习惯了的Windows的权限管理却不是这样(非常混乱,大多数时间形同虚设,偶尔用到却让人伤透脑筋)。
   
   您可以使用“chmod”命令来更改文件的权限,使用“chown”来更改文件的归属。
   例如:
      chmod 755 xxx
      chmod a+x xxx
      上面命令中的“755”和“a+x”是两种类型的表达式
      chown user:group xxx  用来改变文件的归属用户,也可以改变其归属群组
      chgrp   group  xxx  用来改变文件的归属群组
        我们将后面章节中详细介绍 权限与用户管理


   执行命令的权限
      有一些命令,普通用户也可以执行,但是只有root用户才能执行成功,这是为什么呢?
      例如在系统中增加一个新用户“useradd”
      ls -l /usr/sbin/useradd  可以看到:
      -rwxr-xr-x 1 root root 56156 2006-04-03 21:37 /usr/sbin/useradd
      明明所有的用户都可以执行嘛?
      这是因为,“useradd”命令是修改“/etc/passwd”文件的一个工具,来看看这个文件:
      ls -l /etc/passwd
      -rw-r--r-- 1 root root 1835 2006-06-24 17:58 /etc/passwd
      原来只有root用户才能写入修改结果,非root用户执行“useradd”命令当然不会有结果。

   执行命令的身份
      默认情况下,您的命令提示符末位为“$”,这表示您将以普通用户的身份执行命令。
      您可以使用“su”(switch user)这个命令来切换其它用户。
      例如“su root”,切换到root用户,如果“su”命令后面没有切换目标,那么这个命令默认切换到root用户。
      现在您执行“su”这个命令,系统会提示您输入密码,请输入管理员的密码。这个时候,您会发现命令提示符末位变成了“#”,您将以root用户的身份执行命令。

      Ubuntu系统默认会随机设定系统的root密码,这样会更安全一些,这个时候您可以执行“sudo”命令,输入当前用户密码后,暂时以root用户的身份执行命令。(前提是sudoer列表中要包含您的ID。您在安装Ubuntu系统时创建的用户,默认具有“sudo”权限) 

Tips:如果您能够执行“sudo”命令,那么您也就拥有了root权限。在后面的章节中,如果我们提到了“root权限”,那么您可以通过以上两种方式来实现

上次由 kardinal 在 2006-07-05 4:23,总共编辑 18 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

FAQ

#5

帖子 kardinal » 2006-06-29 22:05

享受命令行

代码: 全选

Shell、Console、Terminal
========================
	在前面的章节中,我们曾提到,电视机的遥控器,也是一种人机交互的界面,算是一种Shell。
	但是这个概念并不准确,遥控器只是向Shell发送指令的工具,Shell接收到遥控器发出指令后,将指令转换为系统命令,由系统来执行。
	例如我们按的遥控器上的“数字键1”,遥控器将“切换为1频道”的指令发送到Shell,Shell将指令转换为系统可以识别的“频道1”,系统执行它,您就可以观看1频道的电视节目了。

	通常每台电视机只有一种Shell,比如有的电视机系统具有“画中画”的功能,那么Shell中便有相应的功能定义,您可以通过遥控器上的“画中画”功能键来开启它。假设您的电视机没有此功能,Shell中也就没有相应的功能定义。拥有一个带“画中画”功能控制键的遥控器,即便信号兼容,您还是不能够使用这一功能:)
	不用遥控器也可以控制电视机,假设您的遥控器丢了,您还可以走到电视机前,使用机身上的控制面板来控制它(相当于使用Linux的控制台)。但是您一定不喜欢这种方式,除非您想锻炼身体:)
	在Linux系统中,由于图形界面和控制台的分辨率通常不一致,所以切换时要有一个延时。对于我们中文用户来讲,控制台下中文的显示也比较麻烦。而且控制台显示内容通常不如终端显示的全面。
	所以我们推荐您使用终端来执行命令,它使用起来感觉很像遥控器:)

	
rxvt-unicode
============
	通常情况下,您买一台电视机,只能获得一个遥控器。虽然它为您的电视机量身定作,能够发挥电视机的所有能力,但是您却不一定喜欢它。说不定这个遥控器体形太大,持握不方便;或者它体形太小,容易失踪;又或者它的按键要么太硬,要么太软;它的键盘要么太大,要么太小……
	您一般也可以容忍,毕竟遥控器使用频率并不算高:)
	如果您的终端有些地方不讨您喜欢,比如说响应太慢,或者不能正常显示中文……那就难以忍受了,您应该换一个其它的试试。

	在前面的章节,我们介绍您使用的终端为Gnome-Termianl,它是系统默认使用的终端,显示中文不错,不过响应比较慢,您可能已经处于水深火热之中了。。。
	我们推荐您使用urxvt(mlterm也是不错的选择)
		
	您可以使用“sudo apt-get install rxvt-unicode”命令来安装它。
	urxvt 启动它 (urxvt不支持控制台,您得在图形界面下启动它。终端、Alt+F2,建议您在启动栏里新建一个启动图标) 
	
	rxvt-unicode还支持“服务器/客户端”的运行模式:
		urxvtd 启动一个守护进程daemon(支持控制台)
		urxvtc 启动客户端client。多个客户端可以同时连接到一个urxvtd,以达到节省系统资源的目的。

		或许您对rxvt的默认设置不满意,您可以修改用户配置文件 “~/.Xresources”来设定它。修改全局配置文件“/etc/X11/Xresources/Xresources”,则对所有用户生效,只有root才可以修改此文件。
		这里有一些简单的选项:(以“!”起始的行是注释,您可以直接拷贝此文件的内容)
		!!=============================================================================
		!! RXVT-unicode setting
		!!=============================================================================
		!设置字体分辨率
		Xft.dpi:96
		!窗口大小
		Rxvt.geometry: 80x40+80+80 
		!颜色
		Rxvt.background:#333333
		Rxvt.foreground:antiquewhite
		Rxvt.inheritPixmap:False
		Rxvt.colorBD:yellow
		Rxvt.colorUL:antiquewhite
		!滚动条
		Rxvt.scrollBar:True
		Rxvt.scrollBar_left:True
		Rxvt.scrollBar_floating:False
		Rxvt.scrollstyle:next
		Rxvt.scrollColor:#999999
		!屏幕缓冲
		Rxvt.saveLines:30000
		Rxvt.color12:DodgerBlue
		Rxvt.font:7x14,xft:AR PL New Sung
		!输入法一般设置为xim
		!inputMethod:xim;Scim除外                 
		!输入法样式可选:Root(置底) OverTheSpot(跟随) OffTheSpot OnTheSpot,后两种不是所有的都支持
		Rxvt.preeditType:Root

		
Tips:右键点击启动栏,“添加自启动器”,“自定义程序”,便可以在添加自己的启动图标。


在线帮助系统
------------
	您可以使用命令“man”或者“info”来阅读Linux命令的在线文档。命令的格式非常简单:
		man xxx
	大部分命令手册为英文版,如果您的英文不太好,或许有些困难。在后面的“系统管理”章节中,我们会尽力向您介绍命令的使用方法。

Tips:在使用“man”浏览器的时候,一些快捷键您可能会用到:
	Ctrl+f(orward)	向下翻一页	Ctrl+d(own)	向下翻半页
	Ctrl+b(ackward)	向上翻一页	Ctrl+u(p)	向上翻半页
	/	查找		q(uit)	退出

	以上为VI风格的键绑定。您也可以使用Emacs风格的键绑定,我们马上为您介绍


bash
====
	好了,现在我们换了一个遥控器,感觉顺手多了。现在来操练一下,下载一首mp3:
	我们使用《wget》这个程序,它非常可靠,完全值得您信赖。
	首先找到一个可以下载的地址,复制链接,在终端窗口内点击鼠标中键,把它粘贴进去。
	现在终端中大概是这种情形:
		http://www.download.net/xxx.mp3

	按下“Ctrl+a”组合键,我们发现光标移动到了行首。输入“wget”和空格
		wget http://www.download.net/xxx.mp3

	回车后,终端中出现一些信息,不一会儿工夫,mp3便下载完成。

	使用“Ctrl+a”组合键,我们就不需要使用方向键来移动光标,方向键每次只能移动一个字符,真是非常麻烦。
	您还可以使用“Ctrl+f”向前移动光标,“Ctrl+b”向后移动光标,“Ctrl+e”将光标移动到行末………………

Tips:Linux的图形界面中,鼠标中键通常执行“粘贴”的操作,如果您的鼠标没有中键,您可以左右键同时按下。

中止正在运行的程序
------------------
	如果一个命令的待续时间很长,以致于您不能够在当前Shell中继续其它操作,您可以使用“Ctrl+c”来强行中止它。

Ctrl+s
------
	出于意外,有时您可能会按下“Ctrl+s”这个组合键。这时Shell会被冻结,请尝试使用“Ctrl+q”组合键,看能否恢复正常。 

键绑定
------
	等等,有必要记这么多快捷键么?都这么复杂!
	我们建议您还是记住它们,可以大幅度的提高您操作的效率。因为这是readline控件键绑定,在使用readline控件的任何程序中,您都可以使用它们。例如bash、lftp、gdb等程序;同时,Linux下最著名的Emacs编辑器,也是这种风格的键绑定(其实是readline使用了Emacs风格的键绑定才对),甚至FireFox中,也可以使用类似风格的快捷键!(Linux下主要有两种风格的键绑定,一种是VI风格,另一种是Emacs风格,我们会在后面的章节中向您介绍)

	现在我把ReadLine的键绑定为您列举出来,您可以自行尝试。(运行“man readline”命令,来查看ReadLine手册)
		我们先来了解一些约定:
		\C-a 表示 Ctrl+a
		\M-a 表示 Meta+a  Meta键在PC中通常为ALT键
		A   表示 Shift+a
		(括号中的\A代表Alt,\S代表Shift)
	移动命令:
	\C-a	移动到行首	Aheah
	\C-e	移动到行末	End
	\C-f	向前移动一个字符	Forward
	\C-b	向后移动一个字符	Backward
	\M-f	向前移动一个单词
	\M-b	向后移动一个单词
	\C-l	清空屏幕		cLear
	这两个命令您也可以理解为移动命令
	\C-p	上翻,前一条命令	Previous
	\C-n	下翻,后一条命令	Next
	编辑命令:
	\C-d	删除光标后的一个字符	\M-d	删除光标后的一个单词	Delete
	\BackSpace 删除光标前的一个字符  \M-BackSpace 删除光标前的一个单词
	\C-k	删除光标至行末的部分	 Kill
	\C-u	删除光标至行首的部分	 Unix-line-discard
	\C-w	删除光标前的一个单词	 Word
	\C-y	粘贴(最后删除的对象)	 Yank
	\C--	撤消	
	搜索历史纪录:
	\C-r	连续使用“C-r”可以查找下一个
	\M-p
	\M-n
	补全:
	\Tab	使用频率最高的功能!
	\C-o	遍历补全,默认没有这个键绑定,我们稍后设置它。
	\M-?	M-=	列出所有可能选项,相当于按两次Tab键(M-? 实际按键为\A+\S+/)
	\M-#	注释掉当前命令,用于将当前命令暂存于历史纪录列表(\A+\S+3)
	\M-!	补全命令,通常用来补全子命令,例如“sudo”的子命令(\A+\S+1)
	\M-~	补全用户名(\A+\S+`)
	\M-@	补全主机名(\A+\S+2)
	\M-$	补全变量(\A+\S+4)
	\M-_	补全历史纪录中的纪录(\A+\S+-)
	\M-*	将所有可能选项放到命令行中(\A+\S+8)


非增量查找 (待续)

自定义键绑定
----------
	我们可以通过修改“/etc/inputrc”文件来改变键绑定,不过我们建议您还是使用默认的键绑定,以免带来不必要的烦恼。当然了,Emacs风格的键绑定是非常通用的,您随时都有可能用到。

	在文件中添加该行,可以将ReadLine的键绑定设为VI风格。(Bash、Lftp等使用ReadLine的软件同时生效)
	set editing-mode vi

	找到这一行:
	$if mode=emacs
	在它的下面添加该行
	"^O": menu-complete
	重新登录Shell,您就可以使用\C-o(Ctrl+o)来遍历补全。假如您的文件名为中文,或者出现乱码时,您可以使用\M-*将所有文件名放入命令行,再删除多余的,这真是麻烦极了!所以您可以使用\C-o遍历补全,将所有可能的选项轮流放入命令行。

通配符
------
	使用“?”代表任意单个字符。例如“???lo”,表示“lo”前有三个字符,它可以匹配“Hello”
	使用“*”代表随意几个任意字符。例如“*.iso”,代表所有iso格式的文件。

Tips:您可以将遍历补全和通配符结合使用,以提高效率。
	例如: 
	cd */	则遍历补全只补全文件夹
	chmview	*.chm 则遍历补全只补全chm文件

进程管理
--------
	在命令的末尾加上一个“&”符号,表示在后台执行该命令,例如:
	wget http://www.download.net/xxx/mp3 &
	如果使用“;”将多个命令连结起来,则表示命令按先后顺序执行命令
	如果使用“&&”将多个命令连结起来,则表示只有前面的命令执行成功,后面的命令才能得以执行

	`command`,如果一个命令中包含以“`”(Esc键下方的按键)包围的命令,那么这部分命令将被优先执行,执行结果被代入上一级命令继续执行,例如创建一个以当前时间命名的文件:
	touch `date +%m.%d_%H:%M:%S`
	“touch”命令能够创建一个文件,它的操作对象,为“date +%m%d%H%M%S”命令的输出“06.06_06:06:60”
        这样,我们创建了一个名为“06.06_06:06:60”的文件(六月六日六时六分刚过六十秒-_-!)
	
	当一个进程已经在前台执行,您可以使用“Ctrl+z”将它丢入后台
	不过这个时候进程的状态为
	[1]+  Stopped	xxx
	您可以使用“bg”命令使它在后台继续运行。这时它的状态为
	[1]+ xxx &
	使用“fg”命令,就可以把一个后台的命令取回前台运行
	
	方括号中的数字为命令的任务编号,您可以使用“jobs”命令来查看所有后台运行的命令
	如果后台运行多个命令,您可以在“bg”或者“fg”后跟任务编号,作为操作对象,例如:
	bg 2


管道、重定向
------------
	“>”为重定向符号,它的作用是将命令的输出重定向到一个文件中。比如我们想把命令“ls”的结果保存为“FileList”文件,作一个清单,我们可以使用重定向符号来完成它:
	ls -l > FileList
	“>>”作为与“>”基本相同,不同点在于,“>>”以追加的方式,将命令的输出写入文件的末尾。

	“<”是从文件到命令的重定向,将文件的内容作为命令的输入。

	“|”为管道符号,它的作用是将前一个命令的输出,作为下一个命令的输入。假设一个目录下的文件太多,使用“ls”命令不能够在屏幕中完全显示,这个时候您可以将“ls”命令的输出,通过管道符号,作为浏览器“less”的输入。就可以使用浏览器的功能翻页、查找:
	ls -al | less
	
Tips:“less”浏览器的键绑定几乎与“man”相同,请参阅上面“在线帮助系统”的介绍


脱字符
------
	Shell中的一些功能是通过特殊符号作为控制字符来实现的,上面已经介绍了很多了。这就有一个问题,如果一个文件名中,刚好包含了这些字符,比如“;”,我们就很难对它进行操作。使用“less”浏览这个文件
	less ;xxx
	“less”会很快返回一个错误信息,因为并没有一个文件名作为操作对象。接着,Shell会报告您,系统中没有“xxx”这个命令。
	这是因为Shell将文件名中的“;”解析为顺序执行命令。
	或者您的文件名以空白起始,而在Shell中,无论多少个空格,都将被解析为一个分隔符。您甚至不是使用命令重命名此文件。
	
	这个时候您就要用到脱字符“\”了,它能够将一个具有特殊涵义的字符转换普通字符。上面的两个任务,您可以在文件名中每个特殊字符前加一个“\”,像这样
	less \;xxx
	less \ \xxx
	less \;\ \&\xxx

Tips:也可以使用“"”将文件名包围起来,例如“less "; &xxx"”,在很多情况下,这甚至更方便一些。

	脱字符在Shell中也可以作为换行符,在一个命令的末尾添加一个“\”,然后回车,继续输入命令剩余的部分,可以将一个命令拆分为多行且不影响它的执行(如果执行一个很长的命令,请将它拆分为多行以便于阅读)
	事实上换行符也符合脱字符的定义。回车键有两个涵义,一个是“执行”(Enter),另一个“换行”(折线箭头)。在Shell中它作为控制字符“执行”,使用脱字符后,它便代表排版字符“换行”了。
	

Fish
====
the friendly interactive shell
        正如它的名字,Fish是一款非常友好的Shell,大力推荐!您可以使用命令“sudo apt-get install fish”来安装它。安装完成后,运行命令“fish”切换到fish,“exit”返回bash。
	
	我来简单介绍一下它的优点:
	
	1、自动补全、语法高亮
	bash的自动补全默认只是补全命令、路径,如果想补全变量、参数等,通常需要使用复杂的组合键(见上面bash的介绍),即便您能够记住它们,快速准确的按下这些组合键,也是一种严峻的考验。而FISH的自动补全可以自动识别语法,补全正确的内容。并且具有语法高亮的功能,比如用MPLAYER放MP3:
	mpl<tab>(ayer) -l<tab>(oop) <tab>(0) -sh<tab>(uffle) -pl<tab>(aylist) <tab>(mp3_playlist) 
	一阵猛按<tab>键,一个蛮长的命令就完成了。
	而且补全结果不唯一时给出的提示中含有简短的说明,这样通常也不用看帮助了:)比如:
	mplayer -l<tab>后,自动将参数补全为 -lo 然后给出提示
	-{lo}adidx (Load index from file) -{lo}op (Loop playback) {花括号中为青色文字}
	它的语法高亮功能十分有用,如果你输入的命令是正确的,则用青色显示,正确的参数用白色显示,错误的则一律用红色。

	2、方便的历史纪录搜索
	还是上面的那个命令
	mplayer -loop 0 -shuffle -playlist mp3_playlist
	你可以用上翻配合下翻浏览命令历史,直到找到这个命令,当然那样太慢了。
	你还可以输入以上命令中的某一部分,如“uffle”只要翻一次就可以找到了
	(还可以META+上翻在已输入部分中插入某一历史单词)
	

	3、文件夹历史纪录
	dirh (dir history)就可以显示当前会话中进入的文件夹纪录
	使用“prevd”和“nextd”跳转
	假如你分别进入过1 2 3 4 5 这几个文件夹,"prevd 4 "可以让你在 5 中直接跳到 1

其它的功能,fish基本是兼容bash的。键绑定也非常的相似,少数的键绑定不尽一致,例如:
	\C-h	删除光标前的一个字符(bash为退格键,不方便)
			
	您可以修改“/etc/fish_inputrc”这个文件,增加以下行:
	 "\C-n": history-search-forward
	 "\C-p": history-search-backward
	 现在使用Ctrl+p上翻,使用Ctrl+n下翻。如果您已经在命令行中输入字符,那么Ctrl+p就是在历史纪录向上查找您输入的字符,Ctrl+n为向下查找,非常的方便。


设定您的默认Shell
=================
	如果您能够拥有root权限,您可以直接修改“/etc/passwd”文件。找到您用户ID起始的行
	user:x:1000:112:user,,,:/home/user:/bin/bash
	最后一个“:”后为您登录的默认Shell,“/bin/bash”是您的程序“bash”的主程序路径。您的“fish”主程序的路径通常为“/usr/bin/fish”。
	“/etc/shells”中列出系统中所有可用的Shell(“/bin/false”代表禁用Shell)

	您也可以使用如下命令改变您的默认Shell
	chsh -s /usr/bin/fish
	(需要输入您的密码)

Tips:您可以使用“whereis xxx”命令,来查找“xxx”程序的安装位置,我们会在系统管理中向您详细介绍。


设定命令的搜索路径
==================
	 使用“echo $PATH”,可以显示“$PATH”变量,输出如下:
	 	   /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/bin/X11 /usr/games /usr/X11R6/bin
	 它是一个环境变量,代表您所执行命令的搜索路径。	
	 当您执行一个命令时,Shell会到“$PATH”变量定义的路径去搜索,并运行与您的命令同名的可执行文件。如果您的程序或者脚本等可执行文件并不包含在上面的路径中,您必须使用绝对路径或者相对路径定位您的可执行文件。
	 例如:
	 /usr/local/mplayer -menu xxx.rmvb
	 /etc/init.d/powernowd start

	 cd /usr/local/   &&  ./mplayer -menu xxx.rmvb


	 您可以修改“/etc/environment”文件来设定您的命令搜索路径,找到“PATH”起始的行
	 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin"
	 在双引号中添加您的自定义路径,并以“:”分隔。
	 	


上次由 kardinal 在 2006-07-04 13:05,总共编辑 11 次。
quartz1222
帖子: 4
注册时间: 2006-06-30 2:09

#6

帖子 quartz1222 » 2006-06-30 2:12

我可是新手阿
学习中!
楼主也辛苦了
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#7

帖子 kardinal » 2006-06-30 3:35

谢谢支持 :lol:

Ubuntu系统结构

代码: 全选

Ubuntu系统目录结构
==================
	以下为Ubuntu目录的主要目录结构,您稍微了解它们都包含了哪些文件就可以了,不需要记忆。
    /	根目录
    │ 
    ├boot/		启动文件。所有与系统启动有关的文件都保存在这里
    │    └grub/	Grub引导器相关的文件
    │
    ├dev/ 		设备文件
    ├proc/		内核与进程镜像
    │
    ├mnt/		临时挂载
    ├media/	挂载媒体设备
    │
    ├root/		root用户的$HOME目录
    ├home/			
    │    ├user/	普通用户的$HOME目录
    │    └.../
    │
    ├bin/		系统程序
    ├sbin/		管理员系统程序
    ├lib/		系统程序库文件
    ├etc/		系统程序和大部分应用程序的全局配置文件
    │   ├init.d/	SystemV风格的启动脚本
    │   ├rcX.d/	启动脚本的链接,定义运行级别
    │   ├network/	网络配置文件
    │   ├X11/		图形界面配置文件
    │
    ├usr/		
    │   ├bin/		应用程序
    │   ├sbin/	管理员应用程序
    │   ├lib/		应用程序库文件
    │   ├share/	应用程序资源文件
    │   ├src/		应用程序源代码
    │   ├local/		
    │   │     ├soft/		用户程序		
    │   │     └.../		通常使用单独文件夹
    │   ├X11R6/	图形界面系统
    │
    ├var/			动态数据
    │
    ├temp/			临时文件
    ├lost+found/	磁盘修复文件


启动流程
========
	Linux系统主要通过以下步骤启动:
	1、读取MBR的信息,启动Boot Manager
	    Windows使用NTLDR作为Boot Manager,如果您的系统中安装多个版本的Windows,您就需要在NTLDR中选择您要进入的系统。
	    Linux通常使用功能强大,配置灵活的GRUB作为Boot Manager,我们将在启动管理章节中向您介绍它的使用方式。
	2、加载系统内核,启动init进程
	    init进程是Linux的根进程,所有的系统进程都是它的子进程。
	3、init进程读取“/etc/inittab”文件中的信息,并进入预设的运行级别,按顺序运行该运行级别对应文件夹下的脚本。脚本通常以“start”参数启动,并指向一个系统中的程序。
	    通常情况下,“/etc/rcS.d/”目录下的启动脚本首先被执行,然后是“/etc/rcN.d/”目录。例如您设定的运行级别为3,那么它对应的启动目录为“/etc/rc3.d/”。
	4、根据“/etc/rcS.d/”文件夹中对应的脚本启动Xwindow服务器“xorg”
	    Xwindow为Linux下的图形用户界面系统。
	5、启动登录管理器,等待用户登录
	    Ubuntu系统默认使用GDM作为登录管理器,您在登录管理器界面中输入用户名和密码后,便可以登录系统。(您可以在“/etc/rc3.d/”文件夹中找到一个名为“S13gdm”的链接)
	
更改运行级别
------------
	在“/etc/inittab”文件中找到如下内容:	
	    # The default runlevel.
	    id:2:initdefault:
	    
	这一行中的数字2,为系统的运行级别,默认的运行级别涵义如下:
	    0	关机
	    1	单用户维护模式
	    2~5	多用户模式
	    6	重启

服务管理
========

更改启动服务
------------
	在运行级别对应的文件夹中,您可以看到许多文件名以“S##”和“K##”起始的启动脚本链接。
	例如:
	    /etc/rcS.d/S35mountall.sh	挂载文件系统
	    /etc/rcS.d/S40networking	启用网络支持
	    /etc/rc2.d/S13gdm		启动登录管理器
	    /etc/rc2.d/S20makedev	创建设备文件
	    /etc/rc2.d/S23xinetd	启动超级进程
	init进程将以“start”为参数,按文件名顺序执行所有以“S##”起始的脚本。脚本名称中的数字越小,它将被越早执行。例如在“/etc/rc2.d/”文件夹中,“S13gdm”文件名中的数字小于“S23xinetd”,“S13gdm”将比“S23xinetd”先执行。
    
	如果一个脚本链接,以“K##”起始,表示它将以“stop”参数被执行。如果相应服务没有启动,则不执行该脚本。
	例如:
	    /etc/rc2.d/K20powernowd	针对某种硬件的电源管理支持
  
	如果您想禁止某一服务在启动时自动运行,您可以将相应运行级别中的脚本由“S##xxx”重命名为“K##xxx”。

 
手动控制服务
------------

	您也可以手动运行带有以下参数的启动脚本,来控制系统服务。
	start		启动	
	stop		停止
	restart		重启
	例如:
	/etc/rc2.d/K20powernowd start
	
	有时您并不清楚当前运行级别,该运行级别下未必有相应脚本;而且此类脚本的前三位字符并不固定,不便于记忆。这时,您可以直接使用“/etc/init.d/”文件夹中的启动脚本(“/etc/rcX.d/”中的启动脚本链接到“/etc/init.d/”文件夹下相应脚本),这也是我们向您推荐的方式。
	例如:
	/etc/init.d/powernowd start

Tips:以上命令的位置并没有包含在环境变量的搜索路径中,所以要输入完整路径。


常用系统服务
============
	acpi-support	高级电源管理支持
	acpid	 	acpi守护程序.这两个用于电源管理,非常重要
	alsa		声音子系统
	alsa-utils	
	anacron		cron的子系统,将系统关闭期间的计划任务,在下一次系统运行时执行。
	apmd		acpi的扩展
	atd		类似于cron的任务调度系统。建议关闭
	binfmt-support	核心支持其他二进制的文件格式。建议开启
	bluez-utiles	蓝牙设备支持
	bootlogd	启动日志。开启它
	cron		任务调度系统,建议开启
	cupsys		打印机子系统。
	dbus		消息总线系统(message bus system)。非常重要
	dns-clean	使用拨号连接时,清除dns信息。
	evms		企业卷管理系统(Enterprise Volumn Management system)
	fetchmail	邮件用户代理,用于收取邮件
	gdm		gnome登录和桌面管理器。 
	gdomap		
	gpm		终端中的鼠标支持。
	halt		别动它。
	hdparm		调整硬盘的脚本,配置文件为“/etc/hdparm.conf”。
	hibernate	系统休眠
	hotkey-setup	笔记本功能键支持。支持类型包括: HP, Acer, ASUS, Sony, Dell, 和IBM。
	hotplug and hotplug-net	即插即用支持,比较复杂,建议不要动它。
	hplip	    	HP打印机和图形子系统
	ifrename	网络接口重命名脚本。如果您有十块网卡,您应该开启它
	inetd		在文件“/etc/inetd.conf”中,注释掉所有你不需要的服务。如果该文件不包含任何服务,那关闭它是很安全的。
	klogd		重要。
	linux-restricted-modules-common	受限模块支持。“/lib/linux-restricted-modules/”文件夹中的模块为受限模块。例如某些驱动程序,如果您没有使用受限模块,就不需要开启它。
	lvm		逻辑卷管理系统支持。
	makedev		创建设备文件,非常重要。
	mdamd		磁盘阵列
	module-init-tools	从/etc/modules加载扩展模块,建议开启。
	networking	网络支持。按“/etc/network/interfaces”文件预设激活网络,非常重要。
	ntpdate		时间同步服务,建议关闭。
	pcmcia		pcmcia设备支持。
	powernowd	移动CPU节能支持
	ppp and ppp-dns	拨号连接
	readahead	预加载库文件。
	reboot		别动它。
	resolvconf	自动配置DNS
	rmnologin	清除nologin
	rsync		rsync守护程序
	sendsigs	在重启和关机期间发送信号
	single		激活单用户模式
	ssh		ssh守护程序。建议开启
	stop-bootlogd	在2,3,4,5运行级别中停止bootlogd服务
	sudo		检查sudo状态。重要
	sysklogd	系统日志
	udev & udev-mab 用户空间dev文件系统(userspace dev filesystem)。重要
	umountfs	卸载文件系统
	urandom		随机数生成器
	usplash		开机画面支持
	vbesave		显卡BIOS配置工具。保存显卡的状态
	xorg-common	设置X服务ICE socket。
	adjtimex	调整核心时钟的工具
	dirmngr		证书列表管理工具,和gnupg一起工作。
	hwtools		irqs优化工具
	libpam-devperm	系统崩溃之后,用于修理设备文件许可的守护程序。
	lm-sensors	板载传感器支持
	mdadm-raid	磁盘陈列管理器
	screen-cleanup	清除开机屏幕的脚本
	xinetd		管理其他守护进程的一个inetd超级守护程序

重要配置文件
============
	!无论任何情况下,在修改配置文件之前,请您先备份它!
	建议您使用这个命令:“sudo cp xxx xxx_`date +%y%m%d_%H:%M`”。
	当然这很麻烦,您可以新建一个名为“bak”的文件,内容如下:
		#!/bin/bash
		sudo cp $1  $1_`date +%y%m%d_%H:%M`
	把它放在您能够记住的目录下,比如“/home”,执行命令“sh /home/bak xxx”,就可以将当前文件夹下的文件“xxx”另存为“xxx_yymmdd_HH:MM”的格式了


全局配置文件
------------
	系统初始化
	/etc/inittab		运行级别、控制台数量
	/etc/timezone		时区
	/etc/inetd.conf		超级进程
	文件系统
	/etc/fstab		开机时挂载的文件系统
	/etc/mtab		当前挂载的文件系统
	用户系统
	/etc/passwd		用户信息
	/etc/shadow		用户密码
	/etc/group		群组信息
	/etc/gshadow		群组密码
	/etc/sudoers		Sudoer列表(请使用“visudo”命令修改此文件,而不要直接编辑)
	Shell
	/etc/shell		可用Shell列表
	/etc/inputrc		ReadLine控件设定
	/etc/profile		用户首选项
	/etc/bash.bashrc	bash配置文件
	系统环境
	/etc/environment	环境变量
	/etc/updatedb.conf	文件检索数据库配置信息
	/etc/issue		发行信息
	/etc/issue.net
	/etc/screenrc		屏幕设定
	网络
	/etc/iftab		网卡MAC地址绑定
	/etc/hosts		主机列表
	/etc/hostname		主机名
	/etc/resolv.conf	域名解析服务器地址
	/etc/network/interfaces	网卡配置文件
	
用户配置文件
------------
	“/etc/”目录下的所有文件,只有root用户才有修改权限。应用软件的全局配置文件,普通用户也不能够修改,如果您想配置软件,以适应您的需求,您可以修改它的用户配置文件。

	用户配置文件通常为全局配置文件的同名隐藏文件,放在您的$HOME目录下,例如:
	/etc/inputrc		/home/user/.inputrc
	/etc/vim/vimrc		/home/user/.vim/vimrc

	也有少数例外,通常是系统程序
	/etc/bash.bashrc	/home/user/.bashrc

上次由 kardinal 在 2006-07-04 2:59,总共编辑 24 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#8

帖子 kardinal » 2006-06-30 3:36

FAQ

代码: 全选

----------------------------------------------------
我的D盘到哪里去了?
----------------------------------------------------
   在使用Linux最初的几天里,我感到有些不安。
   Windows下,我可以把系统装在C盘,软件放在D盘,音乐放在E盘……如果系统出现问题,我只要重装系统就可以了,大部分软件都可以直接使用(养成使用绿色软件是一种好习惯:),而我辛辛苦苦收集起来的电影和音乐,我总是把它们放在一个安全的地方,以免引发失眠的严重后果。
   其实Linux下硬盘也具有分区的概念,这一点和Windows没有什么不同(分区的概念是由硬盘的物理特性产生的,而不是操作系统)。不同的是,Linux可以将分区挂载到任意的目录下,而不像Windows,您的分区只能够在“我的电脑”里面:)
   
   那么这么作有什么好处么?
   我们来看看Linux和Windows下路径的表示方法:
   Windows      C:\Documents and Settings\Users\Documents\MyDocument
   Linux      /home/User/MyDocument
   您一定注意到了,在Windows下面,路径中含有盘符“C:”,它通常代表您硬盘上的第一个分区。也就是说,在使用这些文件时,您需要知道它们在硬盘上存储的相关物理细节。而在Linux下,您不需要知道这些,或者说,只要您设定好了分区挂载的目录,您就不需要再去理会什么分区。
   Windows下的路径包含有分区、目录和文件三部分内容;而Linux下的路径则只有目录和文件,不包含任何分区信息,它的硬件抽象度更高!

----------------------------------------------------
Linux下的目录用“/”表示,这不标准吧??
----------------------------------------------------
   完全相反,这才是标准的体现。您只是习惯了Windows的目录符号,但是那并不意味着它是标准的。
   看看Winodws下,各种位置、路径的表示方法:
   http://www.ubuntu.org.cn
   ftp://192.168.0.1
   c:\Windows\
   file:///C:/Windows/
   \127.0.0.1\$C
……………………………………………………………………
操作系统是一种非常精密的高科技产品,怎么可能如此混乱!!!他们是怎么作到的???


----------------------------------------------------
Linux下的病毒少,是因为Linux的使用者少,骇客显然不愿意浪费气力去攻击没有人使用的操作系统。
----------------------------------------------------
   您可能已经知道了,互联网上用作重要用途的服务器,其中很大一部分是Linux系统,另外的一部分是Unix系统:)如果骇客能够搞掉Linux系统的话,那么整个互联网就会陷于瘫痪!效果似乎更好一些。
   当然了,您一定会想:骇客也是人,他们也喜欢上网,兔子还不吃窝边草呢……兔子那么笨,连乌龟都跑不过……骇客们可比兔子要聪明的多了!
   是的,我承认这一点……不过他们也不一定非得把互联网干掉。很多骇客作梦都想入侵美国军方的服务器,美军服务器中的绝密数据,只要1kb,应该就可以买一台顶级的个人电脑了:)
   如果可以的话,骇客为什么不去入侵美军的服务器,而要入侵您的电脑呢?

这是一个很有意思的观点,与之相映成趣,另一种论调也使人侧目:Windows服务器占到了服务器操作系统xx%的份额。
   或许这个现象可以用80:20法则来解释:)
      占服务器总数80%的Windows提供了服务总量的20%!
   请您务必注意,这只是举一个例子,Windows服务器可能永远也不会占到服务器总数的80%!它提供的服务,以我个人的角度,我不认为可以达到20%,而且永远不会有那一天。


----------------------------------------------------
软件安装繁琐
----------------------------------------------------
   或许您已经看过一些关于Linux软件安装的文章,但是您也不要忽略,此类文章的数量,是不能够和同类Windows文章相比的。
   当然,使用源码包安装软件确实有点麻烦,但却不一定比Windows下的某些软件复杂。特别要提到,Ubuntu的包管理系统,为您提供了一种高效快捷的软件管理方式,您只要知道您需要什么软件就可以了,甚至不需要关心它存放在网络上的哪一台服务器中,而且绝大多数的软件都可以使用这种方式来安装。
      详情请参阅 apt
   如果您有如下需求,您也可以尝试以源码的形式安装软件:
      您需要某些软件的技术预览版本
      您想测试您的机器的运算能力
      您找不到一种比安装软件更好的方式来消磨时间
      (试图通过编译源码安装来大幅提高系统性能,其结果很可能会让您失望)

----------------------------------------------------
源码保密性不强,存在安全隐患
----------------------------------------------------
   既然Linux下软件都开放源代码,那么会不会造成一些安全隐患呢?比如说一名骇客会发现其中的漏洞,并利用它?
   事实刚好相反,一个软件,即便它不开放源码,骇客一样可以找到其中的漏洞,雷蒙德的软件巨头就是最好的佐证。就像一把锁,无论如何坚固,它总是能被撬开!它的作用无外乎“聊备一格,以防君子”:)
   而这把锁,防住的恰恰是能够改进它的工程师!工程师知道了它的漏洞,却不能够去改进它;骇客知道了它的漏洞,却可以利用它……这把锁正是封闭源码!
   这岂不是不妙?

----------------------------------------------------
软件功能不够强
----------------------------------------------------
   虽然您很愿意使用Linux系统,但是它的软件并不能使您满意,甚至使您多愁善感的心灵又蒙上了一层阴影,“长太息以掩涕……”
   首先您别忘了,《泰坦尼克》的特效就是在Linux系统下完成的,连业界巨头SGI都在向Linux迁移(尽管SGI的IRIX本来就是一种Unix系统)。如果您不知道SoftImage,那么Maya您总听说过吧?它最初就是多平台的。
   对于电影特效处理时需要的高吞吐量的数据(以TB计)和运算能力,Windows系统恐怕连崩溃的机会都没有-_-#(最新统计资料显示,Top500计算机中,使用Linux的占到73.4%,包括最快的前两名。其中Linux系统367部,Unix系统98部,混合操作系统24部,AppleMacOS系统5部,BSD系统4部,Windows系统,2部)
   类似于大气模拟、基因解码等等真正的科学运算……Windows……前几天我还在verycd.com上看到一套欧洲某天文台的天文学软件,只有Linux版!

   当然了,Linux下功能强大的软件大多是命令行的,图形界面的程序只能视觉上强大,外强中干!建议您多使用man这个命令来查询各类软件的使用方法,它排版美观,格式工整,语法简明,意韵流畅,实在是学习英语难得的教材。

----------------------------------------------------
界面不友好
----------------------------------------------------
如果您指的是系统的美观程度。Gnome默认效果我认为与Windows处于同一水平线,而KDE的效果就要略好一点,很多高手用FVWM可以作出让人眼花瞭乱的效果来……而Novell的XGL,更是可以用“惊艳”来形容。

如果您指的是操作,这属于“易于上手难于精通”与“难于上手易于精通”两种理念的冲撞。
当然了,我指的精通主要针对效率而言。如果您经常玩Blizzard出品的游戏,您对于“易于上手难于精通”这种理念或许相当了解,甚至非常欣赏。
不过这一理念只适用于竞技游戏!竞技游戏要球能够吸引大量的玩家,所以要易于上手。但是竞技游戏是为竞技而生的,所以不可能人人是高手 ────事实上高手只是一小部分人! 
而操作系统是给人们来用的,最好人人都成为高手,所以易于精通是很重要的……当然最好也能够易于上手。但是考虑到效率的问题,这很难解决……


----------------------------------------------------
Linux怎么占用这么多内存?
----------------------------------------------------
Linux会最大程度的利用物理内存,避免使用交换空间;而不是尽量的回收内存,使用页面文件。
又因为Linux系统的内存管理非常优秀,程序退出时可以高效的回收内存,所以更加没有必要在程序运行时就回收内存!
因此,Linux系统表面看来内存开销很大,实际上系统运行是很稳定的──Linux不会时而流畅,时而瘫痪。事实上,在正常情况下,它运行是非常流畅的。 


…………………………


上次由 kardinal 在 2006-07-04 2:59,总共编辑 23 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#9

帖子 kardinal » 2006-06-30 3:36

Grub教程

代码: 全选

引导管理器Grub

硬件基础
========
	一块硬盘,它起始的一部分扇区为主引导扇区,包括MBR(主引导纪录)和DPT(分区表,您可以阅读分区概念章节中相关内容)
	每个分区起始的一部分扇区,为分区引导扇区。
	在分区引导扇区之后的部分,为文件系统的索引,文件系统通过它定位文件在硬盘上的位置。不同的文件系统采用不同的索引,例如FAT文件系统使用文件分配表和目录区。
	
	绝大多数操作系统,对硬盘的读写操作,通过文件系统来完成,因此引导扇区中的内容,我们不能够在文件系统中进行操作,而需要专用软件,比如引导管理器。
	我们对文件进行修改后,操作系统会将文件系统索引中的内容同步。	


系统引导流程
------------
	1、系统启动时,首先引导至MBR,将控制权移交安装在MBR中的引导管理器
		(Windows使用NTLDR,Linux通常用Grub)
	2、引导管理器读取分区表
	3、引导管理器读取分区中的配置文件,并按配置文件中预设的参数运行
		例如,Grub读取“/boot/grub/menu.lst”文件中内容,将可引导系统通过菜单显示
	4、引导管理器根据您的选择,可能会有如下活动
		加载内核,启动Linux系统
		检查活动分区,并引导它(单一Windows系统)
		读取相应分区的引导扇区,将控制权移交该扇区中的引导管理器,

	Ubuntu系统在安装Grub时,会提问您安装在MBR或者分区引导扇区中。如果将Grub安装在分区引导纪录中,您必须确保MBR中的引导管理器能够正确的引导至分区引导扇区。
	如果您在MBR中使用的是Windows的引导管理器NTLDR,完成这件工作会非常困难,因而我们推荐您使用Grub。
	
Grub介绍
========
Grub主要有以下功能:

	菜单式选择
	命令行模式
	支持开机画面
	支持大硬盘	

	其它的功能还有很多,就不一一介绍了。


	
	您可以运行命令“grub”启动它。会显示一些版本信息和使用提示,当然还有命令提示符,如下:

	GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

	   [ Minimal BASH-like line editing is supported.   For
	     the   first   word,  TAB  lists  possible  command
	     completions.  Anywhere else TAB lists the possible
	     completions of a device/filename. ]

	grub>

	您可以使用TAB键补全命令和路径,这非常重要,因为Grub中路径表示方式与操作系统是不同的,您可能比较陌生,所以尽量用TAB补全它,既方便,也不容易出错。

	您可以在“grub>”提示符后按TAB键,会将所有可用的命令显示出来。
	呵呵,是不是有点晕,命令可真不少啊!!!

	其实我们会用到的命令只有两个,
	root
	setup

Grub术语
--------
	在分区概念章节里,我们已经介绍了Linux系统中表示分区的方法“/dev/hda5”
		/dev/hdMN	M为a起始的小写字母,表示硬盘序号;N为1起始的数字,表示分区序号
	Grub中使用的表示方法为“hd0,1”
		hdX,Y		X为0起始的数字,表示硬盘序号;Y为0起始的数字,表示分区序号

	您得留意它们之间的区别:
		N从1开始计数,X和Y从0开始计数
		N为1~4,它是一个主分区;N为5或大于5,它是第(N-4)个逻辑分区。Y按分区在硬盘上排列的顺序排列,无论它表示的是主分区还是逻辑分区。
		举例来说:
                         主      主      逻       逻       主
        /dev/hdMN       hda1    hda2    hda5    hda6    hda3
        hdX,Y           hd0,0   hd0,1   hd0,2   hd0,3   hd0,4

	
	现在我们来看“root”和“setup”命令的使用:
		grub>root (hd0,1)
		这个命令将Grub的根分区定位为 “(hd0,1)”
		grub>setup (hd0)
		这个命令表示将Grub安装在“(hd0)”,因为没有指定安装的分区,所以安装位置为MBR


	Grub的根分区为Grub配置文件“/boot/grub/menu.lst”所在分区。假如您单独为“/boot”目录挂载了一个分区,那么Grub的根分区通常为您系统中“/boot”目录所在的分区。
	搞错了根分区,Grub就不能正确读取配置文件,自然不能正确引导。

	引导分区,Windows等系统的引导分区为它的安装分区,Linux系统的引导分区为它的“/boot”目录所在的分区

	系统根目录所在分区,Linux根目录“/”的挂载分区。Linux系统的分区挂载信息保存在文件系统分配表“/etc/fstab”文件中

	Grub首先读取根分区中的“/boot/grub/menu.lst”文件,并转到引导分区,如果是Windows等系统,则将控制权移动分区引导扇区中的启动管理器。如果是Linux系统,则加载内核和设备,并根据“/etc/fstab”文件的内容挂载文件系统。


	看这个例子:(假设Grub安装在MBR中)
		title       Ubuntu
		root        (hd0,0)
		kernel      (hd0,1)/boot/vmlinuz-2.6.15-25-686 root=/dev/sda3 ro splash vga=0x31b
		initrd      (hd0,1)/boot/initrd.img-2.6.15-25-686
		boot
	 Grub的安装位置为“(hd0)”
	 “root (hd0,0)”,这一行表示Grub的根分区为第一块硬盘的第一个分区“(hd0,0)”,它读取该分区中的配置文件“grub/menu.lst”
	 “kernel”和“initrd”行中的“(hd0,1)”,表示当前系统的“/boot”目录挂载到第一块硬盘的第二个分区“(hd0,1)”
	 “kernel”行的“root=/dev/sda3”,表示当前系统的“/”目录挂载到第一块硬盘的第三个分区“(hd0,2)”,内核根据该分区中的“/etc/fstab”文件来挂载文件系统


Grub配置文件
------------
	“/boot/grub/menu.lst”文件,主要由一些下面这样的块构成的
	
		title       Ubuntu
		root        (hd0,2)
		kernel      (hd0,2)/boot/vmlinuz-2.6.15-25-686 root=/dev/sda3 ro splash vga=0x31b
		initrd      (hd0,2)/boot/initrd.img-2.6.15-25-686
		boot


		title       Windows xp
		root        (hd0,0)
		makeactive
		chainloader +1

	 
	 每一块代表一个操作系统,包含下面里几个部分
	 title	xxx	标题,title和分隔符后的内容为Grub菜单中显示的条目
	 root	(hdX,Y)	引导分区,可以留空,默认为“grub/menu.lst”所在分区(根分区),可以使用“grub>root (hdX,Y)”命令设置,或者在您安装系统时自动设置
	 
	 如果您计划引导至分区引导扇区,如Windows或者Unix系统(Unix和Linux系统,您需要选择将引导管理器安装到分区中),那么需要这样配置
	 makeactive	设置活动分区,系统默认设置,可以删除
	 chainloader +1	链式引导,不要动它。
	 如果以这种方式引导系统,上面“root (hdX,Y)”这一行通常需要配置,“(hdX,Y)”为您的系统所在的分区。假如您的Windows在第一块硬盘的第一个分区,则这样写“root (hd0,0)”

	 如果您引导的是Linux系统(没有在分区中安装引导管理器,而是安装到MBR),则需要这样配置
	 kernel      (hd0,2)/boot/vmlinuz-2.6.15-25-686 root=/dev/sda2 ro splash vga=0x31b
	 initrd      (hd0,2)/boot/initrd.img-2.6.15-25-686  设备镜像文件,与上一行保持一致
	 boot		不要动它
	 “kernel”这一行最关键,它控制系统内核的加载。行末以“ro”起始的部分为参数(ro只读,splash显示启动画面,vga设定启动屏幕分辨率)
	 之前的部分可以写为这种形式:
	 kernel	    (hdX,Y)/boot/vmlinuz   root=/dev/sdMN
	 “(hdX,Y)”通常不是必须的,如果您安装了多个Linux系统,或者“/boot”目录与根目录“/”不在一个分区,则应把它写为“/boot”目录所在分区。而后面的“root=/dev/sdMN”为系统根目录“/”所在的分区。
	 “initrd”这一行的“(hdX,Y)”与上一行保持一致。




Grub安装
--------
	上面已经向您介绍了Grub的安装,不过更多的侧重理论。现在我们来实践一下,假设您的系统不能引导,您可以尝试下面的方法:)
	
	1、
	a、找一张Ubuntu的LiveCD (Knoppix也是不错的选择)
	b、也可以使用安装光盘,启动后在“boot”提示符后输入 “linux rescue”,回车进入救援模式。

	2、
	如果您拥有root权限,命令行提示符为“#”,如果是普通用户,则为“$”。
	a、在救援模式下,通常你已经具有了root权限
	b、如果是LiveCD且没有root权限,请在终端中输入 “su”命令切换到root,会提问你root的密码。
	如果不知道root密码,可以使用这个命令“sudo su”,只要你知道自己的密码,并且你在ID在sudoer列表中就可以了。 

	3、
	在终端中输入grub,会进入到Grub的提示符界面
	a、 输入命令 “root (hd " 后按Tab键,屏幕上就会列出所有可用选项。
	比如我的是这样的:
		Possible disks are: hd0 hd1
		这表示我装了两块硬盘,如果你只有一块硬盘的话,那么一定是hd0。

	在“root(hd”后输入0,按Tab,会自动补上一个“,”,现在你输入的内容成为这样:
		root(hd0,
	再按Tab键,会列出所有可用选项,我的是这样的。
		Possible partitions are:
		Partition num: 0, Filesystem type unknown, partition type 0x7
		Partition num: 1, Filesystem type is fat, partition type 0xc
		Partition num: 2, Filesystem type is reiserfs, partition type 0x83
		Partition num: 4, Filesystem type is reiserfs, partition type 0x83
		Partition num: 5, Filesystem type unknown, partition type 0x82
		Partition num: 6, Filesystem type unknown, partition type 0x7
		Partition num: 7, Filesystem type is fat, partition type 0xc
		
	输入你的选择,比如为“1”,Tab一次后,结果是这样的:
		root (hd1,1)
	现在回车

	b、输入命令
		setup (hd0)
	将grub安装在mbr中

	c、“quit”命令退出GRUB 



Grub使用
--------
命令行
	在Grub启动菜单中,您可以选择您要的选项,按下“e”键,进入到命令行模式
	修改您的启动参数,完成后回车
	按“b”键,Grub将以您修改后的参数引导系统。



上次由 kardinal 在 2006-07-04 2:09,总共编辑 7 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#10

帖子 kardinal » 2006-06-30 3:36

安装软件

代码: 全选

DPKG
====

	Linux系统中,软件通常以源代码或者预编译包的形式提供。
	软件源代码需要您亲自编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定您需要的功能或组件,或者针对您的硬件平台作出优化。
	预编译的软件包,通常是由软件的发布者进行编译,您只要将软件拷贝到系统中就可以了。考虑到预编译软件包的适用性,预编译软件包通常不会针对某种硬件平台优化。它所包含的功能和组件也是通用的组合。
	
	Ubuntu系统中,软件通常以“deb”格式的包文件发布,它是一种预编译软件包。deb包中除了包含已编译的软件,通常还包括软件的拷贝路径、对其它软件包的依赖关系纪录、一个比较通用的配置文件以及软件的描述、版本、作者、类别、占用空间等信息。
	
	deb软件包命令遵行如下约定:
	soft_ver-rev_arch.deb
	soft为软件包名称,ver为软件版本号,rev为Ubuntu修订版本号,arch为目标架构名称
	例如:azureus_2.4.0.2-0ubuntu2_all.deb
	
	您需要使用“dpkg”命令来管理deb软件包:
	dpkg -i | --install xxx.deb  安装deb软件包
	dpkg -r | --remove xxx.deb 删除软件包
	dpkg -r -P | --purge xxx.deb  连同配置文件一起删除
	dpkg -I | -info xxx.deb 查看软件包信息
	dpkg -L xxx.deb 查看文件拷贝详情
	dpkg -l 查看系统中已安装软件包信息
	dpkg-reconfigure xxx 重新配置软件包

	有些时候,您使用“dpkg”安装一个软件包,系统会提示您该软件包依赖其它软件包。这时,您先安装其它软件包,直到满足依赖关系为止。或者同时安装多个软件包
	dpkg -i aaa.deb bbb.deb ccc.deb


APT
===
	如果一个软件依赖关系过于复杂,使用“dpkg”来安装它,并不是一个明智的选择,这个时候您就需要用到APT软件包管理系统。APT可以自动的检查依赖关系,通过您预设的方式来获得相关软件包,并自动安装配置它。事实上,在多数情况下,我们推荐您使用APT软件包管理系统。
	APT系统需要一个软件信息数据库和至少一个存放着大量deb包的软件仓库,我们称之为“源”。“源”可以是网络服务器,安装CD或者本地软件仓库。您需要修改“/etc/apt/sources.list”文件,使APT系统能够连接到“源”。
	您可以在以下页面中获得网络安装源的列表,并且根据您的网络环境,选择速度较快的源。
	http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97/DapperDrake

	APT系统主要包括“apt-get”和“apt-cache”等命令。它们通常都是复合命令,包含若干个子命令。
	apt-get install xxx 安装xxx
		-d 仅下载
		-f 强制安装
	apt-get remove xxx 卸载xxx
	apt-get update 更新软件信息数据库
	apt-get upgrade 进行系统升级
	apt-cache search 搜索软件包
				
Tips:建议您经常使用“apt-get update”命令来更新您的软件信息数据库

源码包
======
	对于绝大多数软件,我们建议您使用APT系统来安装它。在少数情况下,例如某软件没有以deb包的格式发布,或者您需要定制适合自己的软件,您可以通过编译源代码的方式安装它。
	
	首先您需要下载软件的源码包,并且将它解包为一些源代码文件。并了便于管理,我们建议您将下载的源码包移动到“/usr/local/src/”目录下,并在这里解包。
	sudo mv xxx.tar.gz /usr/local/src	移动源码包
	cd /usr/local/src  			进入“/usr/local/src/”目录
	sudo tar -xzvf xxx.tar.gz		解包源码
	cd xxx_ver/    				进行解包后的源码目录

	源码目录中通常有一个“configure”脚本,用来配置即将开始的编译过程。您可以执行它
	sudo ./configure [--prefix=/usr/loca/xxx ......]
	它会自动检测软件的编译环境和依赖关系,并且生成“Makefile”文件。
		您可以使用带参数的命令“./configure --help”,或者阅读“INSTALL”文件,查看该脚本允许的参数。例如使用“--prefix=/usr/local/xxx”参数,将软件的安装目录设定为“/usr/local/xxx/”。(如果您一定要将软件安装在一个目录下,我们建议您安装在这里)
	
	现在执行“make”命令,系统会根据“Makefile”文件中的设定,通过“make”工具调用编译器和所需资源文件,将源代码文件编译成目标文件。
	sudo make

	执行“make install”命令,“make”工具会自动将连接目标文件,将最终生成的文件拷贝到“Makefile”文件设定的路径中,并且完成更改文件的属性,删除残留文件等活动。
	sudo make install

	现在,您的编译安装已经完成,为了更方便的使用它,需要给程序的可执行文件作一个符号链接。
	sudo ln -sf /usr/local/xxx/exe /usr/local/bin/exe


Tips:为了顺利的进行编译,您至少需要安装“build-essential”软件包。
	使用命令“sudo apt-get install build-essential”安装它

上次由 kardinal 在 2006-07-16 17:49,总共编辑 16 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#11

帖子 kardinal » 2006-06-30 3:36

代码: 全选

系统管理
========

一些细节
--------
	Linux是大小写敏感的系统,所有的命令、路径、参数、变量……都区分大小写
	您可以使用TAB键补全您的命令,无论任何时候,多按几次TAB总会有所帮助
	Shell的功能键能够协助您更高效的编辑命令,请熟悉其键绑定,尽量使用它
	
	命令由命令名、分隔符、参数、操作对象构成
	
	命令名标识命令的功能,例如cp(copy)、mv(move)、rm(remove)……
	有些命令包含一些子命令,您可以认为它的命令名由两个单词构成,例如“apt”软件包管理系统:
		apt-get install		安装一个软件
		apt-get remove		删除一个软件

	分隔符为空格,多个连续的空格视为一个空格,下面两个命令相同:
		cp a b
		cp     a     b 
	有一些特殊符号也属于分隔符,例如管道(“|”)、重定向(“>”、“>>”、“<”)、后台运行(“&”)、序列执行(“&&”、“;”)。使用这些符号时,您不需要再使用空格作为分隔符,例如:
		ls -al|less
	我们写为以下形式,只是为了您更容易的阅读它:
		ls -al | less
	
	参数可以精细调节命令的行为,以“-”引导,通常为参数名的首字母。许多软件都可以使用“-h”参数来阅读使用说明,例如:
		apt-get -h
	您也可以使用参数的全名,一般以“--”引导,例如:
		apt-get --help
	多数命令中,使用“-”引导多个字符,将会被视为多个参数,例如:
		apt-get -help
		系统会解读为以下命令
		apt-get -h -e -l -p
	少数命令的参数,不需要以“-”引导,或者使用“-”引导参数全名,例如:
		ps aux
		/etc/init.d/gdm start
		mplayer -loop xxx
	
	当您需要对多个对象进行操作时,您可以使用空格分隔符将它们隔开:
		touch 1 2 3 4 5 6 
	使用空格分隔的多个对象,视为一个整体,作为命令的一个操作对象:
		mv 1 2 3 4 5 6 /home/
		这个命令把“1 2 3 4 5 6”作为一个操作对象,移动到另一个操作对象,“/home/”目录

	递归 表示在子层次中重复相同操作。例如递归复制某目录,不但复制当前目录及其下的所有文件;而且对当前目录的子目录,也进行递归复制的操作。


格式约定
--------
	使用“[]”表示可选项,实际输入为方括号中的内容,例如
		ls [-al]
		ls是必须的,参数不需要以方括号包围起来。
	使用“<>”表示必需项,实际输入为尖括号中的内容
	使用“|”表示“或”,以“|”分隔的项目不能同时使用,例如
		tar [-z|j c|x vf] <归档文件> [源文件]
	参数通常紧跟命令名,除非必要,在命令格式中,我们通常省略它们


系统信息
--------
uptime
联机信息-时间,显示如下

        11:27pm    up 9 days,  7:12,      3 user,  load average:   0.07,   0.12, 0.14
       当前系统时间      系统运行时间    当前在线用户数    系统负荷       1分钟前	 5分钟前  15分钟前


w
联机信息-已登录用户,显示如下 

        01:04:10 up  1:34,  2 users,  load average: 0.25, 0.16, 0.11
                uptime 信息

        USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
        user     tty1     192.168.0.1       23:30    1:33   0.14s  0.12s -bash
        用户名    登录方式   来源地址           登录时间   发呆时间   资源占用   当前任务
	
	Tips:w  [用户名称]   : 显示某一用户相关信息


who
联机信息,常用参数
	-r  运行级别
	

whoami
显示当前用户名
	

last
最近用户登录信息
	-<数字> 使用数字作为参数,控制显示条目。例如
	   last -10  显示10条纪录

	
uname
系统信息
	-s 内核名称(默认参数)
	-a 全部
	-p CPU信息
	-n 主机名
	-r 内核发行信息(版本号) 
	-v 内核版本信息


date
显示、设定系统时间
	-u 显示格林尼洛时间(UTC)
	MMDDhhmm[[CC]YY][.ss] 设定时间,需要管理员权限。例如: date 12292359
	     MM 月份  DD 天数  hh 小时  mm 分钟 CC 年份前两位 YY 年份后两位 ss 秒钟
	     秒钟、年份为可选,例如: date 122923592006.59
	+[%X]设定显示格式,以下为date默认输出格式:
		date +%Y年\ %m月\ %d日\ %A\ %H:%M:%S\ %Z
	     格式控制
		%n 换行
		%t 制表符 
	     小时
		%H(00~23) %I(01~12) %k(0~23) %l(1~12) %p(AM|PM)
	     分、秒
		%M分钟(00~59) 
		%S秒(00..61)
		%T(hh:mm:ss) %r(hh:mm:ss [AM|PM])
		%s 从1970年1月1日00:00:00 UTC到目前为止的秒数
		%X(%H:%M:%S)
		%Z时区 
	     星期
		%a(Sun~Sat) %A(Sunday~Saturday) %w : 一周中的第几天 (0..6)
	     年份
		%Y(0000~9999) %y(00~99)
	     月份 
	     	%m(01~12) %b %h(Jan~Dec) %B(January~December)
	     日期
		%d(01~31) %j(001~366)
		%x(本地格式mm/dd/yy) %D(mm/dd/yy) %c
	     一年中的第几周
		%U(00~53)以Sunday为一周的第一天 %W(00~53)以Monday为一周的第一天


cal   
显示日历		


文件管理
--------
	链接
		为当前文件建立在其它路径中的访问方法。例如将系统中其它位置的可执行文件,链接到“/usr/local/bin”目录下,使用命令调用。

ls [路径]
显示当前目录文件列表
	--color 不同属性以不同颜色显示(默认参数)
	-a 全部显示
	-i 显示inode值
	-l 详细信息
	-F 显示文件类型后缀 目录/ 链接@ 可执行文件* 端口文件=  管道文件| >
	-A 显示隐藏文件
	-R 递归显示子目录文件列表
	-S 按文件大小排序 
	-t 按修改时间排序
	-u 按访问时间排序
	-d 只显示目录,不递归显示目录下的文件	
	

cd [目录路径] | [特殊路径]
切换目录
	目录路径可以使用绝对路径或者相对路径
	特殊路径:
	~ $HOME目录(默认值)
	- 上一次目录
	.. 上一级目录
	. 当前目录

	Tips:您可以通过修改“/etc/environment”文件,来定义$CDPATH变量,设定“cd”命令的搜索路径。


pwd 
显示当前路径


file <文件名>
显示文件类型
	-i 显示mime类型
	

du [文件名]
计算文件或目录空间占用
	-h 人性化显示。自动以G、M、K为单位显示占用空间大小
	-l 重复计算硬链接文件大小
	-L 计算符号链接文件大小
	-a 显示当前目录子目录中的文件
	-c 显示文件数
	

less <文件名>
浏览文件,使用VI和Emacs两种风格的键绑定。以下为VI风格键绑定
	Ctrl+f(orward)   向下翻一页	Ctrl+d(own)   向下翻半页
	Ctrl+b(ackward)   向上翻一页	Ctrl+u(p)   向上翻半页
	/   查找      	  		q(uit)   退出 
	

touch <目标文件>
创建一个空文件


cp <源文件> <目标目录|文件>
将源文件复制为目录文件,或者将源文件复制到目标目录。多个源文件使用空格分隔
cp <源目录> <目标目录>
将源目录复制到目标目录中,如果复制多个源目录,需要使用“-R”参数
	-a 相当于-dpr参数 
	-d 保留链接
	-f 强制复制,覆盖目标文件
	-i 覆盖时询问用户
	-p 保留修改时间和访问权限
	-r -R 递归复制(目录=>目录)
	-l 创建链接
	-v 显示过程


rm <目标目录|文件>
	-r -R 递归删除
	-f 强制删除(无需确认,直接删除。慎用!)
	-i 交互式删除(询问用户)


rmdir <目标目录>
	删除目录时,建议您使用“rm -r”命令


mv <源文件> <目标目录|文件>
相当于cp后删除源文件,也可以作为“重命名”使用。
mv <源目录> <目标目录>	
	-r -R 递归


ln <源文件> <链接> 
	-s 符号链接
	-f 强制链接,覆盖目标文件
	-i 覆盖前询问用户


文件操作
--------
nano 
一个简单轻便的文本编辑器,使用Emacs风格的键绑定。


split <源文件> [目标文件名前缀]
将源文件按一定规则分割成若干个目标文件。默认文件名前缀为“x”
	-<行数> 按行数分割文件
	-l <行数> 同上
	-b <字节> 按大小分割文件。可以使用b、k、m作单位,不指定单位的情况下,默认单位为b
	-C <字节> 按大小分割文件,并尽量保持每行的完整

	示例:
	split -C 100k file.split x


cat <文件名>
输出文件内容。用空格分隔多个文件名,可以将多个文件内容连接到一起输出。使用重定向合并为一个文件
	-n 在输出中添加行号
	-b 在输出中添加行号,空行不编号
	-s 将两行或以上的空行,合并为一个空行
	
	示例:
	cat xaa xab xac > file.split


sort [-o <输出文件>] [-t <分隔字符>] [+<起始字段> - <结束字段>] [文件]
对文本内容排序
	-m 合并文件
	-c 检查文件是否已按规则排序
	-b 忽略行首空格字符
	-u 忽略内容重复行
	-f 忽略大小写
	-l 忽略非打印字符
	-M 作为月份比较
	-d 按字典顺序排序,按照字母、数字、空格、制表符排序
	-r 逆序输出


more 
查看文件内容,我们建议您使用“less”


diff <文件名>
比较文件


cksum [文件名]
计算文件的CRC值。不指定文件名则从标准输入设备读入数据,例如:
	echo xxx | cksum

md5sum [文件名]
计算文件的md5值。同上


权限管理
--------
	一个文件主要包含下列属性,“ls -l”
	- rwx rwx rwx  user  group  date   filename
	  111 101 101     
	其中,第一组为归属用户的权限,第二组为归属群组的权限,第三组为其它用户群组的权限。user为文件的归属用户,group为文件的归属群组,date为日期信息,filename为文件名。
	可以使用3位的二进制数字来描述一组权限,某一权限对应的数字为1,则表示具有该种权限,为0,则不具有该种权限。
	对于文件夹,必须拥有它的可执行权限,才能够使用“cd”命令进入该文件夹;拥有可读权限,才能够使用“ls”命令查看该文件夹的文件列表。
	root用户拥有最高权限。

	使用二进制数字来描述一组权限,虽然非常直观,但是3组权限需要用9位数来表示,使用不够方便。因此我们将三组权限使用3位8进制数字来表示。它们的对应关系为:
	r 100 4
	w 010 2
	x 001 1
	将这三位8进制数字相加的结果,就可以表示该组权限的具体内容,例如:
	7=4+2+1=rwx
	5=4+1=rx
	755=4+2+1 4+1 4+1=rwx r-x r-x

	我们还可以使用“a、u、g、o”表示归属关系,使用“=、+、-”表示权限变化,使用“r、w、x”表示权限内容,
	a 所有用户  u 归属用户  g 归属群组  o 其它用户
	= 具有权限  + 增加权限  - 去除权限
	r 可读权限  w 可写权限  x 可执行权限
	例如:
	a+x 给所有用户增加可执行权限
	go-wx 将归属群组和其它用户的可写、可执行权限去掉
	u=rwx 归属用户具有可读、可写、可执行权限


chmod <权限表达式> <文件|目录>
改变文件的权限。权限的表达式可以使用三位8进制数字表示,或者使用<augo>+-=<rxw-s>来表示
	-R 递归
	-v 显示过程
	-c 类似“-v”,仅显示更改部分
	--reference=<参考文件或目录> 以指定文件为参考改变权限
	示例:
	chmod -R a+x path
	chmod -Rv 755 path


chown <归属用户>[:归属群组] <文件|目录>
改变文件的归属用户。可以使用用户名或者UID
	-R 递归
	-v 显示过程
	-c 类似“-v”,仅显示更改部分
	--reference=<参考文件或目录> 以指定文件为参考改变权限
	示例:
	chown user:admin path
	chown -R user.admin path
	chown user path

chgrp <归属群组> <文件|目录>
改变文件的归属群组。可以使用群组名或者GID
	参数同上


SUID、SGID、Sticky bit
	某些情况下,需要以可执行文件归属用户的身份执行该文件,可以为该文件设置SUID。同样,设置SGID能够以该文件归属群组的身份执行它。
	例如:用户自行设定密码。
	出于安全方面的考虑,“/etc/shadow”只能由root用户直接修改。
	-rw------- root root /etc/shadow
	这个时候,可以为程序“/usr/bin/passwd”设置SUID,当普通用户执行“passwd”命令时,便能够以该程序归属用户root的身份修改“/etc/shadow”文件。而“passwd”程序自身带有身份验证机制,不能通过验证时拒绝执行,从而保证了安全。
	ls -l /usr/bin/passwd
	-r-s--x--x root root /usr/bin/passwd
	我们发现,归属用户的可执行权限位使用“s”,表示SUID。同样,归属群组的可执行权限位使用“s”,表示SGID。
	任何用户或群组都拥有“其它用户”的权限,所以不需要以“其它用户”身份执行文件,其它用户的可执行权限位便不会出现“s”。该权限位可能出现的属性为“t”,也就是粘着位Sticky bit。
	ls -ld /tmp
	drwxrwxrwt root root /tmp
	粘着位表示任何用户都可能具有写权限,但只有该归属用户或root用户才能够删除

	SUID、SGID、Sticky bit也可以像权限一样,使用一个八位数表示,如下:
	4	SUID
	2	SGID
	1	Sticky bit
	通过在“chmod”命令中使用四个八位数的表达式,如“4755”,用第一位表示SUID、SGID、或Sticky bit,便能够为文件设置这些特殊权限。
	示例:
	chmod -R 4755 path


lsattr [路径]
查看文件的特殊属性
	-a 全部显示
	-d 只显示目录
	-R 递归

	特殊属性包括:                       
	 a:仅供附加用途 
	 b:不更新最后存取时间 
	 c:压缩后存放 
	 d:排除在倾倒操作之外 
	 i:不得任意更动文件或目录 
	 s:保密性删除文件或目录 
	 S:即时更新文件或目录 
	 u:预防以外删除

chattr <+|-|=><abcdisSu> <路径>
	-R 递归
	-V 显示过程


压缩解压
--------
tar -c|x|u|r|t[z|j][v] -f <归档文件> [未打包文件]
将多个文件打包为一个归档文件,可以在打包的同时进行压缩。支持的格式为tar(归档)、gz(压缩)、bz2(压缩率更高,比较耗时)
	-c 创建
	-x 解包
	-u 更新
	-r 添加
	-t 查看
	-d 比较压缩包内文件和文件
	-A 将tar文件添加到归档文件中

	-z 使用gz压缩格式
	-j 使用bz2压缩格式

	-v 显示过程
	-f <文件名>   归档文件的文件名
	[未打包文件] 创建、更新时必须填写
	
	示例:
	tar -czvf xxx.tar.gz xxx/ xxx1 xxx2 xxx3 多个待打包文件以空格分隔
	tar -czvf xxx.tar.gz /home/user/xxx/  使用绝对路径打包,解包也使用绝对路径
	tar -xzvf xxx.tar.gz 按相对路径解包到当前目录下,或按绝对路径解包
	tar -czvf xxx.tar.gz xxx | split -b 1m 打包后,使用split分割为1m大小的多个文件

	其它参数
	-P 使用绝对路径压缩时,保留根目录“/”
	-W 校验
	-p 还原文件权限
	-w 询问用户
	--totals 统计
	-T <表达式> 处理符合条件的文件
	-X <表达式> 排除符合条件的文件


zip [参数] <压缩包> <源文件>
使用zip格式打包文件
	-r 递归,将指定目录下的所有文件和子目录一并处理
	-S   包含系统和隐藏文件
	-y   直接保存符号连接,而非该连接所指向的文件
	-X   不保存额外的文件属性
	-m   将文件压缩并加入压缩文件后,删除源文件
	-<压缩级别> 1~9,数字越大,压缩率越高
	-F   尝试修复已损坏的压缩文件
	-T   检查备份文件内的每个文件是否正确无误
	-q   不显示指令执行过程

	-g   将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件
	-u   更新压缩包内文件
	-f   更新压缩包内文件。如果符合条件的文件没有包含在压缩包中,则压缩后添加

	-$   保存第一个被压缩文件所在磁盘的卷标
	-j   只保存文件名称及其内容
	-D   压缩文件内不建立目录名称
	-i <表达式>  压缩目录时,只压缩符合条件的文件
	-x <表达式>  排除符合条件的文件
	-n <文件名后缀> 排除指定文件名后缀的文件

	-b <缓存路径>   指定临时文件目录
	-d <表达式> 从压缩文件内删除指定的文件

	-t <日期时间> 把压缩文件的日期设成指定的日期
	-o   以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同

	-A   调整可执行的自动解压缩文件
	-c   替每个被压缩的文件加上注释
	-z   替压缩文件加上注释

	-k   使用MS-DOS兼容格式的文件名称。
	-l   压缩文件时,把LF字符置换成LF+CR字符。
	-ll   压缩文件时,把LF+CR字符置换成LF字符。


unzip [参数] <压缩文件> [压缩包中将被释放的文件]
解压zip压缩包文件
	-P <密码>  zip压缩包的密码
	-d <路径> 指定解压路径
	-n   解压缩时不覆盖原有文件
	-f   覆盖原有文件
	-o   不经询问,直接覆盖原有文件
	-u   覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中
	-l   显示压缩文件内所包含的文件
	-t   检查压缩文件是否正确
	-z   显示压缩包注释
	-Z   unzip -Z等于执行zipinfo指令

	-j   不处理压缩文件中原有的目录路径
	-C   压缩文件中的文件名称区分大小写
	-L   将压缩文件中的全部文件名改为小写
	-s   将文件名中的空格转换下划线
	-X   解压缩时保留文件原来的UID/GID

	-q   执行时不显示任何信息
	-v   执行是时显示详细的信息
	-c   将解压缩的结果显示到屏幕上,并对字符做适当的转换
	-p   与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换
	-a   对文本文件进行必要的字符转换
	-b   不要对文本文件进行字符转换

	-x <表达式> 处理里排除压缩包中的指定文件  
	-M   将输出结果送到more程序处理


7z|7za <子命令> [参数] <压缩包> [文件] 		
       子命令
	a 添加
	d 删除
	e 解压
	x 带路径解压
	l 列表查看
	t 测试
	u 更新
	参数
	-m<压缩方式> 
	 -m0=<压缩算法> 默认使用lzma
	 -mx=<1~9> 压缩级别
	 -mfb=64 number of fast bytes for LZMA = 64 
	 -md=<字典大小>  设置字典大小,例如 -md=32m
	 -ms=<on|off> 是否固实压缩
	-o<输出目录> 设置输出目录
	-p[密码] 使用密码
	-r[数字] 递归,使用数字定义递归子目录的深度
	-sfx[<模块名称>] 使用自解压模块
	-si 从标准输入设备读入数据
	-so 将数据写入标准输出设备
	-y 所有询问均回答Yes
	-w<工作目录>


rar <子命令> [参数] <压缩包> [文件|文件列表|路径] 
	子命令
	x 带路径解压
	e 解压到当前目录
	a 将文件添加到压缩包内
	d 从压缩包中删除文件
	u 更新压缩包内文件
	f 更新压缩包内文件,并添加压缩包内不存在的文件
	m 添加并删除源文件
	r 修复
	l 列表查看压缩包内文件信息 lt 更详细信息 lb 简短信息
	c 添加压缩包注释
	cf <文件名> 将文件内容添加为注释
	cw <文件名> 将注释保存为文件
	t 测试压缩包
	rr 添加恢复纪录
	rv 恢复到文件
	参数
	-p<密码> 设置密码
	-m<0~5> 设置压缩级别,数字越大,压缩级别越高

上次由 kardinal 在 2006-07-13 23:05,总共编辑 11 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#12

帖子 kardinal » 2006-06-30 3:36

代码: 全选

搜索
----
whereis <程序名称>
查找软件的安装路径
	-b 只查找二进制文件
	-m 只查找帮助文件
	-s 只查找源代码
	-u 排除指定类型文件
	-f 只显示文件名
	-B <目录> 在指定目录下查找二进制文件
	-M <目录> 在指定目录下查找帮助文件
	-S <目录> 在指定目录下查找源代码 

locate <文件名称>
在文件索引数据库中搜索文件
	-d <数据库路径> 搜索指定数据库
updatedb
更新文件索引数据库


find [路径] <表达式>
查找文件
	-name <表达式>  根据文件名查找文件
	-iname <表达式> 根据文件名查找文件,忽略大小写
	-path <表达式>  根据路径查找文件
	-ipath <表达式> 根据路径查找文件,忽略大小写
	-amin <分钟>  过去N分钟内访问过的文件
	-atime <天数> 过去N天内访问过的文件
	-cmin <分钟>  过去N分钟内修改过的文件
	-ctime <天数> 过去N天内修改过的文件
	-anewer <参照文件> 比参照文件更晚被读取过的文件
	-cnewer <参照文件> 比参照文件更晚被修改过的文件
	-size <大小>  根据文件大小查找文件,单位b c w k M G
	-type <文件类型> 根据文件类型查找文件。b 块设备 c 字符设备 d 目录 p 管道文件 f 普通文件 l 链接 s 端口文件
	-user <用户名>  按归属用户查找文件
	-uid <uid>   按UID查找文件
	-group <群组名>  按归属群组查找文件
	-gid <gid>  按GID查找文件
	-empty 查找空文件


	

grep <字符串>|"<正则表达式>" [文件名] 
在文件中搜索内容 
	

--------
echo clear halt reboot shutdown alias chroot export


用户管理
--------
su [用户名]
切换到其它用户,默认切换到root用户。提示密码为将切换用户密码
	-f  快速切换,忽略配置文件
	-l  重新登录
	-m ,-p 不改变环境变量
	-c <命令> 切换后执行命令,并退出切换
	


sudo [命令]
以其它用户的身份执行命令,默认以root的身份执行。提示密码为当前用户密码
	-u <用户名|UID> 执行命令的身份
	-l 显示自己的权限

……useradd userdel…… finger whois
passwd 
chsh 
usermod


进程管理
--------
ps 
ps aux | grep 
pstree
pkill  
pgrep kill 
skill nohup xxx
top
fg bg jobs renice at 

nohup <命令>
将任务提交到后台,输出附加到“~/nohup.out”文件。即便用户退出登录,提交的命令仍继续执行。

<命令> &
在后台执行此命令,如果用户退出登录,则命令停止执行

磁盘和内存管理
--------------
mount umount

df

free
sync
fdisk cfdisk mkfs hdparm mkisofs


网络和硬件管理
--------------
ifconfig

ifconfig <网卡界面> up|down

hostname 
 ping telnet ssh netstas
lsmod lspci lsusb  /proc/cpuinfo time
modprobe

上次由 kardinal 在 2006-07-19 4:25,总共编辑 3 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#13

帖子 kardinal » 2006-06-30 3:36

代码: 全选

VIM简介
-------
	我们使用的大多数编辑器,都可以直接在编辑区输入字符,并且能够通过一些快捷键来完成一些控制功能,比如使用方向键移动光标,使用BackSpack或者Delete键删除文字,使用PgUp和PgDn翻页,使用Home和End来定位行首和行末……
	而Vim是一个带模式的编辑器,同样的按键,在不同模式下,具有不同的功能定义。例如h、j、k、l在编辑模式下输入相应的字符,在普通模式下却相当于方向键的作用。
	由于需要切换模式,Vim的使用起来略显繁琐。不过优点也显而易见:您只要把手安安稳稳的放在打字区就可以了,而不需要使用诸如方向键、排版键、小键盘等需要挪开双手的键位,从而提高了您的效率和专注程度。事实上,Vim的前身Vi诞生的时候,键盘上还没有方向键、排版键和小键盘:)

命令
----
vi [文件名]
vim [文件名]
使用Vim编辑文件

vimtutor [语言]
vim教程,相当于使用Vim编辑器以只读模式打开教程文件。您无论对这个文件作了什么,都会在退出后恢复原来的样貌。与只读模式的区别在于,它不会没有眼色的提醒您,现在的状态为只读模式。您可以使用它作一些练习
您可以指定教程文件的语言,如果使用本地语言(ZH_cn)出现乱码,您可以尝试使用英语
vimtutor en

vimdiff [文件1] [文件2] [其它文件]……

配置文件
--------
	Vim的全局配置文件为“/etc/vim/vimrc”,用户配置文件为“~/.vimrc”,“ " ”起始的行为注释行。我们提供的配置项,您直接加入配置文件就可以了
	您可以先对Vim进行一些简单的配置:

	"设定文件编码
	set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936

	"开启语法加亮
	syntax on
	"配色风格
	colorscheme pablo

	"设定行距 GUI界面中生效
	set linespace=4	
	"设定GUI选项
	"set guioptions=gmrLtT  m:菜单 T:工具栏
	set guioptions=gmrLt

	"设定Tab键缩进的空格数
	set tabstop=4
	"设定编辑器将多少空格视为一个缩进
	set shiftwidth=4

	"设定折叠方式
	"set foldmethod=indent

	"以下字符将被视为单词的一部分 (ASCII):
	"set iskeyword+=33-47,58-64,91-96,123-128


模式介绍
--------
	Vim常见的模式有:普通模式、插入模式、命令模式,另外我们也会经常用到可视模式。
	
	Vim启动时进入普通模式;或者在其它模式下,按下Esc键,便可以回到普通模式。
	
	使用“vimtutor en”命令进入教程,现在是普通模式。随便按几下“j、k、l、h”键,您会发现光标的位置发生改变。

	按下“i”键,编辑器底部出现了“-- 插入 --”或者“-- insert --”,您进入了插入模式。随便按几下“j、k、l、h”,您会发现相应的字符出现在编辑区,现在还可以通过方向键来移动光标。
	可能您觉得使用方向键移动光标不是什么问题,但是习惯了Vim后,您会认为方向键太麻烦了,简单不能容忍!好了,现在按下Esc键回到普通模式,我们又可以使用“j、k、h、l”来移动光标了。

	在普通模式下,按下“:”键(也就是Shift+;),在编辑器底部出现了一个“:”,您进入了命令模式。在“:”后输入一个命令“new”,回车后,编辑器被分割为上下两栏。
	为了方便起见,我们在命令前加一个“:”来表示命令模式下输入的命令,像这样
	:vnew
	一个命令能够以一些规则简化,上面的命令也可以写为这种形式
	:vne
	现在您的编辑区一定弄的四分五裂,您可以使用命令“:quit”来关闭当前栏,直接用简写就可以了
	:q
	这个命令是退出编辑器,如果编辑区被分成多栏,则是退出当前栏。
	执行完一个命令(按下回车后),编辑器会自动回到普通模式。如果您想不执行当前命令,直接回到普通模式,您可以按下Esc键。

	按下“v”键,您进入了可视模式,可以使用“j、k、l、h”移动光标,高亮选取文本	。
	事实上,可视模式相当于高亮选取文本后的普通模式。
	可视模式具有子模式,以行为单位进行选取的可视行模式,使用“V”键进入(也就是Shift+v);和以块为单位进行选取的可视块模式,使用“Ctrl+v”键进入。


模式切换
--------
	好了,现在我们总结一下模式间切换的方法

	其它模式==>普通模式
	Esc

	普通模式==>插入模式
	i 在光标前插入		I 在行首插入
	a 在光标后插入		A 在行末插入
	o 在当前行之下新建行	O 在当前行之上新建行
	r 替换当前字符		R 从当前字符开始替换

	普通模式==>命令模式
	:

	普通模式==>可视模式
	v 可视模式
	V 可视块模式
	<Ctrl+v> 可视块模式


移动
----
	在普通模式中,您可以使用以下方式移动光标
	j 向下
	k 向上         k
	l 向右     h      l
	h 向左       j

	您可以使用其它更有效率的方式移动光标
	w 下一个单词词首	W 将特殊符号视为单词的一部分 
	b 上一个单词词首	B 同上
	e 单词末尾		E 同上

	0 行首			^ 行首文字(行首空格之后)
	$ 行末

	H 页面顶部
	M 页面中部
	L 页面底部
	
	
	在其它模式中,您可以使用方向键移动光标,不过我们不推荐您那样作,您可以在配置文件中绑定插入模式下的功能键
	noremap! <M-j> <Down>
	noremap! <M-k> <Up>
	noremap! <M-h> <left> 
	noremap! <M-l> <Right>
	………………
	<作用范围> <键位> <功能>
	其中,map!绑定的键盘映射,作用于所有模式;inoremap!绑定的映射,仅作用于插入模式。

数字参数
--------
	您也可以使用数字参数,来重复执行。例如
	100j  执行100次j键,向下100行

标记
----
	您可以在当前光标处作一个标记,以便快速返回
	m<标记名称>  定义标记。标记名称为一个字符
	`<标记名称>  返回标记

	mx	     将当前光标处定义为标记 x
	`x	     返回标记 x



浏览
----
	<Ctrl+f> 下翻一页	<Ctrl+d> 下翻半页
	<Ctrl+b> 上翻一页	<Ctrl+u> 上翻半页
	gg 文件首行
	G  文件末行 
	<行号>G 按行号转到相应行
	<1~100>% 按百分比转到相应的行数
	zz 将光标所在行调整至页面中间
	<Ctrl+e> 下卷一行
	<Ctrl+y> 上卷一行

Tips:gg定位到文件首行,V进入可视行模式,G定位到文件末行,实现类似“全选”的功能。依次按下 g g V(Shift+v) G(Shift+g) 

编辑
----
	x 剪切当前字符
	dd 剪切当前行
	y 复制可视模式选取字符
	yy 复制当前行
	p 在光标后粘贴		P 在光标前粘贴
	u 撤消
	<trl+r> 重做
	<Ctrl+y> 逐字克隆上一行内容
	<Ctrl+e> 逐字克隆下一行内容


寄存器操作
----------
	Vim可以将不同字段剪切或复制到不同寄存器中,您可以从不同寄存器中取出内容后粘贴
	"<寄存器名称>	按下“"”键和另一个字符键,便可以定义一个寄存器。例如:
	"a  "1
	定义寄存器后直接进行操作
	"ayy	将当前行复制到寄存器 a 中
	"ap	将寄存器 a 中的内容粘贴到光标之后

Tips:通常情况下,寄存器 + (" +(Shift+=))对应X下的剪贴板。您在其它程序中复制的内容,可以使用 "+p 粘贴到Vim中;您在Vim中,可以使用 "+y 将内容复制到剪贴板,再粘贴到其它程序中

      没有指定寄存器时,Vim使用“无名寄存器”存储内容


搜索和替换
----------
	按下“/”键,编辑器底部会出现“/”符号,接着输入字符串,便可以进行搜索
	/ 向下搜索		? 向上搜索
	n 搜索下一个
	N 搜索上一个

	:s/<源字符串>/<目标字符串>	 将源字符串替换为目标字符串
	:s/<源字符串>/<目标字符串>/g 	 替换当前行中所有符合条件的字符串
	:<行号1>,<行号2>s/<源字符串>/<目标字符串>/g  在指定行中进行替换
	:%s/<源字符串>/<目标字符串>/g    全文替换

正则表达式
----------
	在搜索和替换时,可以使用正则表达式进行匹配
	

宏
--
	您可以将一系列的操作录制为一个宏,然后执行它
	q<宏名称> 开始录制宏。宏名称为一个字符
	q 录制中按下“q”键,结束录制

	@<宏名称> 执行宏


	
插入模式下的快捷键
------------------
	<Ctrl+r><寄存器名称> 输入指定寄存器内容
	<Ctrl+k><2个字符>   输入二合字符
	<Ctrl+v><数字>	    通过数字编码输入字符
	<Ctrl+v><键位>	    输入键位的名称   

键绑定、缩写
------------
	前面我们已经向您介绍了键绑定,
	map! <M-j> <Down>
	尖括号及其中的内容,为Vim配置文件的约定,分别描述了按键和功能,表示将功能编写到按键上。如果绑定的只是普通字符,例如:
	map! xxx XXXXX
	表示将“XXXXX”绑定到“xxx”上。当您键入“xxx”时,编辑器会自动替换为“XXXXX”。

	如果您只是想将字符串绑定为缩写,方便输入,我们建议您使用“iabbrev”来绑定。例如:
	iabbrev ubt Ubuntu
	在插入模式下键入“ubt”,编辑器会自动替换为“Ubuntu”。
	您可以将“iabbrev”命令缩写为“iab”,例如:
	iab ubt Ubuntu
	
	以上命令,您可以直接在命令模式下输入,临时启用。也可以写入配置文件,永久启用。


单词补全
--------
	<Ctrl+n> 下一个匹配项
	<Ctrl+p> 上一个匹配项

	                    
	您可以在配置文件中定义补全的方式
	"自动补全方式:(使用逗号分隔)
	set complete=k,.  

	"   .    当前文件
	"   b    已被装缓冲区,但是没有在窗口内的文件
	"   d    在当前的文件中定义和由#include包含进来的文件
	"   i    由#include包含进来的文件
	"   k    由dictionary选项定义的文件
	"   kfile    名为{file}的文件
	"   t    标记(tags)文件
	"   u    没有载入的缓冲区 
	"   w    在其他窗口中的文件

	"设定自动补全字典 :
	set dictionary=path



命令模式
--------
	前面介绍了普通模式和插入模式。我们发现,普通模式主要用来浏览和修改文本内容,而插入模式则用来向文本中添加内容。
	而命令模式则多用于操作文本文件(而不是操作文本文件的内容),例如保存文件;或者用来改变编辑器本身的状态,例如设定多栏窗口、标签或者退出编辑器……
	w(rote) 将改变写入文件
	:w
	q(uit) 退出编辑器
	:q
	
	某些情况下,编辑器会阻止命令的执行。例如您修改了文件,而没有保存,那么您使用“:q”命令退出时,编辑器就不会执行这条命令,而是提醒您保存文件。
	这个时候,您可以在命令末尾追加“!”来强制执行命令
	:<命令>!
	例如“:q!”,即便您没有保存已修改的文件,使用此命令,编辑器也会放弃修改而强行退出

	以“!”引导一个Shell命令,则可以从Vim临时切换到Shell中,执行一个Shell
	:!<命令>
	例如“:!ls”


多栏窗口
--------
	您可以使用以下命令,将当前窗口水平分为两栏
	:new
	新建一栏空白窗口
	:split
	将当前文件分两栏显示
	
	同理,您可以使用下列命令,将当前窗口水平分为两栏
	:vnew
	:vsplit

	先按下<ctrl+w>键,再按下方向键“j、k、l、h”,您可以切换到其它栏;在当前栏中使用“:q”命令,可以退出当前栏,也可以使用其它命令,对当前栏作出修改
	如果您希望当前命令在所有栏中生效,您可以在命令的末尾追加“all”
	:<命令>all
	例如:
	:qall
	如果您希望这条命令强制执行,那么“!”位于命令的最末
	:<命令>all!
	例如:
	:qall! 强行退出所有栏窗口


标签页
------
	Vim在7以后的版本,开始支持标签页的功能
	:tabnew    新建一个标签
	:tabnext   转到下一个标签
	:tabprevious  转到上一个标签
	
	多数情况下,您可以使用鼠标点击标签进行切换。

上次由 kardinal 在 2006-07-18 23:46,总共编辑 6 次。
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#14

帖子 kardinal » 2006-06-30 3:37

占位 8)
kardinal
帖子: 750
注册时间: 2006-03-19 11:39

#15

帖子 kardinal » 2006-06-30 3:37

以下是提纲:

代码: 全选

欢迎来到Ubuntu部落!
   Ubuntu的读音
      Linux的读音,Linux与Ubuntu的关系
   简介
   相对于其它Linux系统,Ubuntu的特点

进入Ubuntu
   安装
      分区概念
      图解安装过程
   登录系统(图)
   基本操作(图)
      图形界面 字符界面切换   使用终端   
      命令提示符 # $   
   退出系统(图)

Linux基础
   Shell概念
   命令语法结构
   运行程序
     
Linux系统介绍
   路径
   软件
   配置方式
   隐藏文件
   文件类型
   权限

享受命令行
   shell  bash  fish
      bash的键绑定 变量   fish简介
   terminal  gnome-terminal kterm   rxvt mlterm
      rxvt基本设置

Ubuntu/Debian系统结构
   目录结构
   启动流程
   系统服务
   配置文件

系统管理
    文件管理
    查找
    权限、用户管理
    压缩解压
    进程、启动管理
    磁盘挂载与硬件管理
    ………………


安装软件
   apt
   dpkg
   源码包

Xorg  Xserver Xclient
   字体、输入法……服务
   Gnome
   FluxBox
   XGL

Grub

内核
模块

应用软件  评测
   多媒体
   P2P
        …………
网络服务

定制LiveCD

正则表达式

VI编辑器
   模式
   移动
   编辑
   查找、替换、匹配
   寄存器、宏、多窗口……

结构化写作
   docbook
   RST

Shell scripts

Emacs


FAQ
   盘符  文件系统分配不合理
   Linux下病毒少是因为使用者少
   版本繁多
   在线升级
   被攻击主机比率Linux占80%以上
   软件安装过于繁琐
   软件功能太弱
   维护费用过高
   磁盘碎片
        …………



附录:
GNU的历史
   Linux的历史
Linux不是Windows
完全用Linxu工作
提问的智慧
黑客道简史
Gnu文化
Gnome项目
……………… 
启动脚本对应的系统服务及其作用

上次由 kardinal 在 2006-07-22 0:03,总共编辑 1 次。
回复