GNU/Linux >> Belajar Linux >  >> Linux

Bash Shell PS1:10 Contoh Membuat Prompt Linux Anda Seperti Angelina Jolie

Foto milik f1r3storm85

Pada artikel sebelumnya, kita telah membahas tentang variabel lingkungan Linux PS[1-4] dan PROMPT_COMMAND. Jika digunakan secara efektif, PS1 dapat memberikan informasi berharga langsung di command prompt.

Di Tomb Raider, Angelina Jolie memiliki semua gadget dan senjata di ujung jarinya untuk memecahkan misteri dengan penuh gaya. Meskipun gadget dan gaya Angelina Jolie sulit untuk ditandingi, setidaknya mari kita coba membuat prompt Linux lama yang bagus menjadi sangat fungsional dan bergaya menggunakan 10 contoh yang disediakan dalam artikel ini.

1. Tampilkan nama pengguna, nama host, dan direktori kerja saat ini di prompt

PS1 dalam contoh ini menampilkan tiga informasi berikut di prompt:

  • \u – Nama pengguna
  • \h – Nama Inang
  • \w – Jalur lengkap direktori kerja saat ini
-bash-3.2$ export PS1="\u@\h \w> "

ramesh@dev-db ~> cd /etc/mail
ramesh@dev-db /etc/mail>

2. Tampilkan waktu saat ini di prompt

Dalam variabel lingkungan PS1, Anda dapat langsung menjalankan perintah Linux apa pun, dengan menentukan dalam format $(linux_command). Dalam contoh berikut, perintah $(date) dijalankan untuk menampilkan waktu saat ini di dalam prompt.

ramesh@dev-db ~> export PS1="\u@\h [\$(date +%k:%M:%S)]> "

ramesh@dev-db [11:09:56]>

Anda juga dapat menggunakan \t untuk menampilkan waktu saat ini dalam format jj:mm:dd seperti yang ditunjukkan di bawah ini:

ramesh@dev-db ~> export PS1="\u@\h [\t]> "
ramesh@dev-db [12:42:55]>

Anda juga dapat menggunakan \@ untuk menampilkan waktu saat ini dalam format am/pm 12 jam seperti yang ditunjukkan di bawah ini:

ramesh@dev-db ~> export PS1="[\@] \u@\h> "
[04:12 PM] ramesh@dev-db>

3. Tampilkan output dari setiap perintah Linux di prompt

Anda dapat menampilkan output dari perintah Linux apa pun di prompt. Contoh berikut menampilkan tiga item yang dipisahkan oleh | (pipa) di command prompt:

  • \!: Nomor riwayat perintah
  • \h: nama host
  • $kernel_version: Output dari perintah uname -r dari variabel $kernel_version
  • \$?: Status perintah terakhir
ramesh@dev-db ~> kernel_version=$(uname -r)
ramesh@dev-db ~> export PS1="\!|\h|$kernel_version|\$?> "
473|dev-db|2.6.25-14.fc9.i686|0>

4. Ubah warna latar depan prompt

Tampilkan prompt dalam warna biru, bersama dengan nama pengguna, host, dan informasi direktori saat ini

$ export PS1="\e[0;34m\u@\h \w> \e[m"
[Note: This is for light blue prompt]

$ export PS1="\e[1;34m\u@\h \w> \e[m"
[Note: This is for dark blue prompt]
  • \e[ – Menunjukkan awal prompt warna
  • x;ym – Menunjukkan kode warna. Gunakan nilai kode warna yang disebutkan di bawah.
  • \e[m – menunjukkan akhir dari prompt warna

Tabel Kode Warna:

Black 0;30
Blue 0;34
Green 0;32
Cyan 0;36
Red 0;31
Purple 0;35
Brown 0;33
[Note: Replace 0 with 1 for dark color]

Buat perubahan warna permanen dengan menambahkan baris berikut ke .bash_profile atau .bashrc

STARTCOLOR='\e[0;34m';
ENDCOLOR="\e[0m"
export PS1="$STARTCOLOR\u@\h \w> $ENDCOLOR"

5. Ubah warna latar belakang prompt

Ubah warna latar belakang dengan menentukan \e[{code}m di perintah PS1 seperti yang ditunjukkan di bawah ini.

$ export PS1="\e[47m\u@\h \w> \e[m"
[Note: This is for Light Gray background]

Kombinasi latar belakang dan latar depan

export PS1="\e[0;34m\e[47m\u@\h \w> \e[m"
[Note: This is for Light Blue foreground and Light Gray background]

Tambahkan berikut ini ke .bash_profile atau .bashrc untuk membuat warna latar belakang dan latar depan di atas permanen.

STARTFGCOLOR='\e[0;34m';
STARTBGCOLOR="\e[47m"
ENDCOLOR="\e[0m"
export PS1="$STARTFGCOLOR$STARTBGCOLOR\u@\h \w> $ENDCOLOR"

Bermain-main dengan menggunakan warna latar belakang berikut dan pilih yang sesuai dengan selera Anda:

  • \e[40m
  • \e[41m
  • \e[42m
  • \e[43m
  • \e[44m
  • \e[45m
  • \e[46m
  • \e[47m

6. Tampilkan beberapa warna di prompt

Anda juga dapat menampilkan beberapa warna dalam prompt yang sama. Tambahkan fungsi berikut ke .bash_profile

function prompt {
  local BLUE="\[\033[0;34m\]"
  local DARK_BLUE="\[\033[1;34m\]"
  local RED="\[\033[0;31m\]"
  local DARK_RED="\[\033[1;31m\]"
  local NO_COLOR="\[\033[0m\]"
  case $TERM in
    xterm*|rxvt*)
      TITLEBAR='\[\033]0;\u@\h:\w\007\]'
      ;;
    *)
      TITLEBAR=""
      ;;
  esac
  PS1="\u@\h [\t]> "
  PS1="${TITLEBAR}\
  $BLUE\u@\h $RED[\t]>$NO_COLOR "
  PS2='continue-> '
  PS4='$0.$LINENO+ '
}

Anda dapat masuk kembali agar perubahan diterapkan atau sumber .bash_profile seperti yang ditunjukkan di bawah ini.

$. ./.bash_profile
$ prompt
ramesh@dev-db [13:02:13]>

7. Ubah warna prompt menggunakan tput

Anda juga dapat mengubah warna prompt PS1 menggunakan tput seperti yang ditunjukkan di bawah ini:

$ export PS1="\[$(tput bold)$(tput setb 4)$(tput setaf 7)\]\u@\h:\w $ \[$(tput sgr0)\]"

Kemampuan Warna tput:

  • tput setab [1-7] – Atur warna latar belakang menggunakan ANSI escape
  • tput setb [1-7] – Mengatur warna latar belakang
  • tput setaf [1-7] – Atur warna latar depan menggunakan ANSI escape
  • tput setf [1-7] – Mengatur warna latar depan

Kemampuan Mode Teks tput:

  • tcetak tebal – Setel mode tebal
  • tput redup – aktifkan mode setengah terang
  • tput smul – mulai mode garis bawah
  • tput rmul – keluar dari mode garis bawah
  • tput rev – Aktifkan mode mundur
  • tput smso – Masuk ke mode menonjol (tebal di rxvt)
  • tput rmso – Keluar dari mode menonjol
  • tput sgr0 – Matikan semua atribut

Kode Warna untuk tput:

  • 0 – Hitam
  • 1 – Merah
  • 2 – Hijau
  • 3 – Kuning
  • 4 – Biru
  • 5 – Magenta
  • 6 – Cyan
  • 7 – Putih

8. Buat prompt Anda sendiri menggunakan kode yang tersedia untuk variabel PS1

Gunakan kode berikut dan buat prompt PS1 Linux pribadi Anda yang fungsional dan sesuai dengan selera Anda. Kode mana dari daftar ini yang akan sangat membantu untuk penggunaan sehari-hari? Tinggalkan komentar Anda dan beri tahu saya kode PS1 apa yang Anda gunakan untuk prompt Linux Anda.

  • \a karakter lonceng ASCII (07)
  • \d tanggal dalam format “Tanggal Bulan Kerja” (mis., “Selasa 26 Mei”)
  • \D{format} – format diteruskan ke strftime(3) dan hasilnya dimasukkan ke dalam string prompt; format kosong menghasilkan representasi waktu spesifik lokal. Kawat gigi diperlukan
  • \e karakter pelarian ASCII (033)
  • \h nama host hingga bagian pertama
  • \H nama host
  • \j jumlah pekerjaan yang saat ini dikelola oleh shell
  • \l nama dasar nama perangkat terminal shell
  • \n baris baru
  • \r kereta kembali
  • \s nama shell, nama dasar $0 (bagian setelah garis miring terakhir)
  • \t waktu saat ini dalam format 24 jam JJ:MM:SS
  • \T waktu saat ini dalam format 12 jam JJ:MM:SS
  • \@ waktu saat ini dalam format am/pm 12 jam
  • \A waktu saat ini dalam format JJ:MM 24 jam
  • \u nama pengguna pengguna saat ini
  • \v versi bash (mis., 2.00)
  • \V rilis bash, versi + level patch (mis., 2.00.0)
  • \w direktori kerja saat ini, dengan $HOME disingkat dengan tilde
  • \W nama dasar direktori kerja saat ini, dengan $HOME disingkat dengan tilde
  • \! nomor riwayat perintah ini
  • \# nomor perintah dari perintah ini
  • \$ jika UID efektif adalah 0, a #, jika tidak $
  • \nnn karakter yang sesuai dengan bilangan oktal nnn
  • \\ garis miring terbalik
  • \[ memulai urutan karakter non-cetak, yang dapat digunakan untuk menyematkan urutan kontrol terminal ke dalam prompt
  • \] mengakhiri urutan karakter non-cetak

9. Gunakan fungsi bash shell di dalam variabel PS1

Anda juga dapat menjalankan fungsi bash shell di PS1 seperti yang ditunjukkan di bawah ini.

ramesh@dev-db ~> function httpdcount {
>  ps aux | grep httpd | grep -v grep | wc -l
> }

ramesh@dev-db ~> export PS1="\u@\h [`httpdcount`]> "
ramesh@dev-db [12]>
[Note: This displays the total number of running httpd processes]

Anda dapat menambahkan baris berikut ke .bash_profile atau .bashrc untuk membuat perubahan ini permanen:

function httpdcount {
  ps aux | grep httpd | grep -v grep | wc -l
}
export PS1='\u@\h [`httpdcount`]> '

10. Gunakan skrip shell di dalam variabel PS1

Anda juga dapat menjalankan skrip shell di dalam variabel PS1. Pada contoh di bawah, ~/bin/totalfilesize.sh, yang menghitung total ukuran file dari direktori saat ini, dipanggil di dalam variabel PS1.

ramesh@dev-db ~> cat ~/bin/totalfilesize.sh

for filesize in $(ls -l . | grep "^-" | awk '{print $5}')
do
  let totalsize=$totalsize+$filesize
done
echo -n "$totalsize"

ramesh@dev-db ~> export PATH=$PATH:~/bin
ramesh@dev-db ~> export PS1="\u@\h [\$(totalfilesize.sh) bytes]> "
ramesh@dev-db [534 bytes]> cd /etc/mail
ramesh@dev-db [167997 bytes]>
[Note: This executes the totalfilesize.sh to display the total
       file size of the current directory in the PS1 prompt]


Berapa banyak kustomisasi yang telah Anda lakukan pada PS1 Anda? Bisakah PS1 Anda mengalahkan Angelina Jolie? Tinggalkan komentar dan bagikan PS1 Anda nilai prompt.

Bacaan yang Disarankan

Bash Cookbook, oleh Carl Albing, JP Vossen dan Cameron Newham . Bash adalah cangkang yang sangat kuat. Buku ini akan membantu Anda menguasai bash shell dan menjadi sangat produktif. Apakah Anda seorang sysadmin, DBA atau pengembang, Anda harus menulis skrip shell di beberapa titik. Seorang sysadmin yang bijaksana tahu bahwa setelah Anda menguasai teknik skrip shell, Anda dapat menempatkan server Anda pada mode auto-pilot dengan membiarkan skrip shell melakukan pekerjaan kasar. Untuk masuk ke mode auto-pilot sysadmin, Anda pasti perlu menguasai contoh-contoh yang diberikan dalam buku masak ini. Ada beberapa buku shell Bash yang tenang di luar sana. Namun, buku ini melengkapi semuanya dengan memberikan banyak contoh mendetail.
 
Rekomendasi buku Linux tambahan:12 Buku Linux yang Menakjubkan dan Esensial Untuk Memperkaya Otak dan Perpustakaan Anda
 
Jika Anda menyukai artikel ini, silakan bookmark di del.icio.us dan Stumble it.


Linux
  1. Cara mengubah warna terminal Linux Anda

  2. Sorot Pemisah Jalur Di Ps1?

  3. 9 UNIX / Linux tput Contoh:Kontrol Warna Terminal dan Kursor Anda

  1. Cara mengatur variabel $PATH Anda di Linux

  2. 12 Contoh Bash For Loop untuk Scripting Shell Linux Anda

  3. Mendorong prompt PS1 saya melalui ssh

  1. Dinginkan prompt Bash Anda di Linux

  2. Cara Mempercantik Terminal dan Shell Linux Anda

  3. Bagaimana Cara Mempersingkat Bash Prompt di Linux?