« Commandes BASH » : différence entre les versions

 
(52 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>
Les services actifs ont un + devant eux.


== 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 &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 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 ==
=== mettre à jour un paquet  ===
[[ 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>
sudo apt update #(mise à jour de '''la liste''' des paquets)
lsof -p <PID>
sudo apt list --upgradable #(pour voir ce qui doit être mis à jour)
sudo apt install --only-upgrade firefox
sudo apt-get --with-new-pkgs upgrade
 
sudo aptitude update
aptitude search '~U'
sudo aptitude upgrade
</syntaxhighlight>
</syntaxhighlight>


=== listes des paquets ===
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>
dpkg --list
lsof /chemin/vers/le/fichier
</syntaxhighlight>
</syntaxhighlight>


=== listes noyaux installés ===
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>
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
lsof -i
</syntaxhighlight>
</syntaxhighlight>


=== le paquet est-il à jour ===
<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>
apt-cache policy openvpn
sudo lsof -i @<ip>
</syntaxhighlight>
</syntaxhighlight>


=== details d'un paquet ===
4. Vous pouvez filtrer par protocole (TCP/UDP) ou par port spécifique :
<syntaxhighlight lang="bash" line copy>
<syntaxhighlight lang="bash" line copy>
dpkg -L|--listfiles <package>
lsof -i :<port>
</syntaxhighlight>
</syntaxhighlight>


=== chercher un paquet ===
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>
dpkg -S|--search <pattern>
lsof -u <username>
</syntaxhighlight>
</syntaxhighlight>


=== nettoyer les paquets ===
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 apt-get autoremove --purge
sudo lsof
</syntaxhighlight>
</syntaxhighlight>


Ligne 539 : 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>
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>
</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>
-----
-----
  0. Commandes utiles
=== Commandes utiles ===
* https://blog.sodifrance.fr/nmap-commandes-utiles/
* https://blog.sodifrance.fr/nmap-commandes-utiles/