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] (si toujours rien testez avec F1, F2, etc … jusqu’à obtenir quelque chose).
Attention, le raccourci est très dépendant de votre environnement ! Essayez de trouver un des logiciels suivants pour lancer une console :
- Terminal
- xterm
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 :
- Ligne avant :
vim /home/olivier/fichier.txt /mnt/externe/fichier/super/loin/et/chiant/a/atteindre/
- Commande à passer pour changer vim en cp :
^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 :
- morceau00
- morceau01
On peut modifier la taille en remplaçant 1920M par autre chose (selon besoins).
Voici quelques tailles :
- 3968M : inférieur à 4Go
- 1920M : inférieur à 2Go
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
où mon_fichier.ext est le nom du fichier que vous voulez ouvrir.
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ù :
- fichier.txt est à remplacer par le fichier dans lequel se trouve les chaînes de caractères.
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
où 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}