Notes et Astuces
En guise d’introduction
Awk pour les fichiers csv
Exemple pour compter le nombre de valeurs uniques du quatrième champs d’un
fichier csv
, dont le séparateur est un ;
:
cat Customer.csv | awk -F ';' '{print $4}'| sort -u | wc -l
Awk pour docker
Pour afficher la liste des container en filtrant sur la commande exécutée:
docker ps -a | awk '$3 ~ /docker-php-entry/ '
Git
Lister les fichiers modifiés entre deux commits, ou deux branches (ici master
et develop
).
git diff-tree --no-commit-id --name-only -r master..develop
Ansible
J’ai eu du mal à trouver comment exécuter en local_action
une commande du
module shell. La solution: utiliser _raw_params
comme ci-dessous:
- name: Build frontend local_action: module: shell _raw_params: grunt build args: chdir: "{{ build_root_path }}/src/views/"
Hardware
Quand votre station d’accueil dell buggue, la solution est le reset de tous les périphériques usb:
find /sys/bus/usb/devices/*/authorized -exec sh -c 'echo 0 > ${0}; echo 1 > ${0}' {} \;
(la vrai solution reste de remplacer la station d’accueil par un hub usb)
Mysql
Quelques commandes en vrac, suffisamment explicites pour ne pas avoir à les commenter, à garder sous le coude:
SHOW FULL PROCESSLIST; SET GLOBAL general_log = 1; SHOW TABLE LIKE 'prefix%';
Composer
Après la résolution d’un conflit dans git, il peut arriver que vous ayez
manuellement modifier le contenu du fichier composer.lock
. Il est alors
nécessaire de mettre à jour les champs qui contiennent les champs de
contrôle:
composer update nothing
Visualiser correctement les journaux contenant des \n
tail -f oxideshop.log | sed 's/\\n/\ /g'
Configuration
Je ne suis pas un fanatique de la configuration à outrance des logiciels utilisables dans un terminal. J’essaie généralement de me contenter de la configuration par défaut, afin de ne pas être pris au dépourvu ensuite lorsque je dois utiliser ces mêmes logiciels sur un serveur distant, où ces personnalisations seront absentes.
Dernièrement j’ai fait une exception pour tmux
. Dans 90% des cas, lorsque
je découpe une fenêtre, je souhaite rester dans le même répertoire duquel
j’ai lancé la découpe. En revanche, lorsque j’ouvre une nouvelle fenêtre, je
souhaite retourner dans mon HOME
, ce qui est le comportement par
défault. C’est très pratique sur mon ordinateur personnel, et si je n’ai pas
cette fonctionnalité sur un serveur, je peux m’en passer aisément. J’ai donc
créé un fichier ~/.tmux.conf
avec la configuration suivante:
bind '"' split-window -c "#{pane_current_path}" bind % split-window -h -c "#{pane_current_path}"
Je n’utilise emacs
que sur mon ordinateur personnel. Pour me me connecter
à une base de données mariadb
(ou mysql
) en utilisant un autre port que
le port standard, ce qui arrive systématiquement en utilisant des base de
données hébergé dans des containers, j’ai dû ajouter la ligne suivante:
(setq sql-mysql-login-params (append sql-mysql-login-params '(port)))(with-eval-after-load "sql" (setq sql-mysql-login-params (append sql-mysql-login-params '(port))) )