Kit_Survie_Ligne_Commandes/Alt87 20180607 Ligne Commandes/alt87 presentation 20180607 ligne de commande.mkd

28 KiB

Kit de survie en lignes de commandes ...

pour les nuls.

Pourquoi la ligne de commande ?

La ligne de commande est une chose qui a, pour des raisons marketting et en lien avec la massification de l'usage de l'outil informatique, peu à peu disparue alors qu'elle faisait partie intégrante des ordinateurs dans les années 80 et jusqu'en 1995 pour le grand public.

Actuellement, la ligne de commande est perçue par les néophytes comme un objet de toute puissance ou de diabolisation. Les stéréotypes véhiculés par les media traditionnels associent souvent la ligne de commande, et in extenso le terminal, à un outil de hacker.

Image Hacker Google Images

Or ça a été pendant longtemps le quotidien de beaucoup d'utilisateurs.

Posons un peu de vocabulaire : Linux est un noyau c'est à dire un binaire qui communique avec le matériel. Autour de lui est le système GNU (pour GNU is Not Unix). Le système GNU a été pensé dans les années 80 comme étant une alternative Libre au système (gratuit) mais propriétaire Unix.

Dans les années 80, à la préhistoire informatique, les systèmes d'ordinateurs n'avaient pour ainsi dire pas d'interface graphique (et encore moins de souris) : un noyau, un interpréteur de commande (shell) et quelques utilitaires suffisaient à faire un ordinateur fonctionnel.

ms-dos-wikipedia.jpg

Ici le système Microsoft Disk Operating System fonctionnant avec les fichier : msdos.sys et io.sys (l'équivalent du noyau), config.sys et autoexec.bat, à partir de là l'interpréteur de commande (ou shell) : COMMAND.COM s'exécute et affiche l'image précédente.

ms-dos-help-whats-new.png

Dans MS-DOS on trouve des outils basiques (dont BASIC.COM) qui permettent des tâches de gestion et d'édition simple, l'image affichée ci-dessus est EDIT.COM l'éditeur de textes simple mais toujours utile.

CP_M

Et dans cet exemple l'ancêtre de MS-DOS à savoir CP/M. Ce qui est intéressant c'est de constater que MS-DOS ou Windows utilisent encore la notation A: B: C: etc... pour accrocher les périphériques locaux ou mapper les ressources distantes.

D'ailleurs de nos jours, certain·e·s utilisent encore des systèmes en mode texte sans interface graphique :

  • Les adminitrateurs / administratices système travaillant sous Linux, Unix, AIX ...

  • Certain·e·s inconditionnels d'anciens systèmes, comme Georges R.R. Martin pour écrire son Game of Thrones (c.f. video youtube)

a-game-of-thrones-wordstar.png

Un extrait de The Secret History of Westeros or a game of thrones. Lors d'une émission (lien youtube suivant) télévisée, l'auteur, G R.R. Martin avoua que son arme secrête pour éviter de se faire pirater à distance les extraits de romans en cours d'écriture, utilisait " an old DOS machine " (une vieille machine sous MS-DOS) et comme traitement de textes il utilisait WordStar 4.0.

Georges R.R. Martin at CONAN / Youtube

  • Des aficionado·a·s qui échangent leurs personnalisations sur le subreddit appelé "unixporn" -> unixporn on reddit

cli-art.png

cli-only.1514294010179.jpg

  • Des gens qui ont des machines à très faibles capacités et ont des besoins spartiates en terme d'interfaces graphiques voire aucune.

De l'interface textuelle vers l'interface graphique

Rares étaient les interfaces graphiques, avant 1984 on pouvait trouver des stations Xerox, et peut être des amiga (à vérifier), passé 1984 on a eu le "Macintosh classique" d'apple, windows est devenu réellement graphique en 1990/1 (windows 3.0).

1_win30.jpg

Sur le site de Toastytech on trouve d'ailleurs des captures d'écran des systèmes d'exploitation de cette époque : http://toastytech.com/guis

A cette époque, et hormis les macintosh et les amiga (avec GEM) les interfaces graphiques ne sont que des surcouches du système, ainsi les "PC" grand public sont livrés avec MS-DOS (ou d'autres DOS jusqu'à ce que Micro$oft bloque le démarrage de windows s'il détecte un DOS autre que le sien en cours d'exécution, c.f. l'affaire "4DOS")... pour un démarrage automatique de windows lors de l'allumage de l'ordinateur il fallait ajouter la ligne "win" à la fin du fichier C:\AUTOEXEC.BAT (oui je sais, ça fait vieux barbu).

windows_3.0.1889430.jpg

Quelques captures d'écran de Windows 3.0 qui fût en son temps une révolution sur PC.

GNU/Linux ont donc été créés à cette époque là. Et, malgré l'arrivée du serveur X Window / XFree86, et comme Unix/Linux étaient plutôt utilisés par des ingénieurs et des passionnés, l'interface graphique n'a pas été leur intérêt. Si bien qu'au milieu des années 90 peu d'interfaces graphiques existent : TWM, KDE, GNOME, sawfish, GNUStep, ICEWm, blackbox ... Le soucis a toujours été à l'époque comme celui que nous expérimentons en tant que libristes actuellement : que ce soient les SoC ou les cartes propriétaires wifi, il faut toujours trouver un driver quelque part, alors imaginez vous dans les années 90, avec une connexion à 56 kbps (7 ko/s) télécharger un fichier de quelques mégas pour un driver sur une ligne anal ogique qui est inutilisable tant qu'on reste connecté à internet...

L'intérêt progressif du public et de développeurs et développeuses pour les Linux s'est traduite progressivement par plus de développements et désormais une jungle d'interfaces. Au milieu des années 90 commencent à arriver les premières applications graphiques et interfaces graphiques dignent de ce nom, TWM, XFCE, FVWM, GNUStep, KDE, GNOME, metacity, ICEWm, blackbox ... mais hormis ces interfaces, peu de logiciels graphiques " grand public ". Le seul outil réellement développé est le terminal graphique où peuvent ainsi s'exécuter les logiciels dont les gens ont l'habitude.

slackware-fvwm.png

Deux des plus anciennes interfaces graphiques ci-avant FVWm (ou sa variante FVWm95) exécuté sur une antique distribution " slackware " et ci après TWM sur un système " debian ".

twm.png

Une autre version de FVWm dite " Crystal " ...

fvwm-crystal.jpg

Et bien sûr n'oublions pas les interfaces graphiques qui sont encore parmi les plus connues du monde linux actuel dans les premières versions stables : GNOME 1 et KDE 1 !

gnome1.jpg

kde1.jpg

Et aussi XFCE version 2

xfce-v2.jpg

Le monde des Linux permet ce que le monde Windows ou Apple ne permet pas : outre le changement de style d'une interface par la personnalisation de l'interface (couleurs, transparences, formes des barres de fenêtres, décorations ou non, position dessus/dessous) il est possible de choisir l'interface qui est notre petite chou-chou et ce même si des gens restent sur l'interface "par défaut " ou choisissent leur distribution en fonction du look qu'elle montre par défaut (d'où à mon avis l'un des critères de la réussite d'ubuntu).

Cependant, il y a toujours eu des "pro" qui ne jurent que par la ligne de commande pour des raisons diverses et variées.

L'objet de la présentation actuelle est de vous donner quelques commandes de base et quelques exemples pratiques pour vous familiariser à la manipulation des dossiers et fichiers, quelques outils d'édition et de mises à jour. Pourquoi ?

Tout simplement car lorsqu'on est un·e habitué·e des interfaces graphiques les raisons d'utiliser une interface textuelle sont (entre autres) :

  • une panne de l'interface graphique (et oui ça arrive... nvidia powaaa !)

  • un goût pour certaines applications plus rapides, moins gourmandes en mode texte qu'en mode graphique (personnalisation à la mode h4ck3rzzz) et une personnalisation à l'extrême du système avec uniquement les "paquets nécesssaires".

Music On Console

  • un pc avec des capacités faibles qui permet d'exécuter peu de logiciels graphiquement mais qui supporte aussi quelques applications textuelles complémentaires.

Historiquement, les années 80 et début 90 offrent aux utilisateurs de PC à but professionnel un logiciel de démarrage, un noyau, un shell et quelques applications. Cela suffit amplement pour beaucoup de gens.

Avant de commencer à faire mumuse dans le terminal, il est nécessaire de reposer quelques bases de l'organisation hiérarchique du système de fichier, car autant dans les interfaces graphiques en comparant celle des 3 systèmes qui en utilisent (je passerai outre les systèmes de téléphones portables ou des tablettes iOS où justement il n'y a plus que des icônes accédant directement aux données mais où le système de fichier sous-jacent est masqué à l'utilisateur basique.

Critère Windows Linux / Unix Mac Operating System / MacPS
Le système (ordinateur) "Ordinateur" ou "Bureau (XP)" / /
Désignation des systèmes attachés non-amovibles C:\ D:\ ... Z:\ (sauf A:\ et B:\ réservés par défaut aux disquettes) /dev/sda.. /dev/sdb... /dev/hd... (vieux linux) /dev/mmcblk0p... le premier de ces systèmes est accroché à "/" / (je n'ai jamais eu à tester des systèmes mac sur plusieurs DD)
Désignation des systèmes amovibles A:\ B:\ D:\ E:\ ... Z:\ (toujours A et B réservés aux disquettes) /mnt/device /media/device /run/media/device (vieux)
/mnt/login/device /media/login/device /run/media/login/device ...
/Volumes/device
Localisation des dossiers des utilisateurs. C:\Documents and Settings (XP)\login
C:\Utilisateurs\login C:\Users\login
/home/login /users/login
Les programmes C:\Program Files
C:\Program Files_(x86)
/bin /sbin
/usr/bin /usr/sbin
/usr/local/bin /usr/local/sbin
?????
Les réglages "par défaut" des programmes C:\Users C:\Utilisateurs
C:\Documents and Settings
Soit dans fichiers soit dans BDR.
/etc/ ou /usr/lib ou /home/login/.config ou /home/login/.local /Users/login/.Library ?

Où configurer le shell des utilisateurs ?

Ce paramètre se configure dans /etc/passwd

Note : Si on regarde les lignes /usr/sbin/nologin

Donc on commence à ouvrir un terminal pour nous entraîner.

Où démarre le shell du terminal ? Il démarre dans le dossier personnel de l'utilisateur donc /home/login. et si c'est l'utilisateur root à savoir l'administrateur c'est dans le dossier /root.

Quelques commandes pour commencer :

Où suis-je ? :

pwd

Cette commande veut dire : Print Working Directory, elle affiche (imprime) le dossier actuel (working directory).

anonymous@Ars3n1c:~$ pwd
/home/anonymous
anonymous@Ars3n1c:~$

Qui suis-je ? :

who et / ou whoami

who : qui est-ce ? whoami : Who Am I qui suis-je ?

anonymous@Ars3n1c:~$ who
anonymous tty7         2018-06-02 09:19 (:0)
anonymous@Ars3n1c:~$ whoami
anonymous
anonymous@Ars3n1c:~$

Qui est connecté au système ? :

w

anonymous@Ars3n1c:~$ w
 11:56:29 up  2:39,  1 user,  load average: 0,36, 3,21, 2,72
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
anonymou tty7     :0               09:19    2:38m  4:03   0.78s /usr/bin/lxsession -s LXDE -e LXDE
anonymous@Ars3n1c:~$

montre qui est connecté au système et le programme qu'il exécute.

je veux aller au dossier /usr/share (par exemple) :

cd /usr/share

cd pour "change directory".

je veux afficher l'organisation des disques :

lsblk

je veux afficher l'état de la mémoire :

free

Quel est l'état d'occupation du disque ? :

df

Quelles sont les tâches en cours d'exécution ? :

top ou htop

top

Affiche l'état du système et la table des processus en cours d'exécution ou en attente (table of processes). On peut aussi utiliser la commande ps

ps

et pour afficher tout ce qui tourne (en arrière plan etc..)

ps -a
ps -e
ps -x
ps -auex

Quels sont les fichiers et "nodes" ouverts ? :

lsof

Note : Il y a l'autocompletion par la touche [tab] qui parcourre alphabétiquement les différents choix possible qui complètent le début saisi._

Deux liens physiques importants à connaître : ./ = dossier actuel, ../ = dossier parent.

Maintenant entraînement à manipuler des dossiers :

Je veux créer un dossier Mars comme sous-dossier du dossier actuel : mkdir Mars (attention à la casse).

Tel quelle la commande mkdir oblige à créer les sous-arborescence les unes après les autres mais en passant quelques options on peut créer tout en une seule fois.

mkdir -p Mars/Satellites/Phobos

Depuis le dossier actuel je veux aller dans le dossier Phobos.

cd Mars/Satellite/Phobos ou bien :

cd ./Mars/Satellite/Phobos et bien sûr pwd pour voir où vous êtes.

Je veux remonter de plusieurs dossiers en une fois :

  1. retour dans Phobos : cd Phobos
  2. remontée des deux dossiers : cd ../.. suivi de pwd.

Je veux remonter d'un dossier : cd .. la preuve par pwd

ET retourner maison

ex : cd /usr/share/icons puis vérification par pwd suivi de cd suivi de pwd pour vérifier à la fin.

Petit entrainement et préparation de la suite, saisie des caractères non reconnus nativement et des espaces :

cd

mkdir Mars/Satellites/Deimos

mkdir Mars/Satellites/Belle Mere

mkdir Mars/Satellites/Belle\ Soeur

mkdir 'Mars/Satellites/Beau Pere'

mkdir "Mars/Satellites/Beau Frere"

echo "Salut" > machin

Note : cd tout seul permet de revenir au dossier de base de l'utilisateur.

Note 2 : la dernière ligne commençant par echo sera expliquée plus tard.

Créer plusieurs sous-dossiers en une seule fois :

mkdir {Jupiter,"Mini moi"}/Satellites/{Io,Europe,Ganymede,Callisto,Bidule}

Attention quand on supprime c'est d é f i n i t i f !

Supprimer un dossier non vide et / ou une sour-arborescence

rmdir Mini\ moi

cela crée une erreur, du coup :

rm -fR ./Mini\ moi

suivi de ls -lh pour vérifier.

Attention au gag : en tant que root, taper un rm -fR / efface la totalité du disque dur :p

La commande ls, . et ..

cd Mars

mkdir ../{Gaia,Venus,Mercure}

cd ..

ls

ls -l

ls -la

ls -lh

ls -lah

ls -rl

comment analyser la sortie d'un ls -l ?

ls -lh
...
drwxr-xr-x 3 anonymous anonymous 4,0K mai    4 23:47 Jupiter
-rw-rw-r-- 1 anonymous anonymous    6 mai    4 23:56 machin
...
type d'entrée droits propriétaire droits groupe propriétaire droits autres nombre de liens (dossiers + . + ..) propriétaire groupe propriétaire taille sur disque date de dernière modification heure de dernière modification nom du fichier
d rwx r-x r-x 3 anonymous anonymous 4,0K mai 4 23:47 Jupiter
- rw- rw- r-- 1 anonymous anonymous 6 mai 4 23:56 machin

le - veut dire que le fichier n'a rien de spécial (c'est un simple fichier d'archives) d -> dossier, S -> Suid bit activé r -> lecture x -> exécution (ou parcours d'un dossier) w -> écriture

Les informations de droits sont modifiables par la commande

chmod (change mode)

Les informations de propriété sont modifiables par la commande

chown (change owner)

rendre un fichier invisible :

ls -l

mv machin .machin

ls -l

à retenir : mv = move (déplacement du fichier).

à retenir 2 : un fichier "invisible" sous linux est un fichier (ou un dossier) dont le nom commence par ".".

Créer un fichier ligne par ligne directement depuis le shell sans éditeur :

cd
cd Jupiter
echo Ceci est le dossier de Jupiter > Readme
less Readme

sortie de less par la touche "Q" (note : c'est la même chose quand on aune mise à jour critique ou grave pour raison de sécurité, un message de post-installation s'affiche, et pour quitter on appuie sur "Q".

cat Readme

vous voyez la différence entre less et cat.

echo ----------------------------------- > Readme

regardons le résultat :

cat Readme

et oui ! Le début à été effacé. Utilisons la touche [flèche haut] pour revenir à la ligne echo Ceci est le dossier de Jupiter > Readme puis ensuite tapez echo ----------------------------------- >> Readme et regardons par un cat Readme.

echo "Bonjour"

A Retenir : less et cat permettent d'afficher des contenus de fichiers, echo permet soit d'afficher du texte, soit d'écrire un texte vers un périphérique ou un fichier en mode écrasement > ou ajout >> .

Edition par bloc

echo "
`> écrivez ici le texte que vous voulez mais sans pouvoir`
`> revenir à la ligne précédente. Chaque nouvelle ligne est`
`> précédée du signe > mais cela permet quand même d'éditer`
`> un fichier au fur et à mesure et quand c'est fini on a 3`
`> choix disponibles : annuler par [CTRL]+[Z]`
`> finir et afficher le texte à l'écran par [CTRL]+[D]`
`> finir et enregistrer dans un fichier en une seule fois`
`> par la redirection finale " >> Readme`

et le résultat obtenu par : cat Readme.

Copier un fichier (Readme) dans un autre dossier

cp Readme ../Mars/

L'option "-v" rend la commande verbeuse.

Copier un dossier et son contenu en une fois

cd ..
pwd (vérification si on est au dessus de Jupiter)
cp -r Jupiter Saturne
ls -l Saturne (pour vérifier que tout à été copié).

Effacer un dossier et son contenu

rm -fR Saturne

Filtrer une sortie d'après un mot clé :

grep

ex : Afficher tous les paquets de debian contenant le mot clé "theme" puis filtrer les sorties pour n'afficher que celles contenant "gtk"

apt-cache search theme | grep gtk

Maintenant qu'on a fini de faire mumuse avec les sorties, les fichiers et les dossiers on va passer aux commandes dangereuses.

Les téléchargements :

téléchager en mode texte :

wget -c ....

curl -L -C- -O ....

Passer en super utilisateur / administrateur

Les mesures de sécurité élémentaires font qu'on sépare

si sudo disponible :

sudo su

si sudo pas disponibles :

su -

exécuter 1 commande unique en superutilisateur :

sudo commande options

su -c "commande options"

ATTENTION : En tant que root vous avez le pouvoir de vie et de mort sur le système et il faut savoir que les applications unix ne disent rien si tout s'est passé comme prévu (si elles donnent des informations c'est qu'il y a une erreur). Si vous voulez forcer le bavardage des commandes alors il faut passer l'option "-v" la plupart du temps (v pour verbose c'est à dire verbeux).

Enchaînement des commandes : & et &&

& : les commandes s'exécutent en parallèle dans des sous-shells

&& : la seconde commande s'exécute si la première renvoie un code d'erreur "0" (donc pas d'erreur).

Avoir de l'aide sur une commande

man commande

Mettre à jour le système

debian et clones (*buntu ; lxle; !#; kali; tails; ...) :

apt update
apt upgrade

redhat et fedora et clones

yum
dnf

dnf system-upgrade clean
dnf clean all
dnf upgrade
dnf system-upgrade download --releasever=28 --allowerasing --best
dnf system-upgrade reboot

les distributions "snap"-isées

snap refresh

archlinux, parabola gnu/linux-libre, manjaro (pour les paquets qui ne sont pas dans AUR)

pacman -Syu
et pour les paquets dans AUR en plus des autres paquets des dépôts par défaut.
yaourt -Syua

voidlinux

xbps-install -Su

nettoyer le cache des paquets

.deb : apt clean

arch & co : pacman -Sc / (yaourt -Sc ?)

void : xpbs-remove -O (attention à la casse)

fedora, redhat :

snap-isées :

Vider les versions obsolètes et / ou le cache des paquets et orphelins

deb : apt autoremove --purge (orphelins / dépendances inutiles) apt-get autoremove --purge (raspi, vieilles deb)

aptitude / dselect -> applications en curses comparables graphiquement à synaptic / kynaptic

pacman -Scc

xbps-remove -Oo

fedora

snaps

supprimer un paquet unique (avec ou sans dépendances)

deb apt remove --purge nom-du-paquet

apt autoremove --purge (pour les dépendances)

pacman -Rs

pacman -Rdd

xbps-remove paquet

snap remove paquet

federa : dnf / yum

redhat : dnf / yum

Quelques utilitaires

  • mc

midnight commander est le logiciel qui s'exécute par la commande mc c'est un véritable couteau-suisse. Rapide. Simple. Capable d'édition de visualisation, copie, effacement et déplacement, il fonctionne en double-fenêtre à la sauce du mythique Norton Commander.

MC

  • nano

Nano

  • moc / npcpdcpb

moc2

  • alsamixer

  • links / lynx / w3m

Ahhh les joies de la navigation en mode texte.... si touchante et nostalgique...

Ces trois navigateurs permettent ainsi de naviguer, sans JS, sans CSS, sans images (si dans un terminal), à l'ancienne...

  • dhcpcd / nm-cli / wicd

  • ssh

  • sshfs

Merci à Tristan de m'avoir fait découvrir cette commande. Un régal ! Elle permet l'équivalent d'un ssh:// ou d'un sftp:// que j'utilise très souvent dans mon explorateur de fichiers graphique (pcmanfm). Grâce à cela on peut attacher une ressource du réseau à un point d'ancrage sur sa propre machine et l'explorer comme un simple sous-dossier (attention cependant aux latences de la connexion qui infuent sur la réactivité).

sshfs login@ressource:/chemin point-ancrage-local
  • fusermount

  • gpg

gpg est un véritable petit chenapan.

  • systemctl / sv

  • ln

Gérer les périphériques et les liens

Formatage, partitionnement, vérification, gravue d'iso, création d'iso...

Partitionnement de périphériques (disques, clés, etc...)

Partitionner un disque (inférieur à 2,3 To)

fdisk /dev/...

cfdisk /dev/...

Partitionner un disque (supérieur à 2,3 To)

gpt ...

Formater une partition

type ext

mkfs.ext2 /dev/....

mkfs.ext3 /dev/....

mkfs.ext4 /dev/....

type swap

mkswap /dev/....

Formater une clé (par exemple) en FAT32 ou EFI

mkfs.vfat -n NOM /dev/....

Créer un lien symbolique

ln -s cible alias

Graver une image

dd status=progress ... if=... of=....

Mounter un périphérique manuellement

C'est à l'aide de la commande mount qu'on pourra effectuer cela. Cette commande permet d'accrocher à un endroit de l'arborescence un support physique et la commande umount permet de le décrocher.

un périphérique réel

Imaginons une clé USB branchée sur le système, son noeud système (la manière dont le noyau linux communique avec elle) est /dev/sdb. Elle possède une partition de type FAT32 dont la désignation est /dev/sdb1 (la désignation se fait automatiquement par le système). Pour avoir accès à ces infos on utilise bien sûr la commande lsblk et ensuite je décide de mounter cette clé dans le dossier /mnt :

mount /dev/sdb1 /mnt

Les noyaux de Linux sont capables de reconnaître automatiquement bon nombre de systèmes de fichier aussi l'option -t .... n'est pas nécessaire.

un ramdisk

Le ramdisk ou disque de mémoire volatile est vraiment très pratique. Il permet de créer dans la mémoire volatile de l'ordinateur un espace assimilé par le système à un stockage permanent, en gros, un peu de ram devient un peu de disque. Quel(s) intérêt(s) ? Ils sont multiples tout autant légaux que non.

Dans les choses légales citons :

  • économiser des cycles d'écriture sur un SSD
  • aider un vieux (ou un lent) disque dur à trouver un souffle de jeunesse
  • virtualiser
  • etc.

Dans le cas d'un usage à but illégal, sachez tout de même que la RAM est vulnérable aux attaques de type "Cold Boot" et que contrairement à la légende une RAM ne s'efface pas à l'extinction mais quelques dizaines de secondes plus tard, plus si elle est vite refroidie.

Voici quand même la commande :

mount -t tmpfs tmpfs point-de-mountage -o size=xxxx

Attention : si l'option -o size=xxxx n'est pas précisée, le système alloue la moitié de la mémoire vive disponible à l'espace de stockage. La taille xxxx doit contenir l'unité : k, M, G ...

une ISO en loop

ls /mnt
mount -o loop -t iso 9660 monfichierimage.iso /mnt
ls /mnt

Par cette commande monfichierimage.iso qui est un fichier contenant une copie bit-à-bit d'un support de type CDROM a été mounté dans le dossier /mnt qui est vide au départ et non vide à l'arrivée. Bien sûr on finit proprement par le démounter :

umount /mnt

Éteindre et redémarrer

suivant les distributions le droit d'éteindre ou de redémarrer le système n'est pas permis directement à l'utilisateur lambda. D'autres distributions permettent l'accès à cette commande. La commande est " shutdown " à la quelle peuvent être passés des arguments divers. Il y a bien sûr la commande "init" ou la commande "telinit" aussi.

Notez que la commande "init" n'est pas forcément existante dans toutes les distributions par contre shutdown et telinit elles oui. Voici quelques options de son utilisation.

Extinction directe du système :

shutdown -h now ou /sbin/telinit 0 ou init 0

Extinction différée du système dans un délais (en minutes) :

shutdown -h +10

Extinction différée du système à une heure spécifique :

shutdown -h -t 23:35:00 (à vérifier)

Redémarrage du système

shutdown -r now

ou

/sbin/telinit 6

ou

init 6


Sources :

manpages

http://toastytech.com/guis/

https://fr.wikipedia.org/wiki/Xerox_Star

https://fr.wikipedia.org/wiki/Interface_graphique

https://fr.wikipedia.org/wiki/Amiga

http://www.catb.org/~esr/writings/taouu/html/ch02s05.html