Làm thế nào để quay lại dòng trước của tập lệnh trong terminal?


8

Tôi đang cố gắng viết một kịch bản nhưng tôi bị mắc kẹt ở đây. Vui lòng xem mã!

aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir

Có cách nào để đi dòng trước? Tôi có nghĩa là có một loại nhầm, tôi đã làm trong touch august $i+$2. Ipressed ENTERkey, vì vậy tôi đã đi cho dòng mới. Làm thế nào tôi có thể quay lại dòng trước?


bạn nên viết script trong một tập tin sau đó chạy nó từ terminal. Bạn cũng có thể sử dụng phím UP cho lệnh trước đó, nhưng không có cách nào để hoàn nguyên lệnh.
shantanu

Câu trả lời:


1

bashTrình soạn thảo dòng lệnh không hỗ trợ điều này, hoặc làm như anwar gợi ý hoặc giữ mọi thứ trên một dòng được phân tách bằng dấu chấm phẩy hoặc đặt nó vào một tệp script.

Trên một lưu ý phụ, zshcó các tính năng giúp với điều này. Trình zshsoạn thảo dòng ( zle) là một trình soạn thảo có đầy đủ tính năng hơn và hỗ trợ di chuyển trong một lệnh nhiều dòng. Khi lệnh trở nên quá dài để xử lý zlenó có tính năng dựng sẵn edit-command-line, nó sẽ mở ra dòng lệnh trong trình soạn thảo yêu thích của bạn. Nó thường không bị ràng buộc, hãy thử với:

bindkey "^[e" edit-command-line

Alt-e Bây giờ nên kích hoạt nó, lưu và thoát để quay lại dòng lệnh.


1

Sau khi bạn nhấn Entervà nhận được thông báo lỗi, bạn có thể quay lại lịch sử:

Chỉ cần nhấn phím trong bàn phím của bạn để sửa lỗi chính tả. Nếu bạn nhấn phím, thiết bị đầu cuối sẽ hiển thị cho bạn dòng này:

for i in {1..100..4}; do echo "august"; touch august $i+$2; mkdir;

Sửa các công cụ bị nhầm lẫn xung quanh touch august $i+$2và thêm một doneở cuối lệnh.

Sau đó nhấn Enterphím. Điều này sẽ giải quyết vấn đề của bạn.


1

như được giải thích ở đây , trong bash, bạn có các Lệnh cho Thao tác Lịch sử như được nêu trong hướng dẫn sử dụng. Một trong số đó là edit-and-execute-command.

Điều này sẽ mở trình soạn thảo của bạn với các lệnh của bạn đã được nhập vào một tệp tạm thời và bạn có thể sửa các dòng trước đó một cách dễ dàng. Bạn có thể đạt được điều này trong chế độ emacs C-xC-evà chế độ vi bằng cách nhấn vở chế độ bình thường.

chỉnh sửa và thực thi lệnh (C-xC-e)

Gọi một trình soạn thảo trên dòng lệnh hiện tại và thực hiện kết quả dưới dạng các lệnh shell. Bash cố gắng gọi $ VISUAL, $ EDITOR và emacs làm biên tập viên, theo thứ tự đó.


Ồ Nhiều năm của linux, và tôi chỉ biết điều này.
azzamsa

0

Đây là những gì làm việc cho tôi.

CTRL+ Ctừ hiện tại command. Sau đó nhấn nút . Bây giờ bạn có thể chỉnh sửa bất kỳ dòng nào bạn muốn bằng cách di chuyển xung quanh bằng arrow buttons- hoặc .

Chúc may mắn...

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.