« 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 |

11 Responses to “Quelques astuces de la ligne de commande”

  1. bapoumba Says:
    29 janvier 2007 at 12:10

    Woaw, cep, super, comme toujours ;)

  2. cep Says:
    29 janvier 2007 at 12:59

    l’idée de ce poste m’est venue en visitant b-initials :-)

  3. yannick_LM Says:
    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 !)

  4. Revan Says:
    10 juin 2007 at 11:01

    Merci pour ces astuces !
    Celles de pushd et popd est vraiment pas mal du tout !

  5. cep Says:
    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

  6. Revan Says:
    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 !

  7. cep Says:
    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.

  8. Revan Says:
    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 ?

    @++

  9. cep Says:
    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.

  10. jaywax Says:
    21 décembre 2007 at 14:50

    Salut Cep,

    Pour l’histoire du pushd/popd, la commande “$cd -” à bien la même utilité non ?

  11. cep Says:
    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

Comments

*
Pour prouver que vous n'êtes pas un bot, recopiez le code ci-dessous
Anti-Spam Image