Curso: Platzi: Administración Servidores #01 : Terminal

Archivo resumen

Comandos

cd

// cd: change Directory, permite cambiar de directorio

//para ingresar al directorio home del usuario podemos utilizar cd
cd

//Parámetros

// Podemos utilizar una ruta absoluta
cd /home/tavo/Escritorio

// o podemos utilizar una ruta relativa
// .: significa a partir de la ubicación actual
cd ./Escritorio

// ..: Significa que regresa un directorio
cd ..

// Regresar 2 directorios
cd ../..

//Ir a home del usuario
cd

//Ir a la ubicación anterior
cd -

ls

// Listar archivos de un directorio
ls

//Parámetros:

//l: long muestra la información completa de los archivos
ls -l

//h: lectura humana, el peso se los archivos de muestra en bits, podemos utilizar h para mostrarlos en kilobytes, megabytes, etc
ls -lh

//a: mostrar archivos ocultos
ls -la

//S: size muestra los archivos por orden de tamaño
ls -lS

// Lo podemos combinar
ls -lSh

//r: reverse mostrar en orden inverso
ls -lr

tree

// tree: muestra el arbol completo de todos los directorios del directorio actual
/ Puede ser muy amplo pero podemos limitar la profundidad con el parámetro "L" y el nivel de profundidad

tree -L 2

// Resultado
├── bash-it
│   ├── aliases
│   ├── bash_it.sh
│   ├── clean_files.txt
│   ├── completion
│   ├── custom
│   ├── docs
│   ├── enabled
│   ├── hooks
│   └── vendor
├── Descargas
│   ├── prueba_2022-02-14-16-41-56.mp4
│   └── Win10_21H2_Spanish(Mexico)_x64.iso
├── Documentos
├── Escritorio ...

clear

// Limpiar terminar
clear

// Existe el comando CTRL+L para limpiar

pwd

// pwd: Print Working Directory, nos muestra la ruta del directorio donde estamos
pwd

file

// file: archivo, nos muestra la información de un archivo
file linux_signing_key.pub

// Resultado
linux_signing_key.pub: PGP public key block Public-Key (old)

//Ejemplo #2
file nodesource_setup.sh 
nodesource_setup.sh: Bourne-Again shell script, UTF-8 Unicode text executable, with very long lines

CAT

  • Permite leer archivos
// Obtiene toda la información de los logeos en el sistema operativo
cat /var/log/auth.log

Copiar en terminar

  • Podemos hacer clic derecho copiar
  • O podemos hacer CRTL+SHIFT+C

mkdir

// Permite crear directorios
mkdir miDirectorio

// Si requerimos crear una carpeta con espacios en blanco lo hacemos con comillas
mkdir "mi Directorio"

// Si deseamos crear varios directorios
mkdir dir1 dir2 dir3

touch

// touch: permite crear un archivo vació
touch nombreArchivo

// Si deseamos crear varios
touch file1 file2 file3

//podemos crear archivos de un tipo específico
touch file.docx

//Cambiar la fecha y hora de modificación (sobre un archivo existente)
touch file.docx

cp

//cp: copy: permite copiar archivos
cp file1 file1.bak

// Si desea copiar en otro directorio
cp file1 ../dir2/file1

mv

//mv: move: permite mover un archivo
mv file1 ./dir2

// También sirve para renombrar archivos
mv file1 file4

rm

// rm: remove: permite eliminar un archivo o directorio
rm file1

//Parámetros

//i: interactivo
rm -i file1
//Resultado
rm: ¿borrar el fichero regular vacío 'file1'? (s/n)

//r:recursive: para aplicar el comando de forma recursiva
rm -r dir1

//f: force: permite eliminar de forma forzada
rm -rf

// Podemos eliminar varios archivos y directorios
rm -r dir1 dir2 dir3 file 1

head

//head: muestra las 10 primeras lineas de un archivo de texto
head file1

// Si deseamos más lineas, pasamos el parámetro de "-n" y el número de filas
head file -n 15

tail

// tail: muestra las 10 últimas lineas de un archivo
tail file1

//Si deseamos más lineas, pasamos el parámetro de "-n" y el número de filas
tail /var/log/apache2/error.log -n 15

//Si deseamos hacer un seguimiento del archivo utilizamos -f
tail -f /var/log/apache2/error.log

//También podemos hacer seguimiento a más de una archivo a la vez
tail -f /var/log/auth.log /var/log/dpkg.log

less

// es mas recomendado para leer archivos grandes
less /var/log/auth.log

// less: ingresa en un modo interactivo que permite recorrer el archivo
less file1

// Podemos utilizar las flechas para subir y bajar
// Podemos utilizar las barras espaciadora y hace salto de página
// Si ponemos el slach "/" y una palabra la podemos buscar
/1914 (ENTER)
//para buscar /criterio_busqueda
//n: para buscar la siguiente considencia
/shift+n: para invertido
// q: quit para salir

xdg-open

// Permite abrir un archivo en la interfaz gráfica con el editor de texto predefinido
xdg-open file1

Nautilus

// Permite abrir el explorador de archivos
nautilus
// O podemos abrir un carpeta específica
nautilus Documents

¿Que es un comando?

  • Un programa ejecutable
  • Un comando de shell
  • Una función del shell
  • Un alias

type

// permite ver el tipo de comando
type cd

//Resultado
cd es una orden interna del intérprete de ordenes

// Ejemplo2
type mkdir
// Resultado nos indica donde esta
mkdir is /usr/bin/mkdir

// Ejemplo 3 alias
type ls
// Resultado
ls es un alias de `ls --color=auto'

Alias

// Alias permite crear una alias de un comando pero de forma TEMPORAL
alias nombreAlias="comando"

// Ejemplo (lsa= list server alias)
alias lsa="ls /etc/apache2/sites-available/"

//Ya los podemos utilizar
lsa
//Resultado
000-default.conf  default-ssl.conf

help

//help: ayuda: permite mostrar la ayuda de un comando
help cd

// También la podemos solicitar así
cd --help

man

// Este comando permite ver el manual del usuario de un comando
man cd
//q para salir

info

//info: muestra la misma información que man
info cd

whatis

// Brinda una descripción corta del significado del comando
whatis pwd
//Resultado
pwd (1)              - print name of current/working directory

Wildcards

  • Búsqueda de archivos
  • Primero creamos varios archivos
touch file.txt dot.txt dot2.txt index.html datos1 datos123 abc

*

  • todos los archivos terminados en txt
ls *.txt
  • Todos los que digan datos
ls datos*

//resultado
datos1  datos123

?

  • En el ejemplo anterior nos devolvió todos los que dijeran «datos» y todo el resto, pero si solo queremos lo que digan datos y un caracter
// Si queremos solo que de un carácter
ls datos?

// Si queremos 3 caracteres
ls datos ???

Mayúscula

  • Si deseamos listar archivos y carpetas que inicien con mayúscula
ls [[:upper:]]*
  • Si deseamos solo carpetas usamos la flag -d
ls -d [[:upper:]]*

Minúscula

  • Si deseamos listar archivos y carpetas que inicien con minúscula
ls [[:lower:]]*
  • Si deseamos solo carpetas usamos la flag -d
ls -d [[:lower:]]*

Clases

  • Archivos que inicien con una «a» o una «d»
ls [ad]*

Funcionamiento de los comandos

  • Todo comando tiene:
    • stdin (standar input = 0): comando a ejecutar
    • stdout (standar out = 1): salida correcta del comando
    • stderr (standar error = 2): salida de error del comando

Redirecciones

  • Si queremos redirigir la salida de un comando por ejemplo a un archivo de texto
  • Si ejecutamos el comando
ls Imágenes/
  • Pero digamos que yo quiero guardar eso a un archivo, podemos hacer
ls Imágenes/ > misArchivos.txt
  • Pero digamos que también quiero guardar mis descargas
ls Descargas/ > misArchivos.txt
  • Esto reescribe el archivo
  • Por eso si deseamos concatenar debemos utilizar doble símbolo mayor que >>
ls Descargas/ >> misArchivos.txt
  • Ahora si trato de listar los archivos de un directorio que no existe
ls dirNoExiste
  • Resultado: error
ls: no se puede acceder a 'dirNoExiste': No existe el archivo o el directorio
  • Ahora digamos que deseamos almacenar el error en un archivo
ls dirNoExiste > error.txt
  • Y listamos su contenido
cat error.txt 
  • El archivo esta vació, por que para esto necesitamos pasar el «standerr» que para este ejemplo es el «2»
ls dirNoExiste 2> error.txt
  • Ahora si lo podemos consultar
cat error.txt

//Resultado
ls: no se puede acceder a 'dirNoExiste': No existe el archivo o el directorio
  • Ahora si deseamos almacenar ya sea el éxito o error debemos hacer
ls dirNoExiste > salida.txt 2>&1
  • Donde indicamos 2>&1 (si da error redirija a éxito)

Operadores de control

1-Ejecutar comandos uno después del otro (sincronos)

  • Para hacer esto los separamos por «;»
ls; mkdir hoy; cal
  • Resultado
bash-it     error.txt   Imágenes               miImagenes.txt  Público
Descargas   Escritorio  KVM                    Música          snap
Documentos  file1       linux_signing_key.pub  Plantillas      Vídeos
     Marzo 2022       
do lu ma mi ju vi sá  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31   

2- Ejecutar comandos de forma asíncrona

  • Para ejecutar comandos de forma asíncrona (Es decir que bash utilice un hilo por aparte por cada comando) los separamos por «&»
ls & date & cal
  • Resultado
[1] 19181 // Número de proceso
[2] 19182 // Número de proceso
lun  7 mar 10:01:51 CST 2022
bash-it     error.txt   hoy       linux_signing_key.pub  Plantillas  Vídeos
Descargas   Escritorio  Imágenes  miImagenes.txt         Público
Documentos  file1       KVM       Música                 snap
     Marzo 2022       
do lu ma mi ju vi sá  
       1  2  3  4  5  
 6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30 31        
                      
[1]-  Hecho                   ls --color=auto
[2]+  Hecho                   date

3- Comandos condicionales

if

  • Utilizamos el símbolo «&&»
  • Por ejemplo si queremos que se cree un directorio y si se crea de forma correcta ingresemos en él
mkdir test && cd test
  • Si ocurre un error que pasa?
  • digamos que ejecutamos el ingreso a un directorio que no existe y si es correcto cree un archivo «archivo.txt» y si es correcto nos de un mensaje de «Archivo creado»
cd dirNoExiste && touch archivo.txt && echo "Archivo creado"
  • Resultado (No se crea el archivo)
bash: cd: dirNoExiste: No existe el archivo o el directorio

Or

  • Utilizamos el símbolo «||»
  • Para el ejemplo utilizamos el anterior
  • cd dirNoExiste || touch archivo.txt || echo "Archivo creado"
    • Resultado: crea el archivo mas no tira el mensaje
    ls
    //Resultado
    archivo.txt

    Manejos de permisos

    Tipos de archivos

    Tipos de modo

    • r: read
    • w: write
    • X: execute

    Modo octal

    Modo Simbólico

    Manejo de permisos

    • primero creamos una carpeta «micarpeta» y adentro un archivo llamado «mitexto.txt»
    mkdir micarpeta && cd micarpeta && touch mitexto.txt && ls
    • Le ingresamos algún contenido con «cat»
    cat > mitexto.txt (ENTER para empezar a escribir)
    Hola amigos
    
    Este es el contenido del archivo
    
    Fin
    ( CTRL+D para finalizar)
    • Consultamos los permisos
    ls -la
    
    //Resultado: permisos por defecto
    -rw-r--r--  1 root root   50 mar  8 09:32 mitexto.txt

    chmod

    • Permite modificar los permisos de un archivo:
    • u: rwx = 7
    • g: r-x: 5
    • o: r-x: 5
    chmod 755 mitexto.txt
    
    // Consultamos los permisos
    ls -la
    
    //Resultado
    -rwxr-xr-x  1 root root   50 mar  8 09:32 mitexto.txt
    • Ahora digamos que al usuario le deseamos quitar el permiso de r (lectura)
    chmod u-r mitexto.txt
    
    //Consultamos los permisos
    ls -la
    
    //Resultado
    --wxr-xr-x  1 root root   50 mar  8 09:32 mitexto.txt
    
    //Ahora si intentamos leer
    cat mitexto.txt 
    
    //Resultado
    cat: mitexto.txt: Permiso denegado
    • Ahora para poder agregarle el permiso
    chmod u+r mitexto.txt
    • Una forma más avanzada, pero esto sobre escribe todos los permisos para go ya que tiene «=»
    chmod u-x,go=w mitexto.txt
    
    //Resultado
    ls -la
    -rw--w--w-  1 tavo tavo   50 mar  8 09:32 mitexto.txt
    

    whoami

    • permite saber en la termina cual usuario estamos utilizando
    whoami
    
    //Resultado
    tavo

    id

    • Este es otro comando para saber información del usuario actual
    id
    
    //Resultado
    uid=1000(tavo) gid=1000(tavo) grupos=1000(tavo),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),108(kvm),120(lpadmin),131(lxd),132(sambashare),135(libvirt)
    
    • Esto nos da:
    • uid: id del usuario normalmente inicia con 1000 el primer usuario
    • gid: id del grupo del usuario
    • grupos: todos los grupos a los que pertenece el usuario

    su (switch user):

    • Nos permite cambiar de usuario
    //Cambiarnos a root
    sudo su
    
    //De momento root no tiene password la cambiamos
    passwd root
    Nueva contraseña: 
    Vuelva a escribir la nueva contraseña: 
    passwd: contraseña actualizada correctamente
    
    //Salimos
    exit
    
    //Y ya podemos ingresar como root
    su root
    
    • Ahora vamos a crear un archivo en la carpeta del usuario pero que le pertenece al usuario root
    //Ingresamos a la carpeta del usuario
    cd /home/tavo/micarpeta/
    
    //Creamos el archivo
    touch rootfile
    
    //listamos los archivos
    ls -la
    
    //resultado
    -rw-r--r--  1 root root    0 mar  8 10:12 footfile
    
    
    //Cambiamos a usuario normal
    su tavo
    
    //Si intentamos eliminar el archivo nos da error
    rm rootfile
    
    // Si lo deseamos eliminar podemos utilizar el comando sudo
    sudo rm rootfile

    passwd

    • Nos permite cambiar una contraseña
    passwd tavo
    
    Nueva contraseña: 
    Vuelva a escribir la nueva contraseña: 
    passwd: contraseña actualizada correctamente

    ln: Link simbólicos

    • Permite crear «Accesos Directos»
    • Para crearlo hacemos
    ln -s /var/www/html/ Desarrollo
    // esto crea un acceso directo de nombre "Desarrollo" que apunta a /var/www/html
    
    // Así podemos ingresar
    cd Desarrollo
    
    // Lo podemos ver así
    ls -la
    lrwxrwxrwx  1 tavo tavo    14 mar  9 09:46  Desarrollo -> /var/www/html/

    Variables de Entorno

    printenv

    • Permite listar todas las variables de entorno
    printenv
    • Resultado
    SHELL=/bin/bash
    SESSION_MANAGER=local/SER-DESA:@/tmp/.ICE-unix/2947,unix/SER-DESA:/tmp/.ICE-unix/2947
    QT_ACCESSIBILITY=1
    COLORTERM=truecolor
    XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
    XDG_MENU_PREFIX=gnome-
    GNOME_DESKTOP_SESSION_ID=this-is-deprecated
    LANGUAGE=es_CR:es
    MANDATORY_PATH=/usr/share/gconf/ubuntu.mandatory.path
    GNOME_SHELL_SESSION_MODE=ubuntu
    SSH_AUTH_SOCK=/run/user/1000/keyring/ssh
    XMODIFIERS=@im=ibus
    DESKTOP_SESSION=ubuntu
    SSH_AGENT_PID=2887
    GTK_MODULES=gail:atk-bridge
    PWD=/home/tavo
    LOGNAME=tavo
    XDG_SESSION_DESKTOP=ubuntu
    XDG_SESSION_TYPE=x11
    GPG_AGENT_INFO=/run/user/1000/gnupg/S.gpg-agent:0:1
    XAUTHORITY=/run/user/1000/gdm/Xauthority
    GJS_DEBUG_TOPICS=JS ERROR;JS LOG
    WINDOWPATH=2
    HOME=/home/tavo
    USERNAME=tavo
    IM_CONFIG_PHASE=1
    LANG=es_CR.UTF-8
    LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36:
    XDG_CURRENT_DESKTOP=ubuntu:GNOME
    VTE_VERSION=6003
    GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/f87a8563_85c1_4f74_bfa1_4e8eee6c8dff
    INVOCATION_ID=d5bd41130708452db2880189e8755c22
    MANAGERPID=2663
    GJS_DEBUG_OUTPUT=stderr
    LESSCLOSE=/usr/bin/lesspipe %s %s
    XDG_SESSION_CLASS=user
    TERM=xterm-256color
    DEFAULTS_PATH=/usr/share/gconf/ubuntu.default.path
    LESSOPEN=| /usr/bin/lesspipe %s
    LIBVIRT_DEFAULT_URI=qemu:///system
    USER=tavo
    GNOME_TERMINAL_SERVICE=:1.1260
    DISPLAY=:0
    SHLVL=1
    QT_IM_MODULE=ibus
    XDG_RUNTIME_DIR=/run/user/1000
    JOURNAL_STREAM=8:45960
    XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share/:/usr/share/:/var/lib/snapd/desktop
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/tavo/.dotnet/tools
    GDMSESSION=ubuntu
    DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
    _=/usr/bin/printenv
    OLDPWD=/
    
    • Para imprimir una variable de entorno
    echo $HOME
    
    //Resultado
    /home/tavo
    • $PATH: contiene la ruta de todos nuestros binarios
    echo $PATH
    
    //Resultado
    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/tavo/.dotnet/tools

    Modificar las variables de entorno (.bashrc)

    • Si deseamos modificar una variable de entorno necesitamos ubicar el archivo
    cd /home/tavo
    
    // Listamos
    ls -la
    
    //encontramos el archivo
    .bashrc
    
    // Lo abrimos
    code .bashrc
    • Aquí podemos crear alias, por ejemplo
    //lsa: lista el directorio de sites-availabe de apache
    alias lsa='ls /etc/apache2/sites-available/'
    • Podemos crear nuevas variables de entorno, por ejemplo
    DHTML="/var/www/html/"
    
    // Por lo que podríamos hacer
    cd $DHTML
    • Para concatenar a la variable PATH
    //Concatenamos lo que tiene $PATH la nueva ruta
    PATH=$PATH:/home/tavo/bin/
    
    //Para recargar bash
    bash
    
    //Para consultar
    echo $PATH

    Comandos de búsqueda

    which

    • Permite encontrar los binarios de un programa, por ejemplo
    which code
    //R
    /usr/bin/code
    
    which php
    //R
    /usr/bin/php
    
    which apache2
    //R
    /usr/sbin/apache2
    

    find

    • Nos permite buscar un archivo
    find "ruta_inicio" -name "nombre_archivo"
    • Por ejemplo buscar desde home
    find ./ -name file
    • Podemos utilizar «Wildcards»
    find ./ -name *.txt
    
    find ./ -name *.txt | less
    • Buscar por tipo Archivo / directorio -type
    find ./ -type fd -name Documentos
    
    //f: solo busque archivos
    //d: solo directorios
    • Buscar solo archivos log’s
    find ./ -type f -name *.log
    • Archivos por tamaño -size
    find ./ -size 20M

    Utilidades de Red

    ifconfig

    //Muestra información de red
    ifconfig

    Ping

    //Muestra si existe conexión IP a un servicio o servidor
    ping www.siua.ac.cr

    curl

    //Trae el contenido de un archivo desde la web
    curl www.siua.ac.cr
    
    //Lo podemos almacenar
    curl www.siua.ac.cr > index.html

    wget

    //Trae el archivo desde internet
    wget www.siua.ac.cr

    traceroute

    //Nos lista todos los servidores por donde se fue la llamada
    traceroute www.siua.ac.cr

    netstat -i

    //Nos lista nuestros dispositivos de red
    netstat -i

    Comprimir Archivos

    • Primero creamos una carpeta y creamos archivos
    mkdir toCompress
    cd toCompress
    touch file1 file2 file3
    cd ..
    tree tOCompress
    
    //Resultado
    toCompress
    ├── file1
    ├── file2
    └── file3
    
    0 directories, 3 files

    .tar

    //permite comprimir
    tar -cvf nombreArchivoSalida.tar Carpeta_o_Archivo
    
    tar -cvf toCompress.tar toCompress
    
    c:Comprimir
    v:vervose (ver el output)
    f: file
    
    //Resultado
    ls
    
    //Podemos mejorarlo con gzip
    tar -cvzf nombreArchivoSalida.tar.gz Carpeta_o_Archivo
    
    //z:gzip
    //Para descomprimir
    
    //Eliminamos la carpeta
    rm -r toCompress
    
    //.tar
    tar -xvf toCompress.tar
    x: descomprimir
    
    //.tar.gz
    tar -xzvf toCompress.tar.gz
    x: descomprimir

    .zip

    //Requerimos una aplicación
    apt install  zip
    
    //Comprimir
    zip -r nombreArchivoSalida.zip nombreCarpeta_o_Archivo
    
    //Ejemplo
    zip -r toCompress.zip toCompress
    
    //Por se un carpeta debe llevar la
    //r: recursivo
    
    //Descomprimir
    unzip nombreArchivo
    
    //Ejemplo
    unzio toCompress.zip

    Manejo de procesos

    PS:

    • Lista los procesos que se están ejecutando en la terminal
    ps
    • Resultado
        PID TTY          TIME CMD
     164863 pts/2    00:00:00 bash
     164926 pts/2    00:00:00 ps

    Kill

    • Elimina un proceso
    kill número_proceso
    
    #EJ:
    kill 164863

    TOP

    • Lista todos los procesos
    top
    • Resultado
    top - 09:03:34 up 1 day,  3:59,  1 user,  load average: 2,30, 2,29, 2,10
    Tareas: 479 total,   3 ejecutar,  476 hibernar,    0 detener,    0 zombie
    %Cpu(s): 18,8 usuario,  5,1 sist,  0,0 adecuado, 75,7 inact,  0,1 en espera,  0,
    MiB Mem :  32051,2 total,    274,6 libre,  10656,0 usado,  21120,7 búfer/caché
    MiB Intercambio:  10742,0 total,  10727,0 libre,     15,0 usado.  20601,7 dispon
    
        PID USUARIO   PR  NI    VIRT    RES    SHR S  %CPU  %MEM     HORA+ ORDEN    
      10270 tavo      20   0   48,6g 306368 108856 R  75,1   0,9   1088:17 chrome   
      10051 tavo      20   0   32,9g 414632 179408 R  52,5   1,3 773:33.61 chrome   
      10982 tavo      20   0   40,5g 114552  71972 S  30,2   0,3 456:15.46 chrome   
     163643 tavo      20   0   17700   7328   6480 S   7,3   0,0   0:10.42 ssh      
       3278 tavo      20   0 5851312 966796 122152 S   5,6   2,9  41:05.81 gnome-s+ 
     163367 tavo      20   0  548084  11692   8976 S   5,0   0,0   0:27.80 gvfsd-m+ 
     163632 tavo      20   0  465736  11120   8748 S   3,7   0,0   0:05.91 gvfsd-s+ 
       2793 tavo      20   0 1268256 161308  86924 S   3,0   0,5  12:47.96 Xor
    • Ahora le podemos pasar parametros

    h:para la ayuda

    • Presionar h: para ver la ayuda y todas las posibilidades
    Help for Interactive Commands - procps-ng 3.3.16
    Window 1:Def: Cumulative mode Apagado.  System: Delay 3,0 secs; Secure mode Apag
    
      Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
      l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
      0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
      f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width
    
      L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
      R,H,J,C . Toggle: 'R' Sort; 'H' Threads; 'J' Num justify; 'C' Coordinates
      c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
      x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
      z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
      u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
      n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
      V,v     . Toggle: 'V' forest view; 'v' hide/show forest view children
    
      k,r Gestiona tareas: «k» detener; «r» reiniciar
      d o s Establece intervalo de actualización
      W,Y       Write configuration file 'W'; Inspect other output 'Y'
      q         Quit
              ( commands shown with '.' require a visible task display window ) 
    Press 'h' or '?' for help with Windows,
    Type 'q' or <Esc> to continue 
    
    • Salimos con «q»

    u: usuario

    • Por ejemplo presionar U: para listar lo de un usuario
    Qué usuario (blanco para todos) tavo

    HTOP

    • Es un programa para la administración de procesos similar a top pero mas completo
    • para instalarlo
    apt install htop
    • para ejecutarlo
    htop
    • Resultado

    Editores de Texto

    • Existen dos versiones vi (versión antigua) y vim (nueva versión vi-modern)

    vim

    • Para instalarlo
    apt install vim -y
    • para ejecutarlo
    vim
    • Resultado
    • para salir
    :q ENTER

    Crear un archivo

    • Ejecutamos
    vim inicio.html
    • El tiene dos modos inserción y lectura

    i: editar

    • Para editar debemos presionar la letra «i»
    • Resultado
    • Cuando terminemos de editar debemos presionar la tecla «ESC» para salir

    /:buscar

    • Si desea buscar en el documento solo debe presionar la tecla «/»
    • Para salir se coloca en otro lugar y presiona «ESC»

    Eliminar una línea

    • primero debe estar en modo normal
    • Si desea eliminar una líena solo se coloca en la linea y presiona dos veces «del»

    Guardar el archivo

    • Para guardar presione :w (write)
    :w ENTER

    Guardar y salir

    • para guardar y salir de una vez
    :wq

    Personalizar la terminal de comandos

    Terminal: Tilix

    • Página: https://gnunn1.github.io/tilix-web/
    • Para instalarla
    apt install tilix -y
    • Esto cambia de bash a zsh pero por la necesidad de crear script bash mejor no lo aplicamos