linux系统基础

一、计算机的组成

  一)计算机硬件主要分为五个部分:
    
    1. 控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。
    2. 运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
    3. 存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。
    4. 输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。
    5. 输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把外算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。
 
  二)软件:计算机软件(ComputerSoftware)是指计算机系统中的程序及其文档。
    1、系统软件: 是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。系统软件使得计算机使用者和其他软件将计算机当作一个整体而不需要顾及到底层每个硬件是如何工作的。(如Windows、Linux、Dos、Unix等操作系统都属于系统软件。)
    2、应用软件:是用户可以使用的各种程序设计语言,以及用各种程序设计语言编制的应用程序的集合,分为应用软件包和用户程序。应用软件包是利用计算机解决某类问题而设计的程序的集合,供多用户使用。计算机软件分为系统软件和应用软件两大类。应用软件是为满足用户不同领域、不同问题的应用需求而提供的那部分软件。 它可以拓宽计算机系统的应用领域,放大硬件的功能。(如Word、Excel、QQ等都属于应用软件)
    
    
二、Linux发行版及其个版本之间的联系

  一)、Ubuntu
    Ubuntu是2004年9月首次公布的。虽然相对来说Ubuntu是发行较晚的Linux发行版,该项目没有其他linux发行版本早,在随后几年中,Ubuntu成长为最流行的桌面Linux发行版,它朝着发展一种“易用和免费”的桌面操作系 统做出了极大的努力和贡献,能够与市场上任何一款个人操作系统相竞争。Ubuntu是基于Debian的发行版,包含一些著名的软件包,如GNOME,Firefox和OpenOffice.org其最新 版本的更新。
 
  二)、Fedora
    Fedora的正式推出在2004年9月,2003年,在发布了Red Hat Linux 9系统后不久,该公司在其产品线中推出了一些激进的变化。它保留了它的商业产品品牌,尤其是 Red Hat Enterprise Linux,并推出了 Fedora Core,一个由红帽公司赞助的,但以社区为导向的分配给“Linux的爱好者”设计的核心。新的变化最初饱受批评,Linux社区最终接受了“作为红帽 Linux的合乎逻辑的延续”的新的发行版。一系列高质量版本的发布为Fedora恢复了其作为一个市场上的状态最好的操作系统的地位。同时,红帽公司迅 速成为世界上最大和最赚钱的Linux公司,以创新的产品线和其他有趣的特性,如它的红帽认证工程师(RHCE)认证计划。

  三)、OpenSUSE
    openSUSE的开始可追溯到1992年,由德国的四个Linux爱好者创建,拥有非常绚丽的图形界面。今天,openSUSE拥有大批满意的用户追随者。为openSUSE获得高分的是用户的满意和漂亮的(KDE和GNOME)桌面环境,优秀的系统 管理工具(YaST),同时为那些购买盒装版的用户提供最好的印刷品与任何可用的文档。但是,最近Novell和微软之间的交易,Novell承认微软的 说法:它拥有Linux的知识产权,这导致了许多Linux爱好者的谴责,也促使一些用户改变其他发行版。虽然Novell已经淡化处理,而微软也尚未行 使任何权利,但这个问题仍然是保持Linux纯粹的公司的眼中钉。
    
  四)、Debian
    Debian GNU / Linux 首次公布于1993年。其创始人为Ian Murdock,他设想通过已有的数百位开发志愿者在业余时间创建一个完全非商业目的的发行版。当时怀疑论者远要大于乐观派,认为这是注定要失败和崩溃 的,但事实情况却恰恰相反。 Debian不仅幸存下来,经过将近10年蓬勃发展,它成为最大的Linux发行版,也可能是迄今为止最大的协同软件项目!
    
  五)、Mandrive
    Mandriva Linux由Gal Duval于1998年7月在Mandrake Linux下发起。起初,这只是一个重新优化了的包含更友好的KDE桌面的Red Hat Linux 版本,但后续版本增加了更友好的体验,Mandriva Linux主要偏重于桌面版本。其最大特点是高级软件,一流的系统管理套件(DrakConf),优秀的64位版本支持,以及广泛的国际支持。
    
  六)、Mint
    Linux Mint,一个基于Ubuntu的发行版.
    
  七)、Gentoo
    Gentoo Linux的概念由 Daniel Robbins在2000年左右提出,他以前是Stampede Linux和FreeBSD的开发者。当作者接触到FreeBSD和它的“的Autobuild”功能,即所谓的“ports”,这促使他将 FreeBSD的软件管理的一些原则纳入其Gentoo下的“portage”。Gentoo Linux操作系统是专为高级用户设计。最初,安装繁琐,繁琐,甚至需要几个小时甚至一天时间用命令行来编译建立一个完整的Linux发行版,然而,在 2006年,开发一个项目,简化了安装Gentoo的 live CD的安装过程为“一键安装”程序。除了提供一个始终能够获取最新的安装包的单一命令,发行版的另外一些重要特征是优秀的安全性,广泛的配置选项,对于许 多架构的支持,并能够保持系统最新资料,日期无需重新安装。 Gentoo的文档已多次被认为是最好的在线文档之一。
    
  八)、Centos
    CentOS在2003年底推出,CentOS是一个重新编译可安装的Red Hat Enterprise Linux(RHEL)代码,并提供及时的安全更新的所有套装软件升级为目标的社区项目。更直接地说,CentOS是RHEL克隆版而已。两个发行版技术 间唯一的区别是品牌 – CentOS替换所有红帽的商标和标识为他自己的。但是与RHEL和CentOS的联系在CentOS的网站上无法看到,由于商标法,红帽被称为一个 “Prominent North American Enterprise Linux Vendor”(著名的北美企业Linux销售商),而不是它的正确名称。然而,红帽和CentOS的之间的关系仍然良好,许多CentOS的开发者在与 红帽工程师积极接触。
    
    
三、Linux的哲学思想
    1、一切皆文件
    2、由众多的单一的程序完成一件比较复杂的工作,一个程序只做一件事,并且做好他。
    3、尽量避免与用户交互
    4、使用文本文件保存配置信息
    5、提供机制(可选的策略、是一种框架),而非策略,提供做大的灵活性。
    
四、Linux的命令格式
    command  【选项】 【参数】
    
    1、ifconfig
        功能:查看和配置网络设备。当网络环境发生改变时可通过此命令对网络进行相应的配置。
        命令参数
            -a 显示全部接口信息

            -s 显示摘要信息(类似于 netstat -i)
            
            add 给指定网卡配置IPv6地址
            
            del 删除指定网卡的IPv6地址
        
            ifdown 关闭指定网卡
            
            ifup 开启指定网卡
            
    2、echo
        功能:打印、回显
        命令参数
            -n:不要在最后一行自动换行
            -e: 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般
                文字输出:
                   \a 发出警告声;
                   \b 删除前一个字符;
                   \c 最后不加上换行符号;
                   \f 换行但光标仍旧停留在原来的位置;
                   \n 换行且光标移至行首;
                   \r 光标移至行首,但不换行;
                   \t 插入tab;
                   \v 与\f相同;
                   \\ 插入\字符;
                   \nnn 插入nnn(八进制)所代表的ASCII字符;
                –help 显示帮助
                –version 显示版本信息
                
    
    3、tty
        功能:用来打印与标准输入连接的终端名称,如果显示的是/dev/console,那么此终端为控制台终端;
        命令参数
            -s或–silent或–quiet 不显示任何信息,只回传状态代码。
            –help 在线帮助。
            –version 显示版本信息。

    4、startx
        功能:启动X windows,startx为启动X Window的script文件,实际上启动XWindow的程序为xinit。
        语法:startx [程序][–服务器设置]
        
    5、export
        功能:设置或显示环境变量。(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须指定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东东在这些目录里)
        语法:export [-fnp][变量名称]=[变量设置值]
        参数:
            -f  代表[变量名称]中为函数名称。

            -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

           -p  列出所有的shell赋予程序的环境变量。
          
          
   5、pwd
       功能:查看”当前工作目录“的完整路径
       语法:pwd [选项]
       参数:
           一般情况下不带任何参数
            
            如果目录是链接时:
            
            格式:pwd -P  显示出实际路径,而非使用连接(link)路径。
            
    6、history
        功能:查看Linux命令的执行历史
        参数:
            n :n数字,列出最近N条命令
            -c:清空Linux命令执行历史
            -w:立刻将目前的数据写入到histfile文件中
        具体用法:
        1). 使用 HISTTIMEFORMAT 显示时间戳

        当你从命令行执行 history 命令后,通常只会显示已执行命令的序号和命令本身。如果你想要查看命令历史的时间戳,那么可以执行:
        
        # export HISTTIMEFORMAT='%F %T '
        # history | more
          831  2016-09-17 09:47:56 git clone         https://github.com/moonstack/moon-kibana/tree/beta
          832  2016-09-17 09:47:56 wget https://github.com/moonstack/moon-kibana.git
          833  2016-09-17 09:47:56 ll
          834  2016-09-17 09:47:56 rm -f moon-kibana.git
          835  2016-09-17 09:47:56 git https://github.com/moonstack/moon-kibana.git
          836  2016-09-17 09:47:56 git clone https://github.com/moonstack/moon-kibana.git

        
        
        2). 使用 Ctrl+R 搜索历史
        
        Ctrl+R 是我经常使用的一个快捷键。此快捷键让你对命令历史进行搜索,对于想要重复执行某个命令的时候非常有用。当找到命令后,通常再按回车键就可以执行该命令。如果想对找到的命令进行调整后再执行,则可以按一下左或右方向键。
        
        # [Press Ctrl+R from the command prompt, which will display the reverse-i-search prompt]
        (reverse-i-search)`red‘: cat /etc/redhat-release
        [Note: Press enter when you see your command, which will execute the command from the history]
        # cat /etc/redhat-release
        Fedora release 9 (Sulphur)
        
        3). 快速重复执行上一条命令
        
        有 4 种方法可以重复执行上一条命令:
        1. 使用上方向键,并回车执行。
        2. 按 !! 并回车执行。
        3. 输入 !-1 并回车执行。
        4. 按 Ctrl+P 并回车执行。
        
        4). 从命令历史中执行一个指定的命令
        
        在下面的例子中,如果你想重复执行第 4 条命令,那么可以执行 !4:
        
        # history | more
                919  2016-09-17 10:29:48  cat /etc/redhat-release
                920  2016-09-17 10:29:59 ifconfig
                921  2016-09-17 10:30:01 history
                [root@elasticsearch-1 ~]# !919
                 cat /etc/redhat-release
                CentOS Linux release 7.2.1511 (Core)

        #
        
        
        5). 通过指定关键字来执行以前的命令
        
        在下面的例子,输入 !ps 并回车,将执行以 ps 打头的命令:
        
        # !ps
        ps aux | grep yp
        root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind
        root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp
        
        6). 使用 HISTSIZE 控制历史命令记录的总行数
        
        将下面两行内容追加到 .bash_profile 文件并重新登录 bash shell,命令历史的记录数将变成 450 条:
        
        # vi ~/.bash_profile
        HISTSIZE=450
        HISTFILESIZE=450
        
        7). 使用 HISTFILE 更改历史文件名称
        
        默认情况下,命令历史存储在 ~/.bash_history 文件中。
        
        下载该文件可以去root目录下,用sz命令
        
        #sz .bash_history
        
        添加下列内容到 .bash_profile 文件并重新登录 bash shell,将使用 .commandline_warrior 来存储命令历史:
        
        # vi ~/.bash_profile
        HISTFILE=/root/.commandline_warrior
        
        8). 使用 HISTCONTROL 从命令历史中剔除连续重复的条目
        
        在下面的例子中,pwd 命令被连续执行了三次。执行 history 后你会看到三条重复的条目。要剔除这些重复的条目,你可以将 HISTCONTROL 设置为 ignoredups:
        
        # pwd
        # pwd
        # pwd
        # history | tail -4
        44 pwd
        45 pwd
        46 pwd [Note that there are three pwd commands in history, after executing pwd 3 times as shown above]
        47 history | tail -4
        # export HISTCONTROL=ignoredups
        # pwd
        # pwd
        # pwd
        # history | tail -3
        56 export HISTCONTROL=ignoredups
        57 pwd [Note that there is only one pwd command in the history, even after executing pwd 3 times as shown above]
        58 history | tail -4
        
        9). 使用 HISTCONTROL 清除整个命令历史中的重复条目
        
        上例中的 ignoredups 只能剔除连续的重复条目。要清除整个命令历史中的重复条目,可以将 HISTCONTROL 设置成 erasedups:
        
        # export HISTCONTROL=erasedups
        # pwd
        # service httpd stop
        # history | tail -3
        38 pwd
        39 service httpd stop
        40 history | tail -3
        # ls -ltr
        # service httpd stop
        # history | tail -6
        35 export HISTCONTROL=erasedups
        36 pwd
        37 history | tail -3
        38 ls -ltr
        39 service httpd stop
        [Note that the previous service httpd stop after pwd got erased]
        40 history | tail -6
        
        10). 使用 HISTCONTROL 强制 history 不记住特定的命令
        
        将 HISTCONTROL 设置为 ignorespace,并在不想被记住的命令前面输入一个空格:
        
              
        11). 使用 -c 选项清除所有的命令历史
        
        如果你想清除所有的命令历史,可以执行:
        
        # history -c
        
        12). 命令替换
        
        在下面的例子里,!!:$ 将为当前的命令获得上一条命令的参数:
        
        # ls anaconda-ks.cfg
        anaconda-ks.cfg
        # vi !!:$
        vi anaconda-ks.cfg
        
        下例中,!^ 从上一条命令获得第一项参数:
        
        # cp anaconda-ks.cfg anaconda-ks.cfg.bak
        anaconda-ks.cfg
        # vi -5 !^
        vi anaconda-ks.cfg
        
        13). 为特定的命令替换指定的参数
        
        在下面的例子,!cp:2 从命令历史中搜索以 cp 开头的命令,并获取它的第二项参数:
        
        # cp ~/longname.txt /really/a/very/long/path/long-filename.txt
        # ls -l !cp:2
        ls -l /really/a/very/long/path/long-filename.txt
        
        下例里,!cp:$ 获取 cp 命令的最后一项参数:
        
        # ls -l !cp:$
        ls -l /really/a/very/long/path/long-filename.txt
        
        14). 使用 HISTSIZE 禁用 history
        
        如果你想禁用 history,可以将 HISTSIZE 设置为 0:
        
        # export HISTSIZE=0
        # history
        # [Note that history did not display anything]
        
        15). 使用 HISTIGNORE 忽略历史中的特定命令
        
        下面的例子,将忽略 pwd、ls、ls -ltr 等命令:
        
        # export HISTIGNORE=”pwd:ls:ls -ltr:”
        # pwd
        # ls
        # ls -ltr
        # service httpd stop
        # history | tail -3
            924  2016-09-17 10:31:43 ifconfig
            925  2016-09-17 10:31:55 cat server.conf
            926  2016-09-17 10:33:51 history | tail -3

            
    7、shudown
        功能:关机
        参数:
            -c:中断关机
            -f:重新启动时不进行磁盘检测
            -F:重新启动时进行磁盘检测
            -h:关闭电源
            -k:模拟关机,不是真的关机,只是向登录者发送警告信息出去
            -n:不调用init进程进行关机,而是强行关机
            -r:关闭系统后重新启动
            -t:延迟关机时间
            -w:仅做测试,并不是真的关机
            
            
            
    8、reboot
        功能:重启系统
        参数:
            -d:重新启动时不把数据写入记录文件/var/tmp/wtmp
            -f:强制重新开机,不调用shutdown指令的功能。
            -h:在系统关机或poweroff之前,将所有的硬盘处于待机模式
            -i:关闭网络设置之后再重新启动系统
            -n:保存数据后再重新启动系统
            -p:当停止系统时,关闭电源。这是默认调用停止时关闭电源
            -w:仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件
            –help:显示命令在线帮助
    
    8、hwclock
        功能:用来显示/设置硬件时钟
        参数:
            -r, –show         读取并打印硬件时钟(read hardware clock and print result )
            -s, –hctosys      将硬件时钟同步到系统时钟(set the system time from the hardware clock )
            -w, –systohc     将系统时钟同步到硬件时钟(set the hardware clock to the current system time )
            –adjust  hwclock每次更改硬件时钟时,都会记录在/etc/adjtime文件中。使用–adjust参数,可使hwclock根据先前的记录来估算硬件时钟的偏差,并用来校正目前的硬件时钟。
            –debug  显示hwclock执行时详细的信息。
            –directisa  hwclock预设从/dev/rtc设备来存取硬件时钟。若无法存取时,可用此参数直接以I/O指令来存取硬件时钟。
            –hctosys  将系统时钟调整为与目前的硬件时钟一致。
            –set –date=<日期与时间>  设定硬件时钟。
            –show  显示硬件时钟的时间与日期。
            –systohc  将硬件时钟调整为与目前的系统时钟一致。
            –test  仅测试程序,而不会实际更改硬件时钟。
            –utc  若要使用格林威治时间,请加入此参数,hwclock会执行转换的工作。
            –version  显示版本信息。
        
      
    9、date
        功能: 可以用来显示或设定系统的日期与时间。
        参数:
            %H 小时(以00-23来表示)。

            %I 小时(以01-12来表示)。
            
            %K 小时(以0-23来表示)。
            
            %l 小时(以0-12来表示)。
            
            %M 分钟(以00-59来表示)。
            
            %P AM或PM。
            
            %r 时间(含时分秒,小时以12小时AM/PM来表示)。
            
            %s 总秒数。起算时间为1970-01-01 00:00:00 UTC。
            
            %S 秒(以本地的惯用法来表示)。
            
            %T 时间(含时分秒,小时以24小时制来表示)。
            
            %X 时间(以本地的惯用法来表示)。
            
            %Z 市区。
            
            %a 星期的缩写。
            
            %A 星期的完整名称。
            
            %b 月份英文名的缩写。
            
            %B 月份的完整英文名称。
            
            %c 日期与时间。只输入date指令也会显示同样的结果。
            
            %d 日期(以01-31来表示)。
            
            %D 日期(含年月日)。
            
            %j 该年中的第几天。
            
            %m 月份(以01-12来表示)。
            
            %U 该年中的周数。
            
            %w 该周的天数,0代表周日,1代表周一,异词类推。
            
            %x 日期(以本地的惯用法来表示)。
            
            %y 年份(以00-99来表示)。
            
            %Y 年份(以四位数来表示)。
            
            %n 在显示时,插入新的一行。
            
            %t 在显示时,插入tab。
            
            MM 月份(必要)
            
            DD 日期(必要)
            
            hh 小时(必要)
            
            mm 分钟(必要)
            
            ss 秒(选择性)
            
            选择参数:
            
            -d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。
            
            -s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。
            
            -u  显示GMT。
            
            –help  在线帮助。
            
            –version  显示版本信息
            
                [root@elasticsearch-1 ~]# date
                Sat Sep 17 10:51:51 CST 2016
                [root@elasticsearch-1 ~]# date '+%c'
                Sat 17 Sep 2016 10:52:03 AM CST
                [root@elasticsearch-1 ~]# date '+%D'
                09/17/16
                [root@elasticsearch-1 ~]# date '+%x'
                09/17/2016
                [root@elasticsearch-1 ~]# date '+%F'
                2016-09-17
                [root@elasticsearch-1 ~]# date '+%T'
                10:52:22
                [root@elasticsearch-1 ~]# date '+%X'
                10:52:27 AM
                [root@elasticsearch-1 ~]# date '+%Y%M%d'
                20165217
                [root@elasticsearch-1 ~]# date '+%Y%m%d'
                20160917
                [root@elasticsearch-1 ~]# date '+%Y%m%d%H%M%S'
                20160917105309
        

五、Linux命令班助信息
    区别内部或外部命令:

        # type COMMAND

    内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高。

    外部命令是系统的软件功能,用户需要时才从硬盘中读入内存。

      内部命令的帮助文件:

                        # help COMMAND

     外部命令的帮助文件

                       (1) # COMMAND –help

            # COMMAND -h

        (2) 使用手册(manual)

            # man COMMAND

        (3) 信息页

            # info COMMAND

        (4) 程序自身的帮助文档

            README

            INSTALL

            ChangeLog

        (5) 程序官方文档

            官方站点:Documentation

        (6) 发行版的官方文档

        (7) Google

        帮助(man)手册页存放路径   /usr/share/man  
        
        
        man章节代号
        
        代表内容
        
        1使用者在shell中可以操作的指令或可执行档
        
        2系统内核调用,不是每个命令都有系统调用。
        
        3一些常用的函数(function)与函数库(library),大部分是C的函数库(libc)
        
        4装置档案的说明,通常在/dev下的档案
        
        5设定档或者是某些档案的格式
        
        6游戏(games)
        
        7惯例与协定等,例如Linux档案系统、网络协定、ASCII code等等的说明
        
        8系统管理员可用的管理指令
        
        9跟kernel有关的文件(CentOS7以后出现)
        
        
        man文件布局
        
        
        NAME     -命令的名称和简要的介绍
        
        SYNOPSIS     -命令的基本语法格式
        
        DESCRIPTION    -描述命令功能的概要介绍
        
        OPTIONS     -命令的各种选项,以及对每个选项的简短介绍
        
        FILES     -命令使用的其他文件
        
        AUTHOR     -编写命令的作者,以及联系信息
        
        EXAMPLES     -常用的一些示例
        
        SEA ALSO     -参见相关命令或函数的列表
        
        REPORTING BUGS    -已知漏洞
        
        PROMPTS    -提示
        
        COMPATIBILITY    -兼容性
        
        ENVIRONMENT VARIABLES    -环境变量
        
六、Linux基本目录结构
    /bin    系统有很多放置执行文件的目录,但/bin比较特殊.因为/bin放置的是在单人维护模式下还能够被操作的指令. 在/bin底下的指令可以被 root与一般账号所使用,主要有:cat, chmod, chown, date, mv, mkdir, cp, bash等等常用的指令.
    /boot    这个目录主要在放置开机会使用到的文件,包括Linux核心文件以及开机选单与开机所需配置文件等等. Linux kernel常用的档名为:vmlinuz,如果使用的是grub这个开机管理程序, 则还会存在/boot/grub/这个目录喔!
    /dev    在Linux系统上,任何装置与接口设备都是以文件的型态存在于这个目录当中的. 你只要透过存取这个目录底下的某个文件,就等于存取某个装置啰~ 比要重要的文件有/dev/null, /dev/zero, /dev/tty, /dev/lp*, /dev/hd*, /dev/sd*等等
    /etc    系统主要的配置文件几乎都放置在这个目录内,例如人员的账号密码文件、 各种服务的启始档等等.一般来说,这个目录下的各文件属性是可以让一般使用者查阅的, 但是只有root有权力修改.FHS建议不要放置可执行文件(binary)在这个目录中喔.比较重要的文件有: /etc/inittab, /etc/init.d/, /etc/modprobe.conf, /etc/X11/, /etc/fstab, /etc/sysconfig/ 等等.另外,其下重要的目录有:
        /etc/init.d/:所有服务的预设启动 script 都是放在这里的,例如要启动或者关闭 iptables 的话:『 /etc/init.d/iptables start』、『/etc/init.d/iptables stop』
        /etc/xinetd.d/:这就是所谓的super daemon管理的各项服务的配置文件目录.
        /etc/X11/:与 X Window 有关的各种配置文件都在这里,尤其是 xorg.conf 这个 X Server 的配置文件.
   /home    这是系统默认的用户家目录(home directory).在你新增一个一般使用者账号时, 默认的用户家目录都会规范到这里来.比较重要的是,家目录有两种代号喔:
        ~:代表目前这个用户的家目录,而
        ~dmtsai :则代表 dmtsai 的家目录!
    /lib    系统的函式库非常的多,而/lib放置的则是在开机时会用到的函式库, 以及在/bin或/sbin底下的指令会呼叫的函式库而已. 什么是函式库呢?妳可以将他想成是『外挂』,某些指令必须要有这些『外挂』才能够顺利完成程序的执行之意. 尤其重要的是/lib/modules/这个目录, 因为该目录会放置核心相关的模块(驱动程序)喔!
    /media    media是『媒体』的英文,顾名思义,这个/media底下放置的就是可移除的装置啦! 包括软盘、光盘、DVD等等装置都暂时挂载于此.常见的档名有:/media/floppy, /media/cdrom等等.
    /mnt    如果妳想要暂时挂载某些额外的装置,一般建议妳可以放置到这个目录中. 在古早时候,这个目录的用途与/media相同啦!只是有了/media之后,这个目录就用来暂时挂载用了.
    /opt    这个是给第三方协力软件放置的目录.什么是第三方协力软件啊? 举例来说,KDE这个桌面管理系统是一个独立的计划,不过他可以安装到Linux系统中,因此KDE的软件就建议放置到此目录下了. 另外,如果妳想要自行安装额外的软件(非原本的distribution提供的),那么也能够将你的软件安装到这里来. 不过,以前的Linux系统中,我们还是习惯放置在/usr/local目录下呢!
    /root    系统管理员(root)的家目录.之所以放在这里,是因为如果进入单人维护模式而仅挂载根目录时, 该目录就能够拥有root的家目录,所以我们会希望root的家目录与根目录放置在同一个分割槽中.
    /sbin    Linux有非常多指令是用来设定系统环境的,这些指令只有root才能够利用来『设定』系统,其他用户最多只能用来『查询』而已. 放在 /sbin底下的为开机过程中所需要的,里面包括了开机、修复、还原系统所需要的指令. 至于某些服务器软件程序,一般则放置到/usr/sbin/当 中.至于本机自行安装的软件所产生的系统执行文件(system binary), 则放置到/usr/local/sbin/当中了.常见的指令包括:fdisk, fsck, ifconfig, init, mkfs等等.
    /srv    srv可以视为『service』的缩写,是一些网络服务启动之后,这些服务所需要取用的数据目录. 常见的服务例如WWW, FTP等等.举例来说,WWW服务器需要的网页数据就可以放置在/srv/www/里面.
    /tmp    这是让一般使用者或者是正在执行的程序暂时放置文件的地方. 这个目录是任何人都能够存取的,所以你需要定期的清理一下.当然,重要数据不可放置在此目录啊! 因为FHS甚至建议在开机时,应该要将/tmp下的数据都删除唷!
     /usr  放置的数据属于可分享的与不可变动
     /var 目录主要针对常态性变动的文件,包括缓存(cache)、登录档(log file)以及某些软件运作所产生的文件, 包括程序文件(lock file, run file)    
   
    
    
    
    
   

原创文章,作者:jbm,如若转载,请注明出处:http://www.178linux.com/45900

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 11:13

    写的很好,如果能够在调整一下排版会更好,加油