« Les facéties du loader de Windows | Home | Parted »
Quelques astuces de la ligne de commande
posté par cep le 29 janvier 2007
Mise à jour : 27/02/07
Supprimer tous les fichiers d’un répertoire sauf un fichier :
cd ~/dossier
find ./* ! -name ‘fichier_à_garder’ -exec rm {} \;
Pour supprimer tout les fichiers sauf par exemple les fichiers lundi et jeudi :
find ./* \( ! -name ‘lundi’ -a ! -name ‘jeudi’ \) -exec rm {} \;
Voir man find : la négation « ! » et les opérateurs « and » et « or » (« -a », « -o »).
__________
Afficher les permissions d’un dossier en octal :
stat fichier | sed -n ’s/^Access: (\([0-9]\{1,\}\).*/\1/p’
Autres solutions :
stat -c %a fichier
ou bien :
stat /etc/sudoers |sed -n ‘4p’
Access: (0440/-r–r—–) Uid: ( 0/ root) Gid: ( 0/ root)
__________
Connaître son IP derrière routeur :
wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1
Ou bien dans un script pour afficher le résultat dans une boite :
zenity –info –text=” `wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d\< -f 1 ; /sbin/ifconfig eth0 |grep inet\ adr | awk '{ print $2} ' |cut -d: -f 2 `"
__________
Afficher son mbr dans terminal
sudo dd bs=512 count=1 if=/dev/hda | od -Ax -tx1z -v
__________
Chercher dans les bases de données administratives, passwd, group, hosts, services, protocols, ou networks.
getent database [key …]
:~$ getent group cep
cep:x:1000:
:~$ getent passwd cep
cep:x:1000:1000:xxxx yyyyyyy,,,:/home/cep:/bin/bash
__________
Trouver un mot dans un répertoire :
grep -r -l ‘mot_à_trouver’ /repertoire 2>/dev/null
exemple :
grep -r -l ‘mdadm’ ~/docs/ 2>/dev/null
/home/cep/docs/raid.txt
__________
Afficher les fichiers de configuration sans les # commentaires :
exemple pour lire le fichier /etc/Muttrc :
awk ‘! (/^ *#/ || /^$/) { print $0 }’ /etc/Muttrc
__________
Vous rédigez un tuto et vous voulez enrégistrer toutes les commandes passées dans un terminal, ainsi que les résultats :
script mes_commandes.txt
et pour arrêter lorsque vous avez terminé : exit
autre solution :
bash -i 2>&1 | tee mes_commandes.txt
puis exit
__________
Ajout du 31/01/2007 :
Vous êtes en train de travailler dans le dossier /usr/share/doc/aptitude/examples/ et vous avez besoin de vérifier un point dans le dossier /mnt/gestion/debian-live/ puis revenir à votre dossier initial.
Afin de ne pas avoir à réécrire l’adresse entière de votre dossier initial, il est possible de remplacer cd par pushd + adresse de la cible et seulement popd pour revenir au point de départ.
Exemple :
[/usr/share/doc/aptitude/examples] :~$ pushd /mnt/gestion/debian-live
/mnt/gestion/debian-live /usr/share/doc/aptitude/examples
[/mnt/gestion/debian-live] :~$ popd
/usr/share/doc/aptitude/examples
[/usr/share/doc/aptitude/examples] :~$
Les lignes en italique ont été ajoutées par le système pour signaler son cheminement.
__________
Ajout du 27/02/2007 :
Sur une idée de fran.b :
À la suite d’une erreur de commande, vous avez modifié à tort tous les droits d’un répertoire ou même de /.
Pour réparer, récuperer la liste des droits sur une machine saine, par exemple pour /etc/ :
# cd /etc
# find . -printf ‘chmod %m %p\n’ > /tmp/permissions_etc
puis sur la machine où il y a les droits à restaurer, utiliser le fichier permissions_etc créé auparavant :
# cd /etc ; sh permissions_etc
à suivre.
cep
Topics: linux |

29 janvier 2007 at 12:10
Woaw, cep, super, comme toujours
29 janvier 2007 at 12:59
l’idée de ce poste m’est venue en visitant b-initials
4 mars 2007 at 3:55
J’ai adoré pudhd et popd, que je ne connaissais pas.
Juste, pour les amateurs, pushd et popd gèrent une pile.
(On peut imaginer qu’on empile les dossiers les uns sur les autres avec push, et qu’on les enlève avec pop…
On peut enchâiner plusieurs push et pop les uns dans les autres !)
10 juin 2007 at 11:01
Merci pour ces astuces !
Celles de pushd et popd est vraiment pas mal du tout !
10 juin 2007 at 11:18
Merci pour le commentaire.
Dans le même genre que pushd mais plus complet, voir apparix :
http://www.cepcasa.info/blog/?p=93
10 juin 2007 at 13:14
Re bonjour ! Pourrais tu m’expliquer le fonctionnement de :
awk ‘! (/^ *#/ || /^$/) { print $0 }’ /etc/Muttrc
J’ai regardé dans l’aide de awk, mais c’est assez long à lire. En fait je ne trouve pas dans le man la signification de /^.
Pourquoi y aurait-il /^ dedans ? (si j’ai bien compris, ^ sert de négation). Je pensais que le ! au début servait à dire :
NON ( le caractère # OU le caractère $ )
Merci !
10 juin 2007 at 14:26
prendre au début de chaque ligne (c’est le rôle de ^) le caractère # puis d’exclure ces lignes pour n’afficher ensuite que les lignes sans commentaires.
Mais j’aurais plutôt :
awk ‘! (/^ *#/ || /^$/) { print $0 }’ /etc/Muttrc
car ton dernier ‘ n’est pas bon.
10 juin 2007 at 16:05
Ok merci. Mais tu as écris la même chose que moi là :S ? Ou alors j’ai du mal à voir la différence des apostrophes… c’est celle de altgr+4 ou de altgr+7 ?
@++
10 juin 2007 at 16:53
En effet, difficile à voir sur cet html. Ce n’est ni altgr+4 ni altgr+7 mais le 4 ‘ en entrée et en sortie.
21 décembre 2007 at 14:50
Salut Cep,
Pour l’histoire du pushd/popd, la commande “$cd -” à bien la même utilité non ?
21 décembre 2007 at 15:32
Bonjour jaywax,
En plus simplifié, oui. Tu peux avoir les autres détails de l’utilisation de pushd en faisant :
help pushd