xzz@carnetderoot.net"La simplicité est la sophistication suprême" - Léonard De Vinci
samedi 14 février 2026
:: Nextcloud en ligne de commande ::
Commandes occ
Rappel
Les commandes occ sont des commandes php et doivent donc être lancées via php.
D'autre part, elles doivent être lancées avec les droits de l'utilisateur propriétaire du répertoire Nextcloud (ici 'www-data').
Par exemple, pour lister les commandes occ disponibles :
# sudo -u www-data /usr/bin/php occ list
[...]
Available commands:
check check dependencies of the server environment
completion Dump the shell completion script
help Display help for a command
list List commands
setupchecks Run setup checks and output the results
status show some status information
upgrade run upgrade routines after installation of a new release. The release has to be installed before.
activity
activity:send-mails Sends the activity notification mails
admin-delegation
admin-delegation:add add setting delegation to a group
admin-delegation:remove remove settings delegation from a group
[...]
Maintenance du système
Vérification des mises à jour
# sudo -u www-data php occ update:check
Nextcloud 32.0.6 is available. Get more information on how to update at https://docs.nextcloud.com/server/32/admin_manual/maintenance/upgrade.html.
Update for calendar to version 6.2.0 is available.
Update for contacts to version 8.3.2 is available.
Update for cookbook to version 0.11.6 is available.
Update for files_automatedtagging to version 3.0.3 is available.
Update for groupfolders to version 20.1.10 is available.
Update for mail to version 5.6.12 is available.
Update for spreed to version 22.0.9 is available.
8 updates available
Mise à jour des applications
Mise à jour d'une application spécifique
# sudo -u www-data php occ app:update calendar
calendar new version available: 6.2.0
calendar updated
Mise à jour de toutes les applications
# sudo -u www-data php occ app:update --all
spreed new version available: 22.0.9
spreed updated
contacts new version available: 8.3.2
contacts updated
cookbook new version available: 0.11.6
cookbook updated
groupfolders new version available: 20.1.10
groupfolders updated
files_automatedtagging new version available: 3.0.3
files_automatedtagging updated
quicknotes new version available: 0.8.40
quicknotes updated
mail new version available: 5.6.12
mail updated
notes new version available: 4.13.0
notes updated
Gestion des utilisateurs
Commandes disponibles
user
user:add adds an account
user:auth-tokens:add [user:add-app-password] Add app password for the named account
user:auth-tokens:delete Deletes an authentication token
user:auth-tokens:list List authentication tokens of an user
user:clear-avatar-cache clear avatar cache
user:delete deletes the specified user
user:disable disables the specified user
user:enable enables the specified user
user:info show user info
user:keys:verify Verify if the stored public key matches the stored private key
user:lastseen shows when the user was logged in last time
user:list list configured users
user:profile Read and modify user profile properties
user:report shows how many users have access
user:resetpassword Resets the password of the named user
user:setting Read and modify user settings
user:sync-account-data sync user backend data to accounts table for configured users
user:welcome Sends the welcome email
group
group:add Add a group
group:adduser add a user to a group
group:delete Remove a group
group:info Show information about a group
group:list list configured groups
group:removeuser remove a user from a group
:: Utilisation de la commande find sous Linux ::
Syntaxe générale
find <chemin> <options>
Utilisation
Options fréquemment utilisées
Option
Signification
-name
Recherche du nom de fichier suivant le motif indiqué
-iname
Semblable à '-name', mais sans différenciation de la casse
-type
Recherche selon le type de fichier
-size
Recherche par taille
-empty
Fichier vide (fichier normal ou répertoire)
-ctime, -mtime, -atime
Recherche par date de création, date de dernière modification ou date de dernier accès (n*24h)
-cmin, -mmin, -amin
Recherche par date de création, date de dernière modification ou date de dernier accès (n minutes)
-user, -group
Recherche par propriétaire ou par groupe
-perm
Recherche par permissions
Type de fichier (option '-type')
Type
Signification
b
Mode bloc
c
Mode caractère
d
Répertoire
p
Tube nommé
f
Fichier normal
l
Lien symbolique
s
Socket
Unité de taille (option '-size')
Unité
Signification
b
bloc de 512 octets (défaut)
c
octet
W
mot de deux octets
k
kilooctet (KiO)
M
mégaoctet (MiO)
G
gigaoctet (GiO)
Options combinées
Il est possible de combiner plusieurs options de recherche, ces éléments étant séparés par des opérateurs :
Opérateur
Signification
-and, -a
ET logique (permet d'utiliser plusieurs options)
-or, -o
OU logique (si la 1ère expression est vraie la suivante n'est pas exprimée)
-not, !
Exception
Note : En cas d'absence d'opérateurs, '-and' est appliqué par défaut
$ 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