NDG Linux Unhatched - NDG Linux Unhatched - Español
NDG Linux Unhatched - NDG Linux Unhatched - Español
NDG Linux Unhatched - NDG Linux Unhatched - Español
Este módulo aborda exclusivamente la CLI o Command Line Interface (o «Interfaz de la Línea
de Comandos»), en lugar de la GUI o Graphical User Interface (o «Interfaz Gráfica de Usuario)
con la que probablemente estás familiarizado. La terminal CLI es una poderosa herramienta
que suele ser el método primario usado para administrar los pequeños dispositivos de baja
potencia, servidores de cómputo extremadamente potentes, y todo lo demás. Un
entendimiento básico del terminal es esencial para diagnosticar y corregir la mayoría de los
sistemas basados en Linux. Puesto que Linux se ha convertido en un sistema que está en
todas partes, incluso aquellos que trabajan principalmente con sistemas que no utilizan el
kernel de Linux, pueden beneficiarse de tener un conocimiento básico de la terminal.
¿Qué es un comando? Un comando es un programa de software que al ejecutarlo en la CLI
(«interfaz de línea de comandos» en español) realiza una acción en la computadora. Cuando
se escribe un comando, el sistema operativo ejecuta un proceso que puede leer una entrada,
manipular datos y producir la salida. Un comando ejecuta un proceso en el sistema operativo,
y entonces causa que la computadora realice un trabajo.
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
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
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
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
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
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
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?
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):
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!
Imprimiendo un Directorio de Trabajo
Para descubrir dónde estás ubicado actualmente en el sistema de archivos, puedes utilizar el
comando pwd. El comando pwd imprime el directorio de trabajo, tu ubicación actual en el
sistema de archivos:
pwd [OPCIONES]
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:~$
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]
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.
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
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
La salida del comando pwd es la ruta absoluta al directorio School.
También indicado como:
Para considerar
En el ejemplo anterior el comando cd había seguidola ruta de acceso School/Art:
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
sysadmin@localhost:~/Documents/School/Art$ cd ..
sysadmin@localhost:~/Documents/School$
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]
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:
• Tipo de archivo
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:
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
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ó.
• Grupo Propietario
Esto indica el momento en el que el contenido del archivo se modificó por última vez.
• Nombre de archivo
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 -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
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
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
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.
Ejecuta el comando sl como el usuario root poniendo sudo delante de éste:
sysadmin@localhost:~$ sudo sl
Password:
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:
• 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
• Grupo
-rw- rw- r-- 1 sysadmin sysadmin 21 Aug 1 02:35 hello.sh
• 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.
read (o Permite que el contenido del archivo Sin permiso de ejecución en el directorio,
«leer» en se lea o copie. permite un listado no detallado de los
español) (r) archivos. Con permiso de ejecutar, el
comando ls -l puede proporcionar una lista
detallada.
write (o Permite modificar y sobrescribir el Para que este permiso funcione, el directorio
«escribir» en contenido. Permite añadir o quitar debe también tener el permiso de ejecución.
español) los archivos de un directorio.
Permiso Efectos en el archivo Efectos en el directorio
Para considerar
Entender los permisos que se aplican es una habilidad importante en Linux. Por ejemplo,
considera el siguiente grupo de permisos:
-r--rw-rwx. 1 sysadmin staff 999 Apr 10 2013 /home/sysadmin/test
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
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:
Símbolo Significado
o Otros: Cualquiera que no sea el usuario propietario o miembro del grupo propietario.
Símbolo Significado
Después de un símbolo de acción, especifica uno o más permisos sobre el que quieres actuar.
r lectura
w escritura
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
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$ ls -l hello.sh
-rwxrw-r-- 1 root sysadmin 112 Aug 1 03:48 hello.sh
El usuario propietario ahora tiene el permiso de ejecución listado:
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
Observa
Utiliza el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
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.origina
l
-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
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! )
--------------
\
\
<(^)
( )
Mover los Archivos
El comando mv sirve para mover un archivo desde una ubicación en el sistema de archivos a
otra.
mv ORIGEN DESTINO
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$ 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:
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.
Crear copias de los archivos puede ser útil por muchas razones:
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
• 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
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
Eliminar los Archivos
El comando rm se utiliza para borrar los archivos y directorios. Es importante tener en cuenta
que los archivos y directorios borrados no entran a la "papelera de reciclaje" como en el caso
de lo sistemas operativos de escritorio. Cuando se elimina un archivo con el comando rm, casi
siempre se elimina de manera permanente.
rm [OPCIONES] ARCHIVO
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.
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.
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.
Las Expresiones Regulares
Las expresiones regulares tienen dos formas comunes: la básica y la extendida. La mayoría
de los comandos que usan las expresiones regulares pueden interpretar las expresiones
regulares básicas. Sin embargo, las expresiones regulares extendidas no están disponibles
para todos los comandos y normalmente se requiere una opción de comando para que
funcionen correctamente.
La siguiente tabla resume los caracteres de las expresiones regulares básicas:
[^ ] 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 Extendidos Significado
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
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:
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.
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 ren 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:
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:
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:
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
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.
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*.
sysadmin@localhost:~/Documents$ grep 'z*' red.txt
red
reef
rot
reeed
rd
rod
roof
reed
root
reel
read
sysadmin@localhost:~/Documents$ grep 'e*' 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.
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-Dcuando estés listo para regresar al prompt.
Observa
Usa el siguiente commando cd para regresar al directorio de inicio:
sysadmin@localhost:~/Documents$ cd ~
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:~#
Observa
Sal de la cuenta root utilizando el comando exit:
root@localhost:~# exit
logout
Configuración de la 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 ifconfigpara hacer tales cambios es algo bastante raro.
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
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
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.
Para encontrar los paquetes asociados con la palabra clave cow:
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:
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
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.
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.
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:
Maximum 99999 El número máximo de días que quedan para que la contraseña
expire.
Observa
Cambia de la cuenta root utilizando el siguiente comando:
sysadmin@localhost:~$ su root
Password:
root@localhost:~#
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:
• El editor vi está disponible en cada distribución de Linux en el mundo. Esto no es
cierto en el caso de otros editores.
• El editor vi se puede ejecutar en una CLI (interfaz de línea de comandos) y en una
GUI (interfaz gráfica de usuario).
• Aunque se hayan añadido nuevas características al editor vi, las funciones básicas
han existido durante décadas. Esto significa que si alguien aprendió el editor vi en la
década de los 1970, podría utilizar una versión moderna sin ningún problema. Aunque
ahora parezca trivial, puede no parecer tan trivial dentro de veinte años.
Para considerar
La forma correcta de pronunciar vi editor es editor vee-eye (o «vi-ay» en español). Las
letras vise refieren a visual pero los desarrolladores nunca lo habían pronunciado de esta
manera, más bien como la letra v seguida por la letra i pronunciándose «vi-ay».
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.
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.
Los comandos de movimiento en el vi tienen dos aspectos, un movimiento y un número
opcional como prefijo, que indica cuántas veces hay que repetir ese movimiento. El formato
general es como sigue:
[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
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
Jalar
La acción de jalar guarda el contenido en el buffer sin eliminarlo. La siguiente tabla
proporciona algunos ejemplos:
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 exfue vinculado a un archivo de vi, para que los usuarios
pudieran arrancar el ex directamente en modo visual al correr el enlace de vi.
Finalmente, el archivo de programa fue renombrado al vi y el editor ex se convirtió en un
enlace al editor 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 nombre del archivo Guardar una copia del archivo actual como nombre de archivo
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!
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 la certificación LPIC-1 debes pasar el Examen 101 y 102. NDG Introduction to
Linux I está diseñado para prepararte para el examen 101, que cubre:
NDG Introduction to Linux II se alinea con los objetivos del examen 102, y cubre:
IT Essentials