Guia Linux 2.0

Table of Contents

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

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

5. [TODO] Comando awk

5.1. Ejemplos

5.2. Referencias

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.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.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

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.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

  1. https://instintobinario.com/rescatar-el-arranque-de-linux-con-la-consola-de-grub2/
  2. https://forum.manjaro.org/t/howto-rescue-your-system-error-hook-invalid-value-path/123226
  3. https://forum.manjaro.org/t/you-need-to-load-kernel-first-after-failed-update/132141/3
  4. https://forum.manjaro.org/t/using-livecd-v17-0-1-and-above-as-grub-to-boot-os-with-broken-bootloader/24916
  5. https://classicforum.manjaro.org/index.php?topic=1011.0
  6. https://wiki.manjaro.org/index.php/Restore_the_GRUB_Bootloader
  7. https://wiki.manjaro.org/index.php?title=UEFI_-_Install_Guide
  8. https://forum.manjaro.org/t/grub-install-error-cannot-find-efi-directory/83380
  9. 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
  10. https://forum.manjaro.org/t/file-boot-vmlinuz-not-found-after-update-i-did-update-grub-black-screen/121445/2
  11. https://forum.manjaro.org/t/howto-rescue-your-system-error-hook-invalid-value-path/123226
  12. https://bbs.archlinux.org/viewtopic.php?id=235203
  13. https://forum.manjaro.org/t/power-went-out-during-upgrade-file-boot-vmlinuz-5-1-x86-64-not-found/115909/21
  14. https://forum.manjaro.org/t/boot-vmlinuz-not-found-after-hibernation/111409/7
  15. https://forum.manjaro.org/t/manjaro-error-file-boot-vmlinuz-5-5-x86-64-not-found-after-update/131538/5
  16. https://forum.manjaro.org/t/error-file-vmlinuz-5-4-x86-64-not-found/131502/4
  17. https://forum.manjaro.org/t/error-file-vmlinuz-5-4-x86-64-not-found/131502/6
  18. https://deblinux.wordpress.com/2012/09/22/como-crear-un-live-usb-de-manjaro-linux-y-no-morir-en-el-intento/
  19. https://wiki.manjaro.org/index.php?title=Burn_an_ISO_File#Writing_to_a_USB_Stick_in_Linux
  20. https://www.linuxadictos.com/17781.html
  21. https://archlinuxlatinoamerica.wordpress.com/2016/10/08/crear-pendriveusb-booteable-desde-nuestra-terminal-en-gnulinux/
  22. 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.5. [TODO] Versionar Dotfiles

9. Guia del Gestor de Archivos Ranger

9.1. Filtrar archivos

  1. Presionar zf seguido de la expresion regular
  2. Presionar v para seleccionar los archivos y luego accion que quieras (copiar, cortar)
  3. Presionar nuevamente zf para volver a ver todos los archivos

9.2. Atajos

Ranger, tiene los mismos atajos que vim

  1. h,l para moverse entre los niveles de los directorios
  2. dd para cortar
  3. y para copiar
  4. 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)

10. Guia Linux Personalizar

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.4. Guia de Linux - Particionamiento

10.6. Comandos Interesantes

10.6.1. Conceptos

  1. 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

Author: jelou

Created: 2021-09-13 lun 12:18

Validate