Définition

La console, c’est bien beau mais c’est quoi ? On pourrait réduire cela à une fenêtre ouverte permettant de taper des commandes et recevoir les résultats de ces commandes sous forme textuelle, voire parfois d’ouvrir une application graphique. Et parfois encore, des erreurs nous indiquant que nous nous sommes trompé de commande.

Lancement de la console

Sous Windows

Menu démarrer > Exécuter, puis tapez winbatchcmd puis pressez la touche [Entrée]

OU appuyez sur les touches [Windows] + [R] pour lancer une fenêtre dans laquelle vous taperez également winbatchcmd puis presserez la touche [Entrée].

Sous Linux

Appuyez simultanément sur les touches [Ctrl] + [Alt] + [F1]. Un genre d’écran noir apparaît avec une invite de commande. Pour revenir en mode normal, pressez [Ctrl] + [Alt] + F7.

Attention, le raccourci est très dépendant de votre environnement ! Essayez de trouver un des logiciels suivants pour lancer une console :

Quelques commandes sous GNU/Linux

La commande qui tue

Cette commande va remplir entièrement votre mémoire vive et l’ordinateur va se figer.

:(){ :|:& };:

NB : Certaines distributions se sont occupées de rendre cette commande inutilisable.

Ejecter et rentrer un CD pour épater les amis

Ces deux commandes ne demandent pas forcément la présence du paramètre /dev/dvd/.

eject /dev/dvd

Cette commande permet l’éjection du plateau du lecteur, on peut remplacer par /dev/cd pour les cdrom.

eject -t /dev/dvd

Cette commande permet de rentrer le plateau du lecteur DVD.

Connaître l’espace utilisé par un dossier

du -h --max-depth=1 /nom/du/dossier

Convertir dans un autre endodage

$ iconv -f ISO-8859-1 -t UTF-8 < [source] > [destination]

ou

$ iconv --from-code=UTF-8 --to-code=ISO-8859-1 < [source] > [destination]

Pour connaître l’encodage du fichier on fait :

file nomdufichier

Cf. http://www.rapazp.ch/linux/shell/bash#_changement_de_l_8217_encodage

Remplacement de commande

Vous avez tapé une commande dans une console, mais vous avez oublié quelque chose, juste dans le début. Seulement voilà, vous êtes fainéant et ne voulez pas retaper toute la ligne qui suit avec l’ensemble des paramètres et dossiers.

Pour gagner du temps, faites ceci :

vim /home/olivier/fichier.txt /mnt/externe/fichier/super/loin/et/chiant/a/atteindre/
^vim^cp

Le code s’exécute comme un cp 😉

NB : Il est également possible de faire

!!

pour rappeler entièrement la commande du dessus.

Supprimer les fichiers d’un dossier SAUF ceux d’une extension donnée

Nous devons recueillir la liste des fichiers contenus dans le dossier, montrer ceux qui n’ont pas l’extension .ext (le paramètre -v de la commande grep est là pour ça) et prendre le tout pour le supprimer, ce qui donne :

rm `ls | grep -v .ext`

Au final tout les fichiers contenus dans le dossier, et ne possédant pas l’extension .ext seront supprimés.

Afficher les X premières lignes d’un fichier

head -X fichier

Afficher les X dernières lignes d’un fichier

tail -X fichier

Sélectionner du texte selon un rectangle défini sur un terminal graphique

Pour sélectionner du texte selon un cadre rectangulaire, pressez - et restez appuyé sur - les touches suivantes : [Ctrl]+[Alt] puis utilisez la souris avec le clic gauche pour choisir votre espace de texte à copier.

NB : Astuce utilisée sur Gnome-terminal et Urxvt.

Découper un fichier en plusieurs autres

Il suffit de taper la commande suivante :

split -d -b 1920M --verbose fichier_a_decouper.ext morceau

Ceci va donner plusieurs fichiers de 2Go de taille (environ), autant qu’il en faut pour avoir l’ensemble du fichier original. Par exemple :

On peut modifier la taille en remplaçant 1920M par autre chose (selon besoins).

Voici quelques tailles :

Pour remettre les fichiers ensembles il suffit d’utiliser la commande cat :

cat morceau00 morceau01 > fichier

Mettre en majuscule la première lettre d’une phrase

echo "salut les gens" |sed 's/^./\u&/'

Afficher le numéro de la semaine courante

date -u +%V

Pour plus d’infos, Cf. man date.

Ouvrir graphiquement un document/fichier avec l’application par défaut

Il s’agit d’ouvrir un document, tel qu’un *.odt, un *.pdf, etc. quand nous sommes en ligne de commande.

Voici l’astuce :

xdg-open mon_fichie.ext

mon_fichier.ext est le nom du fichier que vous voulez ouvrir.

Il faut avoir un serveur X installé, évidemment.

Supprimer les sauts de ligne d’un fichier et ajouter une espace à la place

Il peut arriver d’avoir une liste de numéro ou de chaînes de caractères qui sont en ligne. Nous voudrions tous les avoir les uns après les autres séparés par une espace.

Pour faire cela, voici la commande à utiliser :

cat fichier.txt | tr "\n$" "\ "

où :

Avant :

1
2
3
4

Après :

1 2 3 4

Supprimer les liens symboliques d’un dossier

Il suffit de chercher les liens symboliques d’un fichier et de demander la suppression directe :

find ./ -type l -exec rm -i {} \;

Supprimer une ligne d’un fichier

Il suffit d’utiliser sed et un chiffre pour supprimer une ligne (exemple pour la 3ième ligne) :

sed -i '3d' mon_fichier.txt

3 désigne la troisième ligne.

Connaître les résolutions pour le framebuffer (console)

Il faut installer la commande hwinfo puis faire :

hwinfo --framebuffer

En ajoutant le code donné (par exemple 0x0317) au paramètre VGA de Grub on permet d’avoir une console avec une résolution plus grande.

Capturer l’image d’un site internet sans interface graphique

Selon http://www.lafermeduweb.net/ il faut utiliser CutyCapt en procédant ainsi :

apt-get install subversion libqt4-webkit libqt4-dev g++ xvfb
svn co https://cutycapt.svn.sourceforge.net/svnroot/cutycapt
cd cutycapt/CutyCapt
qmake
make
xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=http://olivier.dossmann.net/ --out=olivierdossmann.jpg --out-format=jpeg

Indenter des fichiers XML ou HTML

Pour XML :

xmllint --format monfichier.xml

Pour HTML :

xmllint --format --html monfichier.html

La sortie se fait dans la console. Si vous voulez enregistrer dans un fichier, utilisez > comme ceci :

xmllint --format monfichier.xml > nouveaufichier.xml

Afficher le contenu d’une page web

Il faut utiliser la commande wget et cat :

wget -qO- http://perdu.com | cat

Ou plus simple encore à l’aide de la commande curl :

curl http://perdu.com

Variable de variable en bash

Il suffit d’utiliser la forme ${!VAR} :

UN=1
var="UN"
echo ${!var}