$ docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
[...]
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
Commandes principales
Lister les conteneurs
conteneurs actifs
$ docker ps
conteneur ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3dbec964fa3a nginx:latest "/docker-entrypoint.…" 7 minutes ago Up 7 minutes 80/tcp agitated_dubinsky
Tous les conteneurs
$ docker ps -a [--all]
conteneur ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3dbec964fa3a nginx:latest "/docker-entrypoint.…" 6 minutes ago Up 7 minutes 80/tcp agitated_dubinsky
882f5d50bdab nginx:latest "/docker-entrypoint.…" 13 minutes ago Exited (0) 12 minutes ago dreamy_yalow
[...]
Lancer un conteneur
$ docker run nginx:latest
Options
-d : lance le conteneur en arrière-plan (detached)
-ti : mode interactif (text interactive)
--rm : supprime le conteneur lorsqu'il est stoppé
--name : assigne un nom au conteneur
--hostname : modifie le hostname du système dans le conteneur
--dns : précise le serveur DNS à utiliser dans le conteneur
for color in {0..255}; do
tput setab $color
echo -n "$color "
done
tput sgr0
echo
~/.bashrc
Equivalence de couleurs
Couleur
Code
Black
0;30
Blue
0;34
Green
0;32
Cyan
0;36
Red
0;31
Purple
0;35
Brown
0;33
Light Gray
0;37
Dark Gray
1;30
Light Blue
1;34
Light Green
1;32
Light Cyan
1;36
Light Red
1;31
Light Purple
1;35
Yellow
1;33
White
1;37
Eléments basiques
Code
Elément affiché
\a
Echappement
\d
Date (Sun Jun 20)
\e
Caractère 'Bell'
\h
Nom d'hôte (hostname)
\H
Nom d'hôte complet (hostname.domain.tld)
\j
Nombre de process lancés par le shell
\l
Nom du terminal
\n
Retour à la ligne
\r
Retour chariot
\u
Nom d'utilisateur
\v
Version de Bash
\w
Répertoire courant
\W
Chemin complet du répertoire courant
!
Numéro d'historique de la commande en cours
Exemples
Couleur du prompt en rouge
PS1='\[\033[31m\][\u@\h \W]\$\[\033[0m\] '
Couleur du prompt en bleu
PS1='\[\033[34m\][\u@\h \W]\$\[\033[0m\] '
Bashrc
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
####################
# SHELL OPTS
###############
#PS1='[\u@\h \W]\$ '
PS1='\[\033[34m\][\u@\h \w]\$\[\033[0m\] '
####################
# ENV
###############
# Editor
export EDITOR=vim
####################
# ALIAS
###############
# Colorization of outputs
alias diff='diff --color=auto'
alias grep='grep --color=auto'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias ls='ls --color=auto'
alias dir='dir --color=auto'
alias vdir='vdir --color=auto'
alias ip='ip --color=auto'
alias dmesg='dmesg --color=always'
# Commands alias
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
alias cls='clear'
alias vi='vim'
# Tricks & Useful aliases
alias cd..='cd ..'
alias env='env | sort'
# -> if the second argument is an alias, it will get expanded prior to passing to sudo
alias sudo='sudo '
alias keygen='keygen -C "$(whoami)@$(uname -n)-$(date -I)"'
# cd / && umount /mnt/sdx1_crypt && cryptsetup luksClose sdx1_crypt
dimanche 06 mai 2018
:: Git ::
Introduction
Fichiers de configuration
Git utilise une série de fichiers de configuration pour déterminer son comportement. Les emplacements sont lus dans un ordre précis et les valeurs lues en dernier écrasent les précédentes ("C'est le dernier qui parle qui a raison"). Vous pouvez positionner ces valeurs manuellement en éditant ces fichiers, mais je vous recommande d'utiliser la commande git config, ne serait-ce que pour éviter des erreurs de syntaxe.
/etc/gitconfig
Contient des valeurs pour tous les utilisateurs du système et tous leurs dépôts. Pour lire et modifier ce fichier, utiliser l'option --system avec git config.
$ git config --system [...]
~/.gitconfig
Spécifique à chaque utilisateur. Pour lire et modifier ce fichier, utiliser l'option --global.
$ git config --global [...]
.git/config
Le dernier emplacement lu par git est le fichier de configuration du dépôt en cours d'utilisation. Ces valeurs sont spécifiques à un unique dépôt. Pour lire et modifier ce fichier, utiliser l'option --local.
$ git config --local [...]
git-config
Pour modifier le comportement de git, il est nécessaire de spécifier certains paramètres de configuration à l'aide de la commande git-config.
Synopsis
$ git config [<file-option>] [type] [--show-origin] [-z|--null] name [value [value_regex]]
$ git config [<file-option>] [type] --add name value
$ git config [<file-option>] [type] --replace-all name value [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] --get name [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] --get-all name [value_regex]
$ git config [<file-option>] [type] [--show-origin] [-z|--null] [--name-only] --get-regexp name_regex [value_regex]
$ git config [<file-option>] [type] [-z|--null] --get-urlmatch name URL
$ git config [<file-option>] --unset name [value_regex]
$ git config [<file-option>] --unset-all name [value_regex]
$ git config [<file-option>] --rename-section old_name new_name
$ git config [<file-option>] --remove-section name
$ git config [<file-option>] [--show-origin] [-z|--null] [--name-only] -l | --list
$ git config [<file-option>] --get-color name [default]
$ git config [<file-option>] --get-colorbool name [stdout-is-tty]
$ git config [<file-option>] -e | --edit
Paramètres de configuration
Identité
Note importante : ces informations sont utilisées par Git de manière indélébile (on ne peut changer l'auteur d'un commit après-coup, ni son adresse email).
Certains fichiers n'ayant pas besoin d'être synchronisés (fichiers temporaires, fichiers de swap, répertoire de sessions, etc.), on crée un fichier .gitignore contenant la liste des fichiers et répertoires à ignorer.
$ vi .gitignore
Contenu de .gitignore :
# Commentaire
# Ignorer les fichiers journaux
logs/
# Ignorer les fichiers temporaires
tmp/
# Ignorer les fichiers en cours d'edition
*.swp
...
Dans le cas où on ne veut plus synchroniser des fichiers déjà commités, ni avoir un retour lors d'un git status, il est préférable de réindexer l'ensemble des fichiers à synchroniser.
Pour cela, le moyen radical est de supprimer l'index existant, rajouter les fichiers puis faire un commit.
Attention : penser à commiter les dernieres modifications de code avant de lancer les commandes ci-dessous
$ git rm -r --cached
$ git add .
$ git commit -m "Suppression de tous les fichiers de l'index puis re-ajout pour bonne prise en compte du fichier .gitignore"
Vérification
$ git status
Sur la branche master
rien à valider, la copie de travail est propre
Historique des commits
$ git log
Création d'un dépôt distant
Sur le serveur distant
$ cd /opt/git
$ mkdir projet.git
$ cd projet.git/
$ git --bare init
Dépôt Git vide initialisé dans /opt/git/projet.git/
Sur le poste hébergeant le dépôt local
$ cd projet
$ git init
$ git add .
$ git commit -m "Mon premier commit"
$ git remote add nom_depot user@serveur:/opt/git/projet.git
$ git push nom_depot master
| First Header | Second Header | Third Header |
| :------------ | :-----------: | -------------------: |
| : Left align | : centered : | Right align : |
| First row | **Bold** | Very long data entry |
| Second row | Cell that spans across two columns ||
[Table caption, also works as a reference][section-mmd-tables-table1]
Critic
What
Syntax
{--a delete. --} a delete.
{-- remove --}
{++an add. ++}
{++ add++}
swap {~~from~>to~~}
{\~\~\from\~>to\~\~}
{==a highlight==}
{\=\=highlight\=\=}
Comment, which you can't see{>>What is it a test of?<<}.