Linux Unhatched
Linux Unhatched
Linux Unhatched
¡Hola y bienvenido al Módulo Elemental de NDG Linux! Estamos muy entusiasmados de ofrecerte
esta breve introducción al mundo de Linux. Antes de comenzar, nos gustaría aprovechar la
oportunidad para explicar la intención y el alcance de este módulo.
No te preocupe si tienes poca o ninguna experiencia en Linux. Este módulo está diseñado como una
introducción para los estudiantes principiantes sin formación previa en Linux. Si te parece útil este
material, puedes pensar en continuar con nuestros cursos de NDG Linux Essentials o Introducción
al Linux de NDG para adquirir conocimientos más avanzados. La información adicional sobre estos
cursos está al final de este módulo.
Como probablemente ya sabes, el kernel de Linux ha encontrado su camino hacia un increíble
número de diversos sistemas. Hoy en día lo puedes encontrar en todo, desde automóviles a cohetes,
desde relojes a televisores y desde netbooks a los superordenadores más rápidos. Linux sólo
representa un porcentaje relativamente pequeño de los sistemas operativos encontrados en
computadoras de escritorio, pero ha ganado un uso extenso en los servidores, dispositivos de IoT
(Internet de las Cosas o «Internet of Things» en inglés), equipos de red, teléfonos inteligentes y
muchos otros dispositivos de los que imaginas que pueden ser computadoras. Desde un enrutador
(«router» en inglés) casero que te conecta a Internet hasta el servidor en el está alojado este curso,
es probable que múltiples dispositivos alimentados por Linux te permiten leer esta página en este
momento.
Esperamos que encuentres útil el Módulo Elemental de NDG Linux. ¡Te felicitamos por dar tus
primeros pasos hacia el mundo de Linux!
El nombre del comando se basa frecuentemente en lo que hace o en lo que el desarrollador que creó
el comando piensa que va a describir mejor la función del comando. Por ejemplo, el comando ls
muestra una lista de información acerca de los archivos. Asociando el nombre del comando con
algo mnemotécnico para lo que hace puede ayudar a recordar más fácilmente los comandos.
Para considerar
Cada parte del comando es normalmente sensible a mayúsculas y minúsculas, así que LS es
incorrecto y se producirá un error, pero ls es correcto y se ejecutará.
sysadmin@localhost:~$ LS
-bash: LS: command not found
Típicamente, las opciones alteran el comportamiento del comando y los argumentos son elementos
o valores para el comando a actuar. Aunque haya algunos comandos en Linux que no son
completamente consistentes con esta sintaxis, la mayoría de los comandos usa esta sintaxis o algo
similar.
En el ejemplo anterior, el comando ls fue ejecutado sin opciones ni argumentos, cuando este es el
caso, su comportamiento por defecto es devolver una lista de archivos contenidos dentro del
directorio actual.
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Los Argumentos
comando [opciones…] [argumentos…]
Un argumento se puede utilizar para especificarle al comando sobre qué actuar. Al comando ls
puede dársele el nombre de un directorio como argumento, y mostrará el contenido de ese
directorio. En el siguiente ejemplo, el directorio Documents (o «documentos» en espaňol) se
utilizará como argumento:
sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt
Ya que Linux es un sistema de código abierto (o «open source» en inglés), hay algunos secretos
interesantes que los desarrolladores le han añadido. Por ejemplo, el comando aptitude es una
herramienta de gestión de paquetes disponible en algunas distribuciones de Linux. Este comando
acepta moo como argumento:
sysadmin@localhost:~$ aptitude moo
There are no Easter Eggs in this program.
o en espaňol:
Hay más trucos de los que se ven a simple vista. ¡Sigue leyendo!
Linux es de código abierto! Linux es desarrollado por una comunidad, usted ve y contribuye al
código fuente!
Las Opciones
comando [opciones…] [argumentos…]
A menudo se elige un carácter mnemotécnico (tecla de acceso) para su propósito, tal como
eligiendo la letra l para largo o r para el reverso. Por defecto el comando ls imprime los resultados
en orden alfabético, así que añadiendo la opción -r imprimirá los resultados en el orden alfabético
inverso.
sysadmin@localhost:~$ ls -r
Videos Templates Public Pictures Music Downloads Documents Desktop
Las opciones múltiples pueden utilizarse a la vez, o bien como opciones separadas como la -l -
r o combinadas -lr. La salida de todos estos ejemplos sería la misma:
ls -l -r
ls -rl
ls -lr
Como se explicó anteriormente, la opción -l da salida a un formato de listado largo mientras que la
-r invierte la lista. El resultado del uso de ambas opciones es un listado largo dado en orden
inverso:
sysadmin@localhost:~$ ls -l -r
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads
drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop
sysadmin@localhost:~$ ls -rl
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads
drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop
En definitiva, los comandos pueden utilizar muchas combinaciones de opciones y argumentos, así
pues las posibilidades para cada comando serán únicas. ¿Recuerdas la sorpresa de la de la opción
aptitude?
sysadmin@localhost:~$ aptitude moo
There are no Easter Eggs in this program.
Es posible alterar el comportamiento de este comando utilizando las opciones. Observa lo que
sucede cuando se agrega la opción -v (verbose o «salida detallada» en español):
sysadmin@localhost:~$ aptitude -v moo
There really are no Easter Eggs in this program.
Combinando las múltiples opciones -v, podemos obtener una variedad de respuestas:
sysadmin@localhost:~$ aptitude -vv moo
Didn't I already tell you that there are no Easter Eggs in this program?
sysadmin@localhost:~$ aptitude -vvv moo
Stop it!
Recuerda que las opciones múltiples pueden ser introducidas por separado o combinadas:
aptitude -v -v moo
aptitude -vv moo
¡Sigue añadiendo las opciones -v para que veas cuántas respuestas únicas puedes obtener!
Para considerar
¡Aún no enciendas tu impresora! En los inicios de la informática la salida de línea de comandos
sería enviada a las impresoras físicas. Este método fue reemplazado por pantallas de video que
pueden mostrar la información más rápidamente. Todavía usamos la palabra imprimir (o «print» en
inglés) a pesar de que la salida sólo se está visualizando en la pantalla.
sysadmin@localhost:~$ pwd
/home/sysadmin
La salida del comando anterior indica que el usuario está actualmente en su carpeta de inicio, que se
muestra en el sistema de archivos a continuación.
Para considerar
Observa que nuestras máquinas virtuales emplean un prompt que muestra el directorio actual de
trabajo, acentuado con el color azul. En el primer prompt abajo, el ~ azul es equivalente a
/home/sysadmin, que representa el directorio de inicio del usuario.
sysadmin@localhost:~$
Argumentos
La mayoría de los comandos siguen una sintaxis muy simple:
comando [opciones…] [argumentos…]
En otras palabras, cuando tecleas un comando, lo haces seguido de opciones (que no siempre son
requeridas) y después argumentos antes de presionar la tecla Intro o Enter. Aunque existen algunos
comandos en Linux que no la siguen, la mayoría de ellos utilizan esta sintaxis o algo similar.
Después de teclear un comando y cualquiera de sus opciones, la mayoría de ellos aceptará uno o
más argumentos. En general, los comandos que usan argumentos pueden requerir uno o más de
ellos. Por ejemplo, el comando touch es utilizado para crear un archivo. Este comando requiere
que especifiques al menos un argumento para definir el nombre del archivo sobre el que tiene que
operar. Si ejecutas este comando sin ningún argumento, recibirás un mensaje de error como el
siguiente:
sysadmin@localhost:~$ touch
touch: missing file operand
Try 'touch --help' for more information.
A diferencia del comando touch, el comando ls permite que el nombre del archivo sea opcional y
no genera un mensaje de error si no lo incluyes. Si no se incluye un argumento, el comando ls
despliega por defecto el contenido del directorio actual:
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
sysadmin@localhost:~$ ls test
adjectives.txt alpha.txt linux.txt people.csv
alpha-first.txt animals.txt longfile.txt profile.txt
alpha-first.txt.original food.txt newhome.txt red.txt
alpha-second.txt hidden.txt numbers.txt
alpha-third.txt letters.txt os.csv
Algunos comandos como por ejemplo el comando cp (copiar archivo) y el comando mv (mover
archivo), requieren al menos dos argumentos: el nombre del archivo de origen y el nombre del
archivo para el destino. Observa el siguiente ejemplo donde se incluyen dos argumentos:
"/etc/services" y "test". Esto significa que el archivo "services" ubicado en el
directorio "etc" es copiado al directorio llamado "test":
sysadmin@localhost:~$ cp /etc/services test
Opciones
Si es necesario añadir opciones a un commando, estas deben ser tecleadas después del nombre del
comando. Existen opciones cortas y opciones largas. Las opciones cortas son especificadas
mediante un guión seguido por un solo carácter y son las que se utilizan de manera frecuente.
Comúnmenteel símbolo o carácter utilizado en una opción corta, es la representación mnemónica de
su propósito. Por ejemplo, la elección de la letra "l” para significar “largo”.
En el siguiente ejemplo, la opción -l utilizada con el comando ls, da como resultado un listado
“largo” o extendido. Esto significa que se despliega más información de cada archivo listado en la
pantalla:
sysadmin@localhost:~$ ls -l
total 0
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Desktop
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Documents
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Downloads
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Music
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Pictures
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Public
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Templates
drwxr-xr-x 1 sysadmin sysadmin 0 Jan 29 2015 Videos
Si observas detenidamente los dos últimos ejemplos, notarás que los archivos son listados al revés
de como fueron listados en el primer ejemplo de esta página. Esto se debe a que en los dos últimos
ejemplos, ¡añadimos la opción -r! Prueba tú ahora ambos ejemplos en la terminal.
Generalmente, las opciones cortas se pueden combinar con otra opciones cortas en cualquier orden.
La excepción a esta regla es cuando la opción requiere un argumento.
Por ejemplo, la opción -w para el comando ls especifica el ancho deseado para desplegar el
resultado de la ejecución del commando y por lo tanto requiere de un argumento.
Mira que pasa si tratamos de ejecutar el comando ls -w sin ningún argumento o valor para la
opción -w:
sysadmin@localhost:~$ ls -w
ls: option requires an argument -- 'w'
Try 'ls --help' for more information.
Como puedes ver, el sistema envía un mensaje de error. Asi que este comando no será exitoso a
menos que se especifique un valor para la opción -w. Por ejemplo, si deseamos que el resultado del
comando únicamente despliegue 10 caracteres, podemos lograrlo utilizando el número 10 como
argumento de la opción -w:
sysadmin@localhost:~$ ls -w 10
Desktop
Documents
Downloads
Music
Pictures
Public
Templates
Videos
test
Nota: El comportamiento de las opciones depende del comando con el que se está utilizando.
Si se combina con otras opciones, la opción -w debe ser especificada al último, seguida de su
argumento y seguirá siendo válida, como por ejemplo ls -RW 40 que especifica un ancho de
salida de 40 caracteres. De otra manera, la opción -w no puede ser combinada con otras opciones y
debe ser ejecutada por separado.
sysadmin@localhost:~$ ls -rw 40
Videos Pictures Documents
Templates Music Desktop
Public Downloads
Cuando utilices múltiples opciones que requieren argumentos, no las combines. Por ejemplo, la
opción -T requiere también un argumento. Para poder aceptar los argumentos de cada opción estas
deben registrarse de manera individual.
sysadmin@localhost:~$ ls -w 40 -T 12
Desktop Music Templates
Documents Pictures Videos
Downloads Public
Algunas comandos soportan opciones adicionales que son más largas que un solo carácter. Estas
opciones se conocen como opciones largas. Las opciones largas de un comando están precedidas
por un guión doble -- y, usualmente, el nombre de la opción indica el resultado que se busca. Por
ejemplo, la opción larga --all sirve para incluir los archivos ocultos en el resultado:
sysadmin@localhost:~$ ls --all
. .bashrc .selected_editor Downloads Public
.. .cache Desktop Music Templates
.bash_logout .profile Documents Pictures Videos
En los comandos que aceptan ambas opciones (largas y cortas), es permitido ejecutar el comando
usando ambas al mismo tiempo. Observa que la opción corta -a obtiene el mismo resultado que su
contraparte larga -all. En el siguiente ejemplo, hemos añadido la opción --reverse para
invertir el orden de la lista:
sysadmin@localhost:~$ ls -a --reverse
Videos Pictures Documents .profile .bash_logout
Templates Music Desktop .cache ..
Public Downloads .selected_editor .bashrc .
Los comandos que soportan las opciones largas frecuentemente soportan argumentos que pueden
ser especificados con o sin un signo de igual. Para ordenar el resultado por tiempo (fecha/hora) en
lugar de los nombres de los archivos, utiliza uno de los siguientes comandos. (el resultado de ambos
comandos es el mismo).
1. ls --sort time
2. ls --sort=time
sysadmin@localhost:~$ ls --sort=time
Desktop Documents Downloads Music Pictures Public Templates Videos
Existe una opción especial conocida como el doble guión "solitario” --. Esta opción puede utilizarse
para indicar que no hay más opciones para el comando. Esto puede ser útil en algunos casos en los
que es difícil saber si el texto que sigue a las opciones debe ser interpretado como una opción
adicional o como un argumento para el comando.
Por ejemplo, si quisiéramos utilizar el comando touch para actualizar la marca de tiempo de un
archivo llamado --badname, obtendríamos el siguiente resultado:
sysadmin@localhost:~$ touch --badname
touch: unrecognized option '--badname'
Try 'touch --help' for more information.
Considera Esto:
El ejemplo anterior utiliza el comando touch. El objetivo de este comando es actualizar las marcas
de tiempo en los archivos. En caso de que el archivo no exista entonces el comando crea un nuevo
archivo vacío con ese nombre. En el ejemplo de arriba dado que el archivo llamado “--badname” no
existe, el comando creó un nuevo archivo con ese mismo nombre (--badname). En la siguiente
imagen de la terminal, observa que el archivo “--badname” es listado al ejecutar el comando ls.
Ya te habrás dado cuenta que en el ejemplo que pusimos, el resultado es un mensaje de error. Esto
es así porque el comando touch intenta interpretar --badname como una opción en lugar de un
argumento. Por el contrario, si colocamos el doble guión solitario -- delante del nombre del
archivo, entonces el comando encuentra una señal que le indica que ya no hay más opciones y el
nombre del archivo es interpretado de manera exitosa como un argumento:
sysadmin@localhost:~$ touch -- --badname
sysadmin@localhost:~$ ls
--badname Documents Music Public Videos
Desktop Downloads Pictures Templates
Nota: El nombre del archivo en el ejemplo anterior (--badname) se considera “malo” porque
aunque es permitido colocar un guión al inicio del nombre, esto puede causar problemas cuando se
trata de acceder al archivo.
Considera Esto:
Existe una tercera opción para ciertos comandos. Esta sintaxis “sin guión” es poco común en la
mayoría de las distribuciones de Linux pero hay algunos comandos importantes que apoyan esta
sintaxis. Estos commandos son ps y tar; ambos también soportan las opciones de uno solo o
doble guión.
En la imagen de la terminal debajo de este texto, hay dos comandos similares, el primer comando se
ejecuta usando opciones bajo el estilo de UNIX tradicional (con un guión sencillo) y el segundo
comando se ejecuta usando una opción usando el estilo BSD (sin guión).
sysadmin@localhost:~$ ps -u sysadmin
PID TTY TIME CMD
79 ? 00:00:00 bash
122 ? 00:00:00 ps
sysadmin@localhost:~$ ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
sysadmin 79 0.0 0.0 18176 3428 ? S 20:23 0:00 -bash
sysadmin 120 0.0 0.0 15568 2040 ? R+ 21:26 0:00 ps u
El propósito de estos comandos está más allá del alcance de este módulo, para más información
acude al curso NDG Linux Essentials (Fundamentos de Linux de NDG).
Cambiando Directorios
Los archivos se utilizan para almacenar datos tales como texto, gráficos y programas. Los
directorios se utilizan para guardar archivos y proporcionar una estructura de organización
jerárquica. La imagen de abajo muestra una versión abreviada de la estructura del sistema de
archivos en las máquinas virtuales.
Al iniciar una máquina virtual nueva, abriendo el curso o después usando el botón reiniciar, estás
registrado como usuario sysadmin en tu directorio de inicio:
Para navegar por la estructura del sistema de archivos, utiliza el comando de cd (change directory o
«cambiar directorio» en español) para cambiar directorios.
cd [opciones] [ruta]
Si nos fijamos en el gráfico anterior, el directorio Documents está ubicado en el directorio home,
donde se encuentra actualmente. Para moverte a un directorio desde tu ubicación actual, utilizalo
como argumento para el comando cd:
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
Los directorios equivalen a las carpetas en Windows y Mac OS. Al igual que estos sistemas
operativos más populares, una estructura de directorios de Linux tiene un nivel superior. No se
llama «Mi PC», sino más bien el directorio root (o «raíz» en español) y está representado por el
carácter /. Para moverse al directorio raíz, utiliza el carácter / como argumento para el comando
cd.
sysadmin@localhost:~$ cd /
El argumento para el comando cd es más que sólo el nombre de un directorio, en realidad es una
ruta de acceso (o «path» en inglés). Una ruta de acceso es una lista de directorios separados por el
carácter /. Por ejemplo, /home/sysadmin es la ruta de acceso a tu directorio de inicio:
Si piensas en el sistema de archivos como un mapa, las rutas de acceso son las indicaciones paso a
paso; pueden ser utilizadas para indicar la ubicación de cualquier archivo dentro del sistema de
archivos. Hay dos tipos de rutas de acceso: absoluta y relativa. Las rutas absolutas comienzan con
el directorio raíz del sistema de archivos, las rutas relativas se consideran a partir de tu ubicación
actual en el sistema de archivos.
Utiliza esta ruta como el argumento para el comando cd para retroceder al directorio de inicio del
usuario sysadmin.
sysadmin@localhost:/$ cd /home/sysadmin
sysadmin@localhost:~$
Si no hay salida, esto significa que el comando tuvo éxito. Sigue adelante y confírmalo mediante el
comando pwd:
sysadmin@localhost:~$ pwd
/home/sysadmin
Una ruta de acceso relativa comienza con el directorio actual. Sin embargo, no lo incluye en la ruta.
Primero pasa al directorio School, y luego al directorio Art. Utiliza el carácter / para separar los
nombres de directorio. El resultado School/Art es una ruta relativa desde el directorio
Documents al directorio Art.
Utiliza la ruta relativa como un argumento para el comando cd para entrar al directorio Art.
sysadmin@localhost:~/Documents/$ cd School/Art
sysadmin@localhost:~/Documents/School/Art$
Para considerar
La salida del comando pwd es la ruta absoluta al directorio School.
Una ruta de acceso puede también dividirse en múltiples comandos cd. El siguiente conjunto de
comandos lograría los mismos resultados:
cd School
cd Art
El Carácter « . »
Sin importar en qué directorio estás, el carácter . siempre representa tu directorio actual. Para el
comando cd este acceso directo no es muy útil, pero será muy útil para otros comandos.
El carácter ~
El directorio de inicio del usuario actual está representado por el carácter ~. Como se mencionó
anteriormente, siempre comienzas como un usuario sysadmin, y su inicio se encuentra en
/home/sysadmin. Para volver a tu directorio de inicio en cualquier momento puedes ejecutar el
siguiente comando:
sysadmin@localhost:~/Documents/School$ cd ~
Listado de Archivos
El comando ls se utiliza para listar el contenido de un directorio. Ya lo has visto usado un par de
veces antes en los ejemplos, pero esta página te ayudará a estar cómodo al utilizarlo.
ls [OPCIONES] [ARCHIVO]
De forma predeterminada, cuando el comando ls se utiliza sin opciones o argumentos, listará los
archivos en el directorio actual:
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates Videos
Para conocer los detalles de un archivo, como el tipo de archivo, los permisos, la propiedad o la
fecha y hora, realiza un listado largo utilizando la opción -l para el comando ls. A continuación,
vamos a ver un listado del directorio /var/log como un ejemplo, puesto que proporciona una
salida variada:
sysadmin@localhost:~$ ls -l /var/log/
total 832
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log
drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2
drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt
-rw-r----- 1 syslog adm 380 Jul 28 03:45 auth.log
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp
-rw-r----- 1 syslog adm 324 Jul 28 03:45 cron.log
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
drwxr-xr-x 2 root root 4096 Jun 30 06:53 fsck
-rw-r----- 1 syslog adm 106 Jul 28 03:45 kern.log
-rw-rw-r-- 1 root utmp 292584 Jul 28 03:45 lastlog
-rw-r----- 1 syslog adm 18703 Jul 28 03:46 syslog
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Jul 28 03:45 wtmp
Cada línea corresponde a un archivo dentro del directorio. La información puede dividirse en
campos separados por espacios. Los campos son los siguientes:
1. Tipo de archivo
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log
drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2
El primer campo en realidad contiene diez caracteres, donde el primer carácter indica el tipo
de archivo y los siguiente nueve especifican los permisos. Los tipos de archivo son:
Los Permisos
drwxr-xr-x 1 root root 0 Apr 11 21:58 upstart
Los permisos indican de qué manera determinados usuarios pueden acceder a un archivo.
Sigue leyendo para aprender más acerca de los permisos.
2. Cuenta de Vínculo Físico
-rw-r----- 1 syslog adm 23621 Aug 23 15:17 auth.log
Este número indica cuántos vínculos físicos apuntan a este archivo. Los vínculos físicos
están más allá del alcance de este módulo, pero se cubren en el curso de NDG Linux
Essentials.
3. Usuario Propietario
-rw-r----- 1 syslog adm 416 Aug 22 15:43 kern.log
El usuario syslog es el propietario de este archivo. Cada vez que se crea un archivo, la
propiedad se asigna automáticamente al usuario que lo creó.
4. Grupo Propietario
-rw-rw-r-- 1 root utmp 292584 Aug 20 18:44 lastlog
Esto indica el momento en el que el contenido del archivo se modificó por última vez.
7. Nombre de archivo
-rw-r--r-- 1 root root 47816 Jul 17 03:36 bootstrap.log
Los vínculos simbólicos están más allá del alcance de este módulo, pero están cubiertos en
el curso NDG Linux Essentials.
Ordenación
Por defecto la salida del comando ls está ordenada alfabéticamente por nombre de archivo. Puede
ordenarse por otros métodos.
Observa
Las opciones en los siguientes ejemplos se combinarán con la opción -l para que los detalles
pertinentes de los archivos se muestran. Observa los campos correspondientes a la opción de la
búsqueda.
La opción -t ordenará los archivos por fecha y hora:
sysadmin@localhost:~$ ls -lt /var/log
total 840
-rw-r----- 1 syslog adm 27014 Jul 28 00:10 syslog
-rw-r----- 1 syslog adm 380 Jul 27 23:10 auth.log
-rw-rw-r-- 1 root utmp 292584 Jul 27 23:10 lastlog
-rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp
-rw-r----- 1 syslog adm 324 Jul 27 23:10 cron.log
-rw-r----- 1 syslog adm 106 Jul 27 23:10 kern.log
drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2
drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
La opción -S ordenará los archivos por tamaño del archivo:
sysadmin@localhost:~$ ls -l -S /var/log
total 840
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
-rw-rw-r-- 1 root utmp 292584 Jul 27 23:10 lastlog
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
-rw-r----- 1 syslog adm 27014 Jul 28 00:10 syslog
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log
drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2
drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt
drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp
-rw-r----- 1 syslog adm 380 Jul 27 23:10 auth.log
-rw-r----- 1 syslog adm 324 Jul 27 23:10 cron.log
-rw-r----- 1 syslog adm 106 Jul 27 23:10 kern.log
-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp
La opción -r invierte el orden de cualquier tipo de orden. Observa la diferencia cuando se añade al
ejemplo anterior:
sysadmin@localhost:~$ ls -lSr /var/log
total 840
-rw-rw---- 5 root utmp 0 Mar 2 23:10 btmp
-rw-r----- 1 syslog adm 106 Jul 27 23:10 kern.log
-rw-r----- 1 syslog adm 324 Jul 27 23:10 cron.log
-rw-r----- 1 syslog adm 380 Jul 27 23:10 auth.log
-rw-rw-r-- 1 root utmp 384 Jul 27 23:10 wtmp
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
drwxr-xr-x 2 root root 4096 Jun 30 06:56 fsck
drwxr-xr-x 2 root root 4096 Mar 14 17:45 apt
drwxr-x--- 2 root adm 4096 Mar 14 17:48 apache2
-rw-r--r-- 1 root root 17869 Mar 14 17:48 alternatives.log
-rw-r----- 1 syslog adm 27014 Jul 28 00:10 syslog
-rw-r--r-- 1 root root 32064 Mar 14 17:48 faillog
-rw-r--r-- 5 root root 47816 Mar 2 23:10 bootstrap.log
-rw-r----- 1 root adm 85083 Mar 14 17:48 dmesg
-rw-rw-r-- 1 root utmp 292584 Jul 27 23:10 lastlog
-rw-r--r-- 1 root root 315196 Mar 14 17:48 dpkg.log
Acceso Administrativo
Hay muchos comandos de Linux que lidian con la información sensible como contraseñas,
hardware del sistema, u operan bajo otras circunstancias excepcionales. Previniendo que los
usuarios habituales ejecuten estos comandos ayuda a proteger el sistema. Iniciar la sesión como el
usuario root proporciona acceso de administrador, lo que permite la ejecución de algunos de los
comandos privilegiados.
El Comando su
su OPCIONES USUARIO
El comando su te permite actuar temporalmente como un usuario diferente. Esto se logra mediante
la creación de un nuevo shell. Por defecto, si no se especifica una cuenta de usuario, el comando su
abre un nuevo shell como usuario root, que proporciona privilegios administrativos.
Observa
Se recomienda utilizar la opción login shell, ya que el login shell configura un shell completamente
nuevo con la configuración del nuevo usuario. Esta opción puede ser especificada de tres maneras:
su -
su -l
su --login
Después de ejecutar el comando su, se requiere una contraseña. En nuestras máquinas virtuales, la
contraseña para ambas cuentas, la de root y, sysadmin es netlab123. Si la olvidas, ésta se
muestra cada vez que se inicia una nueva máquina virtual. Como medida de seguridad, la
contraseña no será visible cuando la vas introduciendo.
sysadmin@localhost:~$ su -
Password:
root@localhost:~#
Observa que el prompt de comando ha cambiado para reflejar que has iniciado la sesión como
usuario root. Para cerrar la sesión y volver a la cuenta sysadmin, utiliza el comando exit.
Observa que el prompt cambia de nuevo:
root@localhost:~# exit
exit
sysadmin@localhost:~$
Para evitar que se ejecuten los comandos sensibles, hemos configurado el comando Steam
Locomotive (o «locomotora de vapor» en español), el comando de sl, que requiere acceso de
administrador. Si el comando se ejecuta como sysadmin, fallará:
sysadmin@localhost:~$ sl
sl: Permission denied
Utiliza el comando su para cambiar a la cuenta de root y ejecuta el comando de sl con acceso
administrativo:
sysadmin@localhost:~$ su -
Password:
root@localhost:~# sl
(@@) ( ) (@) ( ) @@ () @ O @
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|____________________
|/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/ \_/
El Comando sudo
sudo [OPCIONES] COMANDO
El comando sudo permite que el usuario ejecute un comando como otro usuario sin crear un nuevo
shell. En cambio, para ejecutar un comando con privilegios de administrador, utilizalo como
argumento para el comando sudo. Igual que el comando su, el comando sudo asume por defecto
que la cuenta del usuario root debe utilizarse para ejecutar comandos.
Para considerar
El comando sudo puede ser usado para utilizar temporalmente otras cuantas también. Para
especificar otro usuario de cuenta utiliza la opción -u.
Nota:
Recuerda que la contraseña es netlab123. El prompt de la contraseña no aparecerá de nuevo
mientras el usuario continúa ejecutando comandos sudo con diferencia de menos de cinco
minutos.
Una vez que el comando haya terminado y el prompt no haya cambiado, sigues registrado como
sysadmin. El comando sudo sólo proporciona acceso administrativo para la ejecución del
comando especificado. Esto es una ventaja, ya que reduce el riesgo de que un usuario
accidentalmente ejecute un comando como root. La intención de ejecutar un comando es clara; el
comando se ejecuta como root si tiene como prefijo el comando sudo. De lo contrario, se ejecuta
el comando como un usuario normal.
Los Permisos
Los permisos determinan en que manera los diferentes usuarios pueden interactuar con un archivo o
directorio. Cuando se lista un archivo con el comando ls -l, la salida incluye información de
permiso. Por ejemplo, vamos a usar un script llamado hello.sh ubicado en el directorio
Documents:
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
A continuación vas a ver una revisión de los campos correspondientes a los permisos.
El primer carácter de esta salida indica el tipo de un archivo. Recuerda que si el primer carácter es
un -, entonces es un archivo regular. Si el carácter era una d, entonces es un directorio.
Después del carácter del tipo de archivo, se muestran los permisos. Los permisos se dividen en tres
grupos de tres caracteres:
1. Propietario
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
El primer grupo para el usuario que posee el archivo. Si tu cuenta actual es el usuario
propietario del archivo, entonces se aplicará el primer grupo de los tres permisos y los otros
permisos no tienen ningún efecto.
El usuario que posee el archivo y a quién se aplican estos permisos, puede ser determinado
por el campo de user owner:
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
2. Grupo
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
3. Otro
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
El último conjunto para todos los demás, cualquier usuario a quien no le aplican los otros
dos conjuntos de permisos. Si no eres el usuario propietario del archivo o un miembro del
grupo que posee el archivo, se te aplicaran el tercer conjunto de permisos.
En este escenario, el usuario sysadmin acaba teniendo menos acceso a este archivo que los
miembros del grupo staff o cualquier otro. El usuario sysadmin sólo tiene permisos de r--.
No importa si el usuario sysadmin es un miembro del grupo staff; una vez se ha establecido la
propiedad del usuario, se aplicarán sólo los permisos del usuario propietario.
Expresiones Regulares
Las expresiones regulares tienen dos formas comunes: básica y extendida. La mayoría de los
comandos que utilizan expresiones regulares pueden interpretar las expresiones regulares básicas.
Por el contrario, las expresiones regulares extendidas no están disponibles para todos los comandos
y una opción del comando es generalmente necesaria para que funcionen correctamente.
La siguiente tabla resume los caracteres básicos de las expresiones regulares:
Caracteres Básicos de
Expresiones Regulares Significado
(Regex)
. Cualquier carácter individual
[ ] Cualquier carácter específico
[^ ] No el carácter especificado
* Cero o más del carácter anterior
Si es el primer carácter en el patron de búsqueda, entonces el patrón
^ debe estar al principio de la línea para ser una coincidencia, si no, se
toma literalmente el carácter ˆ
Si es el último carácter en el patron de búsqueda, entonces el patrón
$ debe estar al final de la línea para ser una coincidencia, si no, se toma
literalmente el carácter $
La siguiente tabla resume las expresiones regulares extendidas, que deben ser utilizadas ya sea con
el comando egrep o la opción -E con el comando grep:
Observa que si no se especifica un nombre de archivo, el comando grep leerá los datos registrados
en la línea de comandos. Esto proporciona una experiencia interactiva con el comando grep, ya
que el usuario escribe desde el teclado y grep filtra el texto en paralelo. Pruébalo ahora mismo y
presiona la combinación de teclas Ctrl-D cuando estés listo para volver al línea de comandos.
Patrones Básicos
Muchos de los ejemplos a continuación utilizan los archivos que se encuentran en el directorio test.
Utiliza el comando cd para cambiarte a ese directorio y realiza los ejemplos tú mismo.
sysadmin@localhost:~$ cd ~/test
sysadmin@localhost:~/test$
Caracteres Ancla
Los caracteres ancla son una de las formas en que las expresiones regulares pueden ser utilizadas
para refinar los resultados de una búsqueda. Por ejemplo, el patrón root aparece muchas veces en
el archivo /etc/passwd:
sysadmin@localhost:~/test$ grep 'root' /etc/passwd
root:x:0:0:root:/root:bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
El primer carácter ancla ^ se utiliza para asegurar que un patrón aparece en el inicio de una línea.
Por ejemplo, para encontrar todas las filas en el archivo /etc/passwd que comienzan con root
utiliza el patrón ^root. No olvides que el símbolo ^ debe ser el primer carácter en el patrón para
ser efectivo.
sysadmin@localhost:~/test$ grep ^root /etc/passwd
root:x:0:0:root:/root:bin/bash
El segundo carácter ancla $ se puede utilizar para reducir efectivamente los resultados de una
búsqueda al asegurar que un patrón se encuentra al final de una línea en un archivo determinado.
Por ejemplo, para encontrar las líneas que terminan con la letra r en el archivo alfa-
first.txt, utiliza el patrón de búsqueda r$:
sysadmin@localhost:~/test$ grep 'r$' alpha-first.txt
B is for Bear
F is for Flower
Nuevamente, la posición del carácter es muy importante, el carácter $ debe ser el último carácter en
el patrón de búsqueda para ser eficaz como un ancla.
Emparejando un Carácter usando .
Una de las expresiones más útiles es el punto . Utilizado en un patrón de búsqueda, el punto
igualará cualquier carácter excepto el carácter de nueva línea. En el ejemplo de abajo, el archivo de
texto llamado red.txt contiene una lista de palabras que inician con la letra r :
sysadmin@localhost:~/test$ cat red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
Ahora, si definimos el siguiente patron de búsqueda r..t, vamos a ver que encontrará todas las
líneas que tengan una palabra que inicie con la letra r, seguido de exactamente dos caracteres (que
pueden ser cualquier carácter excepto el carácter para una nueva línea) y que después tengan la letra
t:
sysadmin@localhost:~/test$ grep r..t red.txt
root
Recordatorio: La línea no tiene qué coincidir exactamente, simplemente debe contener el patrón de
búsqueda como puede verse en la siguiente imagen al buscar r..t en el archivo /etc/passwd:
sysadmin@localhost:~/test$ grep r..t /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:1000:37::/root:
Para encontrar todas las filas en el archivo profile.txt que tienen un número, utiliza el patron
de búsqueda [0123456789] o [0-9]:
sysadmin@localhost:~/test$ cat profile.txt | grep [0-9]
I am 37 years old.
3121991
I have 2 dogs.
123456789101112
Por otro lado, para encontrar todas las filas que contienen caracteres no numéricos, inserta un ^
como el primer carácter dentro de los corchetes. Este carácter invalida los caracteres que sean
listados después de él:
sysadmin@localhost:~/test$ cat profile.txt | grep [^0-9]
Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.
Nota: No debes confundir [^0-9] como un patrón de búsqueda que haga coincidir líneas que no
contienen números porque que en realidad lo que hace es coincidir líneas que contienen caracteres
diferentes de números. Revisa el archivo original para que veas la diferencia.
Cuando otros caracteres de expresiones regulares se colocan entre corchetes, son tratados como
caracteres literales. Por ejemplo, en una búsqueda, el punto . normalmente se iguala con cualquier
carácter, pero cuando es colocado dentro de corchetes, va a corresponder a si mismo. En el siguiente
ejemplo, sólo las filas que contienen un punto . se hacen coincidir.
sysadmin@localhost:~/test$ cat profile.txt | grep [.]
Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.
También es posible hacer coincidir cero o más apariciones de una lista de caracteres utilizando
corchetes:
sysadmin@localhost:~/test$ cat red.txt | grep 'r[oe]*d'
red
reeed
rd
rod
reed
Cuando se utiliza con solo un carácter, * no es muy útil pues cualquiera de los siguientes patrones
.* e* b* z* coincidiría con cada una de las series de caracteres o filas en el archivo de texto.
Observa estos ejemplos:
sysadmin@localhost:~/test$ cat red.txt | grep 'z*'
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
Esto es debido a que * puede coincidir con cero ocurrencias de un patrón. Para hacer que el * sea
útil, es necesario crear un patrón que incluya un carácter más del carácter que precede *. Por
ejemplo, puedes refinar los resultados anteriores añadiendo otra e para hacer que el patrón ee *,
empareje cada fila que contenga al menos una e.
sysadmin@localhost:~/test$ cat file.txt | grep 'ee*'
red
reef
reeed
reed
reel
read
Cambiar los Permisos de Archivo
El comando chmod se utiliza para cambiar los permisos de un archivo o directorio. Sólo el usuario
root o el usuario que posee el archivo puede cambiar los permisos de un archivo.
Para considerar
¿Por qué el comando se llama chmod en vez de chperm? A los permisos se les solía referir como
modos de acceso, por lo que el comando chmod realmente significa cambiar los modos de acceso.
(o «change the modes of access» en inglés)
Hay dos métodos para cambiar los permisos con el comando chmod: simbólico y octal. El método
simbólico es bueno para cambiar un conjunto de permisos a la vez. El método octal o numérico
requiere el conocimiento del valor octal de cada uno de los permisos y requiere que todos los tres
conjuntos de permisos (usuario, grupo, otros) se especifiquen cada vez. Para la simplicidad, se
cubrirá sólo el método simbólico. Para aprender más sobre el método octal puedes consultar el
curso NDG Linux Essentials.
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
El Método Simbólico
chmod [<COJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Para utilizar el método simbólico del chmod primero tienes que indicar que conjunto de permisos
vas a cambiar:
chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
u Usuario: El usuario que posee el archivo.
g Grupo: El grupo que posee el archivo.
o Otros: Cualquiera que no sea el usuario propietario o miembro del grupo propietario.
a Todos: Se refiere al usuario, grupo y otros.
A continuación, especifica un símbolo de acción:
chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
+ Agregar el permiso, si es necesario
= Especificar el permiso exacto
- Quitar el permiso, si es necesario
Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres actuar.
chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Símbolo Significado
r lectura
w escritura
x ejecución
Por último, un espacio y los nombres de los archivos para asignar los permisos.
chmod [<CONJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Sin embargo en la actualidad, el permiso de ejecución no está configurado para ninguno de los
grupos de permisos:
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
Puesto que el sistema inició la sesión como el usuario sysadmin, y el sysadmin es el dueño de
este archivo, proporcionar al usuario propietario el permiso de ejecución debe permitirte ejecutar
este script. Al usar el comando chmod con el carácter u para representar el conjunto de permisos
del propietario usuario, el carácter + para indicar que se añade un permiso, y el carácter x para
representar el permiso de ejecución, el comando se debe ejecutar como sigue:
sysadmin@localhost:~/Documents$ chmod u+x hello.sh
Si no arroja una salida, esto significa que el comando se ha ejecutado correctamente. Comprueba
Confirme comprobando los permisos usando el comando ls -l:
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxrw-r-- 1 root sysadmin 112 Aug 1 03:48 hello.sh
Por último, trata de ejecutar el script otra vez. Utiliza la sintaxis del comando que se muestra a
continuación:
./hello.sh
sysadmin@localhost:~/Documents$ ./hello.sh
______________
( Hello World! )
--------------
\
\
<(^)
( )
Para considerar
Observa que para ejecutar la secuencia de comandos en el ejemplo anterior, la combinación de
caracteres . / fue colocada delante del nombre del script.
./hello.sh
Para cambiar el usuario propietario de un archivo, se puede utilizar la siguiente sintaxis. El primer
argumento [OWNER] especifica que el usuario debe ser el nuevo dueño. El segundo argumento
FILE especifica de qué archivo está cambiando de propiedad.
chown [OPCIONES] [DUEÑO] ARCHIVO
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Actualmente todos los archivos en el directorio Documents son propiedad del usuario
sysadmin. Esto se puede verificar mediante el uso del comando ls -l. Recuerda que la tercera
columna indica al usuario propietario.
sysadmin@localhost:~/Documents$ ls -l
total 148
drwxrwxr-x 2 sysadmin sysadmin 4096 Aug 1 03:40 School
drwxrwxr-x 2 sysadmin sysadmin 4096 Aug 1 03:40 Work
-rw-r--r-- 1 sysadmin sysadmin 39 Mar 14 17:48 adjectives.txt
-rw-r--r-- 1 sysadmin sysadmin 90 Mar 14 17:48 alpha-first.txt
-rw-r--r-- 1 sysadmin sysadmin 89 Mar 14 17:48 alpha-first.txt.original
-rw-r--r-- 1 sysadmin sysadmin 106 Mar 14 17:48 alpha-second.txt
-rw-r--r-- 1 sysadmin sysadmin 195 Mar 14 17:48 alpha-third.txt
-rw-r--r-- 1 sysadmin sysadmin 390 Mar 14 17:48 alpha.txt
-rw-r--r-- 1 sysadmin sysadmin 42 Mar 14 17:48 animals.txt
-rw-r--r-- 1 sysadmin sysadmin 14 Mar 14 17:48 food.txt
-rwxrw-r-- 1 sysadmin sysadmin 112 Aug 1 03:48 hello.sh
-rw-r--r-- 1 sysadmin sysadmin 67 Mar 14 17:48 hidden.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Mar 14 17:48 letters.txt
-rw-r--r-- 1 sysadmin sysadmin 83 Mar 14 17:48 linux.txt
-rw-r--r-- 1 sysadmin sysadmin 66540 Mar 14 17:48 longfile.txt
-rw-r--r-- 1 sysadmin sysadmin 235 Mar 14 17:48 newhome.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Mar 14 17:48 numbers.txt
-rw-r--r-- 1 sysadmin sysadmin 77 Mar 14 17:48 os.csv
-rw-r--r-- 1 sysadmin sysadmin 59 Mar 14 17:48 people.csv
-rw-r--r-- 1 sysadmin sysadmin 110 Mar 14 17:48 profile.txt
-rw-r--r-- 1 sysadmin sysadmin 51 Mar 14 17:48 red.txt
Para cambiar al propietario del script hello.sh al usuario root, utiliza root como primer
argumento y hello.sh como segundo argumento. No olvides utilizar el comando sudo para
obtener los privilegios de administrador necesarios. Utiliza la contraseña netlab123 cuando se
solicite:
sysadmin@localhost:~/Documents$ sudo chown root hello.sh
[sudo] password for sysadmin:
El campo de usuario propietario ahora es root lo que indica que el cambio fue exitoso.
Para considerar
Trata de ejecutar el script de hello.sh otra vez. ¡Se produce un error! ¿Por qué?
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
Sólo el usuario propietario tiene el permiso de ejecución, y ahora el usuario root es el usuario
propietario. Ahora, este archivo requiere acceso de administrador para que se ejecute. Utiliza el
comando sudo para ejecutar el script como usuario root.
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:
______________
( Hello World! )
--------------
\
\
<(^)
( )
El comando mv requiere al menos dos argumentos. El primer argumento es la fuente, una ruta para
el archivo que se va a mover. El segundo argumento es el destino, una ruta hacia dónde se moverá
el archivo. Los archivos que se quieren copiar a veces se denominan fuente y la ubicación a dónde
se van a colocar las copias se denominan destinos.
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Para mover el archivo people.csv al directorio Work, utiliza el nombre de archivo como la
fuente y el nombre del directorio como destino:
sysadmin@localhost:~/Documents$ mv people.csv Work
Si se mueve un archivo de un directorio a otro sin especificar un nuevo nombre para el archivo, se
conservará su nombre original. El paso anterior puede confirmarse mediante el comando ls en el
directorio Work:
sysadmin@localhost:~/Documents$ ls Work
people.csv
El comando mv puede mover varios archivos, siempre que el argumento final proporcione al
comando el destino. Por ejemplo, para mover tres archivos en al directorio School:
sysadmin@localhost:~/Documents$ mv numbers.txt food.txt alpha.txt School
sysadmin@localhost:~/Documents$ ls School
Art Engineering Math alpha.txt food.txt numbers.txt
Mover un archivo dentro del mismo directorio es una manera eficaz de cambiar el nombre. Por
ejemplo, en el siguiente ejemplo el archivo animals.txt recibe un nombre nuevo de zoo.txt:
mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt hidden.txt newhome.txt
Work alpha-third.txt letters.txt os.csv
adjectives.txt animals.txt linux.txt profile.txt
alpha-first.txt hello.sh longfile.txt red.txt
sysadmin@localhost:~/Documents$ mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt letters.txt os.csv
Work alpha-third.txt linux.txt profile.txt
adjectives.txt hello.sh longfile.txt red.txt
alpha-first.txt hidden.txt newhome.txt zoo.txt
Para Considerar
Los permisos pueden tener un impacto en los comandos de la administración de archivos, como el
comando mv. Mover un archivo requiere permisos de escritura y ejecución en ambos directorios, el
origen y el destino.
¡Pingüinos en el Espacio! NASA utiliza Linux. La Estación Espacial Internacional funciona en
Linux. Hemos migrado las funciones clave de Windows a Linux porque necesitábamos un sistema
operativo estable y fiable. El Mars Rover «Curiosity».
Copiar Archivos
Crear copias de los archivos puede ser útil por muchas razones:
Si se crea una copia de un archivo antes de hacer cambios, es posible volver al archivo
original.
Es útil para transferir un archivo a los dispositivos de medios extraíbles.
Una copia de un documento existente puede utilizarse como una plantilla para un nuevo
documento.
cp [OPCIONES] ORIGEN DESTINO
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
El comando cp se utiliza para copiar los archivos. Igual que el comando mv, éste también requiere
al menos dos argumentos: un origen y un destino. Por ejemplo, para copiar el archivo
/etc/passwd al directorio actual, utiliza el siguiente comando:
sysadmin@localhost:~/Documents$ cp /etc/passwd .
Nota:
El segundo argumento es el carácter . Recuerda de la sección de Cambiar de Directorios que es un
acceso directo que representa el directorio actual.
El resultado de ejecutar el comando anterior crearía una copia del contenido del archivo
/etc/passwd en el directorio Documents, ya que es el directorio actual. Esto puede
confirmarse mediante el comando ls:
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt letters.txt os.csv zoo.txt
Work alpha-third.txt linux.txt passwd
adjectives.txt hello.sh longfile.txt profile.txt
alpha-first.txt hidden.txt newhome.txt red.txt
Para Considerar
Los permisos pueden tener un impacto en los comandos de la administración del archivo, como el
comando cp. Para copiar un archivo, es necesario tener el permiso de ejecución para acceder al
directorio en el cuál se encuentra el archivo y el permiso de lectura para el archivo que se está
copiando.
También es necesario tener el permiso de escritura y de ejecución en el directorio al que se está
copiando el archivo. Por lo general, hay dos ubicaciones donde siempre debe tener los permisos de
escritura y ejecución en los directorios: el directorio home y el directorio /tmp.
Copiar Archivos
El comando dd es una utilidad para copiar los archivos o las particiones enteras a nivel de bit.
dd [OPCIONES] OPERANDO
Argumento Descripción
if Archivo de entrada: El archivo de entrada del que se hace la lectura.
Argumento Descripción
dd if=/dev/zero of=/tmp/swapex bs=1M count=50
Para considerar
Cuando se copia el dispositivo entero no hay que especificar tamaño de bloque o cantidad. Por
ejemplo, para clonar un disco duro (/dev/sda) a otro (/dev/sdb) ejecuta el siguiente comando:
dd if=/dev/sda of=/dev/sdb
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Sin opciones, el comando rm se utiliza típicamente para borrar los archivos regulares:
sysadmin@localhost:~/Documents$ rm linux.txt
sysadmin@localhost:~/Documents$ ls linux.txt
ls: cannot access linux.txt: No such file or directory
El comando rm ignorará los directorios que debía eliminar; para eliminar un directorio utiliza la
opción recursiva del parámetro, ya sea la opción -r o -R. Sólo ten cuidado puesto que esto
eliminará todos los archivos y todos los subdirectorios:
sysadmin@localhost:~/Documents$ rm Work
rm: cannot remove 'Work': Is a directory
sysadmin@localhost:~/Documents$ rm -r Work
Advertencia:
El comando rm elimina los archivos de manera permanente. Para repetir los ejemplos anteriores,
restablece la terminal utilizando el botón reset.
Para considerar
Los permisos pueden tener un impacto en los comandos de la administración de archivo, como el
comando rm.
Para eliminar un archivo en un directorio, el usuario debe tener permiso de escritura y permiso de
ejecución en un directorio. Los usuarios normales normalmente sólo tienen este tipo de permiso en
su directorio home y sus subdirectorios.
Copiando Archivos
El comando dd es una utilería para copiar archivos o particiones enteras a nivel de bits.
Sintaxis:
dd [OPCIONES] OPERANDO
Cuando se copian dispositivos completos, no deben ser especificados ni el tamaño de bloque (bs)
ni el contador (count). Por ejemplo, para clonar un disco duro (/dev/sda) a otro (/dev/sdb)
ejecuta el siguiente comando:
sysadmin@localhost:~$ dd if=/dev/sda of=/dev/sdb
Puedes usar el comando ddincluso para hacer una copia de seguridad del CD-ROM o DVD
mediante una imagen .iso. El siguiente ejemplo va a llevar todos los datos del DVD (/dev/dvd)
y los almacenara en un archivo local llamado dvd.iso:
sysadmin@localhost:~$ dd if=/dev/dvd of=dvd.iso
Considera esto
Los archivos de dispositivos son archivos que se utilizan para referirse a los dispositivos en el
sistema como son discos duros, CD-ROMs y las particiones del disco duro. La siguiente
información se proporciona para añadir claridad a los ejemplos que utilizan el comando dd:
1. /dev/sda -Un archivo de dispositivo que por lo general se refiere a la primera unidad de
disco duro en el sistema.
2. /dev/sdb - Un archivo de dispositivo que normalmente significa el segundo disco duro en
el sistema.
3. /dev/dvd -Un archivo de dispositivo que por lo general se refiere a la primera unidad de
DVD en el sistema.
Filtrado de Entrada
El comando grep es un filtro de texto que buscará las entradas y devolverá las líneas que coinciden
con el patrón determinado.
grep [OPCIONES] PATRÓN [ARCHIVO]
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
El comando anterior devuelve la línea del passwd que contiene el patrón sysadmin.
Nota:
Esta línea es la entrada /etc/passwd que pertenece al usuario sysadmin y proporciona
información que está fuera del alcance de este curso. Para más información sobre este archivo,
puedes consultar el curso NDG Linux Essentials.
El ejemplo anterior utiliza un término de búsqueda simple como el patrón, sin embargo grep puede
interpretar patrones de búsqueda mucho más complejos.
Los Caracteres
Significado
Regex Básicos
. Cualquier carácter individual
[ ] Cualquier carácter especificado
[^ ] No el carácter especificado
* Cero o más de los carácter previos
Si ^ es el primer carácter en el patrón, entonces el patrón debe estar al
^
principio de la línea que debe coincidir, de lo contrario solo un literal ^.
Si $ es el último carácter en el patrón, entonces el patrón debe estar al final
$
de la línea que debe coincidir, de lo contrario solo un literal $.
La siguiente tabla resume las expresiones regulares extendidas, que se deben utilizar con el
comando egrep o la opción -E con el comando grep:
Patrones Básicos
Las expresiones regulares son patrones que sólo determinados comandos pueden interpretar. Las
expresiones regulares pueden ampliarse para que coincidan con ciertas secuencias de caracteres en
el texto. Los ejemplos que aparecen en esta página harán uso de las expresiones regulares para
demostrar su poder cuando se utilizan con el comando grep. Además, estos ejemplos proporcionan
una demostración muy visual de cómo funcionan las expresiones regulares, el texto que coincide
con los patrones de búsqueda se mostrará en rojo.
Observa
Utiliza el siguiente comando cd para cambiar al directorio Documents.
sysadmin@localhost:~$ cd ~/Documents
La más simple de todas las expresiones regulares utiliza solamente los caracteres literales, como en
el ejemplo de la página anterior:
sysadmin@localhost:~/Documents$ grep sysadmin passwd
sysadmin:x:1001:1001:System Administrator,,,,:/home/sysadmin
Para evitar que el shell los malinterprete como caracteres especiales, estos patrones deben
protegerse por comillas fuertes, lo que significa simplemente ponerla entre comillas simples.
El primer carácter de anclaje ^ se utiliza para asegurar que un patrón aparezca al principio de la
línea. Por ejemplo, para encontrar todas las líneas en /etc/passwd que comienzan con root,
utiliza el patrón ^root. Ten en cuenta que ^ debe ser el primer carácter en el patrón para que sea
eficaz.
sysadmin@localhost:~/Documents$ grep '^root' /etc/passwd
root:x:0:0:root:/root:bin/bash
El segundo carácter de anclaje $ se puede utilizar para un patrón que aparece al final de la línea
para reducir resultados de búsqueda de manera eficiente. Para encontrar las líneas que terminan con
una r en el archivo alfa-first.txt, utiliza el patrón r$:
sysadmin@localhost:~/Documents$ grep 'r$' alpha-first.txt
B is for Bear
F is for Flower
Una vez más, la posición de este carácter es importante, el $ debe ser el último carácter en el patrón
para que sea eficaz como un ancla.
Una de las expresiones más útiles es el . Coincidirá con cualquier carácter excepto el carácter que
define un salto de línea. El patrón r..f encuentra cualquier línea que contiene la letra r seguida
por exactamente dos caracteres (que pueden ser cualquier carácter menos un salto de línea) y luego
la letra f:
sysadmin@localhost:~/Documents$ grep 'r..f' red.txt
reef
roof
El mismo concepto puede ser repetido utilizando otras combinaciones. El siguiente ejemplo
encontrará palabras de cuatro letras que inician con r y terminan con d:
sysadmin@localhost:~/Documents$ grep 'r..d' red.txt
reed
read
Este carácter puede ser utilizado cualquier número de veces. Para encontrar todas las palabras que
tengan al menos cuatro caracteres puedes usar el siguiente patrón:
sysadmin@localhost:~/Documents$ grep '....' red.txt
reef
reeed
roof
reed
root
reel
read
La línea no tiene que ser una coincidencia exacta, simplemente tiene que contener el patrón, como
se ve aquí cuando se busca r..t en el archivo /etc/passwd:
sysadmin@localhost:~/Documents$ grep 'r..t' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:1000:37::/root:
Para encontrar todas las líneas en el archivo profile.txt que incluyen un número, utiliza el
patrón [0123456789] o [0-9]:
sysadmin@localhost:~/Documents$ grep '[0-9]' profile.txt
I am 37 years old.
3121991
I have 2 dogs.
123456789101112
Por otro lado, para encontrar todas las líneas que contienen caracteres no numéricos, introduce un ^
como el primer carácter dentro de los corchetes. Este carácter niega los caracteres incluidos en los
corchetes:
sysadmin@localhost:~/Documents$ grep '[^0-9]' profile.txt
Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.
Nota
No confundas [^0-9] para buscar líneas que no contienen números. En realidad la búsqueda
coincidirá con las líneas que contienen caracteres no numéricos. Observa el archivo original para
ver la diferencia. La tercera y sexta líneas contienen sólo números, no contienen caracteres no
numéricos, por lo que esas dos líneas no coinciden con el patrón de búsqueda.
Cuando otros caracteres de expresiones regulares se colocan dentro de los corchetes, se consideran
caracteres literales. Por ejemplo, el carácter . normalmente coincide con cualquier carácter, pero si
se coloca dentro de los corchetes, entonces sólo coincidirá con sí mismo. En el siguiente ejemplo,
sólo las líneas que contienen el carácter . coincidirán.
sysadmin@localhost:~/Documents$ grep '[.]' profile.txt
Hello my name is Joe.
I am 37 years old.
My favorite food is avocados.
I have 2 dogs.
También es posible que coincida con cero o más ocurrencias de una lista de caracteres utilizando los
corchetes. El patrón [oe]* utilizado en el siguiente ejemplo coincidirá con cero o más ocurrencias
del carácter o o bien el carácter e:
sysadmin@localhost:~/Documents$ grep 'r[oe]*d' red.txt
red
reeed
rd
rod
reed
Cuando se usa solo con un carácter, * no es muy útil. Cualquiera de los siguientes patrones
coincidirá con cualquier cadena o línea en el archivo: .* e* b* z*.
sysadmin@localhost:~/Documents$ grep 'z*' red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
Esto es porque * puede coincidir con cero ocurrencias de un patrón. Para que el * sea útil, es
necesario crear un patrón que incluya más de un carácter antes de *. Por ejemplo, los resultados
anteriores se pueden refinar añadiendo otra letra e para que el patrón ee* coincida de manera
efectiva con cada línea que contenga al menos una e.
sysadmin@localhost:~/Documents$ grep 'ee*' red.txt
red
reef
reeed
reed
reel
read
Entrada estándar
Si no se proporciona un nombre de archivo, el comando grep leerá desde la entrada estándar, que
normalmente es la información proporcionada mediante el teclado por el usuario que ejecuta el
comando. Esta acción proporciona una experiencia interactiva con el comando grep ya que el
usuario teclea la entrada y el comando grep la va filtrando. Siéntete libre de probarlo, solo
presiona Ctrl-D cuando estés listo para regresar al prompt.
Observa
Usa el siguiente commando cd para regresar al directorio de inicio:
sysadmin@localhost:~/Documents$ cd ~
Linux es Código Abierto ¡Lo que lo hace extremadamente versátil!
Internet de las Cosas // Cómputo en la Nube // Big Data // DevOps
Redes // Seguridad Cibernética // Diseño y Plan de Arquitectura // Administración de datos
Apagar
El comando shutdown (o «apagar» en español) se encarga de que el sistema se apague de una
manera segura. Cinco minutos antes de que se apague el sistema se les notifica a todos los usuarios
conectados que el sistema se apagará y los nuevos registros se bloquearán.
shutdown [OPCIONES] HORA [MENSAJE]
Observa
El comando shutdown requiere acceso de administrador. Cambiate a la cuenta root para esta
sección usando el siguiente comando. Utiliza la contraseña netlab123.
sysadmin@localhost:~$ su -
Password:
root@localhost:~#
¡Nuestras máquinas virtuales no se apagarán! Siéntete en libertad de utilizar el comando, pero ten
en cuenta que después de la cuenta regresiva haya terminado, solamente regresarás a el prompt en
lugar de apagar el sistema. Puede que tengas que pulsar Entrar para invocar de regreso el prompt
del comando.
root@localhost:~# shutdown now
A diferencia de otros comandos utilizados para apagar el sistema, el comando shutdown requiere
un argumento de tiempo especificando cuando debe comenzar el apagado. Los formatos de este
argumento de tiempo puede ser la palabra now (o «ahora» en español), una hora del día en el
formato hh:mm o el número de minutos de retraso en el formato +minutes.
Para considerar
El reloj de nuestro sistema puede estar configurado para una zona horaria diferente a la tuya. Para
verificar la hora en la terminal, utiliza el comando date. En nuestras máquinas, el formato
predeterminado de la salida del comando date (o «fecha» en español) es como sigue:
weekday month day hour:minute:second UTC year
Las letras UTC presentes en la salida indican que el tiempo se muestra como Hora Universal
Coordinada.
root@localhost:~# date
Fri Jan 22 01:50:07 UTC 2016
root@localhost:~# shutdown 01:51
El comando shutdown también tiene un argumento opcional de mensaje indicando que aparecerá
un mensaje en las terminales de todos los usuarios. Por ejemplo:
root@localhost:~# shutdown +1 "Goodbye World!"
Observa
Sal de la cuenta root utilizando el comando exit:
root@localhost:~# exit
logout
Configuración de la Red
El comando ifconfig significa «interface configuration» (o «configuración de la interfaz» en
español) y se utiliza para mostrar la información de configuración de red.
ifconfig [OPCIONES]
Nota:
El comando iwconfig es similar al comando ifconfig, pero está enfocado a las interfaces de
red inalámbrica.
No todas las configuraciones de red son importantes para este módulo, pero es importante observar
en la salida de abajo la dirección IPv4 del dispositivo de red principal eth0 es 192.168.1.2 y
que el dispositivo está activo (UP):
sysadmin@localhost:~$ ifconfig
eth0 Link encap:Ethernet HWaddr b6:84:ab:e9:8f:0a
inet addr:192.168.1.2 Bcast:0.0.0.0 Mask:255.255.255.0
inet6 addr: fe80::b484:abff:fee9:8f0a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:95 errors:0 dropped:4 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25306 (25.3 KB) TX bytes:690 (690.0 B)
Para considerar
El dispositivo lo se conoce como el dispositivo de loopback (o «ciclo invertido» en español). Es un
dispositivo de red especial utilizado por el sistema cuando éste envía los datos basados en red a sí
mismo.
El comando ifconfig también puede ser utilizado para modificar temporalmente la
configuración de red. Normalmente estos cambios deben ser permanentes, por lo que utilizando el
comando ifconfig para hacer tales cambios es algo bastante raro.
sysadmin@localhost:~$ ps
PID TTY TIME CMD
80 ? 00:00:00 bash
94 ? 00:00:00 ps
El comando ps muestra los procesos que se están ejecutando en la terminal actual por defecto. En
el ejemplo, la línea final es el proceso creado por ejecutar el comando ps. La salida incluye las
siguientes columnas de información:
PID: El identificador del proceso, que es único para el proceso. Esta información es útil para
controlar el proceso por su número de ID.
TTY: El nombre del terminal en el que se ejecuta el proceso. Esta información es útil para
distinguir entre los diferentes procesos que tienen el mismo nombre.
TIME: La cantidad total de tiempo del procesador utilizado por el proceso. Típicamente, los
usuarios regulares no utilizan esta información.
CMD: El comando que inició el proceso.
En lugar de ver sólo los procesos que se ejecutan en el terminal actual, los usuarios pueden querer
ver cada proceso ejecutado en el sistema. La opción -e muestra todos los procesos:
sysadmin@localhost:~$ ps -e
PID TTY TIME CMD
1 ? 00:00:00 init
33 ? 00:00:00 rsyslogd
37 ? 00:00:00 cron
39 ? 00:00:00 sshd
56 ? 00:00:00 named
69 ? 00:00:00 login
79 ? 00:00:00 bash
94 ? 00:00:00 ps
Normalmente, también se utiliza la opción -f ya que proporciona más detalles en la salida del
comando, incluyendo las opciones y los argumentos. Busca el comando ps en la última línea, la
columna CMD ahora incluye las opciones utilizadas:
sysadmin@localhost:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 19:16 ? 00:00:00 /sbin??? /init
syslog 33 1 0 19:16 ? 00:00:00 /usr/sbin/rsyslogd
root 37 1 0 19:16 ? 00:00:00 /usr/sbin/cron
root 39 1 0 19:16 ? 00:00:00 /usr/sbin/sshd
bind 56 1 0 19:16 ? 00:00:00 /usr/sbin/named -u bind
root 69 1 0 19:16 ? 00:00:00 /bin/login -f
sysadmin 79 69 0 19:16 ? 00:00:00 -bash
sysadmin 95 79 0 19:43 ? 00:00:00 ps -ef
Habilidades de Linux están en demanda! El 97% de los gerentes de contratación están buscando
reclutar profesionales de Linux en los próximos seis meses. El 88% afirma que es difícil encontrar
a estos candidatos
Administración de Paquetes
Administración de Paquetes es un sistema que instala, actualiza, consulta o quita el software dentro
de un sistema de archivos. En Linux hay muchos sistemas de administración de paquetes de
software diferentes, pero los dos más populares son Debian y Red Hat. Las máquinas virtuales para
este curso utilizan Ubuntu, un derivado de Debian.
En el nivel más bajo del sistema de administración de paquetes de Debian está el comando dpkg.
Este comando puede ser complicado para los usuarios principiantes de Linux, por lo que una
herramienta de paquetes avanzada, apt-get, un programa front-end para la herramienta dpkg,
facilita más la administración de los paquetes.
Observa
Muchos de los comandos de la administración de paquetes requieren acceso de administrador, por
lo que vienen precedidos por el comando sudo. Utiliza la contraseña netlab123 cuando el
sistema te lo pida.
La palabra clave que se utiliza debe coincidir con parte del nombre o la descripción del paquete que
hay que localizar. Se pueden utilizar varias palabras clave para aclarar aún más la búsqueda; por
ejemplo, el término para la búsqueda web server (o «servidor web» en español) proporcionaría
mejores resultados que las palabras web o server por sí solas.
Cuando hayas encontrado el paquete que quieres instalar, puedes instalarlo con el comando apt-
get install:
sudo apt-get install [paquete]
Para considerar
¡El comando cowsay es una vaca que habla configurable! Usa una palabra o frase como
argumento:
sysadmin@localhost:~$ cowsay 'NDG Linux Unhatched'
_____________________
< NDG Linux Unhatched >
---------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Recomendamos poner el argumento entre comillas simples para evitar que el shell interprete los
caracteres especiales.
Actualización de Paquetes
El comando apt-get install también puede actualizar un paquete, si el paquete está instalado
y un paquete con una versión más reciente está disponible. Si el paquete no está en el sistema, se
instala; Si está en el sistema, se actualiza.
La actualización de todos los paquetes del sistema debe hacerse en dos pasos. Primero, actualiza el
caché de todos los paquetes disponibles con apt-get update. Después, ejecuta el comando
apt-get upgrade con el que se actualizarán todos los paquetes y sus dependencias.
apt-get update
apt-get upgrade
Por ejemplo, para depurar completamente el cowsay, ejecuta el siguiente comando. Escriba Y
cuando se le solicite:
sysadmin@localhost:~$ sudo apt-get purge cowsay
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
cowsay*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 90.1 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 24377 files and directories currently installed.)
Removing cowsay (3.03+dfsg1-6) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Actualización de las Contraseñas de Usuario
El comando passwd se utiliza para actualizar la contraseña de un usuario. Los usuarios sólo
pueden cambiar sus propias contraseñas, mientras que el usuario root puede actualizar la contraseña
de cualquier usuario.
passwd [OPCIONES] [USUARIO]
Por ejemplo, ya que estamos registrados como el usuario sysadmin, podemos cambiar la
contraseña de esa cuenta. Ejecuta el comando passwd. Se te pedirá que ingreses la contraseña
actual una vez y la nueva contraseña dos veces. Por razones de seguridad, ninguna salida se
visualizará mientras estás introduciendo la contraseña. La salida se muestra como sigue:
sysadmin@localhost:~$ passwd
Changing password for sysadmin.
(current) UNIX password: netlab123
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Si el usuario quiere ver la información del estado acerca de su contraseña, puede utilizar la opción
-S:
sysadmin@localhost:~$ passwd -S sysadmin
sysadmin P 03/01/2015 0 99999 7 -1
03/01/201
Change Date 5 La fecha del último cambio de la contraseña.
El usuario root puede cambiar la contraseña de cualquier usuario. Si el usuario root quiere
cambiar la contraseña para el sysadmin, ejecutaría el siguiente comando:
root@localhost:~# passwd sysadmin
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Observa
Sal de la cuenta root utilizando el comando exit:
root@localhost:~# exit
logout
Editor de Texto
El editor de texto principal para Linux y UNIX es un programa llamado vi. Si bien existen
numerosos editores disponibles para Linux que van desde el pequeño nano hasta el masivo editor
emacs, el editor vi posee varias ventajas:
Para empezar a usar el vi, simplemente introduce el comando seguido de la ruta de acceso al
archivo que quieres editar o crear:
sysadmin@localhost:~$ vi newfile.txt
Hay tres modos que utiliza el vi: modo de comando, modo de inserción y el modo ex.
Movimiento del Modo de Comando
El programa comienza en modo de comando. El modo de comando se utiliza para introducir los
comandos, tales como los utilizados para desplazarse por un documento, manipular el texto y
acceder a los otros dos modos. Para volver al modo de comandos en cualquier momento, presiona la
tecla Esc.
Después de añadir algo de texto a un documento, para realizar las acciones como mover el cursor,
primero hay que presionar la tecla Esc para volver al modo comando. Parece que es mucho trabajo,
pero recuerdo que el vi funciona en un entorno de terminal en el que un ratón es inútil.
Movimiento Resultado
h Un carácter a la izquierda
j Bajar una línea
k Subir una línea
l Un carácter a la derecha
w Una palabra hacia adelante
b Una palabra hacia atrás
^ Principio de la línea
$ Final de la línea
Nota:
Desde la actualización al vim, es también posible utilizar las teclas de flecha ←↓↑→ en vez de
hjkl.
Estos movimientos pueden tener un número prefijo para indicar cuántas veces hay que realizar el
movimiento. Por ejemplo, 5h movería el cursor cinco caracteres a la izquierda, 3w movería el
cursor tres palabras a la derecha.
Para mover el cursor a un número de línea específica, introduce ese número de línea seguido por el
carácter G. Por ejemplo, para llegar a la quinta línea del archivo, introduce 5G. 1G o gg se puede
utilizar para ir a la primera línea del archivo, mientras que una sola G te llevará a la última línea.
Para averiguar en qué línea está el cursor, utiliza CTRL-G.
Eliminar
La acción de eliminar borra el texto indicado de la página y lo guarda en el búfer. El búfer es el
equivalente de «portapapeles» en Windows o Mac OSX. La siguiente tabla proporciona algunos
ejemplos:
Acción Resultado
dd Eliminar la línea actual
3dd Eliminar las siguientes tres líneas
dw Eliminar la palabra actual
d3w Eliminar las siguientes tres palabras
d4h Eliminar los cuatro caracteres a la izquierda
Cambiar
La acción de cambiar es muy similar a eliminar, el texto se elimina y se guarda en el búfer, sin
embargo el programa se conecta para introducir el modo que permite hacer los cambios de texto de
inmediato. La siguiente tabla proporciona algunos ejemplos:
Acción Resultado
cc Cambiar la línea actual
cw Cambiar la palabra actual
c3w Cambiar las siguientes tres palabras
c5h Cambiar los cuatro caracteres a la izquierda
Jalar
La acción de jalar guarda el contenido en el buffer sin eliminarlo. La siguiente tabla proporciona
algunos ejemplos:
Acción Resultado
yy Jalar la línea actual
3yy Jalar las siguientes tres líneas
yw Jalar la palabra actual
y$ Jalar al final de la línea
Poner
La acción de poner, pone el texto guardado antes o después de la posición del cursor. Observa que
estas son las dos únicas opciones, la acción poner no utiliza los movimientos como los anteriores
comandos de acción.
Acción Resultado
p Poner (pegar) después del cursor
P Poner antes del cursor
Buscar en el vi
Otra función estándar que ofrecen los procesadores de texto es «find» («buscar» en español). A
menudo, las personas utilizan CTRL+F o buscan en el menú edición. El programa vi utiliza
«search» (o «explorar» en español). «Search» (explorar) es más poderoso que «find» (buscar), ya
que soporta patrones de texto literal y las expresiones regulares.
Para explorar el texto hacia delante desde la posición actual del cursor, utiliza el / para comenzar a
explorar el texto, introduce el término de búsqueda y luego presiona la tecla Entrar para iniciar la
exploración del texto. El cursor se moverá a la primera coincidencia que se encuentra.
Para pasar a la próxima coincidencia con el mismo patrón, presiona la tecla n. Para volver a la
coincidencia anterior, pulsa la tecla N. Si llegas al final o al comienzo del documento,
automáticamente ira el otro lado del documento.
Para empezar a buscar hacia atrás desde la posición del cursor, empieza introduciendo ?, después
introduce el patrón buscar las coincidencias y pulse la tecla Entrar.
Modo de Inserción
El modo de inserción se utiliza para añadir texto al documento. Hay varias maneras de entrar al
modo de inserción desde el modo comando, cada una se distingue según dónde se iniciará la
inserción del texto. La siguiente tabla incluye las más comunes:
Entrada Propósito
a Entrar al modo de inserción justo después del cursor
A Entrar al modo de inserción al final de la línea
i Entrar al modo de inserción justo antes del cursor
I Entrar al modo de inserción al principio de la línea
o Entrar al modo de inserción en una línea en blanco después del cursor
O Entrar al modo de inserción en una línea en blanco antes del cursor
Modo Ex
Originalmente, el editor vi fue llamado el editor ex. El nombre vi fue la abreviatura del comando
visual en el editor ex que cambió al editor al modo «visual».
En el modo normal original, el editor ex sólo permitía a los usuarios ver y modificar una línea a la
vez. En el modo visual, los usuarios podían ver la parte del documento que cabía en la pantalla.
Puesto que la mayoría de los usuarios prefiere el modo visual a edición en modo línea, el archivo de
programa ex fue vinculado a un archivo de vi, para que los usuarios pudieran arrancar el ex
directamente en modo visual al correr el enlace de vi.
Cuando se utiliza el modo ex en el editor vi, es posible ver o cambiar la configuración, así como
llevar a cabo los comandos relacionados con los archivos tales como abrir, guardar o anular los
cambios en un archivo. Para pasar al modo ex, introduce el carácter : en el modo comando. La
tabla siguiente lista algunas acciones comunes llevadas a cabo en el modo ex:
Entrada Propósito
:w Escribir el archivo actual en el sistema de archivos
:w nombre del archivo Guardar una copia del archivo actual como nombre de archivo
:w! Forzar la escritura en el archivo actual
:1 Ir a la línea número 1 o cualquier número especificado
:e nombre del archivo Abrir el nombre de archivo
:q Salir si no hay cambios realizados en los archivos
:q! Salir sin guardar los cambios en el archivo
Un análisis rápido de la tabla anterior revela que si un signo de exclamación ! se agrega a un
comando, éste intenta forzar la operación. Por ejemplo, imagina que estás realizando cambios en un
archivo en el vi editor y luego intenta a salir con :q, sólo para ver que el comando falla. El editor
vi no se quiere cerrar sin guardar los cambios realizados en un archivo, pero puedes forzar el cierre
con el comando ex :q!.
Para considerar
Aunque el modo ex ofrece varias maneras de guardar y salir, también existe ZZ disponible en el
modo comando; éste es el equivalente de :wq. Hay muchas más funciones superpuestas entre el
modo ex y el modo comando. Por ejemplo, el modo ex se puede utilizar para acceder a cualquier
línea del documento introduciendo : seguido por el número de línea, mientras que G se puede
utilizar en el modo comando tal como viste más arriba.
Observa
Si tienes un texto de archivo abierto, ciérralo ejecutando el comando :q!. Esto hará salir sin
guardar los cambios en el archivo.
El siguiente paso
Esperamos que hayas disfrutado esta breve introducción al mundo de Linux. El contenido se alinea
con el conocimiento de Linux cubierto por los objetivos del examen CompTia A+ Linux, ¡pero hay
mucho más! ¡Obtén el nivel de certificación Linux para progresar en tu carrera!
NDG Linux Essentials
Si quieres ampliar tus conocimientos en Linux, Cisco Networking Academy ofrece también tres
cursos de Linux. NDG Linux Essentials es perfecto para los principiantes para entender los
conceptos básicos, mientras NDG Linux Series ofrece a los principiantes temas más profundos.
Traducción imagen: NDG Linux Essentials (“NDG elementos escenciales de Linux”) Aprender los
fundamentos del sistema operativo Linux y línea de comandos y conceptos básicos de código
abierto.
El curso NDG Linux Essentials está diseñado para prepararte para el certificado profesional Linux
Professional Institute Linux Essentials Professional Development Certificate, que valida una
comprensión demostrada de:
FOSS (Free Open Source Software o «Software de Código Abierto Gratuito»), las distintas
comunidades y licencias
Conocimiento de las aplicaciones de código abierto en el trabajo que se relaciona con los
equivalentes de código cerrado
Los conceptos básicos de hardware, procesos, programas y los componentes del sistema
operativo Linux
Cómo trabajar en la línea de comandos y con los archivos
Cómo crear y restaurar las copias y los archivos comprimidos
Permisos del sistema de seguridad, permisos usuarios/grupos y archivo para los directorios
públicos y privados
Cómo crear y ejecutar scripts simples
Para obtener el certificado Linux Essentials Professional Development Certificate debes completar
el curso Linux Essentials (LPI-010) que abarca:
La comunidad de Linux y una formación en open source
Saber moverte en el entorno de un sistema Linux
El poder de la línea de comandos
El sistema operativo Linux
Permisos de seguridad y archivo
NDG Introduction to Linux II se alinea con los objetivos del examen 102, y cubre:
Shells, Scripting y manejo de datos
Interfaces y equipos de escritorio
Tareas Administrativas
Servicios esenciales del sistema
Fundamentos de redes
Seguridad
La certificación LPIC-1 es la primera de las tres certificaciones profesionales de LPI. Puedes
encontrar información sobre todas las certificaciones de Linux Professional Institute en
http://www.lpi.org.
IT Essentials
Para más información sobre las habilidades fundamentales de computación y la formación para los
empleos de nivel de entrada, consulta el resto del curso IT Essentials, alineado a la certificación de
CompTia A+.
IT Essentials
Para obtener más contenido relacionado con los fundamentos de la computación y sobre las
habilidades necesarias para un puesto de trabajo en el area de TI (Tecnologías de Información),
revisa el contenido del curso de IT Essentials, Fundamentos de las Tecnologías de Información ).
Este curso está alineado a la certificación CompTIA A +.
El curso de IT Essentials cubre los fundamentos de computación y las habilidades que debes de
tener para obtener tu primer empleo en el area de TI . El plan de estudios de IT Essentials incluye
prácticas de laboratorio que proporcionan experiencia práctica. Las herramientas virtuales del curso
te ayudarán a perfeccionar las habilidades de resolución de problemas y a practicar lo que aprendes.
Con este curso, tu podrás:
Desarrollar el conocimiento práctico de cómo funcionan las computadoras.
Desarrollar el pensamiento crítico y las habilidades para resolver problemas complejos
utilizando laboratorios prácticos y herramientas virtuales de aprendizaje.
Aplicar las técnicas y procedimientos para instalar y actualizar hardware y software y para
solucionar los problemas que haya en el sistema.
Practicar lo que aprendes en un equipo real usando la herramienta de simulación Cisco
Packet Tracer.
Obtener retroalimentación inmediata sobre tu aprovechamiento a través de cuestionarios y
pruebas incorporadas.
Conectarte a la comunidad global de Cisco Networking Academy.
El curso NDG Linux Essentials está diseñado para prepararte para el Certificado de Desarrollo
Profesional de los Fundamentos de Linux (Linux Essentials Professional Development Certificate)
del Instituto Profesional de Linux (Linux Professional Institute). Este certificado valida de forma
fidedigna, el conocimiento de una persona sobre los siguientes aspectos:
FOSS, sus diversas comunidades y licencias.
El conocimiento de las aplicaciones de código abierto en el lugar de trabajo y su relación
con aplicaciones equivalentes de código cerrado.
Conceptos básicos de hardware, procesos, programas y los componentes del sistema
operativo Linux.
Cómo trabajar con la línea de comandos y con los archivos.
Cómo crear y restaurar copias de seguridad y archivos comprimidos.
Seguridad del sistema, permisos de usuarios/grupos y archivos para directorios públicos y
privados.
Cómo crear y ejecutar archivos de procesamiento en lotes (scripts) simples.
Para obtener el Certificado de Desarrollo Profesional de los Fundamentos de Linux debes pasar el
exámen Linux Essentials (LPI-010) que cubre los siguientes temas:
La comunidad de Linux y una carrera profesional en código abierto.
Encontrando el camino en un sistema Linux.
El poder de la línea de comandos.
El sistema operativo Linux.
Los permisos de seguridad y de archivo.
La serie de cursos NDG Introduction to Linux están diseñados para prepararte para el Nivel 1 de
Certificación del Instituto Profesional de Linux. La LPIC-1 es una certificación para
administradores Linux del Servidor Profesional de Linux. Esta certificación valida tu capacidad
para realizar las siguientes tareas:
Trabajar con la línea de comandos de Linux.
Realizar tareas sencillas de mantenimiento: ayudar a los usuarios, agregar usuarios a un
sistema más amplio, hacer copias de seguridad y de restauración, apagado y reinicio del
sistema.
Instalación y configuración de una estación de trabajo (incluyendo X) y su conexión a una
red local (LAN en inglés) o conexión de una PC independiente a internet.
Para obtener la certificación LPIC-1 debes pasar el examen 101 y 102. El curso NDG Introduction
to Linux I está diseñado para prepararte para el examen 101 que abarca:
Arquitectura del Sistema.
Instalación de Linux y Gestión de Paquetes.
Comandos de GNU y Unix.
Dispositivos, Sistemas de Archivos Linux y Estándar de la Jerarquía del Sistema de
Archivos.
El curso NDG Introduction to Linux II se alinea con los objetivos del examen 102 que abarcan:
Shells, Secuencias de Comandos y Gestión de Datos.
Interfaces y Escritorios.
Tareas Administrativas.
Servicios Esenciales del Sistema.
Fundamentos de Redes.
Seguridad.
La certificación LPIC-1 es la primera de las tres certificaciones profesionales del LPI. Si quieres
más información sobre todas las certificaciones del Instituto Profesional de Linux, acude a la
siguiente dirección: http://www.lpi.org.