Salah satu tip Terminal Mac OS X favorit saya adalah menambahkan proses menjalankan terakhir ke judul terminal menggunakan kode berikut di .bashrc Anda .
trap 'printf "\033]0; `history 1 | cut -b8-` \007"' DEBUG
Sekarang saya ingin menyesuaikan Bash prompt saya dari default menjadi sesuatu yang lebih fungsional. Apa sajakah contoh shell prompt yang berguna?
linux
bash
mac-osx
command-line-interface
Dave K
sumber
sumber
Saya memiliki skrip
~/bin/setprompt
yang dijalankan oleh saya.bashrc
, yang berisi:Script ini mengatur prompt ke nama host diikuti oleh
:)
jika perintah terakhir berhasil dan:(
jika perintah terakhir gagal.sumber
Namun ini adalah yang paling menakjubkan yang pernah saya lihat:
Cobalah. Ini memberikan informasi yang baik, tetapi sebenarnya akan menyebabkan beban pada kotak Anda meningkat hanya dengan menekan enter pada prompt!
sumber
Saya penggemar prompt bash Cygwin default:
atau tanpa warna:
seperti:
sumber
Saya suka memasukkan waktu di tambang. Memberi saya semacam built in di
time
sekitar perintah saya:Meskipun setelah melihat beberapa dari ini, itu membuat saya ingin membuat milik saya sedikit lebih pintar!
sumber
Ini milik saya (gulir ke kanan untuk melihat bit yang lebih menarik):
Inilah hasilnya:
Ketika saya di dalam repositori Git :
Saya memilih untuk menggunakan beberapa jeda baris dan "penggaris horizontal" untuk membuatnya lebih mudah untuk memindai buffer, dan begitu banyak nama jalur tidak mendorong kursor terlalu jauh ke kanan.
sumber
Dalam ksh:
Dalam profil saya., Saya mengatur var berikut (jadi var ini hanya ditetapkan sekali per sesi, tidak peduli berapa banyak su yang saya lakukan:
Di .kshrc saya, saya punya:
Saya menjadi root dengan alias berikut, daripada "su" (kroot adalah pengguna root dengan shell ksh bukannya sh (solaris) atau bash (linux):
Saya juga mendefinisikan dua fungsi ini:
dan akhirnya di akhir .kshrc saya punya:
Semua ini memberi saya secara otomatis pengaturan akhir dari prompt saya untuk menunjukkan apakah saya root (dan pada gilirannya jika saya memiliki orangtua yang root), direktori kerja saat ini, nama host, dan status keluar dari proses terakhir. sprompt menjatuhkan nama host, menyusutkan jalur ke hanya nama nama, dan menghapus spasi:
Alias root / me adalah bourne dari administrasi pra-sudo pada Solaris dan kebiasaan lama telah mati keras. Saya ragu ada orang yang akan menerapkan hal yang sama hari ini. Fungsi yang berubah dengan cepat dan status yang ada terus menjadi sangat berharga bagi saya.
sumber
Saya memiliki prompt yang sederhana, tetapi menggunakan warna untuk memberikan info tambahan:
Warna nama host (drewble, dalam hal ini) berbeda pada setiap mesin - ketika saya mendapatkan mesin baru yang saya kerjakan, saya memilih warna yang sewenang-wenang untuk mesin itu. Dengan begitu, ketika saya memiliki banyak terminal terbuka, mudah untuk mengetahui mesin mana yang mereka masukkan SSH dan mengurangi kesalahan yang saya buat dengan berada di mesin yang salah. Selain itu, ketika saya melakukannya
sudo -s
, saya memasukkan nama host di semua huruf besar dan warna merah usus besar, sekali lagi, ini mengurangi kesalahan dengan membuatnya jelas Anda bertindak sebagai root. Path (direktori home saya,~
dalam hal ini) berwarna hijau terang, yang membantu memisahkan jalur output; jika sesuatu menciptakan banyak output, mudah untuk menggulir ke atas dan melihat di mana output dimulai.sumber
Ini bukan shell prompt, tetapi itu adalah penyesuaian yang mungkin sesuai dengan semangat dari apa yang Anda minta.
Saya mengatur variabel lingkungan berikut:
Dengan cara ini, jika saya memiliki beberapa terminal terbuka melalui layar atau apa pun, saya tidak akan kehilangan sejarah ketika mereka saling beradu perubahan.
sumber
Ini menampilkan:
Dengan 'hostname' berwarna hijau jika kode pengembalian perintah yang terakhir dieksekusi adalah '0' dan merah jika itu> '0'.
sumber
Mirip dengan jawaban chaos , saya agak suka
yang memberi saya
Dengan menyertakan pengguna / host pada baris pertama, saya dapat dengan mudah menyalin seluruh garis path ketika saya menggunakan SCP , atau rsync untuk mengirim beberapa file ke direktori itu.
sumber
Untuk bash aku suka
PS1 = "\ h \ d \ t \ w \ n \ u>"
yang mengakibatkan:
myserver Sen Sep 07 07:43:11 / u08
root>
Jadi Anda mendapatkan nama host, tanggal dan waktu, jalur lengkap, dan kemudian nama pengguna pada baris baru, dengan prompt. Itu untuk meminimalkan pembungkus baris dalam direktori. Saya masuk dan keluar dari kotak sepanjang hari, jadi yang bisa saya lakukan untuk menjaganya tetap baik. Saya juga memiliki set dempul untuk mencatat semuanya. Saya bisa kembali dan melihat log, dan melihat persis apa yang saya lakukan ketika. Juga berguna untuk mengetahui urutan kejadian di beberapa jendela terminal sekaligus.
sumber
Prompt normal saya adalah
Ini memberi saya pengguna saat ini, direktori host saat ini saat ini ( tanpa mengganti $ HOME dengan ~),
screen
jendela saat ini dan pengembalian kesalahan terakhir. Karena saya biasanya memiliki 16 atau lebih layar windows terbuka, mengetahui yang saat ini berguna.sumber
Zsh prompt saya:
Biasanya, merah dan putih dengan direktori saat ini dalam warna pink. Jika root maka abu-abu gelap dengan nama host merah. Jika
$?
bukan 0 maka% akhir ditampilkan dengan warna merah.sumber