You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

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.

    autojump

  • 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

Pour en savoir plus

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".