2007年5月19日星期六

Ubuntu 简介 2

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权限”,那么您可以通过以上两种方式来实现

没有评论: