码迷,mamicode.com
首页 > 系统相关 > 详细

Linux系统基础特性

时间:2015-12-13 02:16:27      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:操作系统   命令格式   man命令   fhs   

一、Linux操作系统说明

    1.主流的Linux发行版

            Linux发行版有数百种之多,常见的版本有以下几种:

          1)RedHat:中国和美洲流行

    Redhat 9.0个人版2003年停止更新àFedora Core:6个月更新一次

    RedHat Enterprise Linux: RHEL

--->社区版CentOS: Community ENTerprise OS                        

          2)Slackware 版本

            SuSE(商业、开源两种)--->欧洲流行

SLES:SuSE商业版

OpenSuSE SuSE开源版本,桌面华丽著称 

          3) Debian:现在唯一一个全社区版,无商业公司支持,使用难度复杂

     Ubuntu :基于Debian的二次发行桌面

   mint

     knopix 安全著称

          4)Gentoo

          5)ArchLinux

    2.软件程序版本号:major.minor.release 主版本号.次版本号.发行版本号

          1)kernel:0.99, 2.2, 2.4, 2.6, 3.0, 4.0  www.kernel.org

          2)发行版本版本号:

RHEL: 5.x, 6.x, 7.x

Fedora 23

Debian:8.x

OpenSuSE: 13.x

    3.开源协定:

         1) GPL:通用公共许可证,版权属于GPL,任何程序只要遵循GPL协定,就必须开源

         2) LGPL:Lesser GPL 宽松的通用公共许可证,基于库接口调用,无需开源

      GPL V2. GPL V3.:更新版

         3) BSD协定:

             如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协定;

             如果二次发布产品是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协定

            不可以用开源代码的作者或组织,以及原来的产品的名字做市场推广;

        4) Apache协定:ASF:Apache Software Foundtion

        5) 双线授权:

   Community社区版:遵循开源协定

   Enterprise商业授权版:社区版基础上二次开发出更强大的功能、以及提供服务

    4.Linux的哲学思想:

          1) 一切皆文件:把几乎所有资源统统抽象为文件形式;包括硬件设备,甚至通信接口等;

          2) 由众多功能单一的程序组成;一个程序只做一件事,并且做好;组合小程序完成复杂任务;

          3) 尽量避免跟用户交互------>>易于以编程的方式实现自动化任务;

          4) 使用文本文件保存配置信息;

    5.终端设备:terminal  à多任务、多用户

        1) 物理终端pty,控制台:console   /dev/console

        2) 虚拟终端:6个 ,Ctrl+Alt+F[1-6]  tty   /dev/tty#

        3) 图形终端:图像化界面,但不是必须的,无需图形界面服务器不需要显卡

    CentOS 6 Ctrl+Alt+F7

    CentOS 7  在哪个虚拟终端启动,即位于哪个虚拟终端;

        4) 串行终端:ttyS   /dev/ttyS#

        5) 伪终端:远程连接的终端变现形式pts    /dev/pts

   6. Linux OS的两类接口:

        1)GUI:Graphic User Interface 图形用户界面

   实现:GNome:c, gtk

             KDE: c++, qt

 XFACE:简洁,适用于嵌入式终端的桌面系统

        2)CLI:Command Line Interface  命令行界面

   实现:bash、zsh、sh、csh、tcsh、ksh

  命令行接口:例如 [root@node1 ~]# COMMAND

       root: 当登录的用户

       node1: 当前主机的主机名,非完整格式;

 ~:用户当前所在的目录(current directory),也称为工作目录(working directory);相对路径;

#:命令提示符;

#:管理员账号,为root; 拥有最高权限,能执行所有操作;

$:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作;

 

 

 

二、Linux命令的语法通用格式

# COMMAND  OPTIONS  ARGUMENTS

    1.COMMAND发起一命令

请求内核将某个二进制程序运行为一个进程;静态到动态(过程)

命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;

1)多数系统程序文件都存放位置:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin

   普通命令:/bin, /usr/bin, /usr/local/bin

   管理命令:/sbin, /usr/sbin, /usr/local/sbin

   共享库:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

32bits的库:/lib, /usr/lib, /usr/local/lib

64bits的库:/lib64, /usr/lib64, /usr/local/lib64

      注:并非所有的命令都有一个在某目录与之对应的可执行程序文件

2)命令必须要遵循特定格式规范:

Linux:ELF --->Exectable and Linkable Format可执行链接文件

Windows:.exe .msi

3)命令分为两类:

   内置命令(builtin)由shell程序的自带的命令独立的可执行程序文件,文件名即命令名;

   外部命令shell程序是独特的程序,负责解析用户提供的命令;

命令提示符背后的程序会完成在环境变量PATH下查找命令、词法分析

环境变量PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;

~]# echo $PATH     --->查找次序:自左而右;

    查看命令类型:type COMMAND

     2. OPTIONS:指定命令的运行特性

1)短选项:-C, 例如-l, -d

2)长选项:--word, 例如--help, --human-readable

      注:有些命令的选项没有-;

   如果同一命令同时使用多个 短选项,多数可合并:-l  -d =  -ld

   长选项不能合并;

   有些选项可以带参数,此称为选项参数;

     3.ARGUMENTS:命令的作用对象;命令对什么生效;

 不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;

 

 

 

三、获取命令的使用帮助:

    1.内部命令:help  COMMAND

    2.外部命令:

(1) 命令自带简要格式的使用帮助# COMMAND --help

(2) 使用手册(manual---> 位置/usr/share/man    

 # man COMMAND

     1)SECTION:man查询帮助时显示的帮助文档内容结构

NAME:名称及功能性说明

SYNOPSIS:语法格式,用法说明,包括可用的选项

  []:可选内容;

<>:必须提供的内容;

      a|b|c:多选一;

 ...:同类内容可出现多个;

{  } : 分组

DESCRIPTION:命令功能的详尽说明,可能包含每个选项的意义

OPTIONS:选项,说明每一个选项的意义

FILES:此命令相关的配置文件

EXAMPLES:使用示例

AUTHOR: 作者

BUGS: 报告程序bug的方式

SEE ALSO: 参考

...

    2)/usr/share/man存放的时压缩格式的文件形式的使用手册,有章节之分;

章节: man 1, man 2, man 3,man 4,man 5,man 6,man 7,man 8    

     ~]# man  NUMBER  KEYWORD

NUMBER[1|2|3|4|5|6|7|8]:

1:用户命令/bin; /usr/bin; /usr/local/bin

2:系统调用;

3:C库调用;

4:设备文件及特殊文件;

5:文件格式;(配置文件格式)

6:游戏使用帮助;

7:杂项:Miscellaneous

8:管理工具及守护进程:/sbin/usr/sbin/usr/local/sbin

         注:并非每个COMMAND在所有章节下都有手册;

查看命令所在章节~]# whatis COMMAND

其执行过程是查询数据库进行的;手动更新数据库: ~]# makewhatis

        3)man命令打开手册以后的操作方法:

      翻屏:

   空格键(Space):向文件尾翻一屏;

    b: 向文件首部翻一屏;

    Ctrl+d:向文件尾部翻半屏; download

    Ctrl+u:向文件首部翻半屏; upload

    回车键(Enter):向文件尾部翻一行;

    k: 向文件首部翻一行;

    G:跳转至最后一行;

    #G: 跳转至指定行;

    1G:跳转至文件首部;

      文本搜索

  /keyword:从文件首部向文件尾部依次查找;不区分字符大小写;

  ?keyword:从文件尾部向文件首部依次查找;        

n: 与查找命令方向相同;

N: 与查找命令方向相反;

        退出 q: quit

        选项 man  -M  /PATH/TO/SOMEDIR    到指定目录下查找命令手册并打开之;

  (3) info COMMAND获取命令的在线文档;

  (4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION

README:程序的相关的信息;

INSTALL: 安装帮助;

CHANGES:版本迭代时的改动信息;

  (5) 主流发行版官方文档例如RedHat官方网站  http://www.redhat.com/doc

  (6) 程序官方的文档:官方站点上的“Document”

  (7) 搜索引擎google

keyword filetype:pdf

keyword site:domain.tld

 

 

 

四、目录与文件简介

         目录:路径映射。分为工作目录:working directory家目录:home

         文件:存储空间存储的一段流式数据,对数据可以做到按名存取;

     1.文件系统格式

层级结构   à倒置树状结构

/: 根节点,文件系统的原初起点                

   例如/dev/pts/2 --->最左侧/: 表示根目录其它的/: 表示路径分隔

     2.文件的路径表示方法

绝对路径:从根开始表示出的路径

相对路径:从当前位置开始表示出的路径

     3.文件名使用法则:

(1) 严格区分字符大小写:file1, File1, FILE1表示不同文件

(2) 目录也是文件,在同一路径下,两个文件不能同名;

(3) 支持使用除/以外的任意字符;

(4) 最长不能超过255个字符;

(5) 以.开头的文件为隐藏文件;

     

 

 

五、文件系统层标准

      FHS:文件系统层级结构标准(Filesystem Hierarchy Standard)

/bin:所有用户可用的基本命令程序文件;

/sbin:供系统管理使用的工具程序;

/boot:启动相关文件,引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;

/dev:存储特殊文件或设备文件;字符设备(线性设备)、块设备(随机设备);

/etc:系统程序的配置文件,只能为静态;

/home:普通用户的家目录集中位置用户名同名子目录,/home/USERNAME;

/root:管理员的家目录;

/lib:为系统启动或根文件系统上的应用程序提供共享库,以及为内核提供内核模块;

   libc.so.*:动态链接的C库;

   ld*:运行时链接器/加载器;

   modules:用于存储内核模块的目录;

/lib64:64位系统特有的存放64位共享库的路径;

/media:便携式设备挂载点;

/mnt:其它文件系统的临时挂载点;

/opt:附加应用程序的安装位置;可选路径;

/srv:当前主机为服务提供的数据;

/tmp:用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr:usr Hierarchy,全局共享的只读数据路径;

bin, sbin:用户和管理员命令程序

lib, lib64:共享库文件

include:C程序头文件;

share:命令手册页和自带文档等架构特有的文件的存储位置;

X11R6:X-Window程序的安装位置;

src:程序源码文件的存储位置;

           local:Local hierarchy,本地层级目录;

让系统管理员安装本地应用程序;也通常用于安装第三方程序;

/var:/var Hierarchy,存储常发生变化的数据的目录;

cache        Application cache data 应用缓存数据

lib        Variable state information易变的状态数据

local        Variable data for /usr/loca l可变化 /usr/local下的数据

lock        Lock files 锁文件

log        Log files and directories  日志文件和目录

opt        Variable data for /opt 可变化/opt下的数据

run        Data relevant to running processes 运行进程相关的数据

spool        Application spool data应用队列信息,如例行性计划,邮箱服务器等数据

tmp        Temporary files preserved between system reboots系统重启保存的临时文件        

/proc:基于内存的虚拟文件系统,存储内核及进程其相关信息;内核参数

例如net.ipv4.ip_forward, 虚拟为net/ipv4/ip_forward, 存储于/proc/sys/

    其完整路径为/proc/sys/net/ipv4/ip_forward;

/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;

为管理Linux设备提供一种统一模型的的接口;

硬件设备相关属性映射文件

本文出自 “许鼎的博客” 博客,请务必保留此出处http://xuding.blog.51cto.com/4890434/1722404

Linux系统基础特性

标签:操作系统   命令格式   man命令   fhs   

原文地址:http://xuding.blog.51cto.com/4890434/1722404

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!