howto
Sed
Display context # print 1 line of context before and after regexp, with line number # indicating where the regexp occurred (similar to "grep -A1 -B1") $ sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h Delete consecutive blank lines # delete all CONSECUTIVE blank lines from file except the first; also # deletes all blank lines from top and end of file (emulates "cat -s") $ sed '/./,/^$/!d' # method 1, allows 0 blanks at top, 1 at EOF $ sed '/^$/N;/\n$/D' # method 2, allows 1 blank at top, 0 at EOF »
Authorité de Certification - Memento
Réflexions sur les clés http://www.git-attitude.fr/2010/09/13/comprendre-et-maitriser-les-cles-ssh/ => clé RSA 2 ou 4ko Algorithme de hashage https://www.securiteinfo.com/cryptographie/cracked.shtml => SHA-256 Voir la commande openssl pour connaitre les algorithmes dispos. Vocabulaire : Les clés vont servir à chiffrer la communication. Chaque utilisateur possède deux clés : une publique et une privée. Un certificat permet de transmettre la clé publique et/ou privée en les accompagnant d’infos pour les valider. Créer sa propre authorité de certification : http://www. »
Clonage DD
$ sudo dd if=/dev/sda conv=notrunc,noerror,sync bs=16065b | gzip -c > <fichier image> # Creation de l'image $ sudo dd if=/dev/sda conv=notrunc,noerror,sync bs=16065b | gzip -c | split -b 2048m - <fichier image> # Limite la taille des fichiers (2Go max) $ fdisk -l /dev/sda > <fichier info dd> # Récupération des infos disk $ cat <fichier_image> | gzip -dc | sudo dd of=/dev/sda conv=sync,noerror,notrunc bs=16065b # Récupération »
Commandes UNIX
Commandes systeme $ uname –a # display linux system information $ uname –r # display kernel release information $ uptime # show how long system running + load $ hostname # show system host name $ hostname -i # display the IP address of the host $ last reboot # show system reboot history $ date # show the current date and time $ cal # show this month calendar $ w # display who is online $ whoami # who you are logged in as $ finger user # display information about user $ lsb_release -d # display ubuntu version Terminal related $ reset # Reset the terminal if display fucks $ stty insane # if previous doesn't work Hardware related $ dmesg # detected hardware and boot messages $ cat /proc/cpuinfo # CPU model $ cat /proc/meminfo # hardware memory $ cat /proc/interrupts # lists the number of interrupts per CPU per I/O device $ lshw # displays information on hardware configuration of the system $ lsblk # displays block device related information in Linux $ free -m # used and free memory (-m for MB) $ lspci -tv # show PCI devices $ lspci -nnk | egrep -iA3 "VGA" # display graphic driver information $ lsusb -tv # show USB devices $ lshal # show a list of all devices with their properties $ dmidecode # show hardware info from the BIOS $ hdparm -i /dev/sda -show info about disk sda $ hdparm -tT /dev/sda # do a read speed test on disk sda $ badblocks -s /dev/sda # test for unreadable blocks on disk sda Statistics and Analyze $ top # display and update the top cpu processes $ mpstat 1 # display processors related statistics $ vmstat 2 # display virtual memory statistics $ iostat 2 # display I/O statistics (2sec Intervals) $ tail -n 500 /var/log/syslog # last 10 kernel/syslog messages $ tcpdump -i eth1 # capture all packets flows on interface eth1 $ tcpdump -i eth0 'port 80' # monitor all traffic on port 80 ( HTTP ) $ lsof # list all open files belonging to all active processes $ lsof -u testuser # list files opened by specific user $ free –m # show amount of RAM $ watch df –h # watch changeable data continuously Utilisateurs $ id # show the active user id with login and group $ last # show last logins on the system $ who # show who is logged on the system $ groupadd admin # add group "admin" (force add existing group) $ useradd -c "Joe Smith" -g admin -m joe # Create user "joe" and add to group "admin" $ userdel joe # delete user joe (force,file removal) $ adduser joe # add user "joe" $ usermod # modify user information File Commands $ gpg -c file # encrypt file $ gpg file. »
Gestion des utilisateurs
Configuration des utilisateurs La conf par défaut est dispo dans le fichier /etc/default/useradd $ sudo addgroup <nom_groupe> # Creation d'un groupe $ sudo useradd --passwd --gid GROUPE --groups GROUPE1[,GROUPE2,...] <identifiant> $ sudo adduser --ingroup user <identifiant> # Créer un nouvel utilisateur dans le groupe user $ sudo adduser <identifiant> <nom_groupe> # Ajouter un utilisateur existant à un groupe existant /!\ adduser est une commande interactive plus puissante que useradd (qu’elle appelle d’ailleurs) »
Git
Commandes $ git checkout -b nouvelle_branche # créee une nouvelle branche à partir de la branche actuelle $ git push <remote> <remote>/<old_name>:refs/heads/<new_name> :<old_name> # Renommer une branche distante $ git revert HEAD~3..HEAD # Créée 3 commits annulant les modifications des 3 derniers commits $ git branch -d branche_a_supprimer # suppression branche en local $ git push origin :branche_a_supprimer # suppression tag à distance $ git push origin --delete branche_a_supprimer # suppression tag à distance (alternative) $ git tag -d tag_a_supprimer # suppression tag en local $ git push origin :tag_a_supprimer # suppression tag à distance $ git push origin --delete tag_a_supprimer # suppression tag à distance (alternative) Submodules # Déclarer le sous-module et le récupérer $ git submodule add <url_depot> <submodule_path> $ git submodule init $ git submodule update # Récupération des upgrades $ cd <submodule_path> $ git checkout master $ git pull # Pousser les modifications faites sur le submodule $ cd . »
Hugo memento
Création d’un nouveau site ‘quickstart’ Création du répertoire et de la structure $ hugo new site quickstart Ajout d’un thème $ cd quickstart $ git init $ git submodule add https://github.com/budparr/gohugo-theme-ananke.get themes/ananke Configuration du thème $ echo 'theme = "ananke"' >> config.toml Add content $ hugo new posts/my-first-post.md Lancement du serveur $ hugo server -D Compilation $ hugo /!\ hugo n’efface pas le répertoire public/ avant compilation. »
Installation/Maintenance serveur
Mise à jour systeme $ sudo apt-get update $ sudo apt-get dist-upgrade $ sudo apt-get upgrade Si lors d’un apt-get update, vous avez un message du type : W: Aucune clé publique n’est disponible pour la/les clé(s) suivante(s) : il suffit de lancer les commandes suivantes : $ gpg --keyserver pgp.mit.edu --recv-keys <PUBKEY> $ gpg --armor --export <PUBKEY> | apt-key add - ou $ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <PUBKEY> installation fail2ban http://doc. »
PostgreSQL - Requetes
Liste des tables SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'; »
Programmation Shell
Ajouter l’autocompletion aux parametres d’un script $ complete -W "mot1 mot2 mot3" script # Ajoute une liste finie de mots # A ajouter au .bashrc Voir Manual Bash Substitution des variables Instruction Signification ${variable} la variable. ${variable:-mot} la variable si elle existe sinon par le mot. ${variable:=mot} la variable si elle existe sinon par mot qui devient la valeur associée à variable. »