Pertanyaan Bagaimana saya bisa memperpendek command line (bash) prompt saya?


Saat ini:

michael@Castle2012-Ubuntu-laptop01:~/Dropnot/webs/rails_v3/linker/spec/controllers$

Di luar mengganti nama mesin dan struktur direktori saya ...

Bagaimana saya bisa membuatnya menjadi sesuatu yang lebih seperti:

michael:controllers$

148
2018-06-02 18:48


asal


askubuntu.com/questions/816068/… - nazar2sfive


Jawaban:


Untuk mengubahnya hanya untuk instance terminal saat ini

Cukup masukkan PS1='\u:\W\$ ' dan tekan enter.


Untuk mengubahnya "secara permanen"

Di dalam Anda ~/.bashrc, temukan bagian berikut:

jika ["$ color_prompt" = ya]; kemudian
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u @ \ h \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ w \ [\ 033 [00m \] \ $ '
lain
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u @ \ h: \ w \ $'
fi

Hapus @\h, dan ganti \w dengan huruf besar \W, sehingga menjadi:

jika ["$ color_prompt" = ya]; kemudian
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ [\ 033 [01; 32m \] \ u \ [\ 033 [00m \]: \ [\ 033 [01; 34m \] \ W \ [\ 033 [00m \] \ $ '
lain
    PS1 = '$ {debian_chroot: + ($ debian_chroot)} \ u: \ W \ $'
fi

Simpan, keluar, tutup terminal dan mulai yang lain untuk melihat hasilnya.


Lebih banyak pilihan!

  • Lihat sini untuk howto yang lebih luas, dengan lebih banyak opsi
  • Lihat jawaban ini untuk menggunakan skrip Python kecil untuk mengatur prompt sehingga pemendekan hanya terjadi ketika Anda jauh di dalam struktur direktori.

213
2018-06-02 19:04



Anda juga dapat memiliki banyak informasi ... dan kemudian kembalinya di akhir seperti pada unix.stackexchange.com/q/88780/10043 - Michael Durrant
Apakah ada cara untuk menjadikan ini global? Dengan kata lain, jika saya sudo ke pengguna lain, apakah pengaturan ini terbawa, tetapi hanya untuk diri saya sendiri (yaitu, bukan untuk pengguna ketika mereka biasanya menggunakan akun mereka)? - ctote
Untuk memiliki .bashrc bersama yang berfungsi di Linux dan OSX sejak saya beralih ke unix.stackexchange.com/a/127800/10043 - Michael Durrant
yaitu HOST='\033[02;36m\]\h' HOST=' '$HOST parse_git_branch () { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'; } TIME='\033[01;31m\]\t \033[01;32m\]' LOCATION=' \033[01;34m\]pwd | sed "s # (/ [^ /] \ {1, \} / [^ /] \ {1, \} / [^ /] \ {1, \} /). * (/ [^ /] \ { 1, \} / [^ /] \ {1, \}) / \ {0,1 \} # \ 1_ \ 2 # g "' BRANCH=' \033[00;33m\]$(parse_git_branch)\[\033[00m\]\n\$ ' PS1=$TIME$USER$HOST$LOCATION$BRANCH PS2='\[\033[01;36m\]>' - Michael Durrant
tetapi lihat jawaban untuk kode aktual yang digunakan. - Michael Durrant


Jalankan kode ini di terminal saat ini

PROMPT_DIRTRIM=3

Sekarang bash prompt hanya akan menampilkan 3 nama direktori terakhir. Anda dapat memilih 1 untuk hanya menampilkan direktori saat ini. Informasi lebih lanjut tersedia dalam dokumentasi GNU.

Efeknya:

/var/lib/apt/lists# PROMPT_DIRTRIM=3
/.../lib/apt/lists# 

Jika Anda ingin membuatnya secara permanen, tambahkan baris berikut ke ~/.bashrc pada awalnya:

PROMPT_DIRTRIM=3

atau angka lain yang lebih besar dari nol.


83
2018-05-02 06:49



Hanya sidenote: Ini membutuhkan Bash 4. - Stefan Lasiewski
Bagus ... Saya menambahkan bach_alias untuk ini (dengan fungsi) promptdir() { PROMPT_DIRTRIM=$1; } hanya untuk membuat hidup lebih mudah ... - dgoosens


Ini adalah pengaturan prompt yang saya sukai:

ditambahkan ~/.bashrc 

PS1='[\u@\h \W]\$ '    

terlihat seperti ini:

[user@hostname dirname]$

(dengan spasi setelah $ tanda)


15
2017-10-10 03:08



Bagaimana saya menambahkan spasi di antara setiap kata? Juga, bisakah saya mewarnai itu? - Dani Springer


Secara pribadi saya lebih suka hanya melihat folder saat ini di bash prompt. Saya bisa melakukan ini dengan perintah berikut:

PS1='\W\$ '

Jika Anda ingin itu berlaku setelah setiap awal kemudian tambahkan perintah di atas ke ~ / .bashrc Anda.


6
2018-05-20 11:01





Saya menyadari ini super tua tapi karena tidak ada yang menyarankan membuat alias saya pikir saya akan posting. Menggunakan Urutan Escape Bash Prompt Saya membuat alias shorten 

Di ~/.bash_aliases di sini Anda akan melihat $ Blue var untuk mengatur warna prompt yang dapat Anda hilangkan atau ubah berdasarkan preferensi. Saya juga mengosongkan terminal ketika memanggil memendek.

alias c='clear'

alias shorten='PS1="$Blue$USER:\W$ "&& c'

Untuk mencapai string prompt yang diinginkan OP:

alias shorten='PS1="$USER:\W$ "'

Saya memiliki warna yang ditentukan ~/.bashrcsalin dan tempel dari https://wiki.archlinux.org/index.php/Color_Bash_Prompt. Di samping catatan ada apa dengan warna kode ansi? Saya bingung hanya melihatnya.

Blue='\e[0;34m'         # Blue

1
2017-10-26 21:03



Panduan langkah demi langkah untuk ini akan sangat berguna karena saya tidak tahu bagaimana menuju ke .bash_aliases. Terima kasih - Kayote
"." awalan menunjukkan direktori atau file tersembunyi. Tilde "~" adalah bentuk pendek dari variabel $ HOME. Jadi, "~ / .bash_aliases" hanyalah bentuk singkat dari "/home/$USER/.bash_aliases". Untuk membuka ".bash_aliases" Anda dapat membuka terminal dan mengetik "gedit /home/$USER/.bash_aliases" atau "gedit ~ / .bash_aliases" atau dalam jenis direktori home Anda ctrl-h untuk menampilkan file tersembunyi dan membuka file secara langsung. . Semoga itu membantu. Anda mungkin ingin melakukan pencarian Google untuk alias yang berguna juga. - Allie Carver