« Commandes BASH » : différence entre les versions
| (60 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 7 : | Ligne 18 : | ||
<syntaxhighlight lang="bash" line copy> | <syntaxhighlight lang="bash" line copy> | ||
service --status-all | service --status-all | ||
# Les services actifs ont un + devant eux. | |||
</syntaxhighlight> | </syntaxhighlight> | ||
== Example RSYNC aller et retour avec chown et chmod == | == Example RSYNC aller et retour avec chown et chmod == | ||
| Ligne 45 : | Ligne 56 : | ||
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\]\\$ " | 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> | </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 == | ||
| Ligne 112 : | 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 161 : | 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 228 : | 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 285 : | 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 <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 == | == MySql == | ||
| Ligne 314 : | 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 334 : | 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 385 : | Ligne 505 : | ||
== Paquets == | == 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> | <syntaxhighlight lang="bash" line copy> | ||
lsof -p <PID> | |||
</syntaxhighlight> | </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> | <syntaxhighlight lang="bash" line copy> | ||
lsof /chemin/vers/le/fichier | |||
</syntaxhighlight> | </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> | <syntaxhighlight lang="bash" line copy> | ||
lsof -i | |||
</syntaxhighlight> | </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> | <syntaxhighlight lang="bash" line copy> | ||
sudo lsof -i @<ip> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
4. Vous pouvez filtrer par protocole (TCP/UDP) ou par port spécifique : | |||
<syntaxhighlight lang="bash" line copy> | <syntaxhighlight lang="bash" line copy> | ||
lsof -i :<port> | |||
</syntaxhighlight> | </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> | <syntaxhighlight lang="bash" line copy> | ||
lsof -u <username> | |||
</syntaxhighlight> | </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> | <syntaxhighlight lang="bash" line copy> | ||
sudo | sudo lsof | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Ligne 436 : | Ligne 564 : | ||
=== Reset DNS === | === Reset DNS === | ||
<syntaxhighlight lang="bash" line copy> | |||
sudo /etc/init.d/dns-clean start | |||
</syntaxhighlight> | |||
=== Dns diagnostique === | === Dns diagnostique === | ||
<syntaxhighlight lang="bash" line copy> | |||
apt-get install dnsutils | apt-get install dnsutils | ||
#La commande | |||
dig | |||
</syntaxhighlight> | |||
=== Pour voir les DNS en cours === | === Pour voir les DNS en cours === | ||
<syntaxhighlight lang="bash" line copy> | |||
cat /etc/resolv.conf | |||
</syntaxhighlight> | |||
=== table de routage (IPv4/IPv6) === | === table de routage (IPv4/IPv6) === | ||
<syntaxhighlight lang="bash" line copy> | |||
ip route | |||
</syntaxhighlight> | |||
=== Vérification des interfaces === | === Vérification des interfaces === | ||
<syntaxhighlight lang="bash" line copy> | |||
ifconfig | |||
</syntaxhighlight> | |||
=== Afficher les connexions === | === 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. | # 0-Lister les ports ouverts et les services réseaux en écoute sur son serveur Linux grâce à netstat. | ||
netstat -lntup | netstat -lntup | ||
1-Lister tous les ports : | # 1-Lister tous les ports : | ||
netstat -a | netstat -a | ||
2-Lister tous les ports TCP : | # 2-Lister tous les ports TCP : | ||
netstat -at | netstat -at | ||
3-Lister tous les ports UDP : | # 3-Lister tous les ports UDP : | ||
netstat -au | netstat -au | ||
4-Lister tous les ports en écoute : | # 4-Lister tous les ports en écoute : | ||
netstat -l | netstat -l | ||
5-Lister uniquement les ports TCP en écoutes : | # 5-Lister uniquement les ports TCP en écoutes : | ||
netstat -lt | netstat -lt | ||
6-Lister uniquement les ports UDP en écoutes : | # 6-Lister uniquement les ports UDP en écoutes : | ||
netstat -lu | netstat -lu | ||
7-Afficher les statistique de tous les ports : | # 7-Afficher les statistique de tous les ports : | ||
netstat -s | netstat -s | ||
8-Affichier les statistique des Port TCP : | # 8-Affichier les statistique des Port TCP : | ||
netstat -st | netstat -st | ||
9-Affichier les statistique des Port UDP : | # 9-Affichier les statistique des Port UDP : | ||
netstat -su | netstat -su | ||
10-Affiche le nom du programme et le PID associé : | # 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. | # Cette commande est très utile lorsque vous souhaitez connaitre quel programme est exécuté sur un port particulier. | ||
netstat -p | netstat -p | ||
11-Afficher directement les IP et pas de résolution de nom : | # 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. | # 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 | netstat -an | ||
12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion : | # 12-Affiche le numéro d’identification des processus (PID) associé à chaque connexion : | ||
netstat -o | netstat -o | ||
13-Afficher la table de routage IPV4 et IP6 : | # 13-Afficher la table de routage IPV4 et IP6 : | ||
netstat -r | netstat -r | ||
14-Affichage à un interval de temps régulier en seconde : | # 14-Affichage à un interval de temps régulier en seconde : | ||
netstat -t “temps en seconde” ( Exemple : netstat -t 5 ) | netstat -t “temps en seconde” ( Exemple : netstat -t 5 ) | ||
netstat -t 5 | netstat -t 5 | ||
</ | </syntaxhighlight> | ||
=== Scanner les ports === | === 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. | # 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 | apt-get install nmap | ||
1. Lister les machines à explorer | # 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. | # 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 | nmap -sL 192.168.0.1/24 | ||
2. Scanner les machines du réseau | # 2. Scanner les machines du réseau | ||
On va maintenant passer la même commande en faisant un ping sur chaque machine. | # On va maintenant passer la même commande en faisant un ping sur chaque machine. | ||
nmap -sP 192.168.0.1/24 | nmap -sP 192.168.0.1/24 | ||
3. Scanner une machine | # 3. Scanner une machine | ||
nmap 192.168.0.72 | nmap 192.168.0.72 | ||
4. Scanner une machine plus en détail | # 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: | # 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 | nmap -A 192.168.0.72 | ||
Si maintenant on scanne la Box Internet: | # Si maintenant on scanne la Box Internet: | ||
nmap -A 192.168.0.254 | nmap -A 192.168.0.254 | ||
5. Accélérer le scan de la machine | # 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: | # 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> | |||
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 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 == | == Fichiers convertion == | ||
=== ImageMagik convertir un pdf en jpg === | === ImageMagik convertir un pdf en jpg === | ||
convert -density 300 -trim -quality 100 fichier.pdf image.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/ | * https://blog.sodifrance.fr/nmap-commandes-utiles/ | ||