Skip to content

Petites notes de commandes shell

by aizzet on September 10th, 2015

• empty trash on Mac OS X using Terminal:
rm -rf ~/.Trash/*
Sometimes you need to force it so use a sudo command:
sudo rm -rf ~/.Trash/* (your password will be required).
____________________________________________________________________________
• Voir combien il reste d’espace disque :
df -h (-h pour avoir les données en octets)
____________________________________________________________________________
• Faire une recherche d’un mot dans Vim :
/puis_le_mot puis shift+n (« n » pour « next »)
____________________________________________________________________________
• Rechercher une chaine de caractère dans la sortie d’une autre instruction :
your_shell_command | grep the_string_you_are_looking_for
e.g.:
ps | grep IPA Here I am looking within the process currently running (using the command Process Status ps the process called IPA).
____________________________________________________________________________
• install top sur Mac Os X : avec Homebrew
brew install htop
____________________________________________________________________________
• pour compiler en C mon code contenu dans main.c (et en faire un executable que l’on appelle par exemple CCC : se mettre dans le dossier contenant le main.c puis :
gcc -o CCC main.c (sur Linux, il faut linker la bibliothèque Math donc ajouter -lm à la fin de la ligne de commande)

• ensuite, lancer le calcul depuis l’executable :
./CCC
(NB: on peut lancer le calcul avec un nohup ou encore en utilisant screen 😉
____________________________________________________________________________
• lancer une command line qui survit à la mort du shell qui l’a lancé :
nohup [ma ligne de commande, le programme que je veux lancer]

• si en plus on souhaite écrire la sortie de ce programme et l’écrire dans un fichier :
nohup ./mon_programme > sortie.txt

• si en revanche on veut écrire dans un fichier sortie sans afficher la sortie à l’écran et continuer d’utiliser le Terminal, alors :
nohup ./mon_programme > sortie.txt &

• si installé, on peut aussi utiliser screen puis on lance sa commande dedans. Ensuite pour détacher la fenêtre du terminal (de la commande qui tourne toujours) :
crtl+a crtl+d (ou crtl+a d)
puis pour re-attacher le terminal virtuel de screen depuis un autre terminal :
screen -rd

____________________________________________________________________________
• lorsque l’on écrit un script shell (.sh), il faut le rendre executable pour pouvoir le lancer. On utilise alors la commande chmod avec l’option +x:
chmod +x script.sh
Je reviendrai sur l’écriture de scripts shell plus tard.
____________________________________________________________________________
• Installation de SSHFS sur Mac OS:
1. Télécharger FUSE et l’installer : http://sourceforge.net/projects/osxfuse/files/
2. Télécharger SSHFS et l’installer : https://github.com/osxfuse/sshfs/releases
Plus d’explications (installation, désinstallation sur https://github.com/osxfuse/osxfuse/wiki/SSHFS)

• Utilisation de SSHFS
1. créer le lien entre les deux ordi. Là on crée l’image disque virtuelle qui lie mon home sur ingres et on le met dans testcluster/
mkdir testcluster
sshfs login@cluster: testcluster/
2. ensuite, on peut aller dans l’arborescence de Ingres (ordinateur distant) depuis mon mac (sur lequel je suis) en allant dans le dossier testcluster/
3. Parfois, on n’arrive pas à faire le sshfs car le dossier testcluster n’a pas été démonté. Il faut alors forcer le démontage du disque virtuel par la commande :
sudo diskutil umount force [path] (pour moi [path] = ~/testluster)
puis remonter à nouveau l’image virtuelle.
4. de manière générale je préconise de démonter le disque virtuel à chaque fois que l’on se déconnecte du réseau (et/ou que l’on éteint le mac).
____________________________________________________________________________
• Pour copier le même fichier dans plusieurs répertoires :
echo ./nomgenerique_*/ | xargs -n 1 cp datain.txt
Sinon, on peut aussi faire ça :
echo dir1 dir2 dir3 | xargs -n 1 cp file1
Will copy file1 to dir1, dir2, and dir3. xargs will call cp 3 times to do this, see the man page for xargs for details.

De même, pour effacer plusieurs fichier (par exemple output*.txt) dans plusieurs répertoires :
echo ./nomgenerique_*/output* | xargs -n 1 rm
____________________________________________________________________________

From → commandes shell

No comments yet

Leave a Reply

You must be logged in to post a comment.