Catégorie « Quelques trucs sur… »

Quelques trucs sur UNIX/Linux #1

Les habitués du mode console n'apprendront probablement rien de cet article mais pour ceux qui, comme moi, ne s'en servent qu'occasionnellement, ça peut s'avérer instructif.

Recherche dans l'historique

On a vu il y a quelques temps qu'on pouvait alléger l'historique des commandes saisies en ignorant les doublons. Si la commande que vous recherchez est malgré cela noyée dans la masse, vous pouvez utiliser ctrl+r et taper les premiers caractères de la commande recherchée pour la retrouver.

Blocage de la console

Le raccourci ctrl+s permet de suspendre le terminal (saisie et exécution). Pour le débloquer, le raccourci est ctrl+q donc si le terminal se bloquer mystérieusement (ce qui peut arriver vu que ctrl+s est le raccourci de sauvegarde dans la majorité des éditeurs de texte graphiques et qu'il n'est pas rare de le taper machinalement après une saisie), tentez ça avant de frapper sauvagement sur votre clavier ;)

Retrouver les plus gros fichier de votre système

Une partition est pleine, il faut faire de la place ! Oui, mais où sont les gros fichiers qui consomment tout l'espace ? Telle est la situation dans laquelle je me suis retrouvé pas plus tard qu'il y a 5 minutes...

Après une brève recherche sur le net ( que je en compte pas refaire à l'avenir, d'où l'intérêt d'en donner le résultat ici :) ), voici la réponse avec une combinaison de du et sort :

du -S <noeud-de-l'arborescence> | sort -n

Soit dans mon cas, pour lister tous les dossiers du système :

du -S / | sort -n

On retrouvera alors les dossiers contenant les plus gros fichiers en fin de liste. Par contre ça peut mettre un peu de temps à s'exécuter vu que ça fait le tour de tous les dossiers.


Quelques trucs sur PHP #1

Quelques petits trucs que je n'ai appris que récemment. Peut-être étais-je le seul à les ignorer... ou peut-être pas, donc dans le doute...

Sortir de plusieurs boucles à la fois

Classiquement l'instruction break; s'utilise telle quelle pour sortir de la boucle ou du switch courant. Cependant en PHP (et sans doutes dans d'autres langages également), on peut lui adjoindre un paramètre entier permettant de sortir de plusieurs boucles à la fois. Ceci est à utiliser avec parcimonie car ce n'est pas forcément des plus lisible mais ça peut aider à accélérer une recherche dans un tableau multi-entrées par exemple :

// Supposons que $array est un tableau à double-entrée contenant des entiers
// et que l'on en cherche un supérieur à 10.
$result = null;
foreach ($array as $subArray)
{
	foreach ($subArrayas $item)
	{
		if ($item > 10)
		{
			$result = $item;
			break 2;
		}
	}
}

Paramètre de la fonction die

C'est plus une instruction qu'une fonction mais bon, passons. Elle peut prendre en argument un entier ou une chaine de caractère mais cet argument n'est affiché à l'écran que s'il s'agit d'une chaine. Ça n'a l'air de rien mais c'est bon à savoir...

DOM ou SimpleXML ?

SimpleXML c'est bien gentil et comme son nom l'indique, c'est «simple» (du moins dans son interface qui compte très peu de méthodes), mais à l'usage c'est quand même des plus limités. Et c'est plutôt chiant à utiliser parce qu'il faut caster pas mal de choses pour obtenir des chaines de caractère au lieux de nœuds XML (sans compter le bug dont je parlais il y a quelques temps). D'autant qu'il existe une alternative...

En effet, j'en étais resté à PHP4 où l'API DOM se cantonnait l'extension DOM XML non-incluse par défaut, ce qui n'était pas bien pratique... Mais en PHP5, elle a été remplacée par une nouvelle implémentation incluse en natif dans PHP sous le nom de DOM. Bref, en ce qui me concerne, SimpleXML va direct à la poubelle et je n'utilise plus que DOM, avec l'avantage supplémentaire d'être similaires aux bibliothèques DOM présentes dans d'autres langages tels que JavaScript, puisque DOM est un standard, ce qui raccourcit d'autant l'apprentissage.