Professional Documents
Culture Documents
0003 Ubuntu Primeiros Pasos
0003 Ubuntu Primeiros Pasos
Debedes gardar os traballos, documentos, etc na carpeta persoal do servidor na rede. En caso
de problemas os equipos restáuranse e a información dos discos locais almacenada en
/home/xxxxxxxx pérdese. O que gardes no escritorio tamén pode desaparecer xa que se garda
dentro de /home/usuario/Escritorio.
Podedes ver tamén na figura a partición de datos NOCTURNO. Nesta partición crearemos as
máquinas virtuais para traballar. Normalmente, estes datos non desaparecerán, pero debemos
ter copia de seguridade no disco USB externo por se acaso.
2. Facernos administradores do equipo.
Nas novas imaxes, o grupo alumnos ten privilexios administrativos. O que ven a continuación
NON É PRECISO FACELO, pero é importante sabelo.
Igual que en Windows, en GNU/Linux hai usuarios/as 'normais', que poden manexar a máquina
pero non facer cambios no sistema e usuarios con privilexios administrativos que poden
realizar calquera tarefa.
En Windows, para conceder privilexios de administración a un usuario, o podemos meter no
grupo local 'Administradores'.
Cando instalamos Ubuntu, temos que dar un nome de usuario (nas máquinas de Teis, o nome
que se usou na instalación é 'administrador'). Ubuntu agrega este usuario a unha serie de
grupos do sistema para que poida facer todo tipo de tarefas.
Nun posto de traballo GNU/Linux, os usuarios e grupos gárdanse en dous arquivos de texto:
Observa:
- O equivalente ao usuario 'Administrador' de Windows é 'root'. GNU/Linux non deixará que
iniciemos unha sesión en modo gráfico como 'root' pois isto sería perigoso para o sistema.
- O resto dos usuarios salvo o último (que é o que se crea cando facemos a instalación) son
'usuarios do sistema'. Úsanse para lanzar procesos do sistema.
- Podes ver no último usuario os detalles do mesmo como o nome completo, a ruta do
directorio particular de usuario (/home/administrador) e o intérprete de comandos por defecto
(/bin/bash). O 'x' que aparece detrás do nome de usuario é onde inicialmente GNU/Linux
gardaba o contrasinal (cifrado). Isto cambio posteriormente por motivos de seguridade. Por iso
aparece sempre 'x'.
root:x:0:
.
.
adm:x:4:administrador
tty:x:5:
disk:x:6:
.
.
video:x:44:administrador
sasl:x:45:
.
.
virtualboxusers:x:1002:administrador
Observa:
- Cada grupo ten un número que o identifica.
- Ao final de cada liña está a lista de usuarios de cada grupo separados por ','.
- De momento ningún grupo ten máis dun usuario.
- O usuario 'administrador' é un usuario administrativo porque está en determinados grupos.
Xa podemos iniciar sesión co noso usuario. Cando teñamos que realizar unha operación que
requira privilexios administrativos, Ubuntu pediranos o noso contrasinal para confirmar a
acción.
3. Actualizar o sistema.
As imaxes de Ubuntu están configuradas para actualizarse dende o repositorio local do IES de
Teis (máquina reposteis@ateis.local).
Isto permitirá que instalemos paquetes sen ter conexión a Internet. Se incluímos algún
repositorio externo, para actualizar debemos solicitar ao profesor/a que nos dea saída a
Internet (POR EQUIPO).
IMPORTANTE!
Cando actualizamos, pode que o sistema faga algunha pregunta se non pode continuar de
forma automática. Debedes consultar sempre ao profesor/a antes de contestar.
Podemos usar tamén o repositorio de Reposteis para actualizar ou instalar paquetes nas
máquinas virtuais.
Os sources.list das diferentes versións de Ubuntu para Reposteis está na rede, en VIRTUAL,
ImaxesCDROMS, GNULinux,sourceslist.teis. Para cambiar o repositorio podemos substituír o
ficheiro /etc/apt/sources.list polo que atoparemos na rede para a versión de GNU/Linux
adecuada.
su - Calquera usuario pode usar este comando para converterse en root (sempre que coñezas
o contrasinal de root). Por defecto Ubuntu non asigna un contrasinal a root polo que mentres
non lle asignemos un, non poderemos usar este comando. (Para asignarlle un contrasinal a
root podemos usar: sudo passwd root. O comando su abre unha nova sesión do shell
(intérprete de comandos) como root. Para rematar esta sesión: exit, logout ou CTR+D e
seremos de novo o usuario orixinal.
sudo -s - Só pode executar este comando un usuario que estea autorizado (un dos
privilexios administrativos é actuar como root). O resultado é o mesmo que con su, pero o
contrasinal que escribimos é o noso. Non temos por que coñecer o contrasinal de root (root
pode non ter contrasinal e isto funciona igual).
gksudo comando - O mesmo que sudo pero pódese lanzar dende o entorno gráfico con
ALT+F2 (executar comando).
Exemplos:
gksudo gedit /etc/group
Neste caso o comando é gedit /etc/group (editar co editor gedit o ficheiro group na
carpeta /etc).
gksudo nautilus
Lanza un explorador de arquivos de gnome (nautilus) como root (Non vos recomendo facer
isto. Podemos danar o sistema borrando ou movendo algunha carpeta).
Repositorios:
No ficheiro /etc/apt/sources.list hai unha lista de repositorios para usar co programa
apt. Algo como:
#############################################################
################### OFFICIAL UBUNTU REPOS ###################
#############################################################
Nesta páxina podemos seleccionar as os repositorios que precisemos indicando o pais no que
estamos e xerar un ficheiro 'sources.list' adecuado para a nosa versión de Ubuntu.
Instalar un paquete (apt-get install) (debemos ser root ou ben usar sudo diante do comando
apt-get):
apt-get install compizconfig-settings-manager
Apt-get comprobará se este paquete depende doutros paquetes. Se é así proporá a instalación
de todos os paquetes necesarios e preguntará se queremos instalalos.
Eliminar un paquete (apt-get remove, apt-get purge) (debemos ser root ou ben usar sudo
diante do comando apt-get):
apt-get remove compizconfig-settings-manager
ou ben
apt-get purge compizconfig-settings-manager
A diferenza entre estes dous comandos é que purge borrará os ficheiros de configuración do
paquete. Isto é importante se un paquete non funciona correctamente e queremos re-instalalo
coa configuración inicial. Apt-get remove borrará os executables pero respecta os cambios na
configuración e se instalamos de novo o paquete a configuración non cambia.
Actualizar o sistema (apt-get update/upgrade) (debemos ser root ou ben usar sudo diante
do comando apt-get):
apt-get update
Este comando descarga a lista de paquetes dispoñibles actualizada dos repositorios activos en
'sources.list'. Imprescindible antes de instalar/eliminar paquetes ou actualizar o sistema.
apt-get upgrade
Este comando busca nos repositorios as actualizacións dispoñibles para todos os paquetes
instalados no sistema e deixa o sistema completamente actualizado.
Se traballamos co entorno gráfico, o 'Xestor de actualizacións' de Gnome fai automaticamente
o traballo de apt-get update/upgrade.
$ uname -r
3.2.0-31-generic
O shell de GNU/Linux dispón dunha característica moi interesante que consiste en poder
incorporar a unha liña de comando a saída doutro comando. Isto conséguese encerrando o
comando entre acentos graves:
`comando`
ou usando esta sintaxe:
$(comando)
Cando o shell atopa dentro dunha liña escrita `comando` ou $(comando) o substitúe
automaticamente polo que aparece en pantalla ao executar comando.
Podemos usar esta característica para non ter que escribir a versión do núcleo que proporciona
directamente uname -r. Os seguintes comandos son equivalentes ao de arriba:
Ás veces tamén pode ser un .tar comprimido con bzip2 (.tar.bz2). Neste aso debemos
descomprimir previamente o bz2 dende o entorno gráfico ou con:
$ bunzip2 paquete.tar.bz2
Unha vez descargado o ficheiro .tar.gz ou .tgz, ou .tar, na nosa carpeta persoal, abrimos unha
terminal e (unha de tres, dependendo da extensión do paquete):
Fíxate que usamos sempre o comando tar coas opcións x (extraer), v (ver, mostrar o que fai) e
f (file) seguido do nome do paquete.
No caso de que o tar estea comprimido debemos usar tamén a opción z (descomprimir).
Tamén podemos abrir o paquete no entorno gráfico e arrastrar o seu contido á nosa carpeta
persoal.
En xeral, os paquetes traen un script de nome configure que prepara todo para compilar o
paquete na distribución que esteamos usando. Este script pode ter moitas opcións para
configurar o paquete de acordo coas nosas necesidades. Estas opcións poden vir explicadas
nos ficheiros de información citados anteriormente ou na documentación do paquete.
Os pasos para compilar e instalar un paquete, nunha porcentaxe moi alta de casos son
(situándose previamente na carpeta descomprimida do paquete):
$ ./configure
$ make
$ sudo make install
Moitas veces, os paquetes, para poder funcionar precisan que estean instalados no sistema
outros paquetes (o que chamamos dependencias).
O comando apt ten unha forma que permite instalar as dependencias para compilar os
paquetes (sempre e cando algunha versión do paquete que queremos instalar estea nos
repositorios). A forma de instalar as dependencias para compilar un paquete é:
https://1.eu.dl.wireshark.org/src/
Se descargaches o bz2:
$ bunzip2 wireshark-xxx.tar.bz2
Extraemos o código fonte do tar:
$ cd wireshark-xxx
Configuramos:
$ ./configure
Este script tratará de crear os ficheiros 'make' para compilar a aplicación no teu sistema e
avisará se falta algo importante. Debemos instalar un paquete (qt5-default).
Compilamos:
$ make
Instalamos:
IMPORTANTE:
Antes de proceder fala co/a profesor/a para que comprobe como está o disco e se procede
facer ou non algún cambio. Se hai datos nalgunha partición hai que respectalos sempre salvo
indicacións do/a profesor/a.
E indicar os datos:
O resultado:
Engadir impresora
Impresora de rede - Windows printer via Samba (Impresora de Windows a través de Samba)
O servidor sempre é teis1 e a impresora:
Taller1 - IT1
Taller2 - IT2
Taller3 - IT3
....
Podes pulsar 'Verify' para comprobar que a impresora existe (Fíxate no nome da impresora que
queres instalar. Non copies o da imaxe de abaixo).
Escolle o controlador:
Fabricante (COMPROBA A IMPRESORA, PODE CAMBIAR)
http://teis1:631/printers/IT1
Cando remate a descarga (ou a copia dende a rede) abre unha terminal e escribe (supoñendo
que todo está copiado ou descargado na carpeta Descargas):
Instalarase VirtualBox.
Unha vez instalado comproba que funciona. Pulsa a tecla Start e escribe virt
Primeiro o localizamos...
E despois o
instalamos...
Para que funciona o usb debes engadir o teu usuario ao grupo vboxusers. (Isto non é necesario
na instalación da aula. O teu usuario xa está no grupo vboxusers). Abre unha terminal e:
Asegúrate de que o disco USB está conectado e a partición de diúrno ou nocturno montada.
Aplicativos-Accesorios-Virtualbox-OSE
Ficheiro - Preferencias
Establece a ruta das máquina e dos discos ás carpetas que creaches dentro da carpeta do
módulo no teu disco USB.
Neste caso o módulo é ASO e o grupo IANA. Ollo coas maiúsculas e minúsculas porque
GNU/Linux distingue entre unhas e outras nos nomes de arquivo e carpeta.
Nas novas versións de Virtualbox, a imaxe de abaixo cambia e só nos pide unha carpeta na
que gardará discos e máquinas. Escolle a carpeta Virtualbox creada en ASO anteriormente...
Para non perder tempo e non ter que repetir os traballos convén que teñamos copia de
seguridade de todo o que facemos.
O que vos propoño é SINCRONIZAR cada día (ou coa periodicidade que considere cada un)
os datos da partición (NOCTURNO, neste caso) co disco externo usb. Sincronizar quere dicir
que só se copia o que cambia. Coas máquinas virtuais hai un problema: Unha máquina virtual
de Virtualbox pode ocupar varios Gb. Cada vez que a iniciamos o ficheiro que conten o disco
duro cambia, a sincronización detecta o cambio e o copia enteiro. Isto leva moito tempo.
Para solucionar isto, convén facer cando menos UNHA INSTANTÁNEA de cada máquina
virtual. Cando facemos unha instantánea, Virtualbox crea unha carpeta e garda todas as
modificacións que se fagan nesta carpeta SEN TOCAR o ficheiro (grande) do disco duro. Isto
reduce moito o tempo de copia.
Tamén é boa idea copiar a carpeta /home/usuario xa que nela está o que gardemos no
escritorio, documentos locais, preferencias de Ubuntu, etc...
Crea o seguinte script co teu editor de textos preferido e gárdao na túa carpeta persoal:
sincroniza.sh
#!/bin/bash
# Sincroniza a carpeta Aso da partición de NOCTURNO
# e copia o home do usuario
USER=damaso
GRUPO=IANA
QUENDA=NOCTURNO
Localiza este ficheiro na túa carpeta persoal, vai ás propiedades e activa o permiso de
EXECUCIÓN.
Para lanzar o script podes abrir unha terminal (CTRL+ALT+T) e escribir:
./sincroniza.sh
Este script comprobará que o disco usb está montado. En caso contrario non copiará.
Cando arrancamos a máquina, o ficheiro ou ficheiros .vmdk se modifican (só con acender a
máquina). Estes ficheiros son bastante grandes e ocuparán dende uns bytes cando o disco non
ten nada ata moitos Gb cando o disco está cheo.
O noso programa de copia sicroniza estes arquivos co disco externo. Cando detenta unha
variación aínda que sexa de 1 byte copiará o ficheiro completo o que fará que a copia tarde
moitos minutos.
Cando creamos unha instantánea de volume con VirtualBox, os arquivos vmdk quedan
bloqueados e non se modifican máis. Os cambios con respecto aos discos orixinais ou á última
instantánea, gárdanse na carpeta Snapshots cun nome {secuencianumerica}.vdi onde
secuencianumerica identifica a instantánea creada.
Se cada día, antes de comezar o traballo, facemos unha instantánea de cada máquina, a copia
só copiará os cambios do días. Ademais, se estropeamos algunha das máquinas sempre
podemos volver ao inicio da clase e comezar de novo.
Este pequeno script fará unha instantánea de cada unha das máquinas que teñamos
rexistradas.
#!/bin/bash
# Garda lista de máquinas en maquinas.txt
vboxmanage list vms > maquinas.txt
# Percorreo o ficheiro lendo o nome de máquina e a súa ID
while IFS={ read MAQUINA ID
do
# Garda a data en AGORA
AGORA=`date +"%m-%d-%Y%T"`
# Prepara o nome da instantánea
NOME_INSTANTANEA="Instantanea_$AGORA"
# Crea a instantánea
VBoxManage snapshot {$ID take \"$NOME_INSTANTANEA\"
done < maquinas.txt
Podes crear un novo script fotos.sh co seu lanzador igual que sincroniza.sh .
Abrir unha terminal
Usa o DASH ou pulsa CTR+ALT+T
./comando
En CMD se o comando está nalgunha das rutas separadas por ';' que hai na variable de
entorno PATH funcionará. Se o comando está no directorio actual tamén funcionará. En caso
contrario deberemos indicar a ruta (incluíndo a unidade se non é a actual).
Opcións:
Windows (CMD e PowerShell) usa '/' para as opcións (tamén '–' algunhas veces).
GNU/Linux usa '-' ou '--' para as opcións
Rutas
Windows (CMD e PowerShell) usa '\' para referirse ao directorio raíz e para separar directorios
nas rutas
GNU/Linux usa '/' para referirse ao directorio raíz e para separar directorios nas rutas
Se queremos indicar a ruta completa debemos comezar por '/' (GNU/Linux) ou '\' (Windows)
En Windows a ruta debe comezar por unha letra e ':' se queremos indicar unha unidade distinta
da actual. Por exemplo: c:\windows ou d:\nocturno.
Para indicar unha ruta partindo da carpeta actual comezaremos SEN '/' ou '\' ou ben con './' ou
'.\'.
Nas rutas '.' significa directorio actual e '..' significa directorio anterior.
Variables de entorno
Son variables do sistema que gardan información importante. Podemos usar estas varaibles
nos scripts e podemos crear as nosas propias variables.
Variables de entorno
variable=valor
$variable=”valor”
Asignar
set variable=valor
valor export
$variable=150
variable=valor
variable=
Remove-Variable -Name
Borrar set variable=valor
variable
export variable=
Mostrar as
que comezan set | findstr Get-Variable | Where {$_.Name
set | grep -i ^[a-z]
por unha “^[a-z]” -match “^[a-z]”}
letra
Mostrar as
que comezan Get-Variable | Where {$_.Name
por A -match “^[a-z]”}
(Windows set | grep -i ^A set | findstr “^a”
ignora Get-Variable | Where {$_.Name
maiúsculas/m -cmatch “^[a-z]”}
inúsculas)
cd
Moverse ao
directorio cd ~ cd %userpreofile% cd $home
persoal
cd $HOME
Mostrar o
directorio pwd cd pwd
actual
Moverse ao
directorio cd / cd \ cd \
raíz
Moverse ao
directorio cd .. cd .. cd ..
anterior
unidade: unidade:
Cambiar de
unidade
cd /D unidade:ruta cd unidade:
Comandos máis usados
Mostrar
arquivos no
ls dir dir,ls,Get-ChildItem
directorio
actual
Mostrar
arquivos en dir
ls ruta/directorio dir,ls,Get-ChildItem ruta
calquera ruta\directorio
directorio
Mostrar
arquivos con
ls -l dir dir,ls,Get-ChildItem
tamaño,
data, etc...
Mostrar
arquivos ls -a dir /a dir -h
ocultos
ls -rt
Lista de dir /od
arquivos. O
ls -lrt dir | sort LastWriteTime
último é o
máis recente
ls -alrt
comando –help
comando /?
comando -h
Ver axuda
help comando Get-Help comando [-detail]
dun comando
man comando
(axuda de Windows)
info comando
type ruta\ficheiro
Mostrar
$fic=Get-content
ficheiro de cat ruta/ficheiro type ruta\ficheiro
ruta\ficheiro
texto
$fic
Editar un
ficheiro de
nano ruta/ficheiro edit ruta\ficheiro -
texto en
modo texto
Editar un
ficheiro de notepad
gedit ruta/ficheiro notepad ruta\ficheiro
texto en ruta\ficheiro
modo gráfico
Borrar un
rm ruta/ficheiro del ruta\ficheiro rm,del,Remove-Item
ficheiro
Borrar un
rmdir rmdir
directorio rmdir ruta\directorio
ruta/directorio ruta\directorio
(baleiro)
Borrar un
directorio
(con todo o rm -rf rmdir /s
del ruta\directorio -recurse
seu contido, ruta/directorio ruta\directorio
incluíndo
directorios)
mkdir
mkdir ruta/directorio
Crear un mkdir ruta/directorio
directorio ruta/directorio
md ruta/directorio
md ruta/directorio
Mostrar algo
na pantalla
(útil para
ver
echo algo echo algo “algo”
variables de
entorno e
expansións
do shell)
Copiar
dicrectorio cp -r ruta/orix xcopy /e ruta\orix Copy-Item ruta\orix ruta\dest
con todo o ruta/dest ruta\dest -recurse
seu contido
En GNU/Linux podemos usar, entre outras cousas (se distinguen maiúsculas e minúsculas):
Expresións regulares
En comandos como grep podemos usar expresións regulares. Entre outras moitas
posibilidades:
Exemplo:
Filtrar as liñas que comezan por unha letra maiúscula (calquera se usamos a opción -i de grep):
^[A-Z]
Filtrar as liñas que rematan en número:
[0-9]$
Filtrar as liñas que comezan por letra e rematan en número (observa o '.' no medio):
[A-Z].[0-9]$
ls | grep meufic
Pasa a saída de ls (estándar e erros) a grep, que filtrará as liñas que non conteñan a palabra
meufic.
Podemos canalizar a saída dun comando a outro e o resultado a outro e así sucesivamente...
A lista de ficheiros pasa ao primeiro grep que lista as liñas que comezan por 'd' e pasa esa lista
ao segundo grep que mostra só aquelas que conteñan 'fic'.
Tamén podemos redirixir a saída dun comando a un ficheiro usando > e >>
ls > lista.txt Creará un ficheiro de nome lista.txt (borrándoo se xa existira) e gardará nel
a saída de ls (lista do contido do directorio actual).
O mesmo en Windows:
dir > lista.txt
Se queremos engadir a saída dun comando a un ficheiro existente podemos usar >> que non
borra o ficheiro senón que engade o contido ao mesmo.
ls / >> lista.txt
dir \ >> lista.txt
En PowerShell convén usar Set-Content, Add-Content e Out-File para evitar problemas coa
codificación de caracteres.: