为什么我的 bash 历史记录没有按日期排序?

为什么我的 bash 历史记录没有按日期排序?

我的 mac bash 历史记录如下所示(我只复制最后 +100 行):

 2769  23/09/14 17:54:09nano ~/.bash_profile
 2770  23/09/14 17:54:21nano ~/.bash_profile
 2771  23/09/14 17:54:28source ~/.bash_profile
 2772  23/09/14 17:54:32ngrok 3000
 2773  24/09/14 14:07:38ngrok 0.0.0.0:3000
 2774  25/09/14 09:00:41ngrok 0.0.0.0:3000
 2775  17/10/14 16:03:11cd Down*/sample_app*
 2776  17/10/14 16:03:53rails server -p 3667
 2777  17/10/14 16:03:59bundle install
 2778  17/10/14 16:12:28rails server -p 3667
 2779  17/10/14 16:13:06bin/rake db:migrate RAILS_ENV=development
 2780  17/10/14 16:13:15rails server -p 3667
 2781  17/10/14 16:17:33rails server -p 3667
 2782  17/10/14 16:19:45rails server -p 3667
 2783  17/10/14 16:20:24rails server -p 3667
 2784  17/10/14 16:21:22rails server -p 3667
 2785  17/10/14 16:22:04rails server -p 3667
 2786  17/10/14 16:26:50rails server -p 3667
 2787  17/10/14 16:30:42rails server -p 3667
 2788  25/09/14 09:03:31curl -X POST http://0.0.0.0:3000/twilio/voice -d 'foo=bar'
 2789  25/09/14 16:11:35curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2790  25/09/14 16:13:29curl
 2791  25/09/14 16:13:35curl --help
 2792  25/09/14 16:34:48curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2793  25/09/14 16:35:22curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2794  25/09/14 16:38:25curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2795  25/09/14 16:38:49curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2796  25/09/14 16:39:33curl -X POST http://0.0.0.0:3000/twilio/voice -d 'foo=bar'
 2797  25/09/14 16:40:57curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2798  25/09/14 16:47:28curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2799  25/09/14 17:55:23curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2800  25/09/14 17:56:17curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2801  25/09/14 17:56:54curl -X POST http://0.0.0.0:3000/sms/send
 2802  25/09/14 17:57:28curl -X POST http://0.0.0.0:3000/sms/send
 2803  25/09/14 17:57:42curl -X POST http://0.0.0.0:3000/sms/send -d 'foo=bar'
 2804  25/09/14 17:59:39curl -X POST http://0.0.0.0:3000/sms/send -d 'number_to_send_to = +4479311'
 2805  25/09/14 18:00:41curl -X POST http://0.0.0.0:3000/sms/send -d 'number_to_send_to=+4479311'
 2806  25/09/14 18:13:39curl -X POST http://0.0.0.0:3000/sms/send -d 'number_to_send_to=+4479311'
 2807  20/12/14 23:06:21git status
 2808  20/12/14 23:07:19git add config/routes.rb
 2809  20/12/14 23:07:29git add app/views/layouts/_header.html.erb
 2810  20/12/14 23:07:51git commit -m "accommodating a login screen"
 2811  20/12/14 23:08:01git add app/assets/stylesheets/application.css.scss
 2812  20/12/14 23:08:20git commit -m "These changes allowed to fix the layout of the login screen"
 2813  21/12/14 10:24:53history

为什么不按日期排序?我通常同时使用多个终端窗口 - 这是原因吗?如何按时间顺序显示历史记录?

我尝试了 Arvid 的建议,但没有奏效。输出如下:

 2445  28/09/14 21:33:21rails server
 2446  29/09/14 11:43:43rails server
 2447  29/09/14 11:44:38rails server
 1981  30/07/14 22:16:37vagrant
 2195  30/10/14 15:17:46/Users/nnikolo/Downloads/bipolar-master/pkg/osx/install.command ; exit;
 2196  30/10/14 15:19:13cd Downl*/bipol*
 2197  30/10/14 15:19:34cd pkg/osx
 2198  30/10/14 15:19:37ls -all
 2199  30/10/14 15:19:48./build.sh
 2200  30/10/14 15:20:14cd ..
 2201  30/10/14 15:20:19cd ..
 2202  30/10/14 15:20:30cd hook/qt
 2203  30/10/14 15:20:34ls -all
 2204  30/10/14 15:21:05./build.sh
 2205  30/10/14 15:27:32ls -all
 2206  30/10/14 15:27:38pwd
 2207  30/10/14 15:27:41cd ..
 2208  30/10/14 15:27:42cd ..
 2209  30/10/14 15:27:46ls -all
 2210  30/10/14 15:27:50cd pkg/osx
 2211  30/10/14 15:27:53ls -all
 2212  30/10/14 15:28:01./build.sh
 2213  30/10/14 15:28:22cd ../..
 2214  30/10/14 15:28:26ls -all
 2215  30/10/14 15:28:30cd hook
 2216  30/10/14 15:28:32ls -all
 2217  30/10/14 15:28:35cd at
 2218  30/10/14 15:28:38cd qt
 2219  30/10/14 15:28:41ls -all
 2220  30/10/14 15:28:55ls -all qt-everywhere-opensource-src-5.1.1
 2221  30/10/14 15:31:04cd ..
 2222  30/10/14 15:31:09ls -akk
 2223  30/10/14 15:31:11cd qt
 2224  30/10/14 15:31:13ls -all
 2225  30/10/14 15:31:27build
 2226  30/10/14 15:31:31./build
 2227  30/10/14 15:31:39./build.sh
 2228  30/10/14 15:36:48ls -all
 2229  30/10/14 15:36:56./install.sh
 2230  30/10/14 15:37:05cd ..
 2231  30/10/14 15:37:06cd ..
 2232  30/10/14 15:37:10ls -all
 2233  30/10/14 15:37:17cd pkg/osx
 2234  30/10/14 15:37:21ls -all
 2235  30/10/14 15:37:29./build.sh
 2236  30/10/14 15:37:49nano build.sh
 2237  30/10/14 15:38:14gedit build.sh
 2238  30/10/14 15:40:42sudo nano build.sh
 2239  30/10/14 15:40:59./build.sh
 2240  30/10/14 16:01:55./build.sh
 2241  30/10/14 16:07:13ls -all
 2242  30/10/14 16:07:23./install.command
 2243  30/10/14 16:07:46pwd
 2244  30/10/14 16:07:50ls -all ../..
 2245  30/10/14 16:08:07ls -all ../../hook/
 2246  30/10/14 16:08:09ls -all ../../hook/qt/
 2247  30/10/14 16:08:49nano ../../hook/qt/qnetworkaccessmanager.patch
 2248  30/10/14 16:09:43cd ../../hook/qt/
 2249  30/10/14 16:09:45ls -all
 2250  30/10/14 16:09:59nano build
 2251  30/10/14 16:10:12ls -all build/*
 2252  30/10/14 16:10:26cd build/*
 2253  30/10/14 16:10:28cd build
 2254  30/10/14 16:10:36qmake
 2255  30/10/14 16:10:39./qmake
 2256  30/10/14 16:10:49make
 2089  31/08/14 14:32:51пвд
 2090  31/08/14 14:32:57pwd
 2091  31/08/14 14:33:02git status
 2092  31/08/14 14:33:13git add edgeR-de.r.history
 2093  31/08/14 14:33:24git commit -m "Interim save"
 2094  31/08/14 14:33:42history | grep remote
 2095  31/08/14 14:33:59history | grep push
 2096  31/08/14 14:34:05git push origin master

答案1

是的,原因在于您的多个终端。bash 历史记录是在您退出 shell 时写入的,而不是针对每个命令单独写入的。

您可以使用 sort 按时间顺序获取历史文件:

history | sort -k2

如果你想让你的历史文件更连续地写入,我相信这篇博客文章解释得很好

我还发现这个unix stack exchange问​​题这可能会有帮助。

相关内容