本系列文章由@超人爱因斯坦出品,转载请注明出处。  

        文章链接:

         http://hpw123.net/a/Linux/Linuxjichu/2014/1021/70.html

         作者:超人爱因斯坦    个人站点http://www.hpw123.net

         邮箱: 424346976@qq.com

         CSDN:http://blog.csdn.net/u010283694


这篇文章主要是介绍Linux,让大家认识Linux是什么,着重解说其文件夹树及文件权限;

嘿嘿。開始之前呢,再说些废话,不要嫌烦哦,大家或许都还没实用过Linux系统吧,那么刚装好一个系统后。是不是也得像windows装好后还得装驱动啥的。好吧,假设是第一次玩ubuntu14.04。建议大家先看看这两篇文章。Ubuntu 14.04 LTS使用全攻略之中的一个:系统安装和基本配置  Ubuntu 14.04 LTS使用全攻略之二:经常使用软件安装和系统具体设置 相信大家会有非常大收获的。特然认为Linux so easy,后期会写一些关于Linux各种编程环境搭建的博客,比方C++编程用什么IDE。安卓开发环境怎么搭建,Eclipse怎么安装,OpenCV怎么配置等等


好了,让我们进入主题吧:


一.Linux是什么


   1.百科

      (1)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIXUNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能执行基本的UNIX工具软件、应用程序和网络协议。它支持32位64位硬件。Linux继承了Unix网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

     (2)Linux常见版本号:Debian,Mandrake,Ubuntu,Red Hat Linux,SuSE,Linux Mint,Gentoo,Fedora Core,centos

   2.基本思想

        Linux的基本思想有两点:第一,一切都是文件;第二,每一个软件都有确定的用途。

当中第一条具体来讲就是系统中的全部都归结为一个文件,包含命令硬件软件设备、操作系统进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,非常大程度上也是由于这两者的基本思想十分相近。

    3.特性

    (1)全然免费

    (2)全然兼容POSIX1.0标准

    哈哈,一头雾水了吧,这什么东东啊,点击百度百科:POSIX

    其使得能够在Linux下通过对应的模拟器执行常见的DOSWindows的程序。这为用户从Windows转到Linux奠定了基础。很多用户在考虑使用          Linux时,就想到曾经在Windows下常见的程序能否正常执行,这一点就消除了他们的疑虑,爽吧。

    (3)多用户。多任务

            Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。

多任务则是如今电脑最基本的一个特点,          Linux能够使多个程序同一时候并独立地执行

    (4)良好的界面

           (1) 现今主流的桌面环境有KDEgnomeXfceLXDE等,除此之外还有AmbientEDE,IRIX Interactive Desktop,MezzoSugarCDE       等。

           (2) Linux同一时候具有字符界面和图形界面。在字符界面用户能够通过键盘输入对应的指令来进行操作。它同一时候也提供了类似Windows图形界面         的X-Window系统。用户能够使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,能够说是一个Linux版的Windows。

    (5)支持多种平台

            Linux能够执行在多种硬件平台上,如具有x86、680x0、SPARCAlpha处理器的平台。此外Linux还是一种嵌入式操作系统,能够执行在掌         上电脑机顶盒游戏机上。2001年1月份公布的Linux 2.4版内核已经可以全然支持Intel 64位芯片架构。同一时候Linux也支持多处理器技术。多个处         理器同一时候工作。使系统性能大大提高。


二.用户。用户组


   (1)文件全部者

           Linux有这么多用户。还分什么用户组,有什么用呢?

           嘿嘿,因为Linux是个多用户,多任务的系统,因此可能经常会有多人同一时候使用这台主机来进行工作的情况发生,为了考虑每一个人的隐私权以      及每一个人喜好的工作环境,因此。这个”文件全部者"的角色就显得相当重要了呢。

比如你将你的Email情书转存成文件后,放在你自己的主目录        中,你总不希望被别人看见自己的情书吧?这个时候你就把改文件设置成仅仅有文件全部者才干查看与改动这个文件的内容,那么即使其它人知道有      这个相当“有趣“的东东,只是因为你设置了适当的权限,呵呵。你懂得。

   (2)用户组概念

           那么用户组呢?为何要配置文件还有所属的用户组呢?

           额,事实上用户组最实用功能之中的一个就是当你在团队开发资源的时候。举例技术哪家强?如果主机上有两个竞争关系团体project1、project2,         两个团体组员分别为class1、class2,另一人是老师teacher,当然老师能够看两个团体的资料内容,两个竞争团队肯定是相互保密的啊,怎么         办呢?这时用户组权限就实用了啊,组内能够相互查看。组外不可查看,每一个用户都能够被多个用户组支持。即老师同一时候是两个组的成员,一切都       被攻克了吧

      用户的概念:自己可见,其它人不可见,当然神(root)除外

      用户组的概念:组内成员可见,其它人不可见,增加一个用户组,开启用户组读、写、运行等权限。组内成员就读、写、运行了

   (3)其它人的概念

           这个就不用多说了吧。除了自己,用户组成员。另一个天神(root)

   (4)用户身份与用户组记录的文件

           普通情况下一般用户和神(root)的相关信息都记录在/etc/passwd这个文件里。个人password记录在/etc/shadow这个文件里。用户组信息记         录在/etc/group内,千万别删这三个文件啊。会要命的。

三.Linux文件权限


   (1)Linux文件属性

             上图啦(图来自网络。在windows下写的,就没打开我的ubuntu)






             找一个文件夹打开终端输入ls -al ubuntu直接ll就好,会出现类似上面画面

d rwx r-x r-x
2 root root 4096 2011-12-03 bin
文件权限 连接数 文件全部者 文件所属用户组 文件大小 文件最后改动的时间 文件名称
文件类型 文件全部者权限 文件所属用户组权限 其它人权限
权限rwx-分别为读,写,运行,无权限






   文件类型:

       [d] 文件夹

       [-] 文件

       [l] 连接文件

       [b] 设备文件中面的可供存储的接口设备

       [c] 设备文件中面的串行port设备。如键盘,鼠标(一次性读取设备)

       第二列表示有多少文件名称连接到此节点(i-node)

       每一个文件都会将它的权限与属性记录到文件系统的i-node中,只是我们使用的文件夹树却是势使用文件名称来记录。因此每一个文件名都会连接到一个i-node,这个属性记录的就是有多少不同过的文件链接到同样的一个i-node(这个以后说)。

   (2)文件夹与文件的权限意义(注意不太一样的呢)

        (1)权限对文件的意义

                文件是实际含有数据的地方,包含一般文本文件,数据库内容文件,二进制可运行文件等

                r(read):可读取此文件的实际内容。如读取文本文件的文字内容等。

                w(write):能够编辑。新增或者是改动文件的内容(但不含删除该文件)

                x(execute):该文件具有能够被系统运行的权限

                注:在Windows以下一个文件是否具有运行的能力是通过“扩展名”来推断的,比如exe,bat,com等。可是在Linux下,我们的文件能否被运行则是由是否具有“x”这个权限来决定的哦,而跟文件名称没有绝对的关系。

        (2)权限对文件夹的意义

                文件是存放实际数据的所在,文件夹基本的内容是记录文件列表。文件名称与文件夹由强烈的关联

                r(read contents in directory):便是具有读取文件夹结构列表的权限,你能够查询该文件夹下的文件名称数据,即ls能够将文件夹的内容列表列出来哦

                w(modify contents of directory):具有更改文件夹结构列表的权限

              (1)文件夹下能够新建新的文件或文件夹(子文件夹)

              (2)删除已经存在的文件与文件夹(不论该文件的权限怎样)

              (3)将已存在的文件或文件夹进行重命名

              (4)转移该文件夹内的文件,文件夹位置

               x(access directory):代表的是用户是否能进入该文件夹成为工作文件夹的用途,那么工作文件夹是什么东东啊,事实上它就是你眼下所在的文件夹,变换文件夹的命令是cd(change directory)

(3)Linux文件种类与扩展名

          前面也强调过,Linux中一切皆文件。不论什么设备在Linux下都是文件,不仅如此,连数据通信的接口也是专门的文件负责呢,所以。你会了解到,Linux的文件种类真的非常多呢。那么问题就来了,除了前面提到的一般文件(-)文件夹文件(d)之外,还有那些种类的文件呢?

  • 文件种类
        普通文件(regular file)
           1.纯文本文件(ASCLL)
           2.二进制文件(binary)
           3.数据格式文件(data)
        文件夹(directory)
        连接文件(link)事实上就是Windows系统下的快捷方式吧
        设备与设备文件(device)
            1.块设备文件(block)就是一些存储数据,以提供系统随机訪问的接口设备,如硬盘
            2.字符设备文件(character) 就是一些串行port的接口设备,如键盘鼠标等
            3.套接字(sockets)数据接口文件,通常被用在网路上的数据连接,如WIFI数据通信
            4.管道(FIFI,pipe)主要目的在解决多个程序同一时候訪问一个文件所造成的错误问题
  • Linux文件扩展名
            哈哈。这么多种类,那么问题就来了?怎么辨别。扩展名是啥了啊,通常通过ll命令查看文件属性,文件权限的第一个字母标识的就是文件种类
            事实上Linux文件是没有扩展名的,尽管如此,我们仍然希望能够有扩展名来了解该文件是什么东东呢
            *.sh 脚本文件或批处理文件(scripts)
            *Z, *.tar, *.tar.gz, *.zip, *.tgz 经过打包的压缩文件
            *.html, *.php 网页相关文件
            基本上Linux系统上的文件名称真的是让你了解文件可能的用途而已,真正的运行与否仍然须要权限的规范才行

四.Linux文件夹


   FHS定义出根文件夹底下应该要有以下这些次目彔的存在才好:

 

底下是几个在Linux其中也是很关键的文件夹呢:

 

     另外要注意的是,由于根文件夹与开机有关,开机过程中仅有根文件夹会被挂载, 其它切割槽则是在开机完毕后才会持续的进行挂载的行为。

就是由于如此。因此根文件夹下与开机过程有关的文件夹(例如以下)不能与根文件夹切割:

  • /etc:配置文件
  • /bin:重要运行档
  • /dev:所须要的装置档案
  • /lib:运行档所需的函式库不核心所需的模块
  • /sbin:重要的系统运行文件

/usr的意义与内容:


/var的意义与内容:

 

 

假设我们将整个文件夹树以图标的方法来显示。并将较为重要的档案数据列出来的话,那举文件夹树架构有点像这样呢:





  --------------------------------超人爱因斯坦于2014年10月21日更新


ok,今天的内容大概就是这些。假设有什么写的不正确的,求大神指正。我们下篇文章见:)