Comandos y herramientas

 Terminal/Consola/Intérprete de comandos o shell
    

    Una 'terminal' no es otra cosa que un entorno de entrada y salida de texto, por eso decimos que es el primer elemento de contacto entre la máquina y el usuario humano. Cuando decimos 'consola' hablamos de un subtipo de terminal, este término nos induce a pensar en el dispositivo fisico de consolas o teletypes y en ella coexistía todo pantalla y teclado. Luego pasamos términos más tenemos los 'emuladores de terminal' alguinos ejemplo: xterm, gnome-terminal o konsole. 


    

    Por su parte una línea de comandos es nada más que la parte derecha del pront y tiene por lo general un aspecto intermitente para indicar que el terminal está listo para recibir comandos del usuario.
    
    Un intérprete de línea de comandos, cuando introducimos algo y presionamos enter alguien, debe interpretar qué fue lo que se colocó. Después elaborar una traducción para enviarlo al kernel y ser entendido. El intérprete de comandos tiene reglas definidas con sintaxis y estructura, es decir, lo que se puede hacer y aquello que no. Es el intérprete quien traduce un comando en una llamada de sistema que el kernel puede comprender. Ejemplo de intérpretes de comandos: bash, zsh y ksh entre otros. Un intérprete de comandos puede recibir instrucciones de una fuente no humana, ejemplos serían automatismos como los scripts.



    Un comando de línea en GNU/Linux es una instrucción que se le da al sistema operativo para que realice una tarea específica, como crear un archivo, mover una carpeta o instalar un programa. A diferencia de los sistemas que usan solo ventanas e íconos, en Linux se puede hacer casi todo escribiendo comandos en una terminal, que es como una ventana de texto donde se interactúa directamente con el sistema.

    Los comandos son como "órdenes" que le das a la computadora, y suelen seguir una estructura simple: primero va el nombre del comando (por ejemplo, ls para listar archivos), seguido de opciones (como -l para ver detalles) y argumentos (como el nombre de un archivo o carpeta). Por ejemplo, si escribes ls -l /home, le estás pidiendo al sistema que te muestre una lista detallada de los archivos en la carpeta /home.

       ¿Qué sucede si quiero conocer en detalle cómo funciona un comando en GNU/Linux?
    El comando man (abreviatura de manual) es una de las herramientas más útiles en Linux para obtener información detallada sobre otros comandos, funciones del sistema, archivos de configuración y más. Proporciona páginas de manual (llamadas "man pages") que incluyen descripciones, opciones y ejemplos de uso entre otra cosas. 


    Para usar man, simplemente escribe man seguido del nombre del comando o tema que deseas consultar. Por ejemplo: man ls te mostrará la página de manual del comando ls.

        
    
    Lista de comandos básicos
    
pwd  ------------------  muestra la carpeta en donde se ubica el usuario

top  ------------------  muestra los programas activos.

history ------------------ lista todos los comandos utilizados por el usuario.

exit ------------------ salir de la sesión actual.

mkdir ------------------ crear directorio.

clear  ------------------  limpiar pantalla.

more ------------------ permite visualizar un archivo de texto.

touch  ------------------ crea un archivo.

cd  ------------------ ingresa a un directorio.
    cd .. ------------------ retrocede un directorio (espacio entre cd y los dos puntos)
    cd / ------------------ vamos directo al directorío raíz.

cat  ------------------ permite visualizar el contenido de un archivo.

rm  ------------------ borra archivos.

    rm -r  ------------------  borra directorios no vacíos de manera recursiva, esto quiere decir desde el directorio ubicado más adentro a nivel estrucutra y luego hacia afuera.

rmdir  ------------------ borra directorios vacíos


cp  ------------------  copia archivos
                             ejemplo:
                                 cp archivo.txt  /home/alumno/prueba  /alumno/data/prueba (método absoluto)
                                 
tree------------------ Muestra directorios y archivos en forma de árbol. Debe estar instalado o habilitado previamente.

mv                                               
    mv  ------------------ renombra archivo mv nombre_viejo nombre_nuevo
                            ejemplo: mv skipper.txt kowalsky.txt

    mv  ------------------ mueve archivos
                            ejemplo:
                                  mv archivo.tx /home/alumno/prueba  /alumno/Documentos/prueba (método absoluto)

ls ------------------ muestra directorios en forma de lista
                            ls -l muestra directorios en forma de lista
                            ls -la muestra directorios en lista, pero bajo un criterio alfabético.
                            ls -s el criterio aquí es el tamñana de cada archivo y directorio.

sudo ---------------- permite ejecutar comoandos como superusuario 'root' u otro usuario del sistema.

su ---------------- permite ejecutar comandos con un id de usuario y grupo distinto. Si no se específica el usuario será 'root'.


    En Linux, como en otros sistemas operativos basados en Unix, los archivos y directorios se organizan en una estructura jerárquica que se asemeja a un árbol. La raíz de este árbol es el directorio / (barra), y a partir de ahí se ramifican todos los demás directorios y archivos.

    Para navegar por el sistema de archivos, se utilizan comandos en la línea de comandos (terminal). Algunos de los comandos más comunes son:

    pwd, cd, ls, tree.
       
    Rutas absolutas y relativas

    Para referirse a un archivo o directorio, se pueden utilizar rutas absolutas o relativas.

    Ruta absoluta: Es la ruta completa desde la raíz del sistema de archivos. Por ejemplo, /var/log/syslog.
    
    Ruta relativa: Es la ruta desde el directorio de trabajo actual. Por ejemplo, si estás en /home/usuario, la ruta relativa a /home/usuario/documentos/trabajos es documentos/trabajos.

    Linux ofrece una gran variedad de comandos para manipular archivos y directorios. Algunos de los comandos más comunes son:

    mkdir, rmdir, touch, cp, mv, rm.
    
    Ejemplos

    mkdir nuevo_directorio: Crea un directorio llamado nuevo_directorio en el directorio de trabajo actual.
    rmdir nuevo_directorio: Elimina el directorio nuevo_directorio si está vacío.
    touch archivo.txt: Crea un archivo llamado archivo.txt en el directorio de trabajo actual.
    cp archivo.txt copia.txt: Copia el archivo archivo.txt a un archivo llamado copia.txt.
    mv archivo.txt nuevo_directorio: Mueve el archivo archivo.txt al directorio nuevo_directorio.
    rm archivo.txt: Elimina el archivo archivo.txt.

    Comodines

    Se pueden utilizar comodines para referirse a varios archivos o directorios a la vez. Los comodines más comunes son:

    *: Coincide con cualquier cadena de caracteres.
    ?: Coincide con cualquier carácter individual.
    []: Coincide con cualquier carácter dentro de los corchetes.

    Ejemplo

    ls *.txt lista todos los archivos que terminan en .txt en el directorio de trabajo actual.


    En Linux, como en otros sistemas operativos, existen diversas herramientas para visualizar y editar archivos, tanto desde la línea de comandos (terminal) como a través de interfaces gráficas.
Visualización de archivos

    cat: Este comando muestra el contenido de un archivo en la terminal. Es útil para archivos pequeños.
    less: Este comando permite visualizar archivos grandes de forma paginada, lo que facilita la navegación por el contenido.
    head: Muestra las primeras líneas de un archivo.
    tail: Muestra las últimas líneas de un archivo.
    
    Ejempplo
    cat miarchivo.txt


Edición de archivos

    nano: Es un editor de texto sencillo y fácil de usar que se ejecuta en la terminal. Es ideal para principiantes.
    vi/vim: Es un editor de texto potente y muy utilizado en entornos Unix/Linux. Tiene una curva de aprendizaje más pronunciada, pero ofrece muchas funcionalidades avanzadas.
    gedit/pluma: Es un editor de texto gráfico sencillo y fácil de usar, similar al Notepad de Windows.  


    Ejemplos

    cat archivo.txt: Muestra el contenido del archivo archivo.txt en la terminal.
    less archivo_grande.txt: Abre el archivo archivo_grande.txt con el visor less.
    nano archivo.txt: Abre el archivo archivo.txt con el editor nano.
    vi archivo.txt: Abre el archivo archivo.txt con el editor vi.

    Consideraciones

    La elección de la herramienta para visualizar o editar archivos dependerá de las preferencias del usuario y de las necesidades específicas para:
     archivos pequeños, cat o nano pueden ser suficientes.
     archivos grandes, less o vi pueden ser más adecuados.
     usuarios principiantes, nano o gedit pueden ser más fáciles de usar.
     usuarios avanzados, vi o Kate pueden ofrecer más funcionalidades.

    Ejercicios:
    
    ejercicio 1

    Descripción:
        Utiliza el comando pwd para mostrar la ruta absoluta del directorio en el que te encuentras actualmente.
------------------------------------------------------------------------------------------------------------
    ejercicio 2

    Descripción:
        Crea un directorio llamado proyecto y dentro de él, un archivo llamado README.txt. Luego, muestra el contenido del directorio proyecto en forma de lista detallada.
------------------------------------------------------------------------------------------------------------
    ejercicio 3

    Descripción:
        Utilizar el comando history para ver los últimos 5 comandos ejecutados en la terminal.
------------------------------------------------------------------------------------------------------------
    ejercicio 4

    Descripción:
    Copia el archivo README.txt del directorio proyecto a un nuevo directorio llamado backup y luego renombra el archivo copiado a README_backup.txt.
------------------------------------------------------------------------------------------------------------

    ejercicio 5

    Descripción:

   Crea un directorio llamado backup y dentro de él, dos archivos llamados archivo1.txt y archivo2.txt. Luego, elimina el directorio backup y todo su contenido utilizando el comando rm con la opción recursiva.

------------------------------------------------------------------------------------------------------------

    ejercicio 6


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.
    


    ------------------------------------------------------------------------------------------------------------
    ejercicio 7


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.
    




 ------------------------------------------------------------------------------------------------------------
    ejercicio 8


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.
    


 ------------------------------------------------------------------------------------------------------------ 
    ejercicio 9


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.
    


------------------------------------------------------------------------------------------------------------   
    ejercicio 10


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.
    


------------------------------------------------------------------------------------------------------------   
    Utilizamos editores de textos en la terminal.

    Los sistemas operativos de interfaz de texto permitían trabajar en la creación y edición de textos. Por defecto toda máquina con Linux tiene incorporado dos editores de textos llamados: 1- vi  2- nano.

    En cualquiera de ellos podemos crear nuevos archivos de forma sencilla. Lo único que debemos es colocar el nombre del programa y después el nombre del archivo que vamos a crear.
  ------------------------------------------------------------------------------------------------------------ 
    ejercicio con Nano


    Crear la estructura indicada por la imagen con aquellos ajustes posteriores sugeridos.
    Subir captura de la Terminal con el ejercicio en el foro.