Pada salah satu server saya, promptnya adalah [user @ host path] ... dan saya benar-benar dapat menekan "tab" untuk mengisi path secara otomatis.
Tetapi pada server Ubuntu baru saya, itu hanya tanda dolar?
Pada salah satu server saya, promptnya adalah [user @ host path] ... dan saya benar-benar dapat menekan "tab" untuk mengisi path secara otomatis.
Tetapi pada server Ubuntu baru saya, itu hanya tanda dolar?
Jawaban:
Karena Anda mengajukan dua pertanyaan, saya akan menjawab keduanya.
Karena Anda shell tidak mendukungnya, atau penyelesaian tab tidak diaktifkan.
Untuk mengatasinya, Anda harus terlebih dahulu menemukan apa cangkang Anda. Pada mesin yang cangkangnya Anda nikmati, jalankan
echo $SHELL
Anda mungkin melihat kesamaan /bin/bash, atau sesuatu yang kurang umum seperti /bin/tcsh, /bin/zshatau sesuatu yang lain sama sekali.
Sekarang, Anda dapat mengganti shell di mesin Ubuntu. Pada mesin itu, pertama-tama pastikan bahwa shell yang Anda inginkan ada. Karena shell mungkin tidak berada di lokasi yang sama di mesin Ubuntu seperti di yang lain, periksa lokasi dengan mengetik
which bash
Ini akan memberi Anda jalan shell yang Anda inginkan, sesuatu seperti /bin/bash, /usr/bin/bash, atau /usr/local/bin/bash. Tentu saja, jika Anda ingin shell selain bash, Anda akan mengatakan which tcsh, which zsh, atau serupa.
Jika Anda tidak melihat jalur, tetapi sebaliknya melihat bash not found, maka Anda harus menginstal paket yang sesuai, dan sekali lagi gunakan whichuntuk mencari tahu di mana shell diinstal.
Dengan jalur shell yang Anda pilih, Anda akhirnya dapat mengubah shell Anda dengan menjalankan
chsh -s /bin/bash
mengganti /bin/bashdengan apa pun jalan yang sesuai untuk shell pilihan Anda.
Karena variabel lingkungan prompt Anda $PS1, $PS2dan sebagainya. Hal-hal ini cenderung tidak mudah dibawa-bawa, jadi inilah beberapa tautan untuk calon yang mungkin:
bashmemiliki manual yang luas , dengan halaman pada Bash Variables (termasuk PS1, & c) dan Mencetak Prompt (yang menjelaskan PROMPT_COMMAND, nama panjang untuk PS1). Tambahkan baris berikut ke~/.bashrc
export PS1='[\u@\h \w] '
tcshmemiliki manual online (hanya halaman manualnya), dengan bagian tentang variabel lingkungan prompt . Tambahkan baris berikut ke~/.tcshrc
set prompt='[%n@%m %~] '
zshmemiliki panduan pengguna , dengan panduan sederhana untuk prompt , serta manual , dengan referensi yang sangat rinci tentang Perluasan Prompt . Tambahkan baris berikut ke~/.zshrc
export PS1='[%n@%m %~] '
Bash bukan satu-satunya shell.
Masalah Anda bisa menjadi masalah sederhana karena tidak memiliki .profile atau .bashrc yang mengatur PS1, atau bisa jadi shell login Anda tidak bash sama sekali.
Bash menggunakan gnu readlineuntuk hal-hal seperti penyelesaian tab. Ini adalah subjek yang rumit dan readline bahkan memiliki file konfigurasi per-pengguna sendiri.
Lihat man bash, man sh, dan man 3 readline. Bash merespons --version. Pada banyak sistem linux, /bin/shsebenarnya bukan bash, tetapi biasanya versi lumpuh ash.
dashbukan ash? Saya pikir saya membaca sesuatu seperti ini
Saya kira, Anda tidak menggunakan bash, tetapi sh dan prompt Anda tidak diatur dengan benar (jika ini bahkan mungkin dengan sh).
Anda bisa mendapatkan shell Anda saat ini dengan mengetik: echo $SHELL
jika Anda ingin memulai bash, ketikkan saja bash
sh. Echoing $SHELLakan mencetak variabel lingkungan yang disebut SHELL. Variabel lingkungan ini hanya menunjuk ke shell, dan hanya diset oleh bash. Ini kira-kira tidak berguna dalam menentukan shell mana yang sedang berjalan, karena hanya mengindikasikan, lemah, bahwa beberapa induk dari proses saat ini mungkin bash.
/bin/sh, ya. Tapi saya tahu tidak ada shell yang namanya sh. Saya bisa memikirkan ash, ksh, csh, bash, zsh, dan tcsh. Yang pertama adalah biasa / bin / sh di linux dan NetBSD, yang terakhir adalah shell FreeBSD biasa, dan yang lainnya adalah shell opsional. Banyak lingkungan desktop mengubah shell login pengguna menjadi bash sambil membiarkan / bin / sh sebagai abu.
shadalah shell Bourne. en.wikipedia.org/wiki/Bourne_shell Beberapa sistem (Solaris) masih dilengkapi dengan versi Bourne shell yang bukan hanya salinan dari salah satu implementasi ulang (abu, tanda hubung, bash, ksh, zsh).
Anda perlu mengatur variabel yang disebut PS1 pada salah satu skrip login Anda, misalnya / etc / profile atau ~ / .bashrc. Itu akan tergantung pada distribusi Anda.
Contoh: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwduntuk mencetak nama direktori kerja saat ini. Dan apakah Anda mengatakan bahwa penyelesaian Tab juga tidak berfungsi? (Pada beberapa mesin yang saya gunakan, saya mendapatkan prompt pendek hanya jika saya login sebagai root, dan saya dengan senang hati meninggalkannya di tempat sebagai peringatan yang bagus. Seperti yang jarang terjadi, jika pernah, perlu login sebagai root: Anda tidak menggunakan root , kamu?)