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”命令,来了解当前目录下都有哪些文件。
  远程路径:
    远程路径的表示方法为 **协议://用户名:密码@位置/路径:端口**
    大多数的远程路径可以使用默认端口匿名访问,由此用户名、密码、端口通常不需要填写。例如: ::
        /.../index.html
         
    要求身份验证的远程路径,您可以使用下面的方式访问::
        ftp://user:passwd@:21
软件
====
  Linux中没有 *注册表* 这个概念。安装软件,理论上讲,只要拷贝所有相关文件,并运行它的主程序就可以了。
  按照传统,一个软件通常分别拷贝到同级目录下的 **bin**\ shell界面、\ **etc**\ \ **lib**\ \ **share**\ 等文件夹。
      **bin**
          可执行文件,程序的可执行文件通常在这个目录下。在环境变量中设定搜索路径,就可以直接执行,而不需要定位其路径。
      **etc**
          配置文件,大部分系统程序的配置文件保存于 ``/etc`` 目录,便于集中修改。
      **lib**
          库文件,集中在一起,方便共享给不同程序。相较不同的软件单独保存库文件,能够节约一些磁盘空间。
      **share**
          程序运行所需要的其它资源,例如图标、文本。这部分文件是专有的,不需要共享;而且目录结构相对复杂,混放在一起比较混乱,所以单独存放。
  还有一些软件,占用一个单独的目录,所有的资源都在这个目录中。类似于Windows下的绿软件,不推荐在Linux系统下这样作。
  - 执行时,系统不到可执行文件(搜索所有路径,资源开销过大,是不现实的),需要定位其位置,像这样 ``/home/user/bin/可执行文件`` ,不够方便。
  - 许多系统软件需要协作运行,配置文件分别保存,定位它们非常麻烦
  - 如果程序使用的库文件,像图形库文件,都单独存放,那么磁盘空间的浪费会非常严重。
 
  有一些大型软件,或者您布署的重要应用,您可以将它们单独安装在一个文件夹下。(通常源码安装支持这种方式,将在 软件安装_ 部分介绍)
配置方式
========
  Linux下没有类似 *注册表* 的系统,系统和软件都可以通过纯文本的配置文件进行设置。
  事实上,图形界面的配置工具,通常就是以图形界面的方式修改配置文件,适合设置一些比较简单的程序。如果软件有几千个可以配置的选项,全部作成菜单,想象一下……开始发抖吧……
  图形界面的配置工具,可以看作特定配置文件专用编辑器。您一样可以使用通用文本编辑器来编辑配置文件,比如 NanoGeditKnoteVim或者Emacs等等。不考虑阅读、修改配置文本占用的时间,直接修改配置文件甚至更迅速。 [#]_
  如果只是要修改某一常用选项,而且时常修改,比如主机的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 可执行
    它们的顺便不能颠倒,某一位置为空(\ **-**\ ),则表示不具有相应的权限。 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。