Aller au contenu

Astuce Terminal

Basic

Pour lancer plusieurs commandes les une après les autres ont peut utiliser && l’avantage est que si une commande comporte une erreur, la suite de commandes ne s’exécutera pas. Pour lancer plusieurs commandes les une après les autres mais en ignorant les commandes qui peuvent être erronées ont peut utiliser le séparateur ;.
Exemples :
sudo apt-get update && sudo apt-get full-upgrade && shutdown 1
sudo apt-get update ; sudo apt-get full-upgrade ; shutdown 1

[CTRL]+[D] => raccourcie équivalent d’exit

[CTRL]+[R] => recherche dans l'historique des commandes terminal

Créer des alias (raccourci terminal)

Nous allons créer un fichier se nommant bash_aliasis que nous allons placer en /etc/, pour que ce fichier soit pris en compte, nous allons faire pointer ce fichier à la fin de bash.bachrc qui se trouve également dans /etc.

Pour commencer nous allons nous mettre en root
sudo bash

Création du fichier
touch /etc/bash_aliasis

Pointage du fichier
echo ‘. /etc/bash_aliasis’ >> /etc/bash.bashrc

Édition des alias
Voici la syntaxe
alias commande=’commande a exécuté’
Exemple :
alias mise-a-jour=’sudo apt-get update && sudo apt-get -y distupgrade’

Mes Alias sont ici

Gestion de l’historique terminal

La commande history permet d’afficher l’historique des commandes tapé précédemment.

La commande !! permet de faire beaucoup de choses pratique, elles peuvent aussi être placer à l’intérieur d’une autre commande, exemple :
!508 Permet de relancer la commande 508 de l’historique,
!! permet de relancer la dernière commande,
!lettre permet de lancer la dernière commande par rapport à son début.

Lancer un terminal en root sans le mot de passe root initialisé

sudo bash ou sudo -s

Problème Terminal

Il arrive que l'on n'arrive pas a lancé des commandes dont les paquets sont pourtant installés, en premier lieu il faut contrôler que l'utilisateur à accès au programme il suffit de lancer la commande echo $PATH avec l'utilisateur en question, le résultat doit être /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games si ce n'est pas le cas il y a deux solutions, la première est d'ajouter les chemins manquants pour tous les utilisateurs du système dans /etc/bash.bashrc et ajouter une ligne commençant par export PATH=$PATH: , pour le faire juste a l'utilisateur il suffit de rajouter cette ligne dans le bashrc du home de l'utilisateur.

Dimension et redimensionnement de la fenêtre de terminal

La commande resize permet de gérer la taille de la fenêtre de terminal.
resize permet d'afficher ça taille actuelle.
resize -s 40 150 permet de la redimensionner à la taille de 40 lignes et 150 colonnes.
La commande resize provient du paquet xterm.
Il y as une alternative à resize qui est de lancer la commande suivante pour afficher la taille : echo "lignes=$LINES colonnes=$COLUMNS"

Déconnecter, désactiver un disque

Il peut être utilile de déconnecter ou désactiver un disque, surtout dans le cas d'un dualboot sur deux disques distinct.
Cette commande permet de le faire, il suffit de remplacer sdX par le bon disque.

1
sudo bash -c 'echo 1 > /sys/block/sdX/device/delete'

Chrooter un système Linux

Que veut dire chrooter ?

Eh ben chrooter est un verbe qui vient du mot chroot.

man chroot :
chroot - exécuter une commande ou un shell interactif avec un répertoire racine spécial

En d'autres termes, la commande chroot permet de changer le répertoire racine vers un nouvel emplacement.

Pour information, chroot est un acronyme de Change Root, changer de racine.

Chroot peut être utilisé dans deux cas :

  • En tant que bascule d'environnement pour prendre le contrôle d'une installation Linux depuis un autre système.
  • En tant que prison pour empêcher un utilisateur de remonter dans l'arborescence pour l'emprisonner dans un répertoire spécifique (ce qui peut être utilisé avec un serveur FTP pour que les utilisateurs ne remontent pas dans l'arborescence du système)

Montage des partitions.

Première étape, identifier et monté la partition:
Lister les partitions:

1
sudo lsblk
Monter la partition dans /mnt, sda2 dans l'exemple:
1
sudo mount /dev/sda2 /mnt
Ensuite, montez si vous en avez l'utilité d'autres partitions (/home ou /var si vous avez un /var séparé, /usr si vous avez un /usr séparé etc ... )
Exemple avec /home en /dev/sda3:
1
sudo mount /dev/sda3 /mnt/home

Ensuite, il ne faut pas oublier de monter les dossiers spéciaux nécessaires au fonctionnement du système :

1
2
3
sudo mount --bind /dev /mnt/dev
sudo mount -t proc /proc /mnt/proc
sudo mount -t sysfs /sys /mnt/sys

Chrootage

Enfin, basculer vers le nouveau système avec la commande chroot :

1
sudo chroot /mnt /bin/bash
Le prompt change alors et vous êtes prêts à utiliser votre distribution qui est installée sur le disque dur.

Problèmes rencontrer

Il se peut que le système ainsi chrooter n'arrive pas à résoudre des dns.
Il suffit de copier temporairement le fichier resolv.conf qui se trouve dans /etc/ Pour commencer ont sort du chroot

1
exit
La suite à été tester sur base Ubuntu
Nous allons renommer le fichier resolv.conf qui est un lien symbolique d'origine pour le mettre de côté:
1
sudo mv /mnt/etc/resolv.conf /mnt/etc/resolv.conf.bak
Ensuite nous allons copier le resolv du système live:
1
sudo cp /run/systemd/resolve/stub-resolv.conf /mnt/etc/resolv.conf
Maintenant ont peut retourner dans le chroot
1
sudo chroot /mnt /bin/bash
Une fois terminer, ne pas oublier de remettre tout en place:
On va supprimer le resolv.conf précedement copier:
1
sudo rm /mnt/etc/resolv.conf
Maintenant ont va restaurer le lien symbolique resolv.conf d'origine:
1
sudo mv /mnt/etc/resolv.conf.bak /mnt/etc/resolv.conf

Défaire le chroot

Il suffit de faire la commande exit pour en sortir. Ensuite nous allons tout démonter:

1
2
3
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
source

Changer le nom de la machine sous Ubuntu

Pour changer le nom de la machine il suffit de changer le nom dans 2 fichiers de config qui se trouvent dans /etc.
les 2 fichiers sont hostname et hosts, les fichiers doivent être édités en ROOT pour que la modification prenne effet, il faut redémarrer l'ordinateur.