Ubuntu知识完全教程(3)

Linux程序、进程
或许您会这样想,Linux命令的句型确实不难,但是那么多命令,我怎么知道它们都是作什么的呢?而且不同的系统中,可以使用的命令似乎也不太一样,这真让人困惑……
其实Linux的命令,运行的是Linux系统中的程序。只要您已安装了程序,您就可以通过命令来运行它,并且可以使用参数来精细的调整它的运行状态。也可以通过点击启动图标来运行,不过启动图标不能够方便的调整参数,并不是很方便。
举一个例子:
mplayer -shuffle -loop 3 -playlist mymp3.list
可能您运行上面命令,系统会提示您 无法找到命令,那是因为您没有安装mplayer这个程序。mplayer是我见过的支持格式最多的播放器,几乎任何已知格式的多媒体文件,都可以使用mplayer 来播放。它包含一个图形界面的前端,您可以在菜单中找到它,鼠标点击运行;也可以通过执行命令来运行它的命令行版本。
如果您的系统中没有mplayer播放器,我们建议您安装一个。关于程序的安装,请参阅 软件安装 。
上面命令中, mplayer 调用了mplayer播放器程序。参数 -shuffle 表示随机播放, -loop 表示循环播放,后面的 3 为循环的次数,如果为 0 ,则一直播放。 -playlist 表示播放列表中的曲目。我们可以把mp3的路径放到 mymp3.list 文件中,让mplayer来播放它们。
进程 为运行中的程序,是程序在内存中的镜像。
好了,现在您已经了解了 Shell 、 命令 、 程序 、 进程 的概念,您基本上也就了解了Linux(Linux系统真是非常简洁,而且容易理解:)。
但只知道这些,您并不能顺畅使用。接下来的章节中,我们来进一步介绍它的细节。
Linux系统简介
路径
路径分为绝对路径和相对路径。
绝对路径的起始点为根目录 / ,例如 /usr/local/bin 就是绝对路径,它指向系统中一个绝对的位置,不受其它因素影响。
相对路径的起始点为当前目录,如果您现在位于 /usr 目录,那么相对路径 local/bin 所指示的位置为 /usr/local/bin
也就是说,相对路径所指示的位置,除了相对路径本身,还受到当前位置的影响。例如Linux系统中常见的目录 /bin 、 /usr/bin 、 /usr/local/bin ,如果只有一个相对路径 bin,那么它指示的位置可能上面三个目录中的任意一个,也可能是其它目录。
如果我告诉您到 bin 目录寻找一个文件,您可能搞不清楚是哪一个 bin 目录。只有当前位置确定,相对路径指示的位置才能够确定。
现在我说, /usr/local 目录下,它的相对路径 bin 中有某个文件,这样就比较明确了。
在相对路径中 . 表示当前目录, .. 表示当前目录的上一级目录。
假设您安装了一个程序,它的主程序没有被放置到上面三个 bin 目录中的任何一个,或者其它系统能够找到的地方,您就得告诉系统,它的可执行文件在哪里。
可以使用绝对路径,例如: /home/user/bin/可执行文件
或者定位到 /home/user/bin 目录,使用相对目录来定位它 ./可执行文件
如果您定位到了它的子目录,比如 /home/user/bin/gui,您可以使用 .. 来表示它的上级目录 ../可执行文件
路径相关命令
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”命令,来了解当前目录下都有哪些文件。
远程路径:
远程路径的表示方法为 协议://用户名:密码@位置/路径:端口
大多数的远程路径可以使用默认端口匿名访问,由此用户名、密码、端口通常不需要填写。例如:
Ubuntu.org.cn/.../index.html
要求身份验证的远程路径,您可以使用下面的方式访问:
ftp://user:passwd@ftp.ubuntu.org.cn:21
软件
Linux中没有 注册表 这个概念。安装软件,理论上讲,只要拷贝所有相关文件,并运行它的主程序就可以了。
按照传统,一个软件通常分别拷贝到同级目录下的 bin、etc、lib、share等文件夹。
bin
可执行文件,程序的可执行文件通常在这个目录下。在环境变量中设定搜索路径,就可以直接执行,而不需要定位其路径。
etc
配置文件,大部分系统程序的配置文件保存于 /etc 目录,便于集中修改。
lib
库文件,集中在一起,方便共享给不同程序。相较不同的软件单独保存库文件,能够节约一些磁盘空间。
share
程序运行所需要的其它资源,例如图标、文本。这部分文件是专有的,不需要共享;而且目录结构相对复杂,混放在一起比较混乱,所以单独存放。
还有一些软件,占用一个单独的目录,所有的资源都在这个目录中。类似于Windows下的绿色软件,不推荐在Linux系统下这样作。
* 执行时,系统找不到可执行文件(搜索所有路径,资源开销过大,是不现实的),需要定位其位置,像这样 /home/user/bin/可执行文件 ,不够方便。
* 许多系统软件需要协作运行,配置文件分别保存,定位它们非常麻烦
* 如果程序使用的库文件,像图形库文件,都单独存放,那么磁盘空间的浪费会非常严重。
有一些大型软件,或者您布署的重要应用,您可以将它们单独安装在一个文件夹下。(通常源码安装支持这种方式,将在 软件安装 部分介绍)
配置方式
Linux下没有类似 注册表 的系统,系统和软件都可以通过纯文本的配置文件进行设置。
事实上,图形界面的配置工具,通常就是以图形界面的方式修改配置文件,适合设置一些比较简单的程序。如果软件有几千个可以配置的选项,全部作成菜单,想象一下……开始发抖吧……
图形界面的配置工具,可以看作特定配置文件专用编辑器。您一样可以使用通用文本编辑器来编辑配置文件,比如 Nano、Gedit、Knote、Vim或者Emacs等等。不考虑阅读、修改配置文本占用的时间,直接修改配置文件甚至更迅速。 [3]
如果只是要修改某一常用选项,而且时常修改,比如主机的IP地址。使用文本编辑器,您要找到相应的配置文件,还要在配置文件中找到相应的选项,会浪费掉您的时间和耐性。
图形配置工具经常会受各种因素制约,比如网络服务器中不提供图形服务,图形界面不够稳定……这时,您可以使用命令行的配置工具来完成这些工作。
例如: 修改主机IP地址,可以使用ifconfig这个程序,执行下面的命令:
ifconfig eth0 192.168.0.1
在以后的章节中,如果我们提示您修改某一文件,例如 /etc/fstab ,您可以使用任何顺手的文本编辑器打开它。
隐藏文件
Linux下,名称中第一个字符为 . 的文件或者文件夹,系统默认情况下将它们隐藏起来,
您可以尝试以下操作:
cd ~     进入您的用户目录
ls       查看当前目录下的文件列表
ls -a    查看所有文件的文件列表(包括隐藏文件)。
现在,您可以看到许多文件名以 . 起始的文件或者文件夹了吧?使用 ls 命令无法显示它们
* 如果您只想查看隐藏文件,而不包括这两个特殊目录,您可以使用 ls 命令的参数 -A (ls -A)
* 每个目录下都包含两个特殊目录 . 和 .. 。您也许猜到了, . 代表当前目录, .. 代表上一级目录。目录是一种特殊类型的文件!
文件类型
Linux系统主要根据文件头信息来判断文件类型,扩展名并非决定因素。
现在使用 ls -l 命令,查看详细信息格式的文件列表,您将会看到如下内容:
total 5
drwxr-x---  4 user  group   4096 Mar 10 00:37 filename
drwxr-xr-x 21 user  group   4096 Mar 10 20:16 文件名
-rw-------  1 user  group    524 Mar 10 00:40 a
-rw-r--r--  1 user  group     24 Jun 11  2000 b
drwx------  2 user  group   4096 Mar  9 11:06 c
共显示了七列信息,从左至右依次为:权限、文件数、归属用户、归属群组、文件大小、创建日期、文件名称
其中要特别留意的是第一列:
drwxr-xr-x
一共有10个位置,可以分为4组:
d rwx r-x r-x
第一组只有一个字符:
* d 文件夹
* - 普通文件
* l 链接
* b 块设备文件
* c 字符设备文件。
剩下的3组分别为归属用户、归属群组、其它用户或群组对于该文件的权限。我们看它的格式
rwx rwx rwx
* r 可读
* w 可写
* x 可执行
它们的顺便不能颠倒,某一位置为空(-),则表示不具有相应的权限。
Tip
Linux下的可执行文件并不是由扩展名(例如 .exe )决定的,而是由其可执行权限位决定。
权限
我们已经知道了,文件的权限分为 r (可读)、 w (可写)、 x (可执行)三种类型,而一个文件可以针对归属用户,归属群组,其它用户用户或群组分别设定权限。
这种权限管理的方式灵活、简单、严密、明晰。尽管如此,在最初的阶段,可能会有一点小小的不适。因为它无所不在,而您习惯了的Windows的权限管理却不是这样(非常混乱,大多数时间形同虚设,偶尔用到却让人伤透脑筋)。
使用 chmod 命令更改文件的权限,使用 chown 来更改文���的归属。例如:
chmod 755 xxx
chmod a+x xxx
chown user:group xxx  用来更改文件的归属用户,也可以同时更改其归属群组
chgrp   group  xxx    用来更改文件的归属群组
上面命令中的 755 和 a+x 是两种类型的表达式
我们将后面章节中详细介绍 权限管理 用户管理
执行命令的权限
有一些命令,普通用户也可以执行,但是只有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”权限)
如果您能够执行“sudo”命令,那么您也就拥有了root权限。在后面的章节中,如果我们提到了“root权限”,那么您可以通过以上两种方式来实现

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/496a73eb4f7586d10b10eeedecb5f3ea.html