Вы находитесь на странице: 1из 62

GNU/Linux

Introduccion a GNU/Linux
Leonardo A. Naranjo Vega
Universidad Nacional Aut
onoma de M
exico
naranjo.vega.leonardo@gmail.com

6 de enero de 2015

GNU/Linux

Contenido
1 Historia de GNU/Linux y distribuciones.
2 Instalaci
on de GNU/Linux.
3 Sistema de archivos
4 Shell
5 Referencia de comandos

Manejo de archivos y directorios


Manejo de procesos
Permisos de archivos
Informacion del sistema

GNU/Linux

Objetivos del curso

No es un curso avanzado.
Explicarles algunos conceptos relacionados con la instalacion.
Introducirlos en el uso basico del sistema operativo.
Terminal.
Editor (vim o emacs).
Shell scripts.
Instalaci
on de software.
Seguridad.
Usos (CMS).

GNU/Linux
Historia de GNU/Linux y distribuciones.

Historia de GNU/Linux y distribuciones

GNU/Linux
Historia de GNU/Linux y distribuciones.

Que es un sistema operativo?


Una serie de abstracciones que permiten hacer uso del hardware de
una computadora.

GNU/Linux
Historia de GNU/Linux y distribuciones.

Historia de GNU y Linux (sucesos importantes)

A principios de la decada de los 80s, casi todo el software era


propietario. Esto hizo necesario que surgiera el proyecto
GNU.
En 1985, Richard Stallman fund
o la Free Software
Foundation con el objetivo de generar fondos para el proyecto
GNU.
En 1990 se haban creado la mayora de los componentes
principales, excepto el n
ucleo (kernel) del sistema operativo.
El 1991, Linux (kernel) fue creado por Linus Torvalds.

GNU/Linux
Historia de GNU/Linux y distribuciones.

GNU/Linux NO es UNIX

= GNU/Linux

GNU/Linux
Historia de GNU/Linux y distribuciones.

Que es una distribuci


on de GNU/Linux?
Linux distributions do the hard work for you, taking all the code
from the open-source projects and compiling it for you, combining
it into a single operating system you can boot up and install. They
also make choices for you, such as choosing the default desktop
environment, browser, and other software. Most distributions add
their own finishing touches, such as themes and custom software
the Unity desktop environment Ubuntu provides, for example.
Fuente: http://www.howtogeek.com/

GNU/Linux
Instalaci
on de GNU/Linux.

Instalacion de GNU/Linux (Ubuntu)

GNU/Linux
Instalaci
on de GNU/Linux.

Pasos para llevar a cabo la instalacion

Creaci
on de las particiones necesarias para la instalaci
on.

Creacion de un disco (DVD o USB) de instalacion.

Instalaci
on del sistema operativo.

Configuraci
on del gestor de arranque.

GNU/Linux
Instalaci
on de GNU/Linux.

Creacion de particiones

Que es una partici


on? (firmware y carga de SO)
Es obligatoria la creaci
on de una partici
on (root)
Para tener un buen rendimiento en el sistema, es
recomendable crear una partici
on para el area de swap.
Es altamente recomendable crear mas particiones para
evitar perdida de datos.
Tip: Utilizar las herramientas nativas de cada sistema
operativo (Administraci
on de discos y Utilidad de discos).
Layout de particiones (parted -l y df -h)

GNU/Linux
Instalaci
on de GNU/Linux.

Configuracion del gestor de arranque


Copiar archivos de rEFInd a ESP (EFI System Partition)
bcdedit (Windows) o efibootmgr (Ubuntu).
grub es un gestor de arranque para sistemas operativos.
Opciones de arranque de SOs
UEFI Boot Manager rEFInd Windows
UEFI Boot Manager rEFInd grub Ubuntu.
UEFI Boot Manager grub Windows
UEFI Boot Manager grub Ubuntu

GNU/Linux
Instalaci
on de GNU/Linux.

Configuracion de grub2
1

Editar archivo /etc/default/grub (GRUB HIDDEN TIMEOUT*)

Editar archivo /etc/grub.d/40 custom

BIOS (MBR partition table)

UEFI (GPT partition table)

GNU/Linux
Sistema de archivos

Sistema de archivos

GNU/Linux
Sistema de archivos

Sistema de archivos
Es un conjunto de estructuras de datos que normalmente
reside en una parte del disco y que contiene archivos y
directorios.
Un sistema de archivos en GNU/Linux tiene la forma de un
arbol, siendo el directorio root la parte de hasta arriba.
Cada uno de los subdirectorios en el arbol puede contener mas
subdirectorios (rama) o archivos (hoja).
En GNU/Linux todo (teclado, monitor, tarjeta de video,
RAM, etc.) se representa por medio de un archivo (/dev/sda).
El tama
no del nombre de los archivos en GNU/Linux
depende del sistema de archivos, normalmente es de 255
caracteres. (stat -f /home).

GNU/Linux
Sistema de archivos

Jerarqua de archivos en GNU/Linux

GNU/Linux
Sistema de archivos

Ruta de archivo (pathname)


Es la ruta desde un directorio en el sistema de archivos hasta el
nombre de un archivo o directorio (incluyendo directorios
intermedios). Ej. /home/leonardo/test/helloworld.c
Ruta de archivo absoluta
Es una ruta de archivo que comienza desde el directorio root (raz).
Ej. /home/leonardo/test/helloworld.c
Ruta de archivo relativa
Es una ruta de archivo que comienza desde el directorio de
trabajo.
Ej. ./test/helloworld.c

GNU/Linux
Shell

Shell

GNU/Linux
Shell

Shell
Es un software que proporciona una interfaz entre el usuario y el
sistema operativo. El usuario introduce comandos, que el shell
interpreta y, a continuaci
on, los enva al sistema operativo.

GNU/Linux
Shell

Aplicacion Terminal (emulador de una terminal)

Por ejemplo, cuando el usuario introduce el comando ls, el shell ejecuta


un programa llamado ls, cuya salida es el listado de los archivos
contenidos en un directorio.

GNU/Linux
Shell

Directorio de trabajo (directorio actual)

Es el directorio que tiene asociado cada aplicacion ejecutada


en GNU/Linux.
Normalmente se dice que es el directorio en el que se esta.
Para saber cual es el directorio de trabajo se puede usar el
comando: pwd.

GNU/Linux
Shell

Directorio home

Es el directorio de trabajo por omisi


on de un usuario.
Normalmente son los directorios que se encuentran debajo del
directorio /home. Ej. /home/leonardo o /home/usuario1.
Para saber cual es el directorio home de un usuario se puede
utilizar el comando: echo $HOME.

GNU/Linux
Shell

Lnea de comandos
Es una sentencia compuesta por un comando, sus opciones y
argumentos (i.e. ls -lh).
En la lnea de comandos, cada una de las secuencias de
caracteres (sin considerar espacios en blanco) es llamada
token.
La lnea de comandos tiene una sintaxis, la cual es:
$ comando [opciones] [arg1] [arg2] [argn]
comando: Es el nombre de alg
un comando en GNU/Linux,
como: ls, echo, pwd, etc.
opciones: Es una letra o conjunto de letras, precedidas por un
guion, que modifican el comportamiento del comando.
argumentos: Puede ser el nombre de un archivo, una cadena
de caracteres, un n
umero u otro objeto sobre el que el
comando act
ua.

GNU/Linux
Shell

Comando ls (lista el contenido de un directorio)

$
$
$
$
$

ls
man ls (Ver el manual en lnea del comando ls)
ls -l
ls -lh
ls -lh examples.desktop hola.c

GNU/Linux
Shell

Metacaracteres

GNU/Linux
Shell

Entrada, salida y error estandar

GNU/Linux
Shell

Metacaracteres para redireccion


Redirecci
on: Se refiere a las distintas formas en que el shell puede
alterar de donde viene la entrada estandar de los comandos y a
donde va la salida estandar de estos.

Metacaracter

Uso

>

Instruye al shell que redireccione la salida estandar


de un comando haca un archivo.
Intruye al shell que redireccione la salida estandar
de un comando y que lo agregue a un archivo.
Instruye al shell que redireccione la entrada
estandar para que provenga de un archivo
Instruye al shell que conecte la salida estandar de
un proceso con la entrada estandar de otro.

>>
<
|

GNU/Linux
Shell

Ejemplos de redireccion

$
$
$
$
$
$
$
$
$

ls -lh
ls -1
ls -1 >temp
cat <temp o cat temp
wc -l temp o wc -l <temp
rm temp
ls -1 | wc -l
ls -1 | sort -r
dpkg -l | grep ii | wc -l (N
umero de paquetes instalados)

GNU/Linux
Shell

Metacaracteres para expansion de nombres de archivos


(Wildcards)
Indican al shell que genere una lista de nombres de archivos
existentes (en orden) que coincidan con los caracteres
proporcionados.
Metacaracter

Uso

Coincide con cualquier n


umero de caracteres
(incluido cero caracteres).
Coincide con un solo caracter
Coincide con uno solo de los caracteres que
se encuentra en la lista (dentro de los corchetes)

?
[ccc]

GNU/Linux
Shell

Ejemplos de metacaracteres para expansion de nombres de


archivos

$
$
$
$
$
$
$
$

echo Hola mundo!


echo D*
ls D* o ls Desktop Documents Downloads
ls ?esktop o ls Desktop
ls *[abcABC]
ls *[a-cA-C]
rm -rf *
echo * (Como imprimo un asterisco?)

GNU/Linux
Shell

Metacaracteres para escape de caracteres

Metacaracter

Uso

\c
0 ...0

Preserva el valor literal de un solo caracter


Preserva el valor literal de los caracteres que
se encuentran dentro de las comillas
Preserva el valor literal de todos los caracteres dentro de las comillas, excepto por $, , \
y!

...

GNU/Linux
Shell

Ejemplos de metacaracteres para escape de caracteres

$
$
$
$
$
$

echo \ o echo * o echo *


date
date + %T
saludo=Hola
echo $saludo, son las date + %T
echo $saludo, son las date + %T

GNU/Linux
Shell

Otros metacaracteres
Metacaracter

Uso

;
&

Terminador de comandos
Manda a ejecutar un comando en segundo
plano
Valor de la variable de shell var
Valor de la variable de shell var; evita confusi
on cuando esta concatenada con texto.
Comentarios
Asigna el valor value a la variable var
Ejecuta p2 solamente si p1 se ejecuto correctamente
Ejecuta p2 solamente si p1 no se ejecuto
correctamente

$var
${var }
#
var=value
p1&&p2
p1||p2

GNU/Linux
Shell

Ejecucion de comandos en primer y segundo plano


$ sleep 120
Cuando se ejecuta un comando en primer plano, el shell
espera a que este termine su ejecuci
on antes de mostrar otro
prompt para que el usuario introduzca un nuevo comando.
Que pasa si quiero ejecutar otro comando mientras el
anterior termina? Soluci
on: Utilizar el metacaracter &.
$ sleep 120 &
Que pasa si el comando ya se esta ejecutando y quiero
enviarlo a segundo plano? Soluci
on: Utilizar Ctrl+Z y el
comando bg
Que pasa si quiero enviar un proceso que se esta ejecutando
en segundo plano a primer plano? Soluci
on: Utilizar el
comando fg.

GNU/Linux
Referencia de comandos

Referencia de comandos

GNU/Linux
Referencia de comandos

Unix/Linux Command Reference


File Commands

.com
System Info

ls directory listing
date show the current date and time
ls -al formatted listing with hidden files
cal show this month's calendar
cd dir - change directory to dir
uptime show current uptime
cd change to home
w display who is online
pwd show current directory
whoami who you are logged in as
mkdir dir create a directory dir
finger user display information about user
rm file delete file
uname -a show kernel information
rm -r dir delete directory dir
cat /proc/cpuinfo cpu information
rm -f file force remove file
cat /proc/meminfo memory information
rm -rf dir force remove directory dir *
man command show the manual for command
cp file1 file2 copy file1 to file2
df show disk usage
cp -r dir1 dir2 copy dir1 to dir2; create dir2 if it du show directory space usage
doesn't exist
free show memory and swap usage
mv file1 file2 rename or move file1 to file2
whereis app show possible locations of app
if file2 is an existing directory, moves file1 into
which app show which app will be run by default
directory file2
Compression
ln -s file link create symbolic link link to file
tar cf file.tar files create a tar named
touch file create or update file
file.tar containing files
cat > file places standard input into file
tar xf file.tar extract the files from file.tar
more file output the contents of file
tar czf file.tar.gz files create a tar with
head file output the first 10 lines of file
Gzip compression
tail file output the last 10 lines of file
tar xzf file.tar.gz extract a tar using Gzip
tail -f file output the contents of file as it
tar cjf file.tar.bz2 create a tar with Bzip2
grows, starting with the last 10 lines
compression
Process Management
tar xjf file.tar.bz2 extract a tar using Bzip2
ps display your currently active processes
gzip file compresses file and renames it to
top display all running processes
file.gz
kill pid kill process id pid
gzip -d file.gz decompresses file.gz back to
killall proc kill all processes named proc *
file
bg lists stopped or background jobs; resume a
stopped job in the background
Network
fg brings the most recent job to foreground
ping host ping host and output results
fg n brings job n to the foreground
whois domain get whois information for domain
dig domain get DNS information for domain
File Permissions
dig -x host reverse lookup host
chmod octal file change the permissions of file
wget file download file
to octal, which can be found separately for user,
wget -c file continue a stopped download
group, and world by adding:
4 read (r)
Installation
2 write (w)
Install from source:
1 execute (x)
./configure
Examples:
make
chmod 777 read, write, execute for all
make install
chmod 755 rwx for owner, rx for group and world
dpkg -i pkg.deb install a package (Debian)
For more options, see man chmod.
rpm -Uvh pkg.rpm install a package (RPM)

SSH

ssh user@host connect to host as user


ssh -p port user@host connect to host on port
port as user
ssh-copy-id user@host add your key to host for
user to enable a keyed or passwordless login

Searching

Shortcuts
Ctrl+C halts the current command
Ctrl+Z stops the current command, resume with
fg in the foreground or bg in the background
Ctrl+D log out of current session, similar to exit
Ctrl+W erases one word in the current line
Ctrl+U erases the whole line
Ctrl+R type to bring up a recent command
!! - repeats the last command
exit log out of current session

grep pattern files search for pattern in files


grep -r pattern dir search recursively for
pattern in dir
command | grep pattern search for pattern in the
output of command
* use with extreme caution.
locate file find all instances of file

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

Manejo de archivos y directorios

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

ls (list directory contents)


Sintaxis
$ ls [opciones] [archivos o directorios]
Opciones u
tiles
-l: Lista el contenido en un formato amplio.
-a: Muestra archivos ocultos.
-d: Muestra la informaci
on relacionada con un directorio.
-h: Imprime los tama
nos de los archivos en un formato leble.
-r: Ordena los archivos y directorios de forma inversa (se
ordenan por omisi
on de acuerdo al nombre).
-R: Lista archivos y directorios de forma recursiva.
-1: Lista los archivos en una sola columna.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

ls (Continuacion)

Notas
Si el argumento de ls es un directorio, este listara el contenido
de dicho directorio.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

cd (change directory)

Sintaxis
$ cd [nombre directorio]
Nota
Si no se proporciona un argumento a cd entonces el directorio
home se convierte en el directorio actual.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

pwd (print the name of the working/current directory)

Sintaxis
$ pwd
Notas
El nombre del directorio actual (ruta absoluta) tambien se
encuentra guardado en la variable de entorno PWD.
$ echo $PWD

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

mkdir (make directories)

Sintaxis
$ mkdir [opciones] nombre directorio
Opciones u
tiles
-p: Crear tantos directorios como sea necesario.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

rm (remove files or directories)


Sintaxis
$ rm [opciones] archivo(s)
$ rm -r[opciones] directorio(s)
Opciones u
tiles
-i: Pregunta antes de remover cada archivo o directorio.
-f: Borra los archivos o directorios sin preguntar nada.
-v: Da detalles acerca de lo que se esta llevando a cabo.
-r o -R: Remueve directorios y sus contenidos de forma
recursiva.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

mv (move/rename files or directories)

Sintaxis
$ mv [opciones] origen destino
Notas
El destino no existe.
Renombra archivos o directorios.
Si el destino existe entonces se sobrescribe (archivo
archivo).

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

mv (Continuacion)

Sintaxis 2
$ mv [opciones] origenes destino
Notas 2
El destino debe existir y tiene que ser un directorio.
Mueve archivos o directorios al directorio destino.
Origenes es una lista de uno o mas archivos o directorios
(mezclados).

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

mv (Continuacion)

Opciones u
tiles
-i: Pregunta antes de sobrescribir alg
un archivo.
-f: Sobrescribe sin preguntar antes nada (comportamiento por
omision).
-v: Imprime las acciones que se estan llevando a cabo.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

cp (copy files or directories)

Sintaxis 1
$ cp [opciones] [origen] [destino]
Notas
El destino no existe.
Copia archivos. Cuando se utiliza la opci
on -r, copia
directorios recursivamente.
Si el destino existe (archivo archivo), este se sobrescribe.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

cp (Continuacion)

Sintaxis 2
$ cp [opciones] [origenes] [destino]
Notas 2
El destino existe y es un directorio.
Copia archivos o directorios (mezcla) al directorio destino.
Origenes es una lista de archivos o directorios (-r).

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

cp (Continuacion)

Opciones u
tiles
-i: Pregunta antes de sobrescribir alg
un archivo.
-r: Copia directorios de forma recursiva.
-n: No sobrescribe el archivo en caso de que exista (no
pregunta nada).
-v: Da informacion detallada de lo que se esta llevando a cabo.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

Impresion de archivos en pantalla

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

cat (concatenate files and print on the standard output)


Sintaxis
$ cat [opciones] [archivo1] [archivo2] ... [archivoN]
Opciones u
tiles
-n: Muestra los n
umeros de lneas.
-: Imprime la entrada estandar a la salida estandar.
Notas
El guion () copia la entrada estandar a la salida estandar,
un buen uso podra ser:
$ cat archivo1 - archivo2 > archivo3

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

less is more
Sintaxis
$ less [opciones] [archivo1] [archivo2] ... [archivoN]
Opciones u
tiles
-N: Muestra los n
umeros de lnea en el archivo.
+n: Ir a la lnea n.
Notas
Una vez que less se ha ejecutado se pueden utilizar los siguientes
comandos:
h: Muestra la ayuda.
e: Ir una lnea hacia adelante.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

less is more (Continuacion)


Notas
y: Ir una lnea hacia atras.
f o ESPACIO: Ir una ventana hacia adelante.
b: Ir una ventana hacia atras.
/patron: Busca un patr
on hacia adelante.
?patron: Busca un patr
on hacia atras.
n: Repite la busqueda anterior.
g: Ir a la primera lnea del archivo.
G: Ir a la u
ltima lnea del archivo.
q: Salir de less.

GNU/Linux
Referencia de comandos
Manejo de archivos y directorios

head and tail (cabeza y cola)


Sintaxis head
$ head [opciones] [archivo1] [archivo2] ... [archivoN]
Sintaxis tail
$ tail [opciones] [archivo1] [archivo2] ... [archivoN]
Opciones u
tiles com
unes
-n: Imprime las primeras o u
ltimas n lneas.
-c n: Imprime los primeros o u
ltimos n caracteres.
-v: Imprime el nombre de los archivos en la salida estandar.

GNU/Linux
Referencia de comandos
Manejo de procesos

Manejo de procesos

GNU/Linux
Referencia de comandos
Manejo de procesos

ps (process status)
Sintaxis
$ ps [opciones]
Opciones u
tiles: Selecci
on de procesos
-e o -A: Lista todos los procesos.
-p pidlist Selecciona los procesos cuyo PID que se encuentre
en pidlist.
-C cmdlist: Selecciona los procesos cuyo nombre (CMD) se
encuentre en cmdlist.
-u userlist: Selecciona los procesos que pertenezcan a los
usuarios que se encuentren listados en userlist.

GNU/Linux
Referencia de comandos
Manejo de procesos

ps (Continuacion)
Opciones u
tiles: Formato de la salida (-o)
cmd: Comando con todos sus argumentos.
etime: Tiempo transcurrido de ejecuci
on (wall-clock time).
time: Tiempo de CPU acumulado.
pid: Identificador de proceso.
ppid: Identificador de proceso del padre.
Notas
Por omision, ps muestra los procesos que pertenecen al usuario
que invoco el comando y que estan asociados a la terminal actual
(PID, TTY, TIME y CMD).

GNU/Linux
Referencia de comandos
Manejo de procesos

kill (send a signal to a process)


Sintaxis
$ kill [-se
nal] PID ...
$ kill [opciones]
Opciones u
tiles
-l o -L: Lista todas las se
nales que se pueden utilizar.
se
nal
9 o KILL: Causa la terminaci
on inmediata del proceso.
15 o TERM (omisi
on): Solicita al proceso su terminacion.

GNU/Linux
Referencia de comandos
Permisos de archivos

Permisos de archivos y directorios

GNU/Linux
Referencia de comandos
Permisos de archivos

ls -l (Desplegar permisos de archivos y directorios)

Tres tipos de usuarios pueden acceder un archivo o directorio: el


due
no (user ), un miembro de un grupo (group) asociado al archivo
o directorio y todos los demas usuarios (others).
Un usuario puede acceder un archivo o directorio en tres formas:
lectura (r), escritura (w) o ejecuci
on (x).
Si un directorio tiene solamente asignado el permiso de ejecucion
(ugo), solamente se pueden listar archivos contenidos en ese
directorio de forma individual.
Un gui
on () en la cadena de permisos significa que el usuario no
tiene el permiso asociado a esa posici
on.

GNU/Linux
Referencia de comandos
Permisos de archivos

chmod (change file mode bits)


Sintaxis
$ chmod [opciones] permisos archivo(s)
Permisos
El guion () remueve permisos (ugo-rwx).
El smbolo (+) agrega permisos (ugo+rwx).
Notas
Recordar el acronimo ugo (user-group-others). Tambien se
puede utilizar a (all) o nada.
Recordar los tipos de permisos: lectura (r), escritura (w) y
ejecucion.

GNU/Linux
Referencia de comandos
Permisos de archivos

chmod (Continuacion)

Opciones u
tiles
-R: Cambia los permisos de los archivos de forma recursiva.
-v: Imprime lo que el comando esta haciendo.

Вам также может понравиться