Vous êtes sur la page 1sur 51

pwd print working directory

ls lister fichiers et dossiers du répertoire courant


ls -a afficher tt le contenu même caché
ls dossier lister contenu du dossier
history historique des commandes
Ctrl+R recherche d’une commande tapé avec qq lettre
Tapez la lettre (reverse-i-search) ’g’ retapez Ctrl+R
pour autre occurrence
Ctrl+L ou clear efface le contenu de la console
Ctrl+D ou exit fermer la console
Shift+PgUp remonter ds les messages envoyés par
console
Shift+PgDn redescendre
Ctrl+A ou Origine aller vers début de la commande
Ctrl+E ou Fin aller vers la fin de la commande
Ctrl+U supprimer tt ce qui se trouve à gauche du
curseur
Ctrl+K supprimer tt ce qui se trouve à droite du curseur
Ctrl+W supprimer le premier mot à gauche du curseur
Ctrl+Y colle du texte supprimé avec raccourcis de
suppression
which commande emplacement d’une commande
ls --color=auto activer la coloration
ls --color=none désactiver la coloration
ls -F lister les éléments montrant leurs types
ex : Desktop/ (dossier) ; exemple@ (raccourcis)
ls -l liste détaillée
droits ;nb lien physique ;propriétaire ;groupe ;taille octets ;date_dernière_modif ;nom fichier ou dossier

ls -h human readable ; lisible en Ko,Mo,Go…


ls -t trier par date de dernière modification -> ls -lt
-r pour inverser l’ordre
ls -larth (utiliser en alias)
ls -ltr
cd dossier changer de dossier
cd / aller à la racine
cd .. aller vers le dossier parent
cd ../.. revenir au 2ème dossier parent
cd /home/ubupass retour au répertoire home
cd ~ ou cd idem retour au répertoire home
du Disk Usage taille du dossier actuel et sous-dossiers
s’ils existent, et total
du -h la taille pour les humains
du -a la taille des dossiers et des fichiers
(du par défaut affiche que la taille des dossiers)
du -s taille globale
cat fichier afficher tt le fichier d’un coup (préférable au
petit fichier)
cat -n fichier afficher les numéro de ligne
less fichier afficher le fichier page par page
more proche de less mais moins performante
Espace défile le fichier vers le bas d’un écran
b ou Page Up retourne en arrière d’un écran
Entrée ou flèche bas affiche la ligne suivante
y ou flèche haut une ligne en arrière
d afficher 11 lignes
u retourner en arrière d’une moitié d’écran
q quitter
= savoir ou je suis
h afficher l’aide
/ lancer le mode recherche
/motif Entrée n pour autre occurrence
N pour occurrence précedente

head afficher le début d’un fichier


head -n avec nombre de ligne à afficher
tail afficher la fin du fichier
tail -n avec nombre de ligne
tail -f suivre la fin du fichier(follow) ;Ctrl+c arrêter la
commande (recherche ds le fichier ttes les secondes)
tail -f -s 3.4 recherche ds le fichier ttes les 3.4 scondes)
touch fichier créer un fichier sans extension
touch fichier.extension fichier avec extension
touch fichier1 fichier2 fichier3 simultanément
touch ’’fi chier’’ créer un fichier avec espace
mkdir dossier créer un dossier
mkdir dossier1 dossier2 créer plusieurs dossiers
mkdir ’’doss ier5’’
mkdir -p animaux/vertèbres/chat créer les dossiers
intermédiaires
cp fichier fichiercopy copier un fichier ds même
repertoire
cp fichier dossier ou
cp fichier dossier/ copier un fichier dans un autre
répertoire sous le même nom
cp fichier dossier/fichiercopy copier un fichier dans un
autre répertoire sous un autre nom

cp -R dossier dossiercopy copier un dossier


cp -R dossier dansdossier ou
cp -R dossier dansdossier/
copier un dossier dans un dossier (existant)
cp -R dossier dansdossier/autrenomdossier
copier un dossier avec un autre nom
cp *.jpg dansdossier/ copier les images dans un dossier
cp lo* dansdossier/ copier les fichiers commençant par
’’lo’’
mv fichier dossier/ deplacer le fichier dans le dossier
mv *.jpg dossier/ deplacer plusieurs fichiers
mv dossier1/ dossier2/ deplacer le dossier1 dans
dossier2
resumé

mv fich_ou_doss dossier/ deplacement


mv fichier fichierrenomé renommer un fichier
mv fichier dossier/fichierrenommé deplacer et
renommer un fichier à la fois
mv dossier1 dossier2/ dossier1renommé deplacer et
renommer un dossier à la fois
rm fichier supprimer un fichier
rm fichier1 fichier2 supprimer plusieurs fichiers
rm -i fichier supprimer un fichier avec demande de
confirmation
rm -f fichier forcer la suppression
rm -v fichier1 fichier2 faire parler la commande
rm -r dossier/ supprimer un dossier et son contenu
rmdir supprimer dossier vide
rm -rf /* supprimer tous les dossiers,fichiers à la racine
rm -rf * supprimer tous les dossiers,fichiers du dossier
actuel
touch fichier1 créer un fichier ; pour lui créer lien
physique par la suite
ln fichier1 fich2 ; créer lien physique (2ème colonne ls-l)
fichier1  inode  fich2

ls -i vérifier les fichiers qui partagent le même inode


ln -s fichier1 fich2 ; créer lien symbolique
(1ère colonne ls-l :lrwxrw-rw-) fich2  fichier1  inode

sudo devenir root un instant


sudo su devenir root et le rester
(Ctrl+D) ou exit quitter le mode root
adduser utilisateur ajouter un utilisateur
passwd changer le mot de passe de l’utilisateur sous
lequel on est connecté
passwd utilisateur changer le mot de passe
deluser utilisateur supprimer un compte, mais pas le
répertoire personnel
deluser --remove-home utilisateur supprimer le home
et fichiers personnel
addgroup groupe créer un groupe vide
usermod -l renommer l’utilisateur, le nom du
répertoire ne change pas
usermod -g informix roch mettre roch dans groupe
informix
usermod -g roch roch remettre roch dans groupe roch
usermod -G group1,group2,group3 roch faire en sorte
qu’un utilisateur appartienne à plusieurs groupes,roch
perd son groupe d’origine
usermod –aG informix roch ajouter l’utilisateur a un
nouveau groupe en gardant son groupe d’origine roch
delgroup groupe supprimer un groupe
chown NEWowner fichier changer le propriétaire d’un
fichier
chgrp GROUPowner fichier affecter le fichier au groupe
chown user:group fichier affecter le fichier a l’user et
au groupe
chown -R mateo21 :mateo21 /home/patrik/ donner le
contenu du dossier personnel de patrik à mateo21 et
au group mateo21 (-R pour les dossiers)
les droits
---|r--|-w-|--x|rw-|-wx|r-x|rwx
0|4| 2 |1| 6 | 3 | 5|7
chmod droit fichier changer les droits de fichier
chmod 777 fichier le propriétaire, le groupe ,les autres
peuvent tout faire sur ce fichier
les droits relatifs
| u | g | o | + | - | = | r | w | x

|user|group|other|ajout droit|supp droit|affect droit|lecture|écriture|execution


chmod g+w fichier
chmod o-r fichier
chmod u+rx fichier
chmod 600 fichier
chmod g+w, o-w fichier
chmod go-w fichier
chmod +x fichier
chmod u=rwx, g=r, o=- fichier
*
chmod g+w fichier
chmod o-r fichier
chmod u+rx fichier
chmod 600 fichier
chmod g+w, o-w fichier
chmod go-w fichier
chmod +x fichier
chmod u=rwx, g=r, o=- fichier
chmod -R droit dossier affecter récursivement les
droits pour les dossiers
chmod -R 700 /home/ubupass/ moi seul peut lire,
modifier, exécuter les fichier et sous dossier de mon
répertoire personnel
nano fichier ouvrir fichier, ou le créer s’il ∄
^O Ecrire
^X Quitter
↓ , ↑ ,Page Up ,Page Down se déplacer dans le fichier
^W lancer le mode recherche
^C sortir du mode recherche
^W en mode recherche pour la deuxième occurrence
nano -m autoriser l’utilisation de la souris (mouse)
nano -i indentation automatique (tabulations…)
nano –A activer le retour à la ligne
nano -miA fichier lancer nano avec ces options a la fois
/home/user_i/.nanorc chaque user créer son ficher de
configuration,ce fichier est lu par nano à chaque
démarrage de nano
nano .nanorc création de fichier de config .nanorc
set mouse prise en charge de la souri automatique
nano -m plus besoin d’utiliser cette option
unset mouse désactiver la prise en charge de souri
set autoindent activer l’indentation automatique
nano -i
unset autoindent désactiver l’indentation automatiq
set smarthome activer le retour a la ligne
nano -A
set smarthome désactiver le retour a la ligne
/etc/nanorc nanorc globale,modifiable par root
sudo nano /etc/nanorc ouvrir le fichier de config

/home/user_i/.bashrc
nano .bashrc edition du fichier de config pour
personnaliser l’invite de commande en créant des alias
alias ls = ’ls --color=auto’ créer alias pour ls,en tapant
ls , ls transformé automatiquement par la console en
ls --color=auto
alias ll=’ls -lArth’ ls en mode détaillé
alias lister tous les alias définis pour l’utilisateur
alias nom=’commande_et_options’
NB : pas d’espace autour de «=»
alias rm=’rm --preserve-root’ sécuriser la commande
rm (n’assayez pas’rm –rf/’ avant de relancer la console)
/etc/bash.bashrc bashrc global pour configurer le
bash à tous les utilisateur à la fois
sudo nano /etc/ bash.bashrc ouvrir le fichier de
config ,et l’éditer

si nano /etc/bash.bashrc alias ll= ls -larth


nano /home/user/.bashrc alias ll= ls -ltr  prioritaire

configuration console mode graphique


~/.bashrc utilisateurs
/etc/bash.bashrc globale
configuration console (ttyi)
~/.profile utilisateurs
/etc/profile globale
Ces fichier de configuration sont lu chaque lancement
d’une nouvelle console
.profile fait appel au .bashrc ; il suffit d’éditer .bashrc
Pour modifier les options de toutes les consoles sans et
avec login ttyi
/etc/apt/sources.list : ce fichier qui contient la liste des
dépôts
apt-get update (optionnel) mettre notre cache à jour
apt-cache search monpaquet (optionnel) rechercher
un paquet pour le télécharger si on ignore son nom
apt-cache install monpaquet télécharger et installer le
paquet
apt-get update mettre à jour le cache des paquets
= >Télécharger la nouvelle liste des
paquets proposés par le dépôt
-la maj du cache n’est pas nécessaire à chaque fois
que l’o veut télécharger un paquet
Deux cas pour la mise à jour du cache
1. Quand on change ou ajoute un dépôt à notre
liste de dépôt /ect/apt/source.list
2. Quand on a pas mis à jour notre cache depuis un
moment
apt-cache search monpaque rechercher un paquet ds
notre cache cela évite d’avoir à aller sur internet pour
faire la recherche
apt-cache show monpaquet description d’1 paquet
apt-get install mysql télécharger et installer un paquet
apt-get install paquet1 paquet2 paquet3 à la fois
apt-get remove paquet désinstaller un paquet sans
supprimer ses dépendances
apt-get autoremove paquet désinstaller un paquet et
supprimer ses dépendances
apt-get upgrade mettre à jour tous les programmes (les
paquets) à des nouvelles versions, si disponibles

Pensez à faire apt-get update pour mettre à jour le


cache des paquets avant de lancer apt-get upgrade
Résumé
apt-get update : met à jour la liste des paquets (cache)
apt-get upgrade : met à jour tous les paquets installés
apt-get install : télécharge et installe un paquet
apt-get remove : supprime un paquet
apt-cache search : rechercher dans la liste des paquets
(cache)
whatis commande : manuel très allégé
exp : whatis mkdir

man commande :consulter le manuel d’une commande


↓ , ↑ déplacement ligne par ligne
Page Up, Page Dn , Espace se déplacer page en page
Home : début manuel Fin : fin du manuel
/ + mot : recherche , / autre occurrence
q quitter le manuel (comme avec less)
SYNOPSIS de mkdir>>>
mkdir [OPTION] DIRECTORY …
mkdir en gras : mot réservé il faut l’écrire tel quel
[OPTION] entre crochet c’est facultatif
DIRECTORY obligatoire, paramètre n’est pas entre []
… le terme DIRECTORY suivi de pts on peut lerépéter
autant de fois que l’on veut
__ le mot souligné se remplace par le nom approprié
| : barre verticale qui signifie « ou », choisir une seule
option de la liste entre accolades
{[update] | [upgrade] | [remove]}
Exp :
cp [OPTION] … [-T] SOURCE DEST
cp [OPTION] … SOURCE … DIRECTORY
cp [OPTION] … -t DIRECTORY SOURCE …

apropos mot_clé : trouver une commande


exp : apropos copier , apropos remove
command --help ou
command -h l’aide pour une commande donnée
apt-get -h
la plus part des commandes acceptent ce paramètre
locate fichier recherche rapide qui n’est pas exacte
sudo updatedb reconstruction de la base de locate

find où quoi quefaire: find chemin fichier action


find -name ’’fichier.txt’’ recherche par le nom dans
le répertoire courant
find /var/log/ -name “syslog“ : chercher ts les fichiers
qui s’appellent exactement syslog dans le répertoire
/var/log/ et ses sous-répertoires
find /var/log/ -name “syslog*“
find /var/log/ -name “*syslog“
find /var/log/ -name “*syslog*“ : avoir les fichiers
similaires
find / -name “syslog“ : chercher dans tout le disque
dure (la racine)
find -size +10M : fichiers qui font plus de 10Mo
find -size -5K : fichiers qui font moins de 5Ko
find -size 10G : fichiers qui font exactement 10Go
find -name “*.odt“ -atime -7 : recherche par nom, et
date dans le répertoire courant depuis 7 jours à ce jour
find -name “*.odt“ -atime 7 : exactement 7 jours
find – name
find -name “syslog“ - type d rechercher les répertoires
qui s’appellent syslog dans le répertoire courant (par
défaut recherche sur fichier, dossier)

find -name “syslog“ - type f rechercher les fichiers qui


s’appellent syslog dans le répertoire courant
find -name “*.jpg“  find -name “*.jpg“ -print
find -name “*.jpg“ -printf “%p - %u\n“ afficher le
nom du fichier,tiret,nom du propriétaire sauter ligne
exp :
./photos/001.jpg-ubupass
./photos/002.jpg-ubupass
find -name “*.jpg“ -delete supprimer les fichiers
trouvés
find -name “*.jpg“ -exec commande \ ; appeler une
commande
find -name “*.jpg“ -exec chmod 600 nom_fchier \ ;

grep motif fichier afficher les lignes du fichier


contenants le motif
grep “mo ti f“ fichier si le motif contient d’espaces
grep -i motif fichier ignorer la casse dans l’affichage
grep -n motif fichier afficher les numéros de lignes
grep -v motif fichier afficher les lignes qui ne contient
pas le motif
exp
grep -v deb /etc/apt/sources.list
grep -r motif dossier/ recherche dans un dossier
grep -r “mon site“ /home/ubupass
rgrep < = > grep -r
grep -E utiliser les expression régulières
egrep < = > grep -E
. caractère quelconque

^ début de ligne

$ fin de ligne

| ou

() groupement d’expression

[] un des caractères entre les crochets

grep -E ^motif monfchier mot placé au début de lign


grep -E [Nn]assim fichier revoie les lignes contenants
“Nassim“ ou “nassim“
grep -E [0-4] fichier lignes qui contiennent un
nombre entre 0 et 4
grep -E [a-zA-Z] fichier les lignes qui contiennent un
caractère alphabque entre a et z ou A et Z

sort fichier trier le contenu du fichier par alphabet


sort -o fichiertrié fichier écrire le résultat ds fichiertré
sort -r fichier trier le contenu en ordre inverse
sort -n fichier trier les nombres dans un fichier
wc fichier compteur de ligne, mot, et d’octets
wc -l fichier compter nombre de lignes
wc -w fichier compter nombre de mots
wc -c fichier compter nombre d’octets
wc -m fichier compter nombre de caractères
uniq fichiertrié éliminer les doublant du fichier déjà
trié et l’afficher dans la console
uniq fichier fichiersansdouble éliminer les doublant
et écrire dans un autre fichier
uniq -c fichier afficher en plus le nombre d’occurrence
uniq -d fichier afficher uniquement les lignes présente
en double
cut couper une partie du fichier
cut -c 2-5 fichier conserver caractères du 2 à 5 de
chaque lignes
cut -c -3 fichier conserver du 1er au 3èm caractères
cut -c 3- fichier conserver du 3èm au dernier caractères
-d pour indiquer le délimiteur dans le fichier
-f indiquer le numéro des champs à conserver
cut -d , -f 1 fichier extraire du fichier le premier champ
(field 1) et le délimiteur est(,)
cut -d ; -f 1,3 notes.csv pour avoir les fields 1 et 3
cut -d|-f 2-4 fichier conserver les fields 2,3,et 4
cut -d , -f 3- fichier conserver les fields du 3 jusqu’à la
fin
les flux cmd -> (1)console,(2)fichier,(3)cmd2
> rediriger dans un nouveau fichier
cut -d, -f 1 notes.csv > eleves.txt rediriger la sortie de la
commande cut dans un fichier, qui se crée au
répertoire courant , si le fichier existe il sera écrasé
>> rediriger à la fin d’un fichier
cut -d, -f 1 notes.csv >> eleves.txt rediriger le résultat
dans la fin du fichier, si le fichier existe vous ne risquez
pas de l’écraser, si le fichier n’existe pas il sera créé
cut -d, -f 1 fichier_inexist > fichier.txt 2> erreurs.log
rediriger le resultat ds fichier.txt si tout va bien et ds
erreurs.log s’il ya erreur
2>> ajouter les erreurs à la fin du fichier
2>&1 rediriger la sortie d’erreurs ds la sortie standard
cut -d, -f 1 fichier > fichier.txt 2>&1
cut -d, -f 1 fichier > fichier.txt 2>>&1
cut -d, -f 1 fichier >> fichier.txt 2>&1

entrée (1)
<fichier,(2) <<clavier
commande
sortie (1)console,(2) >fichier,(3)commande
commande < fichier lire depuis un fichier
cat < fichier afficher le contenu de fichier envoyé en
entrée
cat fichier afficher le contenu de fichier

cat < fichier < = > cat fichier MAIS


cat fichier cat se charge d’ouvrir le fichier, puis affiche
son contenu
cat < fichier cat reçoit le contenu de fichier, elle
l’affiche seulement, le shell qui se charge d’envoyer le
contenu à cat

<< lire depuis le clavier progressivement


sort -n << FIN la console vous propose de taper du
texte, introduisez vos nombres tapez FIN pour arrêter
la saisie
cat << FIN
wc –m << FIN
> combien de caractères dans cette phrase
>FIN 40

On peut alimenter une commande de 2 manières


cat < fichier envoyer le contenu du fichier à la
commande
commande << FIN envoyer les lignes tapées à la
commande

on peut combiner tous ces symboles


<, << entrée commande sortie >,2>, >>

sort -n << FIN > fichiertrié.txt 2>&1


>
>
>
>FIN

LE PIPE
cut -d, -f 1 fichier|sort on envoie le fichier coupé à
l’entrée de sort
sort traite le résultat de cut , et pas un fichier

cut -d, -f 1 fichier|sort > nom_trié.txt couper fichier,


trier le résultat, écrire dans un fichier
du taille des sous-répertoires du répertoire courant
du |sort –nr liste triée du plus grand au plus petit
(ordre inverse) des tailles de sous-répertoires
du |sort –nr|head capturer les premières lignes, pour
ne pas remonter très haut
du |sort –nr|less connecter la sortie à la commande
less (espace, entrée, flèches clavier) pour afficher les
résultats page par page
sudo grep log -Ir /var/log |cut -d : -f 1 |sort|uniq
w qui fait quoi ?
date affichage de la date
uptime durée de fonctionnement de l’ordinateur
tload la charge dépend du nombre de processeurs
si quad core(4 cœurs de processeur) surchargé à 4
ctrl+c quitter le graphe
who la liste des connectés
USER login
TTY ttyi
FROM ip ou l’hôte depuis on se connecte
LOGIN@ l’heure de connection pour cet utilisateur
IDLE depuis combien de temps ce user est inactif
WHAT la commande qu’il est en train d’exécuter
ps liste statique des processus, n’est pas actualisée en
temps réel
ps -ef lister tous les processus lancés par tous les
utilisateurs
ps -ejH afficher les processus en arbre, père enfants
ps -u user lister les processus lancés par un utilisateur
ps -u ubupass|grep find
top liste dynamique des processus ,trié par taux
d’utilisation du processeur (colonne % CPU)
lorsque le système est surchargé on cible les plus
gourement
q fermer top
h affiche l’aide
s changer le temps de rafraîchissement (par defaut,3s)

Ctrl+c arrêter un processus gentiment


Kill PID tuer un processus ;( demande au processus de
s’arrêter)
Kill 326 1255 145 tuer plusieurs processus
Kill -9 PID tuer un processus sans lui laisser le temps de
finir
Killall nom_processus tuer le processus par son nom
halt arrêter l’ordinateur immédiatement (sudo)
reboot redémarrer l’ordinateur
halt,reboot appellent la commande shutdown
commande&, ou
commande & lancer un processus en arrière plan
cp video.avi videcopi.avi& lancer le processus de
copie en arrière plan
find / -name "*log " & il faut rediriger pour la tâche de
fond;car on doit avoir un résultat vers la sortie standard
find / -name "*log " > sortiefind & s’il ya erreur on est
dérangé par des messages (genre droit d’accès)
find / -name "*log " > sortiefind 2>&1 & ne pas être
dérangé du tout
nohup commande détacher le processus de la console
nohup.out fichier de sortie de nohup par défaut
Ctrl + z mettre en pause l’exécution du programme
le processus ne s’exécute pas mais reste en mémoire
**
bg passer le processus en arrière plan background
Envoyer un processus en arrière plan
- commande & lancement directe en arrière plan
- Ctrl + z puis bg reprise du processus après une pose
, mais en arrière plan
jobs lister les processus qui tournent en fond (en
arrière plan)
fg renvoie le processus au premier plan foreground
( existence d’un seul processus en arrière plan )
fg %2 reprendre le job numéro 2 au premier plan
( existence de plusieurs jobs )
Ctrl + c détruis un processus au premier plan
Schéma manquant …
Screen…
date afficher la date , affiche 12 :27 :25
date “+%H “ personnaliser l’affichage affiche 12
date “+%H :%M :%S“ affiche 12 :27 :25
date “+%Hh%Mm%Ss“ affiche 12h27m25s
sudo date MMDDhhmmYYYY
ou bien date MMDDhhmm modifier la date du pc
en introduisant des valeurs qui remplace les lettres
MM :mois
DD :jour
hh :heure
mm :minutes
YYYY :année
Exp : sudo date 11101250
-----------------------------------------------------------------
at 15 :30 ( indiquer l’heure sous la forme HH :MM )
at> mettre les commandes à exécuter
at>commande1
at>commande2
Ctrl + D pour sortir de la commande at
-----------------------------------------------------------------
at 14:17 tomorrow exécuter une commande demain
à 14 :17
at 14:17 11/15/10 exécuter une commande jour j
à 14 :17 (mois/jour/année) :format américaine au
lieu de (jour/mois/année)

at now +5 minutes exécuter une commande après un


délai sans avoir à écrire la date
at now +5 minutes
at now +5 hours
at now +5 days
at now +2 weeks
at now +5 months
at now +5 years

atq lister les jobs en attente combinés avec at


atrm 13 supprimer les jobs en attente ; commandes
lancées par la commande at introduisant son numéro

sleep 10 faire une pause 10 secondes (par defaut)


sleep 1m faire une pause d’une minute (minutes)
sleep 1h faire une pause d’une heure (heures)
sleep 1d faire une pause d’un jour (jours)

commande1 ;commande2 enchaîner plusieurs


commandes avec ;
touch fichier ;sleep 15;rm fichier enchaîner comdes
commande1 && commande2 && commande3
enchainer des commandes ; elles s’enchaînent si ya
pas erreur,si commande1 envoie erreur le reste
seront pas exécutées

crontab exécution d’une commande régulièrement


on rajoute au fichier .bashrc
export EDITOR=nano
ou bien
echo “export EDITOR=nano“ >> ~/.bashrc
rendre nano l’éditeur par défaut, car le programme “vi“
qui fait office d’éditeur par défaut
crontab commande qui permet de lire,modifier le
fichier crontab contenant la liste des programmes
crontab -l afficher la crontab actuelle
crontab -e modifier la crontab
crontab -r supprimer la crontab

crontab -e modifier la crontab


------éditeur nano--------------------------------------------
# m h dom mon dow command
minute heures day of month month day of week command
s
valeur [0-59] [0-23] [1-31] [1-12] [0-6]

47 15 * * * touch ~/fichier exécuter la commande


tous les jours à 15h47
* * * * * command toutes les minutes, et c’est la
fréquence minimale
chaque champ à le droit à ces différentes notations
5
 * exécuté tout le temps(ttes ls valeurs st bonnes)
 3,5,10 exécuté lorsque le champ prend 3,5 ou 10
 3-7 exécuté pour les valeurs de 3 à 7
 */3 exécuté tous les multiples de 3 (0h,3h,6h,…)
47 15 * * * command >> ~/cron.log 2>&1
Tout sera envoyé ds cron.log les messages et les
erreurs
on redirige vers le trous noir (/dev/null) si on veut pas
récupérer ce qu’est affiché(suppression immédiate)
gzip,bzip2 compressent qu’un seul fichier ;ne
peuvent pas créer un paquetage de plusieurs
fichiers comme le fait zip et rar
tar permet d’assembler des fichiers avant de les
compresser
[f1,f2,…]---tar-->fichier.tar---gzip--> fichier.tar.gz ;
Il est recommandé de placer d’abord les fichiers à
archiver dans un seul dossier
zip, rar capables d’assembler plusieurs fichiers en une
archive et de la compresser en même temps
tar -cvf nomarchive.tar dossierdefichiers/ créer une
archive tar du dossier (c la préférable)
-c créer une archive tar ;
-v afficher le détail des opérations
-f nom de fichier de l’archive
tar -cvf archive.tar fichier1 fichier2 fichier3
archiver plusieurs fichiers
tar -tf archive.tar afficher, voir le contenu de l’archive
sans l’extraire
tar -rvf archive.tar fichier4 ajouter un fichier
(en cas d’oublie)
tar -xvf archive.tar extraire les fichiers de l’archive
archive.tar -----gzip-----> archive.tar.gz compression
archive.tar ----bzip2----> archive.tar.bz2 compression
gzip archive.tar compresser l’archive ; plus rapide
que bzip2, l’archive s’appelle désormais rchive.tar.gz
gunzip archive.tar.gz décompresser l’archive vers
rchive.tar (mnt on extrait les fichiers tar -xvf fich.tar)

bzip2 archive.tar compresser l’archive ; l’archive


s’appelle désormais rchive.tar.bz2
bunzip2 archive.tar.bz2 décompresser l’archive
bzipée_2 ; on aura en sortie archive.tar puis extract°
tar -xvf archive.tar extraire une archive
tar --delete -f archive.tar part07 supprimer un
fichier (ex :part07) d’une archive
archiver et compresser en même temps avec tar
 archiver et compresser en même temps gzip (vice-versa)

tar -zcvf archive.tar.gz dossier/ créer une archive


compressée avec gzip pour le répertoire dossier/
tar -zxvf archive.tar.gz décompresser et extraire
une archive
 archiver et compresser en même temps bzip2 (vice-versa)
tar -jcvf archive.tar.bz2 dossier/ créer une archive
compressée avec bzip2 pour le répertoire dossier/
tar -jxvf archive.tar.bz2 décompresser et extraire
une archive bzippée2
tar -tf archive.tar voir le contenu de l’archive sans
l’extraire
tar -ztf archive.tar.gz voir le contenu d’une archive
compressée gzippée
tar -jtf archive.tar.bz2 voir le contenu d’une archive
compressée bzipée2
 par fois on compresse non pas une archive tar mais directement un fichier

gzip fichier.tuto ----> fichier.tuto.gz


zcat fichier.tuto.gz
zmore fichier.tuto.gz
zless fichier.tuto.gz lire fichier compressé (gzippé)

cat fichier.tuto.gz
more fichier.tuto.gz
less fichier.tuto.gz on aura des caractères ,
bizarres (fichier compressé)
unzip fichier.zip décompresser un fichier zippé
unzip -l fichier.zip voir le contenu d’une archive sans
l’extraire
zip -r tutoriels.zip dossier/ compresser un dossier
, sans le paramètre -r seul le dossier vide sera
compressé
sudo apt-get install unrar installer unrar
unrar fichier.rar décompresser un fichier .rar
unrar e fichier.rar extraire (ya pas de tiret )
unrar l fichier.rar lister le contenu avant
décompression

RSA,DSA : algorithmes de cryptage asymétrique


sudo /etc/init.d/ssh start lancer le serveur SSH
sudo /etc/init.d/ssh stop arrêter le serveur SSH
/etc/ssh/ssh_config fichier de config serveur SSH
sudo /etc/init.d/ssh reload recharger SSH pour que les
changements soient pris en compte, si on a configuré
ssh login@ip se connecter à un serveur ssh à partir
d’une machine linux
ex1 : ssh ubupass@ip ssh utilise port 22 par éfaut
 si on se connecte depuis chez un ami IP internet qu’on peut
obtenir du www.whatismyip.com 41.106.6.114 port 64071
 si on se connecte depuis un pc sur le même réseau local
IP local qu’on devrait voir avec ifconfig 192.168.0.3
ex2 : ssh ubupass@87.112.13.165 -p 12451
ssh utilise le port 12451 au lieu du port 22
si le serveur ne répond pas soit le port 22 bloqué par
un pare-feu , soit le serveur tourne sur un autre port, il
faut préciser le numéro du port avec un p miniscule
programme PuTTY se connecter à un serveur ssh à
partir d’une machine windows
enter le : ip,port,puis login et password.
si le fingerprint change
 soit le serveur a été réinstallé
 soit qlqn se fait passer pour le serveur man in the
middle
logout ou Ctrl+D se déconnecter
authentification par clé
ssh-keygen -t rsa générer une paire de clé
publique/privée sur poste client, tapez une phrase de
passe si vous voulez crypter la clé privée sur le client
clé publique se trouve dans ~/.ssh/id_rsa.pub
clé privée se trouve dans ~/.ssh/id_rsa
~/.ssh/known_hosts fichier contenant la liste des
fingerprint
Envoi de la clé publique(id_rsa.pub) au serveur et
l’ajouter à son fichier authorized_keys contenant la
liste des clés qu’il autorise à se connecter utilisant une
commande spéciale
ssh-copy-id -i id_rsa.pub login_servr@IP_servr
ex1:
ssh-copy-id -i id_rsa.pub “-p 14521 ubupass@88.92.107.7”

~/.ssh/ authorized_keys fichier où la clé s’ajoute dans


le serveur
ssh login@IP , phrase de passe : authentification par
clé on entre la phrase de passe pour décrypter la clé
privée si on l’introduit auparavant
ssh-add lancer un agent ssh pour ne plus entrer la
phrase de passe, quand est ce que il est recommandé
de l’arrêter -voir annexe-
Authentification par clé depuis Windows utiliser le
programme d’installation de putty et non pas
l’exécutable putty.exe -voir annexe-
echo “votre_clé“ >> authorized_keys ajouter la clé
dans le fichier authorized_keys

Transférer des fichiers


wget @HTTP télécharger des fichiers à une adresse
wget http://www.image.com lancer téléchargement
Ctrl+c arrêter le téléchargement

wget -c adresse reprendre un téléchargement arrêté


wget --background http://image.com lancer un
téléchargement en tâche de fond, sinon par nohup
scp (securecopy) copier des fichiers à travers le reseau
de manière sécurisée

rcp (remotecopy) fait la même chose sans aucun


cryptage
scp from to
scp fichier_origine copie_destination
exp:
scp [login@ip:] nom_fichier destination
login, et IP facultatif pour scp si le fichier se trouve sur
notre machine, on peut remplacer l’IP par nom d’hôte
copier un fichier de vôtre ordi vers un autre
scp image.png ubupass@85.123.10.201:/home/ubupass/images/
ou scp image.png ubupass@85.123.10.201: ~/images/
ou scp image.png ubupass@exep.simple.fr: ~/images/

copier le fichier image.png de mon pc vers un autre


dont l’IP est 85.123.10.201,le fichier se place dans le
répertoire /home/ubupass/images/

copier un fichier d’un autre ordi vers le vôtre


scp ubupass@85.123.10.201:/home/image.png copie_image_mon_pc.png
copie avec changement du nom
scp ubupass@85.123.10.201:/home/image.png .
copie sans changement du nom
scp -P 16296 ubupass@85.123.10.201:/home/image.png . on indique le
port avec un P majuscule car dans notre cas le serveur
ssh ne tourne pas sur le port standard 22
ftp ftp.debian.org connection à un serveur FTP ;ce
dernier demande login, et mot de passe ; pour les
serveurs FTP publics utilisez anonymous comme login
et n’importe pour le mot de passe
commandes ftp
ls,pwd,cd
put : envoie un fichier vers le serveur.c’est pas
autorisé sur les serveurs FTP publics
get : télécharge un fichier depuis le serveur.
exemple
ftp>get readme.txt récupérer ce fichier il sera
téléchargé dans le répertoire dans lequel on se trouve
pour savoir on utilise la commande !pwd
ftp>pwd affichage répertoire courant dans le serveur
ftp>!pwd affichage répertoire courant poste client
!commande executer la commande au niveau poste
client et non sur le serveur FTP (pour les répertoires)
ftp>!cd changer le dossier chez vous
ftp>!ls lister les fichiers chez vous
man ftp en savoir plus sur la commande ftp
delete pour la suppression ; au lieu de rm
mkdir création dossier la même commande que celle
de linux
Ctrl+D quitter le serveur FTP
ou bien bye, exit et quit qui sont analogues
FTP n’est pas sécurisé, SFTP repose sur SSH
sftp login@IP se connecter au serveur sftp
sftp ubupass@liza.sim.fr on vous demande le mot de
pass par la suite
man sftp aide sur sftp car pour supprimer un fichier
c’est rm et pas delete comme sous ftp
sftp utilise le même port que SSH (22 par défaut) si le
serveur SSH fonctionne sur un autre port on précise
sftp -oport=27401 login@IP
sftp -oport=27401 ubupass@serveur
Synchroniser des fichiers
Rsync pour des sauvegardes incrémentielles (la
différence)
37millle euro exécuté lorsque le champ est 5
Commence à percevoir son salaire
***
synchroniser des fichiers
rsync pour des sauvegardes incrémentielles(la
différence)
rsync –arv dossier_à_sauvegarder/ répertoire_de_sauvegarde/

-a conserver les infos sur fichiers droit, datemodif…


-r sauvegarder les sous-dossiers
-v mode verbeux
rsync –arv images/ backups/ synchroniser 2
répertoires
rm images/italie3.jpg
rsync -arv --delete images/ backups/ synchronisation
même pour la suppression
rsync -arv --delete --backup images/ backups/ les
fichiers supprimés prendront un suffixe dans le
répertoire de sauvegarde

rsync -arv --delete --backup --backup-dir=/home/ubupass/backups_supprimés


images/ backups/
déplacer les fichiers supprimés dans un dossier pour
éviter le désordre en ajoutant
--backup-dir=chemin_absolu_du_dossier
rsync … --exclude … exclure un dossier de la
sauvegarde voire manuel
Sauvegarder dans un autre ordinateur basé sur ssh
rsync -arv --delete --backup --backup-dir=
dossier_backups_supprimés images/ backups/
ubupass@IP_serveur:mes_backups/
rsync -arv --delete --backup --backup-dir= dossier_backups_supprimés images/
ubupass@IP_serveur:mes_backups/ -e “ssh –p 12473“

synchronisation entre deux PCs distants, et que ssh


écoute sur un autre port on ajoute -e “ssh -p port“

host IP convertir un IP en nom d’hôte


host nom_d’hôte convertir un nom d’hôte en IP
exp :
host 172.10.16.133 affiche windows-seven.org
host windows-seven.org affiche 172.10.16.133

sudo nano /etc/hosts établir une liste personnalisée


de correspondances (IP, nom hôte)
whois nom_domain avoir des informations sur le
domain
exp
whois google.com
ifconfig lister les interfaces réseau ;sur les serveurs on
peut avoir plusieurs interfaces filaires et sans-fil
-eth0 connection par cable RJ45 ;eth1,eth2,…
-lo la boucle locale ,connection à soi même
-wlan0 connection sans fil ;wlan1,wlan2,…
Ifconfig interface état activer ou désactiver une
interface en remplaçant état par up , ou down
Exp
Ifconfig eth0 up activer l’interface filaire eth0
Ifconfig wlan2 down désactiver connection sans-fil
netstat -i statistique des interfaces reseau plus la
variable RX-ERR grande plus l’interface correspondante
active
netstat -uta lister toutes les connexions ouvertes
-u affiche connection UDP
-t affiche connection TCP
-a affiche toutes les connections qlq soit leur état
netstat -ta filtrer, enlever les connexions UDP
avec netstat on affiche les connections et leurs états
ESTABLISHED connexion établie avec le PC distant
,en cours d’utilisation
TIME_WAIT connexion attend le traitement de tous
les paquets
CLOSE_WAIT connexion arrêtée par le serveur
distant
CLOSED connexion n’est pas utilisée
CLOSING fermeture de la connexion
LISTEN à l’écoute des connexions entrantes
n’est pas utilisé actuellement
le port sur lequel ces connexions écoutent ( : port)
l’info essentielle ; chaque service utilise 1 port ≠
netstat -n afficher le numéro de port plutôt qu’une
description en toutes lettres (résolution des noms)
netstat -tan essayer pour voir
netstat -lt lister les connexions en état d’écoute
( listen )
-l pour filtrer les connexions à l’état LISTEN ; savoir
quels ports susceptibles d’être utilisés
netstat -s statistiques résumées
………………………………………………………………………………
. netstat -i statistique des interfaces reseau
. netstat -n afficher le numéro de port
. netstat -l lister les connexions en état d’écoute
. netstat -uta lister toutes les connexions ouvertes
. udp,tcp
………………………………………………………………………………

Iptables pare-feu de référence filtre les ports et les IP


La technique consiste à bloquer tous les ports et
autoriser qlqs-uns
#iptables -L afficher les règles
on repère 3 sections
 chain INPUT règles pour le trafic entrant
 chain FORWARD règles pour la redirection trafic
 chain OUTPUT règles pour le trafic sortant
exp
chain INPUT (policy ACCEPT) signifie que tout le trafic
et accepté
#iptables -F réinitialiser toutes les règles iptables
#iptables -L --line-numbers afficher les règles avec
leurs numéros
colonnes de la commande précédente
target
prot
source
destination
source et destination change de signification tout
dépend de input ou output voir document
 -n option pour traduire le nom du port en numéro
 -A chain add, ajout d’1 règle en fin de la liste
 -D chain rulenum delete , supprimer règle n°
rulenum pour la chaine indiquée
 -I chain rulenum insérer une règle au milieu de la
liste à la position indiquée par rulenum

 -R chain rulenum remplace la règle n° rulenum dans


la chaine indiquée

 -L liste les règles

 -F chain vide toutes les règles de la chaine indiquée

 -P chain règle modifie la règle par défaut pour la


chaine, policy
chain : INPUT, OUTPUT
règle : DROP , ACCEPT, FORWORD
#iptables -P chain règle
#iptables --policy INPUT DROP
#iptables -p INPUT DROP
Schema de l’ajout de règles
#iptables -A [chain] -p [protocole] --dport [port] -j [règle]
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT ou bien
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp --dport www -j ACCEPT ou bien
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp --dport imap2 -j ACCEPT mails

si on ne précise pas de port tous les port seront


acceptés
#iptables -A INPUT -p icmp -j ACCEPT autoriser les pings
on a pas indiqué la section --dport;la règle s’applique à
tous les ports

man iptables
iptables -h
iptables --help

assouplir le pare-feu en ajoutant deux règles

#iptables -A INPUT -i lo -j ACCEPT autoriser le traffic sur


l’interface loopback local ; autoriser à l’ordinateur de
communiquer avec lui-même
#iptables -A INPUT -m state -- state ESTABLISHED, RELATED -j
ACCEPT autoriser les connections qui sont déjà à l’état
established,ou related
#iptables -P INPUT DROP refuser toutes les connections
règle par défaut

Appliquer les règles au démarrage

le redémarrage du pc fait disparaitre les règles iptables


pour les charger au démarrage on doit créer un script
qui sera exécuter au démarrage
compiler un programme depuis les sources
./configure
$make lancer la compilation
voir document
voir aussi résumé

Vous aimerez peut-être aussi