Savoir ou on se trouve

pwd

Ajouter une variable de chemin

Aller dans son fichier /home/.bashrc et y ajouter à la fin par exemple:

# ajout PHPSTORM
PATH="/home/acrona/1-logiciels/PhpStorm/bin:$PATH"

le :$PATH à la fin permet de conserver les autres Paths déjà enregistrés

Créer un fichier ou changer sa date de création

touch -t 190001021352 test.txt

(date de création au 2 janvier 1900 à 10h50)

Compression / Décompression TAR

Décompresser

Tar –xzf archive.tar.gz

Compacter

tar -cvvf foo.tar foo/

Compresser (gzip)

tar -czvvf foo.tar.gz foo/

Compresser (bzip2)

tar -cjvvf foo.tar.bz foo/

pour faire un tar en excluant un répertoire (ici le répertoire cache contenu dans www):

tar -cvf archive.tar www --exclude='cache'

Si c'est un programme-source, pour installer,

./configure –prefix=/home/path…

make

make test

make install

Chercher un mot dans un fichier .gz

Gunzip -c *.gz | grep mot

Chercher un mot dans un fichier

rechercher un texte dans un fichier

grep texte fichier (avec -n pour le n° de ligne)

ou mieux (affiche le nom du fichier et la ligne où le texte est trouvé):

 grep -nH "texte" *

avoir la liste des fichiers contenant un texte :

find . -type f -exec grep -l texte {} \;

trouver un fichier d'un certain nom sur le disque:

locate nomdefichier

Chercher un mot dans un PDF

Installer le paquet pdfgrep qui se comporte comme grep...

grep -nH "texte" *.pdf

Lien symbolique

Pour faire un lien sympolique (ex. /home vers un autre endroit) (ne pas oublier d'effacer le /home avant.)

 ln -s /srv/sami/home/ /home

Garder un processus ouvert

Nohup commande (permet de garder le processus vivant après deloggage)

commande & (permet de faire la commande en tache de fond)

Préférer la commande screen (astuces 133 linuxfr):

Voici screen, petit utilitaire permettant de multiplier les consoles virtuelles, mais surtout, permettant de les détacher de leur processus père. En clair, vous êtes en ssh sur un serveur, vous faites "screen" et vous avez une console virtuelle. "Ctrl-a d" détache la console virtuelle et là vous pouvez perdre la connexion, votre console existe toujours !! "screen -r" vous la retrouvera au prochain ssh telle qu'elle était (apt-get install screen)

voir : https://help.ubuntu.com/9.04/serverguide/C/screen-profiles.html

http://doc.ubuntu-fr.org/screen

remplir l'espace non utilisé avec des 0 :

dd if=/dev/zero of=fichiersortie
Attend.
Efface le fichierout.
rm fichiersortie
Voilà l'espace non utilisé est rempli de 0.
Mais aucune donnée n'est effacée.

Truc pour savoir ou on en est:

nice -19 dd if=/dev/zero of=fichier& pid=$!

( nice -19 devant, juste pour pas mettre à genoux la machine...)

et pour savoir, faire :

kill -USR1 $pid

Recharger la configuration d'un processus (exemple Apache2)

kill -HUP < /var/run/apache2.pid

Pour tuer un processus (exemple Apache2)

kill -TERM < /var/run/apache2.pid

Copier sous SSH avec SCP

pour copier un fichier local vers un hôte distant (ex. vers acrona.com sur le compte acrona):

scp nomfichier acrona@acrona.com:nomfichier

  • copy local file lfile to rfile on remote machine rsys

    • scp lfile rsys:rfile

      • -p preserves modification time, access time and mode from original

        • scp -p lfile rsys:rfile

  • copy local file lfile to rfile of user ruser on remote machine rsys

    • scp lfile ruser@rsys:rfile

  • copy local files lfile1 lfile2 to directory rdir on remote machine rsys

    • scp lfile1 lfile2 rsys:rdir

  • copy rfile from remote machine rsys to local file lfile

    • scp -p rsys:rfile lfile

  • copy local directory ldir to directory rdir on remote machine rsys, -r recursively copies entire directories

    • scp -r ldir rsys:rdir

  • copy remote file rfileA on remote machine rsysA to rfileB on remote machine rsysB

    • scp rsysA:fileA rsysB:rfileB

      Pour envoyer une source locale vers une target distante (enrespectant les attributs et les sous-répertoires)

scp -rp localdir remotehost:remotedir

exemple pour rapatrier le répertoire www:

scp -rp acrona@rlx:/home/acrona/www www

renommage série de fichiers

Pour renommer une série de fichiers (par exemple par extension), sous linux, il existe rename. Mais quand on veut être portable, voilà comment procéder :

for i in *.txt;do mv $i ${i%txt}dat ;done

renommera tous les .txt en .dat par exemple.
Il existe aussi d'autres méthodes de substitution (#, ##, %%). man sh pour plus d'infos :)

En utilisant rename (finalement, ca marche très bien aussi..)

pour faire plusieurs fichiers d'un coup:

 find -type f -name '*.jpg' | rename 's/foto/photo/'

ce qui va remplacer tous les foto par photo

on peut aussi utiliser les * (un ou plusieurs caractères), le . (un caractère), etc..

voir pour plus de détail http://www.computerhope.com/unix/rename.htm

Connaitre sa version d'ubuntu (ou d'un paquet)

lsb_release -a

apt-cache policy  nomdupaquet (donne la version installée)


apt-cache show nom du paquet (donne la version officielle en cours)