Trong các hệ thống UNIX, bạn có thể nhấn các mũi tên trên và dưới để điều hướng qua các lệnh trước đó. Điều này là vô cùng tiện dụng.
Đôi khi, tôi đi lên và tìm thấy một lệnh mà tôi muốn sử dụng lại, nhưng với một số biến thể. Nếu tôi thực hiện các thay đổi như vậy, thì tôi không có cách nào để lấy lại lệnh gốc, trừ khi tôi kiểm tra nó history
.
Có cách nào để "hoàn tác" các thay đổi đối với lệnh trong lịch sử được truy cập thông qua các khóa không?
Cách giải quyết hiện tại của tôi là trả trước một #
lệnh. Bằng cách này, lệnh hiện tại được thực hiện như một bình luận, vì vậy không có gì xảy ra. Sau đó, tôi có thể duyệt lại thông qua các lệnh bằng các phím. Vấn đề là lệnh tôi đang sử dụng có thể rất xa trong danh sách, vì vậy việc tăng trở lại hai trăm lần là một chút. Control + R cũng không phải là một giải pháp, vì tôi có thể không nhớ chính xác những gì tôi đang tìm kiếm.
Thí dụ
Tôi đã gõ "50 lệnh trước" sau đây:
ls -l /etc/httpd/conf/
Bây giờ tôi đã đi đến dòng đó và thay đổi nó thành
ls -l /etc/init.d/
nhưng không nhấn enter. Bây giờ, tôi muốn ls -l /etc/httpd/conf/
trở lại.
Môi trường của tôi
$ echo $SHELL
/bin/bash
$ echo $TERM
xterm
ksh
dường như hành vi của nó khác ở đây. Và các tùy chọn chỉnh sửa lịch sử của bạn cũng phụ thuộc vào chế độ chỉnh sửa được chọn. Trong ksh
's vi-mode, ví dụ, các mục nhập cũ không ghi đè, và tôi cũng có thể phát hành một lệnh lùi lại, như trong vi
, với 'u'.
ksh
, nhưng thật tốt khi biết điều đó tồn tại ở đó.
ksh
Ví dụ, bạn có thể chỉnh sửa các mục lịch sử và invoke họ mà không xóa các "phiên bản trước" của sự xâm nhập; bạn có tất cả các lệnh được gọi có sẵn.