Introduccion aos Sistemas Operativos

Published on December 2016 | Categories: Documents | Downloads: 28 | Comments: 0 | Views: 367
of 102
Download PDF   Embed   Report

Breve introducción aos Sistemas OperativosEn galego

Comments

Content

Informática Básica – Prácticas (bloque 2)
Introdución aos Sistemas Operativos

Curso 2014/15
Profesores de prácticas:
Antonio Fariña
Verónica Bolón
Brais Cancela
Diego Fernández

Material feito por:
Juan R. López
Antonio Fariña
Óscar Pedreira
Susana Ladra
Diego Seco
Alberto Ordóñez

Guión
– Instalación de Ubuntu nunha máquina virtual con virtual-box
• Guía de instalación de ubuntu
– Elección de distribución
– Particionado

– O shell de linux:
• nocións básicas.
– Obtención de axuda, o entorno, comandos básicos.
– O superusuario (root). sudo.

– Sistemas de ficheiros.
• estrutura: o path.
• ficheiros
– permisos

• comandos relacionados.

– Usuarios e grupos
• privilexios

– Procesos
• execución en primeiro e segundo plano, finalización, espera.
• Redireccións e pipes.

– Instalación de software e paquetes
– Redes: comandos básicos
– Procesamento batch: scripting.

Usuarios anónimos moodle
• Usuario: 614G01002
• Clave: C14.z6540zbj3
(todo son “ceros”, non hai “Oes maiúsculas”)

Slots NX accesibles para IB
IP

Sistema
Operativo

10.10.5.160

UBUNTU12.04

10.10.5.161

UBUNTU12.04

• Nun terminal:
export USERNAME=xxx (sustitúe xxx polo teu nome de usuario)
/etc/ib/restaurarMV.sh
/etc/ib/MUBd.sh (arranca desde hdd)
/etc/ib/MUBD.sh (arranca desde DVD)

Obtención da máquina virtual “base”


Laboratorios “normais” (1.1, 1.2)
– Atoparás unha máquina virtual virtual box
no menú “applications > systemTools”



Laboratorios “wifi” (2.1w):
– descarga e instala virtual box. (http://www.virtualbox.org/wiki/Downloads)


descarga a máquina virtual de proba
• mub.vdi, mub.ovf e mub.vmdk
• imaxe de cd de ubuntu.


Dispoñible a través de:
1. ftp a ftp.fic.udc.es usuario “anonymous”, directorio “/publico/ib”  atoparás:
» Ubuntu-12.04, e ubuntu-10.04  imaxes para instalar ubuntu
» Mv-virtualbox_ini (máquina virtual xa preconfigurada, sen ubuntu).
» Mv-virtualbox_act (máquina virtual xa preconfigurada, con ubuntu).

– ou instala o teu propio ubuntu directamente (boa opción)


http://www.ubuntu.com/download/desktop (ou cunha das imaxes de ftp.fic.udc.es)

– wific: https://wiki.fic.udc.es/cecafi:labwi:indice (config wifi: wific)

Guión
– Instalación de Linux
• Características da máquina
– O disco duro, estrutura e particións
– Virtual-box (a nosa máquina virtual)

• Instalación Ubuntu

Antes de comezar
Windows/Linux/Mac...?
– Por que Windows?
– Por que Linux?
– Por que Mac?

Moitos factores a ter en conta…










Comodidade de uso?
Robustez?
Soporte? (opción de soporte)?
Coste? (licencias de uso)?
Seguridade?
Utilización (Servidor/Cliente)?
Gustos do usuario? (aprendizaxe|imposición…)
Utilización de recursos/Requisitos mínimos sistema?
Aplicacións a utilizar? (están portadas/existe algo similar?)

Antes de comezar
UBUNTU:
– http://www.ubuntu.com/

– http://doc.ubuntu-es.org
– http://www.ubuntu.com/desktop/get-ubuntu/download
– http://ubuntu-manual.org/downloads

Que versión instalar?


LTS (Long Term Support) ou non LTS



Servidor?




Máis orientado a servidor.

» Aplicacións como servidor: ssh/http/sftp/BD/…
» Quizais non precise de interfaz de ventás… (aforro o espazo)
Cliente?


Máis orientado a estación de traballo típica. Interfaz gnome/kde/…

• Outras…
Diferentes aplicacións/configuracións por defecto…
Pero sempre podemos partir dun sistema base, e instalar nós as aplicacións/servizos que desexemos

Antes de comezar
Elección da versión a instalar: 32bit Vs 64bit?
Arquitectura da máquina?
– 32 bit funcionará en todos.
• Pode haber aplicacións que aínda non estén portadas a 64bit?

– 64 bit. Requisitos de memoria? permite usar >4gb RAM.
• Servidores
• Aplicacións de edición de vídeo/imaxe prof.


UEFI (https://help.ubuntu.com/community/UEFI)

32 bit
Intel pentium (I, II, III, IV)
Intel centrino.
Intel Atom(Z5*, Z6*)

64bit
Intel
Intel
Intel
Intel

core2dúo | quad
Xeón |Itanium
i3, i5, i7
Atom(N*, D*, 2*, 3*)

Amd (athlon Xp | durón)
Amd64 (x2) | opteron
Amd Athlon2 | phenom* | A-Series
...

Antes de comezar
O meu computador: Onde instalar Ubuntu?
– Necesítase un disco duro completo? Unha unidade flash?
– Necesito unha partición. Teño unha partición dispoñible?
• Exemplo:
MBR


Windows: (c) Windows (d)

Ubuntu

Nota: Se xa teño Windows igual me interesa reducir unha partición existente
para lle facer oco á nova partición que usarei para Ubuntu.

– De haber máis de 1 S.O. deberemos instalar
un cargador que permita elexir que S.O.
queremos iniciar:
• Lilo, grub 2.

– O MBR (Máster boot Record) típicamente
conterá o cargador

Antes de comezar
O meu computador: Exemplo típico de almacenamento.
– O MBR (Máster boot Record) ou primeiro sector do disco (512bytes)

– Secuencia típica de arranque.
• Na bios seleccionarase de que HDD arrancar.
• O firmware para o arranque (bootstrapping) carga o sector de arranque e executa o
código máquina do cargador do MBR.
• O cargador executa normalmente a info de carga que se atopará ao comezo da
partición primaria activa
• …

Antes de comezar
Reducir unha partición existente (desde windows)
Interesante se queremos instalar linux nun equipo que xa ten Windows.


Icono Equipo > (pinchar con botón dereito)
> Administrar

Elexir canto espazo queremos para linux

100000
25000
163356

Antes de comezar
O noso computador virtual: VIRTUALBOX
– Url: http://www.virtualbox.org/
– GPL:


Pódese baixar e instalar.

– Simula un computador x86 virtual.




CPU: (1+ cores)
Memoria (128Mb, 512Mb, 2Gb?)
Almacenamento … (ollo á orde de arranque)









Discos duros (1 ou +)
cd-rom/dvd-rom. (1 ou +)
» Virtual? (p.ex montado a partires dunha imaxe “iso” dun cd).
» Unidade do pc?

Tarxeta gráfica
Rede
Son
Usb,
Bios,…

Antes de comezar
O noso computador virtual: VIRTUALBOX


Exemplo:

Antes de comezar
O noso computador virtual: VIRTUALBOX



Nova máquina virtual:
Indicar nome

Antes de comezar
O noso computador virtual: VIRTUALBOX




Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria

Antes de comezar
O noso computador virtual:
VIRTUALBOX





Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria
Crear hdd

2

3

1
4

Antes de comezar
O noso computador virtual:
VIRTUALBOX






3

Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria
Crear hdd
Engadir un cdrom ao sistema

1
2

Antes de comezar
O noso computador virtual:
VIRTUALBOX







Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria
Crear hdd
Engadir un cdrom ao sistema
Rede en modo NAT.
(a máquina compartirá a rede
do host).

Antes de comezar
O noso computador virtual:
VIRTUALBOX









Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria
Crear hdd
Engadir un cdrom ao sistema
Rede en modo NAT.
(a máquina compartirá a rede
do host).
Establecer a orde de arranque:
– Cdrom | hdd |, etc. Ou…
– Hdd | cdrom| …

Antes de comezar
O noso computador virtual:
VIRTUALBOX









Nova máquina virtual:
Indicar nome
Indicar cantidade de memoria
Crear hdd
Engadir un cdrom ao sistema
Rede en modo NAT.
(a máquina compartirá a rede
do host).
Establecer a orde de arranque:
– Cdrom | hdd |, etc. Ou…
– Hdd | cdrom| …

Resumo configuración

Antes de comezar
A máquina virtual preinstalada (lab) ou descargable (wifi):
ftp a ftp.fic.udc.es usuario “anonymous”, directorio “/publico/ib”

Configuración por defecto.







Nome: ubuntu
RAM = 512Mb
1 Hdd de 5gb
Cdrom a montar/montado (iso)
Rede en modo NAT.
Establecer a orde de arranque:
– Cdrom | hdd |, etc. Ou…
– Hdd | cdrom| …



Contén preinstalado un Debian.
– Pódese arrancar
– (Hai que pulsar F12 durante
o arranque para que
arranque desde o disco
duro)
– Unha vez arrancado debian:
– Usuario: ib
– Password: ib

Instalación de ubuntu
Arranque da máquina base

(Arranque desde o disco duro)

– Esta máquina trae xa preinstalado un S.O. linux/debian (e o cargador GRUB)

Instalación de ubuntu
Arranque da máquina base
– Login en debian preinstalado: usuario = password = ib
– Apagar  (teclear su, clave ib) $shutdown –r now

Unha vez arrancado
debian:
– Usuario: ib
– Password: ib

Instalación de ubuntu
Inicio da instalación
– Arráncase desde o CD
• Antes hai que engadir a imaxe “ubuntu-12.04.3-desktop-i386.iso” como unidade
de CD-ROM da nosa máquina virtual

1

2

Instalación de ubuntu
Inicio da instalación
– Arráncase a máquina virtual desde o CD

Instalación de ubuntu
Probar ubuntu ou instalar ubuntu?

Instalación de ubuntu
Preparado para instalar ubuntu

Instalación de ubuntu
Preparación do disco duro: ¡particionado!
– O noso sistema xa ten un sistema operativo (debian) instalado.
– Poderiamos elexir a 1ª
opción e instalar ubuntu
directamente xunto a
Debian GNU/Linux, pero
preferimos particionar
manualmente as nosas
particións.
- Opción “Algo más”

Instalación de ubuntu
Preparación do disco duro: ¡particionado!
– Usamos o espazo libre para crear particións para o “ubuntu”
– Neste caso crearemos 2 novas particións: 1 para o sistema e outra de swap

Instalación de ubuntu
Preparación do disco duro: ¡particionado!
– Usamos o espazo libre para crear particións para o “ubuntu”
– Neste caso crearemos 2 novas particións: 1 para o sistema e outra de swap

Partición para o sistema raíz: /

Especificar tamaño
Tipo ext4. (obrigatorio no vbox dos laboratorios!!)
Punto montaxe= /
Formatear (activado)

Instalación de ubuntu
Preparación do disco duro: ¡particionado!
– Usamos o espazo libre para crear particións para o “ubuntu”
– Neste caso crearemos 2 novas particións: 1 para o sistema e outra de swap

Partición de “área de intercambio”
(tipo=swap)

Especificar tamaño (o restante)
Tipo swap (área de intercambio).
Punto montaxe= deshabilitado (non se monta)
Formatear (non necesario)

Instalación de ubuntu
Preparación do disco duro: ¡particionado!
– En definitiva temos 3 particións no noso disco duro:


/dev/sda1




/dev/sda2




Contén o outro sistema operativo (debian linux)
É o sistema raíz (/) no que instalaremos o ubuntu
»
Tipo ext4. (obrigatorio no vbox dos laboratorios!!)
»
Formatear
»
Punto montaxe= /

/dev/sda3


Usarémolo como espacio de intercambio

– instalar cargador de arranque (grub2)



no primeiro disco duro (/dev/sda)
Poderemos arrancar ubuntu e debian

– Continuamos a instalación



Formatearase /dev/sda2
Instálase ubuntu no /dev/sda2

Instalación de ubuntu
Un inciso, facer particionado: se o hdd estivese baleiro:

Instalación de ubuntu
Elección da zona horaria
– España (Madrid)

Instalación de ubuntu
Distribución do teclado
– P.ex.: Compróbese que detecta ben a “ñ” e o “;” Senón  click detectar

Instalación de ubuntu
Crear usuario inicial
– Será administrador!
– Usuario: ib
– Contrasinal: ib
(ou a que ti queiras)

Instalación de ubuntu
Copiando ficheiros
– Creación sist. ficheiros
– Copia ficheiros e configuración de paquetes.

Instalación de ubuntu
Finalización instalación e reinicio

Pulsar enter

Instalación de ubuntu
Arranque novo sistema
– Elección de sistema no menú de GRUB.

Ubuntu novo
Debian antigo

Instalación de ubuntu
Login en ubuntu
– (co usuario creado previamente: ib)

Instalación de ubuntu
Configuración rede en labs. Wifi. (se fose necesario: 1 de 2)
– (co usuario creado previamente: ib)

Instalación de ubuntu
Configuración rede en labs. Wifi. (se fose necesario: 2 de 2)
– (co usuario creado previamente: ib)

antes
despois

Guión
– O shell de linux
• Nocións básicas

Algunhas nocións básicas: o shell e o entorno,...


Existen varios shell que podemos usar dentro dun terminal, e onde introduciremos comandos:






sh, bash, csh, zsh, tcsh.
Por defecto comezamos co shell “bash” (aínda que se pode cambiar).

Saír do shell: exit ou CTRL+D
Solicitude de axuda sobre un comando (e outras funcións):


man
– man paxina
– man –k cadena





comando –h ou comando --help

O entorno:


Existen unha serie de variables de entorno (HOSTNAME, PATH, HOME,TERM,...) que poden ser modificadas.
Tamén se poden engadir novas variables ao entorno (export var=valor)
– export: export sen argumentos amosa o contido de todas as variables.
export PATH=$PATH:/home/ib/bin
## modifica a variable PATH engadíndolle /home/ib/bin
export X=“a variable X toma este valor” ## crea a variable X
– unset $PATH unset $X
##elimina a variable
– echo $PATH echo $X
##amosa o contido das variables $PATH e $X

Nótese que para facer referencia a ditas variables se pon un $ diante do nome. exemplo: cd $HOME




Existe un ficheiro de configuración do shell no que se definen algunhas destas variables: “.bashrc”, “.profile”...

Combinacións de teclas “especiais”:


CTRL+C , CTRL+Z, CTRL+D(matar/durmir proceso, cerrar sesión, respectivamente)



Alias de comandos: (alias nome=comando). Dalle un nome a un comando que introduzcamos
• alias quenson = whoami
• alias LS='ls -lsa‘  cando tecleemos o comando LS  invócase ls -lsa



Algúns comandos básicos


ls, cat, exit, pwd, echo, hostname, passwd, locate, which, cd, whoami, finger, clear, reset,
free (memoria/swap libre), ...
(algúns verémolos máis adiante!, pero recordade mirar para que sirven!)

Algunhas nocións básicas: o shell
O superusuario / usuario root (e o comando sudo)
– Administrador do sistema.
– Moitos comandos requiren ser executados en “modo root” (superusuario).
– Un usuario “non-root” pode ser engadido ao grupo dos administradores e poderá usar o comando sudo.



sudo: Permitirá executar comandos en modo “root”.
Exemplo:



ib@ib:~$ shutdown –r now
shutdown: Es necesario ser superusuario





ib@ib:~$ sudo shutdown –r now
[sudo] password for ib:
... the system is shutting down...

O comando su, permítenos
Abrir un shell con outro usuario: su <nome usuario>



ib@ib:~$ sudo su usuario2
usuario2@ib:~$

Abrir un shell de administrador (superusuario): su (sen argumentos)


ib@ib:~$ sudo su

Apagar/reiniciar o sistema desde a liña de comandos (requiren ser superusuario)
shutdown







shutdown –h now (halt agora)
shutdown –h 20:10
shutdown –h +10
shutdown –r now (restart)
shutdown –P now (poweroff: apagar tras shutdown, implica –h)
shutdown –k now (avisa aos usuarios de que vou apagar o sistema, pero non o apaga).

reboot, halt, poweroff pódense usar para reiniciar ou parar o sistema
wall <ficheiro> (envia a mensaxe a todos os terminais conectados actualmente. shutdown usa wall para avisar aos usuarios de que o
sistema se vai apagar)

Guión
– Sistemas de ficheiros
• Arquivos
• Directorios e estrutura do s.f.

Sistemas de ficheiros
Arquivos: tipos
– O arquivo é a base do sistema de ficheiros:


Nel almacénase información: imaxe, texto, html,…

– Debe ter un nome:





1..255 caracteres: Calquera caracter salvo a “/”
Arquivos “ocultos” comezan por “.”
Diferencia entre maiúsculas e minúsculas!
a.txt e A.txt son ficheiros diferentes
Comodíns: *, ? ... cando nos queremos referir a eles. (p.ex: ls *.txt ou rm –f /home/??.txt)


*:

sustitúe a 0+ caracteres

?: sustitúe a 1 único caracter

– Tipos:




Arquivos ou ficheiros ordinarios.
Directorios ou carpetas: agrupa a outros arquivos de forma estructurada.
Arquivos especiais: normalmente asociados a dispositivos conectados ao computador:
– De bloque: un disco duro ou dvdrom (hda0,sda0),
– De caracter: unha impresora (lp0, psaux)…



Outros: links (simbólicos/duros), tuberías, sockets,…

– Permisos/Propietario.



Cada ficheiro pertencerá a un propietario e pode ter permisos asignados de lectura, escritura, e
execución (ficheiro executable).
Permisos asignados a: usuario | usuarios do grupo | outros usuarios

Sistemas de ficheiros
Arquivos: permisos



Un nome,



Un propietario e un grupo (véxase chown e chgrp)



Un tipo (ficheiro ‘-’, un directorio ‘d’, un link ‘l’, dispositivo de bloque ‘b’ ou carácter ‘c’, ...)



Un tamaño, data de modificación, data de creación

Unha serie de permisos: (véxase chmod)



Asociados aos usuarios do grupo ao que pertence o ficheiro



Asociados a outros usuarios (nin o propietario nin os membros do grupo).

tamaño

Asociados ao propietario do ficheiro

grupo



propietario

Lectura (r), escritura (w), execución (x)

permisos outros



permisos grupo



Os ficheiros teñen asociados:

tipo
permisos usuario



data de
modificación

root ten permisos sobre
calquera ficheiro

nome

Ex:
chmod +w .bashrc
chmod 644 .bashrc
chmod 770 .bashrc

Sistemas de ficheiros
Estructura xerárquica: o PATH
ib
– A estructura do S.F. é xerárquica:



Típicamente é arbórea (directorios/subdirectorios/…)
Existencia de links (o que a converte nun grafo)

– Cada ficheiro pode estar no directorio raíz (/) ou máis abaixo na xerarquía de directorios.
O camiño desde a raíz ata o ficheiro coñécese como PATH.


/home/ib/Carta.txt

– Directorio actual: rutas relativas Vs absolutas




O directorio raíz é o: /
O directorio de traballo actual é o : .
O directorio pai é o: ..



Ruta absoluta: desde o directorio raíz:

(o comando pwd indícamo.)

– cat /home/ib/examples.desktop



Ruta relativa (ao dir actual):
– cd /home/ib [enter]
– cat examples.desktop



(cambia de directorio ata o /home/ib)

O directorio inicial dun usuario é o: ~
– cd ~

(cambia de directorio ata o directorio inicial,
p.ex. a /home/ib, para o usuario “ib”)

Sistemas de ficheiros
Estructura do S.F: directorio raíz e organización do s.f.
– Todo comeza no “/” (directorio raíz)

Sistemas de ficheiros: comandos básicos
– Existen multitude de comandos: úsese o man para coñecer a súa utilidade.













Amosar o contido dun directorio, información dun ficheiro,... (ls)
Amosar o tipo dun ficheiro (file)
Navegar polo sistema de ficheiros: (cd | chdir)
Coñecer o directorio actual (pwd)
Crear/eliminar directorios (mkdir, rmdir)
Crear ficheiros baleiros (touch, vi, nano | pico)
Eliminar ficheiros e directorios (rm, rm -r)
Mover/copiar elementos: (mv, cp).
Crear links (ln)
Manexar particións (fdisk). Crear sf nunha partición| chequear erros. (mkfs,fsck)
Montar e desmontar sistemas de ficheiros (mount/umount)
Amosar espacio utilizado (du, df).



Manexar permisos: (chmod, chown, chgrp)









Para ficheiros de texto: contido (cat, more, less, head, tail), estatísticas (wc)
Comparar 2 ficheiros: (diff, cmp)
Buscar dentro dun ficheiro (grep)
Empaquetar | comprimir ficheiros e directorio (tar, gzip, bzip2, p7zip,...)
Buscar ruta de ficheiros (whereis, which, locate, updatedb)
Buscar ficheiros que encaixen cun modelo (find –name “modelo“, -perm 777 –user ib)
dd...

para máis info

ver apéndice

Sistemas de ficheiros: particionado, formateado
Dispositivos de almacenamento e particións.
– Un disco duro é un dispositivo de almacenamento que pode conter ata 4 particións primarias*, e delas


unha pode ser extendida (e á súa vez conter múltiples particións lóxicas).
¿Onde están os dispositivos do sistema?  /dev






/dev/hda, /dev/hdb, /dev/hdc, ...  dispositivos IDE (hdd, cdrom, dvdrom...)
/dev/sda, /dev/sdb, /dev/sdc, ...  dispositivos SCSI, SATA (hdd, hdd-usb, dvdrom...)
P. ex: 1º dispositivo SATA: /dev/sda, 2º dispositivo SATA: /dev/sdb

(ex: ls –l /dev/sd* )

Nomeado das particións.



/dev/hda1, /dev/hda2,...  particións 1 e 2 do primeiro dispositivo IDE
/dev/sda1, /dev/sdb1,...  1ª partición do 1º e do 2º dispositivo SATA respectivamente

Disco 1
sda

O primeiro disco do sistema (/dev/sda) ten 3 particións:
/dev/sda1
/dev/sda2, que contén o sistema de ficheiros raíz “/”

Disco 2
sdb

/dev/sda3 que contén unha partición lóxica /dev/sda5
O segundo disco do sistema (/dev/sdb) ten 1 partición:
/dev/sdb1, que contén os directorios de usuario (/home)

Disco 4
sdd

O cuarto dispositivo do sistema (/dev/sdd) ten 1 partición:
/dev/sdd1, neste caso consiste nun “pendrive” cun
sistema de ficheiros en formato “ntfs”

Sistemas de ficheiros: particionado, formateado

Disco 1

– Particionado:


O comando fdisk permite manipular táboas de particións para ver/crear/modificar as particións
existentes nun dispositivo de almacenamento.

• sudo fdisk /dev/sda (para ver/modificar particións de /dev/sda)








p  print estado
n  nova partición (/dev/sda1, /dev/sda2...)
d  eliminar partición
t  cambiar tipo de partición (ext4, swap,...)
w  escribir táboa de particións a disco (!! Realiza os cambios, non se pode “desfacer” !!)
q  saír (sen almacenar cambios).
h  axuda.
(tipos de s.f.: ext4, ext3, ntfs, vfat, linux swap,...)

– Creación dun s.f. (formateado)
• mkfs (mkfs.ext4, mkfs.ext3, mkfs.ntfs,...)
– sudo mkfs –t ext3 /dev/sdd1 equivale a sudo mkfs.ext3 /dev/sdd1
(crea un sistema de ficheiros “ext3” no dispositivo sdd1 (1ª partición do disco 4)
– sudo mkfs –t ext4 /dev/sda2 equivale a sudo mkfs.ext4 /dev/sda2
(crea un sistema de ficheiros “ext4” no dispositivo sda2 (2ª partición do disco 1)

Sistemas de ficheiros: mount, umount. Punto montaxe
Montar/desmontar s.f.


Antes de acceder a un s.f. cómpre montalo para facelo accesible. Isto require elexir un punto do
sistema de ficheiros (un directorio) que se denominará punto de montaxe (p.ex. /mnt/pendrive). O
punto de montaxe será a ruta a partires da cal se accederá á raiz do s.f. montado. (p.ex.
/mnt/pendrive/windows accederá á ruta c:\windows, se o s.f. montado é a unidade c: dunha partición
con windows).

mount [opcións] <dispositivo> <punto montaxe>
-t (tipo), -o (ro, rw, ... é dicir: readonly, readwrite)



mount -t ext4 /dev/sda1 /mnt/debian
cd /mnt/debian/home
debian

umount <dispositivo> ou umount <punto montaxe>



umount /mnt/debian, ou tamén
umount /dev/sda1

Que está montado actualmente? (varias formas de sabelo)
– mount (sen argumentos),
– df ou df -h
– cat /etc/mtab (este ficheiro garda información de que particións xa están montadas e como)
Desconectar un dispositivo usb con seguridade  umount!!

/dev/sda3

/dev/sda1

Forzamos que se escriban a disco os datos modificados, que puidesen estar aínda en buffers
de memoria: buffer caché!!  evitamos perder eses datos e que o s.f. quede incoherente.

Sistemas de ficheiros: montaxe, /etc/fstab
O ficheiro /etc/fstab
– Permite establecer que sistemas de ficheiros se montarán por defecto ao arrancar a máquina, ou
simplemente establece que s.f. se monta e/ou onde ao montar un dispositivo dado.



Podemos sustituir /dev/sd?? no /etc/fstab por un UUID ou Identificador único de cada partición. O
UUID non cambia aínda que engadamos novos dispositivos ao computador, ou modifiquemos a orde
dos discos  Identifícaos unívocamente. O comando blkid permite obter o UUID de cada dispositivo



[u]mount <punto de montaxe> (non hai que especificar modo, dispositivo, etc, pois xa o sabe o fstab)





$mount /mnt
$umount /mnt

 monta a partición /dev/sda3 (que ten UUID =“06 ….d7”, é de tipo ext3) no directorio /mnt
 desmonta a partición /dev/sda3

mount –a e umount –a  monta/desmonta todos os dispositivos indicados no /etc/fstab (ou no
/etc/mtab no caso de umount).

Sistemas de ficheiros: montaxe, /etc/fstab
Sen saber o que se fai, pero facéndoo simple...
– Posto que montar/desmontar unidades externas soe ser moi común... tamén hai outra forma sinxela
de facelo, se estamos en gnome: engadir o applet “montador de discos”.
– Pero nós debemos saber “que fai internamente”!!  mount/umount

Gnome (p.ex. En ubuntu 10.04)

En ventana de nautilus…

Seleccionar dispositivo…
E despois “montar”

Sistemas de ficheiros, outros: chequeo do s.f. / swap
– Chequeo de erros nun s.f.
• Debe estar “non montado”.
• fsck [–f] /dev/dispositivo […]

– Ex: fsck –f /dev/sda3  Opción “–f” forza a que se faga o chequeo incluso de o s.f.
está “limpo”

– Desactivar intercambio, configurar partición como de intercambio, activar
intercambio.





swapoff –a  desactiva o intercambio
free
 amosa memoria libre (e intercambio dispoñible)
mkswap /dev/sda2  configura unha área de intercambio linux en /dev/sda2
swapon –a  activa de novo as áreas de intercambio

Guión
– Xestión de usuarios
• Usuarios
– Contrasinal

• Grupos

Xestión de usuarios: usuarios e grupos


Linux é un S.O. multiusuario.


cada usuario terá uns privilexios que definen que pode facer.



cada usuario pode ser incluido nun grupo (que á súa vez pode ter uns privilexios), de modo que o usuario pase
a “disfrutar” dos privilexios do grupo.



Un usuario terá (entre outros): un id de usuario, un grupo ou máis aos que pertence (p.ex. users, admin), un
directorio de usuario $HOME, un contrasinal, e un shell que arrancará por defecto.




Os ficheiros que almacenan esta información son: /etc/passwd e /etc/shadow (password encriptado)

Creación de novos usuarios e grupos
– adduser <usuario>

usa configuración por defecto para a conta do usuario (/etc/login.defs, /etc/skel*, /etc/shells)

– addgroup <grupo>

crea o grupo <grupo>

– adduser <usuario> <grupo>

engade o <usuario> dado ao grupo <grupo>
Ficheros relacionados coas contas de usuario son:



/etc/passwd: contén información sobre cada usuario: ID, grupo principal, descrición,
directorio de inicio, shell, etc. Tamén contén o password encriptado, salvo que se usen
shadow passwords.

exemplos
» adduser pepe

/etc/shadow: ten passwords encriptados dos usuarios se se emplean shadow passwords.

» adduser pepe admin

/etc/group: contén os membros de cada grupo.

» cat /etc/passwd |grep pepe

/etc/skel: directorio que contén o contido do directorio para novos usuarios

» addgroup pepecolegas
» adduser pepe pepecolegas

; adduser root pepecolegas ; adduser ib pepecolegas

» cat /etc/group |grep pepecolegas

 (amosa o seguinte) “pepecolegas:x:1001:pepe,root,ib”

» deluser pepe ; delgroup pepecolegas  elimina usuario pepe e grupo “pepecolegas”

Xestión de usuarios: cambio de contrasinal
– Passwd: Cambiar a contrasinal dun usuario.
Un usuario conectado (nun terminal) pode cambiar a súa contrasinal co comando:


passwd  cambia a contrasinal do usuario actual (pídenos a contrasinal vella)



sudo passwd usuario  fai o cambio da contrasinal do usuario “usuario”.
Nótese que cando o root chama a (sudo) passwd usuario, xa non se lle pide a contrasinal
vella, pois asúmese que o root ten permiso para modificar/restablecer contrasinais.



Exemplos:
– passwd –d ib  elimina a clave do usuario “ib”
– passwd ib

Guión
– Xestión de procesos
• Ver procesos
– Envío de sinais (deter, reanudar, terminar)
– Prioridade

• Tarefas
– Primeiro e segundo plano

Procesos


No sistema haberá moitos procesos:


Procesos de sistema (p.ex init), e procesos asociados a servizos (daemons) como poden ser o sshd,
httpd,inetd, etc.



Procesos de usuarios do sistema, asociados ás aplicacións/programas que os usuarios estean executando nun
momento dado.



Un proceso pode estar executándose, listo para execución, ou en espera.



Algúns comandos típicos relativos ao manexo de procesos :





ps:

p.ex $ps -l -u ib (amosa os procesos do usuario “ib”).



pstree



top: amosa os procesos que máis cpu consumen. (top –c amosa o comando completo).



kill <señal> PID:



killall <proceso>

pulsa “q” para saír.

exemplo $kill -9 1266
exemplo $killall a.out

Por defecto os procesos que lancemos nun shell inícianse en primeiro plano, pero poden enviarse a
segundo plano ou background, iniciándoos con “&”.


ls –l > a.txt  primeiro plano



ls –l > a.txt &  segundo plano.

Procesos en primeiro e segundo plano


jobs. Amosa tarefas. Basicamente, procesos que están correndo (en segundo plano) nun terminal.
Tamén se amosa o estado dos procesos.



fg %[id.tarefa] trae dita tarefa a primeiro plano (toma o control).


Se non estaba en execución, pasará a executarse.

Exemplo: fg %1



bg %[id.tarefa] envía a segundo plano unha tarefa que xa fora suspendida temporalmente.




Se estaba parado, seguirá parado ata que reciba unha señal para “continuar”.

Señais (kill)




Matar un proceso con PID=2563



Deter un proceso con PID=2563

– CTRL+C mata o proceso activo

– CTRL+Z durme o proceso activo

– Equivale a kill -9 2563, ou a kill -KILL 2563

– Equivale a kill -STOP 2563

Continuar a execución do proceso con PID= 2563
– kill –CONT 2563



nice / renice

(prioridade máis alta = -20, máis baixa = +19, defecto = 0).



nice –n 19 ls –lR /  inicia tarefa “ls –lR” co nivel de prioridade +19.



renice +5 –p PID



renice -5 –p PID  Permiso denegado! Isto débese a que sen ser root non podemos subirlle a prioridade máis

 establece a prioridade do proceso PID a +5.

aló da prioridade de inicio dos procesos de usuario (0 = valor típico por defecto para procesos de usuario).

Redireccións e tubos (pipes)
– Existen 3 ficheiros especiais en /dev: stdin, stdout, stderr
– Todo proceso poderá referirse a eles:
• stdin
• stdout
• stderr

 identificador 0  entrada estándar (teclado)
 identificador 1  saída estándar (pantalla/terminal)
 identificador 2  saída estándar de erros (pantalla/terminal)

– Podemos redireccionar estas “saídas especias” cara a outro ficheiro.
– ls / > listado.txt
(equivalente á seguinte)
– ls / 1> listado.txt
(amosarán o contido do directorio raíz, e gárdano no ficheiro “listado.txt”).
– ls / >> listado.txt (non sobreescribe o ficheiro. Engade ao final de listado.txt).
– ls /xaxbxc.txt
ls: /xaxbxc.txt: no existe fichero o directorio.
– ls / /xaxbxc.txt 1>listado.txt 2>erros.txt
» meterá no ficheiro “listado.txt” a listaxe de ficheiros do directorio raíz.
» meterá no ficheiro “erros.txt” o texto “ls: /xaxbxc.txt: no existe fichero o directorio”

– Podemos direccionar tamén a entrada estándar “desde un ficheiro”
– more < “listado.txt” (amosa por pantalla, páxina a páxina o contido de “listado.txt”

– Tuberías: Podemos enviar a saída dun proceso á entrada estándar doutro.





ls /dev |more
(pasa a saída do “ls /dev” ao comando more para amosar info pantalla a pantalla)
ls -R /home | grep .txt (grep filtra as liñas que conteñan “.txt” de todas as que devolve o “ls –R /home”).
find / -name sdtin | more
find / -name *ib* | more

Guión
– Instalación de software
• Apt
• synaptic

Instalación de paquetes/aplicacións
As aplicacións a instalar soen estar en repositorios (ver/etc/apt/sources.list )





Main: soft libre (modificación e redistribución é permitida xeralmente). Soporte garantido.
Restricted: soft moi usado, pero non “completamente libre”. Necesario en alguns sistemas (p.ex drivers)
Universe: código distribuido libremente, sen soporte de canonical… se moi populares  main.
Multiverse: non libre. O usuario pode instalalo baixo a súa responsabilidade (licencia? Soporte non dispoñible)

Instalación a partires de repositorios
– Centro de software de ubuntu
– Synaptic
– apt:







apt-get
install <paquete>
update
upgrade
dist-upgrade (actualización global do sistema)
remove <paquete>
autoremove
apt-cache search <paquete>

aptitude (evolución apt)
Actualizacións automáticas!!

Outros: Instalación de .deb, .bin, .run, .rpm



.deb son precompilados para debian: Instalación con
gDebi (gráfico) ou dpkg (consola)







sudo dpkg -i nombre_de_paquete.deb (instalar)
dpkg -r nombre_de_paquete.deb (eliminar)

.bin son executables de linux
.run son asistentes de instalación
.rpm poden convertirse a ficheiros .deb (con “Alien”) e
posteriormente instalalos

Guión
– Redes
• Sesións remotas
• Transferencia de ficheiros
• Outros comandos

Redes: algúns comandos de interese.


hostname. Indica o nome do computador ao que estou conectado.



telnet <host>




<host> = nome_da_máquina ou dirección IP

conexión remota “non encriptada”

ssh <host>


conexión a terminal remoto “encriptada”

-

Exemplos:
-

ssh host

:: o usuario actual intenta abrir unha sesión remota. Solicítaselle password.

-

ssh usuario@host

:: intento de abrir unha sesión con usuario “usuario” na máquina “host”.
O host remoto solicitará tamén unha password.

-



ssh –l usuario host

:: equivalente á anterior

ftp (file transfer protocol). Conexión non encriptada (porto 21).
ftp <host>

,

ftp usuario:password@host

Comandos dispoñibles dentro durante o ftp





open <host | dirección ip> : conéctase ao host para baixar/subir ficheiros



ls, cd, pwd (operacións no host remoto)



lls, lcd, lpwd (operación no host local)



put <ficheiro> . Sube ficheiro local ao host remoto



get <ficheiro> . Descarga ficheiro remoto ao host local



mput <ficheiros>, mget <ficheiros> . Sube|baixa 1 ou máis ficheiros (* é permitido).



quit . Cerra a sesión

sftp (secure ftp). Conexión porto 22


Similar ao ftp, pero a conexión é encriptada.

Redes: algúns comandos de interese.
– wget url


descarga un ficheiro dun servidor http, https, ftp...

Ex: wget http://ftp.dat.etsit.upm.es/ubuntu-releases//maverick/ubuntu-10.10-desktop-i386.iso

– ping <host>


Mira se unha máquina remota é accesible.



Nota, moitos cortafogos cortan este tipo de tráfico de rede, así que o host de destino podería
estar accesible (por exemplo para os servizos ssh, http,...), e non contestar a ping

– ifconfig [<interfaz>]


permite configurar interfaces de rede



Sen parámetros, amosa información relativa aos interfaces de rede (eth, wlan,...)

– nslookup


pregunta a un servidor de nomes [DNS] de forma interactiva



Exemplo:
– nslookup dns #pregunta a dirección IP do servidor DNS
– nslookup www.udc.es # devolve a dirección IP do servidor www.udc.es (193.144.48.10)

– finger <usuario>


informa sobre un usuario conectado ao sistema.

Guión
– Scripting
• Que é un script
– Exemplo

Scripting (básico)
– A primeira forma de facer un script consiste en incluir nun ficheiro varias liñas de
comandos. A continuación úsase chmod +x <ficheiro> para facelo executable.
– Nun script de shell...


ademais de ver unha serie de comandos agrupados...



É posible definir variables, usar estructuras de control, e funcións, pasarlle argumentos...

– Execución.


dar permiso de execución chmod +x script.sh  agora xa é un ficheiro executable ./script.sh



sh script.sh (indicándolle ao shell sh, que execute o script).
Exemplo:
#!/bin/sh
# empaqueta con gzip.
#
echo “empaquetando $2 en $1.tar.gz”
tar czvf $1.tar.gz $2

Exemplo:
#!/bin/sh
#
# Recibe como argumento un num, di se é >0 ou <0
#
if [ $# -eq 0 ] ## se non se pasaron
argumentos.
then
echo "$0 : Debes introducir un numero enteiro"
exit 1
fi
if test $1 -gt 0
then
echo "$1 era un num. positivo"
else
echo "$1 era un num. negativo"
fi

Boletín de exercicios (toca practicar!)
– Unha vez que teñas instalado o ubuntu na máquina virtual, xa estarás en
disposición de cubrir o boletín de exercicios que atoparás no moodle.
– Vai realizando os exercicios e solucionando as preguntas que se inclúen no
boletín, e anota os resultados/respostas nun ficheiro. Se tes dúbidas pregunta ao
teu profesor de prácticas.
– A realización deste boletín axudarache a comprender e usar os comandos
básicos vistos na clase. A súa completa realización é recomendable. Recorda
que durante o control de prácticas deste bloque 2 se vos pedirá a que
contestedes unha serie de preguntas preguntas que poden incluir o uso de
calquera destes comandos.

Apéndice

LS
ls - list directory contents
SYNOPSIS :
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
if none of -cftuvSUX nor --sort.

Sort entries alphabetically

– Opcións:









-l  formato longo (inclúe permisos, usuario,grupo,tamaño, data_modificación,…)
-h  amosa o tamaño en formato “human readable” (kbytes, Mbytes,…)
-a  amosa ficheiros ocultos (amosar entradas que comezan por ‘.’)
-R  listar subdirectorios recursivamente
-r  aplicar orde reverso ao ordear
-S  ordear por tamaño do ficheiro
-t  ordear por data de modificación


– Exemplos:






ls
ls
ls
ls
ls

–l
–l /tmp
-lR
-lR /
–th

MKDIR
mkdir - make directories
SYNOPSIS
mkdir [OPTION]... DIRECTORY...
DESCRIPTION
Create the DIRECTORY(ies), if they do not already exist.

– Opcións:
• -p  crear tamén os pais se non existían
• …

– Exemplos: (asúmase que /home/ib/DIR e /home/ib/DIR2 non existen)
• mkdir /home/ib/DIR


crea o directorio “DIR”

• mkdir /home/ib/DIR2/subdir
 amosa o erro:
mkdir: no se puede crear el directorio /home/ib/DIR2/subdir No existe el fichero o el directorio

• mkdir –p /home/ib/DIR2/subdir


crea o directorio “DIR2” e tamén o “DIR2/SUBDIR”

RMDIR
rmdir – remove empty directories
SYNOPSIS
rmdir [OPTION]... DIRECTORY...
DESCRIPTION
Remove the DIRECTORY(ies), if they are empty.

– Opcións:
• -p  eliminar tamén os pais se están baleiros.
así `rmdir -p a/b/c' é similar a `rmdir a/b/c a/b a'
• …

– Exemplos (asúmase que estamos no directorio /home/ib, que contén subdirectorios DIR e DIR2/subdir)
• rmdir /home/ib/DIR


(é equivalente a

rmdir DIR)

elimina o directorio “DIR” (se está baleiro)

• rmdir DIR2/subdir


elimina o directorio “subdir” (se está baleiro), pero non o directorio DIR2

• mkdir –p DIR2/subdir



equivale a facer rmdir DIR2/subdir
seguido de rmdir DIR2
equivale a facer rmdir DIR2/subdir DIR2

PWD
pwd - print name of current/working directory
SYNOPSIS
pwd [OPTION]...
DESCRIPTION
Print the full filename of the current working directory.

– Opcións:
• -L  amosa a información da variable PWD do entorno $PWD incluso se hai links
simbólicos na ruta actual
• -P  [P]hysical. Amosa a ruta real (“seguindo links simbólicos se é preciso”)

– Exemplos (asúmase que estamos no directorio /home/ib, que contén un link “tmp” que apunta a /tmp)
• pwd
 amosa /home/ib

• cd tmp seguido de...
...
...
...

pwd
pwd –L
pwd –P

 amosa /home/ib/tmp
 amosa /home/ib/tmp
 amosa /tmp

CD | CHDIR
cd – changes the current/working directory
SYNOPSIS
cd [dir]...
o
chdir [dir]...
DESCRIPTION
Changes the current working directory to [dir]. If no [dir] is provided it moves to the ‘home’
directory of the current user.

– Opcións:
– Exemplos (asúmase que o directorio home do meu usuario é o

/home/ib, e que estou no directorio /home/

• cd
 cambia de /home a /home/ib

(o directorio home do meu usuario)

• cd ~
 cambia de /home a /home/ib

(o directorio home do meu usuario)

• cd /tmp/ib/temporal
 cambia de /home/ib a /tmp/ib/temporal

• cd ~/..
 cambia de /tmp/ib/temporal a /home
 equivale a cd $HOME/..

)

RM
rm - remove files or directories
SYNOPSIS
rm [OPTION]... FILE...
DESCRIPTION
rm removes each specified file.

By default, it does not remove directories.

– Opcións:
• -r  elimina directorios recursivamente
• -f  forzar, ignora ficheiros non existentes (non amosa erro) e non pide
confirmacións
• -i  interactivo, solicita confirmación antes de borrar cada ficheiro
• -I  pide confirmación antes de borrar 3 ou + ficheiros, ou se opción -r activada

– Exemplos
• rm a b c d

## (asúmase que existen ficheiros a,b,c no directorio actual)

 elimina os ficheiros ‘a’, ‘b’, e ‘c; amosa un erro de que ‘d’ non
existía e polo tanto non se pode borrar.

• rm –rf tmp
 elimina o directorio ./tmp (se existe) incluso se non está baleiro
 recórdese que “rmdir tmp” só o borraba se estaba baleiro.

MV
mv - move (rename) files
SYNOPSIS
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.

– Opcións:
• -u  update, move só cando o ficheiro SOURCE sexa más novo que o de destino
(DEST), ou cando DEST non exista.

– Exemplos (sexan a,b,c ficheiros, e D un directorio)
• mv a a.txt
 renomea ‘a’, para que pase a chamarse ‘a.txt’

• mv a b D
 move os ficheiros ‘a’ e ‘b’ ao directorio D

• mv D DIR
 ¿que fai este comando?

CP
cp - copy files and directories
SYNOPSIS
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... -t DIRECTORY SOURCE...
DESCRIPTION
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. Target files can be overwritten if existed

– Opcións:
• -u  [u]pdate, move só cando o ficheiro SOURCE sexa más novo que o de
destino (DEST), ou cando DEST non exista.
• -r  [r]ecursive. Copia directorios recursivamente.
• -i  [i]nteractive. Pide confirmación antes de sobreescribir un ficheiro existente.
• -n  non sobreescribe ficheiros existentes en destino.

– Exemplos (sexan a,b,c ficheiros; e D e D/E directorios)
• cp a a.txt
 fai unha copia do ficheiro ‘a’ á que se nomea ‘a.txt”

• cp a b c D
 fai unha copia dos ficheiros ‘a’, ‘b’ e ‘c’ no directorio D.

• cp –n a b
 como ‘b’ xa existe, e temos a opción ‘n’ ¿que sucede?

• cp –i a b
• cp

 como ‘b’ xa existe, e temos a opción ‘i’ ¿que sucede?
–r D DIR
(asúmase que DIR non existe)
 neste caso ¿que se fai?

LN
ln - make links between files
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME
(1st form)
ln [OPTION]... TARGET
(2nd form)
ln [OPTION]... TARGET... DIRECTORY
(3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
DESCRIPTION
In the 1st form, create a link to TARGET with the name LINK_NAME.
In the 2nd form, create a link to TARGET in the current directory.
In the 3rd and 4th forms, create links to each TARGET in DIRECTORY. Create hard links by default, symbolic links
with (-s). When creating hard links, each TARGET must exist.
Symbolic links can hold arbitrary text; if later resolved, a relative link is interpreted in relation to its parent dir.

– Opcións:
• -s  crear link simbólico (links hard só en modo root)
• …

novolink

– Exemplos: (asúmase que estamos no directorio /mnt)
• ln –s /home/luis novolink


crea un link simbólico que apunta a /home/luis
($ls –l amosa: lrwxrwxrwx 1 ib ib
10 2010-06-22 16:28 novolink -> /home/luis)
($rm novolink/luis/Carta.txt borraría o ficheiro ‘/home/luis/Carta.txt’)

• ln –s /home/luis/Carta.txt


crea un novo link simbólico no directorio actual que apunta a
“/home/luis/Carta.txt”, o nome o ficheiro apuntado mantense.

• sudo ln /home/luis/Carta.txt cartaluis.txt


crea un link “hard” no directorio actual que apunta a ‘/home/luis/Carta.txt’
(hai restriccións ao respecto, como que estean no mesmo sist. ficheiros,...)

CHMOD (para cambiar permisos e +) 1 de 2
chmod - change file mode bits
SYNOPSIS
chmod [OPTION]... MODE[,MODE]... FILE...
chmod [OPTION]... OCTAL-MODE FILE...
DESCRIPTION
chmod changes the file mode bits of each given file according to mode, which can be either a
symbolic representation of changes to make, or an octal number representing the bit pattern for the new
mode bits.
[MODO 1] The format of a symbolic mode is [ugoa...][[+-=][perms...]...], where perms is either zero or
more letters from the set rwxXst, or a single letter from the set ugo. Multiple symbolic modes can be
given, separated by commas.
A combination of the letters ugoa controls which users' access to the file will be changed: the
user who owns it (u), other users in the file's group (g), other users not in the file's group (o), or all
users (a). If none of these are given, the effect is as if a were given, but bits that are set in the
umask are not affected.
The operator + causes the selected file mode bits to be added to the existing file mode bits of
each file; - causes them to be removed; and = causes them to be added and causes unmentioned bits to be
removed except that a directory's unmentioned set user and group ID bits are not affected.
The letters rwxXst select file mode bits for the affected users: read (r), write (w), execute (or
search for directories) (x), execute/search only if the file is a directory or already has execute
permission for some user (X), set user or group ID on execution (s), restricted deletion flag or sticky
bit (t). Instead of one or more of these letters, you can specify exactly one of the letters ugo: the
permissions granted to the user who owns the file (u), the permissions granted to other users who are
members of the file's group (g), and the permissions granted to users that are in neither of the two
preceding categories (o).
[MODO 2] A numeric mode is from one to four octal digits (0-7), derived by adding up the bits with values
4, 2, and 1. Omitted digits are assumed to be leading zeros. The first digit selects the set user ID (4)
and set group ID (2) and restricted deletion or sticky (1) attributes. The second digit selects
permissions for the user who owns the file: read (4), write (2), and execute (1); the third selects
permissions for other users in the file's group, with the same values; and the fourth for other users not
in the file's group, with the same values.
[…]

Opcións:
-R  [r]ecursive. Copia directorios recursivamente.

CHMOD (para cambiar permisos e +) 2 de 2
Recordemos que un ficheiro/directorio ten permisos de usuario, grupo, e outros
-rwxr--r-- 1 ib ib 98 2012-09-27 13:07 a.txt
chmod permite cambiar ditos permisos de dúas formas básicas:
A. [ugoa...][[+-=][rwx...]…]
[ugoa...] especifica respectivamente: [u]ser, [g]roup, [o]thers, [a]ll. Deste modo os
permisos aplícanse aos 3 permisos de usuario, grupo ou outros; ou todos eles (all).
[+-=]
indica se se engade (+), quita (-) ou se establece un permiso a un valor (=)
[rwx…] permite manexar os permisos de lectura (r), escritura (w), ou execución (x).
Nótese que existen outros permisos (s, X, t) que non veremos aquí.
B. 0777 (díxitos en octal), onde cada díxito se refire respectivamente a [u]ser, [g]roup, [o]thers
Nota: O primeiro díxito refírese aos modos s,X,t (que non revisaremos aquí)
Cada díxito en octal pode tomar os valores [0..7], e representa 3 bits en binario:
ex: 5 = 101 equivale ao permiso r-x
7 = 111 equivale ao permiso rwx
Exemplos:
Permisos iniciais

----------r-xr-xrw----------

Chamada a chmod (sobre ficheiro F)
chmod 760 F

chmod u+rwx,g+rw F

chmod 740 F

chmod u+w,g-x,o-wr F

chmod 544 F

chmod a+r,u+w F

Permisos finais

-rwxrw----rwxr-----rw-r--r--

CHGRP
chgrp - change group ownership
SYNOPSIS
chgrp [OPTION]... GROUP FILE...
DESCRIPTION
Change the group of each FILE to GROUP.

Recordemos que un ficheiro/directorio ten un propietario e un grupo. chgrp actúa sobre o grupo
-rwxr--r-- 1 ib ib 98 2012-09-27 13:07 a.txt

– Opcións:
• -R  recursivo sobre os ficheiros e directorios
• …

– Exemplos: (asúmase que existe o grupo ‘ib’, como exemplo arriba, e o grupo ‘grupo2’)
• chgrp grupo2 a.txt


fai que o ficheiro pase a pertencer ao grupo “grupo2”

CHOWN
chown - change file owner and group
SYNOPSIS
chown [OPTION]... [OWNER][:[GROUP]] FILE...
DESCRIPTION
chown changes the user and/or group ownership of each given file. If only an owner (a user name or
numeric user ID) is given, the user is made the owner of each given file, and files' group is not changed.
If the owner is followed by a ‘:’ and a group name (or numeric group ID), with no spaces between
them, the group ownership of the files is changed as well.
If a ‘:’ but no group name follows the user name, that user is made the owner of the files and the
group of the files is changed to that user's login group.
If the ‘:’ and group are given, but the owner is omitted, only the group of the files is changed;
in this case, chown performs the same function as chgrp.
If only ‘:’ is given, or if the entire operand is empty, neither the owner nor the group changes.

Recordemos que un ficheiro/directorio ten un propietario (owner). chown permíteo cambiar
-rwxr--r-- 1 ib ib 98 2012-09-27 13:07 a.txt

– Opcións:
• -R  recursivo sobre os ficheiros e directorios
• …

– Exemplos: (asúmase que o ficheiro ‘a.txt’ é o indicado arriba, e existe un usuario ‘pepe’, e un grupo
chamado ‘grupo2’)
• chown pepe a.txt
 fai que o ficheiro pase a pertencer ao usuario “pepe”

• chown pepe:pepe a.txt
 quedaría algo como: -rwxr--r-- 1 pepe pepe 98 2012-09-27 13:07 a.txt

• chown :grupo2 a.txt
 razónese que fai este comando

DF (espazo en sist. fich. montados)
df - report file system disk space usage
SYNOPSIS
df [OPTION]... [FILE]...
DESCRIPTION
df displays the amount of disk space available on the file system containing each file name
argument. If no file name is given, the space available on all currently mounted file systems is shown.
Disk space is shown in 1K blocks by default, unless the environment variable POSIXLY_CORRECT is set,
in which case 512-byte blocks are used.
If an argument is the absolute file name of a disk device node (ex. /dev/sda1) containing a mounted
file system, df shows the space available on that file system rather than on the file system containing
the device node (which is always the root file system).
This version of df cannot show the space available on unmounted file systems, because on most kinds
of systems doing so requires very nonportable intimate knowledge of file system structures.

– Opcións:





--total  amosa suma de espazo nos sistemas de ficheiros dispoñibles
-h
 human-readable. Amosa espazo en Kbytes, Mbytes,...
-k
 block-size é establecido a 1Kbyte
-t type  amosa só espazo para os sistemas de ficheiros con tipo x (ext3, ext4,...)

– Exemplos: ()
• df -t ext4 --total
 amosa isto:
S.ficheros
/dev/sdc2
/dev/sdc1
/dev/sdb1
total

• sudo df –h /dev/sda1
• df –k

Bloques de 1K
Usado
Dispon Uso% Montado en
35602080 15317032 18476564 46% /
77474468 60853504 12685444 83% /disco3
153794688
9927092 136055192
7% /home
266871236 86097628 167217200 34%

DU (espazo en disco utilizado por cada ficheiro ou contido dun directorio)
du - estimate file space usage
SYNOPSIS
du [OPTION]... [FILE]...
du [OPTION]... --files0-from=F
DESCRIPTION
Summarize disk usage of each FILE, recursively for directories.

novolink

– Opcións:
-a
 amosa espazo para ficheiros e directorios (cando FILE = directorio)
-h
 human-readable. Amosa espazo en Kbytes, Mbytes,...
-m
 block-size = 1Mbyte (amosa espazo en Mbytes)
-k
 block-size = 1Kbyte (amosa espazo en Kbytes)
-b
 block-size = 1byte (amosa espazo en bytes)
-s
 summarize. Fai un resumo para cada argumento indicado [FILE]
--max-depth=N  amosa resumo só para os directorios que estén ata N niveis
(subdirectorios) por debaixo do argumento indicado [FILE]
• --exclude=PATTERN  exclúe os ficheiros que encaixen co patrón PATTERN








– Exemplos: ()
• du –m DIR
 amosa información de uso para o directorio DIR. Espazo en Mbytes.
• du –s
• du /home/luis/Carta.txt –a
• du --exclude='*.dat' –b
 amosa espazo utilizado no directorio actual, non conta ficheiros con extensión .dat

• sudo du –-max-depth=1 /home
 amosa información de uso para os directorios de luis e pedro en /home

WHICH, WHEREIS, LOCATE, UPDATEDB
which - locate a command
SYNOPSIS
which [-a] filename ...
DESCRIPTION
which returns the pathnames of the files (or links) which would be executed in the current
environment, had its arguments been given as commands in a strictly POSIX-conformant shell. It does this
by searching the PATH for executable files matching the names of the arguments. It does not follow
symbolic links.

– Notas:
• Recordemos que o PATH indica os lugares onde se irán buscar executables
cando un usuario introduce un comando
echo $PATH  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

• which indícanos o lugar exacto onde reside un executable dado, só busca ditos
executables no PATH.
Se dito executable aparecen en 2 lugares diferentes (ex: /sbin/EXE e /bin/EXE)
which devolverá o primeiro dos directorios que aparezca no PATH

– Exemplos: ()
• which ls
 /bin/ls
• which firefox
 /usr/bin/firefox

WHICH, WHEREIS, LOCATE, UPDATEDB
whereis - locate the binary, source, and manual page files for a command
SYNOPSIS
whereis [-bmsu] [-BMS directory... -f] filename...
DESCRIPTION
whereis locates source/binary and manuals sections for specified files. The supplied names are
first stripped of leading pathname components and any (single) trailing extension of the form .ext, for
example, .c. Prefixes of s. resulting from use of source code control are also dealt with. whereis then
attempts to locate the desired program in a list of standard Linux places.

– Opcións:
• -b  buscar só binarios
• -m  buscar só seccións do manual (axuda)
• -s  buscar só os ficheiros fonte

– Exemplos: ()
• whereis ls
 ls: /bin/ls /usr/share/man/man1/ls.1.gz
• whereis tar
 tar: /bin/tar /usr/include/tar.h /usr/share/man/man1/tar.1.gz ...

binario

fontes

manual

WHICH, WHEREIS, LOCATE, UPDATEDB
locate - find files by name
SYNOPSIS
locate [OPTION]... PATTERN...
DESCRIPTION
locate reads one or more databases prepared by updatedb(8) and writes file names matching at least
one of the PATTERNs to standard output, one per line.
If --regex is not specified, PATTERNs can contain globbing characters. If any PATTERN contains no
globbing characters, locate behaves as if the pattern were *PATTERN*.
By default, locate does not check whether files found in database still exist. locate can
never report files created after the most recent update of the relevant database.  Necesita que se chame
a UPDATEDB para actualizar a BD que se usa!!

– Opcións:
• -c
• -e
• ...

– Exemplos: ()
• locate *exercicios.pdf
 /home/ib/Escritorio/ib/ibexercicios.pdf
/home/ib/Escritorio/ib_backup/ibexercicios.pdf

FIND
find - search for files in a directory hierarchy
SYNOPSIS
find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
DESCRIPTION
GNU find searches the directory tree rooted at each given file name by evaluating the given
expression from left to right, according to the rules of precedence (see section OPERATORS), until the
outcome is known (the left hand side is false for and operations, true for or), at which point find moves
on to the next file name.
[...]

– Opcións:









-maxdepth N: descender como máximo N niveles desde el directorio origen especificado.
-name patrón: mira que o nome do ficheiro/directorio coincida co patrón indicado (*r.txt,...)
-mtime N: ficheiro que fose modificado N*24 horas antes do momento actual
-size N [cwbkMG]: o ficheiro usa N unidades de espazo. c=byte, b=512bytes, k=1kbyte,
M=1Mbyte, G=1Gigabyte.
-type X: tipo de ficheiro d=directorio, f=ficheiro regular, l = link simbólico, e outros(b,c,p,s,D)
-user uname: o propietario é o usuario uname.
-perm permisos: permisos coincidan cos permisos especificados (p.ex. 777)
... (moitas máis opcións!!!)

– Exemplos: ()
• find /tmp -name *.c -type f

 /home/ib/.local/share/Trash/files/p4/shell.c
/home/ib/.local/share/Trash/files/p4/fs.c

• find -name p1.c –perm 777 -user ib


...

atoparía ficheiros chamados p1.c con permisos 777 e do usuario ib

GREP
grep, egrep, fgrep, rgrep - print lines matching a pattern
SYNOPSIS
grep [OPTIONS] PATTERN [FILE...]
grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
DESCRIPTION
grep searches the named input FILEs (or standard input if no files are named, or if a single
hyphen-minus (-) is given as file name) for lines containing a match to the given PATTERN. By default,
grep prints the matching lines.
In addition, three variant programs egrep, fgrep and rgrep are available. egrep is the same as
grep -E. fgrep is the same as grep -F. rgrep is the same as grep -r. Direct invocation as either egrep or
fgrep is deprecated, but is provided to allow historical applications that rely on them to run unmodified.

– Opcións:








-e patrón: usa o patrón tal e como aparece en “patrón”
-R: recursivo, le todos os ficheiros de cada directorio recursivamente
-f FILE: carga os patróns de FILE, un patrón por liña.
-i, --ignore-case: non distingue entre maiúsculas e minúsculas
-c: contar o número de liñas que emparellan co patrón (en lugar de amosar as liñas).
-n, --line-number: precede cada liña do resultado co número da liña que emparella
... (moitas máis opcións!!!)

– Exemplos: ()
• grep alias .bashrc



o resultado son as liñas que conteñen “alias” no .bashrc

• find -name p1.c –perm 777 -user ib | grep –c “”
• find -user fari |grep -c ""


...

RAZOAR que amosarían por pantalla!

CAT
cat - concatenate files and print on the standard output
SYNOPSIS
cat [OPTION]... [FILE]...
DESCRIPTION
Concatenate FILE(s), or standard input, to standard output.

– Opcións:
• -b: numera las líneas que no están en blanco.
• -n: numera todas las líneas
• ... (moitas máis opcións!!!)

– Exemplos: ()
• cat .bashrc



amosa o contido do ficheiro .bashrc

• cat /etc/hosts /etc/hostname


...

amosa o contido dos ficheiros /etc/hosts e /etc/hostname (concatenados)

MORE e LESS
more a file perusal filter for crt viewing
SYNOPSIS
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [file ...]
DESCRIPTION
More is a filter for paging through text one screenful at a time. This version is especially
primitive. Users should realize that less(1) provides more(1) emulation and extensive enhancements.

less - opposite of more
SYNOPSIS
less [-[+]aBcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
[-b space] [-h lines] [-j line] [-k keyfile]
[-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
[-T tagsfile] [-x tab,...] [-y lines] [-[z] lines]
[-# shift] [+[+]cmd] [--] [filename]...
DESCRIPTION
Less is a program similar to more (1), but which allows backward movement in the file as well as
forward movement.

– Son 2 programas que nos permiten amosar o contido dun ficheiro “páxina a páxina”.
– Opcións:



ver “man”
... (moitas máis opcións!!!)

– Exemplos: ()




more /etc/fstab
less /etc/fstab
ls –lR $HOME
|more



lista recursivamente o contido da conta do usuario actual, e amosa resultado por pantalla, pero
“páxina a páxina” (en lugar de facelo todo continuamente).

...

HEAD e TAIL
head - output the first part of files
SYNOPSIS
head [OPTION]... [FILE]...
DESCRIPTION
Print the first 10 lines of each FILE to standard output. With more than one FILE, precede
each with a header giving the file name. With no FILE, or when FILE is -, read standard input.

tail - output the last part of files
SYNOPSIS
tail [OPTION]... [FILE]...
DESCRIPTION
Print the last 10 lines of each FILE to standard output. With more than one FILE, precede each
with a header giving the file name. With no FILE, or when FILE is -, read standard input.

– Son 2 programas que nos permiten as primeiras ou últimas liñas dun ficheiro respect.
– Opcións:
Para head:
– -c N amosa só os primeiros N bytes do ficheiro.
– -n N amosa as primeiras N liñas (en lugar de típicamente amosar as primeiras 10 liñas)

Para tail:
– -c N amosa só os últimos N bytes do ficheiro.
– -n N amosa só as últimas N liñas



... (moitas máis opcións!!!)

– Exemplos: ()



head /etc/fstab
tail /etc/fstab

; head –n 5 /etc/fstab
; tail –n 5 /etc/fstab

WC
wc - print newline, word, and byte counts for each file
SYNOPSIS
wc [OPTION]... [FILE]...
wc [OPTION]... --files0-from=F
DESCRIPTION
Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is
specified. With no FILE, or when FILE is -, read standard input.

– Opcións:






-c bytes conta o número de bytes do ficheiro.
-l liñas
conta o número de liñas do ficheiro.
-w words conta o número de palabras do ficheiro.
-L
amosa a lonxitude da liña máis longa.
... (moitas máis opcións!!!)

– Exemplos: ()
• wc /etc/mtab
• wc –c –w –l /etc/mtab

DIFF e CMP (comparar ficheiros)
cmp - compares two files byte by byte
SYNOPSIS
cmp [OPTION]... FILE1 [FILE2 [SKIP1 [SKIP2]]]

diff – compares files line by line
SYNOPSIS
diff [OPTION]... FILES

– Son 2 programas que nos permiten as primeiras ou últimas liñas dun ficheiro respect.
– Opcións:
Para cmp:
– -i skip salta os primeiros “skip” bytes (que non son comparados).
– -n limit compara como máximo “limit” bytes do ficheiro.

Para diff:
– -i: (ignore case). Non distingue maiúsculas e minúsculas
– ...



... (moitas máis opcións!!!)

– Exemplos: (asúmase que a.txt e b.txt son ficheiros existentes)



cmp a.txt b.txt
 a.txt b.txt son distintos: byte 11, línea 1
diff a.txt b.txt
1c1
< total 78060
--> total 78064
4,5c4,5
< -rwxr-xr-x 1
< -rw-r--r-- 1
--> xx-rwxr-xr-x
> -rw-r--r-- 1

fari admin
fari admin

8802 2012-09-29 11:11 a.out
0 2012-09-30 13:39 a.txt

1 fari admin
fari admin

8802 2012-09-29 11:11 a.out
1555 2012-09-30 13:39 a.txt

tar (+ gz, + bzip2)
tar The GNU version of the tar archiving utility
SYNOPSIS
tar [-] A --catenate --concatenate | c --create | d --diff --compare | --delete | r --append | t -list | --test-label | u --update | x –extract --get [options] [pathname ...]
DESCRIPTION
Tar stores and extracts files from a tape or disk archive.
The first argument to tar should be a function; either one of the letters Acdrtux, or one of the long
function names. A function letter need not be prefixed with ``-'', and may be combined with other singleletter options. A long function name must be prefixed with --. Some options take a parameter; with the
single-letter form these must be given as separate arguments. With the long form, they may be given by
appending =value to the option.

– Opcións:







-c: crear un novo archivo
-v: verbose (mostra o proceso por pantalla)
-f: almacena a saída no ficheiro
-x: extraer
-z: comprimir con gzip (equivale a --gzip o --gunzip)
-j: comprimir con bzip2 (equivale a --bzip2)
... (moitas máis opcións!!!)

– Exemplos:




tar

tar

tar

cvf archivo.tar

DIR/* ficheiro1 ficheiro2

créase o ficheiro archivo.tar que contará DIR/* ficheiro1 ficheiro2

czvf archivo.tar.gz DIR/*
créase o ficheiro archivo.tar.gz DIR/*

xzvf comprimido.tar.gz

 descomprímese o ficheiro (que estaba comprimido con gzip) comprimido.tar.gz



tar cjvf comprimido.tar.bz2
 chequear que faría isto...

dd
dd - convert and copy a file
SYNOPSIS
dd [OPERAND]...
dd OPTION
DESCRIPTION
Copy a file, converting and formatting according to the operands.

– Opcións:
• bs=BYTES: copia BYTES bytes de cada vez (defecto=512)
• count=BLOCKS: copia só BLOCKS bloques
• skip=BLOCKS: salta BLOCKS bloques (non os procesa) ao inicio do ficheiro de entrada
(BLOCKS and BYTES may be followed by the following multiplicative suffixes: c =1, w =2, b =512, kB
=1000, K =1024, MB =1000*1000, M =1024*1024, xM, =M GB =1000*1000*1000, G =1024*1024*1024,
and so on for T, P, E, Z, Y)

• if=FILE: nome do ficheiro de entrada
• of=FILE: nome do ficheiro destino, en lugar de usar a saída estándar (por defecto)
• conv=CONVS: aplica diferentes opcións de conversión:
– lcase: pasar a minúsculas
– ucase: pasar a maiúsculas
– ...

• ... (moitas máis opcións!!!)

– Exemplos:




dd if=entrada.txt of=saida.txt conv=lcase
 procesa os datos do ficheiro entrada.txt, cópiaos en saída.txt e fai a conversión
proposta
dd if=entrada.txt skip=4 bs=10 of=saida.txt
 copia todos os datos de entrada.txt en saida.txt, salvo os 40 primeiros bytes.
 de non especificar “of=saida.txt” amosaría o resultado por pantalla

dd if=entrada.txt skip=4 bs=10 > saida.txt

OUTROS: file, touch, vi, nano|pico, emacs,...
file – amosa o tipo dun ficheiro (ou directorio)
exemplos:
• file /bin/ls  /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked
(uses shared libs), for GNU/Linux 2.6.15, stripped
• file /etc/mtab  /etc/mtab: ASCII text

touch – cambia as datas (modificación, último acceso) dun ficheiro. Se non existe, créase un baleiro.
opciones:
• -a :cambiar só a data de acceso.
• -m :cambiar só a data de modificación.
• -c :non crear se non existía.
exemplos:
• touch a.txt

Editores de texto: vi, nano|pico, emacs, etc.

Sponsor Documents

Or use your account on DocShare.tips

Hide

Forgot your password?

Or register your new account on DocShare.tips

Hide

Lost your password? Please enter your email address. You will receive a link to create a new password.

Back to log-in

Close