« Commandes BASH » : différence entre les versions

 
(41 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]<br />
[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 ==
== Ressources ==
Ligne 139 : Ligne 150 :
</syntaxhighlight>
</syntaxhighlight>
* http://jlbicquelet.free.fr/aix/commandes/lsof.php
* http://jlbicquelet.free.fr/aix/commandes/lsof.php
=== [[Grep| Grep]] ===


== sudo ==
== sudo ==
Ligne 188 : Ligne 201 :


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:
#Créer raccourci:
Ligne 255 : Ligne 296 :
df -h
df -h
</syntaxhighlight>
</syntaxhighlight>
voir aussi => [[Logiciels_terminal#duf|duf]]


=== Etat de la mémoire ===
=== Etat de la mémoire ===
Ligne 312 : Ligne 354 :
chmod -R 755 repertoire
chmod -R 755 repertoire
</syntaxhighlight>
</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 &lt;niveau&gt;</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 ==
== MySql ==
Ligne 341 : Ligne 422 :


== Fichiers ==
== 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 ===
=== Lire les fichiers ===
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
Ligne 361 : Ligne 451 :
chmod ugo+x fichier.sh
chmod ugo+x fichier.sh
</syntaxhighlight>
</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 ==
== Autres ==
Ligne 413 : Ligne 506 :
== Paquets ==
== Paquets ==
[[ APT | voir APT]]
[[ 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.
<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 ==
== Réseaux ==
Ligne 525 : Ligne 667 :
# 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:
# 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
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>
</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 ===
=== trace ip ===
Ligne 545 : Ligne 726 :
<syntaxhighlight lang="bash" line>
<syntaxhighlight lang="bash" line>
apt install hping3
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 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>
</syntaxhighlight>