$ curl https://raw.githubusercontent.com/GiovanniSCESP/BetterKali/refs/heads/main/install.sh | shIniciar kitty.
$ kittySalir de tmux y entrar a los temas de kitty.
$ exit$ kitten themesBuscar Catppuccin-Mocha con: /
Aplicar con: M
Podemos añadir un shortcut a kitty.
Añadimos el source de Tmux.
$ tmux$ tmux source ~/.config/tmux/tmux.confAplicamos los cambios de tmux con <prefix> I.
<prefix> = Ctrl + SPACE (Ctrl + b por defecto)
Reiniciar la terminal y el sistema.
Emulador de terminal personalizable y con utilidades.
Instalación:
$ sudo apt install kittyEjecutamos el emulador de terminal y entramos al selector de temas.
No podemos estar en tmux al ejecutar kitten themes
$ kitty$ kitten themesBuscar Catppuccin-Mocha con: /
Aplicar con: M
Multiplexor de terminal personalizable.
Instalación:
$ sudo apt install tmux$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpmCreamos el archivo: ~/.config/tmux/tmux.conf.
# Set true color and mouse support
set-option -sa terminal-overrides ",xterm*:Tc"
set -g mouse on
# Start windows and panes at 1, not 0
set -g base-index 1
set -g pane-base-index 1
set-window-option -g pane-base-index 1
set-option -g renumber-windows on
# Set prefix
unbind C-b
set -g prefix C-space
bind C-space send-prefix
# Open panes in current directory
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
set -g @plugin 'tmux-plugins/tpm'
set -g @plugin 'tmux-plugins/tmux-sensible'
set -g @plugin 'catppuccin/tmux'
run '~/.tmux/plugins/tpm/tpm'
$ tmux source ~/.config/tmux/tmux.confComandos:
Ver todas las sesiones.
$ tmux list-sessionsCerrar todas la sesiones o poner un índice.
$ tmux kill-session -aControles:
<prefix> = Ctrl + SPACE (Ctrl + b por defecto)
Nueva ventana: <prefix> c
Cambiar ventana: <prefix> 0,1... <prefix> n <prefix> p
Cerrar ventana: exit <prefix> &
Renombrar ventana: <prefix> ,
Mover Ventana: <prefix> .
Pane horizontal: <prefix> %
Pane vertical: <prefix> "
Cerrar pane: <prefix> x
Cambiar pane: <prefix> FLECHA <prefix> q
Sustituir pane <prefix> { <prefix> }
Zoom pane: <prefix> z
Pane a ventana: <prefix> !
Aplicamos los cambios anteriores de los plugins con <prefix> I
Añadimos tmux al .zshrc.
if [ "$TMUX" = "" ]; then
tmux;
fi$ curl -s https://ohmyposh.dev/install.sh | bash -s$ oh-my-posh font installConfigurar la fuente en Appearance.
Añadimos ohmyposh al .zshrc.
eval "$(oh-my-posh init zsh)"Reinciamos la terminal y vamos a la carpeta de configuración: ~/.config/ohmyposh.
Exportamos el archivo de configuración backup.
$ oh-my-posh config export --output ./base.jsonExportamos el archivo de configuración toml.
$ oh-my-posh config export --format toml --output ./zen.tomlModificamos la línea del .zshrc.
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"Modificamos el archivo de configuración creado zen.toml.
- Nota1: en
template = '>'ytemplate = '> 'el espacio es intencional. - Nota2: Cambiar el símbolo
>por (angle right), copiando el icon de nerdfonts.
console_title_template = '{{ .Shell }} in {{ .Folder }}'
version = 3
final_space = true
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'path'
style = 'plain'
background = 'transparent'
foreground = 'blue'
template = '{{ .Path }}'
[blocks.segments.properties]
style = 'full'
[[blocks.segments]]
type = 'git'
style = 'plain'
background = 'transparent'
foreground = '#6c6c6c'
template = ' {{ .HEAD }}'
[[blocks]]
type = 'rprompt'
overflow = 'hidden'
[[blocks.segments]]
type = 'executiontime'
style = 'plain'
background = 'transparent'
foreground = 'yellow'
template = '{{ div .Ms 1000 }}s'
[blocks.segments.properties]
threshold = 5000
[[blocks]]
type = 'prompt'
alignment = 'left'
newline = true
[[blocks.segments]]
type = 'text'
style = 'plain'
foreground_templates = [
"{{if gt .Code 0}}red{{end}}",
"{{if eq .Code 0}}magenta{{end}}",
]
background = 'transparent'
foreground = 'magenta'
template = '>'
[transient_prompt]
foreground_templates = [
"{{if gt .Code 0}}red{{end}}",
"{{if eq .Code 0}}magenta{{end}}",
]
background = 'transparent'
foreground = 'magenta'
template = '> '$ curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | shAñadimos Zoxide al .zshrc.
eval "$(zoxide init --cmd cd zsh)"Comandos adicionales:
$ zoxide edit$ sudo apt install fzfAñadimos fzf al .zshrc.
source <(fzf --zsh)Ctrl + R: Abre una ventana de buscador del historial, con enter escribe el comando en la terminal.Ctrl + T: Abre una ventana de buscador de archivos, con enter escribe la ruta.Ctrl + C: Abre una ventana de buscador de directorios, con enter hace un cd a la ruta.
Ahora podemos hacer uso del comando de Zoxide cdi para un menú interactivo de búsquedas frecuentes.
$ sudo apt install batAñadimos los alias al .zshrc.
alias cat='batcat'
alias catn='/bin/cat'
alias catnl='batcat --paging=never'
alias fzfb='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become(batcat {+})"'
alias fzfe='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --bind "enter:become(nano {}),ctrl-v:become(vim {}),ctrl-c:become(code {}),ctrl-z:become(zed {}),ctrl-e:become(emacs {})"'
alias cdf='cd $(find . -type d -print | fzf --tmux center)'
function fzfc() {
fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become($1 {+})"
}cat: Se ejecuta batcat en su lugar.catn: Se ejecuta el /bin/cat normal.catnl: Se ejecuta batcat sin la función more.fzfb: Buscador de archivos, abre el contenido con batcat.fzfe: Buscador de archivos para edición abre el contenido en un editor:ENTER: nanoCtrl + E: emacsCtrl + Z: zedCtrl + C: codeCtrl + V: vim
fzfc: Buscador de archivos, ejecuta el comando que se escriba al archivo seleccionado:- E.g.
fzfc code
- E.g.
$ sudo apt install fd-findAñadimos los alias al .zshrc.
alias fd='fdfind'Podemos juntarlo con fzf.
$ fd passwd /etc | fzfb$ sudo apt install pyenv$ pyenv install 3.11$ pyenv local 3.11$ sudo ~/.pyenv/versions/3.11.11/bin/python -m venv /opt/pwncat$ sudo /opt/pwncat/bin/pip install pwncat-cs$ sudo ln -s /opt/pwncat/bin/pwncat-cs /usr/local/binhttps://pwncat.readthedocs.io/en/latest/
$ sudo apt install xclip#!/bin/bash
# Used:
# nmap -p- --open -T5 -v -n ip -oG allPorts
# Extract nmap information
# Run as:
# extractPorts allPorts
function extractPorts(){
# say how to usage
if [ -z "$1" ]; then
echo "Usage: extractPorts <filename>"
return 1
fi
# Say file not found
if [ ! -f "$1" ]; then
echo "File $1 not found"
return 1
fi
#if this not found correctly, you can delete it, from "if" to "fi".
if ! grep -qE '^[^#].*/open/' "$1"; then
echo "Format Invalid: Use -oG <file>, in nmap for a correct format."
return 1
fi
ports="$(cat $1 | grep -oP '\d{1,5}/open' | awk '{print $1}' FS='/' | xargs | tr ' ' ',')";
ip_address="$(cat $1 | grep -oP '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' | sort -u | head -n 1)"
echo -e "\n[*] Extracting information...\n" > extractPorts.tmp
echo -e "\t[*] IP Address: $ip_address" >> extractPorts.tmp
echo -e "\t[*] Open ports: $ports\n" >> extractPorts.tmp
echo $ports | tr -d '\n' | xclip -selection clipboard
echo -e "[*] Ports copied to clipboard\n" >> extractPorts.tmp
cat extractPorts.tmp; rm extractPorts.tmp
}
extractPorts "$1"Añadirlo a una ruta del $PATH E.g. /usr/local/bin/extractPorts y darle permisos de ejecución con chmod +x.
Añadimos los alias al .zshrc.
alias mkt='mkdir {nmap,content,exploits,scripts}'Archivo -zshrc completo.
if [ "$TMUX" = "" ]; then
tmux;
fi
eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/zen.toml)"
eval "$(zoxide init --cmd cd zsh)"
source <(fzf --zsh)
eval $(thefuck --alias)
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
# custom aliases
alias cat='batcat'
alias catn='/bin/cat'
alias catnl='batcat --paging=never'
alias fzfb='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become(batcat {+})"'
alias fzfe='fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --bind "enter:become(nano {}),ctrl-v:become(vim {}),ctrl-c:become(code {}),ctrl-z:become(zed {}),ctrl-e:become(emacs {})"'
alias cdf='cd $(find . -type d -print | fzf --tmux center)'
alias fd='fdfind'
alias mkt='mkdir {nmap,content,exploits,scripts}'
alias ls='eza --icons'
alias l='ls -F'
alias lsn='/bin/ls'
function fzfc() {
fzf --preview "batcat --color=always --style=numbers --line-range=:500 {}" --multi --bind "enter:become($1 {+})"
}
function y() {
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
yazi "$@" -- cwd-file="$tmp"
IFS= read -r -d '' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd - - "$cwd"
rm -f -- "$tmp"
}
function zle_fuck_tmux() {
tmux send-keys "fuck" C-m
}
zle -N zle_fuck_tmux
bindkey '^F' zle_fuck_tmux
fastfetchEn las nuevas versiones de kali puede dar un error al autocompletar luego de un upgrade.
https://forums.kali.org/t/bug-in-new-kali-upgrade/6423
Se puede solucionar con:
$ sudo activate-global-python-argcomplete