Outils pour utilisateurs

Outils du site


all:bibles:linux:shell

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
all:bibles:linux:shell [2025/02/04 11:47] – [Couleurs] omeylhocall:bibles:linux:shell [2025/02/04 11:48] (Version actuelle) – [Titre du terminal] omeylhoc
Ligne 1: Ligne 1:
 +====== Shell Unix ======
  
 +----
 +
 +===== Configuration clavier =====
 +
 +==== Ubuntu ====
 +
 +=== Définition clavier ===
 +
 +<color #00a2e8>/etc/default/keyboard</color>
 +
 +<code bash>
 +XKBMODEL="pc105"
 +XKBLAYOUT="fr"
 +XKBVARIANT="oss"
 +XKBOPTIONS=""
 +BACKSPACE="guess"
 +</code>
 +
 +=== Caractères spéciaux ===
 +
 +| <key>CapsLock</key><key>ç</key>  | Ç  |
 +| <key>CapsLock</key><key>à</key>  | À  |
 +| <key>CapsLock</key><key>é</key>  | É  |
 +| <key>CapsLock</key><key>è</key>  | È  |
 +| <key>AltGr-w</key>  | «  |
 +| <key>AltGr-x</key>  | »  |
 +| <key>AltGr-a</key>  | ae  |
 +| <key>AltGr-o</key>  | œ Œ  |
 +
 +==== Redhat/CentOS (à partir de 7) ====
 +
 +=== Vérification de la configuration ===
 +
 +<code bash>
 +localectl status
 +</code>
 +
 +=== Passer en clavier azerty de façon temporaire ===
 +
 +<code bash>
 +loadkeys fr
 +</code>
 +
 +=== Passer en clavier azerty de façon permanente ===
 +
 +<code bash>
 +localectl set-keymap fr
 +</code>
 +
 +==== Redhat/CentOS (jusqu'à 6) ====
 +
 +<color #00a2e8>/etc/sysconfig/keyboard</color>
 +
 +<code bash>
 +KEYTABLE="fr-latin9"
 +MODEL="pc105"
 +LAYOUT="fr"
 +KEYBOARDTYPE="pc"
 +VARIANT="latin9"
 +</code>
 +
 +<color #00a2e8>/etc/sysconfig/i18n</color>
 +
 +<code bash>
 +LANG="fr_FR.UTF-8"
 +SYSFONT="latarcyrheb-sun16"
 +</code>
 +
 +----
 +
 +[[all:bibles:linux:shell|Haut de page]]
 +
 +===== Prompt =====
 +
 +==== Définition ====
 +
 +=== bash ===
 +
 +Fichier <color #00a2e8>.bashrc</color>
 +
 +<code bash>
 +PS1='\[\e[1;40m\]\[\e[1;31m\][\h]\[\e[1;36m\]\!\[\e[1;33m\]\w >\[\e[0;32m\] '
 +</code>
 +
 +=== sh ===
 +
 +Fichier <color #00a2e8>.cshrc</color>
 +
 +<code bash>
 +set prompt="%{\033[0;33;40m%}[${PWV}]%{\033[0;32;40m%}`pwd`%# %{\033[0m%}"
 +</code>
 +
 +=== tcsh/csh ===
 +
 +Fichier <color #00a2e8>.tcshrc</color>
 +
 +<code bash>
 +set prompt="%{\033[1;31;40m%}[%M]%{\033[1;32;40m%}%h%{\033[1;33;40m%}%B%~%b %# %{\033[1;32;40m%}"
 +</code>
 +
 +==== Paramètres ====
 +
 +^ Information  ^  tcsh  ^  bash  ^
 +| Nom de la machine  |  %m  |  \h  |
 +| Nom de l’utilisateur  |  %n  |  \u  |
 +| Répertoire courant  |  %c  |  \W  |
 +| Répertoire courant (chemin complet)  |  %/  |  \w  |
 +| Numéro de la commande dans l’historique  |  %h  |  \!  |
 +| Répertoire courant avec le ~ pour le dossier de l’utilisateur  |  %~  |    |
 +| $ pour les utilisateur et # pour root  |    |  \$  |
 +
 +
 +==== Couleurs ====
 +
 +=== Format ===
 +
 +Définition des couleurs sous la forme : \e[<1>;<2>;<3>m
 +
 +|  <1>  | format de la police  |
 +|  <2>  | couleur texte  |
 +|  <3>  | couleur fond  |
 +
 +=== Police ===
 +
 +| Normal  |  0  |
 +| Gras  |  1  | Non gras  |  21  |
 +| Souligné  |  4  | Non souligné  |  24  |
 +| Clignotant  |  5  | Non clignotant  |  25  |
 +| Inversé  |  7  | Non inversé  |  27  |
 +
 +=== Codes couleurs ===
 +
 +^ Couleur  ^  Texte  ^  Fond  ^ Couleur  ^  Texte  ^  Fond  ^
 +| Noir  |  0;30  |  0;40  | Gris  |  1;30  |  1;40  |
 +| Rouge  |  0;31  |  0;41  | Rose  |  1;31  |  1;41  |
 +| Vert  |  0;32  |  0;42  | Vert clair  |  1;32  |  1;42  |
 +| Jaune  |  0;33  |  0;43  | Jaune clair  |  1;33  |  1;43  |
 +| Bleu  |  0;34  |  0;44  | Bleu clair  |  1;34  |  1;44  |
 +| Violet  |  0;35  |  0;45  | Violet clair  |  1;35  |  1;45  |
 +| Cyan  |  0;36  |  0;46  | Cyan clair  |  1;36  |  1;46  |
 +| Gris clair  |  0;37  |  0;47  | Blanc  |  1;37  |  1;47  |
 +
 +=== Valeur par défaut ===
 +
 +\e[0m : couleur par défaut du shell
 +
 +=== Exemple ===
 +
 +<code bash>
 +PS1='\[\e[1;36;40m\][\u@\h]\[\e[1;33;40m\]\w >\[\e[0;32;40m\] ' # affiche user@host en gras cyan sur fond noir puis le répertoire courant en gras jaune sur fond noir puis les commandes en vert sur fond noir
 +</code>
 +
 +==== Titre du terminal ====
 +
 +Il est possible de définir le titre du terminal via la variable du prompt
 +
 +<code bash>
 +PS1="\[\e]0;titre du terminal\a\]$PS1"
 +</code>
 +
 +=== Afficher le nom du host dans le titre du terminal ===
 +
 +<code bash>
 +PS1="\[\e]0;\h\a\]$PS1"
 +</code>
 +
 +[[https://www.linuxtricks.fr/wiki/personnaliser-le-shell-bash-alias-historique-prompt|Source]]
 +
 +----
 +
 +[[all:bibles:linux:shell|Haut de page]]
 +
 +===== Historique des commandes =====
 +
 +==== Afficher l'historique ====
 +
 +<code bash>
 +history     # affiche l'historique complet
 +history 10  # affiche les 10 dernières commandes
 +</code>
 +
 +==== Faire une recherche dans l'historique ====
 +
 +Appuyer sur la séquence de touches <key>CTRL</key><key>R</key>
 +
 +==== Effacer une commande ====
 +
 +<code bash>
 +history -d 150
 +history -c      # purge tout l'historique de commande
 +</code>
 +
 +==== Exécuter une commande ====
 +
 +=== Exécuter la dernière commande ===
 +
 +<code bash>
 +!!
 +</code>
 +
 +=== Exécuter une commande par son numéro dans l'historique ===
 +
 +<code bash>
 +!150
 +</code>
 +
 +=== Exécuter la dernière commande commençant par ===
 +
 +<code bash>
 +!vi
 +</code>
 +
 +=== Exécuter la dernière commande contenant un chaîne de caractères ===
 +
 +<code bash>
 +!?chaine?
 +</code>
 +
 +=== Exécuter une commande avec substitution ===
 +
 +<code bash>
 +^recherche^substitution          # exécute la dernière commande en remplaçant la première occurrence de recherche par substitution
 +!150:s/recherche/substitution    # exécute la commande 150 en remplaçant la première occurrence de recherche par substitution
 +!150:gs/recherche/substitution   # exécute la commande 150 en remplaçant toutes les occurrences de recherche par substitution
 +</code>
 +
 +=== Utiliser les paramètres d'une commande précédente ===
 +
 +<code bash>
 +mkdir a b c d  # création des répertoires a b c et d
 +rmdir !:2-3    # on utilise le 2° et 3° paramètre de la commande précédente, on supprime b et c
 +</code>
 +
 +==== Personnaliser l'historique ====
 +
 +=== Recherche dans l'historique avec les touches Up et Down ===
 +
 +Ajouter dans le fichier <color #00a2e8>~/.bashrc</color> les 2 lignes suivantes :
 +
 +<code bash>
 +shopt -s histappend
 +PROMPT_COMMAND='history -a'
 +</code>
 +
 +“histappend” permet également d'enregistrer dans l'historique les commandes des différents shell qui seraient utilisés simultanément et pas seulement celles du dernier shell utilisé.\\
 +Créer ou ajouter les 2 lignes au fichier <color #00a2e8>~/.inputrc</color>
 +
 +<code bash>
 +"\e[A": history-search-backward
 +"\e[B": history-search-forward
 +</code>
 +
 +Si un début de commande est tapé, la touche <key>Up</key> effectue une recherche dans l'ensemble de l'historique à partir des éléments déjà tapés (<key>Down</key> effectue la recherche en arrière).
 +
 +=== Taille de l'historique ===
 +
 +Définir la variable suivante dans le fichier <color #00a2e8>~.bashrc</color> pour conserver un historique de 5000 commandes (par défaut 500, défini à 1000 dans Ubuntu)
 +
 +<code bash>
 +export HISTSIZE=5000
 +</code>
 +
 +=== Ajouter un timestamp ===
 +
 +<code bash>
 +export HISTTIMEFORMAT="%F %T "
 +</code>
 +
 +=== Eviter les doublons ===
 +
 +<code bash>
 +export HISTCONTROL=ignoreboth:erasedups
 +</code>
 +
 +==== Source ====
 +
 +[[https://linuxpedia.fr/doku.php/commande/historique]]
 +
 +----
 +
 +[[all:bibles:linux:shell|Haut de page]]
 +
 +===== Divers =====
 +
 +==== Déplacements ====
 +
 +| <key>Ctrl</key><key>a</key>  | Début de ligne  |
 +| <key>Ctrl</key><key>e</key>  | Fin de ligne  |
 +| <key>Ctrl</key><key>r</key>  | Recherche dans les commandes précédentes  |
 +| <key>Alt</key><key>b</key>  | Déplacement mot précédent (backward)  |
 +| <key>Alt</key><key>f</key>  | Déplacement mot suivant (forward)  |
 +| <key>Esc</key><key>BackSpace</key>  | Effacer mot précédent  |
 +
 +==== Version OS ====
 +
 +=== Debian/Ubuntu ===
 +
 +<code bash>
 +cat /etc/os-release
 +lsb_release -a
 +</code>
 +
 +=== Redhat/CentOS ===
 +
 +<code bash>
 +cat /etc/redhat-release
 +cat /etc/os-release
 +</code>
 +
 +=== Fedora ===
 +
 +<code bash>
 +cat /etc/issue
 +</code>
 +
 +=== Solaris ===
 +
 +<code bash>
 +cat /etc/release
 +</code>
 +
 +==== Type de shell ====
 +
 +Le type de shell (spécifié lors de la création de l'utilisateur) peut-être retrouvé dans le fichier <color #00a2e8>/etc/passwd</color> ou directement en exécutant la commande :
 +
 +<code bash>
 +echo $0
 +</code>
 +
 +==== Bannière de login ====
 +
 +Modifier le fichier <color #00a2e8>/etc/motd</color> pour changer la bannière de login.
 +
 +==== Créer un fichier sans vi ====
 +
 +<code bash>
 +cat << tagFIN > nomdufichier
 +</code>
 +
 +taper les lignes au fur et à mesure en finissant par la dernière : tagFIN
 +
 +==== Définitions couleurs pour ls ====
 +
 +  * Rediriger les couleurs par défaut dans un fichier.
 +
 +<code bash>
 +dircolors -p > ~/.ls_couleur
 +</code>
 +
 +  * Modifier le fichier en question. Par exemple remplacer DIR 01;34 (gras bleu pour les répertoires) par DIR 00;35 (normal, violet). Il est également possible de combiner les couleurs de fond.
 +  * Prise en compte (à ajouter dans son fichier .cshrc)
 +
 +<code bash>
 +eval `dircolors ~/.ls_couleur`
 +</code>
 +
 +==== Effacer un fichier qui commence par un - ====
 +
 +<code bash>
 +rm -- -fichier
 +</code>
 +
 +==== Exécution ====
 +
 +=== Arrière plan ===
 +
 +<code bash>
 +<commande> &              # exécution en arrière plan
 +<CTRL><Z>                 # passe en arrière plan la commande en cours d'exécution
 +jobs                      # liste les commandes en arrière plan
 +fg                        # reprend la main sur la dernière commande lancée en arrière plan
 +fg <numéro de commande>   # reprend la main sur une commande donnée
 +</code>
 +
 +=== Exécuter un script sans prendre en compte les variables d'environnement ===
 +
 +<code bash>
 +env -i <script à exécuter>
 +</code>
 +
 +Il est possible d'initialiser quelques variables lors de l'appel :
 +
 +<code bash>
 +env -i VAR1=valeur1 ENV2=valeur2 <script à exécuter>
 +</code>
 +
 +
 +----
 +
 +[[all:bibles:linux:shell|Haut de page]]