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)