17/11/2024

Shell

Web

ExplainShell, vous connaissez ?

Si vous en avez marre de consulter les dizaines de pages man d’une commande sous Unix, ou, si vous souhaitez tout simplement comprendre une commande, vous devriez être fortement intéressé par le site ExplainShell, accessible à l’URL : www.explainshell.com Le principe est simple : vous saisissez une commande Unix et il s’occupe de vous l’expliquer. Ceci en vous indiquant la signification des paramètres tour à tour grâce aux explications fournies dans la page man de la commande. Il effectue le travail de recherche à votre place afin de vous permettre de mieux comprendre les commandes. Voici quelques exemples : – rm -rf /* – tar xzvf archive.tar.gz – cut -d ‘ ‘ -f 1 /var/log/apache2/access_logs | uniq -c | sort -n Dans le même genre, on trouvera ShellCheck, qui ne vous explique pas vos commandes mais vérifie la syntaxe de vos commandes Unix voir même de vos codes de script sh/bash. Trouvez-vous ces sites utiles ?

Lire cet article
Commandes et Système

Un logo au démarrage de votre distribution Linux

I. Présentation Dans ce tutoriel, nous allons voir comment afficher une image au démarrage du terminal, ce qui personnalisera un peu plus votre shell. Vous aurez le choix entre 26 images en ASCII. Elles sont toutes représentatives d’une distribution Linux. A vous de choisir celle qui vous convient. II. Procédure Pour commencer, il nous faudra télécharger le paquet : linux_logo apt-get install linuxlogo Une fois installé, vous pouvez visualiser les différentes images. linux_logo -L 1 Vous verrez alors la première image de la liste. Pour voir les suivantes, changez le chiffre. Vous pouvez aller de 1 à 26. Une fois que vous avez trouver l’image qui vous plait, il suffit de modifier ce fichier. vi /etc/linux_logo.conf Dans ce fichier, toutes les images sont listées. Pour en sélectionner une, il suffit de décommenter la ligne auquel elle correspond. Maintenant, nous allons éditer une autre fichier pour que l’image s’affiche à chaque démarrage. vi /etc/profile Rajoutez cette ligne : linux_logo, à la

Lire cet article
Commandes et Système

Changer la couleur du terminal

I. Présentation Dans ce tutoriel, nous allons voir comment changer les couleurs d’un terminal, en particulier celui de root qui, par défaut, est en noir et blanc. Dans ce précédent tutoriel, nous avons vu comment modifier l’apparence d’un terminal en y ajoutant, par exemple, la date et l’heure. II. Procédure Il nous faut déjà connaitre la façon de mettre en couleur les caractères d’un terminal. On va pour cela utiliser le table contenant les différentes valeurs des couleurs dans un terminal UNIX pour mettre en couleur notre shell. Nous allons ensuite modifier la valeur de la variable d’environnement « PS1 » qui contient la forme de notre terminal. On va donc, pour mettre notre terminal en rouge par exemple, définir la variable d’environnement « PS1 » comme suivant : PS1=’\[\033[01;31m\]\u@\h:\w\[\033[00m\]\$’ Les valeurs « \[\033[01;31m\] » et « \[\033[00m\] » servent respectivement à mettre la suite des caractères en rouge, puis en blanc. Ils ne délimitent pas une zone mais marque le début d’un changement de couleur. On met

Lire cet article
Commandes et Système

Afficher la date et l’heure dans le terminal

I. Présentation Par défaut, le « prompt » ou terminal affiche le nom de l’utilisateur avec lequel nous sommes connecté, le nom de la machine ainsi que le chemin où l’on se trouve. Comme suivant : On voit donc bien ici que le prompt est « <nom d’utilisateur>@<nom machine>:<chemin> ». Note : Quand l’utilisateur se situe dans son home, le chemin est remplacé par un tild (« ~ »). Dans ce tutoriel, nous allons voir comment changer l’apparence du prompt pour qu’il affiche l’heure, la date ou d’autres caractères. II. Procédure Il faut d’abord comprendre que la forme d’affichage du prompt est propre à chaque utilisateur et qu’elle est définie dans la variable d’environnement « PS1 » initialisée au démarrage d’une session. On peut vérifier la valeur de la variable d’environnement « PS1 » avec la commande suivante : echo $PS1  Nous aurons alors le résultat suivant : On peut donc comprendre que : « \u » = utilisateur « @ » : le sigle arobase « \h » = le nom de la machine « \w »

Lire cet article
Commandes et Système

LSOF : spécifier un utilisateur ou un processus

I. Présentation LSOF pour « List Open file » est une commande sous Linux présente ou installable sur la plupart des distributions basées sur Debian qui permet de lister les fichiers ouverts sur le système. Beaucoup d’options et d’utilisations peuvent être faites de cette commande qui peut être très utile pour les administrateurs systèmes (entre autre). Dans ce tutoriel, nous allons voir comment spécifier un utilisateur ou un processus (par son numéro d’identificaiton) à la commande LSOF. Cela en ayant pour but de restreindre les informations affichées. La commande LSOF retourne souvent de très nombreuses informations qui nous sont superflues. Dans une période de débugage par exemple, nous pourrons souhaiter n’avoir que les fichiers utilisés par un processus (programme) ou utilisateur spécifique. Nous allons dans un premier temps vérifier que la commande est bien installée sur le système : lsof -v Si la commande est bien installée, nous aurons plusieurs informations dont le numéro de version de la commande comme suivant :

Lire cet article
Commandes et Système

LSOF lister tous les processus utilisant un fichier

I. Présentation LSOF pour « List Open file » est une commande sous Linux présente ou installable sur la plupart des distributions basées sur Debian qui permet de lister les fichiers ouverts sur le système. Beaucoup d’options et d’utilisations peuvent être faites de cette commande qui peut être très utile pour les administrateurs systèmes (entre autre). Dans ce tutoriel, nous allons voir comment lister tous les processus qui ouvrent un fichier spécifique sur le système. Il est important de savoir que LSOF peut être utilisé de beaucoup de façons différentes et que seule une petite partie en est exposée ici. Nous allons dans un premier temps vérifier que la commande est bien installée sur le système. lsof -v Si la commande est bien installée, nous aurons plusieurs informations dont le numéro de version de la commande comme suivant : Si vous obtenez un « command not found », c’est qu’il faut installer la commande : apt-get update && apt-get install lsof Nous considérons dans

Lire cet article
Commandes et Système

Calculer l’empreinte MD5 d’un dossier sous Linux

I. Présentation Dans un précédent tutoriel, nous avions vu comment calculer l’empreinte MD5 d’un simple fichier sous Linux. Seulement quand nous voulons calculer l’empreinte d’un dossier entier, nous obtenons un message d’erreur nous indiquant que la cible est un dossier et que md5 ne peut donc pas calculer son empreinte : Il est néanmoins possible de calculer la somme md5 d’un dossier, ou plus précisément de tous les fichiers d’un même dossier. On va pour cela calculer la somme MD5 de tous les fichiers de ce dossier puis calculer la somme MD5 de ces sommes MD5. Le but ici est de déterminer si un des fichiers positionnés dans le dossier cible a subit une modification. On utilisera pour cela la commande suivante (par exemple pour le dossier « /etc ») : find /etc/ -type f -exec md5sum {} \; > /tmp.md5 && md5sum /tmp/md5 && rm /tmp/md5 Nous allons détailler un peu plus cette commande qui se découpe en trois parties séparées

Lire cet article
Commandes et Système

Avoir un shell en couleur sous Root

I. Présentation Par défaut sous Debian, les shells des utilisateurs ont une syntaxe colorée. L’utilisateur « root » n’ayant pas pour vocation d’être beaucoup utilisé, il n’est lui pas coloré et offre donc un shell en noir et blanc. Dans ce tutoriel, nous allons voir comment avoir un shell coloré en étant en root. II. Procédure La définition de la coloration du shell sous Linux se fait à l’initialisation du shell de l’utilisateur. Nous allons donc modifier le fichier « /root/.bashrc » pour que celui-ci permette un affichage coloré au démarrage du shell de l’utilisateur « root » : vim /root/.bashrc Puis on dé-commentera les lignes suivantes qui sont normalement déjà présentes, ajoutez les si ce n’est pas le cas : On pourra alors recharger notre shell avec la commande suivante : . ~/.bashrc Nous verrons alors que notre shell renvoi des couleurs quand nous faisons un « ls » par exemple :

Lire cet article
Commandes et Système

Voir les entrées/ sorties disque avec iotop sous Linux

I. Présentation Dans ce tutoriel, nous allons voir comment analyser les entrées et sorties disque sur un système Linux. La commande « iotop » (Input/ Output) non native à Linux nous permet en effet de vérifier les écritures (entrées) et lectures (sorties) sur notre disque. II. Installation de la commande Il nous faut déjà commencer par installer la commande qui n’est pas présente par défaut dans la plupart des cas : apt-get update apt-get install iotop III. Utilisation Ensuite nous pourrons simplement l’utiliser en saisissant « iotop » et voir ce que cela nous affiche : On voit donc la liste de nos processus avec plusieurs informations sur leur utilisation du disque. On voit également un total de l’utilisation tout en haut du tableau. Actuellement, aucun processus n’utilise le disque en lecture ou en écriture. On pourrais simuler une lecture du disque en exécutant la commande « tree » depuis la racine « / » qui va donc lister tous les répertoires du disques. On commence pour cela

Lire cet article
Commandes et Système

Afficher la version d’un paquet présent dans les dépôts

I. Présentation Dans ce tutoriel, nous allons voir comment il est possible d’afficher la version d’un paquet présent dans les dépôts (les dépôts sont les endroits depuis lesquels nous téléchargeons les paquets pour les installer avec la commande « apt-get » sous Debian par exemple). II. Procédure On utilise pour cela la commande « apt-cache » native aux distributions Debian. Par exemple pour le paquet « apache2 » : apt-cache policy apache2 Nous aurons alors cette sortie : On voit ici que le paquet « apache2 » présent dans les dépôts est la version 2.2.16 du paquet. On voit également quelles sont les lignes prioritaires dans le fichier « sources.list » qui contient la liste des dépôts à utiliser. On remarque également un ligne « Installé : (aucun) » qui indique que le paquet n’est pas présent sur le système. Si le paquet été installé, nous aurions alors sa version également comme suivant :  

Lire cet article
Commandes et Système

Vider l’espace d’échange (SWAP)

I. Présentation Certaines applications peuvent être très gourmandes en ressource mémoire, Linux se met alors à utiliser son espace d’échange (SWAP) mais il arrive que celle-ci ne se vide pas correctement et paraisse être toujours utilisée causant ainsi des problèmes de performances liées aux accès au disques dur. L’espace d’échange SWAP sous Linux peut être activé/ désactivé et c’est la plupart du temps comme cela que l’on peut vider l’espace SWAP sans avoir à redémarrer le système. Pour information, on peut vérifier facilement l’espace d’échange SWAP utilisé sur le système avec la commande suivante : swapon -s La colonne « Used » nous renseignera sur l’utilisation actuelle de la mémoire SWAP disponible. Si ce taux reste trop élevé trop longtemps, on peut observer des ralentissements sur l’accès au disque dur sur lequel la partition ou le fichier SWAP est présent. II. Vider la SWAP Pour redémarrer et remettre à zéro la SWAP, nous utilisons la commande suivante : swapoff -a && swapon

Lire cet article
BashCommandes et Système

Marquer un temps d’arrêt en bash avec SLEEP

I. Présentation Dans ce tutoriel, nous allons apprendre à marquer un temps d’arrêt dans un script bash. Ce peut être une pratique utile dans beaucoup de cas différents. On peut par exemple lancer une commande de lancement d’une machine virtuelle puis vouloir faire une vérification afin de voir si celle-ci est bien démarré. On voudra alors marquer une temps d’arrêt entre le lancement et la vérification pour attendre que la VM ai bien démarré. Ce cas est un exemple parmis beaucoup d’autres. II. La commande « sleep » Nous allons pour le tutoriel utiliser « sleep » de manière très simple comme suivant dans un script bash appelé « script.bash » : #!/bin/bash date echo « étape 1 : » ; sleep 10 date echo « étape 2 :  » ; Nous rendons ensuite exécutable notre script : chmod +x script.sh Puis nous l’exécutons : ./script.sh Voila la sortie que nous en aurons : On voit donc bien que le « 10 » correspond à une attente de 10 secondes. Essayons

Lire cet article
Commandes et Système

Calculer une empreinte SHA1 sous Linux

I. Présentation Dans ce tutoriel, nous allons apprendre à utiliser la commande sha1sum pour calculer l’empreinte d’une données. Le SHA1 est réputé pour être « plus fiable » que le md5, cela est surtout du au faite que les empreintes qu’il génère sont sur 40 caractères (20 octects) plutôt que 32 caractères pour le md5. Il existe également une multitude de rainbow table md5 qui sont des bases de données contenant le hash md5 et leur correspondance claires sur des sites en ligne. Pour information, une empreinte sert à calculer l’intégrité d’une donnée. Un même fichier avec un seul bit de différence donnera une empreinte totalement différente. II. Utilisation de la commande Si nous voulons par exemple calculer l’empreinte du fichier « file1 », nous utiliserons la commande comme suivant : sha1sum file1 Nous aurons alors en résultat l’empreinte de ce fichier : On peut aussi vouloir mettre cette empreinte dans un fichier pour que les utilisateurs puissent la comparer à nouveau  : sha1sum

Lire cet article
Commandes et Système

Créer un lien symbolique sous Linux

I. Présentation Dans ce tutoriel, nous allons apprendre à faire des liens symboliques entre des répertoires et des fichiers. Un lien symbolique se rapproche d’une copie directe ou d’un raccourci. Un répertoire ou un fichier est l’exacte copie (en temps réelle) d’un autre. Souvent les liens symboliques sont utilisés pour simplifier les arborescences (nom de répertoire ou de fichier trop complexe ou mal placés). II. Lien symbolique entre répertoire D’une manière générale, voici comment utiliser la commande « ln » pour créer un lien symbolique : ln -s dossier_cible nom_du_lien Dans le contexte de mon exemple, je souhaite qu’en allant sur le répertoire /opt/jdk, j’atterrisse en réalité sur /opt/jdk1_7.2. Cela permet de facilement gérer le changement de version de JAVA. Mais ce n’est qu’un exemple 🙂 Nous allons commencer par créer lien symbolique entre deux répertoires. Nous utiliserons pour cela la commande « ln » (links) : ln –s /root/jdk1_7.2 /root/jdk Le lien symbolique « /root/jdk » sera alors créé. Note : Il faut

Lire cet article