Trên một trong các máy chủ của tôi, lời nhắc là [đường dẫn người dùng @ máy chủ] ... và tôi thực sự có thể đẩy "tab" để tự động điền đường dẫn.
Nhưng trên máy chủ Ubuntu mới của tôi, nó chỉ là một ký hiệu đô la?
Trên một trong các máy chủ của tôi, lời nhắc là [đường dẫn người dùng @ máy chủ] ... và tôi thực sự có thể đẩy "tab" để tự động điền đường dẫn.
Nhưng trên máy chủ Ubuntu mới của tôi, nó chỉ là một ký hiệu đô la?
Câu trả lời:
Vì bạn đang hỏi hai câu hỏi, tôi sẽ trả lời cả hai.
Bởi vì bạn shell không hỗ trợ nó, hoặc hoàn thành tab không được bật.
Để giải quyết điều này, trước tiên bạn cần khám phá vỏ của bạn là gì. Trên máy có vỏ bạn thích, hãy chạy
echo $SHELL
Bạn có thể thấy cái chung /bin/bash
, hoặc cái gì đó ít phổ biến hơn /bin/tcsh
, /bin/zsh
hoặc cái gì khác hoàn toàn.
Bây giờ, bạn có thể thay đổi vỏ của mình trên máy Ubuntu. Trên máy đó, trước tiên hãy đảm bảo rằng vỏ bạn muốn tồn tại. Vì hệ vỏ có thể không ở cùng một vị trí trên máy Ubuntu như trên máy khác, hãy kiểm tra vị trí bằng cách nhập
which bash
Điều này sẽ cung cấp cho bạn đường dẫn của vỏ mà bạn muốn, cái gì đó như /bin/bash
, /usr/bin/bash
hoặc /usr/local/bin/bash
. Tất nhiên, nếu bạn muốn có một vỏ ngoài bash, bạn sẽ nói which tcsh
, which zsh
hoặc tương tự.
Nếu bạn không nhìn thấy đường dẫn, nhưng thay vào đó bash not found
, bạn sẽ cần cài đặt gói thích hợp và sử dụng lại which
để tìm nơi vỏ được cài đặt.
Với đường dẫn của vỏ bạn đã chọn, cuối cùng bạn có thể thay đổi vỏ của mình bằng cách chạy
chsh -s /bin/bash
thay thế /bin/bash
bằng bất cứ con đường thích hợp nào cho vỏ bạn chọn.
Bởi vì các biến môi trường nhanh chóng của bạn $PS1
, $PS2
và vân vân. Những thứ này không có xu hướng di động giữa các vỏ, vì vậy đây là một vài liên kết cho các ứng cử viên có khả năng:
bash
có một hướng dẫn sử dụng rộng rãi , với các trang về Biến Bash (bao gồm PS1
, & c) và In một Dấu nhắc (mô tả PROMPT_COMMAND
, tên dài cho PS1
). Thêm dòng sau vào~/.bashrc
export PS1='[\u@\h \w] '
tcsh
có một hướng dẫn trực tuyến (chỉ trang man của nó), với một phần về các biến môi trường nhanh chóng . Thêm dòng sau vào~/.tcshrc
set prompt='[%n@%m %~] '
zsh
có một hướng dẫn sử dụng , với một hướng dẫn đơn giản để nhắc nhở , cũng như hướng dẫn sử dụng , với một tài liệu tham khảo rất chi tiết về Mở rộng Prompt . Thêm dòng sau vào~/.zshrc
export PS1='[%n@%m %~] '
Bash không phải là vỏ duy nhất.
Vấn đề của bạn có thể là vấn đề đơn giản khi không có .profile hoặc .bashrc đặt PS1 hoặc có thể là vỏ đăng nhập của bạn không bị lỗi gì cả.
Bash sử dụng gnu readline
cho những thứ như hoàn thành tab. Đây là một chủ đề phức tạp và readline thậm chí có tệp cấu hình cho mỗi người dùng riêng.
Xem man bash
, man sh
và man 3 readline
. Bash đáp lại --version
. Trên nhiều hệ thống linux, /bin/sh
không thực sự là bash, mà thường là phiên bản bị tê liệt ash
.
dash
thay thế ash
? tôi nghĩ rằng tôi đã đọc một cái gì đó như thế này
Tôi đoán, bạn không sử dụng bash, nhưng sh và dấu nhắc của bạn không được đặt đúng (nếu điều này thậm chí có thể xảy ra với sh).
bạn có thể lấy shell hiện tại của mình bằng cách gõ: echo $SHELL
nếu bạn muốn bắt đầu bash, chỉ cần gõ bash
sh
. Echoing $SHELL
sẽ in một biến môi trường được gọi là SHELL
. Biến môi trường này chỉ đơn giản là trỏ đến shell và chỉ được đặt bởi bash. Nó gần như vô dụng trong việc xác định shell nào đang chạy, vì nó chỉ cho thấy, một cách yếu ớt, rằng một số cha mẹ của quá trình hiện tại có thể đã bị bash.
/bin/sh
, có. Nhưng tôi biết không có vỏ có tên sh
. Tôi có thể nghĩ đến ash
, ksh
, csh
, bash
, zsh
, và tcsh
. Cái đầu tiên là shell / bin / sh thông thường trên linux và NetBSD, cái cuối cùng là shell FreeBSD thông thường và những cái khác là shell tùy chọn. Nhiều môi trường máy tính để bàn thay đổi vỏ đăng nhập của người dùng thành bash trong khi để lại / bin / sh dưới dạng tro.
sh
là vỏ Bourne. vi.wikipedia.org/wiki/Bourne_shell Một số hệ thống (Solaris) vẫn đi kèm với một phiên bản vỏ Bourne không chỉ là bản sao của một trong những triển khai lại (ash, dash, bash, ksh, zsh).
Bạn cần đặt một biến có tên là PS1 trên một trong các tập lệnh đăng nhập của bạn, ví dụ / etc / profile hoặc ~ / .bashrc. Nó sẽ phụ thuộc vào phân phối của bạn.
Ví dụ: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwd
để in tên của thư mục làm việc hiện tại. Và bạn có nói rằng việc hoàn thành Tab cũng không hoạt động? . , là bạn phải không?)