Juega un poco con tu intérprete de comandos y te sorprenderás de lo cómodo que te encuentras en ella y lo productivo que puedes llegar a ser, Anawim.
Z shell es un potente y muy popular shell o intérprete de comandos con muchas características adicionales y compatibilidad con un buen número de complementos y temas. .zshrc es el archivo de configuración utilizado por zsh.
Algunas de estas características son las siguientes: Si deseas cambiar de directorio, no es necesario ingresar el comando cd (cd automático), es decir, escribe Documentos en lugar de cd Documentos y tampoco es necesario escribir los nombres completos de las carpetas, por ejemplo, ls Dro/do/Ba<Tab> se interpreta correctamente como Dropbox/docs/Basic. tree -<Tab> sugiere una lista de opciones para la orden tree, con descripciones breves, ls **/Linux.md realiza una búsqueda recursiva y devuelve Dropbox/docs/Linux.md
sh -c "$ (curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"_
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
Añade este complemento o plugin a la lista de complementos para que Oh My Zsh lo cargue, nvim ~/.zshrc: plugins = (zsh-autosuggestions).
De ahora en adelante, mientras escribes un comando, Zsh te hará sugerencias. Si la sugerencia es lo que estabas buscando, simplemente presione la tecla → (flecha hacia la derecha) para aceptarla.
zsh-syntax-highlighting. Proporciona coloreado sintáctico para la shell zsh..
Instalación con un gestor de plugins como Oh-my-zsh. Clona su repositorio…
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
… y activa el plugin en el archivo de configuración de Zsh ~/.zshrc:
plugins=( [plugins...] zsh-syntax-highlighting)
Busca en el historial. Por lo general, es posible que quieras usar el comando history o algunas variación, por ejemplo, history | grep ssh, history | less, etc
Si presionas la tecla ↑, puede buscar cualquier orden que hayas usado recientemente. Además, si tecleas un comando, por ejemplo, grep, mkdir o ls y, a continuación, presionas la tecla ↑, puedes buscar en el historial reciente donde usaste esta orden.
Navega súper rápido usando z. Realiza un seguimiento de los directorios más utilizados y visitados más recientemente. Te permite saltar rápidamente a ellos escribiendo z seguido de cualquier palabra que se encuentre en la ruta deseada, por ejemplo, z Dropbox(<Tab>) se convierte en /home/nmaximo7/Dropbox, o z content(<Tab>) se convierte en /home/nmaximo7/JustToThePoint/content/.
Powerlevel10k es un tema para Zsh que apuesta por la eficiencia, flexibilidad y sencillez. Instalación: (clonar el repositorio, Powerlevel10k, paso 1a). Paso 1b ‼️ Indica el nombre del tema a cargar en .zshrc.
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# MANPAGER es el programa que se utiliza para leer las páginas del manual y podemos configurarlo a nuestro capricho.
# Establecemos el archivo del historial de comandos y su tamaño
HISTFILE="$HOME/.zsh_history"
HISTSIZE=10000
SAVEHIST=1000000
setopt HIST_IGNORE_DUPS # No queremos que guarde comandos ya guardados previamente en el historial
HISTORY_IGNORE="(ls|cd|pwd|exit|history)" # Queremos ignorar y no guardar ciertas ordenes o comandos en el historial
export PATH=$HOME/bin:/usr/local/bin:$PATH
# Definiendo el editor de texto por defecto
export EDITOR=/usr/bin/nvim
export VISUAL=/usr/bin/nvim
# Ruta a tu instalación de oh-my-zsh.
export ZSH="/home/nmaximo7/.oh-my-zsh"
$PATH le dice al shell en qué directorios debe buscar los archivos ejecutables. Vamos a añadir ~/local/bin (un buen lugar para guardar tus shell scripts) y ~/AppImages (otro lugar típico donde guardar tus AppImages) a nuestro PATH.
if [ -d "$HOME/.local/bin" ] ;
# Si existe el directorio $HOME/.local/bin, añádelo al PATH de búsqueda de ejecutables.
then PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/AppImages" ] ;
# Si existe el directorio $HOME/AppImages, añádelo al PATH de búsqueda de ejecutables.
then PATH="$HOME/AppImages:$PATH"
fi
# Indica el nombre del tema a cargar, Powerlevel10k 1b ‼️
ZSH_THEME="powerlevel10k/powerlevel10k"
# Descomenta la siguiente línea para habilitar la autocorrección de comandos.
ENABLE_CORRECTION="true"
# chucknorris: complemento de Chuck Norris fortunes para oh-my-zsh. Añade dos "utilidades": chuck, chuck_cow
# colorize: realizará coloreado sintáctico según la extensión del archivo. Requisitos: pip install Pygments. Uso: ccat file, cless file
# emoji: Soporte para emoji Unicode. Uso: echo $emoji[mouse_face]
# z: rastrea tus directorios más utilizados y z te llevará a tus directorios favoritos. Uso: z myFolder, cd al directorio más frecuente que coincida con myFolder. z -l myFolder, enumera todos los directorios que coinciden con myFolder (por frecuencia de uso)
# web-search, este complemento añade alias para buscar con Google, Wiki, Bing, YouTube y otros buscadores online populares, por ejemplo, google, bing, y ddg.
plugins=(git zsh-autosuggestions chucknorris colorize emoji z zsh-syntax-highlighting web-search)
# Si tiene temas como Powerlevel10k, entonces necesita ejecutar el archivo de configuración de oh-my-zsh después de especificar el tema a cargar
source $ZSH/oh-my-zsh.sh
# .zsh_aliases es donde almacenaremos nuestros aliases.
source ~/.zsh_aliases
# gpg-agent es un demonio para administrar las claves secretas (privadas) independientemente de cualquier protocolo. Almacena las claves secretas de GPG en la memoria, por lo te evita tener que escribir las contraseñas de las claves cada vez que requieras su uso.
export GPG_TTY=$(tty)
# https://github.com/hkbakke/bash-insulter, Bash/Zsh insulter te insulta "aleatoriamente" cuando te equivocas escribiendo una orden en la consola: 1. git clone https://github.com/hkbakke/bash-insulter.git bash-insulter, 2. sudo cp bash-insulter/src/bash.command-not-found /etc/
if [ -f /etc/bash.command-not-found ]; then
. /etc/bash.command-not-found
fi
# Esto se añade automáticamente al configurar Powerlevel10k. To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
Después de editar este archivo de configuración, para aplicar los cambios que realices, debes iniciar una nueva instancia de shell o escribir: source ~/.zshrc. La siguiente vez, puedes utilizar el alias szsh.
Los alias son esencialmente atajos, una forma de evitar escribir o recordar una serie de comandos y/o opciones que usas con bastante frecuencia.
# Mis alias
# Edita el archivo de configuración de Zsh
alias ezsh="atom $HOME/.zshrc"
# Reload Zsh
alias reload='source ~/.zshrc'
# Imprime mi IP pública
alias myip='curl http://ipecho.net/plain; echo'
# Atom no funciona en mi Arch sin utilizar esta opción
alias atom='atom --no-sandbox'
# Imprime una cita, adagio o dicho
alias fortune='fortune ~/.config/myquotes/quotes'
alias ll='ls -alF'
# Reemplaza ls con exa
alias ls='exa --long --header --git'
# Replace cat con bat
alias cat='bat --style=plain'
Si desea obtener más información sobre cat, exa, fzf, youtube-dl y ripgrep, lee nuestro artículo Fantásticas herramientas de terminal: bat, fzf, exa, ripgrep, youtube-dl.
# df -h muestra el espacio en disco utilizado por los sistemas de archivos montados actualmente en un formato más amigable
alias df='df -h'
# free muestra la cantidad total de memoria libre y utilizada por el sistema en MB
alias free='free -m'
# Estos aliases permiten cambiar rápidamente entre bash y zsh
alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'"
alias tozsh="sudo chsh $USER -s /bin/zsh && echo 'Now log out.'"
# Uso: ytmp3 url. Descarga un vídeo YouTube al directorio ~/Music.
ytmp3() { cd ~/Music; youtube-dl --extract-audio --audio-format mp3 "$@"; }
# Edita el archivo de configuración de i3
alias ei3='atom ~/.config/i3/config'
# Lanza ferdi
alias ferdi='./AppImages/Ferdi-5.8.0.AppImage'
alias radio='curseradio'
# Visualización y edición rápida de ficheros utilizando el poder de búsqueda difusa fzf
alias preview="fzf --preview 'bat --style=numbers --color=always {}'"
searchEdit() { du -a ~/Dropbox/ ~/.config/ ~/.local/bin/ | awk '{print $2}' | fzf | xargs -r $EDITOR ; }
# Crea una carpeta y se posiciona en ella
mkcd() { mkdir -p "$@" && cd "$_"; }
# Busca en google rápidamente: googleit "What is the capital of France"
googleit() { xdg-open "http://google.com/search?q=$@"}
# Cálculos en la consola: calc "3*4"
calc() { bc -l <<< "$@" }
# Búsqueda de patrones en los ficheros de mi directorio de contenido de Hugo con ripgrep
myripgrep() { rg "$@" ~/JustToThePoint/content/}
# Búsqueda de patrones en los ficheros de mi directorio de contenido de Hugo con ripgrep y en Google. Uso: myripgrep "ripgrep"
mysearch() { rg "$@" ~/JustToThePoint/content/; xdg-open "http://google.com/search?q=$@"}
# Convierte el video (url especificada como parámetro) a mp3 y lo guarda en la carpeta Music.
ytmp3() { cd ~/Music; youtube-dl --extract-audio --audio-format mp3 "$@"; }
# Reproduce todos los archivos MP3 del directorio ~/Music
alias playmp3='cd ~/Music; nvlc *.mp3'
alias server="ssh -p '2222' 'yourUser@yourIpServer'"
# Aliases para xclip, un gestor de portapapeles en línea de comandos
alias copy='xclip -selection clipboard'
alias paste='xclip -selection clipboard -o'
fish es un shell o intérprete de línea de comandos interactivo, inteligente y fácil de usar.
neofetch
# Aliases
alias efish 'vim ~/.config/fish/config.fish'
alias evim 'vim ~/.vimrc'
alias cat 'bat'
alias rfish 'source ~/.config/fish/config.fish'
alias tobash="sudo chsh $USER -s /bin/bash && echo 'Now log out.'"
function fish_greeting
fortune | cowsay
end
# PROMPT: https://fishshell.com/docs/current/cmds/fish_prompt.html
function fish_prompt -d "Escribimos el prompt"
# Se muestra como USER@HOST /home/user/ >, con el directorio coloreado
# $USER y $hostname son variables definidas por fish, listas para usar
# que sustituyen a \`whoami\` y \`hostname\`
printf '%s@%s %s%s%s > ' $USER $hostname \
(set_color $fish_color_cwd) (prompt_pwd) (set_color normal)
end