Développeur FullStack & Devops

Recharger des fichiers de conf sans se déconnecter

. ~/.profile

est strictement équivalent à:

source ~/.profile

la commande source exécute le script spécifié dans le shell actuel.

Obtenir son adresse IP publique

dig +short myip.opendns.com @resolver1.opendns.com
curl -s http://whatismyip.akamai.com
curl wgetip.com

Changer de Shell

Vérifier si on est en shell Bash:

echo $SHELL  retourne /bin/bash

puis pour passer sous Fish par exemple ajouter le path du binaire du nouveau Shell dans /etc/shells puis:

chsh -s /usr/bin/fish

Lister les port écoutés

sudo netstat -tupln

Raccourcis Bash

CTRL + A : début de ligne

CTRL + E : fin de ligne

ALT + B : reculer 1 mot

ALT + F : avancer 1 mot

!commande : exécute la commande avec les arguments de sa dernière exécution (ex: !ls)

CTRL + R : permet de naviguer à travers l’historique des commandes (interractif)

source

Changer de timezone

sudo timedatectl list-timezones
sudo timedatectl set-timezone Europe/Paris

Localiser un binaire

la commande « command -v » est à favoriser par rapport à which qui est un process externe (sécurité, performances etc.) et cherche les binaires (pas uniquement dans le PATH)

command -v monbinaire

« locate » recherche des entrées dans une base de données mlocate mise à jour régulièrement par la système. Cherche une correspondance sur tout le chemin, il est possible d’utiliser le -r (regex)

locate -r '^.*/monbinaire

« find » peut avec les arguments -exec ou -ok être utilisé pour exécuter des instructions sur les résultats de la commande

find -name '*onbinaire' -print -ok ls -l {} \;

« grep -R » en excluant des dossiers

grep -iR --exclude-dir=node_modules ' port ' *

Fichiers et droits

chown possède de nombreuses options, pour affecter des dossiers/fichiers de façon sélective:

chown www-data:www-data /tmp/toto              # modifie user:groupe
chown -R www-data:www-data /tmp/toto           # modifie récursivement
chown -h www-data:www-data /tmp/toto           # modifier les droits sur les symlinks eux même (et non la cible du lien)
chown --from=behrouze www-data /tmp/toto       # modifie le owner des fichier de l'utilisateur spécifié
chown --from=:old-group :new-group /tmp/toto   # modifie le groupe des fichier du groupe old-group
chown --reference=fichier-source fichier-cible # copie les droits d'un fichier existant
chown g+s www-data /toto/                      # utilisation du SGID, appliqué à tout nouveau fichier créé

Debugger en Bash

mode debug: set -x  et pour remettre en mode normal: set +x

Executer une succession de commandes en root

sudo sh -c 'cat fichier|grep -v "#" > /etc/nginx/sites-available/monsite.conf'

Grep

grep -A  5   # affiche les 5 lignes suivants le pattern trouvé
grep -B  5   # précédent
grep -C  5   # avant et après
grep -E -w 'version|number' fichier  # cherche les mots version OU number dans le fichier

MAJ du système

Pour appliquer les MAJ de sécurité automatiquement utiliser l’utilitaire unattended-upgrades. A noter que mettre un apt update dans un crontab sera souvent en échec car le PATH n’est pas setté.

Pour vérifier la date du dernier apt update voir la date de dernière modif du fichier pkgcache.bin :

ls -l /var/cache/apt/pkgcache.bin

ou avec les détails des dates d’accès :

stat /var/cache/apt/pkgcache.bin

le dernier apt upgrade :

tail -1 /var/log/apt/history.log

Changer l’éditeur de texte par défaut

Un éditeur de text par défaut doit être sélectionné pour utiliser par exemple les commandes tels que crontab -e , et nous avons le choix parmis les éditeurs installés (souvent au moins vim et nano):

select-editor

Changer le nom de sa machine

vi /etc/hostname
vi /etc/hosts

Distribution Linux

Pour déterminer la distribution les infos se trouvent:

cat /etc/os-release
cat /proc/version

last -x|grep shutdown | head -3  affiche la date et heure des 3 derniers redémarrage (complète uptime  qui donne la durée)

Grub

Pour customiser Grub (OS loader) en ajoutant la mémorisation du dernier choix, ainsi que l’ajout d’une image de background perso, il faut éditer le fichier sudo vi /etc/default/grub  et ajouter/modifier :

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
GRUB_BACKGROUND="/home/behrouze/Images/Grub.jpg"

et faire prendre en compte les modifications par un sudo update-grub.

rédigé par behrouze le 16/05/2018
Cheat SheetsOutilsVidéosA propos