« Commandes BASH » : différence entre les versions
Aucun résumé des modifications |
|||
| (231 versions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
[http://tools.marmits.com/testcideo/dedie/chmod/info.php chmod] | [http://tools.marmits.com/testcideo/dedie/chmod/info.php chmod]<br /> | ||
== Processeur == | |||
Informations sur le processeur | |||
<syntaxhighlight lang="bash" line copy> | |||
lscpu | |||
</syntaxhighlight> | |||
Pour un affichage plus simple | |||
<syntaxhighlight lang="bash" line copy> | |||
lscpu | grep -E "Model name|CPU\(s\)|Thread|Core|Socket|Virtualization" | |||
</syntaxhighlight> | |||
== Ressources == | |||
[https://www.justgeek.fr/meilleures-commandes-linux-a-connaitre-130448/ Meilleures commandes linux a connaitre]<br /> | |||
[https://www.malekal.com/liste-des-commandes-linux/ malekal.com Commandes linux]<br /> | |||
== Lister les services == | |||
<syntaxhighlight lang="bash" line copy> | |||
service --status-all | |||
# Les services actifs ont un + devant eux. | |||
</syntaxhighlight> | |||
== Example RSYNC aller et retour avec chown et chmod == | == Example RSYNC aller et retour avec chown et chmod == | ||
<syntaxhighlight lang="bash" line copy> | |||
rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/ | rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/ | ||
rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/ | rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/ | ||
</syntaxhighlight> | |||
== Linux version noyau == | == Linux version noyau == | ||
<syntaxhighlight lang="bash" line copy> | |||
uname -sr | uname -sr | ||
uname -a | uname -a | ||
| Ligne 16 : | Ligne 38 : | ||
lsb_release -ds | lsb_release -ds | ||
</syntaxhighlight> | |||
== Sendmail == | == Sendmail == | ||
<syntaxhighlight lang="bash" line copy> | |||
cd /var/spool/mqueue | cd /var/spool/mqueue | ||
| Ligne 27 : | Ligne 49 : | ||
mail -s "message" -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL | mail -s "message" -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL | ||
</syntaxhighlight> | |||
== Terminal Console == | |||
=== couleur du prompt === | |||
<syntaxhighlight lang="bash" line copy> | |||
export PS1="\[\e[\033[00;36m\]\u\[\e[m\]\[\e[\033[00;36m\]@\[\e[m\]\[\e[\033[00;36m\]\h\[\e[m\]:\[\e[\033[01;33m\]\w\[\e[m\]\[\e[\033[01;32m\]\`parse_git_branch\`\[\e[m\]\\$ " | |||
</syntaxhighlight> | |||
== nano == | |||
Recherche un mot : | |||
<code>Ctrl + W</code> | |||
== vim == | |||
Pour rechercher un mot dans l'éditeur de texte vim, vous pouvez utiliser les commandes suivantes : | |||
*Passer en mode commande : | |||
:- Appuyez sur <code>Esc</code> pour vous assurer que vous êtes en mode commande. | |||
*Rechercher un mot : | |||
:- Tapez <code>/</code> suivi du mot que vous souhaitez rechercher, puis appuyez sur <code>Entrée</code>. | |||
:Par exemple, pour rechercher le mot '''"example"''', tapez : | |||
:<code>/example</code> | |||
:Vim mettra en surbrillance la première occurrence du mot dans le texte. | |||
*Naviguer entre les occurrences : | |||
:- Pour passer à l'occurrence suivante du mot, appuyez sur <code>n</code> (pour "next"). | |||
:Pour revenir à l'occurrence précédente, appuyez sur <code>N</code> (majuscule). | |||
*Recherche inversée : | |||
:- Si vous souhaitez rechercher en arrière (à partir de la fin du fichier vers le début), utilisez <code>?</code> au lieu de <code>/.</code> Par exemple : | |||
:<code>?example</code> | |||
:Comme précédemment, utilisez <code>n</code> et <code>N</code> pour naviguer entre les occurrences. | |||
== Compter == | == Compter == | ||
=== Compter le nombre de fichiers dans un répertoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
find /dossier/path/etc -maxdepth 1 -type f | wc -l | find /dossier/path/etc -maxdepth 1 -type f | wc -l | ||
</syntaxhighlight> | |||
=== Compter le nombre de fichiers dans un répertoire selon son extension === | |||
<syntaxhighlight lang="bash" line copy> | |||
find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c | find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c | ||
</syntaxhighlight> | |||
== Trouver == | == Trouver == | ||
=== Compter le nombre de fichiers en excluant un répertoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
find /rep/ -maxdepth <big>4</big> -type f ! -path '*/repexclu/*' | wc -l | |||
</syntaxhighlight> | |||
=== Trouver les chemins des fichiers recherchés === | |||
<syntaxhighlight lang="bash" line copy> | |||
find /volume1/video/perso/2017 -name '*.MOV' -type f | |||
</syntaxhighlight> | |||
=== Recherche === | |||
<syntaxhighlight lang="bash" line copy> | |||
find /home/rep/ \( -name '*.ai' \) | |||
</syntaxhighlight> | |||
=== Recherche et supprime === | |||
<syntaxhighlight lang="bash" line copy> | |||
#Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux | |||
find /home/ -name .DS_Store -exec rm -f {} \; | |||
</syntaxhighlight> | |||
=== Rechercher dans un fichier (XXX est un mot ou une expression régulière) === | |||
<syntaxhighlight lang="bash" line copy> | |||
cat /var/log/syslog | grep XXX | |||
cat /var/log/syslog | grep XXX | more | |||
cat /var/log/syslog | grep XXX > resultat.txt | |||
</syntaxhighlight> | |||
=== Afficher les dernières lignes d’un fichier === | |||
<syntaxhighlight lang="bash" line copy> | |||
tail /var/log/syslog | |||
</syntaxhighlight> | |||
=== Afficher en live (en temps réel) un fichier (ctrl-c pour sortir) === | |||
<syntaxhighlight lang="bash" line copy> | |||
tail -f /var/log/syslog | |||
</syntaxhighlight> | |||
=== Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !) === | |||
<syntaxhighlight lang="bash" line copy> | |||
cat lefichier.txt | |||
zcat /var/log/syslog.1.gz | |||
#Chercher un fichier : | |||
find -name "*.log" | |||
find -name "*.log" | more | |||
find / -name fichier.ini | |||
grep -Rl "quelques chose" . | |||
</syntaxhighlight> | |||
== | === list open files === | ||
<syntaxhighlight lang="bash" line copy> | |||
#fichiers ouverts ainsi que leurs programmes ou utilisateurs liés. | |||
#ex: | |||
sudo lsof -i :9000 () qui utilise le port :9000 | |||
</syntaxhighlight> | |||
* http://jlbicquelet.free.fr/aix/commandes/lsof.php | |||
=== [[Grep| Grep]] === | |||
sudo su - u root | == sudo == | ||
<syntaxhighlight lang="bash" line copy> | |||
sudo su -u root | |||
</syntaxhighlight> | |||
== Concaténer == | == Concaténer == | ||
<syntaxhighlight lang="bash" line copy> | |||
concatener des fichiers js ou css | #concatener des fichiers js ou css | ||
echo | cat fichier1.css fichier2.css fichierfull.css > site.css | echo | cat fichier1.css fichier2.css fichierfull.css > site.css | ||
</syntaxhighlight> | |||
== log == | |||
<syntaxhighlight lang="bash" line copy> | |||
#Recherche en live | |||
tail -f /var/log/fichier.log | |||
#recherche simple | |||
grep -R "untruc" /var/log/* | |||
#cherche les 20 dernieres lignes avec un mot dans un log | |||
grep -r "unbound" /var/log/fichier.log | tail -n 20 | |||
# exclusion (-v) | |||
grep -r "untruc" /var/log/* | grep -v motàexclure | |||
# -r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers | |||
grep -r -i -l 'untruc' /var/log/ | |||
#zgrep pour les fichiers compressés compris | |||
</syntaxhighlight> | |||
ls -l Afficher les informations de manière détaillée. | == Alias == | ||
<syntaxhighlight lang="bash" line copy> | |||
ls -l #Afficher les informations de manière détaillée. | |||
ls -a Afficher les fichiers cachés. | ls -a #Afficher les fichiers cachés. | ||
ls -h Afficher la taille des fichiers de facon lisible. | ls -h #Afficher la taille des fichiers de facon lisible. | ||
ls -r Tri inversé. | ls -r #Tri inversé. | ||
ls -t Trier les fichiers par date du plus récent au plus ancien. | ls -t #Trier les fichiers par date du plus récent au plus ancien. | ||
ls -S Trier par taille décroissante. | ls -S #Trier par taille décroissante. | ||
ls -la Afficher tous les fichiers y compris les fichiers cachés. | ls -la #Afficher tous les fichiers y compris les fichiers cachés. | ||
ls -lhS Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit. | ls -lhS #Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit. | ||
ls -l --time-style=+"%d %b %H:%M" #affiche toujours l'heure | |||
ls -l --time-style=+"%d %b %Y" #Afficher toujours l'année | |||
ls -l --full-time #Afficher les dates complètes (heure + année) | |||
ou | |||
ls -l --time-style=long-iso | |||
stat history.log.7.gz #Affiche toutes les dates (accès, modification, changement) avec précision. | |||
ls -l ~/.bash* #Affiche les fichiers cachés de bash dans le home. | |||
ls [ab]* #Liste les fichiers commençant par a ou b. | |||
ls *.txt #Liste seulement les fichiers .txt | |||
ls -lX #Trier alphabétiquement par extension | |||
ls -lt #Trier par date et afficher les plus récents en premier | |||
ls -lt | head -n 5 #Afficher les 5 fichiers les plus récents | |||
ls -l | grep '^d........x' #avec permission d'exécution pour "autres" | |||
ls -1alR #arborescence complète | |||
ls -1alRls -m #arborescence complète format csv | |||
#Créer raccourci: | |||
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien' | |||
#ex: | |||
ln -s /usr/local/php53/bin/php /usr/local/bin/php53 | |||
</syntaxhighlight> | |||
== Copie == | |||
=== copie entre 2 serveurs sans mot de passe === | |||
<syntaxhighlight lang="bash" line copy> | |||
#Copie entre 2 serveurs sans mot de passe: | |||
#générer la clé : | |||
ssh-keygen -t dsa | |||
#Ensuite, pour copier la clé sur l'ordinateur distant : | |||
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub | |||
#pour serveur dédié ovh : | |||
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub | |||
</syntaxhighlight> | |||
== Compression == | |||
<syntaxhighlight lang="bash" line copy> | |||
#Compresser un dossier : | |||
tar -zcvf fichier.tar.gz /home/repertoire | |||
#decompresser tar gz : | |||
tar zxvf fichier.tar.gz | |||
</syntaxhighlight> | |||
== Historique == | |||
<syntaxhighlight lang="bash" line copy> | |||
#Supprimer l'historique ssh: | |||
history -c | |||
</syntaxhighlight> | |||
== Taille == | |||
[https://www.malekal.com/linux-connaitre-la-taille-repertoire/ malekal.com Connaître la taille répertoire] | |||
=== Taille repertoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
du -sh repertoire | |||
</syntaxhighlight> | |||
=== Exclusion === | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo du -sh --exclude "directory" * | |||
</syntaxhighlight> | |||
=== Liste des 10 plus gros fichiers du répertoire courant et de ses sous-repertoires, dans l’ordre décroissant de taille === | |||
<syntaxhighlight lang="bash" line copy> | |||
du -a | sort -nr | head -n 10 | |||
</syntaxhighlight> | |||
=== Taille des fichiers et sous-répertoires du dossier courant, dans l’ordre décroissant de taille === | |||
<syntaxhighlight lang="bash" line copy> | |||
du -a --max-depth=1 | sort -nr | |||
</syntaxhighlight> | |||
=== Taille des plus gros === | |||
<syntaxhighlight lang="bash" line copy> | |||
du -h --max-depth=1 /home/ | sort -rh | head -5 | |||
</syntaxhighlight> | |||
=== Taille des partitions === | |||
<syntaxhighlight lang="bash" line copy> | |||
df -h | |||
</syntaxhighlight> | |||
voir aussi => [[Logiciels_terminal#duf|duf]] | |||
=== Etat de la mémoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
free -m | |||
</syntaxhighlight> | |||
== Reset == | |||
<syntaxhighlight lang="bash" line copy> | |||
#Vider un fichier | |||
echo "" > auth.log | |||
</syntaxhighlight> | |||
transfert de fichiers: | == Transfert == | ||
<syntaxhighlight lang="bash" line copy> | |||
#transfert de fichiers: | |||
scp root@00.00.00.00:/home/fichier.ext . | scp root@00.00.00.00:/home/fichier.ext . | ||
scp fichier.ext root@00.00.00.00:/home/ | scp fichier.ext root@00.00.00.00:/home/ | ||
avec port | #avec port | ||
scp -P XXXX user@ip:/rep/fichier.txt . | scp -P XXXX user@ip:/rep/fichier.txt . | ||
</syntaxhighlight> | |||
synchronisation de fichiers | == synchronisation de fichiers == | ||
<syntaxhighlight lang="bash" line copy> | |||
rsync -avz -e ssh /users/personne/.../ root@168.192.1.23:/home/../ | rsync -avz -e ssh /users/personne/.../ root@168.192.1.23:/home/../ | ||
sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../ | sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../ | ||
rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../ | rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../ | ||
option: | #option: | ||
--exclude="/*/.local" (exclure un répertoire) | --exclude="/*/.local" (exclure un répertoire) | ||
-- | rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../ | ||
supprimer un repertoire | #exclure répertoire | ||
--exclude='/config/' | |||
</syntaxhighlight> | |||
== Répertoire == | |||
=== Comparer répertoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
diff -rb /rep1/ /rep2/ | |||
</syntaxhighlight> | |||
=== supprimer un repertoire === | |||
<syntaxhighlight lang="bash" line copy> | |||
rm -rf portail | rm -rf portail | ||
</syntaxhighlight> | |||
-- | === modifier attributs === | ||
<syntaxhighlight lang="bash" line copy> | |||
#modif proprio | |||
chown -R personne:groupe rep (-R recursif) | |||
#modif des droits | |||
chmod -R 755 repertoire | |||
</syntaxhighlight> | |||
----- | |||
=== Affiche la structure d'un dossier === | |||
<code>tree</code> parcourt récursivement un répertoire et affiche son contenu (dossiers et fichiers) dans une représentation hiérarchique, en utilisant des indentations et des symboles (<code>├─</code>, <code>└─</code>) pour montrer la structure. | |||
==== ✅ '''Syntaxe de base'''==== | |||
<syntaxhighlight lang="bash">tree [options] [répertoire]</syntaxhighlight> | |||
* '''Sans argument''' : affiche l’arborescence du répertoire courant. | |||
* '''Avec un chemin''' : affiche l’arborescence du répertoire spécifié. | |||
==== ✅ '''Options utiles''' ==== | |||
* <code>-L <niveau></code> : limite la profondeur d’affichage (ex. <code>-L 2</code> pour 2 niveaux). | |||
* <code>-d</code> : affiche uniquement les dossiers. | |||
* <code>-f</code> : affiche le chemin complet des fichiers. | |||
* <code>-a</code> : inclut les fichiers cachés. | |||
* <code>--dirsfirst</code> : liste les dossiers avant les fichiers. | |||
==== ✅ '''Exemple''' ==== | |||
<syntaxhighlight lang="bash">tree -L 2 project</syntaxhighlight> | |||
- | * Affiche la structure du dossier <code>project</code> avec une profondeur de 2 niveaux. | ||
<pre>project/ | |||
├─ public/ | |||
│ ├─ index.html | |||
│ ├─ script.js | |||
├─ src/ | |||
│ └─ app.php | |||
├─ db/ | |||
│ └─ schema.sql | |||
└─ README.md</pre> | |||
* Exclure .git et .idea | |||
<syntaxhighlight lang="bash">tree -a -I '.git|.idea'</syntaxhighlight> | |||
----- | |||
== MySql == | |||
<syntaxhighlight lang="bash" line> | |||
serveur bin # mysql -p | serveur bin # mysql -p | ||
| Ligne 190 : | Ligne 402 : | ||
mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb'; | mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb'; | ||
MYSQL DUMP | MYSQL DUMP | ||
/usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd > /home/bdd.sql | /usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd > /home/bdd.sql | ||
#se placer ds le repertoire Bin de mysql | |||
#commande: | |||
se placer ds le repertoire Bin de mysql | |||
commande: | |||
mysql -u root -p db < db.dmp | mysql -u root -p db < db.dmp | ||
</syntaxhighlight> | |||
service mail | == service mail == | ||
<syntaxhighlight lang="bash" line> | |||
/etc/init.d/spamd stop | /etc/init.d/spamd stop | ||
/etc/init.d/clamd stop | /etc/init.d/clamd stop | ||
| Ligne 211 : | Ligne 419 : | ||
/etc/init.d/clamd start | /etc/init.d/clamd start | ||
/etc/init.d/qmail start | /etc/init.d/qmail start | ||
</syntaxhighlight> | |||
== Fichiers == | |||
=== bat === | |||
<code>cat</code> amélioré (syntax highlighting, numéros de ligne). | |||
<syntaxhighlight lang="bash" copy> | |||
sudo apt install bat | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" copy> | |||
batcat fichier.txt # sur ubuntu | |||
</syntaxhighlight> | |||
=== Lire les fichiers === | |||
<syntaxhighlight lang="bash" line copy> | |||
ls -la | ls -la | ||
ls -lah humain | |||
ls -lac date de création | |||
</syntaxhighlight> | |||
=== Rendre exécutable un fichier ssh === | |||
<syntaxhighlight lang="bash" line copy> | |||
chmod u+x fichier.sh | |||
#Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer : | |||
chmod g+x fichier.sh | |||
#Pour rendre le script exécutable pour les utilisateurs autres : | |||
chmod o+x fichier.sh | |||
Voici deux comandes via le ssh pour mettre des répertoires en 755 et tes fichiers en 644. | #Et enfin pour autoriser tout le monde : | ||
chmod ugo+x fichier.sh | |||
</syntaxhighlight> | |||
=== Manipuler contenu fichier === | |||
Nettoyer des fichiers (supprimer des caractères, remplacer du texte) - Automatiser des modifications dans des scripts shell - Filtrer des logs ou des données structurées : voir => [[Sed_(Stream_EDitor)|sed]] | |||
== Autres == | |||
=== Répertoire WEB === | |||
<syntaxhighlight lang="bash" line copy> | |||
#répertoire www doit être en 705. | |||
#En revanche les autres répertoires doivent être en 755 et les fichiers en 644. | |||
#Voici deux comandes via le ssh pour mettre des répertoires en 755 et tes fichiers en 644. | |||
cd /home/TEST/www/ | cd /home/TEST/www/ | ||
répertoires en 705 avec cette commande : | #répertoires en 705 avec cette commande : | ||
find . -type d -print | xargs chmod 705 | find . -type d -print | xargs chmod 705 | ||
fichiers en 644 : | #fichiers en 644 : | ||
find . -type f -print0 | xargs -0 -n1 chmod 644 | find . -type f -print0 | xargs -0 -n1 chmod 644 | ||
</syntaxhighlight> | |||
=== Executer une page web === | |||
Executer une page web | <syntaxhighlight lang="bash" line copy> | ||
#!/bin/bash | #!/bin/bash | ||
wget http://site.com/page.html 1> /dev/null 2> /dev/null | wget http://site.com/page.html 1> /dev/null 2> /dev/null | ||
</syntaxhighlight> | |||
Extraire dossier ou fichier d'une archive | === Extraire dossier ou fichier d'une archive === | ||
<syntaxhighlight lang="bash" line> | |||
#Pour tirer un fichier | |||
tar --extract --file=mon_archive.tar file1 | |||
#c'est à dire extraire le fichier file1 de l'archive mon_archive.tar. | |||
#Si nous devons extraire à partir d'une archive gzippée: | |||
tar xzf mon_achive_zippee.tgz file2 | |||
#maintenant si on veux extraire un répertoire: | |||
maintenant si on veux extraire un répertoire: | |||
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*' | tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*' | ||
vous pouvez utiliser le t au lieu du x pour vous exercer. | #vous pouvez utiliser le t au lieu du x pour vous exercer. | ||
</syntaxhighlight> | |||
=== Lister les services === | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo service --status-all | |||
</syntaxhighlight> | |||
* http://www.linuxpedia.fr/doku.php/commande/ssh | |||
* http://juliend.github.io/linux-cheatsheet/ | |||
== Profile == | |||
<syntaxhighlight lang="bash" line copy> | |||
#relancer /etc/profile/ | |||
source /etc/profile | |||
</syntaxhighlight> | |||
== Paquets == | |||
[[ APT | voir APT]] | |||
== processus == | |||
==== lsof ==== | |||
(List Open Files) est un outil en ligne de commande très puissant sur les systèmes Unix et Linux, y compris Debian. <br /> | |||
Il est utilisé pour lister les fichiers ouverts par les processus en cours d'exécution. <br /> | |||
Voici quelques-unes des principales utilisations de lsof : | |||
1. Identifier les fichiers ouverts par un processus : Vous pouvez utiliser lsof pour voir quels fichiers sont ouverts par un processus spécifique.<br /> | |||
Cela peut être utile pour le débogage ou pour comprendre ce qu'un processus fait. | |||
<syntaxhighlight lang="bash" line copy> | |||
lsof -p <PID> | |||
</syntaxhighlight> | |||
2. Trouver quel processus utilise un fichier : <br /> | |||
Si vous avez besoin de savoir quel processus utilise un fichier particulier, vous pouvez utiliser lsof pour le découvrir. | |||
<syntaxhighlight lang="bash" line copy> | |||
lsof /chemin/vers/le/fichier | |||
</syntaxhighlight> | |||
3. Lister les connexions réseau : lsof peut également lister les connexions réseau ouvertes et les ports utilisés par les processus. | |||
Cette commande | <syntaxhighlight lang="bash" line copy> | ||
lsof -i | |||
</syntaxhighlight> | |||
<code>lsof</code> peut être utilisé pour lister les fichiers ouverts par les processus, y compris les sockets réseau. | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo lsof -i @<ip> | |||
</syntaxhighlight> | |||
4. Vous pouvez filtrer par protocole (TCP/UDP) ou par port spécifique : | |||
<syntaxhighlight lang="bash" line copy> | |||
lsof -i :<port> | |||
</syntaxhighlight> | |||
5. Identifier les fichiers ouverts par un utilisateur : Vous pouvez lister tous les fichiers ouverts par un utilisateur spécifique. | |||
<syntaxhighlight lang="bash" line copy> | |||
lsof -u <username> | |||
</syntaxhighlight> | |||
5. Déboguer les problèmes de verrouillage de fichiers : <br /> | |||
Si un fichier est verrouillé et que vous ne pouvez pas le supprimer ou le modifier, lsof peut vous aider à identifier quel processus le maintient ouvert. | |||
6. Surveiller les ressources système : <br />En listant les fichiers ouverts, vous pouvez surveiller l'utilisation des ressources système, comme les fichiers de périphériques ou les sockets réseau. | |||
7. Exemple d'utilisation : | |||
Pour lister tous les fichiers ouverts par tous les processus, vous pouvez simplement exécuter : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo lsof | |||
</syntaxhighlight> | |||
== Réseaux == | |||
=== voir les ip du reseaux et le mac adress === | |||
<syntaxhighlight lang="bash" line copy> | |||
#Dans la console: | |||
arp | |||
</syntaxhighlight> | |||
=== Reset DNS === | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo /etc/init.d/dns-clean start | |||
</syntaxhighlight> | |||
=== Dns diagnostique === | |||
<syntaxhighlight lang="bash" line copy> | |||
apt-get install dnsutils | |||
#La commande | |||
dig | |||
</syntaxhighlight> | |||
=== Pour voir les DNS en cours === | |||
<syntaxhighlight lang="bash" line copy> | |||
cat /etc/resolv.conf | |||
</syntaxhighlight> | |||
=== table de routage (IPv4/IPv6) === | |||
<syntaxhighlight lang="bash" line copy> | |||
ip route | |||
</syntaxhighlight> | |||
=== Vérification des interfaces === | |||
<syntaxhighlight lang="bash" line copy> | |||
ifconfig | |||
</syntaxhighlight> | |||
=== Afficher les connexions === | |||
<syntaxhighlight lang="bash" line copy> | |||
# 0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat. | |||
netstat -lntup | |||
# 1-Lister tous les ports : | |||
netstat -a | |||
# 2-Lister tous les ports TCP : | |||
netstat -at | |||
# 3-Lister tous les ports UDP : | |||
netstat -au | |||
# 4-Lister tous les ports en écoute : | |||
netstat -l | |||
# 5-Lister uniquement les ports TCP en écoutes : | |||
netstat -lt | |||
# 6-Lister uniquement les ports UDP en écoutes : | |||
netstat -lu | |||
# 7-Afficher les statistique de tous les ports : | |||
netstat -s | |||
# 8-Affichier les statistique des Port TCP : | |||
netstat -st | |||
# 9-Affichier les statistique des Port UDP : | |||
netstat -su | |||
# 10-Affiche le nom du programme et le PID associé : | |||
# Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier. | |||
netstat -p | |||
# 11-Afficher directement les IP et pas de résolution de nom : | |||
# Pour afficher toutes les connexions et tous les ports en écoute mais n’affiche que les adresses IP sans la résolutions des noms. | |||
netstat -an | |||
# 12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion : | |||
netstat -o | |||
# 13-Afficher la table de routage IPV4 et IP6 : | |||
netstat -r | |||
# 14-Affichage à un interval de temps régulier en seconde : | |||
netstat -t “temps en seconde” ( Exemple : netstat -t 5 ) | |||
netstat -t 5 | |||
</syntaxhighlight> | |||
=== Scanner les ports === | |||
<syntaxhighlight lang="bash" line copy> | |||
# nmap est un outil d'exploration réseau permettant de découvir les machines présentes ainsi que les services qu'elles utilisent. | |||
apt-get install nmap | |||
# 1. Lister les machines à explorer | |||
# Cette commande va se contenter de lister les machines que nmap explorerait sur le réseau en question. La valeur 24 indique que les trois premières valeurs sont fixes et que seule la dernière va varier. | |||
nmap -sL 192.168.0.1/24 | |||
# 2. Scanner les machines du réseau | |||
# On va maintenant passer la même commande en faisant un ping sur chaque machine. | |||
nmap -sP 192.168.0.1/24 | |||
# 3. Scanner une machine | |||
nmap 192.168.0.72 | |||
# 4. Scanner une machine plus en détail | |||
# On peut en plus activer la détection du système d'exploitation et des versions dans la commande précédente an ajoutant le flag -A: | |||
nmap -A 192.168.0.72 | |||
# Si maintenant on scanne la Box Internet: | |||
nmap -A 192.168.0.254 | |||
# 5. Accélérer le scan de la machine | |||
# Le précédent scan ayant duré 17mn, on va essayer d'obtenir un résultat plus rapidement en changeant la politique de temporisation de nmap: | |||
nmap -A -T5 192.168.0.254 | |||
</syntaxhighlight> | |||
=== En savoir plus sur le trafic sur un port === | |||
1. Utiliser netstat ou ss : Pour voir quelles applications utilisent ce port. | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo netstat -tuln | grep 40252 | |||
</syntaxhighlight> | |||
ou | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo ss -tuln | grep 40252 | |||
</syntaxhighlight> | |||
Identifier les connexions réseau actives et les ports utilisés. | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo ss -tunp | grep <ip> | |||
</syntaxhighlight> | |||
2. Utiliser lsof : Pour identifier le processus utilisant ce port. | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo lsof -i :40252 | |||
</syntaxhighlight> | |||
3. Vérifier les logs : Consultez les logs système pour voir s'il y a des informations sur les connexions utilisant ce port.<br /> | |||
4. Analyser le trafic : Utilisez des outils comme tcpdump ou Wireshark pour capturer et analyser le trafic sur ce port. | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 port 40252 | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 host <ip> | |||
</syntaxhighlight> | |||
En suivant ces étapes, vous devriez être en mesure de déterminer pourquoi ce port est utilisé sur votre système. | |||
=== À utiliser ensemble === | |||
- Détecter des intrusions (ports ouverts non autorisés).<br /> | |||
- Résoudre des conflits (ex: "Port already in use").<br /> | |||
- Optimiser la sécurité (fermer les ports inutiles). <br /> | |||
<syntaxhighlight lang="bash" line copy> | |||
ss -tunp #Analyse des sockets et connexions réseau | |||
sudo lsof -i -P -n #Liste des fichiers ouverts (dont les sockets réseau) | |||
</syntaxhighlight> | |||
=== trace ip === | |||
<syntaxhighlight lang="bash" line> | |||
apt install traceroute | |||
traceroute 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e | |||
traceroute6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e | |||
apt install mtr | |||
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e | |||
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e | |||
ip -6 route get 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e | |||
</syntaxhighlight> | |||
<code>hping3</code> est un outil flexible et puissant pour les administrateurs réseau et les professionnels de la sécurité, offrant des capacités avancées pour le diagnostic et le test des réseaux.<br /> | |||
Utilisation Éthique : <code>hping3</code> est un outil puissant qui peut être utilisé à des fins malveillantes, comme les attaques DoS. Il doit être utilisé de manière éthique et responsable, uniquement sur des réseaux et des systèmes pour lesquels vous avez l'autorisation. | |||
<syntaxhighlight lang="bash" line> | |||
apt install hping3 | |||
</syntaxhighlight> | |||
==== whois ==== | |||
Pour obtenir des informations sur l'enregistrement d'une adresse IP ou d'un nom de domaine : | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo apt-get install whois | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
whois 8.8.8.8 | |||
</syntaxhighlight> | |||
=== Observer le trafic === | |||
==== tshark ==== | |||
[[Tshark| (Voir page Tshark)]] | |||
==== tcpdump ==== | |||
Pour | Pour capturer et analyser le trafic réseau. Vous pouvez l'utiliser pour surveiller le trafic sur une interface spécifique. | ||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 port 443 | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo tcpdump -i eth0 host 192.168.1.10 and port 53 | |||
</syntaxhighlight> | |||
==== ftop ==== | |||
Affiche une vue en temps réel de la bande passante utilisée par les connexions réseau. Vous pouvez l'installer avec la commande suivante : | |||
<syntaxhighlight lang="bash" line> | |||
sudo apt-get install iftop | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo iftop -i eth0 | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo iftop -f "host 192.168.1.10" | |||
</syntaxhighlight> | |||
==== iptraf-ng ==== | |||
Outil de surveillance réseau qui fournit des statistiques détaillées sur le trafic réseau. Vous pouvez l'installer avec : | |||
<syntaxhighlight lang="bash" line> | |||
sudo apt-get install iptraf-ng | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo iptraf-ng | |||
</syntaxhighlight> | |||
==== nload ==== | |||
Affiche le trafic réseau en temps réel sous forme de graphiques. Installez-le avec : | |||
<syntaxhighlight lang="bash" line> | |||
sudo apt-get install nload | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" line copy> | |||
sudo nload eth0 | |||
</syntaxhighlight> | |||
== Fichiers convertion == | |||
=== ImageMagik convertir un pdf en jpg === | |||
<syntaxhighlight lang="bash" line copy> | |||
convert -density 300 -trim -quality 100 fichier.pdf image.jpg | |||
</syntaxhighlight> | |||
----- | |||
=== Commandes utiles === | |||
* https://blog.sodifrance.fr/nmap-commandes-utiles/ | |||
[[Catégorie: Linux]] | [[Catégorie: Linux]] | ||
Dernière version du 23 octobre 2025 à 14:39
Processeur
Informations sur le processeur
lscpu
Pour un affichage plus simple
lscpu | grep -E "Model name|CPU\(s\)|Thread|Core|Socket|Virtualization"
Ressources
Meilleures commandes linux a connaitre
malekal.com Commandes linux
Lister les services
service --status-all
# Les services actifs ont un + devant eux.
Example RSYNC aller et retour avec chown et chmod
rsync local -> serveur rsync -avz --delete --chown="user:group" --chmod="D2755,F644" --rsync-path="sudo rsync" -e "ssh -p654" /users/toto/ user@1.2.3.4:/home/toto/
rsync serveur -> local rsync -avz --delete --no-owner --no-group --no-perms --rsync-path="sudo rsync" -e "ssh -p654" user@1.2.3.4:/home/toto/ /users/toto/
Linux version noyau
uname -sr
uname -a
cat /etc/issue
cat /etc/*-release
lsb_release -ds
Sendmail
cd /var/spool/mqueue
sendmail -bp
send mail
mail -s "message" -F "adresse1@etc, adresse2@etc" -r "Un nom<une@email.com>" $EMAIL
Terminal Console
couleur du prompt
export PS1="\[\e[\033[00;36m\]\u\[\e[m\]\[\e[\033[00;36m\]@\[\e[m\]\[\e[\033[00;36m\]\h\[\e[m\]:\[\e[\033[01;33m\]\w\[\e[m\]\[\e[\033[01;32m\]\`parse_git_branch\`\[\e[m\]\\$ "
nano
Recherche un mot :
Ctrl + W
vim
Pour rechercher un mot dans l'éditeur de texte vim, vous pouvez utiliser les commandes suivantes :
- Passer en mode commande :
- - Appuyez sur
Escpour vous assurer que vous êtes en mode commande.
- Rechercher un mot :
- - Tapez
/suivi du mot que vous souhaitez rechercher, puis appuyez surEntrée. - Par exemple, pour rechercher le mot "example", tapez :
/example- Vim mettra en surbrillance la première occurrence du mot dans le texte.
- Naviguer entre les occurrences :
- - Pour passer à l'occurrence suivante du mot, appuyez sur
n(pour "next"). - Pour revenir à l'occurrence précédente, appuyez sur
N(majuscule).
- Recherche inversée :
- - Si vous souhaitez rechercher en arrière (à partir de la fin du fichier vers le début), utilisez
?au lieu de/.Par exemple : ?example- Comme précédemment, utilisez
netNpour naviguer entre les occurrences.
Compter
Compter le nombre de fichiers dans un répertoire
find /dossier/path/etc -maxdepth 1 -type f | wc -l
Compter le nombre de fichiers dans un répertoire selon son extension
find /dossier/path/etc -name '*.MOV' -type f -printf '.' | wc -c
Trouver
Compter le nombre de fichiers en excluant un répertoire
find /rep/ -maxdepth <big>4</big> -type f ! -path '*/repexclu/*' | wc -l
Trouver les chemins des fichiers recherchés
find /volume1/video/perso/2017 -name '*.MOV' -type f
Recherche
find /home/rep/ \( -name '*.ai' \)
Recherche et supprime
#Effacer les fichiers .DS_Store et Thumbs.db d’un système Linux
find /home/ -name .DS_Store -exec rm -f {} \;
Rechercher dans un fichier (XXX est un mot ou une expression régulière)
cat /var/log/syslog | grep XXX
cat /var/log/syslog | grep XXX | more
cat /var/log/syslog | grep XXX > resultat.txt
Afficher les dernières lignes d’un fichier
tail /var/log/syslog
Afficher en live (en temps réel) un fichier (ctrl-c pour sortir)
tail -f /var/log/syslog
Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !)
cat lefichier.txt
zcat /var/log/syslog.1.gz
#Chercher un fichier :
find -name "*.log"
find -name "*.log" | more
find / -name fichier.ini
grep -Rl "quelques chose" .
list open files
#fichiers ouverts ainsi que leurs programmes ou utilisateurs liés.
#ex:
sudo lsof -i :9000 () qui utilise le port :9000
Grep
sudo
sudo su -u root
Concaténer
#concatener des fichiers js ou css
echo | cat fichier1.css fichier2.css fichierfull.css > site.css
log
#Recherche en live
tail -f /var/log/fichier.log
#recherche simple
grep -R "untruc" /var/log/*
#cherche les 20 dernieres lignes avec un mot dans un log
grep -r "unbound" /var/log/fichier.log | tail -n 20
# exclusion (-v)
grep -r "untruc" /var/log/* | grep -v motàexclure
# -r recursive, -i insensible à la "casse", -l n'affiche pas tous les résultats, seulement le nom des fichiers
grep -r -i -l 'untruc' /var/log/
#zgrep pour les fichiers compressés compris
Alias
ls -l #Afficher les informations de manière détaillée.
ls -a #Afficher les fichiers cachés.
ls -h #Afficher la taille des fichiers de facon lisible.
ls -r #Tri inversé.
ls -t #Trier les fichiers par date du plus récent au plus ancien.
ls -S #Trier par taille décroissante.
ls -la #Afficher tous les fichiers y compris les fichiers cachés.
ls -lhS #Afficher les informations des fichiers, avec des tailles lisibles le tout ordonné du plus grand au plus petit.
ls -l --time-style=+"%d %b %H:%M" #affiche toujours l'heure
ls -l --time-style=+"%d %b %Y" #Afficher toujours l'année
ls -l --full-time #Afficher les dates complètes (heure + année)
ou
ls -l --time-style=long-iso
stat history.log.7.gz #Affiche toutes les dates (accès, modification, changement) avec précision.
ls -l ~/.bash* #Affiche les fichiers cachés de bash dans le home.
ls [ab]* #Liste les fichiers commençant par a ou b.
ls *.txt #Liste seulement les fichiers .txt
ls -lX #Trier alphabétiquement par extension
ls -lt #Trier par date et afficher les plus récents en premier
ls -lt | head -n 5 #Afficher les 5 fichiers les plus récents
ls -l | grep '^d........x' #avec permission d'exécution pour "autres"
ls -1alR #arborescence complète
ls -1alRls -m #arborescence complète format csv
#Créer raccourci:
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien'
#ex:
ln -s /usr/local/php53/bin/php /usr/local/bin/php53
Copie
copie entre 2 serveurs sans mot de passe
#Copie entre 2 serveurs sans mot de passe:
#générer la clé :
ssh-keygen -t dsa
#Ensuite, pour copier la clé sur l'ordinateur distant :
ssh root@server 'cat >> /root/.ssh/authorized_keys' < ~/.ssh/id_dsa.pub
#pour serveur dédié ovh :
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub
Compression
#Compresser un dossier :
tar -zcvf fichier.tar.gz /home/repertoire
#decompresser tar gz :
tar zxvf fichier.tar.gz
Historique
#Supprimer l'historique ssh:
history -c
Taille
malekal.com Connaître la taille répertoire
Taille repertoire
du -sh repertoire
Exclusion
sudo du -sh --exclude "directory" *
Liste des 10 plus gros fichiers du répertoire courant et de ses sous-repertoires, dans l’ordre décroissant de taille
du -a | sort -nr | head -n 10
Taille des fichiers et sous-répertoires du dossier courant, dans l’ordre décroissant de taille
du -a --max-depth=1 | sort -nr
Taille des plus gros
du -h --max-depth=1 /home/ | sort -rh | head -5
Taille des partitions
df -h
voir aussi => duf
Etat de la mémoire
free -m
Reset
#Vider un fichier
echo "" > auth.log
Transfert
#transfert de fichiers:
scp root@00.00.00.00:/home/fichier.ext .
scp fichier.ext root@00.00.00.00:/home/
#avec port
scp -P XXXX user@ip:/rep/fichier.txt .
synchronisation de fichiers
rsync -avz -e ssh /users/personne/.../ root@168.192.1.23:/home/../
sync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
rsync -av /Users/poste2/Desktop/Joomla_1/ /users/personne/.../
#option:
--exclude="/*/.local" (exclure un répertoire)
rsync -avz -e ssh root@168.192.1.23:/home/../ /users/personne/.../
#exclure répertoire
--exclude='/config/'
Répertoire
Comparer répertoire
diff -rb /rep1/ /rep2/
supprimer un repertoire
rm -rf portail
modifier attributs
#modif proprio
chown -R personne:groupe rep (-R recursif)
#modif des droits
chmod -R 755 repertoire
Affiche la structure d'un dossier
tree parcourt récursivement un répertoire et affiche son contenu (dossiers et fichiers) dans une représentation hiérarchique, en utilisant des indentations et des symboles (├─, └─) pour montrer la structure.
✅ Syntaxe de base
tree [options] [répertoire]
- Sans argument : affiche l’arborescence du répertoire courant.
- Avec un chemin : affiche l’arborescence du répertoire spécifié.
✅ Options utiles
-L <niveau>: limite la profondeur d’affichage (ex.-L 2pour 2 niveaux).-d: affiche uniquement les dossiers.-f: affiche le chemin complet des fichiers.-a: inclut les fichiers cachés.--dirsfirst: liste les dossiers avant les fichiers.
✅ Exemple
tree -L 2 project
- Affiche la structure du dossier
projectavec une profondeur de 2 niveaux.
project/ ├─ public/ │ ├─ index.html │ ├─ script.js ├─ src/ │ └─ app.php ├─ db/ │ └─ schema.sql └─ README.md
- Exclure .git et .idea
tree -a -I '.git|.idea'
MySql
serveur bin # mysql -p
mysql> GRANT ALL PRIVILEGES ON bdd_personne.* TO personne@'%' IDENTIFIED BY 'testdb';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON bdd.* TO personne @'%' IDENTIFIED BY 'testdb';
MYSQL DUMP
/usr/bin/mysqldump --default-character-set=latin1 --host=localhost --user=nom --password=pass bdd > /home/bdd.sql
#se placer ds le repertoire Bin de mysql
#commande:
mysql -u root -p db < db.dmp
service mail
/etc/init.d/spamd stop
/etc/init.d/clamd stop
/etc/init.d/qmail stop
/etc/init.d/spamd start
/etc/init.d/clamd start
/etc/init.d/qmail start
Fichiers
bat
cat amélioré (syntax highlighting, numéros de ligne).
sudo apt install bat
batcat fichier.txt # sur ubuntu
Lire les fichiers
ls -la
ls -lah humain
ls -lac date de création
Rendre exécutable un fichier ssh
chmod u+x fichier.sh
#Cette commande ajoute les droits d'exécution au propriétaire du fichier. Pour rendre le fichier exécutable pour le groupe utilisateur il faut lancer :
chmod g+x fichier.sh
#Pour rendre le script exécutable pour les utilisateurs autres :
chmod o+x fichier.sh
#Et enfin pour autoriser tout le monde :
chmod ugo+x fichier.sh
Manipuler contenu fichier
Nettoyer des fichiers (supprimer des caractères, remplacer du texte) - Automatiser des modifications dans des scripts shell - Filtrer des logs ou des données structurées : voir => sed
Autres
Répertoire WEB
#répertoire www doit être en 705.
#En revanche les autres répertoires doivent être en 755 et les fichiers en 644.
#Voici deux comandes via le ssh pour mettre des répertoires en 755 et tes fichiers en 644.
cd /home/TEST/www/
#répertoires en 705 avec cette commande :
find . -type d -print | xargs chmod 705
#fichiers en 644 :
find . -type f -print0 | xargs -0 -n1 chmod 644
Executer une page web
#!/bin/bash
wget http://site.com/page.html 1> /dev/null 2> /dev/null
Extraire dossier ou fichier d'une archive
#Pour tirer un fichier
tar --extract --file=mon_archive.tar file1
#c'est à dire extraire le fichier file1 de l'archive mon_archive.tar.
#Si nous devons extraire à partir d'une archive gzippée:
tar xzf mon_achive_zippee.tgz file2
#maintenant si on veux extraire un répertoire:
tar xzf grosse_archive.tar.gz --wildcards --no-anchored 'home/zydoon/public_html*'
#vous pouvez utiliser le t au lieu du x pour vous exercer.
Lister les services
sudo service --status-all
Profile
#relancer /etc/profile/
source /etc/profile
Paquets
processus
lsof
(List Open Files) est un outil en ligne de commande très puissant sur les systèmes Unix et Linux, y compris Debian.
Il est utilisé pour lister les fichiers ouverts par les processus en cours d'exécution.
Voici quelques-unes des principales utilisations de lsof :
1. Identifier les fichiers ouverts par un processus : Vous pouvez utiliser lsof pour voir quels fichiers sont ouverts par un processus spécifique.
Cela peut être utile pour le débogage ou pour comprendre ce qu'un processus fait.
lsof -p <PID>
2. Trouver quel processus utilise un fichier :
Si vous avez besoin de savoir quel processus utilise un fichier particulier, vous pouvez utiliser lsof pour le découvrir.
lsof /chemin/vers/le/fichier
3. Lister les connexions réseau : lsof peut également lister les connexions réseau ouvertes et les ports utilisés par les processus.
lsof -i
lsof peut être utilisé pour lister les fichiers ouverts par les processus, y compris les sockets réseau.
sudo lsof -i @<ip>
4. Vous pouvez filtrer par protocole (TCP/UDP) ou par port spécifique :
lsof -i :<port>
5. Identifier les fichiers ouverts par un utilisateur : Vous pouvez lister tous les fichiers ouverts par un utilisateur spécifique.
lsof -u <username>
5. Déboguer les problèmes de verrouillage de fichiers :
Si un fichier est verrouillé et que vous ne pouvez pas le supprimer ou le modifier, lsof peut vous aider à identifier quel processus le maintient ouvert.
6. Surveiller les ressources système :
En listant les fichiers ouverts, vous pouvez surveiller l'utilisation des ressources système, comme les fichiers de périphériques ou les sockets réseau.
7. Exemple d'utilisation : Pour lister tous les fichiers ouverts par tous les processus, vous pouvez simplement exécuter :
sudo lsof
Réseaux
voir les ip du reseaux et le mac adress
#Dans la console:
arp
Reset DNS
sudo /etc/init.d/dns-clean start
Dns diagnostique
apt-get install dnsutils
#La commande
dig
Pour voir les DNS en cours
cat /etc/resolv.conf
table de routage (IPv4/IPv6)
ip route
Vérification des interfaces
ifconfig
Afficher les connexions
# 0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat.
netstat -lntup
# 1-Lister tous les ports :
netstat -a
# 2-Lister tous les ports TCP :
netstat -at
# 3-Lister tous les ports UDP :
netstat -au
# 4-Lister tous les ports en écoute :
netstat -l
# 5-Lister uniquement les ports TCP en écoutes :
netstat -lt
# 6-Lister uniquement les ports UDP en écoutes :
netstat -lu
# 7-Afficher les statistique de tous les ports :
netstat -s
# 8-Affichier les statistique des Port TCP :
netstat -st
# 9-Affichier les statistique des Port UDP :
netstat -su
# 10-Affiche le nom du programme et le PID associé :
# Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier.
netstat -p
# 11-Afficher directement les IP et pas de résolution de nom :
# Pour afficher toutes les connexions et tous les ports en écoute mais n’affiche que les adresses IP sans la résolutions des noms.
netstat -an
# 12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion :
netstat -o
# 13-Afficher la table de routage IPV4 et IP6 :
netstat -r
# 14-Affichage à un interval de temps régulier en seconde :
netstat -t “temps en seconde” ( Exemple : netstat -t 5 )
netstat -t 5
Scanner les ports
# nmap est un outil d'exploration réseau permettant de découvir les machines présentes ainsi que les services qu'elles utilisent.
apt-get install nmap
# 1. Lister les machines à explorer
# Cette commande va se contenter de lister les machines que nmap explorerait sur le réseau en question. La valeur 24 indique que les trois premières valeurs sont fixes et que seule la dernière va varier.
nmap -sL 192.168.0.1/24
# 2. Scanner les machines du réseau
# On va maintenant passer la même commande en faisant un ping sur chaque machine.
nmap -sP 192.168.0.1/24
# 3. Scanner une machine
nmap 192.168.0.72
# 4. Scanner une machine plus en détail
# On peut en plus activer la détection du système d'exploitation et des versions dans la commande précédente an ajoutant le flag -A:
nmap -A 192.168.0.72
# Si maintenant on scanne la Box Internet:
nmap -A 192.168.0.254
# 5. Accélérer le scan de la machine
# Le précédent scan ayant duré 17mn, on va essayer d'obtenir un résultat plus rapidement en changeant la politique de temporisation de nmap:
nmap -A -T5 192.168.0.254
En savoir plus sur le trafic sur un port
1. Utiliser netstat ou ss : Pour voir quelles applications utilisent ce port.
sudo netstat -tuln | grep 40252
ou
sudo ss -tuln | grep 40252
Identifier les connexions réseau actives et les ports utilisés.
sudo ss -tunp | grep <ip>
2. Utiliser lsof : Pour identifier le processus utilisant ce port.
sudo lsof -i :40252
3. Vérifier les logs : Consultez les logs système pour voir s'il y a des informations sur les connexions utilisant ce port.
4. Analyser le trafic : Utilisez des outils comme tcpdump ou Wireshark pour capturer et analyser le trafic sur ce port.
sudo tcpdump -i eth0 port 40252
sudo tcpdump -i eth0 host <ip>
En suivant ces étapes, vous devriez être en mesure de déterminer pourquoi ce port est utilisé sur votre système.
À utiliser ensemble
- Détecter des intrusions (ports ouverts non autorisés).
- Résoudre des conflits (ex: "Port already in use").
- Optimiser la sécurité (fermer les ports inutiles).
ss -tunp #Analyse des sockets et connexions réseau
sudo lsof -i -P -n #Liste des fichiers ouverts (dont les sockets réseau)
trace ip
apt install traceroute
traceroute 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
traceroute6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
apt install mtr
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
mtr -6 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
ip -6 route get 2000:e0e:e0e:e0e:e0e:e0e:e0e:e0e
hping3 est un outil flexible et puissant pour les administrateurs réseau et les professionnels de la sécurité, offrant des capacités avancées pour le diagnostic et le test des réseaux.
Utilisation Éthique : hping3 est un outil puissant qui peut être utilisé à des fins malveillantes, comme les attaques DoS. Il doit être utilisé de manière éthique et responsable, uniquement sur des réseaux et des systèmes pour lesquels vous avez l'autorisation.
apt install hping3
whois
Pour obtenir des informations sur l'enregistrement d'une adresse IP ou d'un nom de domaine :
sudo apt-get install whois
whois 8.8.8.8
Observer le trafic
tshark
tcpdump
Pour capturer et analyser le trafic réseau. Vous pouvez l'utiliser pour surveiller le trafic sur une interface spécifique.
sudo tcpdump -i eth0
sudo tcpdump -i eth0 port 443
sudo tcpdump -i eth0 host 192.168.1.10 and port 53
ftop
Affiche une vue en temps réel de la bande passante utilisée par les connexions réseau. Vous pouvez l'installer avec la commande suivante :
sudo apt-get install iftop
sudo iftop -i eth0
sudo iftop -f "host 192.168.1.10"
iptraf-ng
Outil de surveillance réseau qui fournit des statistiques détaillées sur le trafic réseau. Vous pouvez l'installer avec :
sudo apt-get install iptraf-ng
sudo iptraf-ng
nload
Affiche le trafic réseau en temps réel sous forme de graphiques. Installez-le avec :
sudo apt-get install nload
sudo nload eth0
Fichiers convertion
ImageMagik convertir un pdf en jpg
convert -density 300 -trim -quality 100 fichier.pdf image.jpg