5.7 KiB
Ligne de commande
Je ne connais pas WSL. Mais voici ce que j'attends d'une ligne de commande correctement configurée.
-
Prompt avec nom de branches + modifications en cours
Libre à chacun de choisir s'il souhaite quelque chose de léger ou non.
-
Autocomplétion Git
-
Quelques alias Git (lol, st, co...)
Ceux-là, ceux de "Oh my zsh", peu importe.
[alias] st = status co = checkout lol = log --oneline --decorate --graph lola = log --oneline --decorate --graph --all amend = commit --amend --no-edit last = log -1 HEAD inprogress = branch --no-merged dev changelog = log --format=%s --no-merges --reverse
-
Alias gti=git ^^
-
z/autojump/...
N'importe quelle commande qui vous permet de sauter dans un projet sans chercher son chemin.
-
jenv/fnm|nvm
C'est à dire un moyen d'avoir un environnement "souple" et non pas s'appuyer sur l'unique version globale.
-
Un minimum de configuration/connaissance Vim [On en reparle.]
-
Connaître des raccourcis clavier
Raccourcis clavier Unix
Commande | Effet |
---|---|
Ctrl + r |
Recherche dans les commandes précédentes |
Ctrl + a |
Début de ligne |
Ctrl + e |
Fin de ligne |
Ctrl + k |
Supprime jusqu'à la fin de la ligne |
Ctrl + w |
Supprime le "mot" avant le curseur |
Ctrl + y |
Colle le texte supprimé avec les 2 commandes précédentes |
Ctrl + d |
Quitte le shell en cours (utile pour sortir d'une session ssh) |
Modifier un fichier
vim
, nano
ou même ed
pour intervenir sur les serveurs sans UI.
L'intérêt de Vim, c'est que les connaissances sont transférables dans less et dans git.
Configuration
Dans le fichier ~/.vimrc
set number " Show current line number
set relativenumber " Show relative line numbers
Ce qui donne quelque chose comme ça :
4 # Formation pour l'AMSOM
3
2 Dates : 5, 6, 7, 8 Janvier 2020
1
5 ## Thèmes
1
2 - Environnement et outils du développeur Web
3 - Git & Gitlab
Navigation
Commande | Effet |
---|---|
gg |
Aller au début du fichier |
Shift + g |
Aller à la fin du fichier |
:<line-number> |
Se rendre à un numéro de ligne |
:<relative-number> |
Se rendre à un numéro de ligne relatif |
/<pattern> |
Recherche du pattern |
n |
Prochaine occurence du pattern |
:q |
Quitter |
Edition
Attention aux modes !
Avant de taper du texte, pensez à passer en mode "insertion" via i
et avant d'utiliser les commandes pensez à en sortir via esc
Commande | Effet |
---|---|
:wq |
Sauvegarder et quitter |
:m<relative-number> |
Déplace la ligne courante sous la ligne citée |
dd |
Supprime la ligne en cours (et copie) |
d10 |
Supprime 10 lignes |
u |
Undo |
ciw |
Supprime le mot (w) en cours et passe en mode insertion (peut-être dérivé en ci( par exemple) |
:%s/Git/Kit |
Remplace toutes les occurences de Git par Kit |
Le copier-coller dans Vim est un art que je ne maîtrise pas, ci-dessous les deux commandes de bases.
Commande | Effet |
---|---|
yy |
Copie la ligne en cours |
p |
Colle la copie |
Les outils Unix
Lire un fichier
less <file>
Contrairement à cat
permet la navigation dans le fichier. Les commandes sont les mêmes que pour vim
.
Chercher dans un fichier
grep MyException logs/error.log
Afficher les dernières lignes d'un fichier
tail logs/error.log
En mode "watch" avec une vue élargie
tail -f -n 20 logs/access.log
Extraire des données
sed
est une commande qui n'est pas évidente, mais il faut l'avoir en tête et ne pas hésitez à "googler" son usage au besoin.
Combinaisons via |
Avec le fichier fake.log
suivant
ezorihzeoh numcompte : 12345
oeihroeih reoirhoeirh oiehro ziehrozeflksnlsdb
eoirhedcdaz numcompte : 38787
oeihoe oeirh oeihr oeir oihe
zepzplcns numcompte : 12345
eeropijpzejk zeorj zepo rzef ozerh z
eoiheola numcompte : 38787
sqldkfhzohsdohzeorih
eorihonenc numcompte : 98765
grep numcompte fake.log | sed -E 's/.*numcompte : ([0-9]+).*/\1/' | sort | uniq
Donne
12345
38787
98765
Pour aller plus loin
- tmux
Personnellement, je n'en suis pas encore là, mais c'est très souvent cité comme "must-have".