====== Shell Unix ======
----
===== Configuration clavier =====
==== Ubuntu ====
=== Définition clavier ===
/etc/default/keyboard
XKBMODEL="pc105"
XKBLAYOUT="fr"
XKBVARIANT="oss"
XKBOPTIONS=""
BACKSPACE="guess"
=== Caractères spéciaux ===
| CapsLockç | Ç |
| CapsLockà | À |
| CapsLocké | É |
| CapsLockè | È |
| AltGr-w | « |
| AltGr-x | » |
| AltGr-a | ae |
| AltGr-o | œ Œ |
==== Redhat/CentOS (à partir de 7) ====
=== Vérification de la configuration ===
localectl status
=== Passer en clavier azerty de façon temporaire ===
loadkeys fr
=== Passer en clavier azerty de façon permanente ===
localectl set-keymap fr
==== Redhat/CentOS (jusqu'à 6) ====
/etc/sysconfig/keyboard
KEYTABLE="fr-latin9"
MODEL="pc105"
LAYOUT="fr"
KEYBOARDTYPE="pc"
VARIANT="latin9"
/etc/sysconfig/i18n
LANG="fr_FR.UTF-8"
SYSFONT="latarcyrheb-sun16"
----
[[all:bibles:linux:shell|Haut de page]]
===== Prompt =====
==== Définition ====
=== bash ===
Fichier .bashrc
PS1='\[\e[1;40m\]\[\e[1;31m\][\h]\[\e[1;36m\]\!\[\e[1;33m\]\w >\[\e[0;32m\] '
=== sh ===
Fichier .cshrc
set prompt="%{\033[0;33;40m%}[${PWV}]%{\033[0;32;40m%}`pwd`%# %{\033[0m%}"
=== tcsh/csh ===
Fichier .tcshrc
set prompt="%{\033[1;31;40m%}[%M]%{\033[1;32;40m%}%h%{\033[1;33;40m%}%B%~%b %# %{\033[1;32;40m%}"
==== 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 ===
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
==== Titre du terminal ====
Il est possible de définir le titre du terminal via la variable du prompt
PS1="\[\e]0;titre du terminal\a\]$PS1"
=== Afficher le nom du host dans le titre du terminal ===
PS1="\[\e]0;\h\a\]$PS1"
[[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 ====
history # affiche l'historique complet
history 10 # affiche les 10 dernières commandes
==== Faire une recherche dans l'historique ====
Appuyer sur la séquence de touches CTRLR
==== Effacer une commande ====
history -d 150
history -c # purge tout l'historique de commande
==== Exécuter une commande ====
=== Exécuter la dernière commande ===
!!
=== Exécuter une commande par son numéro dans l'historique ===
!150
=== Exécuter la dernière commande commençant par ===
!vi
=== Exécuter la dernière commande contenant un chaîne de caractères ===
!?chaine?
=== Exécuter une commande avec substitution ===
^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
=== Utiliser les paramètres d'une commande précédente ===
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
==== Personnaliser l'historique ====
=== Recherche dans l'historique avec les touches Up et Down ===
Ajouter dans le fichier ~/.bashrc les 2 lignes suivantes :
shopt -s histappend
PROMPT_COMMAND='history -a'
“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 ~/.inputrc
"\e[A": history-search-backward
"\e[B": history-search-forward
Si un début de commande est tapé, la touche Up effectue une recherche dans l'ensemble de l'historique à partir des éléments déjà tapés (Down effectue la recherche en arrière).
=== Taille de l'historique ===
Définir la variable suivante dans le fichier ~.bashrc pour conserver un historique de 5000 commandes (par défaut 500, défini à 1000 dans Ubuntu)
export HISTSIZE=5000
=== Ajouter un timestamp ===
export HISTTIMEFORMAT="%F %T "
=== Eviter les doublons ===
export HISTCONTROL=ignoreboth:erasedups
==== Source ====
[[https://linuxpedia.fr/doku.php/commande/historique]]
----
[[all:bibles:linux:shell|Haut de page]]
===== Divers =====
==== Déplacements ====
| Ctrla | Début de ligne |
| Ctrle | Fin de ligne |
| Ctrlr | Recherche dans les commandes précédentes |
| Altb | Déplacement mot précédent (backward) |
| Altf | Déplacement mot suivant (forward) |
| EscBackSpace | Effacer mot précédent |
==== Version OS ====
=== Debian/Ubuntu ===
cat /etc/os-release
lsb_release -a
=== Redhat/CentOS ===
cat /etc/redhat-release
cat /etc/os-release
=== Fedora ===
cat /etc/issue
=== Solaris ===
cat /etc/release
==== Type de shell ====
Le type de shell (spécifié lors de la création de l'utilisateur) peut-être retrouvé dans le fichier /etc/passwd ou directement en exécutant la commande :
echo $0
==== Bannière de login ====
Modifier le fichier /etc/motd pour changer la bannière de login.
==== Créer un fichier sans vi ====
cat << tagFIN > nomdufichier
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.
dircolors -p > ~/.ls_couleur
* 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)
eval `dircolors ~/.ls_couleur`
==== Effacer un fichier qui commence par un - ====
rm -- -fichier
==== Exécution ====
=== Arrière plan ===
& # exécution en arrière plan
# 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 # reprend la main sur une commande donnée
=== Exécuter un script sans prendre en compte les variables d'environnement ===
env -i