目录

  • 一、帮助命令

  • 1、man命令

  •  1.1、man 命令

  •  1.2、man 章节

  •   1.3、导览man手册页

  •   1.4、man 命令

  •   1.5 man 搜索

  • 2、info命令

  •   2.1  info

  •   2.2导航info页

  • 3、 通过本地文档获取帮助

  • 4、 通过在线文档获取帮助

  • 5、红帽全球技术支持服务

  • 6、 网站和搜索

  • 二、命令行历史

  • 1、重复前一个命令

  • 2、调用和搜索历史命令

  • 3、调用历史参数

  • 4、命令history的选项

  • 5、命令历史相关环境变量

  • 6、控制命令历史的记录方式

  • 7、bash 的快捷键


一、帮助命令

1、man命令

  man是manual的简写,意思为操作说明。man命令是linux下的一个帮助指令,可以用它查询指令帮助、配置帮助信息、文件帮助信息等。

1.1、man 命令

     man命令手册存放在/usr/share/man中。无论是内部命令还是外部命令,大部分命令都有帮助信息。但是有一些命令查询会有错误。

     man查询cd命令时,会指向bash的帮助页。

[root@6 /]# man cd
BASH_BUILTINS(1)                                              BASH_BUILTINS(1)
NAME
      bash,  :, ., [, alias, bg, bind, break, builtin, caller, cd, com-
      mand, compgen, complete, compopt, continue, declare,  dirs,  dis-
      own,  echo,  enable,  eval,  exec,  exit,  export, false, fc, fg,
      getopts, hash, help, history, jobs,  kill,  let,  local,  logout,
      mapfile,  popd,  printf, pushd, pwd, read, readonly, return, set,
      shift, shopt, source, suspend, test,  times,  trap,  true,  type,
      typeset, ulimit, umask, unalias, unset, wait - bash built-in com-
      mands, see bash(1)

    man 命令的配置文件:/etc/man.config | man_db.conf  

1.2、man  章节

    1:  用户命令

    2:  系统调用

    3: C 库调用

    4:  设备文件及特殊文件

    5:  配置文件格式

    6:  游戏

    7:  杂项

    8:  管理类的命令

    9 :Linux  内核API

1.3、导览man 手册页

    1.查看man 手册页

    2.SYNOPSIS 摘要:[  ] :可选内容

               <  >:  必选内容

                a|b :二选一

                ...:  同一内容可出现多次

    3.man –a keyword  列出所有帮助

    4.使用之前的whatis命令可以知道所要查询的命令在man帮助的章节,节省时间。  

     以查询ls命令为例

[root@7 ~]# whatis ls
ls (1)               - list directory contents
ls (1p)              - list directory contents
[root@7 ~]# man 1 ls
LS(1)                            User Commands                           LS(1)
NAME
      ls - list directory contents
SYNOPSIS
      ls [OPTION]... [FILE]...



1.4、man 命令

   在进入man帮助页之后,使用快速的查询命令可以事半功倍。该页面使用less 命令实现

        以下是一些快速的查询命令

        Space, ^V, ^f, ^F:  向文件尾翻屏
          b, ^B:  向文件首部翻屏
          d, ^D:  向文件尾部翻半屏
          u, ^U:  向文件首部翻半屏
          RETURN, ^N, e, ^E or j or ^J:  向文件尾部翻一行
          y or ^Y or ^P or k or ^K :向文件首部翻一行
         q:  退出
          # :跳转至第#行 行
         1G:  回到文件首部
          G :翻至文件尾部


1.5 man 搜索

     在man帮助页中,可以使用快捷查询命令。如果还嫌麻烦,或者不清楚具体的章节位置。可以使用man的搜索功能实现检索查询。

/KEYWORD:

     以 以KEYWORD指定的字符串为关键字,从当前位置向文件

尾部搜索;不区分字符大小写;

      n: 下一个

      N :上一个

?KEYWORD:

     以 以KEYWORD指定的字符串为关键字,从当前位置向文件

首部搜索;不区分字符大小写;

      n:  跟搜索命令同方向,下一个

      N :跟搜索命令反方向,上一个

class-3   帮助命令及history命令简述_Linux


2、info命令

     info命令是Linux下info格式的帮助指令。相比man更容易一些,但是内容比men要丰富。总之对新手不是很友好。再次做大致了解。

2.1  info

    1.man考 常用于命令参考 ,GNU 工具info 适合通用文档参考。

    2. 没有参数, 列出所有的页面

    3.info  页面的结构就像一个网站

    4.每一页分为“节点”

    5.前 链接节点之前 *

    6.info [ 令 命令 ]

[root@7 ~]# info ls
File: coreutils.info,  Node: uniq invocation,  Next: comm invocation,  Prev: shu\
f invocation,  Up: Operating on sorted files
7.3 'uniq': Uniquify files


2.2导航info页

    1.方向键,PgUp ,PgDn  导航

    2.Tab键 键  移动到下一个链接

    3.d 显示主题目录

    4.Home  显示主题首部

    5.Enter入 进入  选定链接

    6.n/p/u/l  进入下/ 前/ 上一层/ 最后一个链接

    7.s 字 文字  文本搜索

    8.q 出 退出 info

除了以上的man,info命令,还可以通过其他途获取帮助信息。本地文档,在线帮助,网络的搜索的等。

3、 通过本地文档获取帮助

    1. 点击“系统”-> “文档”:

提供的官方使用指南和发行注记

    2. /usr/share/doc 目录

       多数安装了的软件包的子目录, 包括了这些软件的相关原理说明

[root@7 ~]# cd /usr/share/doc
[root@7 doc]# ls
abattis-cantarell-fonts-0.0.16
abrt-2.1.11
abrt-dbus-2.1.11
accountsservice-0.6.35
acl-2.2.51
adwaita-cursor-theme-3.14.1
adwaita-icon-theme-3.14.1
aic94xx-firmware-30
alsa-firmware-1.0.28
alsa-lib-1.0.28
alsa-plugins-pulseaudio-1.0.27



4、 通过在线文档获取帮助

    1. 第三方程序官方文档

    2. 通过发行版官方的文档光盘或网站可以获得

          安装指南

          部署指南

          虚拟化指南

          红帽知识库和官方在线文档

            http://kbase.redhat.com

            http://www.redhat.com/docs

            http://access.redhat.com



class-3   帮助命令及history命令简述_基础_02


class-3   帮助命令及history命令简述_Linux_03

class-3   帮助命令及history命令简述_Linux_04

5、红帽全球技术支持服务

       1. rhn.redhat.com 或者本地卫星服务器/ 代理服务器

          基于网络管理的机器

         RHN 代理服务器为RHN 流量提供缓存

         RHN 卫星服务器提供自主的RHN

  2. RHN 账户

         为及其注册和基于网络管理的RHN 用户

         用于系统自动验证的系统ID

  3. sosreport

      收集所有系统上的日志信息的工具,并自动打成压缩包,方便技术支持人员和红帽全球支持提供分析问题的依据

6、 网站和搜索

    1. http://tldp.org

    2. http://www.slideshare.net

    3.http://www.google.com

       Openstack filetype:pdf

       rhca site:redhat.com/docs

class-3   帮助命令及history命令简述_Linux_05

二、命令行历史

     我们在linux输入的命令都会储存在系统的文件以及缓存中,可以很灵活的调用,提高我们的工作效率。

登录shell 时,会读取命令历史文件中记录下的命令~/.bash_history

     登录进shell 后新执行的命令只会记录在缓存中;这些命令会用户退时“追加”至命令历史文件中

1、重复前一个命令,有4 种方法:

重复前一个命令 使用上方向键,并回车执行。

按 !!  并回车执行。

!-1  并回车执行。

Ctrl+p 并回车执行

[root@7 ~]# ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
[root@7 ~]# !!
ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
[root@7 ~]# ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
[root@7 ~]# ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
[root@7 ~]# !-1
ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面


! 字符串: 重复前一个以“字符串”开头的命令

[root@7 ~]# !l
ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面



!num: 按照history 命令输出中的序号重复对应命令

475  ls
476  history
[root@7 ~]# !475
ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面


!? 字符串 : 重复前一个包含字符串 的命令

[root@7 ~]# !?l
ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面


!-n : 重复n 个命令之前的那个命令

2、调用和搜索历史命令

    使用up (向上)和down (向下)键来上下浏览从前输入的命令

 

   键入ctrl-r 来在命令历史中搜索命令 ((reverse-i-search ):

(reverse-i-search)`s': man issue

3、调用历史参数

     要重新调用前一个命令中最后一个参数:

     !$

     Esc, . (点击Esc击 键后松开,然后点击 .键)

     Alt+ . (按住Alt击 键的同时点击 .键)、



[root@7 ~]# ls / /root
/:
bin   dev  home  lib64  mnt  proc  run   srv  testdir  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var
/root:
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

#cmd !^ :  利用上一个命令的第一个参数做cmd 的参数

[root@7 ~]# ls !^
ls /
bin   dev  home  lib64  mnt  proc  run   srv  testdir  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp     var


#cmd !$ :  利用上一个命令的最后一个参数做cmd 的参数

[root@7 ~]# ls !$
ls /root
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面
#cmd !*  :  利用上一个命令的全部参数做cmd 的参数
[root@7 ~]# ls !*
ls / /root
/:
bin   dev  home  lib64  mnt  proc  run   srv  testdir  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var
/root:
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面


#cmd !:n :  利用上一个命令的第n 个参数做cmd 的参数

[root@7 ~]# ls !:2
ls /root
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

!n:^ 调用第n 条命令的第一个 参数

[root@7 ~]# ls !486:^
ls /
bin   dev  home  lib64  mnt  proc  run   srv  testdir  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var


!n:$  调用第n 条命令的最后一个 参数

[root@7 ~]# ls !486:$
ls /root
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

!m:n  调用第m 条命令的第n个参数

[root@7 ~]# ls !486:2
ls /root
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

!n:*  调用第n 条命令的所有参数

[root@7 ~]# ls !486:*
ls / /root
/:
bin   dev  home  lib64  mnt  proc  run   srv  testdir  usr
boot  etc  lib   media  opt  root  sbin  sys  tmp      var
/root:
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

以下参数同理

!string:^ 以 从命令历史中搜索以 string  开头的命令,并获取它的第一个 参数

!string:$ 以 从命令历史中搜索以 string  开头的命令, 并获取它的 最后一个 参数

!string:n 以 从命令历史中搜索以 string  开头的命令,并获取它的第n个 参数

!string:* 以 从命令历史中搜索以 string  开头的命令,并获取它的所有参数

4、命令history的选项

history [-c] [-d offset] [n]

history -anrw [filename]

history -ps arg [arg...]

-c:  清空命令历史

删除历史条目
   rm -f  /root/.bash_history
   history -c

-d:  删除历史中指定的命令;

[root@6 ~]# history
   97  ls /etc
  98  ls-a /etc
  99  ls -a /etc
 100  ls -a /root
 101  cat /root/.bash_history
[root@6 ~]# history -d 99
  98  ls-a /etc
  99  ls -a /root
 100  cat /root/.bash_history
 101  history help

#:  显示最近的# 条历史

[root@6 ~]# history 10
  37  init
  38  init 5
  39  ip addr
  40  history
  41  echo -e "\033[31m \033[5m *******" "\n\033[32m \033[5m  ***** \n\033[33m \033[5m   ***  \n\033[34m \033[5m    *    \033[0m"
  42  cat_history
  43  cat .bash_history
  44  history -a
  45  cat .bash_history
  46  history 10

-a: 追加本次会话新执行的命令历史列表至历史文件

[root@6 ~]# cat .bash_history    #首先查看历史文件中
..........................
./vmware-install.pl
init 3
init
init 5
ip addr
[root@6 ~]# history -a
[root@6 ~]# cat .bash_history     #再次查看历史文件,发现已经添加了几条刚执行的命令
echo -e "\033[31m \033[5m *******" "\n\033[32m \033[5m  ***** \n\033[33m \033[5m   ***  \n\033[34m \033[5m    *    \033[0m"
cat_history
cat .bash_history
history -a

-n:  读历史文件中未读过的行到历史列表

#1_6.8、2_6.8为登陆同一账号的两个终端
#1_6.8中输入若干命令,通过 -a命令保存到历史文件中。2_6.8查询历史文件命令,历史列表没有上述的命令。通过 -n命令,可以同步到2_6.8的历史列表中。


class-3   帮助命令及history命令简述_Linux_06

-r:  读历史文件附加到历史列表

[root@6 ~]# history -c
[root@6 ~]# history -r
[root@6 ~]# history
   1  2016-07-26 23:06:35history
   2  2016-07-26 23:06:44history -r
   3  2016-07-26 22:50:44cd
   4  2016-07-26 22:51:04rm -f .bash_history
   5  2016-07-26 22:51:40cat .bash_histoty
   6  2016-07-26 22:52:52ls /
   7  2016-07-26 22:53:02history -a
   8  2016-07-26 23:06:49history

-w:  保存历史列表到指定的历史文件

[root@6 ~]# history -w his
[root@6 ~]# cat his
cd
cd ..
ls
grdit /etc/gdm/customconf
gedit /etc/gdm/customconf
gedit /etc/gdm/custom.conf
ifconfig
cp /media/VMware\ Tool/ /testdir/
cp /media/VMware\ Tool /testdir/
df
cp /media/VMware/ Tool0s/ /testdir/
cp /media/VMware/ Tools/ /testdir/
cp /media/VMware\ Tools/ /testdir/
cd /testdir/

-p:  展开历史参数成多个行,但不存在历史列表中   显示字符串不保存列表

[root@6 ~]# history -p echo/  
echo/
[root@6 ~]# history -p echo/ ls/
echo/
ls/
[root@6 ~]# history
...................
  48  cat his
  49  history -p
  50  history              #历史列表中并没有保存
[root@6 ~]#

-s:  展开历史参数成一行,附加在历史列表后          附加列表不执行

[root@6 ~]# history -s rm -rf /
[root@6 ~]# history
.......................
  50  history
  51  rm -rf /
  52  history            #历史列表中存在命令,但是该命令并没有执行
[root@6 ~]#

5、命令历史相关环境变量

HISTSIZE :命令历史记录的条数;

[root@6 testdir]# echo $HISTSIZE
1000

HISTFILE :指定历史文件,默认为~/.bash_history;

 [root@6 testdir]# echo $HISTFILE
 /root/.bash_history

HISTFILESIZE :命令历史文件记录历史的条数;

[root@6 testdir]# echo $HISTFILESIZE
1000

HISTTIMEFORMAT=“%F %T“ 显示时间

HISTTIMEFORMAT="`hostname`:%F %T"
[root@6 ~]# history
   1  6.localdomain;2016-07-2709:40:06cd
   2  6.localdomain;2016-07-2709:40:06cd ..
   3  6.localdomain;2016-07-2709:40:06ls
   4  6.localdomain;2016-07-2709:40:06grdit /etc/gdm/customconf

HISTIGNORE=“str1:str2:… “  忽略string1,string2 历史

[root@6 ~]# HISTIGNORE="echo*:passwd"
[root@6 ~]# echo "red"|passwd --stdin root
更改用户 root 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@6 ~]# history 5
  76  6.localdomain;2016-07-2709:46:00HISTTIMEFORMAT="`hostname`;%F%T"
  77  6.localdomain;2016-07-2709:46:10history
  78  6.localdomain;2016-07-2709:48:10HISTIGNORE="echo*:passwd"
  79  6.localdomain;2016-07-2709:49:35history
  80  6.localdomain;2016-07-2709:51:08history 5

6、控制命令历史的记录方式:

 环境变量:HISTCONTROL

ignoredups :忽略重复的命令;连续且相同方为“重复”

[root@6 ~]# HISTCONTRO=ignoredups
[root@6 ~]# ls -d /
/
[root@6 ~]# ls -d /
/
[root@6 ~]# ls -d /
/
[root@6 ~]# ls -d /
/
[root@6 ~]# ls -d /
/
[root@6 ~]# history 5
  80  6.localdomain;2016-07-2709:51:08history 5
  81  6.localdomain;2016-07-2709:51:58history -5
  82  6.localdomain;2016-07-2709:53:56HISTCONTRO=ignoredups
  83  6.localdomain;2016-07-2709:54:04ls -d /
  84  6.localdomain;2016-07-2709:54:20history 5

[root@6 ~]# echo `date`
2016年 07月 30日 星期六 22:45:51 CST
[root@6 ~]# echo `date`
2016年 07月 30日 星期六 22:45:52 CST
[root@6 ~]# echo `date`
2016年 07月 30日 星期六 22:45:53 CST
[root@6 ~]# history 5
  597  2016-07-30 22:45:03history
  598  2016-07-30 22:45:36echo `date`
  599  2016-07-30 22:45:45history
  600  2016-07-30 22:45:51echo `date`
  601  2016-07-30 22:46:04history 5           ###可以看出重复命令保留第一条

ignorespace :忽略所有以空白开头的命令

[root@6 ~]# HISTCONTROL=ignorespace
[root@6 ~]# cd /
[root@6 /]#  ls -d /
/
[root@6 /]# cd /
[root@6 /]# cd
[root@6 ~]# history 5
  85  6.localdomain;2016-07-2709:55:47HISTCONTROL=ignorespace
  86  6.localdomain;2016-07-2709:56:01cd /
  87  6.localdomain;2016-07-2709:56:21cd /
  88  6.localdomain;2016-07-2709:56:34cd
  89  6.localdomain;2016-07-2709:56:43history 5

ignoreboth :  ignoredups & ignorespace

[root@6 ~]# HISTCONTROL=ignoreboth
[root@6 ~]# ls -d /
/
[root@6 ~]# ls -d /
/
[root@6 ~]#  ls -d /
/
[root@6 ~]#  ls -d /
/
[root@6 ~]# cd /
[root@6 /]# cd
[root@6 ~]# history 8
  87  6.localdomain;2016-07-2709:56:21cd /
  88  6.localdomain;2016-07-2709:56:34cd
  89  6.localdomain;2016-07-2709:56:43history 5
  90  6.localdomain;2016-07-2709:58:05HISTCONTROL=ignoreboth
  91  6.localdomain;2016-07-2709:59:17ls -d /
  92  6.localdomain;2016-07-2709:59:45cd /
  93  6.localdomain;2016-07-2709:59:51cd
  94  6.localdomain;2016-07-2710:00:11history 8

erasedups: 删除重复命令

[root@6 ~]# HISTCONTROL=erasedups
[root@6 ~]# ls
anaconda-ks.cfg  install.log         公共的  视频  文档  音乐
his              install.log.syslog  模板    图片  下载  桌面
[root@6 ~]# ls /
bin   dev  home  lib64       media  mnt  opt   root  selinux  sys      tmp  var
boot  etc  lib   lost+found  misc   net  proc  sbin  srv      testdir  usr
[root@6 ~]# ls /
bin   dev  home  lib64       media  mnt  opt   root  selinux  sys      tmp  var
boot  etc  lib   lost+found  misc   net  proc  sbin  srv      testdir  usr
[root@6 ~]# history 5
  83  6.localdomain;2016-07-2710:01:11history
  84  6.localdomain;2016-07-2710:02:18HISTCONTROL=erasedups
  85  6.localdomain;2016-07-2710:02:20ls
  86  6.localdomain;2016-07-2710:02:30ls /
  87  6.localdomain;2016-07-2710:02:42history 5


当需要用到两个选项,之间用:隔开即可

HISCONTROL="ignorespace:erasedups"
[root@6 ~]# HISTCONTROL=ignorespace:erasedups
[root@6 ~]# cd /
[root@6 /]#  ls -d /
/
[root@6 /]# ls -d /
/
[root@6 /]#  ls -d /
/
[root@6 /]# cd /
[root@6 /]# history 5
  82  6.localdomain;2016-07-2710:04:38HISTCONTROL=erasedups
  83  6.localdomain;2016-07-2710:05:25HISTCONTROL=ignorespace:erasedups
  84  6.localdomain;2016-07-2710:07:05ls -d /
  85  6.localdomain;2016-07-2710:07:40cd /
  86  6.localdomain;2016-07-2710:07:47history 5

7、bash 的快捷键

Ctrl+l 清屏,相当于clear 命令

Ctrl+c  取消命令的执行

Ctrl-a  会移动到命令行的最前面

Ctrl-e  会移动到命令行的最后面

arrow ctrl-b ctrl-f 会向左或向右移动一个字符

Esc-b 左移一个单词

Esc-f 右移一个单词