今天在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
就可以直接执行。