Curso Linux
Curso Linux
Antes de determinar qué hace que Linux sea una gran adición a su repertorio de habilidades y
conocimientos, definámoslo. Linux es un sistema operativo que se ejecuta en un sistema informático
o hardware (ordenador). Un sistema operativo es un software que permite instalar y ejecutar otros
programas como procesadores de texto o navegadores web en un ordenador.
Su teléfono celular, tableta, portátil y computadora de escritorio necesitan un sistema operativo para
ejecutar el software (a menudo llamado aplicaciones) que desea utilizar. Esto significa que Linux no
está limitado sólo a computadoras de escritorio y portátiles. Ampliaremos este punto a medida que
avancemos con nuestra discusión.
¡La razón principal por la que aprender Linux es útil es que Linux se utiliza en casi todas partes!
Linux se utiliza en computadoras de escritorio y portátiles, servidores web, dispositivos móviles
(Android), tecnología de nube pública (i.e., Google, Amazon, etc.), Chromebooks y redes (i.e., redes
Cisco). Aunque es posible que nunca haya utilizado Linux en un ordenador de escritorio o
portátil, es probable que esté utilizando otra tecnología que funciona con Linux, por ejemplo un
teléfono móvil Android, una tableta o páginas web populares como Facebook, Twitter o Amazon.
De hecho, se estima que más de la mitad de las páginas web en Internet se generan a partir de
servidores Linux.
¿Quién puede usar Linux?
Puede que usted haya oído hablar de Linux y piense que sólo individuos expertos en tecnología lo
están usando para programación y desarrollo. ¡O, tal vez incluso para hackear! Aunque es cierto que
muchos de los expertos usan Linux, esto no significa que Linux sea demasiado difícil para aprender
o que no sea útil para principiantes.
De hecho, entender Linux, especialmente la interfaz de su línea de comandos, le ayudará a entender
mejor la informática y le proporcionará conocimientos informáticos básicos que puede utilizar en
carreras futuras.
Para entender por qué Linux ofrece competencias únicas, examinemos la interfaz gráfica de usuario
(GUI, graphic user interface). Esta es la interfaz que probablemente usted está usando en su
smartphone, tableta o computadora hoy mismo. La GUI muestra iconos e imágenes que usted puede
seleccionar para indicar a su dispositivo lo que desea hacer o utilizar. Detrás de la GUI, existe un
código desarrollado por un programador. Cuando usted hace clic sobre un icono o carpeta en la GUI,
se envía un comando al código que indica al sistema qué debe hacer.
Los ordenadores Linux utilizan una GUI, pero también poseen una herramienta más eficiente para
llevar a cabo las mismas acciones que una GUI, la interfaz de línea de comandos (CLI, command
line interface).
La línea de comandos de Linux es una interfaz basada en texto que acepta comandos que se
escriben en ella. Estos comandos hacen que una acción se ejecute en el sistema operativo del
equipo. Por supuesto, las ventanas y los iconos son fáciles de usar, sin embargo, la línea de
comandos es a menudo el héroe cuando se trata de la administración del sistema y la solución de
problemas, ya que proporciona una imagen clara de lo que el sistema está haciendo en cualquier
momento dado.
Teniendo en cuenta todo esto, ¿por qué aprender Linux es un buen comienzo para alguien que está
considerando una carrera en TI? Como se ha dicho anteriormente, el uso de Linux está muy
extendido y continúa creciendo en todas las áreas de la tecnología. ¿Qué tienen en común empresas
y organizaciones como NASA, McDonald's, New York Stock Exchange (NYSE), DreamWorks
Animation y el Departamento de Defensa de los Estados Unidos? Sí, lo adivinó correctamente, todos
usan Linux.
Estas empresas tienen algo más en común porque reconocen que invertir en tecnología es importante
en un mundo que está ansioso para adoptar nuevas tecnologías para innovar y resolver problemas. La
proliferación de tecnología en casi todos los aspectos de nuestra vida ha resuelto muchos problemas
pero también ha creado nuevos retos. Por ejemplo, ahora que casi todo se puede hacer en línea,
estamos creando datos digitales a un ritmo muy rápido, lo cual está creando una demanda para esos
datos. Por lo tanto, el conocimiento y las capacidades técnicas para analizar, procesar, proteger
y transmitir estos datos también está en alta demanda. Aprender Linux puede ayudarle a avanzar
en el camino hacia la adquisición de estos conocimientos y capacidades. Los siguientes son ejemplos
de algunas profesiones de TI que requieren conocimientos de Linux:
Ingeniería de redes: los ingenieros de redes son responsables de administrar los equipos de
red que se utilizan para transmitir datos. El conocimiento de Linux es fundamental para los
ingenieros de red, ya que más de la mitad de los servidores del mundo están basados en
Linux. La mayoría de los sistemas operativos de red se basan en una variación de Linux.
Ciberseguridad: los profesionales de la ciberseguridad supervisan e investigan las
amenazas a la seguridad de los datos de los sistemas. Linux se utiliza en ciberseguridad para
llevar a cabo pruebas de penetración del sistema y evaluar la vulnerabilidad de un sistema.
Desarrollo/Programación: los diseñadores y programadores crean aplicaciones
informáticas. La línea de comandos de Linux permite a los diseñadores y programadores
ejecutar secuencias de comandos; una función que permite al usuario unir comandos para
ejecutar acciones complejas en un ordenador. Linux también se utiliza en este campo porque
sólo Linux permite a los usuarios acceder a su código fuente (o código source), dándoles la
oportunidad de experimentar con el código y aprender mientras lo hacen.
Análisis de datos: los científicos y los analistas de datos clasifican y analizan conjuntos de
datos para encontrar patrones con el fin de informar y predecir tendencias y
comportamientos. Los analistas de datos utilizan Linux debido a la amplia gama de
herramientas y comandos disponibles para el análisis de datos, como MySQL y más.
Los sistemas operativos Linux vienen en muchas formas. Hay una variedad de distribuciones
disponibles para adaptarse a las necesidades y demandas de muchos sectores de TI. Por ejemplo, los
profesionales de la ciberseguridad pueden usar Linux Kali, los programadores y diseñadores pueden
usar Linux Ubuntu, los usuarios habituales pueden usar Linux Mint y los servidores empresariales
pueden funcionar con Red Hat Enterprise Linux.
A tener en cuenta
Conocimientos de Linux son necesarios para muchas trayectorias profesionales de TI. Por ejemplo,
conocer los comandos básicos de Linux es un requisito previo para programas de certificación de TI
como la popular certificación Cisco Certified CyberOps Associate. Para obtener más información
sobre cómo Linux se aplica a CCNA Cyber Ops, visite la sección al final de este curso
titulada Linux for CCNA Cyber Ops.
Otras importantes razones para usar y aprender Linux incluyen que, en muchos casos, es gratis, fácil
de instalar, de código abierto, y la presencia de una comunidad Linux activa y disponible para
asistencia y apoyo. Esto permite que aquellos que desean empezar a adquirir competencias en TI
puedan empezar a usar Linux de manera fácil.
Como puede ver, ¡hay muchas razones para aprender y explorar Linux!
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates
Videos
Generalmente, el nombre del comando se basa en la tarea que hace o en lo que el programador que
creó el comando cree que mejor describe la función del comando. Por ejemplo, el
comando ls muestra una lista de información sobre archivos. Asociar el nombre del comando con
algo mnemotécnico sobre lo que hace puede ayudarle a recordar los comandos más fácilmente.
A tener en cuenta
Generalmente, los comandos distinguen entre mayúsculas y minúsculas. Por ejemplo LS es
incorrecto y generará un mensaje de error, pero ls es correcto y se ejecutará normalmente.
sysadmin@localhost:~$ LS
-bash: /usr/games/LS: Permission denied
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates
Videos
Argumentos
comando [opciones…] [argumentos…]
Un argumento (argument) se puede usar para especificar algo sobre lo que el comando debe actuar.
Si al comando ls se le da el nombre de un directorio como argumento, obtendremos como resultado
una lista del contenido de ese directorio. En el siguiente ejemplo, el directorio Documents se
utilizará como argumento:
sysadmin@localhost:~$ ls Documents
School alpha-second.txt food.txt linux.txt os.csv
Work alpha-third.txt hello.sh longfile.txt
people.csv
adjectives.txt alpha.txt hidden.txt newhome.txt
profile.txt
alpha-first.txt animals.txt letters.txt numbers.txt red.txt
Este comando no solamente es lo que parece. ¡Siga leyendo para saber qué más hay detrás de este
truco!
«Linux se basa en código abierto (open source). Linux está diseñado y desarrollado en comunidad.
¡Usted puede acceder y contribuir a su código fuente (source code)!»
Opciones
comando [opciones…] [argumentos…]
sysadmin@localhost:~$ ls -l
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
Se pueden usar varias opciones a la vez, ya sea como opciones separadas como en -l -r o
combinadas como -lr . El resultado de los siguientes ejemplos sería el mismo:
ls -l -r
ls -rl
ls -lr
sysadmin@localhost:~$ ls -l -r
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
sysadmin@localhost:~$ ls -rl
total 32
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Videos
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Templates
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Public
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Pictures
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Music
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Downloads
drwx------ 4 sysadmin sysadmin 4096 Dec 20 2017 Documents
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Desktop
Los comandos pueden utilizar muchas combinaciones de opciones y argumentos. Las posibilidades
para cada comando serán únicas. ¿Recuerda los huevos de Pascua (Easter Eggs) del
comando aptitude?
Recuerde que las varias opciones se pueden denotar por separado o combinadas:
aptitude -v -v moo
aptitude -vv moo
pwd [OPCIONES]
A tener en cuenta
¡No encienda su impresora todavía! En los inicios de la computación, el resultado de un comando se
enviaba directamente a impresoras físicas. Este método ha sido reemplazado por pantallas de vídeo
que muestran información más rápidamente. Aún así, actualmente seguimos utilizando la
palabra imprimir (print) aunque el resultado se esté mostrando en una pantalla.
sysadmin@localhost:~$ pwd
/home/sysadmin
El resultado del comando anterior indica que el usuario está actualmente en su carpeta de inicio, tal y
como muestra el sistema de archivos siguiente.
Considere esto
Observe que nuestras máquinas virtuales emplean un indicador para mostrar el directorio de trabajo
actual, resaltado en color azul. En el primer mensaje, el carácter ~ azul es equivalente
a /home/sysadmin, y representa el directorio de inicio del usuario.
sysadmin@localhost:~$
Cambio de Directorios
Los archivos se utilizan para almacenar datos como texto, gráficos y programas. Los directorios son
un tipo de archivo utilizado para almacenar otros archivos: proporcionan una estructura organizativa
jerárquica. La siguiente imagen muestra una versión abreviada de la estructura del sistema de
archivos de nuestras máquinas virtuales.
Al iniciar una máquina virtual nueva, ya sea abriendo el curso o después de usar el botón de reinicio,
usted inicia una sesión como usuario sysadmin en su directorio principal, resaltado en azul a
continuación:
Utilice el comando cd (change directory) para cambiar de directorio y navegar por la estructura del
sistema de archivos.
cd [opciones] [ruta]
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
Los directorios son equivalentes a las carpetas en Windows y Mac OS. Al igual que estos sistemas
operativos más populares, una estructura de directorios Linux también tiene un nivel superior. No se
llama “Mi PC”, sino directorio raíz (root) y está representado por el carácter /. Para desplazarse al
directorio root, utilice el carácter / como argumento del comando cd.
sysadmin@localhost:~/Documents$ cd /
sysadmin@localhost:/$
El argumento para el comando cd es más que el nombre de un directorio, en realidad es una ruta
(path). Una ruta es una lista de directorios separados por el carácter /. Por
ejemplo, /home/sysadmin es la ruta a su directorio de inicio:
Imagine que el sistema de archivos es un mapa, las rutas son las instrucciones que indican paso a
paso la ubicación de cualquier archivo dentro del sistema de archivos. Hay dos tipos de rutas:
absolutas y relativas. Las rutas absolutas comienzan en la raíz del sistema de archivos, las rutas
relativas comienzan en su ubicación actual.
Rutas absolutas
Una ruta absoluta le permite especificar la ubicación exacta de un directorio. Siempre comienza en el
directorio root, por lo tanto siempre comienza con el carácter /. La ruta al directorio de inicio
(home) /home/sysadmin es una ruta absoluta. La ruta comienza en el directorio root /, se mueve
al directorio de inicio home y, a continuación, al directorio sysadmin. Esta ruta en una interfaz
gráfica de usuario (GUI) como la de su ordenador personal aparecería así:
Utilice esta ruta como argumento para el comando cd para volver al directorio principal del
usuario sysadmin.
sysadmin@localhost:/$ cd /home/sysadmin
sysadmin@localhost:~$
sysadmin@localhost:~$ pwd
/home/sysadmin
Rutas relativas
Una ruta relativa ubica un archivo en relación con la ubicación actual del usuario en el sistema de
archivos. Las rutas relativas no comienzan con el carácter /, comienzan con el nombre de un
directorio. Eche otro vistazo al primer ejemplo de comando cd. En este caso, el argumento es un
ejemplo de la ruta relativa más simple: el nombre de un directorio en su ubicación actual.
sysadmin@localhost:~$ cd Documents
sysadmin@localhost:~/Documents$
La siguiente imagen muestra un mapa de los archivos contenidos en el directorio sysadmin.
Actualmente se encuentra en el directorio Documents y desea desplazarse al directorio Art:
Una ruta relativa comienza con el directorio actual, sin embargo, éste no se incluye en la ruta. El
primer paso sería pasar al directorio School y, a continuación, pasar al directorio Art. Utilice el
carácter / para separar los nombres de directorio. El resultado School/Art es una ruta relativa
desde el directorio Documents hasta el directorio Art:
Utilice la ruta relativa como argumento para el comando cd para desplazarse 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
A tener en cuenta
El resultado del comando pwd es la ruta absoluta al directorio Art.
A tener en cuenta
En el ejemplo anterior, el comando cdsiguió la ruta School/Art:
cd School/Art
Una ruta también se puede dividir en varios 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$
Un punto .
Independientemente del directorio en el que se encuentre, el carácter . siempre representa su
directorio actual. Para el comando cd, este atajo no es muy útil, pero será útil para los comandos que
estudiaremos en las secciones siguientes.
El símbolo ~
El directorio principal del usuario actual está representado por el carácter ~ . Como se indicó
anteriormente, siempre comienza su sesión como usuario sysadmin, cuyo directorio de inicio se
encuentra en /home/sysadmin. Para volver a su directorio de inicio en cualquier momento,
puede ejecutar el siguiente comando:
sysadmin@localhost:~/Documents/School$ cd ~
sysadmin@localhost:~$
Listados de archivos
El comando ls se utiliza para enumerar el contenido de un directorio. Ha visto cómo se utiliza en
varios ejemplos anteriores. Esta página le ayudará a sentirse más cómodo con su uso.
ls [OPCIONES] [ARCHIVO]
sysadmin@localhost:~$ ls
Desktop Documents Downloads Music Pictures Public Templates
Videos
Para obtener información detallada sobre los archivos, como el tipo de archivo, los permisos, las
propiedades o el sello horario, ejecute una lista larga utilizando la opción -lcon el comando ls. En
el ejemplo siguiente, se utiliza una lista del directorio /var/log, ya que proporciona una variedad
de resultados:
sysadmin@localhost:~$ ls -l /var/log/
total 844
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 btmp
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
Cada línea corresponde a un archivo contenido en el directorio. La información sobre cada archivo
se puede dividir en campos separados por espacios. Los campos son los siguientes:
Tipo de archivo
El primer campo contiene en realidad diez caracteres. El primer carácter indica el tipo de
archivo y los nueve siguientes especifican permisos. Los tipos de archivo son:
Símbol Tipo de
o archivo Descripción
d directorio Un archivo
usado para
contener otros
archivos.
- archivo Incluye
ordinario archivos leíbles,
imágenes,
archivos
binarios, y
archivos
comprimidos.
s socket Permite la
comunicación
entre procesos.
entre procesos.
Los permisos indican cómo determinados usuarios pueden acceder a un archivo. Siga
leyendo para obtener más información sobre los permisos.
Número de enlaces directos
Este número indica cuántos enlaces directos apuntan a este archivo. Los enlaces directos
están fuera del alcance de este módulo, pero están cubiertos en el curso NDG Linux
Essentials.
Propietario del archivo
Los directorios y archivos más grandes pueden mostrarse en kilobytes ya que mostrar su
tamaño en bytes resultaría en un número demasiado grande. Por lo tanto, en el caso de un
directorio, este número podría ser un múltiplo del tamaño de bloque utilizado por el sistema
de archivos. El tamaño de bloque es el tamaño de una serie de datos almacenados en el
sistema de archivos.
Sello horario o de tiempo
Indica la fecha y hora en que el contenido del archivo se modificó por última vez.
Nombre del archivo
Los enlaces simbólicos están fuera del alcance de este módulo, pero están cubiertos en el
curso NDG Linux Essentials.
Ordenar archivos
Por defecto, el resultado del comando ls está ordenado alfabéticamente según el nombre del archivo.
Pero también se puede ordenar usando otros método.
Siga leyendo
Las opciones en los siguientes ejemplos se combinarán con la opción -l para mostrar los detalles
relevantes de cada archivo. Preste atención a los campos correspondientes a la opción de búsqueda.
La opción -t ordenará los archivos por su sello de tiempo (timestamp):
sysadmin@localhost:~$ ls -l -S /var/log
total 844
-rw-r--r-- 1 root root 325238 Dec 20 2017 dpkg.log
-rw-rw-r-- 1 root utmp 292584 Oct 2 19:57 lastlog
-rw-r----- 1 root adm 85083 Dec 20 2017 dmesg
-rw-r--r-- 1 root root 47816 Dec 7 2017 bootstrap.log
-rw-r--r-- 1 root root 32064 Dec 20 2017 faillog
-rw-r----- 1 syslog adm 19573 Oct 2 22:57 syslog
-rw-r--r-- 1 root root 18047 Dec 20 2017 alternatives.log
drwxr-x--- 2 root adm 4096 Dec 20 2017 apache2
drwxr-xr-x 1 root root 4096 Dec 20 2017 apt
drwxr-xr-x 2 root root 4096 Dec 7 2017 fsck
drwxr-xr-x 2 root root 4096 Apr 11 2014 upstart
-rw-r----- 1 syslog adm 1346 Oct 2 22:17 auth.log
-rw-r----- 1 syslog adm 547 Oct 2 22:17 cron.log
-rw-rw-r-- 1 root utmp 384 Oct 2 19:57 wtmp
-rw-r----- 1 syslog adm 106 Oct 2 19:57 kern.log
-rw-rw---- 1 root utmp 0 Dec 7 2017 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
Acceso administrativo
Hay muchos comandos de Linux que tratan con información confidencial como
contraseñas, hardware del sistema, u otros que operan bajo circunstancias
excepcionales. Evitar que usuarios ordinarios ejecuten estos comandos ayuda a proteger
el sistema. Iniciar una sesión como usuario root proporciona acceso administrativo, y
permite la ejecución de algunos de los comandos privilegiados.
El comando su
su OPCIONES NOMBRE-DE-USUARIO
sysadmin@localhost:~$ su -
Password:
root@localhost:~#
Tenga en cuenta que el símbolo del sistema ha cambiado para reflejar que ahora ha
iniciado sesión como usuario root. Para cerrar la sesión y volver a la cuenta sysadmin,
use el comando exit. Note como el símbolo vuelve a cambiar
root@localhost:~# exit
logout
sysadmin@localhost:~$
sysadmin@localhost:~$ sl
-bash: /usr/bin/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
logout
sysadmin@localhost:~$
El comando sudo
sudo [OPCIONES] COMANDO
(@@) ( ) (@) ( ) @@ () @ O
@
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___|
_________________
/ | | H | | | | ||_| |_|| _|
| | | H |__--------------------| [___] | =|
| ________|___H__/__|_____/[][]~\_______| | -|
|/ | |-----------I_____I [][] [] D |=======|____|
__________________
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|
____________________
|/-=|___|= || || || |_____/~\___/ |
_D__D__D_| |_D__
\_/ \_O=====O=====O=====O/ \_/ \_/ \
_/ \_/
Una vez completado el comando, observe que el símbolo del sistema no ha cambiado,
usted continua bajo la cuenta de inicio 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 ejecute accidentalmente un comando como
usuario root. La intención de ejecutar un comando es clara; el comando se ejecuta
como root si se prefija con el comando sudo. De lo contrario, el comando se ejecuta
como usuario ordinario.
Previous
Next
Permisos
Los permisos determinan la forma en que los diferentes usuarios pueden interactuar con
un archivo o directorio. Al enumerar un archivo con el comando ls -l, el resultado
incluye información sobre sus permisos. Para nuestro ejemplo usaremos un script
llamado hello.sh ubicado en el directorio Documents:
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Tipo de archivo
- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
El primer carácter de esta salida indica el tipo de archivo. Recuerde que si el primer
carácter es un -, este es un archivo ordinario. Si el carácter fuera una d, se trataría de un
directorio.
Permisos
- rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Después del carácter de tipo de archivo, se muestran los permisos. Los permisos se
dividen en tres grupos de tres caracteres:
Propietario
- rw- r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
Otros
-rw-r-- r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
El último grupo es para todos los demás, cualquiera a quien los dos primeros
conjuntos de permisos no sean aplicables. Si no es el usuario que posee el
archivo o un miembro del grupo que posee el archivo, se le aplicará el tercer
conjunto de permisos.
Tipos de permisos
Un archivo o directorio puede presentar tres permisos
diferentes: leer, escribir y ejecutar. La forma en que se aplican estos permisos difiere
entre archivos y directorios, como se muestra en la tabla siguiente:
A tener en cuenta
Comprender qué permisos se aplican en cada momento es una aptitud importante
cuando trabajamos con Linux. Por ejemplo, considere el siguiente conjunto de
permisos:
-r--rw-rwx. 1 sysadmin staff 999 Apr 10 2013 /home/sysadmin/test
El método simbólico
chmod [<COJUNTO DE PERMISOS><ACCIÓN><PERMISOS>]... ARCHIVO
Para usar el método simbólico de chmodprimero debe indicar qué conjunto de permisos
se está cambiando:
Símbolo Significado
Símbolo Significado
- Eliminar el permiso, si es
necesario
r leer (read)
w escribir (write)
x ejecutar (execute)
Finalmente, añada un espacio y los nombres de ruta para los archivos a los que quiere
asignar los permisos.
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rw-r--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
De esta manera, intentar ejecutar este script utilizando la siguiente sintaxis produce un
error:
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
El usuario propietario ahora posee permiso para ejecutar:
./hello.sh
sysadmin@localhost:~/Documents$ ./hello.sh
______________
( Hello World! )
--------------
\
\
<(^)
( )
A tener en cuenta
Observe que para ejecutar el script en el ejemplo anterior, la siguiente combinación de
caracteres ./ se colocó antes del nombre del script.
./ hello.sh
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Actualmente, todos los archivos del directorio Documents son propiedad del usuario sysadmin.
Esto se puede verificar mediante el comando ls -l. Recuerde que la tercera columna indica cual es
el usuario propietario.
sysadmin@localhost:~/Documents$ ls -l
total 144
drwx------ 5 sysadmin sysadmin 4096 Dec 20 2017 School
drwx------ 2 sysadmin sysadmin 4096 Dec 20 2017 Work
-rw-r--r-- 1 sysadmin sysadmin 39 Dec 20 2017 adjectives.txt
-rw-r--r-- 1 sysadmin sysadmin 90 Dec 20 2017 alpha-first.txt
-rw-r--r-- 1 sysadmin sysadmin 106 Dec 20 2017 alpha-second.txt
-rw-r--r-- 1 sysadmin sysadmin 195 Dec 20 2017 alpha-third.txt
-rw-r--r-- 1 sysadmin sysadmin 390 Dec 20 2017 alpha.txt
-rw-r--r-- 1 sysadmin sysadmin 42 Dec 20 2017 animals.txt
-rw-r--r-- 1 sysadmin sysadmin 14 Dec 20 2017 food.txt
-rwxr--r-- 1 sysadmin sysadmin 647 Dec 20 2017 hello.sh
-rw-r--r-- 1 sysadmin sysadmin 67 Dec 20 2017 hidden.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 letters.txt
-rw-r--r-- 1 sysadmin sysadmin 83 Dec 20 2017 linux.txt
-rw-r--r-- 1 sysadmin sysadmin 66540 Dec 20 2017 longfile.txt
-rw-r--r-- 1 sysadmin sysadmin 235 Dec 20 2017 newhome.txt
-rw-r--r-- 1 sysadmin sysadmin 10 Dec 20 2017 numbers.txt
-rw-r--r-- 1 sysadmin sysadmin 77 Dec 20 2017 os.csv
-rw-r--r-- 1 sysadmin sysadmin 59 Dec 20 2017 people.csv
-rw-r--r-- 1 sysadmin sysadmin 110 Dec 20 2017 profile.txt
-rw-r--r-- 1 sysadmin sysadmin 51 Dec 20 2017 red.txt
Confirme que el usuario propietario ha cambiado ejecutando el comando ls -l. Utilice el nombre
del archivo como argumento para limitar la salida:
sysadmin@localhost:~/Documents$ ls -l hello.sh
-rwxr--r-- 1 root sysadmin 647 Dec 20 2017 hello.sh
A tener en cuenta
Intente ejecutar el script hello.sh de nuevo. ¡Error! ¿Por qué?
sysadmin@localhost:~/Documents$ ./hello.sh
-bash: ./hello.sh: Permission denied
Sólo el usuario propietario tiene permiso para ejecutar. Ahora el usuario root es el usuario
propietario. Ahora este archivo requiere acceso administrativo para ejecutarse. Utilice el
comando sudopara poder ejecutar el script como usuario root.
sysadmin@localhost:~/Documents$ sudo ./hello.sh
[sudo] password for sysadmin:
______________
( Hello World! )
--------------
\
\
<(^)
( )
Visualización de archivos
Existen varios comandos en Linux disponibles para visualizar el contenido de los archivos. El
comando cat, que significa “concatenar”, a menudo se usa para ver rápidamente el contenido de
archivos pequeños.
El comando cat mostrará todo el contenido del archivo, por lo que se recomienda principalmente
para archivos pequeños para los que el resultado es limitado y no requiere desplazamientos de
pantalla. Para ver el contenido de un archivo utilizando el comando cat, simplemente escriba el
comando y utilice el nombre del archivo que desea ver como argumento:
Nuestra máquina virtual tiene algunos pequeños archivos de texto que puede visualizar con el
comando cat. Uno de estos archivos es el archivo animals.txt:
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ cat animals.txt
1 retriever
2 badger
3 bat
4 wolf
5 eagle
El comando cat muestra las cinco líneas del archivo de interés. Si lo usa para visualizar archivos
más grandes, el comando catpuede generar un resultado muy largo que no puede pausarse o verse
en secciones en la pantalla. Un mejor método para ver archivos de texto largos, es utilizar un
comando de paginación con funcionalidad de pausa y que permite ver el contenido del archivo de
interés en secciones.
Nota
Ejemplos de comandos de paginación incluyen los comandos more y less. Estos y otros comandos
adicionales usados para visualizar archivos en Linux se examinan en el curso NDG Linux Essentials.
Otra forma de ver el contenido de los archivos es utilizando los comandos head y tail . Estos
comandos se utilizan para ver un número seleccionado de líneas desde la parte superior o inferior de
un archivo. Echar un vistazo a algunas líneas de un archivo puede ser útil para asegurarse de que el
archivo es realmente el que desea utilizar.
Obtener una vista previa de las primeras o últimas líneas de un archivo es también útil para algunos
archivos, como los archivos de registro del sistema, porque se actualizan con nuevas entradas
frecuentemente. Al igual que el comando cat, los comandos head y tail utilizan el nombre del
archivo a visualizar como argumento del comando:
A continuación, para ver las últimas líneas del archivo alpha.txt, utilice el comando tail:
Por ejemplo, para cambiar la salida por defecto del comando head y ver las cinco primeras líneas
del archivo alpha.txt:
Copiar archivos
Crear copias de archivos puede ser útil por numerosas razones:
Si se ha creado una copia del archivo antes de que se hayan realizado cambios, siempre
podremos revertir al archivo original.
La copia de un archivo puede utilizarse para transferirlo a un dispositivo extraíble.
La copia de un documento puede utilizarse como plantilla para un documento nuevo.
Continuemos...
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
El comando cp se utiliza para copiar archivos. Similar al comando mv, requiere al menos dos
argumentos: un origen y un destino. Por ejemplo, para copiar el archivo /etc/passwd en el
directorio actual, utilice el siguiente comando:
sysadmin@localhost:~/Documents$ cp /etc/passwd .
Nota
El segundo argumento es el carácter (.). Recuerde la sección Cambio de Directorio, este carácter es
un atajo al directorio actual.
Ejecutar el comando anterior resulta en una copia del contenido del archivo /etc/passwd en el
directorio Documents, ya que este es nuestro directorio actual. Esto se puede confirmar usando el
comando ls:
sysadmin@localhost:~/Documents$ ls
School alpha-third.txt hidden.txt numbers.txt red.txt
Work alpha.txt letters.txt os.csv
adjectives.txt animals.txt linux.txt passwd
alpha-first.txt food.txt longfile.txt people.csv
alpha-second.txt hello.sh newhome.txt profile.txt
A tener en cuenta
Los permisos pueden afectar a los comandos de administración de archivos, como el comando cp.
Para copiar un archivo, es necesario tener permiso de ejecución para acceder al directorio donde se
encuentra el archivo y permiso de lectura para el archivo que se está copiando.
También es necesario tener permiso de escritura y ejecución en el directorio al que se está copiando
el archivo. Normalmente, hay dos lugares en los que siempre debe tener permisos de escritura y
ejecución: su directorio home y el directorio /tmp.
Copiar archivos
El comando dd se utiliza para copiar archivos o particiones enteras al nivel de bits.
dd [OPCIONES] OPERANDO
Este comando tiene varias características útiles, entre las que se incluyen:
Argumento Descripción
A tener en cuenta
No es necesario especificar el tamaño de bloque ni el recuento al copiar dispositivos enteros. Por
ejemplo, para clonar de un disco duro (/dev/sda) a otro (/dev/sdb) ejecute el siguiente
comando:
dd if=/dev/sda of=/dev/sdb
Mover archivos
El comando mv se utiliza para mover un archivo de una ubicación en el sistema de archivos a otra.
mv ORIGEN DESTINO
El comando mv requiere dos argumentos como mínimo. El primer argumento es la fuente u origen, la
ruta al archivo que va a ser movido. El segundo argumento es el destino, la ruta al lugar donde se
moverá el archivo. Generalmente, los archivos que se van a mover se denominan origen, y el lugar
donde se van a colocar se denomina destino.
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Para mover el archivo people.csv al directorio Work, utilice el nombre del archivo como origen
y el nombre del directorio como destino:
Si un archivo se mueve de un directorio a otro sin especificar un nuevo nombre para el archivo, éste
conservará su nombre original. El movimiento anterior se puede confirmar mediante el
comando ls en el directorio Work:
sysadmin@localhost:~/Documents$ ls Work
people.csv
El comando mv puede utilizarse para mover varios archivos, siempre y cuando el argumento final
proporcionado al comando sea el destino. Por ejemplo, para mover tres archivos al
directorio School:
Mover un archivo dentro del mismo directorio es una forma eficaz de cambiarlo de nombre. Por
ejemplo, en el ejemplo siguiente, el archivo animals.txt recibe un nuevo nombre zoo.txt:
mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt hello.sh newhome.txt red.txt
Work alpha-third.txt hidden.txt os.csv
adjectives.txt animals.txt linux.txt passwd
alpha-first.txt food.txt longfile.txt profile.txt
sysadmin@localhost:~/Documents$ mv animals.txt zoo.txt
sysadmin@localhost:~/Documents$ ls
School alpha-second.txt hidden.txt os.csv zoo.txt
Work alpha-third.txt linux.txt passwd
adjectives.txt food.txt longfile.txt profile.txt
alpha-first.txt hello.sh newhome.txt red.txt
A tener en cuenta
Los permisos pueden afectar comandos de administración de archivos, incluyendo el comando mv.
Mover un archivo requiere tener permisos de escritura y ejecución tanto en los directorios de origen
como de destino.
«¡Pingüinos en el espacio! NASA utiliza Linux. La Estación Espacial Internacional funciona con
Linux. "Migramos funciones esenciales de Windows a Linux porque necesitábamos un sistema
operativo más estable y fiable." Keith Chuvala, manager de Operaciones Informáticas Espaciales
de NASA. Curiosity, el Rover en Marte.»
Eliminar archivos
El comando rm (remove) se utiliza para eliminar archivos y directorios. Es importante
tener en cuenta que los archivos y directorios eliminados no aparecen en una “papelera”
como ocurre con los sistemas operativos orientados a escritorio. Cuando un archivo se
elimina con el comando rm, generalmente siempre desaparece de manera permanente.
rm [OPCIONES] ARCHIVO
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
sysadmin@localhost:~/Documents$ rm linux.txt
sysadmin@localhost:~/Documents$ ls linux.txt
ls: cannot access linux.txt: No such file or directory
sysadmin@localhost:~/Documents$ rm Work
rm: cannot remove 'Work': Is a directory
sysadmin@localhost:~/Documents$ rm -r Work
sysadmin@localhost:~/Documents$ ls Work
ls: cannot access Work: No such file or directory
Advertencia
El comando rm elimina los archivos de forma permanente. Para repetir los ejemplos
anteriores, restablezca el terminal usando el botón de reinicio.
A tener el cuenta
Los permisos pueden afectar a los comandos de administración de archivos, como el
comando rm.
Para eliminar un archivo dentro de un directorio, el usuario debe tener permiso de
escritura y ejecución en ese directorio. Normalmente, los usuarios ordinarios solo tienen
este tipo de permiso en su directorio principal y subdirectorios correspondientes.
Filtrado de entradas
El comando grep es un filtro de texto que busca líneas en una entrada y devolverá
aquellas que coincidan con un patrón determinado.
Siga leyendo
Utilice el siguiente comando para cambiar al directorio Documents:
sysadmin@localhost:~$ cd ~/Documents
Next