我们都知道,一台计算机要是没通电,和一堆废铁没什么区别。那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种:

GUI:图形用户接口。如我们平时使用的Windows  ,linux的X window,有KDE和GOME.

 

CLI:命令行接口,使用的SHELL类型有bash ,csh,tcshell,zshell等。

例如:[root@dxlcentOS ~]# commandbin

root:当前登录的用户名。

dxlcentOS:当前主机的主机名。@是一个分隔符号,把root和后面的主机名分开,

~:是当前用户所在的工作目录

#:表示为当前登录的为管理员账号root

$:表示为当前登录的为非root用户,是普通用户,不具有管理权限,不能操作系统管理类命令。

 

命令语法通用格式

# COMMAND  PTIONS  ARGUMENTS(命令作用对象)

Command:发起一个命令就是请求内核将某个二进制程序运行为一个进程。

程序由静态文件变成动态的进程,有生命周期。

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

多数系统程序文件都存放在这些目录下面:/bin, /sbin, /usr/bin, /usr/sbin,/usr/local/bin, /usr/local/sbin

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

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

命令运行时会调用许多库文件,我们称之为共享库。库是一种二进制格式文件保存在磁盘,不能单独运行。

  • 32bits的库保存目录:/lib, /usr/lib, /usr/local/lib

  • 64bits的库保存目录:/lib64, /usr/lib64, /usr/local/lib64

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

命令必须遵循特定格式规范命:如Windows的可执行文件格式是exe, msi。   Linux是ELF。

Linux命令分类

  • 内部命令:由shell程序的自带的命令:内置命令(builtin)。

例如 :~]# type cd

cd is a shell builtin

  • 外部命令:独立的可执行程序文件,文件名即命令名。

例如 ~]# type man

man is /usr/bin/man

查看命令类型:~]# type command

OPTIONS:

指定命令的运行特性;选项有两种表现形式:

  • 短选项:-C, 例如-l, -d。注意:有些命令的选项没有-;如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld。

  • 长选项:–word, 例如–help, –human-readable。注意:长选项不能合并;

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

长选项的参数通常需要用‘=’,比如–size=1G,

ARGUMENTS:

命令的作用对象;命令对什么生效;

注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;  例如:ls -ld /var /etc, cat  /tmp/1.txt  2.txt

获取命令使用帮助

内部命令获取帮助方法:help COMMAND

外部命令获取帮助方法:

(1) 命令自带简要格式的使用帮助,例如:# COMMAND –help

(2) 使用手册:manual。手册文件保存的位置:/usr/share/man。例如:# man COMMAND

执行man COMMAND后英文说明:

SECTION:

  • NAME:功能性说明

  • SYNOPSIS:语法格式

  • DESCRIPTION:描述

  • OPTIONS:选项

  • EXAMPLES:使用示例

  • AUTHOR: 作者

  • BUGS: 报告程序bug的方式

  • SEE ALSO: 参考


SYNOPSIS:

  • []:可选内容;

  • <>:必须提供的内容;

  • a|b|c:多选一;

  • 同类内容可出现多个;

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

~]# man man

-a:在所有的man帮助手册中搜索

-f:等同于whatis,显示给定关键字的简短描述信息

-P:指定内容时使用分页程序

-M:指定man手册搜索的路径

手册章节说明:

  • man1:用户命令;

  • man2:系统调用;

  • man3:C库调用;

  • man4:设备文件及特殊文件;

  • man5:文件格式;(配置文件格式)

  • man6:游戏使用帮助;

  • man7:杂项;

  • man8:管理工具及守护进行;

~]# man CHAPTER COMMAND

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

可以用whatis查看:

~]# whatis COMMAND

注意:其执行过程是查询数据库进行的;

手动更新数据库:

~]# makewhatis

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

翻屏:

  • 空格键:向文件尾翻一屏;

  • b: 向文件首部翻一屏;

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

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

  • 回车键:向文件尾部翻一行;

  • 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) 主流发行版官方文档

http://www.redhat.com/doc

(6) 下载程序官方的文档:“Document”

(7) 应用 google搜索引擎

linux目录结构

我们用过windows都知道,进入我点电脑里面会看见C,D,E等的盘符,其文件路径方式是E:\xxx\xxx\,以盘符为起点,每个盘都是独立自治的。那么linux是怎么样的呢?我看下面的一张图。

linux命令格式,获取帮助及其目录结构简要理解_第1张图片

linux的文件层级结构是一个倒置树状结构,“/”根是一切文件的起点。我们先看看文件路径。

绝对路径:以“根/”起点,你所到达的目录为终点。例如/etc/yum/vars

相对路径:以当前工作目录为起点,达到目录为终点,例如假设当前目录在etc下,要到yum目录,直接

 

linux命令格式,获取帮助及其目录结构简要理解_第2张图片

cd yum即可。

那么linux根“/”下面重要的目录和文件有哪些呢:看下:# ls  /

linux命令格式,获取帮助及其目录结构简要理解_第3张图片

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

/sbin:供系统管理使用的工具程序;只允许系统管理root执行。

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

/dev:存储特殊文件或设备文件;

设备有两种类型:字符设备(线性设备),例如键盘。块设备(随机设备),例如硬盘。

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

/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;

/root:管理员的家目录;可选;

/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块。类似windows下面的.dll文件

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

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

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

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

/media:便携式设备挂载点,例如U盘,cdrom, floppy等;

/mnt:其它文件系统的临时挂载点;一般情况下这个目录是空的,而在我们将要挂载分区时在这个目录下建立目录,再将我们将要访问的设备挂载在这个目录上,这样我们就可访问文件了。

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

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

/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;

/usr:usr Hierarchy,全局共享的只读数据路径;/usr的作用与现在的/home相同。而目前其通常被认为是 User System Resources 的缩写,其中通常是用户级的软件等,与存放系统级文件的根目录形成对比。

  • bin, sbin   多数日常应用程序存放的位置 

  • lib, lib64   系统的库文件

  • include:C程序头文件;

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

  • local:另一个层级目录;

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

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

  • /usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;

/var:/var Hierarchy,存储常发生变化的数据的目录;包括了一些数据文件,如系统日志等。

  • /var/cache     Application cache data应用程序的缓存文件

  • /var/lib          Variable state information应用程序的信息、数据。如数据库的数据等都存放在此文件夹

  • /var/local        /usr/local中程序的信息、数据

  • /var/lock        Lock files   锁文件

  • /var/log          Log files and directories日志文件

  • /var/opt         Variable data for /opt中程序的信息、数据

  • /var/run         Data relevant to running processes正在执行着的程序的信息,如PID文件应存放于此

  • /var/spool       Application spool data存放程序的假脱机数据(即spool data)

  • /var/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设备提供一种统一模型的的接口;

参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/

本文由马哥及教育学员N27_dxldeng 原创,首发于运维部落