Αρχική σελίδα » πως να » Πώς να προσαρμόσετε (και να χρωματίσετε) το Bash Prompt

    Πώς να προσαρμόσετε (και να χρωματίσετε) το Bash Prompt

    Οι περισσότερες διανομές Linux ρυθμίζουν τη γραμμή εντολών Bash για να μοιάζουν με κάτι παρόμοιο username @ hostname: directory $ . Αλλά μπορείτε να διαμορφώσετε την προτροπή Bash να περιέχει ό, τι θέλετε και ακόμη και να επιλέξετε τα χρώματα που θέλετε.

    Τα βήματα του παραδείγματος έγιναν στο Ubuntu 16.04 LTS. Η διαδικασία θα πρέπει να είναι η ίδια σε άλλες διανομές Linux, αν και η προεπιλεγμένη γραμμή εντολών Bash και οι ρυθμίσεις στο αρχείο .bashrc μπορεί να είναι λίγο διαφορετικές.

    Όπου αποθηκεύεται η Prompt Variable

    Η διαμόρφωση προτροπής Bash αποθηκεύεται στο αρχείο .bashrc του λογαριασμού χρήστη που βρίσκεται στο ~ / .bashrc. Έτσι, εάν το όνομα χρήστη σας είναι bob, το αρχείο βρίσκεται στο /home/bob/.bashrc.

    Μπορείτε να ανοίξετε το αρχείο για να δείτε την τρέχουσα μεταβλητή Bash. Θα χρησιμοποιήσουμε το nano ως παράδειγμα για τον επεξεργαστή κειμένου, παρόλο που θα μπορούσατε επίσης να χρησιμοποιήσετε το vi, emacs ή οποιοδήποτε άλλο πρόγραμμα επεξεργασίας κειμένου που σας εξυπηρετεί. Ανοίξτε ένα τερματικό και εκτελέστε:

    nano ~ / .bashrc

    Κάντε κύλιση προς τα κάτω στο PS1 = Ενότητα. Η πρώτη μεταβλητή φαίνεται μάλλον περίπλοκη επειδή περιέχει πληροφορίες χρώματος - θα το εξηγήσουμε αργότερα. Η δεύτερη μεταβλητή, χωρίς πληροφορίες χρώματος, έχει ως εξής:

    $ debian_chroot: + ($ debian_chroot) \ u @ \ h: \ w \ $

    Αυτό είναι ακόμα λίγο περίπλοκο λόγω του $ debian_chroot: + ($ debian_chroot) bits. Αυτά ακριβώς λένε στον Bash για να σας ενημερώσουν αν χρησιμοποιείτε ένα περιβάλλον chroot του Debian και συνήθως δεν θα εμφανίζονται. Αν αγνοήσουμε αυτά, εδώ είναι η προεπιλεγμένη δομή της μεταβλητής προτροπής Bash:

    \ u @ \ h: \ w \ $

    \ u υποδηλώνει το όνομα χρήστη σας, @ δείχνει το σύμβολο @, \ h υποδηλώνει το όνομα κεντρικού υπολογιστή (όνομα υπολογιστή), : υποδηλώνει το χαρακτήρα:, \ w δείχνει τον κατάλογο εργασίας και \ $ υποδηλώνει ένα $ εάν είστε κανονικός λογαριασμός χρήστη ή # αν είστε root. Έτσι, το βάζετε όλοι μαζί, το παίρνετε username @ hostname: working_directory $.

    Για να αλλάξετε τη γραμμή εντολών Bash, απλά πρέπει να προσθέσετε, να αφαιρέσετε ή να αναδιατάξετε τους ειδικούς χαρακτήρες στη μεταβλητή PS1. Αλλά υπάρχουν πολλές περισσότερες μεταβλητές που μπορείτε να χρησιμοποιήσετε από τις προεπιλεγμένες.

    Αφήστε τον επεξεργαστή κειμένων για το now-in nano, πατήστε Ctrl + X για έξοδο. Θα σας δείξουμε πώς να πειραματιστείτε με τις μεταβλητές πριν γράψετε ένα νέο στο αρχείο .bashrc.

    Πώς να δημιουργήσετε μια προσαρμοσμένη γραμμή εντολών

    Η διαμόρφωση προτροπής Bash αποθηκεύεται στη μεταβλητή PS1. Για να αποθηκεύσετε τα περιεχόμενα της μεταβλητής PS1 σε μια νέα μεταβλητή, εκτελέστε την ακόλουθη εντολή:

    DEFAULT = $ PS1

    Τώρα μπορείτε να ορίσετε τη μεταβλητή PS1 σε διαφορετικές τιμές για να πειραματιστείτε. Για παράδειγμα, η πρώτη γραμμή εδώ θα ορίζει την προτροπή σας σε μια βασική εντολή "user $", ενώ η δεύτερη θα ορίσει την προτροπή σας σε ένα βασικό prompt "user: working_directory $".

    PS1 = "\ u \ $" PS1 = "\ u: \ w \ $"

    Εάν θέλετε να επιστρέψετε στην προεπιλεγμένη σας προτροπή, εκτελέστε την ακόλουθη εντολή.

    PS1 = $ DEFAULT

    Το Bash θα αποκατασταθεί στην προεπιλεγμένη προτροπή του, χάρη στο γεγονός ότι αποθηκεύσατε αυτές τις προεπιλεγμένες ρυθμίσεις νωρίτερα. Σημειώστε ότι οι τυχόν αλλαγές που κάνετε εδώ είναι μόνο προσωρινές για την τρέχουσα συνεδρία Bash, έτσι ώστε να μπορείτε πάντα να αποσυνδεθείτε και να συνδεθείτε ξανά ή να κλείσετε και να ανοίξετε ξανά το παράθυρο του τερματικού για να επιστρέψετε στην προεπιλεγμένη σας προτροπή. Αλλά η παραπάνω γραμμή καθιστά δυνατή την εύκολη επιστροφή στην προεπιλεγμένη σας εντολή Bash χωρίς την ταλαιπωρία της αποσύνδεσης ή του κλεισίματος ενός παραθύρου.

    Μπορείτε να προσθέσετε οποιονδήποτε χαρακτήρα ή κείμενο στη μεταβλητή. Έτσι, για να προθέσετε την προεπιλεγμένη προτροπή με το "Hello World", θα μπορούσατε να χρησιμοποιήσετε:

    PS1 = "Γεια σας κόσμος \ u @ \ h: \ w \ $"

    Τώρα που έχετε τα βασικά κάτω, απλά πρέπει να ξέρετε ποιοι είναι οι ειδικοί χαρακτήρες. Πιθανότατα δεν θα σας ενδιαφέρει πολλά από αυτά, αλλά εδώ είναι ο πλήρης κατάλογος όπως εμφανίζεται στο εγχειρίδιο του Bash:

    • Χαρακτήρας κουδουνιού: \ένα
    • Η ημερομηνία, στη μορφή "Μήνας εβδομάδας" (π.χ. "Τρίτη 26 Μαΐου"): \ρε
    • Η μορφή διαβιβάζεται στο strftime (3) και το αποτέλεσμα εισάγεται στη συμβολοσειρά προτροπής. μια κενή μορφή οδηγεί σε μια τοπική παράσταση χρόνου. Τα τιράντες απαιτούνται: \ D format
    • Ένας χαρακτήρας διαφυγής: \μι
    • Το όνομα του κεντρικού υπολογιστή, μέχρι την πρώτη '.': \ h
    • Το όνομα κεντρικού υπολογιστή: \ Η
    • Ο αριθμός των θέσεων εργασίας που διαχειρίζεται αυτή τη στιγμή το κέλυφος: \ j
    • Η βασική ονομασία του ονόματος τερματικού συσκευής του κελύφους: \μεγάλο
    • Μια νέα γραμμή: \ n
    • Μια επιστροφή μεταφοράς: \ r
    • Το όνομα του κελύφους, η βασική τιμή του $ 0 (το τμήμα που ακολουθεί την τελική κάθετο): \μικρό
    • Η ώρα, σε μορφή 24 ωρών HH: MM: SS: \ t
    • Η ώρα, σε μορφή 12 ωρών HH: MM: SS: \ T
    • Η ώρα, σε μορφή 12 ωρών am / pm: \ @
    • Η ώρα, σε 24ωρη μορφή HH: MM: \ΕΝΑ
    • Το όνομα χρήστη του τρέχοντος χρήστη: \ u
    • Η έκδοση του Bash (π.χ., 2,00): \ v
    • Η απελευθέρωση του Bash, έκδοση + patchlevel (π.χ., 2.00.0): \ V
    • Ο τρέχων κατάλογος εργασίας, με $ HOME συντομεύτηκε με tilde (χρησιμοποιεί τη μεταβλητή $ PROMPT_DIRTRIM): \ w
    • Η βασική ονομασία του $ PWD, με $ HOME συντετμημένη με ένα tilde: \ W
    • Ο αριθμός ιστορικού αυτής της εντολής: \!
    • Ο αριθμός εντολής αυτής της εντολής: \ #
    • Αν το πραγματικό uid είναι 0, #, αλλιώς $: \ $
    • Ο χαρακτήρας του οποίου ο κώδικας ASCII είναι η οκταδική τιμή nnn: \ nnn
    • Μια αντίστροφη κάθετος: \\
    • Ξεκινήστε μια σειρά χαρακτήρων που δεν εκτυπώνονται. Αυτό θα μπορούσε να χρησιμοποιηθεί για την ενσωμάτωση μιας ακολουθίας ελέγχου τερματικού στην προτροπή: \ [
    • Τερματίστε μια ακολουθία χαρακτήρων που δεν εκτυπώνονται: \]

    Αν λοιπόν θέλετε να προσθέσετε την ημερομηνία και την ώρα στην εντολή Bash και να βάλετε τον κατάλογο εργασίας στην εντολή σε μια δεύτερη γραμμή, θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη κατασκευή:

    PS1 = "[\ d \ t] \ u @ \ h \ n \ w \ $"

    Οι αγκύλες εδώ δεν είναι καθόλου απαραίτητες, αλλά βοηθούν να σπάσουν τα πράγματα οπτικά και να κάνουν τη γραμμή ευκολότερη στην ανάγνωση. Όπως καλύφθηκε νωρίτερα, μπορείτε να προσθέσετε οποιοδήποτε κείμενο ή κανονικούς χαρακτήρες στη μεταβλητή που σας αρέσει, οπότε αισθανθείτε ελεύθερος να χρησιμοποιήσετε ό, τι δουλεύει για εσάς.

    Υπάρχει ένα πιο ισχυρό τέχνασμα για το οποίο πρέπει να ξέρετε: Μπορείτε να προσθέσετε την έξοδο οποιασδήποτε εντολής στην προτροπή. Κάθε φορά που εμφανίζεται η ερώτηση, ο Bash θα εκτελέσει την εντολή και θα συμπληρώσει τις τρέχουσες πληροφορίες. Για να το κάνετε αυτό, συμπεριλάβετε απλώς οποιαδήποτε εντολή θέλετε να τρέξετε μεταξύ δύο ' χαρακτήρες. Αυτό δεν είναι ένα απόστροφο - αυτή είναι η σοβαρή προφορά, η οποία εμφανίζεται πάνω από το πλήκτρο Tab στο πληκτρολόγιό σας.

    Για παράδειγμα, ας πούμε ότι θέλετε να δείτε την έκδοση του πυρήνα του Linux στην προτροπή. Θα μπορούσατε να χρησιμοποιήσετε μια γραμμή όπως τα εξής:

    PS1 = "\ u @ \ h σε 'uname -s -r' \ w \ $"

    Ως άλλο παράδειγμα, ας υποθέσουμε ότι θέλετε να δείτε το χρόνο λειτουργίας και το μέσο όρο φόρτωσης του συστήματος, όπως εμφανίζεται από το uptime εντολή. Θα μπορούσατε να χρησιμοποιήσετε την ακόλουθη κατασκευή, η οποία θέτει το uptime στη δική της γραμμή πριν από το υπόλοιπο της προτροπής.

    PS1 = "('χρόνος λειτουργίας') \ n \ u @ \ h: \ w $"

    Μη διστάσετε να δοκιμάσετε διαφορετικούς ειδικούς χαρακτήρες και εντολές για να συναρμολογήσετε την ιδανική γραμμή εντολών.

    Πώς να προσθέσετε χρώματα στη γραμμή βάσης σας

    Αφού καταλάβετε την προτιμώμενη προτροπή σας, μπορείτε να προσθέσετε χρώματα σε αυτήν. Αυτό είναι πραγματικά πολύ απλό, αλλά κάνει τη μεταβλητή να μοιάζει τρομερά βρώμικη και περίπλοκη αν δεν καταλαβαίνετε τι ψάχνετε.

    Για παράδειγμα, η προεπιλεγμένη μεταβλητή προτροπής χρώματος από την προηγούμενη ήταν:

    $ debian_chroot: + ($ debian_chroot) \ [\ 033 [01; 32m \] \ u @ \ h \ [033 [00m \]: \ [033 [01; [00m \] \ $

    Ή, αφαιρώντας ξανά τα bits debian_chroot:

    \ [033 [01; 32m \] \ u @ \ h \ [033 [00m \]: \ [033 [01; 34m \] \ w \

    Αυτό είναι ακριβώς το \ u @ \ h: \ w $ μεταβλητή από παλαιότερη, αλλά με χρωματικές πληροφορίες. Πραγματικά, μπορούμε να το χωρίσουμε σε μερικά τμήματα:

    \ [033 [01; 32m \]\ u @ \ h \ [033 [00m \]: \ [033 [01; 34m \]\ w \ [033 [00m \]\ $

    Το πρώτο τμήμα είναι το \ u @ \ h bit, που ακολουθείται από πληροφορίες χρώματος που την μετατρέπει σε πράσινο χρώμα. Το δεύτερο είναι το : χαρακτήρα, που προηγείται από πληροφορίες χρώματος που αφαιρούν οποιοδήποτε χρώμα. Το τρίτο είναι το \ w bit, που ακολουθείται από πληροφορίες χρώματος που μετατρέπονται σε μπλε χρώμα. Το τέταρτο είναι το \ $ bit, που ακολουθείται από πληροφορίες χρώματος που αφαιρούν οποιοδήποτε χρώμα.

    Αφού καταλάβετε πώς να κατασκευάσετε ετικέτες χρώματος της δικής σας, μπορείτε να προσθέσετε όσα χρώματα θέλετε σε οποιεσδήποτε ενότητες της προτροπής σας Bash θέλετε.

    Εδώ πρέπει να γνωρίζετε: Πρέπει να συμπεριλάβετε ολόκληρη την πληροφορία κωδικού χρώματος μεταξύ του \ [  και \]μικρό. Μέσα στην ετικέτα, πρέπει να ξεκινήσετε και με τα δύο \ 033 [ ή \μι[ για να δείξει στο Bash ότι πρόκειται για πληροφορίες χρώματος. Και τα δυο \ 033 [ και \μι[ κάνετε το ίδιο πράγμα. \μι[ είναι μικρότερη, ώστε να είναι πιο βολικό για χρήση, αλλά θα το χρησιμοποιήσουμε \ 033 [ εδώ καθώς ταιριάζει με αυτό που χρησιμοποιείται από προεπιλογή. Στο τέλος της ετικέτας, πρέπει να τελειώσετε m \ για να υποδείξετε το τέλος μιας ετικέτας χρώματος.

    Διαγράφοντας αυτό το σημείο, εδώ θα μοιάζει με κάθε ετικέτα χρώματος. Η μόνη διαφορά είναι οι πληροφορίες που προσθέτετε στη θέση COLOR για να ορίσετε το πραγματικό χρώμα:

    \ [\ 033 [ΧΡΩΜΑm \]

    Το Bash σάς επιτρέπει να αλλάξετε το χρώμα του κειμένου προσκηνίου, να προσθέσετε στο κείμενο κείμενα όπως "έντονα" ή "υπογραμμισμένα" και να ορίσετε ένα χρώμα φόντου.

    Ακολουθούν οι τιμές για το κείμενο του προσκηνίου:

    • Μαύρο: 30
    • Μπλε: 34
    • Κυανό: 36
    • Πράσινο: 32
    • Μωβ: 35
    • Κόκκινο: 31
    • Λευκό: 37
    • Κίτρινο: 33

    Για παράδειγμα, επειδή το πορφυρό κείμενο είναι κωδικός χρώματος 32, θα χρησιμοποιούσατε \ [\ 033 [32m \]  για μοβ κείμενο.

    Μπορείτε επίσης να ορίσετε ένα χαρακτηριστικό για το κείμενο. Αυτό το χαρακτηριστικό πρέπει να προστεθεί πριν από τον αριθμό χρώματος, χωρισμένο με ερωτηματικό (;). Το κείμενο με αυτά τα χαρακτηριστικά θα φαίνεται διαφορετικά σε διαφορετικούς εξομοιωτές τερματικών.

    Ακολουθούν οι τιμές για τα χαρακτηριστικά κειμένου:

    • Κανονικό κείμενο: 0
    • Έντονο ή ελαφρύ κείμενο: 1 (Εξαρτάται από τον εξομοιωτή τερματικού.)
    • Dim Text: 2
    • Υπογραμμισμένο κείμενο: 4
    • Κείμενο που αναβοσβήνει: 5 (Αυτό δεν λειτουργεί στα περισσότερα εξομοιωτές τερματικών.)
    • Αντιστροφή Κειμένου: 7 (Αυτό αναστρέφει τα χρώματα του προσκηνίου και του φόντου, έτσι θα δείτε μαύρο κείμενο σε λευκό φόντο, εάν το τρέχον κείμενο είναι λευκό κείμενο σε μαύρο φόντο.)
    • Κρυμμένο κείμενο: 8

    Δεν χρειάζεται πραγματικά να συμπεριλάβετε το χαρακτηριστικό γνώρισμα κανονικού κειμένου. Αυτή είναι η προεπιλογή, ούτως ή άλλως.

    Για παράδειγμα, επειδή το κόκκινο κείμενο είναι κωδικός 31 και το έντονο κείμενο είναι κωδικός 1, θα το χρησιμοποιούσατε \ [\ 033 [1 · 31m \] για το έντονο κόκκινο κείμενο.

    Μπορείτε επίσης να καθορίσετε ένα χρώμα φόντου, αλλά δεν μπορείτε να προσθέσετε ένα χαρακτηριστικό σε ένα χρώμα φόντου.

    Ακολουθούν οι τιμές για τα χρώματα φόντου:

    • Μαύρο φόντο: 40
    • Μπλε φόντο: 44
    • Κυανό υπόβαθρο: 46
    • Πράσινο υπόβαθρο: 42
    • Μωβ φόντο: 45
    • Κόκκινο φόντο: 41
    • Λευκό υπόβαθρο: 47
    • Κίτρινο φόντο: 43

    Για παράδειγμα, επειδή ένα μπλε φόντο είναι ο κωδικός 44, \ [\ 033 [44m \] θα καθορίσει ένα μπλε φόντο.

    Μπορείτε να καθορίσετε ετικέτες χρώματος προσκηνίου και φόντου. Για παράδειγμα, το 42 αντιπροσωπεύει ένα πράσινο φόντο και το 31 αντιπροσωπεύει το κόκκινο κείμενο. Έτσι, για να κάνετε την προεπιλεγμένη ερώτηση να γίνει κόκκινο κείμενο σε πράσινο φόντο, θα πρέπει να χρησιμοποιήσετε:

    PS1 = "\ [033 [42m \] \ [033 [31m \] \ u @ \ h: \ w \ $ "

    Απλώς καθορίζουμε ένα ενιαίο χρώμα φόντου και στη συνέχεια ένα ενιαίο χρώμα κειμένου προσκηνίου εδώ, το οποίο ξεκινά από την αρχή της προτροπής και εφαρμόζεται σε όλο το κείμενο της προτροπής. Ωστόσο, μπορείτε να ορίσετε όσες ετικέτες χρώματος θέλετε στη μεταβλητή να χρωματίζουν διαφορετικά τμήματα της προτροπής σας, ωστόσο θέλετε.

    Τα χρώματα κειμένου φόντου και προσκηνίου συνεχίζουν να περνούν πέρα ​​από την ερώτηση, εκτός αν καθορίσετε τον κωδικό χρώματος 00, διαγράψετε τις πληροφορίες χρώματος. Μπορείτε επίσης να χρησιμοποιήσετε αυτήν την ετικέτα μέσα στη μεταβλητή για να επαναφέρετε την μορφοποίηση πίσω στην προεπιλογή κάπου στην προτροπή σας. Για παράδειγμα, η ακόλουθη γραμμή θα τερματίσει όλους τους χρωματισμούς πριν από το \ $ χαρακτήρας.

    PS1 = "\ [033 [42m \] \ [033 [31m \] \ u @ \ h: \ w \\ [\ 033 [00m \] \ $ "

    Πώς να ορίσετε τη νέα προτροπή προεπιλογής σας

    Μόλις ολοκληρώσετε τον πειραματισμό με τα χρώματα, θα πρέπει να έχετε μια προτροπή Bash που θέλετε στην τρέχουσα συνεδρία. Αλλά πιθανότατα θέλετε να κάνετε αυτό το νέο μήνυμα μόνιμο, ώστε αυτό να χρησιμοποιείται αυτόματα σε όλες τις συνεδρίες σας Bash.

    Για να γίνει αυτό, πρέπει απλώς να αλλάξετε το περιεχόμενο της μεταβλητής PS1 στο αρχείο .bashrc, το οποίο εξετάσαμε νωρίτερα.

    Ανοίξτε το αρχείο .bashrc στον επεξεργαστή κειμένου που προτιμάτε, όπως π.χ.:

    nano ~ / .bashrc

    Κάντε κύλιση προς τα κάτω και εντοπίστε την ενότητα PS1 =. Απλώς αντικαταστήστε την προεπιλεγμένη μεταβλητή με την προσαρμοσμένη μεταβλητή. Θα θελήσετε πιθανότατα να αφήσετε το $ debian_chroot: + ($ debian_chroot)  μεμονωμένα, όμως - δεν θα εμφανιστούν εκτός κι αν βρίσκεστε σε περιβάλλον chroot, ούτως ή άλλως.

    Καταχωρίστε τη χρωματιστή σας μεταβλητή PS1 κάτω από το εάν ["$ color_prompt" = ναι]; έπειτα γραμμή. Καταχωρίστε τη μεταβλητή χωρίς χρώματα κάτω από το αλλού γραμμή.

    Αποθηκεύστε το αρχείο και κλείστε τον επεξεργαστή κειμένου. Για παράδειγμα, για να αποθηκεύσετε το αρχείο σε nano, πατήστε Ctrl + O, πατήστε Enter και, στη συνέχεια, πατήστε Ctrl + X για έξοδο.

    Την επόμενη φορά που θα ξεκινήσετε ένα νέο κέλυφος Bash - για παράδειγμα, εάν συνδεθείτε στο τερματικό ή ανοίγοντας ένα νέο παράθυρο τερματικού, θα δείτε την προσαρμοσμένη προτροπή σας.