Rendre la CLI Bash plus facile à utiliser

Rendre la CLI Bash plus facile à utiliser
Ce tutoriel vous montrera comment personnaliser le shell bash afin de rendre la ligne de commande plus facile et plus rapide à utiliser.

Objectifs

À la fin de cette séance, vous pourrez:

  • modifier l'invite pour afficher le répertoire de travail actuel
  • Définissez l'invite sur une couleur choisie
  • Créer et utiliser des alias
  • Enregistrer les personnalisations telles que l'invite et les alias
  • Utilisez la fonction d'historique
  • Utiliser l'achèvement de la commande

Répertoire de la maison - Accueil

Linux utilise un ensemble de variables d'environnement supérieur, un peu comme les trous de pidgin, qui sont automatiquement peuplés, pour stocker des informations. La liste complète peut être consultée comme suit:

$ set | plus

J'ai fait plus d'y transmission ici plutôt que moins pour que la commande puisse être vue dans le vidage d'écran.

Le nom du répertoire domestique d'un utilisateur, généralement / home / username (/ home / kdm dans mon CAE), est stocké dans la variable d'environnement à domicile; Notez que la plupart des variables d'environnement sont en majuscules.

Nous utilisons un $ lors de la référence à une variable d'environnement pour spécifier qu'il s'agit d'un

Nom variable et non une chaîne. Pour voir la maison variable Entrez:

$ echo $ home

Linux est plein de raccourcis et le personnage Tilde, ~, est un raccourci vers la maison. Il peut être utilisé à la place:

$ echo ~

Répertoire de travail - PWD

La commande PWD peut être utilisée pour savoir quel est le répertoire de travail actuel. Lorsqu'un utilisateur se connecte, il s'agit de son répertoire personnel tel que défini dans le / etc / passwd déposer. Ici, nous affichons juste les deux dernières lignes du fichier et le chemin actuel pour l'utilisateur KDM:

$ tail -2 / etc / passwd
$ pwd

Modification des répertoires - CD

Le CD de commande peut être utilisé pour modifier le répertoire de travail actuel.

Par exemple, pour passer au répertoire racine:

$ cd /; pwd
# le ; Le caractère permet deux commandes sur une seule ligne

Pour passer au répertoire / etc.:

$ cd / etc; pwd

Pour revenir au répertoire précédent, utilisez la commande:

$ CD -

Pour revenir au répertoire domestique, utilisez le CD de commande sans aucune option:

$ cd; pwd

Invite de commande - PS1

Lorsque vous utilisez la commande CD pour modifier les répertoires, il n'est pas toujours évident quel est le répertoire actuel. La coquille bash permet à l'invite d'être personnalisée.

L'invite de commande par défaut est stockée dans une variable système, PS1; Ceci est entré dans supérieur cas. Pour afficher la variable Entrez:

$ echo $ ps1

Notez que le '$' affiché n'est pas l'invite mais le contenu de la variable!

Les caractères spéciaux suivants peuvent être utilisés pour modifier l'invite:

  • \ s- \ v Shell et version actuels
  • \ W Répertoire de travail actuel
  • \ h @ \ u hôte et nom d'utilisateur
  • \ d @ \ t Date et heure actuelles

Par exemple, pour définir l'invite sur le shell actuel et l'utilisation de la version:

$ Ps1 = '\ s- \ v:'

L'invite apparaît maintenant comme bash-5.0: .

Répertoire actuel - $ PWD

Pour enregistrer une utilisation constante de la commande PWD, l'invite peut être définie sur le nom de chemin complet du répertoire actuel, un concept familier aux utilisateurs DOS. Pour ce faire, tapez soigneusement ce qui suit supérieur cas:

BASH-5,0: PS1 = '$ PWD:'

L'invite change pour être le répertoire de travail actuel, dans cet exemple

/ Home / KDM: .

Maintenant, modifiez les répertoires et notez comment l'invite change.

/ Home / KDM: CD /
/: CD / etc
/ etc: CD

Nous pouvons maintenant voir dans quel répertoire nous sommes sans recours à la commande PWD.

Ajout de couleur

Une couleur, dans cet exemple de jaune, peut être ajoutée comme suit:

/ home / kdm: ps1 = '\ [\ e [01; 33m \] $ pwd: \ [\ 033 [01; 34m \] \ [\ 033 [00m \]'


J'ai généralement mon invite réglé sur le répertoire actuel, en réservant la couleur rouge (modifier 33 à 31 dans la commande ci-dessus) pour quand j'utilise root. Cependant, pour que les exemples suivent, je reviendrai au signe «$».

Invite secondaire ->

L'invite secondaire est également stockée dans une variable système, PS2, également dans le haut du cas. Pour afficher cette variable, entrez:

$ echo $ ps2

Cette invite sera vue si une commande incomplète est entrée, par exemple:

$ echo «Bonjour là-bas

Dans cet exemple, le deuxième symbole de citation est manquant. Pour corriger cette situation, complétez la commande ou entrez le contrôle et C et rentrez la commande.

Fichiers ou répertoires?

Lorsque le contenu d'un répertoire est affiché, il n'est pas toujours évident si les entrées sont des fichiers ou des répertoires.

Avec l'option -f, souvent utilisée sur les serveurs UNIX, les entrées affichées sont suivies d'un caractère supplémentaire. Par exemple, essayez:

$ ls -f

Ces caractères supplémentaires incluent les éléments suivants et indiquent:

  • répertoire /
  • fichier lié @
  • fichier exécutable *

Les systèmes Linux prennent en charge le codage couleur des répertoires et des fichiers. Les couleurs peuvent être allumées par défaut. Sinon, essayez ce qui suit (utilisez un double trait d'union):

$ ls - coulor

Ces couleurs supplémentaires incluent les éléments suivants et indiquent:

  • répertoire bleu
  • fichier lié cyan
  • Fichier exécutable vert

Créer des alias

Sur certains systèmes, des commandes utiles telles que LA, qui exécute la commande ls -a et ll qui exécute la commande ls -l sont disponibles. Cependant, si ces commandes ne sont pas disponibles, un alias peut être créé pour atteindre le même résultat. Certains alias peuvent être définis automatiquement lorsqu'un shell est démarré.

Un alias peut être créé pour n'importe quelle commande fréquemment utilisée. Cela permet de devoir taper la commande complète et ses options. Par exemple, si les couleurs ne sont pas utilisées avec LS:

$ alias ls = 'ls --color'
$ ls

Ces deux exemples montrent des fichiers dans les répertoires / etc et / bin. L'option -D affiche uniquement les entrées du répertoire et non les fichiers du répertoire:

$ ls -d / bin / y *
$ ls -d / etc / u *

Alias ​​communs

Les alias Comman incluent les suivants dans les commandes de suppression, de copie et de déplacement. Ces alias rendent la commande interactive afin que vous puissiez choisir de prendre une action ou non:

$ alias rm = 'rm -i'
$ alias cp = 'cp -i'
$ alias mv = 'mv -i'

Dans l'exemple affiché ici, quatre fichiers vides sont créés. Le premier, File1, est ensuite supprimé. Un alias est ensuite créé pour RM et File2 est supprimé de manière interactive:

Le nom de commande réel ne doit pas nécessairement être utilisé pour le nom d'alias. Notez que ces exemples utilisent l'alias pour LS créé ci-dessus:

$ alias la = 'ls -a'
$ alias ll = 'ls -l'
$ la
$ ll

Utilisation d'alias

Pour afficher une liste d'alias, utilisez la commande d'alias. Il est très probable que vous aurez déjà plusieurs alias par défaut:

$ alias

Une commande peut être invoquée sans utiliser l'alias en préfixant la commande avec une barre arrière, \ . Ceci est particulièrement utile si un alias à RM -i existe et que vous souhaitez supprimer de nombreux fichiers!

$ ls
$ \ ls

Pour supprimer un ou plusieurs alias de commande Utilisation:

$ unalias ll la
$ alias

Sauver les personnalisations

Un inconvénient lors de la modification de l'invite ou de l'ajout d'alias est que ces paramètres sont perdus lorsque l'utilisateur termine la session. Ce problème peut être surmonté en enregistrant les paramètres dans un fichier de configuration. Le bash shell stocke les variables et les alias en permanence dans l'un des nombreux fichiers cachés, les fichiers commençant par un arrêt complet.

Ici, j'utiliserai le simple éditeur Nano (VIM peut être utilisé à la place) pour mettre à jour le fichier caché .bashrc afin de configurer l'environnement.

J'ai ajouté mes modifications à la fin du fichier, j'ai modifié l'invite et ajouté plusieurs de mes alias préférés:

$ nano .bashrc

Pour enregistrer les modifications et quitter, entrez le contrôle et x.

La commande dot - .

Le nouveau .Le fichier bashrc peut être testé en ouvrant une nouvelle session ou en se déconnectant de nouveau. Comme alternative, le fichier peut être testé ainsi:

$… Bashrc

Le point (.) La commande exécute le contenu du fichier dans le shell actuel.

Historique des commandes

La fonction d'historique des commandes maintient une liste des commandes récemment utilisées dans le fichier .bash_history et fournit un raccourci pour réexécuter l'une de ces commandes.

Pour afficher les 10 dernières commandes, Type:

$ HISTORY 10

Pour réexécuter la dernière utilisation de commande !!. Par exemple:

$ head -3 / etc / shadow
$ sudo !!

Modifier la ligne de commande

Les touches de contrôle utilisées pour modifier les entrées de ligne de commande précédentes incluent les éléments suivants:

  • CONTRÔLE & R RECHERCHE HISTORY
  • Contrôle et A Go to Start of Line
  • Control & e Aller à la fin de la ligne
  • Contrôle et G Annuler la recherche et restaurer la ligne d'origine

Dans cet exemple, j'utilise Control & R (deux fois) pour effectuer une recherche inverse de la commande Head. Appuyez sur ENTER

Achèvement de la commande

Dans le shell bash, l'onglet Onglet Séquence de touches peut être utilisé pour terminer un nom de fichier utilisé dans une commande à condition qu'une correspondance exacte existe.

Pour essayer, passez d'abord au répertoire / bac:

$ cd / bin

Tapez la commande suivante mais ne le faites pas Appuyez encore sur Entrée:

$ ls -l y

Maintenant, appuyez sur le languette clé deux fois. Une liste de tous les fichiers qui commencent par le personnage s'affichera.

Ajoutez des caractères à la commande pour invoquer un nom unique, mais encore une fois n'appuyez pas sur Entrée.

$ ls -l yp

Maintenant, appuyez sur le languette clé. La commande sélectionnera automatiquement le fichier correct.