Có cách nào để kiểm tra lịch sử chỉ của phiên hiện tại không?


10

Tôi muốn biết nếu có bất kỳ lệnh nào hoặc bất kỳ cách nào khác tôi chỉ có thể kiểm tra lịch sử lệnh của mình trong phiên hiện tại.

Câu trả lời:


12

Các historyđược xây dựng trong bashphép xác định tên tập tin khi được sử dụng với -anrwcờ, và -amô tả cờ từ help historytrạng thái:

nối các dòng lịch sử từ phiên này vào tệp lịch sử

Do đó, chúng ta có thể làm:

~$ history -a this_session.history
~$ cat ./this_session.history 
history mysession.history 
cat mysession.history 
clear
history -a this_session.history

Đối với bản ghi, -w(lịch sử ghi vào tệp opion) ghi toàn bộ lịch sử vào tệp đã chỉ định, vì vậy -a(chắp thêm) ở đây là lựa chọn ưu tiên.


Có những cách thủ công khác. Cụ thể là kshkhông có -acờ như bashvậy, nhưng cái kshmkshphải có là HISTFILEbiến môi trường (và bashcũng có điều đó, vì bashbao gồm rất nhiều kshtính năng); bằng cách này, biến này theo mặc định không được đặt (ít nhất là mkshtrên Ubuntu không đặt nó). Vì vậy, để xuất phiên hiện tại sang tệp khác, chúng tôi gọi lệnh được đặt HISTFILEtrước để theo lệnh cú pháp shell có nghĩa là chạy lệnh với biến môi trường bổ sung mà bạn chỉ định. Thích như vậy:

bash-4.4$ HISTFILE='mykshfile.hist' ksh
$ echo 'Hello'
Hello
$ echo 'World'
World
$ 
bash-4.4$ cat ./mykshfile.hist 
�echo 'Hello'
echo 'World'

Những gì bạn cũng có thể thấy từ điều này là kshlịch sử đầu ra của trình bao với các ký tự đặc biệt, thay vì văn bản đơn giản như những gì bashnó làm. Vì vậy, bạn có thể muốn mở tập tin đó với ksh.

Theo như trình bao POSIX /bin/shtrên Ubuntu , đó là Debian Almquist Shell hoặc Dash, đã tồn tại tích fchợp sẵn . Tuy nhiên, trên Ubuntu dash được biên dịch mà không cần chỉnh sửa lib , đây là lựa chọn có ý thức của các nhà phát triển Ubuntu vì lý do hiệu suất, vì vậy fccác chế độ khác yêu cầu chỉnh sửa dòng không hoạt động (trừ khi dashtự biên dịch lại và cài đặt lib-edit).


Các cách trung lập của Shell sẽ là ghi lại phiên của bạn bằng các công cụ hiện có hoặc viết chức năng của riêng bạn để ghi lại trên cơ sở mỗi lệnh.

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.