linux系统如何获取帮助命令
一、命令类型及简单帮助的获取
linux系统上,基本命令分为两类,一类是内建命令,一类是外部命令.所谓内建命令,是指由linux内核自带的系统命令,而外部命令是后期一些程序软件安装后生成的一些命令.
1.可以通过type命令查看命令的类型,type的基础用法为:
type COMMAND
例如:
1.[[email protected] ~]# type cd2.cd is a shell builtin
例如:type date
1.[[email protected] ~]# type date2.date is /bin/date
2.可以通过whatis COMMAND获取命令的简单功能介绍,通过which COMMAND来获取命令的完整路径信息,whereis 来获取命令的全部路径信息
1.[[email protected] ~]# whatis date2.date (1) - print or set the system date and time3.date (1p) - write the date and time4.[[email protected] ~]# which date5./bin/date
3.通过上述方法得到命令的相关信息后,针对内部命令,可以利用help COMMAND进行简单用法的帮助获取;针对外部命令,可以利用COMMAND -help来获取命令的简单使用说明
1.[[email protected] ~]# help cd2.cd: cd [-L|-P] [dir]3. Change the shell working directory.4. #省略
1.[[email protected] ~]# date --help2.Usage: date [OPTION]... [+FORMAT]3. or: date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]4.Display the current time in the given FORMAT, or set the system date.5.#省略
二、man和info的使用
通过第一步分对命令的简单用法和简单说明信息的了解后,基本知道了一个命令的简单功能和简单的使用方法,那么对于外部命令的详细的使用方法以及完整性的说明信息就得借助man来进一步了解
man是一种格式化输出相关帮助手册信息的工具,通过man帮助,我们可以了解到外部命令的详细说明信息,使用信息等等一些详细的说明,当然,man的功能不仅仅是输出命令的帮助信息,对于一些配置文件的信息,我们也可以通过man来获取详细的帮助,具体man的功能按章节可以分为几部分:
1:用户命令的帮助信息章节
2:系统调用的帮助信息章节
3:C库调用的帮助信息章节
4:设备文件及特殊文件的帮助信息章节
5:配置文件的帮助信息章节
6:游戏的帮助信息章节
7:杂项
8:管理类命令的帮助信息章节
9:Linux内核API的帮助信息章节
针对初期学习过程中,我们主要关注1、5、8章节的相关信息即可
如何使用man来获取外部命令帮助,针对上述的已知的命令,我们可以利用whereis获取到该命令的相关章节之后直接man [章节号] COMMAND来进行相关命令的帮助信息获取
例如:
1.[[email protected] ~]# man date2.DATE(1) User Commands DATE(1)3.4.NAME5. date - print or set the system date and time6.7.SYNOPSIS8. date [OPTION]... [+FORMAT]9. date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]10.#省略
通过查看该详情页,即可获得到命令的完整性用法
针对配置文件的帮助,可以利用man 5 FILENAME即可获取配置文件的相关帮助信息
例如:查看fstab配置文件的帮助信息
1.[[email protected] ~]# man 5 fstab2.FSTAB(5) Linux Programmer’s Manual FSTAB(5)3.4.NAME5. fstab - static information about the filesystems6.7.SYNOPSIS8. #include <fstab.h>9. #省略
通过查看详细的信息即可获取到配置文件的相关语法说明和介绍
man在使用过程中的一些方法和技巧:
man实际是调用less来进行文本的读取的
可利用:
空格键 进行向后翻一页
b键 向前翻一页
d键 向后翻半页
u键 向前翻半页
# 跳转至指定的第#行
1G 跳转到文件首部
G 跳转到文件尾部
/STRING 以指定的字符搜索全文,搜索到后,可利用n键跳转到下一个匹配到的位置,N键跳转到上一个匹配到的位置
q键 退出man手册页
3、其他获取帮助途径介绍
除了上述基础的一些获取命令帮助的途径和man的方式进行帮助获取外,还可以利用一个额外的帮助渠道进行命令或其他信息的获取
1、info页面
2、本地文档/usr/share/doc/目录里面有关于一些软件的相关说明信息
3、在线文档获取帮助,可到一些程序的官方站点的知识库或者获取软件的官方说明文档进行帮助的获取
4、利用搜索引擎进行搜索
三、history命令历史详解
1、history语法:
history [-c] [-d 偏移量] [n]
或history -anrw [文件名]
或history -ps [参数]
选项:
-c 表示删除所有历史命令
-d 数字 表示删除指定的第多少条命令
-w 将当前内存中保留的命令历史,保存到历史命令文件中
-r 将历史命令文件中的内容,读取到内存中
例如:
1.history -d 5 #表示删除第5条命令2.history -d 5 10 #表示删除从第5条命令开始的往后的第10条命令3.history -c #表示清空所有的历史命令4.history 10 #表示显示最近的10条历史命令
2、有关history命令配置文件和环境变量:
关于history命令的配置文件可定义在:
全局配置文件/etc/profile #全局生效,对所有用户都有效
局部配置文件~.bash_profile #局部生效,只对定义在该用户家目录下的用户有效
~.bash_history记录了该用户使用过的历史命令
history命令的一些环节变量:
HISTSIZE:shell进程可保留的命令历史的条数
HISTFILE:持久保存历史命令的文件
HISTFILESIZE:命令历史文件的大小
HISTCONTROL:控制历史命令记录方式的环境变量,其取值可以有4个:
默认为ignoredups
ignoredups:忽略重复且相邻的历史命令
ignorespace:忽略以空格开头的命令
ignoreboth:以上两个同时生效
erasedups:去除重复的命令
多个取值之间可以用:分割
HISTTIMEFORMAT=”%F%T”可以以指定时间显示格式,显示历史命令的执行时间
HISTIGNORE=”STRING1 : STRING2…”表示不记录相应的命令的历史
修改变量的值直接HISTOCNTROL=’ignoreboth’ 立即生效,但退出后失效,要永久有效,写入配置文件
例如 HISTTIMEFORMAT=”hostname %F%T”
例如:HISTIGNORE=”passwd : echo”不记录passwd命令和echo命令,但是例如echo 111 这样的还是会记录,要想不记录要写成这样:
HISTIGNORE=”passwd : echo*”
3.有关history命令常用的快捷键:
调用命令历史中的命令:
! 数字 再次执行命令历史中的第几条命令
! ! 再次执行上一次执行的命令
! STRING 再次执行历史命令中最近一个以STRING开头的命令
! ? STRING 执行最近一条命令中包含关键字的命令
! -1 表示执行倒数第一条命令
ctrl +r 搜索历史命令关键字
ctrl + P 执行最后一条历史命令
调用历史命令中的参数:
ESC . 执行最后一条命令中的最后一条参数
! $ 直接执行最后一条命令的最后一个参数
! ^ 直接执行最后一条命令的第一个参数
! : # 直接执行最后一条命令的第#个参数
! 直接执行最后一条命令的全部参数
! n : $ 直接执行第n条历史命令的最后一个参数
! n : ^ 直接执行第n条历史命令的第一个参数
! n : # 直接执行第n条历史命令的第#个参数
! n : * 直接执行第n条历史命令的全部参数
! STING:^ 从历史命令中搜索以STRING开头的命令,并获取其中第一个参数
! STRING:$ 从历史命令中搜索以STRING开头的命令,并获取其最后一个参数
! STING:n 从历史命令中搜索以STRING开头的命令,并获取其第n个参数
! STING:* 从历史命令中搜索以STRING开头的命令,并获取其中所有参数
四、课后练习
1、只显示/boot目录下的隐藏文件
1.[[email protected] boot]# ll -d .*2.dr-xr-xr-x. 5 root root 1024 Jul 19 18:25 .3.dr-xr-xr-x. 27 root root 4096 Dec 4 14:52 ..4.-rw-r--r--. 1 root root 166 May 11 2016 .vmlinuz-2.6.32-642.el6.x86_64.hmac
1.[[email protected] boot]# ls -a /boot |grep "^\..*" 2..3...4..vmlinuz-2.6.32-642.el6.x86_64.hmac
2、只显示/boot目录下的目录列表
1. [[email protected] boot]# ll /boot | grep "^d.*"2.drwxr-xr-x. 3 root root 1024 Jul 19 18:23 efi3.drwxr-xr-x. 2 root root 1024 Jul 19 18:26 grub4.drwx------. 2 root root 12288 Jul 19 18:05 lost+found