Terminal saya memiliki format prompt default seperti ini:
username @ boxname / path / ke / current / direktori $
Kode yang menghasilkannya terlihat seperti ini: (memiliki beberapa definisi warna juga)
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\]'
Jika jalur ke direktori saat ini terlalu lama, menjadi tidak menyenangkan untuk bekerja dengan terminal karena Anda terus-menerus memutus garis. Dalam kasus seperti itu saya lebih suka format yang menghasilkan string lebih pendek seperti ini:
username @ boxname current_dir_name $
Kode yang memproduksinya akan terlihat seperti ini (sekali lagi dengan warna):
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[01;34m\] $(basename ${PWD}) \$ \[\033[00m\]'
Adakah yang tahu bagaimana saya dapat dengan mudah beralih format jendela terminal saat ini dari satu gaya ke yang lain hanya dengan mengetik misalnya prompttoggle
:?
bash
gnome-terminal
Rotareti
sumber
sumber
PROMPT_DIRTRIM=0
danPROMPT_DIRTRIM=1
tampaknya lebih sederhana daripada beralih antara nilai yang berbeda untukPS1
dan hasilnya hampir sama. Terimakasih atas infonya!PROMPT_DIRTRIM
satu juga bisa menambahkan argumen ke perintah. Jika Anda tidak memberikan argumen, Anda beralih di antaraPROMPT_DIRTRIM=0
danPROMPT_DIRTRIM=1
dan jika Anda memberikan nomor sebagai argumen yang Anda tetapkanPROMPT_DIRTRIM
untuk itu.promptlen
akan menjadi nama yang lebih tepat untuk perintah itu.Jawaban:
Simpan
PS1
variabel panjang dan pendek Anda dengan nama yang berbeda:Pastikan untuk mengatur
PS1
ke salah satu dari mereka pada awalnya:Kemudian Anda bisa membuat alias seperti ini untuk beralih di antara dua nilai PS1:
Menambahkan keempat baris ke
~/.bashrc
file Anda akan melakukan perintah yang tersedia di sesi Bash Anda, berikut ini lagi untuk menyalin lebih mudah:sumber
Anda dapat menggunakan
bash
fungsi kecil :Fungsi di atas cocok jika saat ini
$PS1
berisibasename
, jika ya, makaPS1
tanpabasename
diatur jika tidak maka denganbasename
yang diatur.Masukkan fungsi Anda
~/.bashrc
untuk membuatnya tersedia di semua sesi interaktif.Contoh:
sumber
Atau ... buat dua fungsi yang sangat kecil dan tambahkan di akhir Anda
~/.bashrc
untuk prompt singkat, ketik
promptshort
, untuk kembali ke path lengkap, ketikpromptlong
\W
menunjukkan direktori kerja saat ini hanya begitu$(basename ${PWD})
berlebihanAnda dapat menggabungkan menjadi satu fungsi tetapi "panjang" dan "pendek" bersifat deskriptif dan keduanya memiliki penekanan tombol lebih sedikit daripada "beralih";)
Alih-alih menambahkan baris untuk menimpa PS1 saya lebih memilih untuk mengubah kode yang menetapkannya (misalnya, batalkan komentar
force_color_prompt=yes
dan edit baris setelah[ "$color_prompt" = yes ]; then
)sumber
Berikut adalah
~/.bashrc
definisi fungsi yang saya pribadi gunakan untuk mengatur ulang / mengganti prompt saya dari prompt biasa menjadi adil$
. Sesuaikan dengan kebutuhan sesuai kebutuhan Anda.sumber
Ini adalah jawaban untuk masalah Anda (direktori panjang memecah baris perintah) dan tidak khusus untuk pertanyaan Anda (bagaimana mengubah prompt perintah dengan cepat.)
Saya memecahkan masalah ini tahun lalu dengan prompt ini:
Apa yang dilakukan:
Ini memberi Anda semua ruang yang Anda butuhkan untuk perintah Anda, tidak menggesernya dengan benar ketika Anda berada dalam struktur direktori yang dalam, tidak memotong-motong garis pengetikan dengan kode warna (menghindari bug aneh yang kadang-kadang terjadi), sambil tetap memberi Anda warna petunjuk tentang di mana output dari satu perintah berakhir dan yang berikutnya dimulai:
sumber