Monografía - GNU-Linux
Monografía - GNU-Linux
TECNICATURA UNIVERSITARIA EN
PROGRAMACIÓN
ASIGNATURA:
ARQUITECTURA Y SISTEMAS OPERATIVOS
TEMA:
USO DEL SISTEMA OPERATIVO GNU / LINUX
COMISIÓN: ALUMNOS:
2 – TURNO MAÑANA BLANCO NICOLÁS
Índice ................................................................................................................................................................... 1
Cuestionario ........................................................................................................................................................ 2
1 - Introducción ..................................................................................................................................... 2
2 – Teclado / Terminales ....................................................................................................................... 2
3 - Ayuda ................................................................................................................................................ 2
4 - Directorios......................................................................................................................................... 3
5 - Archivos ............................................................................................................................................ 4
6 - Permisos ............................................................................................................................................ 4
7 - Filtros ................................................................................................................................................ 5
8 - VI ....................................................................................................................................................... 5
9 – Variables de entorno ....................................................................................................................... 6
Objetivos del trabajo .......................................................................................................................................... 7
Introducción ........................................................................................................................................................ 7
Desarrollo ............................................................................................................................................................ 8
1 - Introducción ..................................................................................................................................... 8
2 – Teclado / Terminales ....................................................................................................................... 9
3 - Ayuda .............................................................................................................................................. 10
4 - Directorios....................................................................................................................................... 13
5 - Archivos .......................................................................................................................................... 14
6 - Permisos .......................................................................................................................................... 15
7 - Filtros .............................................................................................................................................. 16
8 - VI ..................................................................................................................................................... 17
9 – Variables de entorno ..................................................................................................................... 18
Conclusión ......................................................................................................................................................... 20
Bibliografía........................................................................................................................................................ 20
UTN Página 1 de 20
Cuestionario
1. INTRODUCCIÓN
2. TECLADO / TERMINALES
2.1. ¿Qué sucede si tecleo cat /e <tab> p <tab>? (donde tab es la tecla tabulación). Presione <tab>
nuevamente ¿Qué pasó ahora?
2.2. ¿Qué sucede si tecleo cat /e <tab> pas <tab>?
2.3. En este punto analizaremos las distintas terminales que hay en un sistema GNU/Linux. Ejecute los
siguientes comandos e indique cuál fue el resultado:
2.3.1. who
2.3.2. Presione las teclas <ctrl> y <alt>, y sin soltarlas presione cualquiera de las teclas de función
(de F3 a F6 para Ubuntu). En la pantalla debería aparecer el login del sistema, de lo
contrario, ejecute el paso nuevamente presionando otra tecla de función. Si ya tiene el login
del sistema vuelva a conectarse.
2.3.3. Ejecute nuevamente el comando who. ¿Qué diferencias encuentra con la primera vez que lo
ejecutó?
2.3.4. Ejecute el comando who am i ¿qué muestra?, ¿Qué diferencias tiene con el comando
ejecutado en el punto anterior?
2.3.5. Repita el paso 2.3.2 y el 2.3.3 hasta que no encuentre ninguna sesión para abrir.
2.3.6. Una vez terminado el punto anterior, Ud. se encontrará sesionado en el sistema como mínimo
cinco veces. Lo que acaba de hacer es abrir cuatro terminales virtuales (que podrían ser
usadas por distintos usuarios, con diferentes perfiles), en la misma máquina. Así como
existen terminales virtuales dentro del mismo equipo, si Ud. cuenta con una red, o con
terminales tipo serie, podría abrir tantas sesiones de trabajo como Ud. quiera o necesite.
Investigue e indique cómo se denominan los distintos tipos de terminales, y cuáles son los
archivos que las representan (tip: busque en el directorio /dev).
2.3.7. Use el comando logout para cerrar las sesiones abiertas en todas las terminales virtuales y
vuelva a la sesión gráfica (<ctrl> <alt> F2 para Ubuntu).
3. AYUDA
3.1. INFO: Info es un programa para leer documentación. Este se compone de una estructura del tipo
árbol, dividido en nodos de información. Cada nodo describe un especifico tópico con un
determinado nivel de detalle.
3.1.1. Ingrese a info y responda:
3.1.1.1. ¿Cómo se llama el nodo raíz de Info?
3.1.1.2. Ubique el cursor en la línea (* cp:) y presione ENTER.
3.1.1.3. ¿Qué sucedió?
3.1.1.4. ¿Cómo se llama este nodo?
3.1.1.5. ¿Cuál es el próximo nodo?
3.1.1.6. ¿Cómo puedo moverme al próximo nodo?
3.1.1.7. ¿Cómo puedo moverme al nodo anterior?
UTN Página 2 de 20
3.1.2. Presione la tecla 'u'.
3.1.2.1. ¿Qué sucedió?
3.1.2.2. ¿En qué nodo se encuentra?
3.1.3. Repita el punto 3.1.2. hasta que llegue a la raíz de Info.
3.1.3.1. ¿Con qué tecla puedo volver directamente a este nodo?
3.1.3.2. ¿Cuál es el método directo para acceder al nodo cp? (tip: sin desplazar el
cursor).
3.1.4. ¿Cómo puedo buscar una palabra clave dentro de un nodo?
3.1.5. ¿Cómo puedo buscar la siguiente palabra clave, buscada anteriormente?
3.1.6. ¿Cómo puedo salir de Info? -hágalo.
3.2. MAN: man es un programa que formatea y muestra las páginas del manual.
3.2.1. ¿Cuál es la diferencia entre man e info?
3.2.2. ¿Cómo puedo ver la información de un determinado comando?
3.2.3. ¿Cómo puedo buscar una palabra clave dentro de la página del manual?
3.2.4. ¿Cómo puedo salir?
3.2.5. ¿Cómo hago para buscar una palabra clave determinada en todas las páginas del manual?
3.2.6. ¿Qué es lo sucede al realizar lo siguiente?
3.2.6.1. man
3.2.6.2. man
3.2.6.3. man cp
3.2.6.4. man printf
3.2.6.5. man fprintf
3.2.6.6. man sprintf
3.2.6.7. man 3 printf
3.2.7. Si los comandos del punto anterior le dieron un mensaje de error, instale el paquete
manpages-dev y vuelva a ejecutarlos (utilice sudo apt install manpages-dev si está usando
Ubuntu).
3.2.8. Del punto anterior, responder:
3.2.8.1. Al invocar man junto con fprintf y sprintf muestra la misma página. ¿Por qué no
muestra la misma página al invocarlo con printf?. (TIP: vea el punto 3.2.6.2).
3.2.8.2. ¿Cómo puedo invocar al man para ver directamente la función printf del lenguaje C?
3.3. HELP: help es la ayuda que ofrece el shell de GNU/LINUX para utilizar sus comandos.
3.3.1. ¿Cuál es la diferencia entre help e info?
3.3.2. ¿Cuál es la diferencia entre help y man?
3.3.3. ¿Qué sucede al invocar al help?
3.3.4. ¿Cómo puedo ver la información de un determinado comando?
3.3.5. ¿Qué sucede al utilizar el comando help cd?
3.4. whereis
3.4.1. ¿Qué sucede al utilizar el comando whereis cp?
3.4.2. ¿Qué es la información que se muestra por pantalla al ejecutar el punto anterior?
3.4.3. ¿Qué ocurre si se ejecuta whereis * sobre un directorio? (Tip: si no pasa nada, inténtelo
nuevamente pero primero ejecute cd /bin)
3.4.4. ¿Cuál es la diferencia entre whereis y find?
3.5. whatis
3.5.1. ¿Qué sucede al utilizar el comando whatis cp?
3.5.2. Cambie al directorio /bin, y ejecute el comando whatis * ¿Qué ocurrió?
3.5.3. Utilice el comando apropos passwd y whatis passwd. Enumere las diferencias encontradas en
el resultado de cada uno de los comandos.
4. DIRECTORIOS
4.1. ¿Para qué se usa el comando cd? Ejecute las siguientes variantes de cd e indique cuál fue el
resultado obtenido:
4.1.1. cd /
UTN Página 3 de 20
4.1.2. cd
4.1.3. cd /etc
4.1.4. cd..
4.1.5. cd ..
4.2. Bash sobre directorios:
4.2.1. ¿Cuál/es son las diferencias entre el path absoluto y el path relativo?
4.2.2. ¿Qué es lo que realizan las siguientes operaciones? (tip: si no encuentra la diferencia primero
haga cd /, y luego vuelva a intentar)
4.2.2.1. cd ~
4.2.2.2. cd -
4.2.3. ¿Cuál es la diferencia entre cd ~ y cd -?
5. ARCHIVOS
6. PERMISOS
6.1. Teniendo en cuenta el ls –l anterior, ¿indique que son los siguientes 9 caracteres? (sin considerar
el primero sobre el que ya respondió anteriormente)
6.2. ¿qué significan cada caracter? ¿cómo están agrupados?
6.3. ¿Cómo se asignan los permisos? (detalle los comandos).
6.4. ¿Qué son el owner, y el group de un archivo? ¿Se pueden cambiar?
6.5. Intente cambiar los permisos de un archivo perteneciente al root (sesionado como usuario).
Explique qué sucedió.
6.6. Explique la forma de cambiar los permisos con valores en octal.
6.7. ¿Cuál es el significado de los permisos en los directorios (se debe indicar que indica una r, una w,
y una x)?
UTN Página 4 de 20
7. FILTROS
7.1. ¿Cuál es la diferencia de los comandos more, less y cat? De un ejemplo de cada uno.
7.2. ¿Cuál es la diferencia entre tail y head?
7.3. ¿Qué es lo que realiza el comando uniq?
7.4. ¿Qué es lo que realiza el comando grep?
8. VI
8.1. Ejecute la siguiente instrucción: vi $HOME/prueba.txt ¿Qué sucedió? Ahora ejecute todos los
pasos detallados a continuación.
8.1.1. Escriba la siguiente frase: “Este es el archivo prueba.txt de <nombre y apellido>”
8.1.2. ¿Qué tuvo que hacer para poder escribir la frase?
8.1.3. Guarde el archivo, y salga del editor. ¿Qué comando utilizó?
8.1.4. Ingrese nuevamente al archivo.
8.1.5. Incorpore al inicio del archivo el siguiente párrafo (los acentos pueden ser evitados):
“Sistemas Operativos
Curso de los días <día de cursada>
Trabajo Práctico 1
Alumno: <su nombre y apellido aquí>
Legajo: <su Legajo aquí>
Documento: <su documento aquí>”
8.1.6. Describa todos los pasos que tuvo que realizar.
8.1.7. Guarde el archivo y continúe la edición. ¿Qué comandos utilizó?
8.1.8. Borre la línea de “Legajo”. Indique por lo menos dos formas de realizarlo.
8.1.9. Invierta el orden de las líneas “Curso y TP”. No está permitido rescribirlas. ¿Qué
comandos utilizó?
8.1.10. Ubíquese en la línea 2 (dos) del archivo. No está permitido usar las teclas del cursor,
ni el mouse. ¿Qué comando utilizó?
8.1.11. Marque para copiar las líneas 2, 3, y 4 (todas juntas, no de a una a la vez). ¿Cómo lo
realizó?
8.1.12. Ubíquese al final del archivo (sin usar las teclas del cursor), y pegue dos veces el
contenido del buffer. ¿Qué comando usó?
8.1.13. Deshaga uno de los copiados. No está permitido borrar línea por línea, ni carácter a
carácter. ¿Qué comando usó?
8.1.14. ¿Cómo busco la palabra “Documento”? ¿Cómo busco la segunda ocurrencia de una
palabra?
8.1.15. ¿Cómo puedo reemplazar la palabra “Documento” por “Documento:” (sin borrar, o
realizar el reemplazo a mano)’
8.1.16. Guarde el archivo y salga.
8.1.17. Ejecutar "vi miprog.c"
introducir el texto:
principal ()
{
UTN Página 5 de 20
printf (" 1/3/2001 ------------- listo");
printf (" 1/3/2002 ------------- listo");
printf (" 1/3/2003 ------------- listo");
printf (" 1/3/2004 ------------- listo");
printf (" 1/3/2005 ------------- listo");
printf (" 1/3/2006 ------------- No listo");
}
Luego presionar :x
9. VARIABLES DE ENTORNO
UTN Página 6 de 20
Objetivos del trabajo
A lo largo de esta monografía, se va a explorar una serie de objetivos relacionados con la línea de comandos
de GNU/Linux, con el propósito de profundizar y comprender mejor su funcionamiento y su potencial. Para
esto, se va a hacer uso de la interfaz de comandos de GNU/Linux, la terminal, con el fin de que el lector del
trabajo pueda aprender más sobre:
▪ Automatización de tareas
▪ Uso de directorios y archivos
▪ Redes y conectividad
▪ Exploración de comandos básicos y avanzados
▪ Gestión de usuarios y permisos
▪ Pruebas y experimentación
Entre otros.
Introducción
GNU/Linux es una familia de sistemas operativos de código abierto, los cuales se encuentran normalmente en
forma de recopilaciones conocidas como distribuciones o “distros”, como, por ejemplo: Ubuntu, Debian, Red
Hat, SUSE, etc. Estas distros le añaden al sistema base su propia selección de aplicaciones y programas
preinstalados.
La idea surgió mediante la unión de varios proyectos de software tales como GNU y el núcleo Linux. Por un
lado, el proyecto GNU, iniciado en 1983 por Richard Stallman, tiene como objetivo crear un sistema de
software compatible con Unix, pero siendo software totalmente libre, de allí su acrónimo GNU's Not Unix
(GNU no es Unix). Por otro lado, el núcleo Linux nace en 1991 gracias a Linus Torvalds, un usuario del
sistema operativo MINIX que mostraba un gran interés en entender cómo funcionaban los sistemas
operativos. Sin embargo, se encontró con la limitación de las licencias de MINIX, que solo permitían su uso
con fines educativos en ese entonces. Como resultado de esta frustración, decidió iniciar el desarrollo de su
propio núcleo ese mismo año, utilizando la estructura y parte del código de MINIX como base para su
proyecto.
La interfaz de comandos terminal, es una consola similar a CMD o PowerShell, pero mucho más avanzada
que ambas y está estrechamente relacionada con la historia de GNU/Linux, ya que desde sus inicios fue una
herramienta fundamental para administrar y utilizar este tipo de sistemas operativos. Hoy en día, la terminal
sigue siendo esencial, ya que les ofrece a los usuarios un control total y adaptable sobre sus sistemas.
UTN Página 7 de 20
Desarrollo
1. INTRODUCCIÓN
1.1. La cuenta de superusuario es una cuenta especial con privilegios elevados la cual tiene acceso
completo y sin restricciones al sistema, lo que le permite realizar acciones que están fuera del
alcance de otros usuarios de menor nivel.
Características:
▪ Acceso a todos los archivos: El superusuario puede acceder y modificar incluso aquellos
archivos que son esenciales en el funcionamiento del sistema sin restricciones, a
diferencia de otros usuarios.
1.2.
UTN Página 8 de 20
1.6. Al agregar un nuevo usuario y contraseña desde la cuenta superusuario, lo que ocurre es que se
crea una nueva entrada de usuario en el sistema, donde le queda asignado un UID único, un
directorio de inicio donde se almacenarán sus archivos personales y configuraciones, y se
actualiza la base de datos del propio sistema. Se solicitan, además, datos como nombre completo,
número de teléfono y otros datos adicionales que este quiera guardar como información. Esto le da
lugar a este nuevo usuario a poder acceder al sistema de forma segura y llevar a cabo tareas según
los permisos que se le asignen previamente.
Entre los archivos que se ven modificados luego de la creación de un usuario nuevo, están, por
ejemplo:
▪ /etc/group (contiene información sobre los grupos del sistema, cuando se agrega un nuevo
usuario, también permite agregar un nuevo grupo con el mismo nombre)
▪ /usr/sbin para “adduser”. Este directorio contiene utilidades para tareas de administración
del sistema destinadas a ser utilizadas por superusuario.
▪ /usr/bin para “passwd”. Este directorio contiene binarios de usuarios, que son comandos
para ser utilizados por usuarios regulares y superusuario para tareas comunes de sistema.
2. TECLADO / TERMINALES
2.1. Al teclear “cat /e <tab> p <tab>”, el sistema mostrará una lista de opciones disponibles que
coincidan con la secuencia de caracteres “/e p”.
2.2. Al teclear “cat /e <tab> pas <tab>”, el sistema autocompleta directamente el comando con la
palabra “passwd”.
2.3.
2.3.1. Al teclear “who”, la consola generalmente muestra una lista de usuarios que estén
actualmente conectados al sistema, junto con algunos datos como su nombre de usuario,
terminal a la que estén conectados y la hora en que iniciaron sesión.
2.3.2. Al presionar “Ctrl + Alt + tecla de función”, el sistema te llevara a una nueva terminal
virtual, en este caso, sin un entorno gráfico. En ella también se pueden ejecutar comandos y
realizar tareas administrativas. Para regresar al entorno gráfico, generalmente se presiona
“Ctrl + Alt + F1” o “Ctrl + Alt + F7”, dependiendo de la distribución especifica de Linux y
su configuración.
2.3.3. Si ingresamos en este nuevo entorno el comando “who”, a diferencia de la otra consola, el
sistema mostrara la lista de usuarios que estén conectados a esa terminal virtual en específico
acompañado también de datos como su nombre de usuario, terminal desde la que se conectan
y hora en la que iniciaron sesión.
UTN Página 9 de 20
2.3.4. El sistema mostrará con estos comandos información sobre la sesión actual en esa consola en
específico, incluyendo nombre de usuario, terminal desde la que se esté conectado y la fecha
y hora en la que se inició sesión en esa consola.
La diferencia con el punto anterior es que en este último solo muestra tu sesión actual en la
consola virtual junto con tus datos, mientras que, en el punto anterior, enseña una lista de
usuarios que estén conectados en dicha terminal y sus datos también.
3. AYUDA
3.1. INFO:
3.1.1.
3.1.1.1. Cuando se ingresa a INFO, el nodo “top” raíz se ubica en el archivo “dir”
3.1.1.3. Al dar enter en la línea ”cp:” la consola nos da una descripción al inicio la
cual nos indica que, dentro de este apartado, podemos copiar archivos u opcionalmente
directorios para llevar a otro directorio de destino. La copia es independiente del
original que se seleccione y pueden ser más de un archivo o directorio.
UTN Página 10 de 20
3.1.2.
3.1.2.1. Al presionar la tecla “U” el sistema retrocede al nodo padre, es decir, al que
contiene al nodo actual.
3.1.2.2. Nos encontramos en el nodo “basic operations”.
3.1.3.
3.1.3.1. Volemos directamente presionando la letra “Q”
3.1.3.2. Podemos presionar la letra “M” la cual nos abre un campo de texto, donde
podemos escribir las siglas del nodo al que queramos acceder directamente, en este
caso “cp”.
3.1.4. Podemos buscar una palabra clave presionando la tecla “F” o “/”.
3.2. MAN:
3.2.1. La principal diferencia entre estos comandos está en como presentan y estructuran la
información, así también como el tipo de documentación que muestran.
“Man” muestra la información en formato manual y proporciona una forma rápida de tener
información de un comando específico, mientras que “info” presenta un formato más
estructurado y ofrece documentación más detallada.
3.2.2. Para ver la información de un determinado comando se escribe "man" seguido del nombre del
comando
3.2.3. Para buscar un comando en específico podemos teclear “/” seguido del nombre del comando
y enter.
3.2.5. Para buscar una palabra en clave podemos teclear “/” seguido del nombre del comando y
enter.
3.2.6.
3.2.6.1. La consola pregunta que página del manual estamos queriendo consultar.
3.2.6.5. Similar al punto anterior, la consola ejecuta la página del manual de la función
“fprintf” en el entorno de programación C.
3.2.6.6. Similar al punto anterior, la consola ejecuta la página del manual de la función
“sprintf” en el entorno de programación C.
UTN Página 11 de 20
3.2.6.7. En este caso, “3” indica la sección del manual en a que se encuentran las
funciones relacionadas con el formateo de salida en el entorno de C. Esto te llevará a la
página del manual que contiene información sobre todas las funciones de formateo de
salida en C, incluyendo “printf”, “fprintf” y “sprintf”.
3.2.8.
3.2.8.1. Printf es una función de salida de formato estándar en C, y en algunos
sistemas, la documentación de printf puede estar separada de las funciones de
entrada/salida de archivos como fprintf y sprintf. Por lo tanto, por eso es que man printf
no muestra la misma página del manual que man fprintf o man sprintf.
3.3. HELP:
3.3.1. “help” es más adecuado para obtener ayuda rápida sobre los comandos internos de la shell,
mientras que “info” presenta un formato más estructurado y ofrece documentación más
detallada.
3.3.2. “help” proporciona ayuda rápida y concisa sobre los comandos internos de la shell y algunas
utilidades básicas, mientras que “man“ ofrece documentación detallada y estructurada sobre
una amplia gama de temas relacionados con el sistema operativo y los programas instalados.
3.3.4. Podemos teclear “help” seguido del nombre del comando que queramos ver la información
para que así notemos en pantalla una breve descripción de su funcionalidad y una lista de
opciones y argumentos que puedes utilizar con él.
3.3.5. La consola mostrará una breve descripción de cómo usar el comando “cd”, que se utiliza para
cambiar de directorio en la línea de comandos.
3.4. Whereis:
3.4.1. Con el comando “whereis”, la consola buscará y mostrará la ubicación de archivos binarios,
fuentes y páginas de manual relacionados con un comando específico. Al ejecutar “whereis
cp”, buscará la ubicación del comando “cp”, que se utiliza para copiar archivos y directorios.
3.4.2. El sistema nos indica que el binario del comando “cp“ se encuentra en “/bin/cp” y la página
de manual correspondiente está en “/usr/share/man/man1/cp.1.gz”.
3.4.3. En este caso el sistema mostrará un amplio listado de ubicaciones de binarios y páginas de
manual para varios comandos básicos del sistema que se encuentren en ese directorio en
orden alfabético.
3.4.4. El comando “whereis” se enfoca en ubicar archivos relacionados con comandos específicos
del sistema, “find” es una herramienta más generalizada para buscar archivos y directorios en
todo el sistema de archivos según diversos criterios de búsqueda como nombre de archivo,
tamaño, fecha de modificación.
UTN Página 12 de 20
3.5. Whatis:
3.5.1. La terminal nos indica que cp es un comando de la sección 1 del manual, y su función es
copiar archivos y directorios.
3.5.2. En pantalla se muestra una extensa lista de cada comando que se encuentre en “/bin” con una
breve descripción y cuya descripción esté disponible en las páginas de manual del sistema.
3.5.3. Al ingresar los dos comandos, estos se diferencian en que “apropos passwd” enseña una
lista de comandos más amplia relacionada con la administración de contraseñas, mientras
que con “whatis passwd”, se observa la descripción breve del comando passwd en sí mismo.
4. DIRECTORIOS
4.1. La función del comando cd o Change Directory (Cambiar Directorio) sirve para cambiar del
directorio en el que nos encontramos a otro que queramos.
4.2.
4.2.1. Al momento de querer acceder a un directorio o archivo en particular se tiene que utilizar una
ruta, ésta puede ser absoluta o relativa. La relativa nos va a decir el camino restante que hay
UTN Página 13 de 20
entre el directorio en el que nos encontramos y el directorio / archivo al que queramos
acceder, en cambio, la absoluta nos va a decir el camino completo entre el directorio raíz y el
directorio / archivo a buscar.
4.2.2.
4.2.2.1. cd ~, al igual que el comando cd, te permite volver al directorio principal.
4.2.3. La diferencia es que en caso de querer volver a un directorio anterior que ya usé, el comando
cd~ no me lo va a permitir, ya que me mueve directamente al directorio principal, no a un
directorio anterior, en cambio cd – sí me deja.
4.3.3. Si el directorio no está vacío, el comando rmdir no va a servir, ya que solamente borra
directorios vacíos.
4.3.4. El problema se soluciona usando el comando rm -r, el cual elimina el directorio y todo lo que
contenga.
4.5. Otra forma de moverse por los directorios es ejecutando el comando tree (Árbol), el cual muestra
de una forma más gráfica los contenidos de cada directorio.
5. ARCHIVOS
5.1.
5.1.1. El comando cp (Copy o Copiar) permite copiar archivos o directorios.
5.1.4. El comando rcp (Remote Procedure Call o Llamada a Procedimiento Remoto) permite
copiar archivos o directorios entre un sistema local y un sistema remoto, o entre dos sistemas
remotos.
5.1.5. El comando rsh (Remote Shell o Shell Remoto) permite ejecutar un único comando en un
sistema remoto sin tener que conectar anteriormente.
5.1.6. El comando scp (Secure Copy o Copia Segura) permite hacer una copia de archivos o
directorios remotos entre servidores de forma segura, gracias a la utilización del puerto ssh.
UTN Página 14 de 20
5.1.7. El comando ssh (Secure Shell o Shell Seguro) es un protocolo de administración remota que
le permite a los usuarios controlar y modificar sus servidores remotos a través de Internet a
través de un mecanismo de autenticación.
5.2. Para concatenar el contenido de dos archivos se puede usar el comando cat (Concatenate o
Concatenar).
5.2.1. Además de permitirte fusionar el contenido de dos archivos, el comando cat sirve para
mostrar el contenido de un archivo en pantalla.
5.3.
5.3.1. El primer carácter indica el tipo de archivo.
5.3.2. Los posibles valores que puede contener ese campo son:
5.4. El comando touch (Tocar) sirve para cambiar manualmente la fecha y hora de la última
modificación y acceso de un archivo. Es útil si se desea configurar o simular ciertas fechas para
pruebas, ya que este comando permite establecer marcas de tiempo especificas en archivos.
6. PERMISOS
▪ Letra r: indica que tiene permiso para leer dicho archivo (Read).
▪ Letra w: indica que tiene permiso para escribirlo / modificarlo (Write).
▪ Letra x: indica que pueden ejecutarse diferentes parámetros sobre ese archivo (Execute).
▪ Guion -: en caso de no tener alguno de los tres permisos anteriores, en vez de tener una
letra, tiene un guion en su lugar.
Dependiendo las letras que tenga cada grupo de caracteres, son los permisos que va a tener cada
uno sobre el archivo en cuestión.
6.3. En caso de querer cambiar los permisos de un archivo o directorio se puede ejecutar el comando
chmod (Change Mode o Cambiar Modo)
▪ El propietario (Owner) es el usuario que creó el archivo, cada owner pertenece a un grupo
(Group), es decir, a un conjunto de owners predeterminado y ese grupo se asigna a cada
archivo que crea el usuario.
UTN Página 15 de 20
Si quiero cambiar el propietario de dicho archivo, se puede utilizar el comando chown (Change
Owner o Cambiar Propietario).
6.5. Al inicio, los caracteres de mi archivo eran (-rw-rw-rw-) y después de haber modificado sus
permisos, usando el comando chmod 700, los caracteres pasaron a (-rwx------), es decir, al
principio, tanto Owners, Group y Others solamente podían ver y escribir el archivo (rw-) y ahora
una vez ejecutado el comando, solamente el usuario puede leerlo, escribirlo y ejecutarlo (rwx).
6.6. La notación octal consiste de valores de tres a cuatro dígitos en base-8. Con la notación octal de
tres dígitos cada número representa un componente diferente de permisos a establecer: clase de
usuario, clase de grupo y clase de otros respectivamente. Cada uno de estos dígitos es la suma de
sus bits que lo componen (en el sistema numeral binario). Como resultado, bits específicos se
añaden a la suma conforme son representados por un numeral:
En el caso del ejercicio anterior (6.5.), se usó un chmod con valor octal de 700 lo cual equivale a:
▪ 7: significa rwx, es decir, permiso para la lectura, escritura y ejecución por parte del
usuario.
▪ 0: significa ---, es decir, los grupos (Group), no tiene permiso para leer, escribir o ejecutar
ese archivo.
▪ 0: significa ---, es decir, otros (Others), no tienen permiso para leer, escribir o ejecutar ese
archivo.
En conclusión, 700 en octal le da el permiso absoluto solo al usuario de lo que quiera hacer con
tal archivo.
▪ Letra r (Read): indica que tiene permiso para leer dicho archivo.
▪ Letra w (Write): indica que tiene permiso para escribirlo / modificarlo.
▪ Letra x (Execute): indica que pueden ejecutarse diferentes parámetros sobre ese archivo.
7. FILTROS
7.1.
▪ More: En informática, more es un comando para ver (pero no modificar) el contenido de un
archivo o comando y visualizarlo por páginas. Este comando sólo permite la navegación con la
tecla "espacio" para avanzar y "b" para retroceder, una vez recorrido el archivo por completo
se cierra la ejecución de More, el contenido queda en la terminal, pero ya no se puede navegar
en él.
▪ Less: Es un comando similar a more, pero tiene muchas más funciones. Less no lee todo el
archivo desde el principio, por eso cuando un archivo es grande, se inicia más rápido que los
editores de texto como vi. Los comandos se basan tanto en more como en vi.
En less podemos agregar un número decimal para representar la línea de código donde
queremos que inicie la lectura del archivo en cuestión de un número decimal, llamado N en las
descripciones siguientes. El número se usa mediante algunos comandos, como se indica.
UTN Página 16 de 20
para crear nuevos archivos (cat > Nombre.txt), para mostrar el contenido de los archivos
existentes (cat nombre.txt) y podemos redirigir contenido de un archivo a otro (cat nombre1.txt
> nombre2.txt).
7.2. Head te muestra el principio de un archivo de texto mientras que tail te muestra el final de un
archivo de texto.
7.3. Uniq se encarga de eliminar filas repetidas consecutivamente, además, cuando agregamos el
parámetro -c nos cuenta cuantas veces hay repetida una línea.
7.4. Grep es un comando buscador de coincidencias en archivos de texto o flujo de datos. Busca
patrones especificados en una ruta especifica.
8. VI
8.1.6. Tuve que presionar la tecla o minúscula para entrar en modo texto, luego escribí como en
cualquier documento de texto.
8.1.8. Para borrar la línea completa utilice el comando :%s/legajo: 30240/ luego de la barra deje el
espacio en blanco para que simplemente lo borre sin sustituirlo. Otra forma sería colocar el
cursor encima de los caracteres que queremos borrar y presionar la tecla x.
8.1.10. Apreté la tecla escape y coloqué ":" seguido del número "2".
8.1.11. Se puede hacer colocando el cursor en la última o en la primera línea, se presiona las
teclas shift+v y te deja seleccionar las líneas con las flechas hacia arriba o hacia abajo.
8.1.14. Para buscar la palabra Documento tengo que escribir el comando /Documento , esto
busca la coincidencia en el texto, si la palabra estuviera repetida podría ir a la segunda
repetición presionando la tecla n.
UTN Página 17 de 20
miprog.c: In function ‘principal’:
miprog.c:3:1: warning: implicit declaration of function ‘printf’ [-Wimplicit-function-
declaration]
3 | printf (" 1/3/2001 ------------- listo");
| ^~~~~~
miprog.c:1:1: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
+++ |+#include <stdio.h>
1 | principal ()
miprog.c:3:1: warning: incompatible implicit declaration of built-in function ‘printf’ [-
Wbuiltin-declaration-mismatch]
3 | printf (" 1/3/2001 ------------- listo");
| ^~~~~~
miprog.c:3:1: note: include ‘<stdio.h>’ or provide a declaration of ‘printf’
/usr/bin/ld: no se puede encontrar Scrt1.o: No existe el archivo o el directorio
/usr/bin/ld: no se puede encontrar crti.o: No existe el archivo o el directorio
collect2: error: ld returned 1 exit status
Al ejecutar vi miprog.c y poner “:%s/\/3/\/Marzo/g” me sustituyo cada número del mes /3 por
la palabra /Marzo.
Al volver a ejecutar:
9. VARIABLES DE ENTORNO
9.1. Las variables de entorno son valores dinámicos que afectan los programas o procesos que se
ejecutan en un servidos. Las variables de entorno se pueden crear, editar, guardar y eliminar.
En Linux, las variables de entorno son marcadores de posición para la información almacenada
dentro del sistema que pasa datos a los programas iniciados en shells (intérpretes de comando) o
sub-shells.
9.1.1. Significados:
▪ Home: Esta variable almacena la ruta del directorio principal del usuario actual. En
mi caso: home/noodledit.
▪ Path: Define los directorios que se deben buscar para que bash encuentre un
comando.
UTN Página 18 de 20
▪ IFS: Internal Field Separator (Separador Interno de Campos), es una variable que
se encarga de definir el delimitador utilizado para dividir la entrada en palabras
cuando se interpreta. Los valores predeterminados son espacio en blanco, tabulación
y salto de línea, que son caracteres de espacio en blanco y no se muestran
visualmente en la terminal.
9.1.4. El sistema le da a la variable PATH para determinar la ubicación de los programas, es una
lista de rutas de archivos a directorios donde se colocan binarios o enlaces simbólicos, el
shell actual busca en PATH el binario correspondiente, es crucial para ejecutar comandos sin
necesidad de especificar la ruta completa cada vez.
Si intento ejecutar un comando que no se encuentra ubicado en los directorios de PATH, el
programa tira un mensaje de error que dice "orden no encontrada", para solucionar este caso
se usa el siguiente comando: export PATH=/direccion_de_ubicacion_del_comando:$PATH.
Si queremos que el cambio sea permanente debemos agregar la línea de comando a tu
archivo de configuración del shell, como .bashrc o .bashrc_profile dependiendo del shell y
del sistema.
9.1.5.
▪ PS1: Es la variable de entorno que define el prompt primario que ves cuando la
terminal está lista para recibir un comando. Por lo general, muestra el nombre de
usuario, el nombre de la máquina y el directorio actual. Se puede modificar el
prompt primario, pero hay que tener cuidado porque puede afectar la forma en la que
se interactúa con la terminal.
for i in 1 2 3 4 5
> do
> echo "Numero: $i"
> done
con el resultado siguiente:
Numero: 1
Numero: 2
Numero: 3
Numero: 4
Numero: 5
UTN Página 19 de 20
Conclusión
En pocas palabras, el uso de los comandos en la terminal de GNU/Linux les ofrece a los usuarios un alto nivel
de control y eficiencia en la gestión y manipulación de directorios, archivos, procesos y sistemas. A través de
la comprensión y aplicación adecuada de estos, los usuarios pueden realizar una amplia gama de tareas con
rapidez y precisión, lo que resulta en una experiencia informática más versátil y potente. Además, como se
demostró, el aprendizaje continuo y la práctica de estos comandos no solo mejoran las habilidades técnicas,
sino que también fomentan una comprensión más profunda de los sistemas informáticos y promueven la
autonomía en el manejo de tecnología.
En resumen, el sistema operativo GNU/Linux destaca por su versatilidad, potencia y comunidad activa, lo que
la convierte en una opción superior para aquellos que buscan un control total sobre su experiencia informática,
gracias a esto, profesionales de TI (Tecnologías de la información) y desarrolladores le dan un constante uso
debido a su capacidad para automatizar tareas, administrar sistemas de forma remota y trabajar de manera
eficiente en entornos de servidor.
Bibliografía
▪ https://docs.oracle.com/cd/E19620-01/805-7644/x-5lbaf/index.html
▪ https://www.investigacion.frc.utn.edu.ar/labsis/publicaciones/apunte_linux/mmad.html#:~:text=El%2
0comando%20mkdir%20se%20utiliza,Ej.
▪ https://legacy.redhat.com/pub/redhat/linux/7.1/de/doc/RH-DOCS/es/rhl-gsg-es-7.1/s1-navigating-
cd.html
▪ https://es.wikipedia.org/wiki/GNU/Linux
UTN Página 20 de 20