Linux平台及应用
潘小玲 郑国华 丁敏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

几种提高工作效率的方法

发布时间:2020-03-14 21:39   发布人:潘小玲   浏览次数:386

2、几种提高工作效率的方法

1)自动补全命令行

为了减少键盘输入次数,bash提供了命令行自动补全功能,随时按下(Tab) 键,bash就能判断出用户所要自动补全的对象。可以自动补全的对象是:

Ø  命令名(包括命令别名、Shell函数名)

Ø  Shell变量(bash 将以$开头的补全对象视为Shell变量)

Ø  用户名(bash将以~开头的补全对象视为用户名,并解析为用户的家目录)

Ø  主机名(bash将以@开头的补全对象视为主机名,并从/etc/hosts中查找补全对象)

下面给出一些命令行补全的例子。

操作步骤2.3命令行补全的例子

$ ls<tab><tab> //连续输入两个(Tab) 键,可列出所有以字母ls开头的命令

ls        lsblk     lscpu     lsipc     lslogins  lsmd      lsmod     lsof      lsscsi    lsusb      lsattr    lscgroup  lsinitrd  lslocks   lsmcli    lsmem     lsns      lspci     lssubsys  lsusb.py

 

$lsb<tab> //再输入一个字母b,按<Tab>

$ lsblk //由于以lsb开头的命令只此一个, 此时便补全了命令

NAME            MAJ:MIN   RM  SIZE  RO  TYPE MOUNTPOINT

sda                8:0          0   20G   0     disk

├─sda1           8:1          0    1G   0     part /boot

└─sda2           8:2          0   19G   0     part

  ├─cl-root     253:0          0   17G   0     lvm  /

  └─cl-swap    253:1          0    2G   0     lvm  [SWAP]

sr0               11:0          1 1024M   0     rom

 

$ls -d D*

Desktop  Documents  Downloads

 

$ ls D<tab><tab>//连续输入两个(Tab)键可列出所有以字母D开头的文件名

Desktop/   Documents/ Downloads/

 

$ ls De<tab> //再输入一个字母E,(Tab)

$ ls Desktop/   //由于当前目录下以De开头的文件只此一个,此时便补全了文件名

Myfile1  Myfile2

 

$echo $H<tab><tab> //连续输入两个(Tab) 键可列出所有以字母H开头的变量名

$HISTCMD        $HISTFILESIZE   $HOSTNAME

$HISTCONTROL   $HISTSIZE        $HOSTTYPE

$HISTFILE        $HOME

2)命令历史

bash可以记录一定数目的以前在Shell中输入的命令。可以记录历史命令的数目由环境变量HISTSIZE的值指定。记录历史命令的文本文件由环境变量HISTFILE来指定,默认的记录文件是.bash_ history, 这是一个隐含文件,位于用户的宿主目录下。

仅将先前的命令存在历史文件里是没有用的,将历史命令记录后,用户如何使用它们呢?有如下几种方式:

Ø  最简单的方法是用上下方向键、<PgUp><PgDn>键来查看历史命令。

Ø  如果需要可以使用键盘上的编辑功能键对显示在命令行上的命令进行编辑。

Ø  history命令来显示和编辑历史命令。

Ø  !<命令事件号>执行已经运行过的命令。

Ø  !<已经使用过的命令前面的部分>执行已经运行过的命令。

下面给出一个使用命令历史操作的例子。

操作步骤2.4 使用命令历史的例子

  #history

  ……

  310  ls

  311  cd /localhost

  312  cd localhost

  313  ls -d D*

  314  ls Desktop/

  315  cd Desktop

  316  touch Myfile1 Myfile2

  317  cd ..

  318  ls Desktop/

  319  echo $H

  320  history

  #

  //执行命令历史中编号为310的命令

  # !310

ls

Desktop    Downloads  Pictures  Templates

Documents  Music      Public    Videos

 

//执行最近一次执行的命令

# !!

ls

Desktop    Downloads  Pictures  Templates

Documents  Music      Public    Videos

  

  //执行命令历史中最近一次以e开头的命令

  # !e

echo $H

 

3)命令别名

命令别名是bash 提供的另一个使用户的工作变得轻松的方法。命令别名通常是其他命令的缩写,用来减少键盘输入。同时也允许用户为命令另外取-一个 自己习惯使用的名字。

可以使用alias命令来达到上述目的。命令格式为:

    alias [alias_name=original_command]

其中alias_name是用户给命令取的别名,original_command是原来的命令和参数。不使用任何参数来使用alias命令,将显示当前的别名和其对应的原始命令。下面给出几个使用命令别名操作的例子。

操作步骤2.5 使用命令别名的例子

 //1.显示当前已定义的别名

  # alias

alias cp='cp -i'

alias egrep='egrep --color=auto'

alias fgrep='fgrep --color=auto'

alias grep='grep --color=auto'

alias l.='ls -d .* --color=auto'

alias ll='ls -l --color=auto'

alias ls='ls --color=auto'

alias mv='mv -i'

alias rm='rm -i'

alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

 

 //2.定义自己的别名

  # alias nload='nload -u H -U H -t 2000 -i 20180'

# alias tailf='tail -f'

# alias ping='ping -c 4'

# alias type=cat

# alias cls='clear'

 

//当用户要取消别名的定义时使用unalias命令

#unalias type

 

注意:

1.在定义别名时,等号两边不允许有空格存在,否则bash将不能确定用户的意图。若命令中包含空格或其他的特殊字符串则必须使用引号。

2.若系统中有一个命令,同时又定义了一个与之同名的别名(例如,系统中有ls命令,且又定义了ls的别名),则别名将优先于系统中原有命令的执行。要想临时使用系统中的命令而非别名,应该在命令前添加转义符“\”, 例如,\ls命令将运行系统中原来的ls命令而不是ls别名,它不区分文件类型和颜色。

3.如果用户需要别名的定义在每次登录时均有效,应该将其写入用户私有目录下的.bashrc文件中。