Làm thế nào để tôi nhớ lại một lệnh cụ thể từ lịch sử lệnh, mà không thực hiện nó


13

Ví dụ, trong bash tôi có thể gõ !xyzlệnh sẽ chạy lệnh cuối cùng mà tôi đã nhập bắt đầu bằng xyz.

Làm thế nào tôi có thể đưa ra lệnh cuối cùng mà tôi đã gõ bắt đầu xyznhưng không thực hiện nó?
ví dụ để tôi có thể thay đổi các tham số trước khi thực hiện ....

Câu trả lời:


20

Bạn có thể làm như thế này: Trên dấu nhắc lệnh, nhấn Ctrl+ rvà sau đó nhập lệnh bạn muốn gọi lại, trong trường hợp của bạn xyz. Điều này sẽ cho bạn thấy lệnh hoàn chỉnh mà không cần thực hiện nó.


1
Hữu ích hơn !ký hiệu, bởi vì bạn có thể nhấn Ctrl-r nhiều lần để chuyển tiếp vào lịch sử phù hợp. Khi bạn đến đúng nơi, bạn có thể cố gắng thực hiện không phải bằng Enter mà bằng Ctrl-o để kiếm được nhiều lợi nhuận.
kubanchot

12

Hãy thử !xyz:p; nó sẽ gọi lệnh lên đỉnh của lịch sử mà không thực hiện nó, vì vậy, ví dụ mũi tên lên có thể truy cập ngay lập tức để chỉnh sửa tương tác.

Bên cạnh đó, tôi thực hiện cách thực hiện điều này khi nhớ lại các lệnh với một biểu thức chính quy có thể hiểu được một thứ gì đó có hại, kể từ khi vội vàng !r, có ý định nhớ lại rsync ...lệnh gần đây nhất , kéo lại và thực hiện một lệnh rm *đã bị đẩy vào ngăn xếp gần đây hơn rsync.


Cảm ơn, đó là một thực hành tốt. Tôi đã làm điều tương tự với một thời gian rm -rf ./*không bao giờ biết ơn trong một khoảng thời gian. FYI Công !xyz:pviệc, thankyou, nhưng yêu cầu một số tổ hợp phím bổ sung hơn giải pháp ctrl-r.
Mtl Dev

@MtlDev có; Tôi thấy giải pháp ^ R hoạt động tốt nhất cho EMACSmọi người, trong khi đó, đường dẫn hoạt động tốt nhất cho những người vichơi ô tô như tôi.
MadHatter

1
  1. Thực hiện lệnh sau. Nó sẽ lặp lại lệnh được thực hiện cuối cùng. bạn có thể sao chép và chỉnh sửa lệnh. Lệnh này đã được thử nghiệm trong debian.

    lịch sử | đuôi -2 | lịch sử grep -v | cắt -d '' -f4-

  2. Hoặc Bấm và giữ ctrl + R và nhập chữ cái bắt đầu của lệnh cuối cùng của bạn. Nó sẽ liệt kê các lệnh bạn đã thực hiện trước đó dựa trên đầu vào của bạn. Khi nó hiển thị lệnh mong muốn, chỉ cần nhấn mũi tên phải để chọn lệnh đó.


1
Lệnh đầu tiên rất trơn tru !! Tôi nghĩ rằng sẽ nhanh hơn khi chỉ chăm sóc lệnh trong lịch sử hơn là viết tất cả những điều này ^ __ ^
Grajdeanu Alex.

1

Nếu tìm kiếm lịch sử ngược lại không thành công, hãy làm bất cứ điều gì về:

$ history | grep WHAT_YOU_LOOK_FOR

Hoặc là:

$ grep WHAT_YOU_LOOK_FOR ~/.bash_history
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.