Có thể cấu hình ksh trên AIX để sử dụng phím tab để hoàn thành tên tệp không?


8

Tôi có một số máy chủ AIX 7 bị giới hạn ở phần mềm nào tôi có thể cài đặt và tự hỏi liệu tôi có thể kshsử dụng phím tab để hoàn thành tên tệp tại quảng cáo shell hay không.

Các trang man rất ít cho ksh và tôi không thấy bất kỳ câu hỏi liên quan nào ở đây bao gồm mặt đất này. Do phần lớn người dùng sử dụng ksh, tôi ngần ngại chuyển vỏ của mình sang bash - nhưng tôi cho rằng đó là một cách dễ dàng.

Tôi đăng nhập ban đầu từ PC bằng putty / ssh và hoạt động chủ yếu từ xterm sau khi chuyển tiếp X11 mang lại lưu lượng truy cập cho Hummingbird Exceed trên PC.

Có thể / usr / bin / ksh đi kèm với bos.rte.shellAIX 7.1 để kích hoạt hoàn thành tên tệp (thường được kích hoạt bằng cách nhấn ESC + \) bằng cách nhấn phím TAB không?


'Echo $ HẠN' có ý nghĩa gì?
schaiba

@schaiba - Cảm ơn bạn đã nắm bắt được câu hỏi chưa hoàn chỉnh của tôi. $ TERM của tôi là xterm cho dù tôi đã đăng nhập qua putty / ssh hoặc đã sinh ra xterms ...
bmike

Vui lòng bao gồm giá trị $ {. Sh.version} trong câu hỏi của bạn. Double TAB để hoàn thành tên tệp đã được thêm vào tương đối muộn.
Henk Langeveld

@HenkLangeveld tôi nhận được một lỗi "thay xấu" khi tôi cố gắng để echo $ {sh.version.} - Phiên bản box.rte.shelllà 7.1.1.16
bmike

Câu trả lời:


3

Xem nếu /usr/bin/ksh93có sẵn:

ksh93 --version

Nếu nó nói

version         sh (AT&T Research)

sau đó sử dụng nó như vỏ tương tác của bạn. Nó sẽ có $ {. Sh.version} và nên có bản mở rộng TAB.


Đây có thể sẽ trở thành câu trả lời trừ khi có một cách rõ ràng để dạy các kshthủ thuật mới cũ . Có vẻ như /usr/bin/kshcố ý không được cập nhật với các tính năng và nhị phân thứ hai có nhiều tính năng gần đây được biên dịch. Vì nó có vẻ hoạt động tốt, việc nhấn tab hoạt động như mong đợi bây giờ với rất ít rủi ro rằng các tập lệnh khác sẽ thất bại về sự khác biệt giữa ksh và ksh93.
bmike

1
Trên thực tế, IBM có thể đã theo khái niệm thay đổi tên khi thay đổi giao diện, không giống như những gì Sun đã làm khi họ cập nhật ksh lên ksh93 trong (Open) Solaris.
Henk Langeveld

4

Tôi thu thập vỏ của bạn đang ở chế độ vi. Không chắc điều này sẽ hoạt động, vì kiến ​​thức AIX của tôi bị hạn chế, nhưng bạn có thể thử thêm nó vào hồ sơ của bạn:

set -o emacs
bind "^I=complete"

Google nói rằng ksh trong AIX bị tê liệt từ quan điểm này, vì vậy có lẽ bash sẽ là một lựa chọn tốt hơn.


Điều này không hoạt động trong phiên bản ksh tôi đã cài đặt. Tôi thích các viràng buộc hơn, nhưng chuyển sang emacs để xem nếu điều này sẽ cho phép phím tab hoạt động như mong đợi.
bmike

liên kết bị thiếu đối với tôi trên AIX 7.1
Bryce Guinta

3

Có một sự thay thế cho câu hỏi này.

Đầu tiên đặt chế độ vi cho ksh:

$ set -o vi

Sau đó, bạn có thể sử dụng Tabchìa khóa theo cách này. Ví dụ: Bạn muốn hoàn thành đường dẫn tiếp theo:

$ cd /usr/local/s

Nhập Tabkhóa hai lần và bạn sẽ thấy điều này:

$ cd /usr/local/s
1) sbin/
2) share/
3) src/

Giả sử bạn muốn tùy chọn 2( /usr/local/share/thư mục), gõ 2 Tab( 2phím theo sau là Tabphím). Và bạn sẽ thấy điều này:

$ cd /usr/local/share/ 
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.