【美高梅手机版4858】命令补全和小名,Linux小技巧之history命令用法15例

By admin in 美高梅手机版4858 on 2019年3月28日

ls –help  协理文书档案

五周第3回课(2月7日)
8.1 shell介绍
8.2 命令历史
8.3 命令补全和外号
8.4 通配符
8.5 输入输出重定向

比方你时常应用 Linux 命令行,那么使用
history(历史)命令能够使得地升级你的频率。本文将通超过实际例的法门向您介绍
history 命令的 15 个用法。
行使 HISTTIMEFO卡宴MAT 显示时间戳
当您从命令行执行 history
命令后,经常只会来得已执行命令的序号和下令自个儿。倘诺您想要查看命令历史的光阴戳,那么能够进行:
# export HISTTIMEFORMAT=%F %T
# history | more
1 2008-08-05 19:02:39 service network restart
2 2008-08-05 19:02:39 exit
3 2008-08-05 19:02:39 id
4 2008-08-05 19:02:39 cat /etc/redhat-release
采纳 Ctrl+Tiggo 搜索历史
Ctrl+宝马7系是自身日常使用的一个急迅键。此飞速键让您对命令历史举办搜寻,对于想要重复执行有些命令的时候非凡实惠。当找到命令后,日常再按回车键就足以实施该命令。假设想对找到的命令进行调整后再履行,则足以按一下左或右手向键。
# [Press Ctrl+R from the command prompt, which will display the
reverse-i-search prompt]
(reverse-i-search)`red‘: cat /etc/redhat-release
[Note: Press enter when you see your command, which will execute the
command from the history]
# cat /etc/redhat-release
Fedora release 9 (Sulphur)
敏捷重复执行上一条命令
有 4 种方法能够重新执行上一条命令:
运用上方向键,并回车执行。
按 !! 并回车执行。
输入 !-1 并回车执行。
按 Ctrl+P 并回车执行。
从命令历史中履行二个点名的指令
在底下的例子中,假使你想重新执行第 4 条命令,那么能够实施 !4:
# history | more
1 service network restart
2 exit
3 id
4 cat /etc/redhat-release
# !4
cat /etc/redhat-release
Fedora release 9 (Sulphur)
透过点名关键字来施行从前的授命
在底下的事例,输入 !ps 并回车,将实施以 ps 打头的通令:
# !ps
ps aux | grep yp
root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind
root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp
选择 HISTSIZE 控制历史命令记录的总店数
将上面两行内容充实到 .bash_profile 文件同等对待新登录 bash
shell,命令历史的记录数将成为 450 条:
# vi ~/.bash_profile
HISTSIZE=450
HISTFILESIZE=450
利用 HISTFILE 更改历史文件名称
暗中同意处境下,命令历史存储在 ~/.bash_history 文件中。添加下列内容到
.bash_profile 文件仁同一视新登录 bash shell,将选用 .commandline_warrior
来囤积命令历史:
# vi ~/.bash_profile
HISTFILE=/root/.commandline_warrior
采用 HISTCONTROL 从命令历史中去除接二连三重复的条规
在底下的事例中,pwd 命令被连接进行了二回。执行 history
后您会看到三条重复的条款。要去除这几个再一次的条款,你能够将 HISTCONTROL
设置为 ignoredups:
# pwd
# pwd
# pwd
# history | tail -4
44 pwd
45 pwd
46 pwd [Note that there are three pwd commands in history, after
executing pwd 3 times as shown above]
47 history | tail -4
# export HISTCONTROL=ignoredups
# pwd
# pwd
# pwd
# history | tail -3
56 export HISTCONTROL=ignoredups
57 pwd [Note that there is only one pwd command in the history, even
after executing pwd 3 times as shown above]
58 history | tail -4
运用 HISTCONTROL 清除整个命令历史中的重复条目
上例中的 ignoredups
只可以剔除两次三番的双重条目。要去掉整个命令历史中的重复条目,能够将
HISTCONTROL 设置成 erasedups:
# export HISTCONTROL=erasedups
# pwd
# service httpd stop
# history | tail -3
38 pwd
39 service httpd stop
40 history | tail -3
# ls -ltr
# service httpd stop
# history | tail -6
35 export HISTCONTROL=erasedups
36 pwd
37 history | tail -3
38 ls -ltr
39 service httpd stop
[Note that the previous service httpd stop after pwd got erased]
40 history | tail -6
动用 HISTCONTROL 强制 history 不记住特定的授命
将 HISTCONTROL 设置为
ignorespace,并在不想被铭记的命令前面输入三个空格:
# export HISTCONTROL=ignorespace # ls -ltr # pwd # service httpd
stop [Note that there is a space at the beginning of service, to ignore
this command from history] # history | tail -3 67 ls -ltr 68 pwd 69
history | tail -3
动用 -c 选项清除全数的吩咐历史
假设你想排除全体的指令历史,能够实施:
# history -c
一声令下替换
在底下的例子里,!!:$ 将为日前的指令获得上一条命令的参数:
# ls anaconda-ks.cfg
anaconda-ks.cfg
# vi !!:$
vi anaconda-ks.cfg
下例中,!^ 从上一条命令获得第贰项参数:
# cp anaconda-ks.cfg anaconda-ks.cfg.bak
anaconda-ks.cfg
# vi -5 !^
vi anaconda-ks.cfg
为特定的指令替换钦赐的参数
在底下的例子,!cp:2 从命令历史中追寻以 cp
伊始的命令,并获得它的第①项参数:
# cp ~/longname.txt /really/a/very/long/path/long-filename.txt
# ls -l !cp:2
ls -l /really/a/very/long/path/long-filename.txt
下例里,!cp:$ 获取 cp 命令的最后一项参数:
# ls -l !cp:$
ls -l /really/a/very/long/path/long-filename.txt
使用 HISTSIZE 禁用 history
一旦您想禁用 history,可以将 HISTSIZE 设置为 0:
# export HISTSIZE=0
# history
# [Note that history did not display anything]
选取 HISTIGNORE 忽略历史中的特定命令
上边包车型大巴例证,将忽略 pwd、ls、ls -ltr 等一声令下:
# export HISTIGNORE=”pwd:ls:ls -ltr:”
# pwd
# ls
# ls -ltr
# service httpd stop
# history | tail -3
79 export HISTIGNORE=”pwd:ls:ls -ltr:”
80 service httpd stop
81 history
[Note that history did not record pwd, ls and ls -ltr]

Linux小技巧之history命令用法15例

man ls    手册(manual)

history命令:

用于呈现钦赐数量的授命命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

Linux 命令行,那么使用
history(历史)命令可以使得地升级你的效用。本文将通超过实际例的主意向您介绍
history 命令的 15 个用…

 

B  上翻   F  下翻

该命令独立接纳时,仅突显历史命令,在指令行中,能够采用标志!执行钦点序号的历史命令。例如,要执行第③个历史命令,则输入!2。

用作Linux系统工程师,在条分缕析系统的平安或故障难点时,平日会利用history(历史)命令查看系统的历史操作记录,那篇小说将由此实例的章程向你介绍history命令相关的十五个小技巧……

Tab 自动补全

历史命令是被保存在内部存款和储蓄器中的,当退出也许登录shell时,会活动保存或读取。在内部存储器中,历史命令仅能够存款和储蓄一千条历史命令,该多少是由环境变量HISTSIZE举办控制。

 

cat 查看文件里的内容

语法
history(选项)(参数)
选项
-c:清空当前正史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前正史命令缓冲区;
-w:将近期历史命令缓冲区命令写入历史命令文件中。
参数
n:打字与印刷近期的n条历史命令。

  1. 运用 HISTTIMEFO翼虎MAT 突显时间戳

history 历史命令

实例
应用history命令呈现近日使用的10条历史命令,输入如下命令:

当你从命令行执行 history
命令后,经常只会议及展览示已执行命令的序号和指令自身。假使您想要查看命令历史的小时戳,那么能够推行:

!+号 执行历史命令

[root@localhost ~]# history
10

92 ls
93 cd ..
【美高梅手机版4858】命令补全和小名,Linux小技巧之history命令用法15例。 94 ls
95 exit
96 ls -a
97 cd .ssh/
98 ls
99 cat known_hosts
100 exit
101 history 10

 

上下键能够动用历史命令

 

# export HISTTIMEFORMAT=’%F %T ‘

 

# history | more

[BEGIN] 2018/1/10 21:11:47
Last login: Wed Jan 10 21:08:11
2018

[root@localhost ~]# yum list |grep
zsh

autojump-zsh.noarch 22.3.0-3.el7 epel
zsh.x86_64 5.0.2-28.el7 base
zsh-html.x86_64 5.0.2-28.el7 base
zsh-lovers.noarch 0.9.0-1.el7 epel
[root@localhost ~]# yum list |grep
ksh

ksh.x86_64 20120801-34.el7 base
mksh.x86_64 46-5.el7 base
python-XStatic-Rickshaw.noarch
1.5.0.0-4.el7 epel

python-moksha-common.noarch 1.2.3-2.el7
epel

python-moksha-hub.noarch 1.5.3-2.el7
epel

python-moksha-wsgi.noarch 1.2.2-2.el7
epel

[root@localhost ~]# ls
/root/.bash_history

/root/.bash_history
[root@localhost ~]# cat !$
cat /root/.bash_history
ls -l
chown :root /tmp/admin2
ls -l
chown-R root :root
/tmp/admin2

chown -R root :root
/tmp/admin2

chown -R root:root
/tmp/admin2

ls -l
mv CentOS7-Base-163.repo
CentOS7-Base-163.repo.123

yum clean all
yum repolist all
yum install zsh
mv CentOS7-Base-163.repo.123
CentOS7-Base-163.repo

yum repolist all
yum clean all
yum install zsh
yum install -y wget
ls
yum install -y epel-release
ls
yum list
yum list |grep epel
yum install zsh
–downloadonly

ls /
ls
/var/cache/yum/x86_64/7/updates/packages/

ls
/var/cache/yum/x86_64/7/base/packages/

yum install zsh –downloadonly
–downloaddir=/tmp/

ls /tmp/
yum install vim-enhanced –downloadonly
–downloaddir=/tmp/

yum reinstall vim-enhanced
–downloadonly –downloaddir=/tmp/

ls /tmp/
cd
cd /usr/local/src/
ls
wget

wget

wget
wget

ls
tar -zxvf httpd-2.2.34.tar.gz
ls
cd httpd-2.2.34
ls
more README
./configure
–prefix=/usr/local/apache2

echo $?
yum install gcc
./configure
–prefix=/usr/local/apache2

echo $?
make
echo $?
make install
echo $?
ls
ls /usr/local/apache2/
ip add
init 0
[root@localhost ~]#
history

3 ls -l
4 chown-R root :root
/tmp/admin2

5 chown -R root :root
/tmp/admin2

6 chown -R root:root
/tmp/admin2

7 ls -l
8 touch 11.txt
9 ls -l 11.txt
10 mkdir 123
11 ls -ld 123
12 umask
13 umask 002
14 touch 21.txt
15 ls -l 21.txt

1 2008-08-05 19:02:39 service network restart

990 make
991 echo $?
992 make install
993 echo $?
994 ls
995 ls /usr/local/apache2/
996 ip add
997 init 0
998 yum list |grep zsh
999 yum list |grep ksh
1000 ls /root/.bash_history
1001 cat
/root/.bash_history

1002 history
[root@localhost ~]# echo
$HISTSIZE

1000
[root@localhost ~]# vi
/etc/profile

[root@localhost ~]# echo
$HISTSIZE

1000
[root@localhost ~]# source
/etc/profile

[root@localhost ~]# echo
$HISTSIZE

10000
[root@localhost ~]#
history

7 ls -l
8 touch 11.txt
9 ls -l 11.txt
10 mkdir 123
11 ls -ld 123
12 umask
13 umask 002
14 touch 21.txt
15 ls -l 21.txt
16 mkdir 332
17 ls -ld 332
18 umask 003
19 umask
20 ls
21 touch 1.txt
22 ls -l
23 ls -l
24 chattr +i 1.txt
25 vi 1.txt
26 head -n2 /etc/passwd > 1

2 2008-08-05 19:02:39 exit

1000 ls /root/.bash_history
1001 cat
/root/.bash_history

1002 history
1003 echo $HISTSIZE
1004 vi /etc/profile
1005 echo $HISTSIZE
1006 source /etc/profile
1007 echo $HISTSIZE
1008 history
[root@localhost ~]# vim
/etc/profile

[root@localhost ~]# source
/etc/profile

[root@localhost ~]# chattr +a
~/.bash_history

[root@localhost ~]# yum install -y
bash-completion

已加载插件:fastestmirror
base | 3.6 kB 00:00:00
epel/x86_64/metalink | 7.2 kB 00:00:00
epel | 4.7 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/2): epel/x86_64/updateinfo | 868 kB
00:00:00

(2/2): epel/x86_64/primary_db | 6.2 MB
00:00:01

Loading mirror speeds from cached
hostfile

* epel: mirrors.sohu.com
正在化解依赖关系
–> 正在检查作业
—> 软件包
bash-completion.noarch.1.2.1-6.el7 将被 安装

–> 化解注重关系完毕

3 2008-08-05 19:02:39 id

正视关系消除

4 2008-08-05 19:02:39 cat /etc/redhat-release

================================================================================================
Package 架构 版本 源 大小
================================================================================================
正在装置:
bash-completion noarch 1:2.1-6.el7 base
85 k

 

政工概要
================================================================================================
安装 1 软件包

留意:那个效应只可以用在当 HISTTIMEFO奥迪Q3MAT
这么些环境变量棉被服装置之后,之后的那一个新实施的 bash
命令才会被打上正确的时光戳。以前的拥有命令,都将会显得成设置
HISTTIMEFORMAT 变量的大运。

总下载量:85 k
设置大小:259 k
Downloading packages:
bash-completion-2.1-6.el7.noarch.rpm |
85 kB 00:00:00

Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 :
1:bash-completion-2.1-6.el7.noarch 1/1

验证中 :
1:bash-completion-2.1-6.el7.noarch 1/1

 

已安装:
bash-completion.noarch 1:2.1-6.el7

  1. 行使 Ctrl+汉兰达 搜索历史

完毕!
[root@localhost ~]# exit
登出

Ctrl+LAND是自己平常使用的多个火速键。此急速键让你对命令历史进行搜寻,对于想要重复执行某些命令的时候卓殊实惠。当找到命令后,平时再按回车键就足以实施该命令。借使想对找到的命令实行调整后再履行,则足以按一下左或右手向键。

[BEGIN] 2018/1/10 22:13:22
Last login: Wed Jan 10 21:11:32 2018
from 192.168.183.1

[root@localhost ~]#
history

1 2018/01/10 22:13:22ls -l
2 2018/01/10 22:13:22chown :root
/tmp/admin2

3 2018/01/10 22:13:22ls -l
4 2018/01/10 22:13:22chown-R root :root
/tmp/admin2

5 2018/01/10 22:13:22chown -R root
:root /tmp/admin2

6 2018/01/10 22:13:22chown -R root:root
/tmp/admin2

7 2018/01/10 22:13:22ls -l

 

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’

]0;root@localhost:~[root@localhost
~]#

# [Press Ctrl+R from the command prompt, which will display the
reverse-i-search prompt]

 

(reverse-i-search)`red‘: cat /etc/redhat-release

美高梅手机版4858 1

[Note: Press enter when you see your command, which will execute the
command from the history]

 

# cat /etc/redhat-release

美高梅手机版4858 2

Fedora release 9 (Sulphur)

 

 

 

  1. 迅猛重复执行上一条命令

美高梅手机版4858 3

有4种方法能够再一次执行上一条命令:

 

 

美高梅手机版4858 4

利用上方向键,并回车执行。

 

按 !! 并回车执行。

美高梅手机版4858 5

输入 !-1 并回车执行。

 

按 Ctrl+P 并回车执行。

 

  1. 从命令历史中实行贰个点名的下令

 

在底下的事例中,假设您想再也执行第 4 条命令,那么能够进行 !4:

 

# history | more

1 service network restart

2 exit

3 id

4 cat /etc/redhat-release

# !4

cat /etc/redhat-release

Fedora release 9 (Sulphur)

 

  1. 因此点名关键字来举办此前的命令

在底下的例子,输入 !ps 并回车,将进行以 ps 打头的一声令下:

 

# !ps

ps aux | grep yp

root 16947 0.0 0.1 36516 1264 ? Sl 13:10 0:00 ypbind

root 17503 0.0 0.0 4124 740 pts/0 S+ 19:19 0:00 grep yp

 

  1. 选拔HISTSIZE控制历史命令记录的总店数

将上边两行内容充实到 .bash_profile 文件并再度登录 bash
shell,命令历史的记录数将成为 450 条:

美高梅手机版4858, 

# vi ~/.bash_profile

HISTSIZE=450

HISTFILESIZE=450

 

  1. 行使HISTFILE更改历史文件名称

暗许意况下,命令历史存款和储蓄在 ~/.bashhistory 文件中。添加下列内容到
.bashprofile 文件并再次登录 bash shell,将动用 .commandline_warrior
来储存命令历史:

 

# vi ~/.bash_profile

HISTFILE=/root/.commandline_warrior

 

  1. 运用HISTCONTROL从命令历史中除去三番五次重复的条条框框

 

在底下的事例中,pwd 命令被连接实行了贰回。执行 history
后你会看到三条重复的条款。要删减这么些再一次的条目,你能够将 HISTCONTROL
设置为 ignoredups:

 

# pwd

# pwd

# pwd

# history | tail -4

44 pwd

45 pwd

46 pwd [Note that there are three pwd commands in history, after
executing pwd 3 times as shown above]

47 history | tail -4

# export HISTCONTROL=ignoredups

# pwd

# pwd

# pwd

# history | tail -3

56 export HISTCONTROL=ignoredups

57 pwd [Note that there is only one pwd command in the history, even
after executing pwd 3 times as shown above]

58 history | tail -4

 

  1. 使用HISTCONTROL清除整个命令历史中的重复条目

上例中的 ignoredups
只可以剔除一连的双重条目。要清除整个命令历史中的重复条目,能够将
HISTCONTROL 设置成 erasedups:

 

# export HISTCONTROL=erasedups

# pwd

# service httpd stop

# history | tail -3

38 pwd

39 service httpd stop

40 history | tail -3

# ls -ltr

# service httpd stop

# history | tail -6

35 export HISTCONTROL=erasedups

36 pwd

37 history | tail -3

38 ls -ltr

39 service httpd stop

[Note that the previous service httpd stop after pwd got erased]

40 history | tail -6

 

  1. 应用HISTCONTROL强制history不记住特定的一声令下

将 HISTCONTROL 设置为
ignorespace,并在不想被铭记的通令后边输入一个空格:

 

# export HISTCONTROL=ignorespace

# ls -ltr

# pwd

# service httpd stop [Note that there is a space at the beginning of
service, to ignore this command from history]

# history | tail -3

67 ls -ltr

68 pwd

69 history | tail -3

 

  1. 应用 -c 选项清除全数的一声令下历史

设若你想解决全体的指令历史,能够推行:

 

# history -c

 

  1. 命令替换

在底下的例证里,!!:$ 将为当下的通令得到上一条命令的参数:

 

# ls anaconda-ks.cfg

anaconda-ks.cfg

# vi !!:$

vi anaconda-ks.cfg

 

补充:使用 !$ 能够完结平等的功力,而且更简单。[多谢 wanzigunzi
读者补充]

 

下例中,!^ 从上一条命令得到第1项参数:

 

# cp anaconda-ks.cfg anaconda-ks.cfg.bak

anaconda-ks.cfg

# vi -5 !^

vi anaconda-ks.cfg

 

  1. 为特定的命令替换钦赐的参数

在上面的例证,!cp:2 从命令历史中追寻以 cp
开始的命令,并拿到它的第贰项参数:

 

# cp ~/longname.txt /really/a/very/long/path/long-filename.txt

# ls -l !cp:2

ls -l /really/a/very/long/path/long-filename.txt

 

下例里,!cp:$ 获取 cp 命令的最终一项参数:

 

# ls -l !cp:$

ls -l /really/a/very/long/path/long-filename.txt

 

  1. 使用 HISTSIZE 禁用 history

假设您想禁止使用 history,能够将 HISTSIZE 设置为 0:

 

# export HISTSIZE=0

# history

# [Note that history did not display anything]

 

  1. 利用HISTIGNORE忽略历史中的特定命令

上面包车型客车例证,将忽略 pwd、ls、ls -ltr 等一声令下:

 

# export HISTIGNORE=”pwd:ls:ls -ltr:”

# pwd

# ls

# ls -ltr

# service httpd stop

# history | tail -3

79 export HISTIGNORE=”pwd:ls:ls -ltr:”

80 service httpd stop

81 history

[Note that history did not record pwd, ls and ls -ltr]

作为Linux系统工程师,在分析体系的安全或故障难点时,平时会利用history(历史)命令查看系统的野史操作…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有