Guia Linux 2.0
Table of Contents
- 1. Imprimir en la terminal con formato
- 2. Multimedia - Musica/Videos/Youtube
- 3. [TODO] Comandos Importantes
- 4. Manipular el Historial de comandos
- 5. [TODO] Comando awk
- 6. Utilidades Interesantes
- 7. [TODO] Errores de Manjaro
- 8. [TODO] Guia Linux Que hacer luego de Instalar Linux
- 9. Guia del Gestor de Archivos Ranger
- 10. Guia Linux Personalizar
- 11. Comando Sed (Manipular Texto)
1. Imprimir en la terminal con formato
- Se debe usar el comando echo como siempre, pero se le pasa el parámetro -en
- Funciona similar al printf() de C
echo -en "0 0 0 1\v2\v3\v4\r5 5 5 5\n"
2. Multimedia - Musica/Videos/Youtube
2.1. Bajar audios/videos de youtube
- El package youtube-dl nos sirve para descargar videos, musica, playlist y contenido de youtube
# descargamos el package sudo pacman -S youtube-dl # # Estos son algunos ejemplos, se puede variar utilizando todos los parámetros # # descargara el video/playlist/canción con una calidad normal youtube-dl unaUrlDeYoutube # Te lista los distintos formatos de video/audio para descargar youtube-dl -F unaurlyoutube # descarga solo el audio con la mejor calidad # e ignora los errores que tenga youtube-dl -f bestaudio -i unaurlDeYoutube # Si queremos descargar audios de una playlist podemos especificar # - a partir de cual queremos # - ó hasta cual queremos # - ó también cuales especificamente separados por coma youtube-dl -f bestaudio -i --playlist-start NUMBER youtube-dl -f bestaudio -i --playlist-end NUMBER youtube-dl -f bestaudio -i --playlist-items NUMBERS # descarga video/playlist/canción con la meta data # esto es autor, duración, titulo # - es muy útil para mostrar esa información en un reproductor de audio # e ignora los errores que tenga alguno de los videos al descargar # - fundamental para descargar todos excepto esos que tienen algún error youtube-dl -f bestaudio --add-metadata -i unaURLDeYoutube # supongamos que previamente usamos con -F entonces colocamos # el identificador de la calidad de audio que querramos # seguido del simbolo + # seguido del identificador de la calidad de video que queremos # descargará el audio y el video por separado y lo juntará youtube-dl -f 251+299 unaUrlDeYoutube
2.2. Reproducir música
- Con el package cmus podemos reproducir música desde la terminal
- Las listas de reproducción,album, canciones quedan guardados como un historial al momento de abrir nuevamente
- Carga las carpetas de música más rápido al no utilizar interfaz gráfica
Comando | Descripción |
---|---|
:add ~/rutaDePlaylist | Agregar una carpeta de archivos de audio |
:clear | Limpiar todo el buffer de reproducción |
:colorscheme nombreDelTheme | Cambia el tema/theme el aspecto visual del reproductor |
ENTER | Reproducir un tema |
x | Reproducir un tema |
c | Detener la reproducción |
TAB | Navegar entre los buffers (Album/Canciones) |
supr | Quitar un album/artista del buffer |
q | Salir del reproductor |
1 | Modo 1 |
2 | Modo 3 |
3 | Modo 4 |
4 | Modo 5 |
5 | Modo 6 |
+ | Aumentar el volumen del reproductor (no del sistema) |
- | Disminuir el volumen del reproductor (no del sistema) |
# descargamos sudo pacman -S cmus # ejecutamos cmus
2.3. Referencias Web
3. [TODO] Comandos Importantes
Comando | Descripcion |
---|---|
mhwd-kernel | |
ls -lt | Lista los archivos ordenado por el último archivo |
ls -ltr | r de reverse |
mhwd-kernel -li
3.1. Saber ultimo archivo descargado con el comando ls
4. Manipular el Historial de comandos
4.1. Comandos
Comando | Descripción |
---|---|
history -d unNumero | Elimina de historial ese número de comando |
history -c | Limpia el historial |
history | Imprime todo el historial |
4.2. Ejemplos
# listamos el historial para navegar con los atajos de vim history | less history | more # listamos los últimos 10 comandos history | tail # listamos los últimos 30 comandos history 30 # ejecutamos el comando del historial que tiene numerado con 5 !5 # ejecutamos el comando numero 101 del historial !101
6. Utilidades Interesantes
6.1. Crear animaciones de captura de pantalla
Algunos packages útiles:
- Con xrectsel se puede saber las posiciciones (x,y) el tamaño(width,height) de una parte de la pantalla
- Con byzanz-record se captura pantalla en formato gif mediante lineas de comando
Algunas páginas útiles:
- Con gfycat.com se puede subir animaciones gif, permite verlos como si fuese un reproductor de video.
# para saber el tamaño de una ventana sudo pacman -S xrectsel # para capturar la pantalla y generar un gif sudo pacman -S byzanz-record # byzanz-record --delay=5 --duration=10 --width=400 --height=400 --x=0 --y=80 test1.gif
# WINDOWS_SIZE=$(gdialog --title "Elegir ventana o tamanio" --yesno "Grabar una ventana o elegir tamanio?" 0 0) # if $WINDOWS_SIZE; then # notify-send "elegiste si" # else # notify-send "elegiste NO" # fi # Name TITLE=$(gdialog --title "TITLE?" --inputbox "Elija un titulo para la animación" 200 100 2>&1) # Time and date TIME=$(date +"%Y-%m-%d_%H%M%S") # Delay before starting DELAY=10 # Standard screencast folder FOLDER="$HOME/Pictures" # Default recording duration DEFAULT_DURATION=10 # Sound notification to let one know when recording is about to start (and ends) beep() { paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga & } # Custom recording duration as set by user DURATION=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1) # Duration and output file if [ $DURATION -gt 0 ]; then D=$DURATION else D=$DEFAULT_DURATION fi # Window geometry # No funciona... # XWININFO=$(xwininfo) # read X <<(awk -F: '/Absolute upper-left X/{print $2}' <<< "$XWININFO") # read Y <<(awk -F: '/Absolute upper-left Y/{print $2}' <<< "$XWININFO") # read W <<(awk -F: '/Width/{print $2}' <<< "$XWININFO") # read H <<(awk -F: '/Height/{print $2}' <<< "$XWININFO") # estaba probando pero me falta entenderlo bien (?) # MYWINDOW = xrectsel #W = MYWINDOW | awk -F '{print $1}' # Notify the user of recording time and delay notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds." #Actual recording sleep $DELAY beep byzanz-record -c --verbose --delay=0 --duration=$D --x=$X --y=$Y --width=$W --height=$H "$FOLDER/GIFrecord_$TIME.gif" beep # Notify the user of end of recording. notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$NAME_$TIME.gif"
6.2. Referencias Web
6.3. Calculadora con notación polaca inversa (rpn - reverse polish notation)
6.3.1. Conceptos
- El comando para ejecutar es dc es nativo de linux
- El orden de la pila se puede interpretar de derecha a izquierda, siendo el la derecha un valor que fue ingresado más reciente que el de la izquierda.
3 16 11 2 1. el 3 fue el primero en ingresar, 2. el 16 se ingresó después que el 3, 3. el 11 luego del 16 4. y el 2 fue el último valor ingresado 5. la pila quedaría así 2 11 16 3
3 2 11 2 + * / 1. Primero opera 11 2 + el resultado será 13, quedando la pila asi 3 2 13 * / 2. Segundo opera 2 13 * que resulta en 26, quedando la pila asi 3 26 / 3. Por ultimo opera 3 26 / que resulta en 0,11 aprox. 4. En la pila solo queda el resultado 0,11 no quedan mas valores por operar
Comando | Descripción |
---|---|
dc | Ejecuta la calculadora |
p | muestra el ultimo valor agregado en la pila (en la cima) |
f | lista los valores (en el orden que se agregaron) |
r | conmuta los ultimos 2 valores (swap) |
c | limpia la pila |
v | para obtener la raiz de un valor |
Algunos ejemplos con la notación infija y polaca inversa
Notación Infija | Notación Polaca inversa |
---|---|
(3+5)*10 | 3 5 + 10 * |
A+B*C | A B C * + |
A*B+C | A B * C + |
A*B+C*D | A B * C D * + |
(A+B) / (C-D) | A B + C D - / |
A*B / C | A B * C / |
6.3.2. Ejemplo 1
dc # hagamos 3 11 5 + - # si agregamos parentesis para entender el orden de operación # quedaría [3 (11 5 +) -] # # con la notación infija sería 3-(11+5) 3 # Pila: 3 11 # Pila: 3 11 5 # Pila: 3 11 5 # p, devuelve el último valor ingresado (el que está en la cima de la pila) # nuevos valores se apilan arriba, los ingresado al principio quedan debajo (serán los ultimos en operar) p # devuelve 5 + # 11 5 + es 16 p # devuelve 16 # f, devuelve un listado de los valores de la pila # estando en la cima el último valor ingresado(más reciente), y debajo los que se agregan al principio f # Pila: 3 16 - # 3 16 - es -13 p # devuelve -13 # Pila: -13 c # c, borra la pila, todos los valores que se hayan ingresado # Pila: Vacía, ya no está el -13
6.3.3. Ejemplo 2
dc # hagamos 3 11 5 + - # si le agregamos parentesis quedaría [3 (11 5 +) -] # # con notación infija sería 3-(11+5) 11 # Pila: 11 5 # Pila: 11 5 + # 11 5 + es 16 p # devuelve 16 # Pila: 16 3 # Pila: 16 3 r # Pila: 3 16 (conmuta los dos valores más arriba de la pila, los dos más recientes) - # 3 16 - es -13 f # Pila: -13
6.3.4. Ejemplo 3
dc # hagamos 2 3 11 + 5 - * # si agregamos parentesis para entender el orden sería {2 [(3 11 +) 5 -] *} # # con la notación infija sería: 2*[(3+11) - 5] 2 # Pila: 2 3 # Pila: 2 3 11 # Pila: 2 3 11 # f, devuelve los valores de la pila, # el que estás arriba es el más reciente (será uno de los operandos si ingreso un operador arimético) # el que está debajo fue uno de los primeros (será uno de los ultimos valores a operar) f # Pila: 2 3 11 + # 3 11 + es 14 f # Pila: 2 14 5 # Pila: 2 14 5 - # 14 5 - es 9 f # Pila: 2 9 p # devuelve 9 (porque es el más reciente, está en la cima de la pila) 2 # Pila: 2 9 * # 2 9 * es 18 f # devuelve solo 18, porque ya se operaron todos los valores p # también devuelve 18 porque fué el más reciente c # borramos la pila f # Pila: Vacia p # no devolvera valores, no hay
6.3.5. Ejemplo 4
dc # hagamos 9 5 3 + 2 4 ^ - + # si agregaramos parentesis para ver el orden sería {9 [(5 3 +) (2 4 ^) -] +} # # con la notación infija sería 9+[(5+3)-(2)^4] 9 # Pila: 9 5 # Pila: 9 5 3 # Pila: 9 5 3 + # 5 3 + que es 8 f # Pila: 9 8 2 # Pila: 9 8 2 4 # Pila: 9 8 2 4 ^ # 2 ^ 4 es 16 f # Pila: 9 8 16 p # devuelve 16 (el resultado más reciente) - # 8 16 - es -8 f # Pila: 9 -8 + # 9 (-8) - es 1 f # Pila: 1 (no quedan mas valores por operar, es el único) p # devuelve 1 (es el resultado más reciente)
6.3.6. Referencias Web
6.3.7. Ejemplos de ecuaciones con LaTeX y el comando dc
\begin{align*} \frac{3 + \sqrt{4- \frac{2}{3} }}{(2+7 \times \sqrt{3} )^2} = 0.3 \end{align*}
dc 3 # Pila: 3 4 # Pila: 3 4 2 # Pila: 3 4 2 3 \ # 2 3 / es 0.66 # Pila: 3 4 0.66 - # 4 0.66 - resulta en 3.34 # Pila: 3 3.34 + # 3 3.34 + # Pila: 6.34 2 # Pila: 6.34 2 7 # Pila: 6.34 2 7 3 # Pila: 6.34 2 7 3 v # 3 raiz, resulta en 1.73 # Pila: 6.34 2 7 1.73 * # 7 1.73 * resulta en 12.11 # Pila: 6.34 2 12.11 * # 2 12.11 + resulta en 14.11 # Pila: 6.34 14.11 2 # Pila: 6.34 14.11 2 ^ # 14.11 2 ^ resulta en 199.09 # Pila: 6.34 199.09 / # 6.34 199.09 / resulta en 0.03 # Pila: 0.03 p # 0.03 es el unico valor de la pila, no quedan mas valores por operar c # limpiamos la pila p # no hay valores en la pila
6.4. Calculadora
6.4.1. Conceptos
- Otra manera es usando el comando expr pero hay que separar los operandos de los operadores
Observación:
- Considero que es mejor qalac comparado con bc
6.4.2. Referencias Web
7. [TODO] Errores de Manjaro
7.1. Problemas al instalar paquetes
7.1.1. Comandos
# descargamos un depurador con interfaz gráfica git clone https://aur.archlinux.org/ddd.git # ingresamos a la carpeta del programa cd ddd # compilamos el archivo makepkg -sci
# si el error menciona la clave 0FC3042E345AD05D # entonces gpg --recv-keys 0FC3042E345AD05D # si lo anterior no lo resuelve.. pacman -Sy archlinux-keyring manjaro-keyring sudo pacman-key --populate archlinux manjaro sudo pacman-key --refresh-keys # si nada lo resuelve, entonces.. # "no es lo más recomendable" makepkg -sic -skippgpcheck
7.1.2. Referencias
- PGP Public Key Server
- Manual de GPG, cifra, firma y envía datos de forma segura - genbeta.com
- Guia OpenPGP, PGP, GPG - medium.com
- Como usar pgp para linux - Surveillance Self-Defense
- https://forum.manjaro.org/t/solved-error-one-or-more-pgp-signatures-could-not-be-verified/50093
- https://forum.manjaro.org/t/invalid-or-corrupted-package-pgp-signature-different-error-appeared/114966/7
- https://forum.manjaro.org/t/error-failed-to-commit-transaction-invalid-or-corrupted-package-pgp-signature-errors-occurred-no-packages-were-upgraded/112792/3
- https://forum.manjaro.org/t/aur-package-fails-to-verify-pgp-gpg-key-unknown-public-key-one-or-more-pgp-signatures-could-not-be-verified/42687
- https://bbs.archlinux.org/viewtopic.php?id=233480
7.2. Pasos a organizar
cat /etc/lsb-release # para saber la version de manjaro sudo fdisk -l sudo parted -l # Before doing that check in chroot status of kernels: mhwd-kernel -l # Depending on result I would recommend to install some kernels in addition, e.g. 5.4: sudo mhwd-kernel -i linux54 sudo blkid # in UEFI mhwd-kernel -l # gives a list of available kernels mhwd-kernel -li # gives a list of installed kernels efibootmgr -v
7.3. Referencias Web
- https://instintobinario.com/rescatar-el-arranque-de-linux-con-la-consola-de-grub2/
- https://forum.manjaro.org/t/howto-rescue-your-system-error-hook-invalid-value-path/123226
- https://forum.manjaro.org/t/you-need-to-load-kernel-first-after-failed-update/132141/3
- https://forum.manjaro.org/t/using-livecd-v17-0-1-and-above-as-grub-to-boot-os-with-broken-bootloader/24916
- https://classicforum.manjaro.org/index.php?topic=1011.0
- https://wiki.manjaro.org/index.php/Restore_the_GRUB_Bootloader
- https://wiki.manjaro.org/index.php?title=UEFI_-_Install_Guide
- https://forum.manjaro.org/t/grub-install-error-cannot-find-efi-directory/83380
- https://forum.manjaro.org/t/node-error-while-loading-shared-libraries-libicui18n-so-60-cannot-open-shared-object-file-no-such-file-or-directory/37553/4
- https://forum.manjaro.org/t/file-boot-vmlinuz-not-found-after-update-i-did-update-grub-black-screen/121445/2
- https://forum.manjaro.org/t/howto-rescue-your-system-error-hook-invalid-value-path/123226
- https://bbs.archlinux.org/viewtopic.php?id=235203
- https://forum.manjaro.org/t/power-went-out-during-upgrade-file-boot-vmlinuz-5-1-x86-64-not-found/115909/21
- https://forum.manjaro.org/t/boot-vmlinuz-not-found-after-hibernation/111409/7
- https://forum.manjaro.org/t/manjaro-error-file-boot-vmlinuz-5-5-x86-64-not-found-after-update/131538/5
- https://forum.manjaro.org/t/error-file-vmlinuz-5-4-x86-64-not-found/131502/4
- https://forum.manjaro.org/t/error-file-vmlinuz-5-4-x86-64-not-found/131502/6
- https://deblinux.wordpress.com/2012/09/22/como-crear-un-live-usb-de-manjaro-linux-y-no-morir-en-el-intento/
- https://wiki.manjaro.org/index.php?title=Burn_an_ISO_File#Writing_to_a_USB_Stick_in_Linux
- https://www.linuxadictos.com/17781.html
- https://archlinuxlatinoamerica.wordpress.com/2016/10/08/crear-pendriveusb-booteable-desde-nuestra-terminal-en-gnulinux/
- https://wiki.manjaro.org/index.php?title=Burn_an_ISO_File
8. [TODO] Guia Linux Que hacer luego de Instalar Linux
8.1. 1. Comandos Utiles
Comando | Descripcion |
---|---|
pacman -Ss | para buscar un paquete |
pacman -S | para instalar un paquete |
8.2. 2. Instalamos Paquetes
# Navegador web minimalista que utiliza comandos de vim sudo pacman -S qutebrowser # Gestor de directorios por comandos sudo pacman -S ranger # Nuevo gestor de paquetes# aurman ? # otros sudo pacman -S telegram-desktop
8.3. 3. Configuramos Github
- Para evitar escribir usuario y clave en cada push trabajos con la clave publica y privada.
- Abrimos la terminal e ingresamos los siguientes comandos.
# generamos la clave publica y privada ssh-keygen # buscamos el archivo que tiene la clave publica y lo mostramos por pantalla find ~ -name "id_rsa.pub" | xargs cat # buscamos el archivo de la clave pública que generamos# la copiamos y lo # agregamos en la configuración de git# https://github.com/settings/keys # agregamos git a la lista de host confiables ssh -T git@github.com
8.4. 4. Instalar y Configurar Emacs
8.4.1. 4.1 Instalar y Configurar
# instalamos emacs sudo pacman -S emacs # clonamos la configuracion de spacemacs en emacs git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d # cambiamos la rama por develop, tiene mas funcionalidades (ej. treemacs) cd ~/.emacs.d && git checkout develop
8.4.2. 4.2 Activar el modo hibrido
- Modificar en el archivo de configuracion de spacemacs en `~/.spacemacs““;; encontrar la siguiente linea, debe quedar de esta manera con hybrid
dotspacemacs-editing-style 'hybrid`
8.4.3. 4.3 Activamos layers
- Activar algunos layers utilesBuscar la linea `dotspacemacs-configuration-layers` del archivo `~/.spacemacs` y agregar o descomentar las siguientes lineas“`
;; para control de versiones deproyectos git ;; para usar el org-mode y organizar archivos con tareas org
8.4.4. Referencias Web
8.5. [TODO] Versionar Dotfiles
9. Guia del Gestor de Archivos Ranger
9.1. Filtrar archivos
- Presionar zf seguido de la expresion regular
- Presionar v para seleccionar los archivos y luego accion que quieras (copiar, cortar)
- Presionar nuevamente zf para volver a ver todos los archivos
9.2. Atajos
Ranger, tiene los mismos atajos que vim
- h,l para moverse entre los niveles de los directorios
- dd para cortar
- y para copiar
- p para pegar
Comando | Descripcion |
---|---|
:mkdir unDirectorio | Crear un directorio |
:rename otroNombre.txt | Para crear archivos |
:touch nuevoFile.txt | Para modificar el nombre del archivo seleccionado |
:shell algunComando | Para ejecutar comandos de terminal en la ruta donde nos situamos |
:set showhidden! | Mostrar los archivos ocultos (es necesario el signo de admiración) |
9.3. Referencias Web
- https://www.atareao.es/software/utilidades/administrador-de-archivos-para-el-terminal/
- https://openwebinars.net/blog/vim-manual-de-uso-basico/
- https://unix.stackexchange.com/questions/384325/how-to-create-a-new-file-directory-using-ranger
- https://linuxconfig.org/manage-your-files-from-the-command-line-with-ranger
- https://unix.stackexchange.com/questions/568899/search-and-select-all-matching-files-in-ranger
10. Guia Linux Personalizar
10.1. Cambiar el cursor y el theme
10.2. Escritorios Virtuales
10.2.1. Atajos personalizados
Atajo | Descripcion |
---|---|
Alt-F2 | Ejecuta krunner (para abrir aplicaciones) |
Meta-Alt Right | Moverse al siguiente escritorio virtual |
Meta-Alt Left | Moverse al anterior escritorio Virtual |
Ctrl-F1 | Moverse al escritorio 1 (Internet) |
Ctrl-F2 | Moverse al escritorio 2 (Desarrollo) |
Ctrl-F3 | Moverse al escritorio 3 (Multimedia) |
10.3. Ocultar el Hostname del prompt
10.4. Guia de Linux - Particionamiento
10.5. Sincronizar Archivos en Google Drive
- https://www.youtube.com/watch?v=vPs9K_VC-lg
- https://www.youtube.com/watch?v=HblhrGIotFo
- https://rclone.org/drive/
- https://snapcraft.io/install/rclone/manjaro
- https://rclone.org/commands/
- https://snapcraft.io/install/rclone/arch
- https://www.youtube.com/watch?v=ARGU4HFUxq8
- https://www.youtube.com/watch?v=G8YMspboIXs
10.6. Comandos Interesantes
10.6.1. Conceptos
- Crear directorios con subdirectorios, usando el parametro -p en mkdir
mkdir -p carpeta1/carpeta2
10.7. Herramientas de Seguridad
11. Comando Sed (Manipular Texto)
11.1. Conceptos
Es bastante parecido al de reemplazar de vim