« Zsh » : différence entre les versions
De Banane Atomic
Aller à la navigationAller à la recherche
Ligne 197 : | Ligne 197 : | ||
# all aliases which contain git | # all aliases which contain git | ||
alias-finder -l git | alias-finder -l git | ||
</kode> | </kode> | ||
Ligne 276 : | Ligne 241 : | ||
|- | |- | ||
| hgrep || fc -El 0 <nowiki>|</nowiki> grep || recherche dans l'historique des commandes | | hgrep || fc -El 0 <nowiki>|</nowiki> grep || recherche dans l'historique des commandes | ||
|} | |||
=== [https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins#debian debian - alias apt] === | |||
{| class="wikitable wtp wtmono1 wtmono2" | |||
|- | |||
| adg || sudo apt-get update && sudo apt-get upgrade | |||
|- | |||
| ai || sudo apt-get install | |||
|- | |||
| ar || sudo apt-get remove | |||
|- | |||
| apt-list-packages || liste les packages installés par taille | |||
|- | |||
| apt-history || historique des packages installés, màj, supprimés | |||
|} | |} | ||
Ligne 301 : | Ligne 280 : | ||
|} | |} | ||
=== [https://github.com/ | === [https://github.com/ohmyzsh/ohmyzsh/tree/master/plugins/rsync rsync] === | ||
{| class="wikitable wtp | {| class="wikitable wtp wtmono2" | ||
! 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 | ||
|} | |} | ||
=== [https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins#systemd systemd] === | |||
<kode lang=bash> | |||
# Alias sc-[cmd] → systemctl [cmd] | |||
sc-status nginx → systemctl status nginx | |||
sc-start nginx → sudo systemctl status nginx | |||
</kode> | |||
=== [https://github.com/mfaerevaag/wd wd - Warp Directory] === | |||
<kode lang=bash> | |||
# 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 | |||
</kode> | |||
== Erreurs == | == Erreurs == | ||
=== Après l'autocomplétion, 2 caractères restent affichés === | === Après l'autocomplétion, 2 caractères restent affichés === | ||
Définir une [[Archlinux_installation#.2Fetc.2Flocale.gen|locale]] | Définir une [[Archlinux_installation#.2Fetc.2Flocale.gen|locale]] |
Version du 19 juillet 2020 à 20:03
Liens
Installation
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 |
Configuration
~/.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 |
Startup Files
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 |
History
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 |
OH MY ZSHELL!
# 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/
|
Thèmes
- 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
|
PROMPT
~/.zshrc |
# 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 |
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 |
Plugins
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. |
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. |
alias-finder
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 |
chucknorris
|
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 |
debian - alias apt
adg | sudo apt-get update && sudo apt-get upgrade |
ai | sudo apt-get install |
ar | sudo apt-get remove |
apt-list-packages | liste les packages installés par taille |
apt-history | historique des packages installés, màj, supprimés |
git
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 |
rsync
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 |
systemd
# Alias sc-[cmd] → systemctl [cmd] sc-status nginx → systemctl status nginx sc-start nginx → sudo systemctl status nginx |
wd - Warp Directory
# 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