Liens
|
sudo pacman -S zsh zsh-completions zsh-lovers zsh-syntax-highlighting
# zsh-completions: ajoute la completion pour des fonctions supplémentaires
# zsh-lovers: astuces pour zsh, accessibles via man zsh-lovers
# zsh-syntax-highlighting: coloration syntaxique de la ligne de commande lors de la frappe
# définir zsh comme shell par défaut pour l'utilisateur courant
chsh -s /bin/zsh
# se relogguer pour que le modification soit prise en compte
|
~/.zshrc
|
DEFAULT_USER=billy
|
~/.zshenv
|
# pour visudo
export EDITOR='nano'
# pour cron et yaourt
export VISUAL='nano'
# Afficher les pages de manuel en couleur grace à MOST.
export PAGER="most"
# PATH
export PATH=$PATH:~/.config/yarn/global/node_modules/.bin
|
Les fichiers suivants sont lus au lancement de zsh:
~/.zshenv |
variables d'environnement
|
~/.zprofile |
équivalent de zlogin, mais lu avant zshrc
|
~/.zshrc |
Run Commands
|
~/.zlogin |
lu au démarrage d'un shell de connexion, après zshrc
|
~/.zlogout |
lu à la sortie d'un shell de connexion
|
|
Recherche dans l'historique Ctrl + R |
|
# supprimer tout les lignes contenant password
LC_ALL=C sed -i '/password/d' $HISTFILE
# il faut relancer zsh pour vérifier le résultat
|
|
Un espace en premier caractère d'une ligne de commande permet d'exécuter la commande sans l'enregistrer dans l'historique. |
~/.zshrc
|
# don't store in history commands prefixed with a space (test with: history | tail)
setopt HIST_IGNORE_SPACE
|
Variable
|
Description
|
%M |
hostname
|
%m |
hostname until the first dot
|
%n |
username
|
%c |
current folder, ~ for $HOME
|
%# |
# if the shell is running with root (administrator) privileges, or else %
|
~/.zshrc
|
PROMPT='%c > '
RPROMPT='%n@%m'
# ajout de l'utilisateur et du nom de la machine hôte au PROMPT du thème robbyrussell si connexion ssh
if [[ -n $SSH_CONNECTION ]]; then
PROMPT="%n@%m ${PROMPT}"
fi
|
|
# copie du dépôt de OH-MY-ZSHELL
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
# remplacement du fichier .zshrc
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
# ou installation via un script
sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
|
Configuration
~/.zshrc
|
# thème
ZSH_THEME="robbyrussell"
# Modifier le prompt
#autoload -U colors && colors
#PROMPT="%{$fg_bold[blue]%}%~ %{$fg[white]%}➭%{$reset_color%} "
# oh-my-zsh
source $ZSH/oh-my-zsh.sh
# plugins (ils se trouvent dans ~/.oh-my-zsh/plugins/ et ~/.oh-my-zsh/custom/plugins/)
plugins=(colored-man-pages common-aliases extract git sudo systemd wd)
# zsh-syntax-highlighting, doit être sourcé en dernier
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
Au lieu de modifier le fichier ~/.zshrc, il est possible de créer des fichiers de configuration *.zsh dans le dossier ~/.oh-my-zsh/custom/
- ~/.oh-my-zsh/custom/aliases.zsh
- ~/.oh-my-zsh/custom/functions.zsh
- ~/.oh-my-zsh/custom/variables.zsh
|
- agnoster (installer powerline-fonts pour patcher la police)
- robbyrussell
Variable
|
Valeur
|
%M %m |
hostname, version normale et version courte
|
%n |
nom de l'utilisateur
|
%~ |
chemin avec $HOME remplacé par ~
|
$(git_prompt_info) |
~/.oh-my-zsh/lib/git.zsh
|
${ret_status} |
~/.oh-my-zsh/themes/robbyrussell.zsh-theme
local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ )"
|
Alias natifs
alias
|
commande
|
explication
|
fichier
|
... |
../.. |
|
~/.oh-my-zsh/lib/directories.zsh
|
.... |
../../.. |
|
~/.oh-my-zsh/lib/directories.zsh
|
md |
mkdir -p |
créé un dossier et les dossiers parents au besoin |
~/.oh-my-zsh/lib/directories.zsh
|
rd |
rmdir |
|
~/.oh-my-zsh/lib/directories.zsh
|
alias_value |
|
donne la valeur d'un alias |
~/.oh-my-zsh/lib/functions.zsh
|
_ |
sudo |
|
~/.oh-my-zsh/lib/misc.zsh
|
|
# rechercher dans quel fichier est définit un alias
zsh -ixc : 2>&1 | grep fd=find
# +~/.oh-my-zsh/plugins/common-aliases/common-aliases.plugin.zsh:37> alias 'fd=find . -type d -name'
|
Alias custom
~/.oh-my-zsh/custom/alias.zsh
Les alias custom ne fonctionnent pas dans les subshell car c'est bash qui est utilisé.
Il faut donc les définir dans bash aussi:
~/.bash_aliases
|
if [ -f ~/.oh-my-zsh/custom/alias.zsh ]; then
. ~/.oh-my-zsh/custom/alias.zsh
fi
|
alias-finder |
search alias for a specified command
|
archlinux |
ajoute des alias pour yay
|
colored-man-pages |
colore les pages man
|
command-not-found |
Si une commande n'est pas trouver, essaye de trouver le paquet pacman à installer pour cette commande. Installer le paquet pkgfile.
|
common-aliases |
ajoute des alias pour le commandes courantes.
|
copybuffer |
Ctrl-O to copy the current line in the terminal.
|
extract |
Permet de désarchiver tous les formats d'archive avec la commande extract.
|
fd |
Auto-completion pour fd.
|
git |
ajoute des alias pour git.
|
rsync |
ajoute des alias pour rsync.
|
sudo |
Appuyer 2 fois sur Esc pour ajouter sudo en début de ligne de commandes.
|
systemd |
ajoute des alias pour systemd.
|
Warp directory |
permet de changer de dossier vers des dossiers marqués.
|
Search alias for a specified command
|
alias-finder 'git commit -m'
# gcmsg='git commit -m'
# g=git
# all aliases which contain git
alias-finder -l git
|
|
- Installer fortune-mod et cowsay
- Ajouter chuck_cow à la fin de ~/.zshrc
|
common-aliases
alias
|
commande
|
explication
|
l |
ls -lFh |
-F ajoute un / à la fin des noms de dossiers
|
la |
ls -lAFh |
-A affiche tous sauf . et ..
|
lr |
ls -tRFh |
-R parcourt récursivement les dossiers
|
lt |
ls -ltFh |
trie par ordre antéchronologique de modification
|
ll |
ls -l
|
ldot |
ls -ld .* |
liste tous les fichiers et dossiers commençant par . sauf . et ..
|
lS |
ls -1FSsh |
liste par ordre décroissant de taille
|
lart |
ls -1Fcart |
liste par ordre chronologique de modification
|
lrt |
ls -1Fcrt |
liste par ordre chronologique de modification
|
zshrc |
$EDITOR ~/.zshrc |
|
sgrep |
grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} |
recherche récursivement du texte dans tous les fichiers
|
t |
tail -f |
afficher le contenu d'un fichier en temps réel
|
fd |
find . -type d -name |
|
ff |
find . -type f -name |
|
h |
history |
|
hgrep |
fc -El 0 | grep |
recherche dans l'historique des commandes
|
Alias
|
Commandes
|
adg |
sudo apt update && sudo apt upgrade
|
acs |
apt-cache search
|
ai |
sudo apt install
|
ar |
sudo apt remove
|
ap |
sudo apt purge
|
apt-list-packages |
liste les packages installés par taille
|
apt-history |
historique des packages installés, màj, supprimés
|
alias
|
commande
|
explication
|
g |
git |
|
gcam |
git commit -a -m |
|
ga |
git add |
|
gaa |
git add --all |
|
gst |
git status |
gs déjà utilisé pour GhostScript
|
gd |
git diff |
|
ggp |
git push origin $(current_branch) |
|
gba |
git branch -a |
|
Alias
|
Command
|
rsync-copy |
rsync -avz --progress -h
|
rsync-move |
rsync -avz --progress -h --remove-source-files
|
rsync-update |
rsync -avzu --progress -h
|
rsync-synchronize |
rsync -avzu --delete --progress -h
|
|
# Alias sc-[cmd] → systemctl [cmd]
sc-status nginx → systemctl status nginx
sc-start nginx → sudo systemctl status nginx
|
|
# lier un alias au dossier courant
wd add <alias>
# supprimer MonDossier de la liste
wd add/rm MonDossier
# se rendre à MonDossier depuis n'importe où
wd add MonDossier
wd list/show
|
Erreurs
Après l'autocomplétion, 2 caractères restent affichés
Définir une locale