Một điều mà tôi đã nhận thấy trong Ubuntu trong một thời gian dài khiến tôi bực bội là khi tôi gõ một lệnh tại dòng lệnh dài hơn (rộng hơn) so với chiều rộng của thiết bị đầu cuối, thay vì gói vào một dòng mới, nó sẽ quay trở lại cột 1 trên cùng một dòng và bắt đầu ghi đè lên đầu dòng lệnh của tôi. (Nó không thực sự ghi đè lên lệnh thực tế, nhưng về mặt trực quan, nó ghi đè lên văn bản đã được hiển thị).
Thật khó để giải thích mà không nhìn thấy nó, nhưng giả sử thiết bị đầu cuối của tôi rộng 20 ký tự (Của tôi giống như 120 ký tự - nhưng vì lợi ích của một ví dụ), và tôi muốn lặp lại bảng chữ cái tiếng Anh. Những gì tôi gõ là đây:
echo abcdefghijklmnopqrstuvwxyz
Nhưng thiết bị đầu cuối của tôi trông như thế nào trước khi tôi nhấn phím là:
pqrstuvwxyzghijklmno
Khi tôi nhấn enter, nó vang
abcdefghijklmnopqrstuvwxyz
vì vậy tôi biết lệnh đã được nhận đúng. Nó chỉ ngắt kiểu gõ của tôi sau chữ "o" và bắt đầu lại trên cùng một dòng.
Điều tôi mong đợi sẽ xảy ra, nếu tôi gõ lệnh này trên một thiết bị đầu cuối chỉ rộng 20 ký tự thì đây sẽ là:
echo abcdefghijklmno
pqrstuvwxyz
Bối cảnh: Tôi đang sử dụng bash làm vỏ của mình và tôi có dòng này trong ~ / .bashrc:
set -o vi
để có thể điều hướng dòng lệnh bằng các lệnh VI. Tôi hiện đang sử dụng máy chủ Ubuntu 10.10 và kết nối với máy chủ bằng Putty.
Trong bất kỳ môi trường nào khác mà tôi đã làm việc, nếu tôi gõ một dòng lệnh dài, nó sẽ thêm một dòng mới bên dưới dòng tôi đang làm việc khi lệnh của tôi dài hơn chiều rộng của thiết bị đầu cuối và khi tôi tiếp tục gõ, tôi có thể thấy lệnh của mình trên 2 dòng khác nhau. Nhưng miễn là tôi có thể nhớ sử dụng Ubuntu, các lệnh dài của tôi chỉ chiếm 1 dòng.
Điều này cũng xảy ra khi tôi quay lại các lệnh trước đó trong lịch sử (tôi nhấn Esc, sau đó 'K' để quay lại các lệnh trước đó) - khi tôi nhận được lệnh trước dài hơn độ rộng của thiết bị đầu cuối, dòng lệnh sẽ đọc sai và tôi không thể biết tôi đang ở đâu trong lệnh.
Công việc duy nhất tôi tìm thấy để thấy toàn bộ lệnh dài là nhấn "Esc-V", mở ra lệnh hiện tại trong trình soạn thảo VI.
Tôi không nghĩ rằng tôi có bất cứ điều gì kỳ lạ trong tệp .bashrc của mình. Tôi đã nhận xét dòng "set -o vi" và tôi vẫn gặp sự cố.
Tôi đã tải xuống một bản sao mới của Putty và không thực hiện bất kỳ thay đổi nào đối với cấu hình - Tôi chỉ cần nhập tên máy chủ của mình để kết nối và tôi vẫn gặp sự cố, vì vậy tôi không nghĩ đó là bất cứ điều gì với Putty (trừ khi tôi cần thực hiện một số thay đổi cấu hình)
Có ai khác có vấn đề này, và bất cứ ai có thể nghĩ làm thế nào để khắc phục nó?
Biên tập
Đó là tập tin .bashrc của tôi. Tôi đã sao chép cùng một hồ sơ từ máy này sang máy khác và tôi đã sử dụng các ký tự đặc biệt trong $ PS1 của mình bằng cách nào đó loại bỏ nó. Bây giờ tôi đang gắn bó với các biến bash tiêu chuẩn cho $ PS1 của mình.
Cảm ơn @ ndrük về mẹo trên .bashrc!
... Kết thúc chỉnh sửa ...
tput smam
/etc/skel/.bashrc
. Hãy nhớ rằng bạn sẽ cần kết nối lại để các thay đổi có hiệu lực và đảm bảo giữ bản sao lưu .bashrc của riêng bạn.