« SSH » : différence entre les versions
(39 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 29 : | Ligne 29 : | ||
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 | ||
</pre> | |||
== Terminal Console == | |||
=== couleur du prompt === | |||
<pre> | |||
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\]\\$ " | |||
</pre> | </pre> | ||
== Compter == | == 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 == | == 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 | #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) === | |||
Rechercher dans un fichier (XXX est un mot ou une expression régulière) | |||
<pre> | <pre> | ||
cat /var/log/syslog | grep XXX | cat /var/log/syslog | grep XXX | ||
Ligne 60 : | Ligne 66 : | ||
</pre> | </pre> | ||
Afficher les dernières lignes d’un fichier | === 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) | === 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 !) | === Afficher le contenu d’un fichier (on affiche les logs principaux, faites ctrl-c pour stopper !) === | ||
<pre> | <pre> | ||
cat lefichier.txt | cat lefichier.txt | ||
zcat /var/log/syslog.1.gz | zcat /var/log/syslog.1.gz | ||
</pre> | </pre> | ||
<pre> | <pre> | ||
#Chercher un fichier : | |||
find -name "*.log" | find -name "*.log" | ||
find -name "*.log" | more | find -name "*.log" | more | ||
Ligne 81 : | Ligne 88 : | ||
grep -Rl "quelques chose" . | grep -Rl "quelques chose" . | ||
</pre> | </pre> | ||
=== list open files === | |||
fichiers ouverts ainsi que leurs programmes ou utilisateurs liés. | |||
ex:sudo lsof -i :9000 () qui utilise le port :9000 | |||
* http://jlbicquelet.free.fr/aix/commandes/lsof.php | |||
== sudo == | == sudo == | ||
Ligne 88 : | Ligne 98 : | ||
== Concaténer == | == Concaténer == | ||
<pre> | <pre> | ||
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 | ||
</pre> | </pre> | ||
Ligne 131 : | Ligne 140 : | ||
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. | ||
#Créer raccourci: | |||
ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien' | ln -s 'chemin_de_l_element_visé' 'nom_effectif_du_lien' | ||
ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53 | ex: ln -s /usr/local/php53/bin/php /usr/local/bin/php53 | ||
</pre> | </pre> | ||
== Copie == | == Copie == | ||
=== copie entre 2 serveurs sans mot de passe === | === copie entre 2 serveurs sans mot de passe === | ||
<pre> | <pre> | ||
Copie entre 2 serveurs sans mot de passe: | #Copie entre 2 serveurs sans mot de passe: | ||
générer la clé : | #générer la clé : | ||
ssh-keygen -t dsa | ssh-keygen -t dsa | ||
Ensuite, pour copier la clé sur l'ordinateur distant : | #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 : | #pour serveur dédié ovh : | ||
ssh user@ip 'cat >> /home/user/.ssh/authorized_keys2' < /home/userlocal/.ssh/id_dsa.pub | |||
</pre> | |||
== Compression == | == Compression == | ||
Ligne 165 : | Ligne 175 : | ||
== Taille == | == Taille == | ||
=== Taille repertoire === | |||
df -h | 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 | |||
=== Etat de la mémoire === | |||
free -m | free -m | ||
== Reset == | == Reset == | ||
Ligne 257 : | Ligne 278 : | ||
=== Rendre exécutable un fichier ssh === | === Rendre exécutable un fichier ssh === | ||
<pre> | |||
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 : | #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 : | #Pour rendre le script exécutable pour les utilisateurs autres : | ||
chmod o+x fichier.sh | |||
#Et enfin pour autoriser tout le monde : | #Et enfin pour autoriser tout le monde : | ||
chmod ugo+x fichier.sh | |||
</pre> | |||
== Autres == | == Autres == | ||
Ligne 289 : | Ligne 312 : | ||
=== Extraire dossier ou fichier d'une archive === | === Extraire dossier ou fichier d'une archive === | ||
<pre> | |||
#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. | |||
</pre> | |||
maintenant si on veux extraire un répertoire: | |||
vous pouvez utiliser le t au lieu du x pour vous exercer. | |||
=== Lister les services === | |||
<pre> | |||
sudo service --status-all | |||
</pre> | |||
* http://www.linuxpedia.fr/doku.php/commande/ssh | * http://www.linuxpedia.fr/doku.php/commande/ssh | ||
* http://juliend.github.io/linux-cheatsheet/ | * http://juliend.github.io/linux-cheatsheet/ | ||
== Profile == | == Profile == | ||
Ligne 312 : | Ligne 340 : | ||
== Paquets == | == Paquets == | ||
=== mettre à jour un paquet | === mettre à jour un paquet === | ||
sudo apt update (mise à jour de '''la liste''' des paquets) | sudo apt update (mise à jour de '''la liste''' des paquets) | ||
sudo apt list --upgradable (pour voir ce qui doit être mis à jour) | sudo apt list --upgradable (pour voir ce qui doit être mis à jour) | ||
sudo apt install --only-upgrade firefox | sudo apt install --only-upgrade firefox | ||
sudo apt-get --with-new-pkgs upgrade | |||
sudo aptitude update | |||
aptitude search '~U' | |||
sudo aptitude upgrade | |||
=== listes des paquets === | === listes des paquets === | ||
dpkg --list | dpkg --list | ||
=== listes noyaux installés === | |||
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}' | |||
=== le paquet est-il à jour === | === le paquet est-il à jour === | ||
apt-cache policy openvpn | apt-cache policy openvpn | ||
=== details d'un paquet === | |||
dpkg -L|--listfiles <package> | |||
=== chercher un paquet === | |||
dpkg -S|--search <pattern> | |||
=== nettoyer les paquets === | |||
sudo apt-get autoremove --purge | |||
== Réseaux == | == Réseaux == | ||
=== voir les ip du reseaux et le mac adress === | === voir les ip du reseaux et le mac adress === | ||
Dans la console: arp | Dans la console: arp | ||
=== Reset DNS === | |||
sudo /etc/init.d/dns-clean start | |||
=== Dns diagnostique === | === Dns diagnostique === | ||
Ligne 420 : | Ligne 467 : | ||
nmap -A -T5 192.168.0.254 | nmap -A -T5 192.168.0.254 | ||
</pre> | </pre> | ||
== Fichiers convertion == | |||
=== ImageMagik convertir un pdf en jpg === | |||
convert -density 300 -trim -quality 100 fichier.pdf image.jpg | |||
----- | ----- | ||
0. Commandes utiles | 0. Commandes utiles | ||
* https://blog.sodifrance.fr/nmap-commandes-utiles/ | * https://blog.sodifrance.fr/nmap-commandes-utiles/ | ||
Dernière version du 25 mai 2024 à 09:33
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\]\\$ "
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 4 -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
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. #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
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
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
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
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
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
mettre à jour un paquet
sudo apt update (mise à jour de la liste des paquets) 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
listes des paquets
dpkg --list
listes noyaux installés
dpkg -l | awk '!/^rc/ && / linux-(c|g|h|i|lo|m|si|t)/{print $1,$2,$3,$4 | "sort -k3 | column -t"}'
le paquet est-il à jour
apt-cache policy openvpn
details d'un paquet
dpkg -L|--listfiles <package>
chercher un paquet
dpkg -S|--search <pattern>
nettoyer les paquets
sudo apt-get autoremove --purge
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
Fichiers convertion
ImageMagik convertir un pdf en jpg
convert -density 300 -trim -quality 100 fichier.pdf image.jpg
0. Commandes utiles