jeudi 6 septembre 2012

bash, supprimer les espaces en début de ligne

Pour supprimer les espaces en début de ligne...



ou alors avec awk



awk, space, espace, trim, strip

bash, supprimer les tags html avec sed...

Dans certains scripts bash, on peut souhaiter supprimer les tags html d'un flux ou d'un fichier. Pour cela on peut utiliser la commande sed.



sed, tag, html

mercredi 5 septembre 2012

bash, récupérer le code de retour d'une commande au travers d'un pipe

L'exemple se passe de commentaires !
$ ls toto | head -n 1
ls: impossible d'accéder à toto: Aucun fichier ou dossier de ce type
$ echo $?
0
$ set -o pipefail 1
$ ls toto | head -n 1
ls: impossible d'accéder à toto: Aucun fichier ou dossier de ce type
$ echo $?
2
Pratique dans le cas d'un "curl $url | sed ... > $output" pour savoir si une erreur est remontée.

SUID bit

L'utilisation du bit SUID permet d'exécuter des scripts en se faisant passer pour un autre utilisateur. Cela peut être pratique sur sa machine personnelle pour appeler un script qui modifie la luminosité de l'écran... Mais aussi dangereux si la machine est utilisée par d'autres utilisateurs...

Attention, après recherche le bit suid ne fonctionne pas sur linux pour les scripts bash... Cela explique bien des choses que je ne comprenais pas !
$ cat hello.c
#include
#include

int main(int argc, char **argv[]) {
  printf("hello getuid=%d geteuid=%d\n", getuid(), geteuid());
}
$ gcc hello.c -o hello && sudo chown root:root hello && sudo chmod u+s hello && ls -l hello
-rwsr-xr-x 1 root root 8484 2012-09-05 13:43 hello
$ ./hello 
hello getuid=1000 geteuid=0
$ sudo chmod u-s hello
$ ./hello 
hello getuid=1000 geteuid=1000

mardi 4 septembre 2012

Linux Mint Cinnamon & Samsung ML-1865 (2)

En installant l'imprimante, le daemon smfpd se met en place et démarre automatiquement à chaque allumage.

Ce daemon n'est utile que dans le cas où l'imprimante Samsung est connectée à un port parallèle... Ce qui n'est pas le cas de ma ML-1865 !

Or ce daemon est gourmand en ressources et donc la batterie du portable diminue plus vite :(

Pour l'économiser, editer le fichier /etc/inid.d/smfpd et décommenter la ligne "exit 0". Le programme se terminera aussitôt lancé. Cette modification sera prise en compte au prochain démarrage.