Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Esperamos que encuentres útil el Módulo Elemental de NDG Linux. ¡Te felicitamos por
dar tus primeros pasos hacia el mundo de Linux!
Para ejecutar un comando, el primer paso es introducir el nombre del comando. Haz clic
en la terminal de la derecha. Introduce ls y presiona Entrar. El resultado debe
parecerse al siguiente ejemplo:
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates
Videos
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
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Template
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:
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!
sysadmin@localhost:~$ ls -l
total 32
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Desktop
drwxr-xr-x 4 sysadmin sysadmin 4096 Aug 4 20:58 Documents
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Downloads
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Music
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Pictures
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Public
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Templates
drwxr-xr-x 2 sysadmin sysadmin 4096 Aug 4 20:58 Videos
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
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
Combinando las múltiples opciones -v, podemos obtener una variedad de respuestas:
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
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:~$
sysadmin@localhost:/etc/calendar$
4. 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 /
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.
Las Rutas Absolutas
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
Las Rutas Relativas
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
La siguiente imagen muestra un mapa de los archivos contenidos en el directorio
sysadmin. Actualmente estás ubicado en el directorio Documents y quieres moverte al
directorio Art:
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$
sysadmin@localhost:~/Documents/School/Art$ pwd
/home/sysadmin/Documents/School/Art
Para considerar
cd School/Art
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
Los Accesos Directos o Atajos
El Carácter ..
sysadmin@localhost:~/Documents/School/Art$ cd ..
sysadmin@localhost:~/Documents/School$
El Carácter « . »
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 ~
5. Listado de Archivos
ls [OPCIONES] [ARCHIVO]
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
• 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
para un enlace
l Apunta a otro archivo
simbólico
para un archivo de
b Permite la comunicación con el Hardware
bloque
para un archivo de
c Permite la comunicación con el Hardware
carácter
Los Permisos
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.
• Usuario Propietario
• Grupo Propietario
• Fecha y hora
• Nombre de archivo
Para considerar
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.
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:
Si se utiliza sólo la opción -r, se listarán los archivos en orden alfabético inverso:
sysadmin@localhost:~$ ls -r /var/log
wtmp lastlog faillog cron.log auth.log alternatives.log
upstart kern.log dpkg.log btmp apt
syslog fsck dmesg bootstrap.log apache2
6. 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
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
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
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/ \_/ \_/
\_/ \_/
root@localhost:~# exit
exit
sysadmin@localhost:~$
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.
sysadmin@localhost:~$ sudo sl
Password:
Nota:
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.
7. 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
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:
• Propietario
El usuario que posee el archivo y a quién se aplican estos permisos, puede ser
determinado por el campo de user owner:
• Grupo
El grupo de este archivo puede ser determinado por el campo group owner:
• Otro
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.
Hay tres permisos diferentes que pueden colocarse en un archivo o directorio: permiso
de lectura, escritura y ejecución. La manera en que estos permisos se aplican difiere en
el caso de los archivos y de los directorios, tal como se muestra en la siguiente tabla:
Para considerar
Entender los permisos que se aplican es una habilidad importante en Linux. Por
ejemplo, considera el siguiente grupo 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.
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
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:
Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres
actuar.
r lectura
w escritura
Símbolo Significado
x ejecución
Por último, un espacio y los nombres de los archivos para asignar los permisos.
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-rw-r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
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
./hello.sh
Observa
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$ ls -l hello.sh
-rwxrw-r-- 1 root sysadmin 112 Aug 1 03:48 hello.sh
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
mv ORIGEN DESTINO
Observa
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls Work
people.csv
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
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.
Observa
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 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
dd [OPCIONES] OPERANDO
• Puede utilizarse para clonar o eliminar (limpiar) los discos completos o las particiones.
• Se puede utilizar para copiar los datos sin procesar (o «raw data» en inglés) a los
dispositivos extraíbles, tales como las unidades USB y CDROM.
• Puede hacer copia de seguridad y restaurar el MBR (Master Boot Record o «Registro
de Arranque Maestro» en español).
• Se puede utilizar para crear un archivo de un tamaño específico que se llena con ceros
binarios y se puede utilizar después como un archivo de intercambio (memoria
virtual).
Argumento Descripción
Para considerar
dd if=/dev/sda of=/dev/sdb
rm [OPCIONES] ARCHIVO
Observa
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
El comando grep es un filtro de texto que buscará las entradas y devolverá las líneas
que coinciden con el patrón determinado.
Observa
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ cp /etc/passwd .
Nota:
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
[^ ] No el carácter especificado
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:
Los Carácteres Regex
Significado
Extendidos
Este curso sólo incluye las expresiones regulares básicas. Para obtener más información sobre
las expresiones regulares extendidas, puedes ver los cursos NDG Linux Essentials y NDG
Introduction to Linux
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
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:
Los caracteres de anclaje son una de las maneras de utilizar las expresiones regulares
para reducir los resultados de búsqueda. Por ejemplo, el patrón root aparece muchas
veces en el archivo /etc/passwd:
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 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$:
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:
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:
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:
Los corchetes [ ] buscan coincidencias con un sólo carácter de una lista o rango de
posibles caracteres contenidos dentro de los corchetes.
Para encontrar todas las líneas en el archivo profile.txt que incluyen un número,
utiliza el patrón [0123456789] o [0-9]:
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:
Nota
El carácter de expresión regular * se utiliza para que coincida con cero o más
apariciones del carácter o patrón que le precede. Por ejemplo e* coincidirá con cero o
más apariciones de la letra e:
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:
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*.
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.
Observa
sysadmin@localhost:~/Documents$ cd ~
14. Apagar
Observa
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
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:
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
Observa
root@localhost:~# exit
logout
Nota:
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
ps [OPCIONES]
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
Para buscar las palabras clave dentro de estos paquetes, puede utilizar el comando apt-
cache search.
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:
Para considerar
¡El comando cowsay es una vaca que habla configurable! Usa una palabra o frase como
argumento:
Recomendamos poner el argumento entre comillas simples para evitar que el shell
interprete los caracteres especiales.
Actualización de Paquetes
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
sysadmin@localhost:~$ sudo apt-get update
[sudo] password for sysadmin:
Ign file: amd64/ InRelease
Ign file: amd64/ Release.gpg
Ign file: amd64/ Release
Reading package lists... Done
sysadmin@localhost:~$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Eliminación de los Paquetes
El comando apt-get puede eliminar o depurar un paquete. La diferencia entre los dos
es que depurar elimina todos los archivos del paquete, mientras que eliminar elimina
todo, menos los archivos de configuración para el paquete.
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:
Observa
sysadmin@localhost:~$ su root
Password:
root@localhost:~#
Observa
root@localhost:~# exit
logout
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 considerar
En realidad, la mayoría de los sistemas Linux no incluyen el original vi, sino su versión
mejorada conocida como vim que se refiere a vi improved (o «vi mejorado» en español).
La mayoría de las distribuciones de Linux probablemente oculten este hecho. En su
mayor parte, el vim funciona igual que el vi, pero tiene características adicionales. Para
los temas que se tratarán en este curso, trabajaremos con vi o vim.
sysadmin@localhost:~$ vi newfile.txt
Hay tres modos que utiliza el vi: modo de comando, modo de inserción y el modo ex.
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.
[número] movimento
Movimiento Resultado
h Un carácter a la izquierda
l Un carácter a la derecha
^ 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.
Estándar Vi Significado
Los movimientos que conociste en la página anterior se utilizan para especificar dónde
la acción va a ocurrir, siempre a partir de la posición actual del cursor. Cualquiera de los
siguientes formatos generales para los comandos de acción es aceptable:
Acción Resultado
Cambiar
Jalar
Acción Resultado
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
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
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.
:w nombre del archivo Guardar una copia del archivo actual como nombre de archivo
Para considerar
Observa
Si tienes un texto de archivo abierto, ciérralo ejecutando el comando :q!. Esto hará salir
sin guardar los cambios en el archivo.