Personalizando Ubuntu Server 24LTS desde cero

Tras instalar Ubuntu server hay algunas acciones que hago para dejarlo a mi gusto. Estas son las acciones dewcritas de manera somera:

Desinstalar snap

Esto es de las primeras cosas. Bastante tengo con dpkg y apt. Alguna vez necesito AppImage, pero prefiero no depender de gestores de paquetes como flatpack o snap.

apt purge snapd

apt autoremove

Actualizar sistema

Siempre hay algún paquete que actualizar recién instalado un S. O. (y si no, al menos se comprueba)

apt update && apt upgrade

apt autoremove

apt autoclean

Instalar shell ZSH

Bash está muy bien, pero… ZSH está mejor 🙂

apt install zsh

chsh -s $(which zsh)

La primera vez que se usa empezará a preguntar sobre la configuración… No describo aquí las respuestas pues van a gusto del consumidor y siempre se pueden modificar más a delante.

Instalar el framework OH My ZSH! para hacer zsh aún más cómodo en su manejo y configuración. Esto lo tienen que hacer los usuarios por separado y cada uno tendrá su propia personalización.

sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

Editar el fichero .zshrc para añadir el plugin z (navegar con el comando ‘z’ a cualquier directorio tras un pequeño aprendizaje del propio zsh) y cambiar alguna opción más…

ZSH_THEME="clean"

[...]

source $HOME/.bash_aliases
plugins=(z zsh-autosuggestions)
<EOF>

Se descarga el plugin…

git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

Me gusta que salga el nombre de la máquina en el prompt porque si no me lío cuando tengo varios terminales contra distintos servidores. Editando el prompt en el tema correspondiente… (en este caso .oh-my-zsh/themes/clean.zsh-theme):

[...]

PROMPT='%{$fg[$NCOLOR]%}%B%m@%n%b%{$reset_color%}:%{$fg[blue]%}%B%c/%b%{$reset_color%}\ $(git_prompt_info)%(!.#.$) '

[...]

Personalizando VIM

Lo primero es asegurarse de que la versión improved de vi está instalada.

apt install vim

Se instala vim-plug para instalar cómodamente los plugin que se necesiten:

curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Al final de /etc/vim/vimrc se añade la siguiente configuración y plugins (más info en https://victorhckinthefreeworld.com/2020/02/19/como-instalar-plugins-de-vim/):

" INDENTATION
filetype plugin indent on
set autoindent
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
set smarttab

" INTERFACE
set relativenumber
set ruler
set hlsearch
let g:airline_powerline_fonts = 1 
let g:airline_section_z = "%p%% : \ue0a1:%l/%L: Col:%c"
set t_Co=256

" MISC
set history=5000

" UNDO with undotree plugin configurtion
if has("persistent_undo")
   let target_path = expand('~/.vim/undodir')

    " create the directory and any parent directories
    " if the location does not exist.
    if !isdirectory(target_path)
        call mkdir(target_path, "p", 0700)
    endif

    let &undodir=target_path
    set undofile
endif
nnoremap <F5> :UndotreeToggle<CR>
let g:undotree_WindowLayout = 2
let g:undotree_SplitWidth = 40
let g:undotree_SetFocusWhenToggle = 1

call plug#begin()
Plug 'vim-airline/vim-airline'
Plug 'vim-airline/vim-airline-themes'
Plug 'mbbill/undotree'
call plug#end()

autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab

Una vez salvado, volver a editar el mismo fichero y ejecutar dentreo del vi:

:PlugInstall