一、Linux的命令
(一)、概念和意义:
发起一个命令:请求内核将某个二进制程序运行为一个进程;
程序 –> 进程
静态 –> 动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
多数系统程序文件存放目录:
普通命令:/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
注意:并非所有的命令都有一个在某目录与之对应的可执行程序文件
(二)、遵循特定格式规范:
exe, msi, ELF(Linux)
~]# file /bin/ls
查看命令规范
(二)、分类
(1):由shell程序的自带的命令:内置命令(builtin)
shell程序是独特的程序,负责解析用户提供的命令
解析流程:从环境变量PATH存储的目录中自左往右寻找执行的命令对应的二进制程序,并调用之。
环境变量PATH的查看方法:
~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:自左而右;
(2):独立的可执行程序文件,文件名即命令名:外部命令
查看命令类型:
type COMMAND
(三)、书写格式或者是使用方法
# COMMAND OPTIONS ARGUMENTS
COMMAND:
执行命令的名称
OPTIONS:
(1) 指定命令的运行特性:
比如命令执行需要返回的那些参数等等,不同的命令有不同的特性区分。
(2) 表现形式:
短选项:-C, 例如-l, -d
注意:有些命令的选项没有-;
如果同一命令同时使用多个短选项,多数可合并:-l -d = -ld
长选项:–word, 例如–help, –human-readable
注意:长选项不能合并;
注意:有些选项可以带参数,此称为选项参数;
ARGUMENTS:
命令的作用对象;命令对什么生效;一般为文件、数据等
注意:不同的命令的参数;有些命令可同时带多个参数,多个之间以空白字符分隔;
二、获取某个命令的使用帮助
内部命令和外部命令不同:
(一)、内部命令
help COMMAND
(二)、外部命令
(1) 命令自带简要格式的使用帮助
# COMMAND –help
(2) 使用手册:manual
位置:/usr/share/man
# man COMMAND
打开某个命令手册后的使用介绍:
NAME:功能性说明
SYNOPSIS:语法格式
[]:可选内容;
<>:必须提供的内容;
a|b|c:多选一;
…:同类内容可出现多个;
DESCRIPTION:描述
OPTIONS:选项
EXAMPLES:使用示例
AUTHOR: 作者
BUGS: 报告程序bug的方式
SEE ALSO: 参考
…
使用手册:手册是压缩格式的文件,里面章节之分;
/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:到指定目录下查找命令手册并打开之;
(3) info COMMAND
获取命令的在线文档;
(4) 很多应用程序会自带帮助文档:/usr/share/doc/APP-VERSION
README:程序的相关的信息;
INSTALL: 安装帮助;
CHANGES:版本迭代时的改动信息;
(5) 主流发行版官方文档
(6) 程序官方的文档:
官方站点上的“Document”
(7) 搜索引擎
keyword filetype:pdf
keyword site:domain.tld
三、Linux文件系统
(一)、概念
文件系统是Linux中有索引的层级结构的一张倒叉树结构。
原始起点为/,称为根目录。
(二)、分类
(1) 目录:路径映射
路径表示方法分类两种:
[1]:相对路径
[2]:决定路径
(1) 文件:存储空间存储的一段流式数据,对数据可以做到按名存取
(三)、Linux目录规范
FHS(Filesystem Hierarchy Standard)
/bin:所有用户可用的基本命令程序文件;
/sbin:供系统管理使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel, initramfs(initrd), grub等;
/dev:存储特殊文件或设备文件;
设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的配置文件,只能为静态;
/home:普通的家目录的集中位置;一般每个普通用户的家目录默认为此目录下与用户名同名的子目录,/home/USERNAME;
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin, /sbin等)提供共享库,以及为内核提供内核模块
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom, floppy等;
/mnt:其它文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径;
/srv:当前主机为服务提供的数据;
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:usr Hierarchy,全局共享的只读数据路径;
bin, sbin
lib, lib64
include:C程序头文件;
share:命令手册页和自带文档等架构特有的文件的存储位置
local:另一个层级目录;
X11R6:X-Window程序的安装位置
src:程序源码文件的存储位置
/usr/local:Local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var Hierarchy,存储常发生变化的数据的目录;
cache Application cache data
lib Variable state information
local Variable data for /usr/local
lock Lock files
log Log files and directories
opt Variable data for /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设备提供一种统一模型的的接口;
参考:https://www.ibm.com/developerworks/cn/linux/l-cn-sysfs/
(四)、Linux文件类型
[1]、- 常规文件即f(file)
[2]、d directory,目录文件;
[3]、b block device,块设备文件,支持以“block”为单位进行随机访问
[4]、c character device,字符设备文件,支持以“character”为单位进行线性访问
major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
minor number:次设备号,用于标识同一类型中的不同的设备;
8位二进制:0-255
[5]、l symbolic link,符号链接文件;
[6]、p pipe,命名管道;
[7]、s socket,套接字文件;
(五)、文件名(目录也属于文件的一种)使用法则:
[1]、严格区分字符大小写:file1, File1, FILE1
[2]、目录也是文件,在同一路径下,两个文件不能同名;
[3]、支持使用除/以外的任意字符【但是不推荐使用特殊字符】
[4]、最长不能超过255个字符;
原创文章,作者:小江,如若转载,请注明出处:http://www.178linux.com/34856