获取命令使用帮助详解

Linux基础知识

命令的语法通用格式:
# COMMAND OPTIONS ARGUMENTS
发起命令:请求内核将某个二进制程序运行为一个进程:
程序 -> 进程
静态 -> 动态(有生命周期)

命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件:
多数系统程序文件都存放在:/bin,/sbin,/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

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

命令必须遵循特定格式规范:exe,msi,ELF(Linux)
~]# file /bin/ls

命令分为两类:
1. 由shell程序的自带的命令:内置命令(builtin)
2. 独立的可执行程序文件,文件名即命令名:外部命令

shell程序是独特的程序,负责解析用户提供的命令:
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件:

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

查看命令类型:

type COMMAND

OPTIONS
指定命令的运行特性:

选项有两种表现形式:
1. 短选项:-C, 例如-l,-d
注意:有些命令的选项没有-
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
2. 长选项: –word,例如–help, –human-readable
注意:长选项不能合并

注意:有些选项可以带参数,此称为选项参数

ARGUMENTS
命令的作用对象:命令对什么生效
注意:不同的命令的参数:有些命令可同时带多个参数,多个之间以空白字符分隔
例如:ls -ld /var /etc

获取命令的使用帮助:

内部命令:
help COMMAND
外部命令:
1. 命令自带简要格式的使用帮助
# COMMAND --help
2. 使用手册:manual
位置:/usr/share/man
# man COMMAND

SECTION

NAME:功能性说明
SYNOPSIS:语法格式
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR:作者
BUGS:报告程序bug的方式
SEE ALSO:参考

SYNOPSIS

[]:可选内容
<>:必须提供的内容
a|b|c:多选一
…:同类内容可出现多个

使用手册:压缩格式的文件,有章节之分:
/usr/share/man
man1,man2…

  1. 用户命令
  2. 系统调用
  3. C库调用
  4. 设备文件及特殊文件
  5. 文件格式(配置文件格式)
  6. 游戏使用帮助
  7. 杂项
  8. 管理工具及守护进程

~]# man CHAPTER COMMAND
注意:并非每个COMMAND在所有章节下都有手册
查看:
~]# whatis COMMAND
注意:其执行过程是查询数据库进行的:
手动更新数据库:
~]# makewhatis

man命令打开手册以后的操作方法:
翻屏
空格键:向文件尾部翻一屏
b:向文件首部翻一屏
Ctrl+d:向文件尾部翻半屏
Ctrl+u:向文件首部翻半屏
回车键:向文件尾部翻一行
k:向文件首部翻一行
G:跳转至最后一行
#G:跳转至指定行
1G:跳转至文件首部
文本搜索
/keyword:从文件首部向文件尾部依次查找,不区分字符大小写
?keyword:从文件尾部向文件首部依次查找

n:与查找命令方向相同
N:与查找命令方向相反
退出
q:quit
选项
-M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开

练习:获取useradd命令的用法
(1)添加用户gentoo

    # useradd gentoo
    # id gentoo //验证是否添加成功

(2)添加用户slackware,要求指定其所用的shell为/bin/tcsh

    # useradd -s /bin/tcsh slackware
    # tail -1 /etc/passwd

(3)info COMMAND

获取命令的在线文档

(4)很多应用程序会自带帮助文档

/usr/share/doc/APP-VERSION
README:程序的相关的信息
INSTALL:安装帮助
CHANGES:版本迭代时的改动信息

(5)[主流发行版官方文档](http://www.redhat.com/doc)

(6)程序官方的文档

官方站点上的“Document”

(7)搜索引擎

keyword filetype:pdf
keyword site:domain.tld

Linux文件系统初步

一、终端设备:terminal

多任务、多用户

1.物理终端/控制台(console)
2.虚拟终端(tty)

最多六个
切换:Command+Option+F[1-6]

3.图像终端

CentOS 6:
Command+Option+F7
CentOS 7:
在哪个虚拟终端启动,即位于哪个虚拟终端

4.串行终端(ttyS)
5.伪终端(pty)
题外话:Linux哲学思想之一:一切皆文件

表现之一:硬件设备也通过文件表示。
物理终端:/dev/console
虚拟终端:/dev/tty#[1,6]
串行终端:/dev/ttyS#
伪终端:/dev/pts/#

注意:在启动设备之后,在其上关联一个用户接口程序,即可实现与用户交互:
    #查看终端设备:
    ~]# tty
    #查看接口程序:
    ~]# echo $SHELL
    #启动GUI,在某一虚拟终端接口运行命令:
    startx &

二、CLI接口

命令行接口:
[root@node1 ~]# COMMAND
prompt:
  • root:当前登录用户
  • node1:当前主机的主机名
  • ~:用户当前所在的目录(current directory),也称为工作目录(working directory)。
  • # :命令提示符

    #:管理员账号,为root;用于最高权限,能执行所有操作。
    $:普通用户,非root用户;不具有管理权限,不能执行系统管理类操作。

    注意:建议使用非管理员账号登录。执行管理操作临时切换至管理员,操作完成即退回。

三、几个基础命令

tty:查看当前的终端设备
ifconfigip addr list:查看活动接口的ip地址
echo:回显
ping:探测网络的目标主机与当前主机的连通性

关机/重启命令:

#CentOS 7
~]# systemctl poweroff 
~]# systemctl reboot

#所有
~]# poweroff 
~]# reboot 

四、Stallman:

自由含义:自由学习和修改;自由使用;自由分发;自由创建衍生版

五、Linux哲学思想

  1. 一切皆文件:把几乎所有资源统统抽象为文件形式,包括硬件设备,甚至通信接口等。
  2. 由众多功能单一的程序组成:一个程序只做一件事,并且做好,组合小程序完成复杂任务。
  3. 尽量避免和用户交互。目标:易于以编程的方式实现自动化任务。
  4. 使用文本文件保存配置信息。

六、文件系统

层级结构,有索引:

/:原初起点,倒置树形结构。
/dev/pts/2
最左侧/:表示根目录
其他的/:表示路径分隔符
Linux的路径分隔符是/
Windows的是\

文件的路径表示:

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

文件名使用法则:

严格区分字符大小写;
目录也是文件,在同一路径下,两个文件不能同名;
支持使用除/以外的任意字符;
最长不能超过255个字符;

用户有家目录(home):

用户的起始目录,普通用户管理文件的位置

工作目录:

/etc/sysconfig/network-scripts/ifcfg-eno123456
basename:最右侧的文件或目录名
dirname:basename左侧的路径

# 命令:
~]# basename /PATH/TO/SOMEFILE
    SOMEFILE
~]# dirname /PATH/TO/SOMEFILE
    /PATH/TO