Linux的命令使用格式
命令的语法通用格式:
# COMMAND [OPTIONS...] [ARGUMENTS...]
[]:中括号表示可选项,也就是有些命令可以不带选项和参数
<>:表示必选内容
a|b:表示a或b
{}:表示分组
...:表示可多个共存
COMMAND:表示要执行的命令
发起一命令:请求内核将某个二进制程序运行为一个进程;
程序 --> 进程
静态 --> 动态(有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用共享库文件;
多数系统程序文件都存放在:/bin,/sbin,/usr/bin,/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
63bits的库:/lib64,/usr/lib64,/usr/local/lib64
注意:并非所有的命令都有一个在某个目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe,msi,ELF(Linux)
~]# file /bin/ls 查看/bin/ls可执行程序文件的文件格式
命令分为两类:
由shell程序自带的命令:内置命令(builtin),而且通过某命令形式提供,并不能从PATH变量中找到
help 列出内部命令列表
enable cmd 启用内部命令
enable –n cmd 禁用内部命令
enable –n 查看所有禁用的内部命令
在文件系统路径下有对应的独立的可执行程序文件,文件名即命令名:外部命令,且可从PATH变量中搜寻
查看路径:which -a |--skip-alias ; whereis
shell程序是独特的程序,负责解析用户提供的命令:
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件;
~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
查找次序:自左而右
执行外部命令:
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率
hash常见用法
hash 显示hash缓存
hash –l 显示hash缓存,可作为输入使用
hash –p path name 将命令全路径path起别名为name
hash –t name 打印缓存中name的路径
hash –d name 清除name缓存
hash –r 清除缓存
查看命令类型:
type COMMAND
~]#type pwd
pwd is a shell builtin
~]#type -a echo
echo is a shell builtin
echo is /bin/echo
echo is /usr/bin/echo
OPTIONS:表示选项,用来调整指定命令执行的特性
选项有两种表现形式:
单破折号‘-’:表示短选项,一个破折号后可跟多个选项,例如:-c,-l -d = -ld
双破折号‘--’:表示长选项,只能跟一个选项,例如:--word,--human-readable
注意:有些命令选项没有破折号,短选项可以合并,长选项不能合并
注意:有些选项可以带参数,称为选项参数,选项参数中,长选项的参数会用=来等于,短选项的参数用空格隔开
ARGUMENTS:表示命令参数,是指命令生效的对象
注意:不同的命令的参数:有些命令可同时带多个参数,多个之间以空白字符分隔;
命令的使用帮助
获取命令的使用帮助
内部命令:
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:管理工具及守护进程;
9:Linux内核API;
查看man手册页
~]# man CHAPTER COMMAND
注意:并非每个COMMAND在所有章节下都有手册;
查看:
~]# whatis COMMAND 或 ~]# man –f COMMAND
注意:其执行过程是查询数据库进行的;
手动更新数据库:makewhatis | mandb
~]# makewhatis
man命令打开手册以后的操作方法:
翻屏:
空格键,^v,^f,^F:向文件尾翻一屏;
b,^b:向文件首部翻一屏;
Ctrl+d,d,^d:向文件尾部翻半屏;
Ctrl+u,u, ^u:向文件首部翻半屏;
回车键,^N, e, ^E or j or ^J:向文件尾部翻一行;
k,y or ^Y or ^P or ^K:向文件首部翻一行;
G:跳转至最后一行;
#G:跳转至指定行;
1G:跳转至文件首部;
q:退出
文本搜索:
/keyword:从文件首部向文件尾部依次查找;不区分字符大小写;
?keyword:从文件尾部向文件首部依次查找;
n:与查找命令方向相同;
N:与查找命令方向相反;
退出:
q:quit
选项:
-M /PATH/TO/SOMEDIR:到指定目录下查找命令手册并打开之;
-a:列出所有帮助
-k:搜索man手册,列出所有匹配的页面
-f:相当于wahtis
中文man需安装包man-pages-zh-CN
(3)info COMMAND
获取命令的在线文档
(4)很多应用程序会自带帮助文档:/usr/share/doc/APP-VWESION
README:程序的相关信息;
INSRALL:安装帮助;
CHANGES:版本迭代时的改动信息;
(5)主流发行版官方文档
http://www.rehat.com/doc
(6)程序官方的文档:
官方站点上的“Document”
(7)搜搜引擎
google,bing
keyword filetype:pdf
keyword site:domain.tld
...
书记的出版社:
O'Reilry
Wrox
机械工业,电子工业,人邮,清华大学,水利水电
命令执行顺序
1、 命令别名
2 、内部命令
3 、外部命令hash表
4 、外部命令$PATH
运维常用命令
关机或重启
关机:halt, poweroff
重启:reboot
-f: 强制,不调用shutdown
-p: 切断电源
关机或重启:shutdown
shutdown [OPTIONS...] [TIME] [WALL...]
-r: reboot
-h: halt
-c:cancel
[TIME]:无指定,默认相当于+1(CentOS7)
now: 立刻,相当于+0
+m: 相对时间表示法,几分钟之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
[WALL...]:所有终端都显示
日期和时间
Linux系统启动时从硬件读取日期和时间信息;读取完成后,就不再与硬件相关联;
Linux有两种时钟
系统时钟:由linux内核通过CPU的工作频率进行的
硬件时钟:主板上
相关命令:
date 显示或设置系统日期和时间
使用语法:
显示日期时间 date [OPTION]... [+FORMAT]
date +FORMAT 设置时间
FORMAT controls the output. Interpreted sequences are:
%D date; same as %m/%d/%y
%F full date; same as %Y-%m-%d
%T time; same as %H:%M:%S
%c locale's date and time (e.g., Thu Mar 3 23:05:25 2005)
%Y year
%m month (01..12)
%d day of month (e.g., 01)
%H hour (00..23)
%M minute (00..59)
%S second (00..60)
%s seconds since 1970-01-01 00:00:00 UTC
...
设置日期时间 date [-u|--utc|--universal] [MMDDhhmm[[CC]Y