首页 > 系统服务 > 详细

在Linux中获取命令的方法及其哲学思想

时间:2018-05-25 13:10:30      阅读:196      评论:0      收藏:0      [点我收藏+]
获取命令的使用帮助的几种方法:
1.man:针对于外部命令的帮助手册;
man九章:
1.用户命令(所有用户都可以执行的命令)
2.系统调用
3.C库调用
4.设备和特殊文件
5.配置文件格式
6.游戏相关的帮助信息
7.杂项
8.系统管理类命令
9.与内核相关的帮助信息

在每个man手册中都常见到的一些字段:
    NAME:程序的名称及相关的功能的简单描述;
    SYNOPSIS:命令使用的语法格式;
    DESCRIPTION:程序的详细描述信息;
    OPTIONS:选项的用法和选项的含义的详细说明;
    AUTHOR:程序作者的信息
    EXAMPLES:命令程序的使用范例;
    REPORTING BUGS:报告程序中所包含的BUG的方式,通常是电子邮件;
    SEE ALSO:额外参考的内容
    FILE:与该程序相关的其他的文献资料,如配置文件,README文档等;

在帮助信息中可能出现的一些特殊符号的意义:
    []:可以省略不写,也可以根据需要选择使用;
    {}:在花括号中一般包含竖线"|",表示,从所有项目中必须选择而且只能选择一个使用;"|"有或者之意;
    <>:必须书写的内容;
    ...:可以有更多内容;

区分内部命令和外部命令的方法:
    # type COMMAND
        查找结果中显示为"内嵌"或者"buildin"字样的,则为内部命令;
        其余的结果都为外部命令;

    内部命令的帮助获取不使用man手册,而使用help命令;
        # help BUILDIN_COMMAND

2.使用whereis命令获得帮助;
    可以查看程序的二进制文件、源代码文件及帮助手册所在的位置;

3.whatis命令
    可以获取被匹配到的命令的手册页的描述信息;

4.which命令
    可以显示命令的别名的定义方式和命令的二进制文件的路径;

5.info命令
    info COMMAND
    获取命令的在线帮助文档;

6.有很多的程序有自带的帮助文档;   
    /usr/share/doc/APP_NAME-VERSION/
        README:程序的相关信息;
        INSTALL:程序的安装信息;
        CHANGES:程序的版本更迭的历程相关的信息;
        LICENSE:程序所遵循的许可证类型;
            GPL
            LGPL
            BSD
            Apache
            MIT

7.搜索引擎
    Google
        mysql filetype:pdf
        mysql site:51cto.com

8.相关的网站站点中的文档信息
    wiki
    FAQ

9.程序的发行方的官方站点提供的官方文档

10.参考书籍:
    O‘Reiley
    Wrox
    电子工业出版社

简单的系统管理类的命令:
    注销:退出登录
        exit
        logout
        Ctrll+d

    重新引导:将运行于内存中的所有进程关闭,关闭系统内核,对于所有的计算机部件进行重新通电,加载内核,启动应用程序,打印登录提示符;
        reboot
        shutdown -r {#|now|time}  (推荐)
            #:数字,表示相对时间,即#分钟之后重新引导;
            now:现在,立即重新引导,相当于-t 0;
            time:12:00
        init 6

    关闭系统:将运行于内存中的所有进程关闭,关闭系统内核,对于所有的计算机部件断电。
        halt
        poweroff
        init 0
        shutdown -h {#|now|time}  (推荐)

Linux的哲学思想:
1.一切皆文件
Linux把几乎所有的数据和资源都抽象(虚拟)成文件的形式,甚至包括硬件,网络通信设备所使用的套接字以及管道都是如此;

    文件:一组有边界的位于存储设备中的流式数据;

2.由众多的功能单一的小程序组成,却可以实现复杂任务;
    功能单一:每个小程序只做一件事,只实现一个功能;并且要做到最好;
    复杂任务:可以根据业务逻辑或业务类型,尽可能完美的组合多个小程序,使多个小程序相辅相成,将功能发挥至极致;

3.尽量避免与用户直接交互;
    在程序化,系统化,平台化,自动化的运维空间中,人是极其易出错的一个环节;尽量避免与用户直接交互可以尽可能的保证结果的准确性和过程的高效性;易于以编程的方式实现自动化任务的实施;

4.使用纯文本文件保存程序的配置信息;
    在程序出现错误或者执行不畅的时候,可以使用文本编辑工具分析程序的错误原因,而不必依赖于二进制文件。

文件系统:
文件是分成两部分存放:
元数据:描述文件的属性
数据:文件的内容

    分层编址方式:

    在文件系统中,基于文件名引用文件,按名来进行文件存取。
    在文件系统中,对于文件名有一系列的规定:
        1.文件名不能包含"/"字符;
            "/":表示根文件系统;所谓根文件系统,即为Linux文件的原初起点;
            "/":表示路径的分隔符;
        2.文件名的长度不能超过255字符;
        3.在同一位置,文件名不能重复使用;
        4.文件名称严格区分大小写;

文件系统使用路径的概念标识文件的位置;所谓路径,就是定位一个文件所在的位置时,所必须经过的目录的层级结构的集合;

文件系统中的路径的描述方式:
    绝对路径:
        一切以"/"开始查找的路径;

    相对路径
        一切以"当前工作目录"开始查找的路径;
            ".":表示当前工作目录;
            "..":表示当前工作目录的父目录(上一级目录);

            因此也可以说,一切以"."或".."开始查找的路径,叫做相对路径;而且在使用"."表示当前工作目录的时候,可以省略;

    如何选择路径?选择绝对路径还是选择相对路径?
        如果在查找文件时,目标文件和当前目录不顺路,就使用绝对路径;如果顺路就使用相对路径;

        顺路指的是:当前工作目录被包含在绝对路径之中;

    家目录:
        每个用户登录系统时默认的当前工作目录;也是每个用户的起始目录;
        也称为"Home Directory"

    任何一个路径其实都是由两部分组成:
        文件的基名:
            basename
        文件的目录名:
            dirname

FHS:文件系统层级标准
bin:binary,所有用户(包括普通用户)可以执行的普通操作命令;
boot:引导操作系统启动的静态文件,包括:引导程序,Linux内核,initramfs等;
dev:device,设备
块设备:Block Device,随机访问,指的是能够实现数据存放的设备;
字符设备:Character Device,顺序访问(线性访问),指的是能够实现数据传输和数据处理功能的设备;
etc:External Text configure,存放主机中各应用程序的配置文件;
home:普通用户的默认家目录的根;
lib、lib64:Library,存放应用程序共享库的目录,内核的模块;
media:可移动设备的挂载点;
mnt:临时文件系统的挂载点;
opt:optional,可选的,以前此目录是非常流行的第三方应用程序的安装目录;
root:root用户的家目录;
run:保存一些进程的PID文件;
sbin:super binary,存放那些还有超级用户root能够执行的系统管理类的命令;
srv:存放由系统提供的服务的数据;
tmp:temporary,临时文件目录,系统每30天会自动清理该目录中的在30天以上没有访问过的文件;
usr:usually system root,Linux系统的第二根,现在主要用于安装第三方应用程序;
/usr/local:第三根,主要用于通过编译源代码的方式安装第三方应用程序;
/usr/src:存放第三方应用程序的源代码;
var:variable,变量,可变化的数据,数据库类的文件;

伪文件系统:其中存放的是内存中的数据通过操作系统映射的文件;
    proc:process,进程,
    sys:system

文件类型:
根据颜色区分文件类型:
黑色或白色:普通文本文件,regular file;
绿色:可执行文件,命令;
×××:设备文件,包括块设备和字符设备;
红色:包文件,包括:软件包,压缩包,归档包等;
深蓝色:目录文件;
青蓝色(天蓝色):符号链接文件,相当于windows系统中的快捷方式;
紫色(粉色):套接字文件;
棕色:管道文件;

根据文件类型的标记区分文件类型:
    -:普通文件;
    b:块设备文件;
    c:字符设备文件;
    d:目录文件;
    l:符号链接文件;
    p:管道文件;
    s:套接字文件;

准确的区分文件类型:
    file命令
    # file /PATH/TO/SOMEFILE

在Linux中获取命令的方法及其哲学思想

原文:http://blog.51cto.com/13487800/2120132

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!