Làm cách nào để xem tệp `.bash_history` thông qua dòng lệnh?


72

Tôi muốn xem nội dung .bash_historytệp của mình nhưng không biết cách truy cập thông qua dòng lệnh.


7
Làm thế nào vềhistory | less
MadMike

2
Bạn đã kiểm tra /home/username/.bash_history chưa
Mitch

2
NB: chỉ .bash_historyđược nối khi thiết bị đầu cuối bị đóng.
Nicolas XÁC MINH

Câu trả lời:


56

Nếu bạn muốn truy cập các tập tin thực tế bản thân, chỉ cần sử dụng soạn thảo văn bản yêu thích của bạn (tôi sử dụng emacsnhưng bạn có thể sử dụng plumacủa gedithoặc vimhoặc bất kỳ):

emacs ~/.bash_history

Đó là vị trí mặc định nếu tập tin lịch sử của bạn. Nếu bạn không tìm thấy bất cứ điều gì ở đó, bạn có thể đã thay đổi tên tệp lịch sử. Điều này được lưu trữ trong $HISTFILEbiến, vì vậy hãy in nó ra để kiểm tra giá trị hiện tại của nó:

echo $HISTFILE

Nếu, thay vì tệp, bạn chỉ muốn xem lịch sử của mình, bạn có thể chạy historynhư @ minerz029 đề xuất. Các historylệnh không có tùy chọn chỉ in nội dung của bạn $HISTFILEtiếp theo là các lệnh thực thi trong vỏ hiện tại chưa được ghi vào tập tin đó, với số dòng.


49

Nếu bạn thực sự cần đầu ra của .bash_historytệp, thay thế historybằng
cat ~/.bash_historytất cả các lệnh bên dưới.

Nếu bạn thực sự muốn các lệnh không có số ở phía trước, hãy sử dụng lệnh này thay vì history:

history | cut -d' ' -f 4-

nếu không, sẽ không có sự khác biệt (trừ khi bạn đang sử dụng một vỏ khác).


15 lệnh cuối

Bạn có thể dùng

history | tail -n 15

để chỉ nhận 15 dòng cuối cùng trong lịch sử của bạn với lần thực hiện cuối cùng được in cuối cùng (ở dưới cùng).


Tìm kiếm một lệnh

Cách khác, sử dụng

history | grep "apt-get" | tail -n 15

để có được 15 lệnh cuối cùng chứa lệnh apt-getthực thi cuối cùng được in cuối cùng (ở dưới cùng). Bạn có thể thay thế apt-getbằng bất kỳ lệnh (hoặc đối số lệnh) nào bạn muốn tìm kiếm (nó có thể là biểu thức chính quy).


Cuộn qua lịch sử

Bạn có thể dùng

history | tac | less

để cuộn qua tất cả các lệnh được thực hiện bắt đầu với gần đây nhất ở trên cùng. Nhấn qđể thoát.

Tương tự, sử dụng

history | grep "apt-get" | tac | less

để cuộn qua tất cả các lệnh được thực hiện với " apt-get" trong đó (bao gồm cả đối số) bắt đầu bằng lệnh gần đây nhất ở trên cùng. Nhấn qđể thoát.


15

Ngoài câu trả lời tuyệt vời của minerz029.

Để nhắc lại - lệnh 'history' in lịch sử cùng với một số bên cạnh nó.

Bạn có thể chuyển đầu ra của lịch sử thành grep, ít hơn, v.v.

Thông số của lịch sử cũng hiển thị một số ở bên trái bên cạnh đầu ra. ví dụ

  469  free
  470  ps -fA
  471  ps -fA | grep xend
  472  free
  473  sudo vi /etc/xen/xend-config.sxp 
  474  cat /etc/default/grub 

Với số này, bạn có thể chạy lại lệnh.

ví dụ để chạy lại 473 tôi sẽ gõ vào terminal

 admin@xen1~$ !473

theo sau là phím enter để lặp lại lệnh bên cạnh 473 trong đầu ra lịch sử.

Bạn cũng có thể tìm kiếm tương tác ngược trong lịch sử lệnh bằng cách gõ ctrl + rphím sau đó bắt đầu nhập một số nội dung của lệnh và nó sẽ tìm kiếm và điền vào. Khi bạn đã tìm thấy nó, bạn có thể nhập enter để lặp lại hoặc nhấn [tab]phím để sao chép nó vào dòng lệnh để chỉnh sửa lệnh trước.

Tất nhiên, hai tùy chọn cuối cùng hoạt động trong bash shell. Tôi không chắc các tính năng này có hoạt động trong các shell khác không. Nhưng vì bash là shell mặc định của Ubuntu nên bạn sẽ tìm thấy chúng ở đó.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.