使用history查找之前操作

使用history命令查找之前的Linux操作记录

服务器技术 2020-06-18 14:36:21 70

导读

今天在QQ群里指导一个网友在UbuntuServer16.04安装LAMP网络服务器套件成功之后,网友说刚刚关闭了SSH命令行窗口,但又想把之前的操作记录重新梳理一遍加深理解和记忆,能不能找到之前的历史记录。肯定有啊,使用键盘上的上下箭头就可以很方便地查看之前使用过的命令。当然,如……

今天在QQ群里指导一个网友在Ubuntu Server 16.04安装LAMP网络服务器套件成功之后,网友说刚刚关闭了SSH命令行窗口,但又想把之前的操作记录重新梳理一遍加深理解和记忆,能不能找到之前的历史记录。肯定有啊,使用键盘上的上下箭头就可以很方便地查看之前使用过的命令。当然,如果你像我一样使用命令行上瘾,想要使用箭头一个一个地上翻来查看几个月前使用的linux命令,那肯定会崩溃的。我们还有一个更好用的方法,那就是使用histoty命令。

daweibro@daweibro.com:~$ history
 1011  logout
 1012  sudo cp bdunion.txt /var/www/html/daweibro.com
 1013  cd /var/www/html/daweibro.com
 1014  ls
 1015  vim bdunion.txt 
 1016  sudo mv .htaccess htaccess.txt
 1017  sudo mv htaccess.txt .htaccess
 1018  vim robots.txt 
 1019  sudo update
 1020  sudo apt-get update
 1021  sudo apt-get upgrade
 1022  ... ...

如上所示,history会按照前后顺序忠实地记录下之前的命令行操作记录,不过当时服务器的响应记录是没有的。

但是当操作记录很多的时候,单纯使用history命令查找还是很麻烦,所以我们还要加上必要的参数使查找更方便些。比如使用参数n,将会打印最近的n条历史命令:

daweibro@daweibro.com:~$ history 10
 1987  sudo cp -r drupal-8.5.6/. /var/www/html/daweibro.com/.
 1988  sudo chown -R www-data:www-data /var/www/html/daweibro.com
 1989  sudo cp -r drupal-8.5.6/. /var/www/html/canyinqiao.com/.
 1990  sudo chown -R www-data:www-data /var/www/html/canyinqiao.com
 1991  ls /var/www/html/
 1992  ssh kingchefchina.com -p 8888
 1993  sudo apt-get update
 1994  history
 1995  logout
 1996  history 10

我们还可以结合grep命令来查找之前执行过的带有很多不太确定参数或者很长文件名的命令,比如大伟哥想要下载最新的Drupal版本8.5.6,但是却不想去Drupal网站上去复制下载路径,就可以查看之前执行wget命令的下载操作记录,找到https://ftp.drupal.org/files/projects/drupal-8.5.5.tar.gz并把版本号替换成8.5.6就可以了:

daweibro@daweibro.com:~$ history | grep wget
 1052  wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
 1273  wget -c https://ftp.drupal.org/files/projects/drupal-8.4.0.tar.gz
 1312  wget -c https://ftp.drupal.org/files/projects/drupal-8.4.3.tar.gz
 1376  wget -c https://ftp.drupal.org/files/projects/drupal-8.4.4.tar.gz
 1395  wget -c https://ftp.drupal.org/files/projects/drupal-8.4.5.tar.gz
 1412  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.0.tar.gz
 1563  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.1.tar.gz
 1579  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.2.tar.gz
 1583  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.3.tar.gz
 1644  history |grep wget
 1645  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.3.tar.gz
 1646  wget -c https://ftp.drupal.org/files/projects/drupal-8.5.4.tar.gz
 1928  wget -s https://ftp.drupal.org/files/projects/drupal-8.5.5.tar.gz
 1929  wget https://ftp.drupal.org/files/projects/drupal-8.5.5.tar.gz

还有一个用法,如果我们想重复执行上面列出的某个命令,比如重新下载drupal-8.5.5.tar.gz, 可以不用复制这么长的命令,只要认准命令前面的记录编号并在前面加上“!”就可以了。如上次执行history |grep wget的编号是1644,我们只需要直接输入

!1644

就可以直接执行。


1253067 TFnetwork_cn