我们都知道,一台计算机要是没通电,和一堆废铁没什么区别。那么,通电开机进入系统后,会进入交互界面,等待用户操作,人与计算机交互界面有两种:
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的文件层级结构是一个倒置树状结构,“/”根是一切文件的起点。我们先看看文件路径。
绝对路径:以“根/”起点,你所到达的目录为终点。例如/etc/yum/vars
相对路径:以当前工作目录为起点,达到目录为终点,例如假设当前目录在etc下,要到yum目录,直接
cd yum即可。
那么linux根“/”下面重要的目录和文件有哪些呢:看下:# ls /
/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 原创,首发于运维部落