You are on page 1of 55

Unix Essentials

Introducción & Filesystem basics

Instructor
Luis Felipe Londoño Muñoz
Centro de Servicios y gestión empresarial
Teleinformática
Iniciando sesión
• En Linux, las sesiones de usuario se inician por “logging in" en la
máquina.
• Para iniciar sesión, usted debe poseer siempre un nombre de usuario y
contraseña.
• Si una máquina Linux se está ejecutando un servidor X, los usuarios
pueden iniciar una sesión utilizando la interfaz gráfica.
• Usuario puede iniciar sesión en cualquiera de las seis consolas virtuales.
Las secuencias de teclas CTRL-ALT-F1 hasta CTRL-ALT-F6 permiten
cambiar entre las seis consolas virtuales.
• La secuencia de teclas CTRL-ALT-F7, Conmuta al servidor X por defecto.
• Si una máquina Linux lo soporta, los usuarios pueden iniciar sesión en la
red mediante un shell remoto.
• El comando who lista cuales usuarios han iniciado sesión actualmente y
cómo iniciaron la sesión.
Iniciando sesión
• Aspectos relevantes:
– Cómo acceder a las consolas virtuales
– Iniciar sesión en el entorno gráfico X
– Abrir terminales en el entorno gráfico X
– Cerrar sesiones en consolas virtuales y en
terminales gnome
– Usando el comando who
– Iniciar sesión en una máquina a través de la red
El kernel, programas y procesos
• El kernel de Linux es un sistema operativo, que
proporciona un entorno para la gestión de procesos.
• Los programas son archivos ejecutables
(generalmente binarios) que residen en el sistema
de archivos.
• Un proceso es una instancia de un programa de
ejecución.
• Una shell es un proceso interactivo que permite al
usuario especificar que se ejecuten otros procesos.
• el shell por defecto es un programa llamado bash.
El kernel, programas y procesos
• Características del kernel
– El kernel es un entorno en el que se ejecutan
programas, y provee mecanismos para que los
programas interactúen con el hardware del
equipo.
– El núcleo de los programas permite saber cuándo
se presionó una tecla, cuando se movió del ratón,
o cuando un paquete destinado para el programa
llegó a través de la red.
El kernel, programas y procesos
El kernel, programas y procesos
• Programas
– Un programa es una serie de instrucciones muy
básicas, que le indican al sistema operativo qué hacer y
cuándo hacerlo de una manera muy detallada y
específica.
• Proceso
– Copia del programa que se ejecuta en la memoria.
• Shell
– Es un programa usado para interactuar con el kernel
– Una shell se ejecuta en una terminal, emitiendo un
prompt y esperando que se le diga qué hacer
El kernel, programas y procesos
• BASH (Bourne Again Shell)
– Los comandos son ingresados en una terminal de
texto:
• En ambiente gráfico (Terminal)
• En consola de solo texto (Console)
– Los resultados son mostrados en la terminal
– Pueden crearse scripts: programas para
automatizar procesos.
Examinando el sistema de archivos
(Filesystem)
• La base del árbol de directorios de Linux es un directorio llamado / que se
denomina "directorio raíz".
• Las referencias de archivo absolutas, tales como
/home/Elvis/lsout.txt, se refieren a archivos relativos al directorio
raíz.
• Referencias de archivo relativas, como lsout.txt, se refieren a los archivos
relativos al directorio de trabajo actual de un proceso.
• El comando ls se utiliza para mostrar el contenido de un directorio
• El comando cat es usado para examinar el contenido de un archivo.
• Utilizar el carácter > de línea de comandos de la shell, redirecciona la salida de
un comando a un archivo.
• Un directorio home del usuario es uno de los pocos lugares donde los usuarios
son capaces de crear nuevos archivos.
Examinando el sistema de archivos
(Filesystem)
Ejemplos:
[elvis@station elvis]$ ls /etc/sysconfig/rhn
clientCaps.d rhnsd systemid up2date

[elvis@station elvis]$ cat /etc/hosts


# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.0.254 server1.example.com server1
Examinando el sistema de archivos
(Filesystem)
Ejemplos:
[elvis@station elvis]$ ls /etc/sysconfig/rhn > lsout.txt
[elvis@station elvis]$ ls
lsout.txt
[elvis@station elvis]$ cat lsout.txt
clientCaps.d
rhnsd
systemid
up2date
Ejecutando comandos
• La shell bash usa una gramática específica
• La primera palabra en la línea de comandos es el
nombre del programa (comando) a ser ejecutado.
• El comportamiento de cada comando puede ser
modificado usando las opciones. Generalmente estas
opciones comienzan con un guion (-) o doble guión (--)
• Cualquier palabra que sigue al comando y a la opción se
denomina argumento.
• usualmente los comandos soportan las opciones --help,
-h, or -? como ayuda.
Ejecutando comandos
• Aspectos relevantes:
– Entendiendo los comandos
– Dónde se almacenan los comandos
– Opciones de los comandos: cortas, largas, múltiples.
– Argumentos: Con o sin argumentos
– Utilizando la ayuda
Ejecutando comandos
EJEMPLOS
Sintaxis: $comando [opción] argumentos
[elvis@station elvis]$ ls /usr
[elvis@station elvis]$ ls -l /usr
[elvis@station elvis]$ ls --size /usr/
[elvis@station elvis]$ ls -s /usr/
Manejando terminales
• Varias secuencias de control, tales como CTRL-C, CTRL-
D, y CTRL-Z, pueden ser útiles para manejar procesos
desde la terminal.
• El comando reset puede ser usado parta sanar el
comportamiento de una terminal.
• La shell bash posee la opción autocompletar mediante
tabulación cuando se especifican comandos o archivos
• Various types of terminals can be distinguished by
knowing how Linux refers to devices.
Manejando terminales
• Aspectos relevantes
– Reseteando terminales: Comando reset
– Autocompletar
– Secuencias de control de la terminal
– Identificando terminales
– Autocompletar mediante tabulación
Manejando terminales
Key Combination Symbolic Name Conventional Use
CTRL-C SIGINT Abnormal Interrupt - terminate the foreground process

CTRL-D EOT Normal signaling of the end of input


CTRL-G BEL Sound an audible terminal bell
CTRL-H BS Backspace - erase the previous character

CTRL-J LF Line feed - alternative for the RETURN key

Form feed - causes bash to clear screen, and other screen based
CTRL-L FF
programs to "refresh" the current screen.

CTRL-Q   Thaw the terminal display (see CTRL-S)

CTRL-S   Freeze the terminal display (thaw with CTRL-Q)


CTRL-U NAK Erase current line
CTRL-Z SIGSTOP Suspend the foreground process
Manejando terminales
Name Device How used
ttyn Virtual Console Accessed with the CTRL-ALT-Fn key combination.
A modem or VT100 like terminal attached to a serial port. The
ttySn Serial Port device terminal ttyS0 in Unix relates to COM1 in DOS, ttyS1 to COM2, and
so on.

A terminal emulation, most often used by terminal windows in the


X graphical environment, or shells which originate over the
pts/n Pseudo-terminal
network, such as with telnet or ssh. Pseudo-terminals cannot be
related directly to a physical device.

The X server is not really a terminal. When a user logs in using the
:0 X server X graphical environment, their terminal is often listed as the X
server itself.
Obteniendo ayuda
Aspectos relevantes:
– Obteniendo ayuda usando las opciones de comando –h, --help
y -?
– Páginas del manual para cada comando(Comando man)
– El paginador less (Usado para desplegar información
obtendida del comando man)
Obteniendo ayuda
Command Action
space View next page
b View previous page
q Quit
/ text RETURN Search for word text
Find next occurrence of previously used search
n
term
Navegación por el sistema de archivos
• El sistema de ficheros Linux es un árbol
"invertido" de directorios y archivos, con un
directorio raíz llamado "/".
• Cada proceso tiene un directorio de trabajo
actual, a menudo es llamado "cwd".
• El comando pwd informa el directorio actual de
trabajo (cwd) de la shell bash.
• El comando cd cambia de cwd (Cambia de
directorio).
• Los archivos pueden ser referenciados a través de
cualquiera de las referencias absolutas o relativas.
Navegación por el sistema de archivos
• Nautilus
– Herramienta gráfica para nevagar por el sistema
de archivos
Navegación por el sistema de archivos
• Directorio actual de trabajo (cwd)
– El comando pwd permite visualizar el directorio
actual de trabajo (Responde a la pregunta ¿Dónde
estoy ubicado?)
– Ejemplo
[alice@station student]$ pwd
/home/alice/website

NOTA: Para este ejemplo, el usuario está ubicado en


/home/alice/website
Navegación por el sistema de archivos
• Moverse alrededor del sistema de archivos
(cd: Change Directory)
Ejemplo
[alice@station website]$pwd
/home/alice/website
[alice@station website]$ cd /home
[alice@station home]$ pwd
/home
[alice@station home]$ cd
/home/alice/website/songs
[alice@station songs]$ pwd
/home/alice/website/songs
Navegación por el sistema de archivos
• Nombres de directorios especiales

Symbol Meaning
. Directorio actual de trabajo
.. Directorio padre
~ Directorio home del usuario
- Directorio de trabajo previo
Navegación por el sistema de archivos
• Referencias absolutas y relativas
– Las referencias absolutas comienzan con un “/” y dan la
ruta completa de un archivo y directorio partiendo del
directorio raiz (/)
– Ejemplo de ruta absoluta:
• /home/felipe/hola.pdf

Parten desde el
directorio raíz
Navegación por el sistema de archivos
• Referencias absolutas y relativas
– Una referencia relativa no describe una ruta de acceso al
archivo a partir de /
– Una referencia relativa especifica una ruta del archivo o
directorio partiendo del directorio actual.
– Ejemplos de rutas relativas:
• Si suponemos que mi cwd es /home/felipe podría
existir un subdirectorio llamado Documentos y allí un
archivo llamado nominas.xls
• La ruta relativa del archivo sería
Documentos/nominas.xls
Navegación por el sistema de archivos
• Referencias absolutas y relativas

/ LaLaruta
En resumen El absoluta
caminante
pueden
referencia
Usted se
desea
sería
desea
usarse
encuentra
saber
cualquiera
relativa
visualizar
que
parte
actualmente
el dedel
los
/home/felipe/Documentos/destino.txt
ruta debe seguir si utiliza una
dos comandos:
REFERENCIA
deREFERENCIA
modo
directorio
en este
contenido
quedirectorio,
referencia parte ABSOLUTA
RELATIVA
actual:
del archivo
es decir
desde
absoluta
destino.txt
o sielusa
cat /home/felipe/Documentos/destino.txt
este es
directorio
una
home su
usando
cwd (/home/felipe)
el comando
Documentos/destino.txt
cat Documentos/destino.txt
raíz referencia relativa
cat

felipe

Documentos
destino.txt
Directorios importantes
• Cada cuenta de usuario se le asigna un directorio home
(Llamado también directorio del usuario). Este
directorio es /home
• El directorio /tmp se usa como espacio temporal
global.
• El directorios /bin y /usr/bin contienen archivos
comúnmente ejecutables.
• El directorio /etc contiene archivos de configuración
del sistema.
• Directorio home del root, /root, no se debe confundir
con el directorio raíz del sistema, /.
Directorios importantes
• Cada cuenta de usuario se le asigna un directorio home
(Llamado también directorio del usuario). Este
directorio es /home
• El directorio /tmp se usa como espacio temporal
global.
• El directorios /bin y /usr/bin contienen archivos
comúnmente ejecutables.
• El directorio /etc contiene archivos de configuración
del sistema.
• Directorio home del root, /root, no se debe confundir
con el directorio raíz del sistema, /.
Directorios importantes
• El directorio /var almacena archivos
variables, tales como logs, bases de datos,
archivos de e-mail temporales, y algunos
archivos temporales en general.
• Este directorio tiene especial importancia
porque allí se almacenan los archivos de los
sitios web del servidor apache.
Específicamente en /var/www
Directorios importantes
• Buscando comandos en /bin y usr/bin:
– Sintaxis: which PROGRAM
EJEMPLOS:
[hogan@station hogan]$ which cp
[hogan@station hogan]$ which mozilla
[hogan@station hogan]$ which cd
hogan@station hogan]$ which fdisk
Manejando archivos
• Pueden crearse o modificarse archivos de
manera sencilla usando la redirección de la
shell.
• El comando cp copia archivos
• El comando mv mueve archivos
• El comando rm elimina archivos
Manejando archivos
• Redirección:
– La ejecución de comandos produce salidas que son
visibles en pantalla (stdout). Por ejemplo:
[julius@station julius]$ pwd
/home/julius
– En vez de que la salida se muestre en pantalla puede
usarse la redirección a un archivo
[julius@station julius]$ ls
[julius@station julius]$ pwd > results.txt
[julius@station julius]$ ls
results.txt
Manejando archivos
• Redirección:
[julius@station julius]$ echo Hello > greetings.txt
[julius@station julius]$ echo How are you >> greetings.txt
[julius@station julius]$ cat greetings.txt
Hello
How are you
Manejando archivos
• Copiando archivos con cp:
SINTAXIS
cp [OPTIONS] {SOURCE} {TARGET}
cp [OPTIONS] {SOURCE...} {DIRECTORY}
EJEMPLOS:
– cp mysong.midi backup.midi
– cp mynovel.txt /tmp
– cp songs.tar novels.tgz /tmp
– cp ~/webpage.html .
Manejando archivos
• Moviendo archivos con mv:
SINTAXIS
mv [OPTION...] {SOURCE} {TARGET}
mv [OPTION...] {SOURCE...} {DIRECTORY}
EJEMPLOS:
– mv mysong.midi backup.midi
– mv mynovel.txt /tmp
– mv songs.tar novels.tgz /tmp
– mv ~/webpage.html .
– mv html public_html
Manejando archivos
• Eliminando archivos con rm:
SINTAXIS
mv [OPTION...] {SOURCE} {TARGET}
mv [OPTION...] {SOURCE...} {DIRECTORY}
EJEMPLOS:
– rm mysong.midi
– rm songs.tar novels.tgz
– rm ~/photos.html
Manejando directorios
• El contenido de un árbol de directorios puede
ser visualizado usando el comando ls -R
• El comando mkdir crea directorios.
• El comando rmdir elimina directorios vacíos
• El comando cp –r realiza una copia recursiva
de directorios
• rm -r Elimina recursivamente directorios
Manejando archivos
• Copiando archivos con cp:
SINTAXIS
mkdir [OPTIONS] {DIRECTORY...}
EJEMPLOS:
[elvis@station elvis]$ ls
[elvis@station elvis]$ mkdir
public_html
[elvis@station elvis]$ ls
public_html
Manejando archivos
• Copiando archivos con cp:
EJEMPLOS:
[elvis@station elvis] mkdir -p work/images/advertising
Manejando archivos
• Listando árboles de directorios:
EJEMPLOS:
[hogan@station hogan]$ ls –R /etc/sysconfig/networking/
/etc/sysconfig/networking/:
devices ifcfg-lo profiles
/etc/sysconfig/networking/devices:
ifcfg-eth0
/etc/sysconfig/networking/profiles:
default netup
Manejando archivos
• Removiendo directorios vacíos:
SINTAXIS
mkdir [OPTIONS] {DIRECTORY...}

EJEMPLOS:
[hogan@station hogan]$ ls –R /etc/sysconfig/networking/
/etc/sysconfig/networking/:
devices ifcfg-lo profiles
/etc/sysconfig/networking/devices:
ifcfg-eth0
/etc/sysconfig/networking/profiles:
default netup
Manejando archivos
• Copiando árboles de directorios:
SINTAXIS
cp -R {SOURCE} {TARGET}
Manejando archivos
• Copiando árboles de directorios:
EJEMPLOS
cp -r website archive (Copia el directorio website en el directorio
archive)

• removiendo árboles de directorios:


EJEMPLOS
rm -r websi
• Examinando directorios con tree:
EJEMPLOS
tree /etc/X11/xinit/
tree -d /etc/sysconfig/
Nombres de archivos y metacarateres
• Files that start . are "hidden" files.
• The *, ?, [...], and [^...] characters can be used to
match filenames, through a process commonly
called "file globbing".
Nombres de archivos y metacarateres
• Metacaracteres
Character Effect

matches zero or more characters (except


*
leading dot)

matches exactly one character (except leading


?
dot)
matches exactly one character from the list or
[...]
range

matches exactly one character not from the list


[^...]
or range
Nombres de archivos y metacarateres
• Metacaracteres
EJEMPLO
Supongamos que tenemos los siguientes
archivos:
image1.jpg image10.jpeg page1.html page3.htm script1.pl
image2.jpg image11.jpeg page2.html page40.htm
Nombres de archivos y metacarateres
• Metacaracteres

Patrón Generates the list


* Todos los archivos de la lista

*.html page1.html page2.html

page*.htm* page1.html page2.html page3.htm page40.htm

image?.* image1.jpeg image2.jpeg

[ps]* page1.html page2.html page3.htm page40.htm script1.pl

[^ps]* image1.jpeg image2.jpeg image10.jpeg image11.jpeg


Navegación por el sistema de archivos
• El comando file muestra el tipo de archivo
• El comando cat muestra los contenidos de un
archivo.
• Loas comandos more y less muestran el
contenido de un archivo realizando
paginación, una pantalla a la vez.
• Los comandos head y tail las primeras o las
últimas líneas de un archivo.
• En entorno gráfico X, nautilus puede ser
usando para examinar archivos de texto.
Navegación por el sistema de archivos
SINTAXIS:
file [OPTIONS] [FILE...]
cat [OPTIONS] [FILE...]
more [OPTIONS] [FILE...]
less [OPTIONS] [FILE...]
head [OPTIONS] [FILE...]
tail [OPTIONS] [FILE...]
Navegación por el sistema de archivos
Opciones del comando head
Switch Effect

-num, -n num Print first num lines (default is 10).

-q Suppress headers giving file names

Opciones del comando tail


Switch Effect

-num, -n num Print last num lines (default is 10).

-q Suppress headers giving file names


Editando archivos
• nano es un editor de texto de línea de
comandos
• gedit es un editor de texto en modo gráfico
FIN

You might also like