You are on page 1of 88

1

Instalar librecad

$ sudo add-apt-repository ppa:librecad-dev/librecad-daily

$ sudo apt-get update

$ sudo apt-get install librecad

--------------------

Optional, to remove librecad, do:

$ sudo apt-get remove librecad

Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Verificar procesador

uname -m

Como respuestas a este comando tenemos las opciones:

i686 –> Quiere decir que tenemos instalada la version de 32 bits.

x86_64 –> Tenemos instalada la version de 64 bits.

XXXXXXXXXXXXXXXXXXXXXXXXXXX

COMO INSTALAR DRAFTSIGHT


Les recomiendo que instalen GDebi antes. GDebi es un instalador gráfico para los paquetes debs.
Súper fácil de usarlo.
2

sudo apt install gdebi

sudo apt install gstreamer0.10-x

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxx

si tuvieron la suerte de encontrarlo y descargarla pasamos a la instalación haciendo doble click


sobre el paquete o por medio de terminal:
Nos dirigimos donde lo hallamos descargado, abrimos un terminal y escribimos:

sudo dpkg -i draftSight_V1R5.2_32bits.deb

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx

Wine es un excelente emulador para ejecutar aplicaciones Windows en sistemas GNU/Linux.

Wine 3.0 en Ubuntu Xenial Xerus 16.04 LTS


Obs:

 Utilizo Ubuntu Xenial Xerus 16.04 LTS de 64 bits

Entramos a la terminal y tecleamos lo siguiente:


cd ~
sudo dpkg --add-architecture i386
wget -nc https://dl.winehq.org/wine-builds/Release.key
sudo apt-key add Release.key
3

sudo apt-add-repository https://dl.winehq.org/wine-builds/ubuntu/


sudo apt update
sudo apt install --install-recommends winehq-stable
sudo apt install winetricks
sudo apt-get autoremove && sudo apt clean && sudo apt autoclean

Para verificar la versión del wine que se acabó de instalar.


wine --version

Sale por pantalla:


wine-3.0

Para instalar software podes utilizar winetricks

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXxxx

Entramos a la terminal y tecleamos lo siguiente:


sudo apt update
sudo apt install tor
sudo apt clean && sudo apt autoclean
4

Una vez instalado Tor, entramos a nuestro navegador Mozilla Firefox y configuramos el proxy:
Ir a Mozilla Firefox -> Preferencias> ir hacia abajo a la sección Proxy de red -> click en Configuración
-> click al Configuración manual del proxy -> ingresa la dirección 127.0.0.1 y el puerto 9050 en la
sección SOCKS

Configurar proxy en Mozilla Firefox para acceder a la red Tor


Ahora visitar en Mozilla Firefox la dirección https://check.torproject.org y deberías ver el mensaje que
se muestra en la imagen de abajo.
5

Red Tor en Mozilla Firefox

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Draftsigth

INSTALACIÓN

Como he comentado los usuarios de la plataforma de 64 bit lo tenemos muy sencillo, tan solo
debemos descargar el archivo de la página de Draftsight, existiendo versión para Fedora y
para Ubuntu.

Una vez descargado, lo puedes instalar haciendo doble clic sobre él, o bien ejecutando el siguiente
comando en un emulador de terminal

Sudo dpkg-i-draftSigth.deb

En caso de que al iniciar la aplicación te de algún error, es posible que te falte alguna librería
necesaria para el funcionamiento. En mi caso, se solucionó instalando las librerías necesarias,
ejecutando las siguientes órdenes en un emulador de terminal,

Sudo apt install libgstreamer-plugins-base0.10-0

Sudo apt install libgstreamer0.10-0

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx

Si quieres ser root sigue estos simples pasos:


6

Opcional, bajo tu responsabilidad (no recomendado si eres un usuario


novel). Como ser root en Ubuntu.
sudo –i

sudo passwd root

Introduces la pass y ya seras root.

XXX Actualizar:
Antes de instalar nada actualizaremos nuestro Ubuntu, pero no solo programas y archivos, también
el core.
Procedemos:

sudo apt-get update && sudo apt-get dist-upgrade

## Como aporte: desde hace varias versiones no seria necesario escribir el comando apt-get
completo, se sigue usando por costumbre, podrías usar:

sudo apt update && sudo apt dist-upgrade

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Actualizamos los controladores libres:

sudo add-apt-repository ppa:xorg-edgers/ppa


sudo apt-get update
sudo apt-get upgrade

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Instalar Gnome Tweaks

Algunas cosas que nos permitirá hacer:

 Modificar la apariencia de Ubuntu 18.04 LTS Desktop


 Cambiar las fuentes predeterminadas
 Mover los botones de ventana
 Gestionar eficazmente todas las extensiones de GNOME
 Habilitar / Deshabilitar los iconos del escritorio
La instalación es sencilla.

sudo apt-get install gnome-tweak-tool -y

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Botón minimizado
7

gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Formatos de discos

sudo apt-get install exfat-fuse exfat-utils hfsplus hfsutils ntfs-3g

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Codecs y packs restringidos:

sudo apt-get install ubuntu-restricted-extras

sudo apt-get install libavcodec-extra

sudo apt-get install curl

curl ftp://ftp.videolan.org/pub/debian/videolan-apt.asc | sudo apt-key add –

echo "deb ftp://ftp.videolan.org/pub/debian/stable ./" | sudo tee /etc/apt/sources.list.d/libdvdcss.list

sudo apt-get update

sudo apt-get install libdvdcss2

sudo apt-get install ttf-mscorefonts-installer

sudo fc-cache

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Firewall (cortafuegos)
Por defecto, UFW ya viene instalado en Ubuntu. Si quieres activarlo a

través del GUI, puedes hacerlo de la siguiente forma:

sudo apt-get install gufw

Si prefieres activar el Firewall desde la consola, también es posible:

sudo ufw enable

#Firewall is active and enabled on system startup


8

Verificar su funcionamiento…

sudo ufw status

#Status: active

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Abrir puertos de servicios específicos (ejemplo con el puerto 22 de SSH).

sudo ufw allow ssh

# también puede servir...

sudo ufw allow 22/tcp

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Aplicaciones:
Casi no se usa, pero por si acaso nunca esta de más instalar aptitude:
sudo apt-get install aptitude

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ahora instalaremos la herramienta Gdebi, ya se que muchos dirán que no se usa para nada, no es
necesario. Yo te contradigo y ¿sabes porque?, muy fácil… cuando quieres instalar un deb, por
defecto se abre la aplicación “Software” (antiguamente Centro de Software) y es muy lenta,
prácticamente insoportable. Por eso mismo yo te recomiendo que por defecto abras los paquetes
deb con gdebi, es muy rápido.

sudo apt-get install gdebi-core


udo apt-get install gdebi
9

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Para una mejor interacción de los paquetes de software, instala Synaptic.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Descompresores:

sudo apt-get install p7zip-full p7zip-rar rar unrar

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compilar:
Podemos encontrarnos con el caso de algún software que no lo encontremos en .dev, en ese caso
para poderlo instalar deberemos usar comandos del estilo make (recomendable).

sudo apt-get install build-essential

sudo apt-get install linux-headers-`uname -r`

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Solo para portátiles:


10

Prolonga la batería y evita sobrecalentamientos (Recomendado si usas un portable).

sudo apt install tlp tlp-rdw

sudo tlp start

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Impresoras
Por lo general, casi todas las impresoras ya deberían de estar instalada por defecto, pero siempre
faltan algunas.

sudo apt-get install printer-driver-all

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Transmission no reconoce los torrents magnet (solución):

xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Transmission funciona realmente bien y es muy ligero, pero existe un cliente que es buenísimo y
gráficamente nos aporta muchísima mas información, aparte que mucho más bonito.
Hablamos de qbittorrent y vale la pena probarlo (Recomendado).
Lo puedes instalar desde su repositorio oficial:

sudo add-apt-repository ppa:qbittorrent-team/qbittorrent-stable

sudo apt-get update && sudo apt-get install qbittorrent

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Instalar K3b:
Dado que muchos usuarios tienen problemas con el idioma o los codecs de este fantástico software
de grabación, vemos los tres pasos a seguir.

sudo apt-get install k3b


11

sudo apt-get install kde-l10n-es

sudo apt-get install libk3b7-extracodecs

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Uno que posiblemente te interese es, Google Chrome.


Como instalar Google Chrome en Ubuntu:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

sudo gdebi google-chrome-stable_current_amd64.deb

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

### Otras aplicaciones

sudo apt-get install libreoffice libreoffice-l10n-es libreoffice-templates


sudo apt-get install inkscape
sudo apt-get install gimp gimp-plugin-registry gmic gimp-gmic
sudo apt-get install gparted
sudo apt-get install bluefish
sudo apt-get install vlc

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1. Actualizar Ubuntu con lo último

Lo primero que hemos de hacer es asegurarnos que nuestro sistema está al día de las
actualizaciones, que no haya nada desde que hemos grabado la imagen ISO hasta el día de la instalación.
Para eso abrimos una terminal y escribimos lo siguiente:

1 sudo apt-get update

3 sudo apt-get upgrade


12

2.Instalar los últimos códecs

El siguiente paso que hemos de hacer es instalar los códecs y demás complementos multimedia
y web para la distribución, para ello abrimos una terminal y escribimos lo siguiente:

1 sudo apt-get install ubuntu-restricted-extras

3.Habilitar el botón de minimizado.

El nuevo escritorio de Ubuntu no suele traer el botón de minimizado por defecto, para habilitarlo
solo hemos de escribir y ejecutar lo siguiente en la terminal:

1 gsettings set org.gnome.shell.extensions.dash-to-dock click-action 'minimize'

4.Instalación de Tweaks.

La personalización y administración es algo muy importante, es por ello que necesitaremos instalar
Gnome Tweaks o Tweaks, para ello escribimos en la terminal lo siguiente:

1 sudo apt-get install gnome-tweaks-tool

5. Habilitar el modo nocturno en el escritorio

Ubuntu 18.04 trae consigo la utilización del modo nocturno, es decir, la posibilidad de utilizar el
monitor del ordenador sin luz azul. Es algo efectivo y útil, su activación se puede hacer acudiendo
a Ajustes –> Dispositivos –> Pantalla.

6. Instalar el nuevo tema de Comunidad de Ubuntu 18.04

Se esperaba que Ubuntu 18.04 tuviese un nuevo tema de escritorio, pero finalmente no lo tiene. Sin
embargo, se puede instalar escribiendo “communitheme” en el buscador de paquetes del
Centro de Software de Ubuntu. Una vez que apliquemos los cambios los reiniciamos y ya
tendremos el nuevo tema de escritorio aplicado.

7. Instalación de Software complementario

Ahora que ya estamos en el Centro de Software de Ubuntu aprovecharemos para instalar


ciertas aplicaciones que necesitemos. Esta instalación se hará a través de paquetes snap. VLC,
Spotify o Skype serían buenas aplicaciones para comenzar a utilizar el nuevo Centro de Software.
13

8. Instalación de extensiones en Gnome

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Para instalar Communitheme abre una terminal e introduce este comando:

snap install communitheme

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

sudo snap install chromium

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

2- Actualizamos el sistema.
sudo apt update && sudo apt upgrade
3- Instalamos codecs multimedia.

sudo apt-get install ubuntu-restricted-extras


4- Instalamos los gestores de paquetes Synaptic y Gdebi.

sudo apt install synaptic apt-xapian-index


sudo update-apt-xapian-index
sudo apt install gdebi
5- Flash y fuentes TTF.

sudo apt install icedtea-plugin libdvd-pkg ttf-mscorefonts-installer


sudo dpkg-reconfigure libdvd-pkg
6- Instalamos Java.

sudo apt-get install openjdk-8.-jre


7- Archivos Comprimidos

sudo apt install rar unrar unace p7zip-full p7zip-rar lzip arj sharutils mpack lzma lzop unzip zip bzip2
lhasa cabextract lrzip rzip zpaq kgb xz-utils
8- Formatos de discos.
14

Reconoce diversos formatos de discos que insertes.


sudo apt-get install exfat-fuse exfat-utils hfsplus hfsutils ntfs-3g
9- Agregar compatibilidad con Android y Iphone/Ipod

sudo apt-get install mtp-tools ipheth-utils ideviceinstaller ifuse


10- Impresoras

Por lo general, casi todas las impresoras ya deberían de estar instalada por defecto, pero siempre
faltan algunas.
sudo apt-get install printer-driver-all
11- Activar Trim

Si tienes un disco SSD activa trim de esta manera para asegurarte de que está trabajando.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

LibreCAD

sudo apt-get install librecad

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

QCAD

QCAD es uno de los programas más antiguos de CAD que existe para la plataforma GNU/Linux y para
Ubuntu y una de las alternativas a Autocad más conocidas. En este caso, las últimas versiones de QCAD
están enfocadas al mundo 2D, sobre todo para aspectos como la Construcción o partes mecánicas y
diagramas. QCAD también es un programa multiplataforma, es decir, hay una versión para Mac OS, otra para
Windows y otra para Ubuntu. QCAD se caracteriza por ser muy modular, posiblemente el programa CAD
más modular que exista en Ubuntu. Al igual que en otros programas, QCAD permite leer y escribir
archivos dwg, dxf, bmp, jpeg, png, tiff, ico, ppm, xbm, xpm,svg y en el caso de los formatos dwf y dgn, sólo
se puede leer. A diferencia de otros programas, QCAD tiene un ebook online que nos permitirá obtener todo el
funcionamiento e información sobre el programa. En el caso de su instalación, QCAD no se encuentra en los
repositorios oficiales por lo que para su instalación hemos de descargarnos el programa en este enlace y
luego abrimos una terminal en la carpeta donde esté el archivo y escribimos lo siguiente:

chmod a+x qcad-3.x.x-pro-linux-x86_32.run

./ qcad-3.x.x-pro-linux-x86_32.run

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
15

Drafsight es una de las opciones más profesionales que existe en cuánto a alternativas del Autocad,
para Ubuntu pero también es una de las opciones más caras que existen. Aunque recientemente los
creadores decidieron crear una versión gratuita con funcionalidades reducidas pero igual de
interesantes que el resto de programas CAD. Al igual que muchos otros programas, Drafsight es
capaz de leer y escribir ficheros dwg y dxf. También puede leer muchos formatos de imagen
como png o jpg y crea archivos pdf con los proyectos creados. Tiene una opción de incorporación y
creación de módulos para ajustar el programa a nuestras necesidades, pero no podremos disfrutar
completamente de ello hasta que no tengamos una opción profesional, es decir, de pago.

Para poder instalar Drafsight hemos de ir a esta web y descargarnos el paquete deb en nuestro
Ubuntu. Una vez descargado hacemos doble click para que salte el instalador gdebi o sencillamente
abrimos una terminal en la carpeta donde esté descargado el paquete deb y usamos el comando
dpkg.

DESCARGA

Lo primero es descargar la aplicación, para ello es necesario que vayas a la


siguiente página y lo descargues, previa aceptación de las condiciones. Como ya he
indicado, se trata de una versión gratuita pero no libre.

INSTALACIÓN

Si tienes Ubuntu de 32 bits, y antes de instalar la la aplicación, he tenido que añadir unas
librerías que no estaban instaladas, y que requería para el funcionamiento:

sudo apt-get install libdirectfb-extra libxcb-render-util0 libaudio2

luego, haces doble clic en el archivo que te has descargado, y se iniciará el Centro de
Software de Ubuntu, o bien, a través del terminal:

dpkg -i DraftSight.deb

Si tienes 64 bits, tienes que hacer un poquito más de trabajo, porque la versión que han
compilado es para 32 bits, así que es necesario que primero instales estas dependencias:
16

sudo apt-get install libdirectfb-extra libxcb-render-util0

y el siguiente paso que instales DraftSight:

sudo dpkg --force-architecture -i DraftSight.deb

FUNCIONAMIENTO

Draftsight, trabaja exactamente igual que otros sistemas de CAD, siempre en 2D, se
comporta de maravilla, y tiene las mismas prestaciones. Es así. Para empezar, ya te
encuentras con el espacio papel y el espacio modelo, tal y como ves en las imágenes.

Algunos ejemplos básicos:

Hacer una línea, o haciendo clic en el icono o introduces “l” en la línea de comandos y las
coordenadas (¿te suena?)

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Bricscad
Paquete CAD desarrollado por Bricsys. Es considerada por conocedores como
una de las mejores aplicaciones comerciales disponibles para Linux. Bricscad es
capaz de realizar las funciones de las aplicaciones de AutoCAD contemporáneas.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

FreeCAD
Run the following command from the terminal to Install FreeCAD
17

sudo apt update


sudo apt install freecad

Once you are done with installation type freecad command from the terminal to start FreeCAD.

freecad

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Geany

 Cómo instalar: sudo apt-get install geany


 Detalles: un IDE muy ligero pero completo para casi todos los idiomas; un buen reemplazo para
Sublime Text y Notepad ++; muy adecuado para principiantes; sistema de construcción automático;
extensible por plugins; admite C / C ++, Python, Perl, HTML, JavaScript, PHP, Java, BASIC,
Ensamblaje

 Web: https://www.geany.org/Main/About

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Lector PDF
Qpdfview

Cómo instalar: sudo apt-get install qpdfview

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Editor de imagen

GIMP Inksca
pe

 Cómo instalar GIMP: sudo apt-get install gimp


 Cómo instalar Inkscape: sudo apt-get install inkscape

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
18

IDE para cualquier lenguaje de programación


Geany

 Cómo instalar: sudo apt-get install geany

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

C++ IDE
Qt Creator

 Cómo instalar: sudo apt-get install qtcreator


 Detalles: Sugiero a todo el mundo que migre completamente de Visual Basic a Qt Creator
(esto significa cambiar todo: idioma, biblioteca, traductor, experiencia), obtendrás una
plataforma de software libre multiplataforma sin Windows mejor que VB; Qt Creator es el
mejor IDE de C ++ para hacer programas de GUI en Ubuntu gracias a Qt Framework
detrás de + su impresionante sistema de documentación fácil de usar

 Web: https://www.qt.io/qt-features-libraries-apis-tools-and-ide/

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Suite de grabación Utilidad de discos


K3B /GNOME Disk
Utility

 Cómo instalar K3B: sudo apt-get install k3b


 Detalles: un reemplazo muy bueno y completo de Nero Burning ROM; capaz de grabar y
copiar CD, DVD y CD de audio; rápido y seguro

 Web: KDE K3B

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Apache, MySQL, PHP


(G)LAMPP

Put the xampp*.run file on your $HOME directory and invoke these commands:

$ chmod +x xampp-file-name-here.run

$ sudo ./xampp-file-name-here.run
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
19

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

TLP optimiza la gestión de energía de tu equipo y no tienes que entender detalles técnicos
ya que viene preconfigurado para sacarle el mayor jugo a tu batería.

Para instalarlo en Ubuntu 12.04 y versiones posteriores, así como derivados (Linux MInt,
elementary OS, etc.) solo necesitas abrir una terminal y escribir lo siguiente:

sudo add-apt-repository ppa:linrunner/tlp


sudo apt-get update
sudo apt-get install tlp tlp-rdw

Para iniciar el servicio sin necesidad de reiniciar, puedes escribir en la terminal:

sudo tlp start

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Es una de las cosas más simples que vas a conseguir en esta lista, pero que a muchos les va
a resultar completamente imprescindible. Lo único que hace Caffeine es asegurarse de que
tu ordenador no se vaya a dormir o entre en modo hibernación si pedirte permiso, como
cuando ves un vídeo en YouTube o una película en Netflix.

Solo necesitas instalar un indicador que aparecerá en tu panel de ahora en adelante con
forma de taza de café. Al activarlo se evitará que la pantalla se apague jamás.

sudo add-apt-repository ppa:caffeine-developers/ppa


sudo apt-get update
sudo apt-get install caffeine

En Ubuntu 14.04 y versiones posteriores, también debes instalar estas dependencias


adicionales:
20

sudo apt-get install libappindicator3-1 gir1.2-appindicator3-0.1

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Memoria ram

sudo dmidecode --type memory

o free –h

tb vmstat -s -S M

= cat /proc/meminfo/

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

1. lscsi
El comando lsscsi muestra info de los dispositivos scsi/SATA conectados
Primero hemos de instalar el paquete lsscsi con:
1 apt-get install lsscsi

y lo ejecutaremos con:

1 sudo lsscsi

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

lsblk
lsblk es un comando que se utiliza para mostrar información acerca de todos los dispositivos de
bloque disponibles. Ejemplos de dispositivos de bloque son los discos duros, unidades flash, CD-
ROM …

Los detalles que muestra incluyen el punto de montaje y el tamaño total de la partición o el bloque. Lo que no
incluye es el espacio libre y el disponible.

Mostrar todos los dispositivos:


1 lsblk -a

Mostrar columna tamaño en bytes:

1 lsblk -b
21

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

fdisk
El propoósito principal del comando fdisk es modificar las particiones del sistema de archivos ,
pero podemos utilizarlo para mostrar info de las particiones del sistema de archivos con la opción -l:
1 fdisk -l

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

sfdisk
sfdisk es parecido a fdisk, pero con más características. Puede mostrar el tamaño de cada partición
en MB:
sudo sfdisk -l -uM
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

df
df no es una utilidad de partición, pero imprime detalles acerca de los sistemas de archivos montados.

1 df -h

Muestra el espacio disponible:


XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

cfdisk
CFdisk es un editor de particiones Linux con una interfaz de usuario interactiva. Puede ser
utilizado hacer una lista de las particiones existentes, así como crear o modificar ellos.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

parted
Parted es otra utilidad de línea de comando para enumerar las particiones y modificarlos si es
necesario.
He aquí un ejemplo que muestra los detalles de partición:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

blkid
blkid muestra los atributos como el uuid y el tipo de sistema de archivos de los dispositivos de
bloque (particiones y volúmenes de almacenamiento)
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Programacion en C y C++ en Ubuntu...


Empezemos Instalando build-essential; escribes en terminal:

sudo apt-get install build-essential


22

LENGUAJE C EN UBUNTU

1.- Abres terminal (como te explique mas arriba) y haces lo siguiente (para iniciar, solo usaremos consola, aunque existen otras
alternativas gráficas como Anjuta, Code::Blocks, Eclipse, etc...):
usuario@equipo:~$ pico ejemplo.c
(usuario y equipo dependen de tu equipo, los pongo para referencia)
(En este ejemplo uso el editor pico, y el archivo que voy a crear es el ejemplo.c)
Se va a "limpiar" la terminal y ahí puedes poner el código para tu programa, en este caso voy a hacer el famoso "Hola mundo"
#include
int main()
{
printf("Hola mundo");
printf("\n");
return 0;
}
Una vez terminado, oprimes CONTROL + O (Es O, no un cero)para indicar que lo vamos a guardar, la terminal te va a decir si
realmente quieres guardarlo con este nombre (en este caso ejemplo.c) y para indicar que si, basta con apretar Enter, ahora a salir de
este editor con un CONTROL + X y regresas a terminal, ahora para compilarlo, tienes que escribir en terminal:

gcc ejemplo.c -o ejemplo

Con esto le indicamos que vamos a compilar el archivo ejemplo.c con el compilador gcc, que es el utilizado en Linux para C, y que a
la salida (-o, ojo, no es un cero, es una o) de el ejecutable ejemplo.
Ahora bien, a ejecutar nuestro programa con un:

./ejemplo

Desde terminal y obtenemos esto:


usuario@equipo:~$ ./ejemplo
Hola mundo
Te pongo este otro que suma 2 números:
En terminal escribimos:

pico suma.c

Y en el editor ponemos este código:


#include
int x,y,z;
int main(){
printf("Dame el primer numero: ");
scanf("%d",&x);
printf("\n");
printf("Dame el segundo numero: ");
scanf("%d",&y);
z=x+y;
printf("\n\n El resultado de la suma es :%d\n",z);
return 0;
}
Lo guardamos con CONTROL + O, presionamos Enter y salimos con CONTROL + X.
Lo compilamos y creamos el ejecutable:

gcc suma.c -o suma


23

Ahora lo ejecutamos:

./suma

Y este es el resultado (voy a sumar 88 mas 77) :


usuario@equipo:~$ ./suma
Dame el primer numero: 88
Dame el segundo numero: 77
El resultado de la suma es: 165
Todo esto lo hemos hecho desde la carpeta personal, por lo tanto los archivos se encuentran ahí, tanto el código fuente (los archivos
con extensión .c) como los ejecutables (los archivos que llevan el mismo nombre que los del código fuente pero sin extensión)

LENGUAJE C++ EN UBUNTU

Para poder programar en C++, lo único que tenemos que hacer de diferente respecto a la compilación con C, es utilizar el
compilador g++ en lugar de gcc, y darle el nombre adecuado a los archivos que contienen el código fuente, por ejemplo, voy a
compilar el famoso "Hola Mundo", ahora en C++, queda de esta manera:
usuario@equipo:~$ pico ejemplo.cpp
(En este ejemplo uso el editor pico, y el archivo que voy a crear es el ejemplo.cpp)
Si notas la diferencia, uso la extensión cpp para indicar la diferencia con los archivos de C, aunque en general se puede utilizar
cualquier extensión, no tiene que ser cpp o c.
En teminal pongo el código:
#include
using namespace std;
int main (){
cout<<"\nHola mundo\n";
return 0;
}
Y lo guardamos de la misma manera que los archivos de C.
Ahora lo vamos a compilar y crear el ejecutable:

g++ ejemplo.cpp -o ejemplo

Con esto le indicamos que vamos a compilar el archivo ejemplo.cpp con el compilador g++, que es el utilizado en Linux para C++, y
que a la salida (-o, ojo, no es un cero, es una o) de el ejecutable ejemplo.
Ahora bien, a ejecutar nuestro programa con un:

./ejemplo

Desde terminal y obtenemos esto:


usuario@equipo:~$ ./ejemplo
Hola mundo
Cabe decir que los programas son compilados y ejecutados en consola, así como el resultado aparece también en consola.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
24

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Este RPM a DEB Utilidad de Conversión llamada Alien, que convierte los paquetes de uno a
otro formato. Esto no significa que el paquete de convertir RPM siempre funcionará en su
sistema. Porque no puede haber problema de las dependencias o en las bibliotecas.

Para instalar (Presione Ctrl + Alt + T) y copie el siguiente comando en el terminal:

sudo apt-get install alien dpkg-dev build-essential debhelper

Ahora convertir los paquetes de formato RPM a formato DEB, use el siguiente comando.
Cambie su packagename en el comando:

sudo alien packagename.rpm

Para instalar el paquete deb introduzca el comando siguiente:

sudo dpkg -i packagename. deb

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Por ejemplo… vamos a instalar la aplicación Bluefish, que de hecho es un excelente editor de
código opensource.

rpm -ivh bluefish-2.2.10-26.1.src.rpm

Como ya lo teníamos instalado y actualizado a la ultima versión, la respuesta es rápida.

base1-v8qw:/home/demo/ # rpm -ivh bluefish-2.2.10-26.1.src.rpm


Actualizando / instalando...
1:bluefish-2.2.10-26.1
25

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Instalar paquetes rpm en Ubuntu

sudo apt-get install alien

Ahora convertimos el paquete con un simple:

sudo alien paquete.rpm

instalación de paquetes
Una vez convertido el formato, en la misma carpeta encontraremos el archivo “paquete.deb” que podemos instalar con Synaptic, el
Centro de Software de Ubuntu o mediante línea de comandos.

sudo dpkg -i paquete.deb

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

¿Cómo instalar compresores en Gnu/Linux?


sudo apt-get install rar unrar unace zip unzip p7zip-full p7zip-rar sharutils mpack arj
cabextract file-roller uudeview

Esto si utilizamos una distribución Gnu/Linux basada en Ubuntu o Debian. Si por el contrario, no
tuviéramos Ubuntu y utilizásemos una distribución basada en Fedora o Red Hat, hemos de escribir lo
siguiente:

sudo dnf install rar unrar unace zip unzip p7zip-full p7zip-rar sharutils mpack arj cabextract file-roller
uudeview

Si no tuviéramos Ubuntu y tuviéramos Arch Linux o sus derivadas, entonces hemos de escribir lo siguiente

Pacman -S rar unrar unace zip unzip p7zip-full p7zip-rar sharutils mpack arj cabextract file-roller
uudeview
26

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Así, para comprimir un archivo en formato zip hemos de utilizar el siguiente patrón:

1 zip archivo.zip archivo.doc archivo.jpg

Si queremos crear un archivo en formato gzip, el patrón será el siguiente:

1 gzip archivo.doc

Si queremos crear un archivo en formato tar, entonces hemos de escribir lo siguiente:

1 tar -zcvf archivo.tgz archivo.doc

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Un proceso similar hemos de realizar cuando queramos descomprimir archivos a través de la


terminal. Para ello hemos de seguir los mismos patrones pero cambiando el comando a ejecutar.
Así, para descomprimir archivos en formato .zip hemos de escribir:

1 unzip archivo.zip

Si queremos descomprimir archivos en formato .rar hemos de escribir:

1 unrar archivo.rar

Si queremos descomprimir archivos en formato tar, entonces hemos de ejecutar lo siguiente:

1 tar -zxvf archivo.tgz

Si el archivo está en formato gzip, entonces hemos de ejecutar lo siguiente:

1 gzip -d archivo.zip
27

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

De todas formas, no debemos preocuparnos, porque podemos resolverlo


instalando los elementos que nos faltan con esta sencilla instrucción:

sudo apt install p7zip-full p7zip-rar rar unrar -y

El argumento -y le dice al comando apt que respondemos


afirmativamente a cualquier pregunta que pueda hacernos. De esa
forma se instalarán los distintos componentes sin volver a molestarnos.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
28

Cuando tecleamos una orden, el intérprete de comandos sigue una serie de pasos:
1. Busca el nombre de la orden y comprueba si es una orden interna.
2. Comprueba si la orden es un alias, es decir, un nombre sustitutorio de otra orden.
3. Si no se cumple ninguno de los casos anteriores, busca el programa correspondiente y lo ejecuta.
4. Si el intérprete de comandos no puede encontrar la orden que hemos tecleado, muestra un mensaje de error.
El formato general de una orden en Linux es:

comando [-opciones] [argumentos]


A la hora de introducir los comandos hay que tener en cuenta las siguientes características:
• Los comandos hay que teclearlos exactamente.
• Las letras mayúsculas y minúsculas se consideran como diferentes.
• En su forma más habitual, el sistema operativo utiliza un signo de $ como prompt para indicar que está
preparado para aceptar comandos, aunque este carácter puede ser fácilmente sustituido por otro u otros elegidos
por el usuario. En el caso de que el usuario acceda como administrador este signo se sustituye por #.
• Cuando sea necesario introducir el nombre de un fichero o directorio como argumento a un comando, Linux,
permite escribir las primeras letras del mismo y realiza un autorrellenado al presionar la tecla del tabulador. Si no
puede distinguir entre diversos casos rellenará hasta el punto en el que se diferencien.

La Terminal guarda un HISTORIAL y podéis ver cómo funciona en:


http://ubuntu-guia.blogspot.com/2010/08/historial-terminal-consola-ubuntu.html

3. MANUALES DE COMANDOS

 man → (manual: manual)


Nos ofrece el manual de cualquier comando en la propia terminal.

En esta guía he pretendido hacer solo una breve introducción de los comandos y sus argumentos más utilizados y
sus posibilidades son muchas más, por ello os animo a que lo utilicéis siempre que tengáis alguna duda.

Para utilizarlo, basta con ejecutar "man" seguido del comando del que deseamos saber más o simplemente
recordar:

man comando
En ocasiones la información que nos ofrece man puede llegar a ser excesiva. Casi todos los comandos y
aplicaciones aceptan el argumento “--help” o "-h" para que muestre cierta ayuda más resumida. Por ejemplo con
29

"apt-get":

apt-get --help
o

apt-get -h
En Ubuntu, los manuales están en Inglés pero podéis ponerlos en español (no todo está traducido). Para ello:

1. Instalar los paquetes de idioma español:

sudo apt-get install manpages-es manpages-es-extra


2. Recargar el idioma con:

export LANG=es_ES.UTF-8
3. Reiniciar la terminal y por ejemplo para ver el manual del comando "ls", ejecutamos:

man ls
Más información aquí.

4. COMANDOS RELACIONADOS CON ARCHIVOS Y DIRECTORIOS

 ls → (list: listar)
Nos muestra el contenido de la carpeta que le indiquemos después.

La sinapsis del comando sería:

ls [opciones] [ruta]
Opciones:
-a → Muestra todos los ficheros incluyendo algunos que ordinariamente están ocultos para el usuario (aquellos
que comienzan por un punto). Recordemos que el fichero punto . indica el directorio actual y el doble punto .. el
directorio padre, que contiene, al actual.
-l → Esta es la opción de lista larga: muestra toda la información de cada fichero incluyendo: protecciones, tamaño
y fecha de creación o del último ambio introducido,...
-c → Muestra ordenando por día y hora de creación.
-t → Muestra ordenando por día y hora de modificación.
30

-r → Muestra el directorio y lo ordena en orden inverso.


-R → Lista también subdirectorios.
ls subdir → Muestra el contenido del subdirectorio subdir.
-l filename → Muestra toda la información sobre el fichero filename.
--color → Muestra el contenido del directorio coloreado.

Ejemplos:

Si queremos que nos muestre lo que contiene el directorio o carpeta "/etc":

ls /etc
Si no ponemos nada interpretará que lo que queremos ver es el contenido de la carpeta donde estamos
actualmente:

ls
Además acepta ciertos argumentos que pueden ser interesantes:

Para mostrar todos los archivos y carpetas, incluyendo los ocultos:

ls -a
Para mostrar los archivos y carpetas junto con los permisos que tiene, lo que ocupa, su dueño, ...:

ls -l
Además se pueden solapar los argumentos:

Si quisiéramos mostrar los archivos de la misma forma que antes, pero que muestre también los ocultos:

ls -la

 file
Este comando realiza una serie de comprobaciones en un fichero para tratar de clasificarlo, mostrando sus
características.

La sinapsis del comando sería:

file [OPCIÓN...] [ARCHIVO...]


Tras su ejecución este comando muestra el tipo del fichero e información al respecto del mismo. Este comando se
puede aplicar también a directorios.
31

 cd → (change directory: cambiar directorio)


Lo utilizamos para cambiar de directorio o carpeta en la terminal.

Podemos usarlo con rutas absolutas o relativas.

En las absolutas le indicamos toda la ruta desde la raíz (/). Por ejemplo, estemos donde estemos, si escribimos en
consola …

cd /etc/apt
… nos llevará a esa carpeta directamente. Del mismo modo si escribimos …

cd /
… nos mandará a la raíz del sistema de ficheros.

Las rutas relativas son relativas a algo, y ese algo es la carpeta donde estemos actualmente. Imaginad que estamos
en /home y queremos ir a la carpeta "Imágenes" dentro de vuestra carpeta personal. Con escribir …

cd Imágenes
… nos situará allí. Como véis hemos obviado el "/home/carpeta_personal" inicial ya que si no lo introducimos toma
como referencia el directorio donde estamos, que es ese.
¿Y qué sucede si escribimos tan sólo …

cd
Sí, sólo “cd”. Esto lo que hace es que te lleva a tu carpeta personal directamente, estemos donde estemos. Es algo
realmente muy práctico, muy simple y que no todos conocen.

 mkdir → (make directory: hacer directorio)


Crea una carpeta o directorio con el nombre que le indiquemos.

Nuevamente podemos usar rutas absolutas y relativas. Podemos indicarle toda la ruta que le precede al directorio
que queremos crear:

mkdir /home/carpeta_personal/nueva_carpeta
32

O si estamos ya en la carpeta que lo va a contener basta con poner tan sólo el nombre de la nueva carpeta. Por ej.
si ya estamos en /home/carpeta_personal:

mkdir nueva_carpeta

 rm → (remove: borrar)
Borra el archivo o la carpeta que le indiquemos.

Como antes se puede indicar la ruta completa o el nombre del archivo. Esto a partir de ahora lo vamos a obviar,
creo que ya ha quedado claro con los dos comandos anteriores.

Para borrar un archivo:

rm nombre_archivo
Para borrar un directorio o carpeta vacía:

rm nombre_carpeta
Para borrar un directorio o carpeta que contiene archivos y/o otras carpetas que pueden, a su vez, contener más
carpetas y archivos:

rm -r nombre_carpeta
Otras opciones:
"-f", no te pide una confirmación para eliminar.
"-v", va mostrando lo que va borrando.

También existe el comando "rmdir" para borrar carpetas o directorios:

rmdir nombre_directorio
Pero solo borrará directorios vacíos. Para borrar un directorio no vacío, junto con todo lo que tenga debajo,
emplear "rm -r".

 cp → (copy: copiar)
Copia el archivo o directorio indicado donde le digamos.

Aquí podemos también jugar con las rutas, tanto para el fichero origen, como en el del destino. También podéis
cambiar el nombre que le queréis poner a la copia.
33

La sinapsis del comando sería:

cp [/ruta/de/original...] [/ruta/de/copia...]
Por ejemplo, en nuestra carpeta personal vamos a crear una copia de seguridad "sources.list.backup", de nuestros
repositorios "/etc/apt/sources.list". Lo voy a explicar según donde estemos colocados en la terminal, para
comprender lo primordial que es saber en todo momento el directorio donde estamos colocados en la terminal:

- Si estamos colocados en nuestra carpeta personal, debemos de poner la ruta absoluta del original y la ruta
relativa de la copia:

cp /etc/apt/sources.list sources.list.backup
- Si nos colocamos en el directorio que contiene el archivo original (cd /etc/apt), debemos de poner la ruta
relativa del original y la ruta absoluta de la copia:

cp sources.list /home/tu_usuario/sources.list.backup
Nota: no olvides cambiar "tu_usuario" por el nombre de tu usuario o en su defecto sustituye "/home/tu_usuario"
por el símbolo "~" (pulsar la combinación de teclas Alt Gr + Ñ ). Sería así:

cp sources.list ~/sources.list.backup
- Si estuviéramos en cualquier otro directorio o simplemente para no tener problemas, escribimos las dos rutas
absolutas:

cp /etc/apt/sources.list /home/tu_usuario/sources.list.backup
Nota: no olvides cambiar "tu_usuario" por el nombre de tu usuario o en su defecto sustituye "/home/tu_usuario"
por el símbolo "~" (pulsar la combinación de teclas Alt Gr + Ñ ). Sería así:

cp /etc/apt/sources.list ~/sources.list.backup

 mv → (move: mover)
Es igual que el anterior, sólo que en lugar de hacer una copia, mueve directamente el archivo con el nombre que le
indiquemos, pudiendo ser otro distinto al original:

La sinapsis del comando sería idéntica a copiar:

mv [/ruta/de/original...] [/ruta/de/destino...]
34

Ejemplo para mover un "archivo.flv" del directorio "/tmp" (temporales) a nuestra carpeta personal y de paso
cambiarle el nombre a "mi_archivo.flv". Lo pongo con las dos rutas absolutas para no repetir todo lo anterior.

mv /etc/archivo.flv /home/tu_carpeta/mi_archivo.flv
O en su defecto sustituye "/home/tu_usuario" por el símbolo "~" ( Alt Gr + Ñ )

Otro uso muy práctico que se le puede dar es para renombrar un archivo. Basta con indicar el nuevo nombre en el
segundo argumento con la misma ruta del primero. En este ejemplo suponemos que ya estamos en la carpeta que
lo contiene:

mv archivo.flv mi_archivo.flv

 pwd → (print working directory)


Visualiza o imprime la ruta del directorio en el que nos encontramos en este momento. Este comando es uno de los
pocos que no tiene
opciones y se utiliza escribiendo simplemente:

pwd

 find → (find: encontrar)


Busca archivos o carpetas en la ruta que le indiques:

La sinapsis del comando sería:

find [/directorio/donde/buscar...] [-expresión] [búsqueda]


Donde "expresión" es el tipo de búsqueda y siempre se le antepone el signo "-"

La expresión "-name" sería para realizar una búsqueda por nombre. Por ejemplo, para buscar en todo el sistema
de archivos o raíz "/" las carpetas y archivos que se llamen "pepino". Sería:

find / -name pepino


Si tuviéramos la seguridad de que se encuentra en /var por ejemplo, se lo indicaríamos:

find /var -name pepino


35

Si no estamos muy seguros del nombre podemos indicárselo con comodines. Supongamos que el nombre de lo
que buscamos contiene “pepi”, en la misma carpeta de antes:

find /var -name *pepi*


Otra expresión sería "-size" para realizar la búsqueda por tamaño. Por ejemplo podemos decirle que encuentre
los archivos/carpetas de más de 1500 KB:

find / -size +1500


Se pueden conbinar varios atributos para afinar la búsqueda. Por ejemplo, buscar los archivos/carpetas que
contienen el nombre “pepi” y tienen menos de 1000 KB:

find / -name *pepi* -size -1000


La opción "2>/dev/null" es muy interesante para que no muestre los errores de "Permiso denegado". Por ejemplo
para buscar en la raíz "/" el archivo "gdmflexiserver":

find / -name gdmflexiserver 2>/dev/null

 grep → (localizar)
El comando grep localiza una palabra, clave o frase en un conjunto de directorios, indicando en cuáles de ellos la ha
encontrado. Este comando rastrea fichero por fichero, por turno, imprimiendo aquellas líneas que contienen el
conjunto de caracteres buscado. Si el conjunto de caracteres a buscar está compuesto por dos o más palabras
separadas por un espacio, se colocará el conjunto de caracteres entre apóstrofes ('). S

La sinapsis del comando sería:

grep [OPCIÓN] 'conjuntocaracteres' [ARCHIVOS...]


siendo 'conjuntocaracteres' la secuencia de caracteres a buscar, y file1, file2, y file3 los ficheros donde se debe
buscar. Veamos Ejemplo para buscar TRIANGULARIZACION MATRIZ entre las líneas de los ficheros matrix.f y
scaling.f.:

grep 'TRIANGULARIZACION MATRIZ' matrix.f scaling.f


Las opciones principales del comando son:
-c → lo único que se hace es escribir el número de las líneas que satisfacen la condición.
-i → no se distinguen mayúsculas y minúsculas.
-l → se escriben los nombres de los ficheros que contienen líneas buscadas.
-n → cada línea es precedida por su número en el fichero.
-s → no se vuelcan los mensajes que indican que un fichero no se puede abrir.
-v → se muestran sólo las líneas que no satisfacen el criterio de selección.
36

A continuación se muestra una serie de ejemplos.


grep ‘ˆd’ text → líneas que comienzan por d.
grep ‘ˆ[ˆd]’ text → líneas que no comienzan por d.
grep -v ‘ˆC’ file1 > file2 → quita las líneas de file1 que comienzan por C y lo copia en file2.

 cat → (Visualización sin formato de un fichero)


Este comando permite visualizar el contenido de uno o más ficheros de forma no formateada. También permite
copiar uno o más ficheros
como apéndice de otro ya existente. Algunas formas de utilizar este comando son las siguientes:

Sacar por pantalla el contenido del fichero filename:

cat filename
Sacar por pantalla, secuencialmente y según el orden especificado, el contenido de los ficheros indicados (file1 y
file2):

cat file1 file2


Aceptar lo que se introduce por el teclado y lo almacena en file1 (se crea file1):

cat >file1

5. COMANDOS RELACIONADOS CON SISTEMA Y ADMINISTRACIÓN

 ps → (process status: estado de los procesos)


Nos muestra lo que queramos saber de los procesos que están corriendo en nuestro sistema. Cada proceso está
identificado con un número llamado PID. Si hacemos…

ps -A
…nos mostrará un listado de todos los procesos, su PID a la izquierda y su nombre a la derecha. Si queremos más
información:

ps aux
37

 kill → (kill: matar)


Permite enviar señales a uno o varios procesos del sistema. Las más utilizadas suelen ser la de matar un proceso (9
o SIGKILL), pararlo (TERM) o reiniciarlo (1 o HUP) pero hay muchas más que pueden ser útiles en ocasiones. El
listado completo de señales disponibles puede visualizarse ejecutando:

kill -l

Como señal podemos utilizar el número correspondiente a la izda del nombre de la señal (SIG...) o escribir
directamente el nombre sin el "SIG" que le precede, por ejemplo "STOP"

La sinapsis del comando sería:

kill [señal] <pid> [...]


Por ejemplo para solicitar que termine un proceso cuyo PID es "3760", se utiliza la señal TERM (15), que es la señal
por defecto si no se escribe otra. Así que para solicitar el fin de ejecución de uno basta con ejecutar kill seguido del
PID correspondiente:

kill 3760
Para forzar que uno o varios procesos terminen de forma inmediata (sin solicitar ni preguntar…) usamos la señal
SIGKILL (9). Hay que ser cautos al usar esta señal porque fuerza a los procesos a terminar inmediatamente sin
permitirles terminar de forma limpia, es decir, puede que no borre los PID, que no deje terminar las peticiones
pendientes, etc:

kill -9 3760
Si quisieramos forzar que todos los procesos con un determinado nombre finalicen inmediatamente usaríamos
"killall" en lugar de kill. Por ejemplo para cerrar varios conkys que tengamos en el escritorio:
38

killall -9 conky
Otro ejemplo sería el de suspender un proceso, para ello le enviamos la señal de STOP (19) seguida del proceso. Si
no conocemos el ID de la señal podemos hacerlo también a través del nombre. En esta señal el proceso quedaría
suspendido, por lo que todavía figuraría en la lista de procesos y podríamos reanudarlo posteriormente (próximo
ejemplo):

kill -19 3760


o

kill -STOP 3760


Ahora que sabemos suspender procesos, es interesante conocer como reactivarlos, para ello usamos la señal
CONT (18). En este ejemplo vamos a “revivir” el proceso anterior:

kill -18 3760


o

kill -CONT 3760


Una de las señales más importantes es HUP (1). Esta señal para y reinicia el proceso indicado, también se puede
aplicar con el nombre del proceso además del ID.

kill -HUP 3760


o con el nombre del proceso:

killall -HUP script.sh


En caso de querer utilizarlo para por ejemplo, reiniciar todos los procesos "conky" usaríamos killall en lugar de kill:

killall -HUP conky

 sudo → (super-user do: hacer como superusuario)


Permite a los usuarios ejecutar acciones con los privilegios de seguridad del root, de manera segura.

Por defecto Ubuntu trae desactivada la cuenta del "root", por seguridad y para administrar el sistema existe un
grupo de usuarios denominado "sudoers users" (administradores o admin), los cuales pueden obtener permisos de
root, mediante la utilización de "sudo".

El usuario con el que instalamos Ubuntu, se encuentra incluido en este grupo de administradores. En la terminal se
utiliza el comando "sudo", anteponiéndolo a la orden o comando a ejecutar:
39

sudo orden
Más información en:
http://www.ubuntu-guia.com/2012/08/comandos-su-y-sudo.html
http://www.ubuntu-guia.com/2010/09/activar-desactivar-root-ubuntu.html

 su → (switch user: cambio de usuario)


Cambiar de usuario sin necesidad de hacer un cierre o cambio de sesión:

su nombreusuario
La contraseña que nos pedirá, es la del usuario al que vamos a cambiar, no la del usuario en el que estamos.

Si omitimos el nombre de usuario en el comando, cambiará a la cuenta del "root" (si está activada):

su
Más información en:
http://www.ubuntu-guia.com/2012/08/comandos-su-y-sudo.html

 passwd → (password: contraseña)


Cambia las contraseñas de cuentas de usuario.

Los usuarios normales solo pueden cambiar la contraseña de su propia cuenta y el superusuario puede cambiar
todas.

La sinapsis del comando sería:

passwd [opciones] [USUARIO]


Opciones:
-a, --all → informa del estado de las contraseñas de todas las cuentas
-d, --delete → borra la contraseña para la cuenta indicada
-e, --expire → fuerza a que la contraseña de la cuenta caduque
-h, --help → muestra este mensaje de ayuda y termina
-k, --keep-tokens → cambia la contraseña sólo si ha caducado
-i, --inactive INACTIVO → establece la contraseña inactiva después de caducar a INACTIVO
-l, --lock → bloquea la contraseña de la cuenta indicada
-n, --mindays DÍAS_MIN → establece el número mínimo de días antes de que se cambie la contraseña a DÍAS_MIN
-q, --quiet → modo silencioso
-r, --repository REP → cambia la contraseña en el repositorio REP
40

-R, --root CHROOT_DIR → directory to chroot into


-S, --status → informa del estado de la contraseña la cuenta indicada
-u, --unlock → desbloquea la contraseña de la cuenta indicada
-w, --warndays DÍAS_AVISO → establece el aviso de caducidad a DÍAS_AVISO
-x, --maxdays DÍAS_MAX → establece el número máximo de días antes de cambiar la contraseña a DÍAS_MAX

Si se especifica nombre-usuario, se cambiará la contraseña de dicho usuario (para esto se debe ser root), sino, la
del usuario que ejecuta el comando. La mecánica de cambio de contraseña tiene 3 pasos:
- Ingresar la contraseña antigua.
- Ingresar la contraseña nueva.
- Repetir la contraseña nueva para confirmar.

 apt → (advanced packets tool: herramienta avanzada de paquetes)


apt-get es la herramienta que utiliza Debian y sus derivadas (Ubuntu incluida), para gestionar los paquetes
instalables disponibles en los repositorios.

Merece una guia solo para él y poidéis verla en:


http://www.ubuntu-guia.com/2011/01/comando-apt-get-en-ubuntu.html

 aptitude → (aptitude: aptitud, habilidad)


Es una versión mejorada de apt y en Ubuntu ya no viene instalado por defecto. Nació como un front-end de apt, es
decir, como una especie de aplicación gráfica y en modo texto para realizar todo lo que hace apt. Pero lo cierto es
que sus características son mejores.

Para abrir el interfaz gráfico de aptitude, tan sólo hay que teclearlo en la terminal:

aptitude
Por supuesto, también se puede usar exactamente igual que apt-get:

aptitude search nombre_paquete


aptitude install nombre_paquete
aptitude remove nombre_paquete
aptitude purge nombre_paquete
aptitude update
aptitude upgrade
...
41

 dpkg → (depackage: despaquetar)


Los paquetes cuando se instalan sufren un proceso de despaquetaje. En el fondo un paquete .deb contiene una
serie de scripts de pre-instalación, post-instalación y los archivos en cuestión del paquete.

Este comando lo usaremos para instalar un paquete .deb que ya tengamos descargado en nuestro sistema. En
muchas ocasiones hay una aplicación que no está en los repositorios y nos hemos bajado el .deb para instalarlo
con el interfaz gráfico que corresponda (GDebi en el caso de GNOME). En el fondo estas interfaces gráficas están
basadas en dpkg.

Si queremos instalar un paquete ya descargado mediante consola usaremos el argumento ‘-i’ (i=install):

dpkg -i nombre_paquete
Para desinstalarlo ‘-r’ (r=remove):

dpkg -r nombre_paquete
Para desinstalar el paquete y los ficheros de configuración “–purge” (purgar):

dpkg -r –purge nombre_paquete

 Alien → (Alien: de otro país, de otro planeta)


Aunque Debian -y por extensión Ubuntu- dispone de una ingente cantidad de paquetes en sus repositorios, puede
que alguien tenga algún problema en encontrar una aplicación específica empaquetada como le interesa aunque
ha visto el paquete que quiere para otras distros.

alien es bastante práctico para estas situaciones ya que nos permite transformar un paquete de un gestor de
paquetes determinado en otro. Por ejemplo podemos pasar de un .rpm (Red Hat) a .deb (Debian) y viceversa. Las
extensiones soportadas son:
* deb (Debian)
* rpm (Red Hat)
* slm (Stampede)
* tgz (Slackware)
* pkg (Solaris)

Su uso es sencillo. Lo que debemos saber es el argumento que transformará el paquete original en la extensión
objetivo:
“–to-deb” o “-d” → para transformar a .deb
“–to-rpm” o “-r” → para transformar a .rpm
“–to-tgz” o “-t” → para transformar a .tgz
“–to-pkg” o “-p” → para transformar a .pkg
42

“–to-slp” → para transformar a .slp

Como ejemplo, pasaremos un supuesto paquete de Red Hat llamado “pepino.rpm” a “pepino.deb”:

alien -d pepino.rpm

 date → (date: fecha)


Muestra por pantalla el día y la hora, permitiendo, además, el cambio de la misma.

La sinapsis del comando sería:

date [OPCIÓN]... [+FORMATO]


o bien:

date [-u|--utc|--universal] [MMDDhhmm[[SS]AA][.ss]]


Para ver las opciones, ejecutar:

date --help

 cal → (calender: calendario)


Muestra el calendario del mes o año actual actual.

La sinapsis del comando sería:

cal [mes] [año]


Por ejemplo,
cal → muestra el calendario del mes actual.
cal 2014 → muestra el calendario del año 2014.
cal 05 2015 → muestra el calendario de Mayo de 2015.

 who → (who: quien)


Indica qué usuarios tiene el ordenador en ese momento, en qué terminal (tty) está y a qué hora iniciaron la sesión.

La sinapsis del comando sería:


43

who [OPCIÓN]...

 whoami → (who I am: quien soy)


Indica el usuario que está trabajando en la terminal actual.

La sinapsis del comando sería:

whoami

 finger
Presenta una información completa de los usuarios conectados a la red.

La sinapsis del comando sería:

finger [-lmsp] [user ...] [user@host ...]

 uname
Proporciona el nombre del sistema en el que se está trabajando.

La sinapsis del comando sería:

uname [-opciones]
Como opciones principales tenemos:
-a → indica, además, la versión, fecha y tipo de procesador.
-m → indica, además, el tipo de de procesador.
-r → indica, además, la versión.
-v → indica, además, la fecha.

 alias
Asigna un nombre o etiqueta a la ejecución de un comando con sus opciones.

La sinapsis del comando sería:

alias etiqueta=’orden’
44

La orden alias solamente, muestra todos los alias que hay creados. La orden unalias elimina el alias especificado.

 clear
Este comando se utiliza para limpiar la pantalla de la terminal.

La sinapsis del comando sería:

clear

6. CARACTERES COMODÍN O WILDCARDS

Una característica importante de la mayoría de los intérpretes de comandos en Linux es la capacidad para referirse
a más de un fichero.

Una forma de hacerlo es utilizando caracteres especiales llamados comodines.

Al igual que en MS-DOS, el comodín * hace referencia a cualquier carácter o cadena de caracteres en el nombre del
fichero. El intérprete de comandos sustituirá el asterisco por todas las combinaciones posibles provenientes de los
ficheros en el directorio al cual nos estamos refiriendo. Se dice que está realizando una expansión de comodines.

El carácter ? es también comodín, aunque solamente expande un carácter.

Con ambos caracteres existe una excepción. No afectarán a aquellos ficheros que comienzan por un punto, y que
son ocultos para órdenes como ls.

Además, podemos utilizar los corchetes para referirnos a un conjunto de caracteres o bien un rango de caracteres
ASCII.

Ejemplos:
ls *n* → muestra todos los archivos y directorios, del directorio actual, que contienen el carácter n
ls * → muestra todos los archivos y directorios del directorio actual
ls tm? → muestra todos los archivos y directorios del directorio actual que comienzan por tm y contienen tres
caracteres
ls tabla[123]a → muestra todos los archivos y directorios del directorio actual que comienzan por tabla,
seguidos del carácter 1, 2 ó 3, y terminan en a
ls ??base[A-Z][5-9]* → muestra todos los archivos y directorios del directorio actual que comienzan con dos
caracteres cualesquiera, seguidos de la cadena base, a continuación una letra mayúscula, seguida de un número
45

del 5 al 9 y por último una cadena de caracteres (uno, varios o ninguno)

7. ACCESO A UNIDADES DE DISCO: MONTAJE Y DESMONTAJE

Linux a diferencia de Windows no utiliza letras ("C:", "D:", ...) para acceder a las distintas unidades de disco de un
ordenador. Para acceder al contenido de una unidad de disco o de un CD-ROM este tiene que haber sido
previamente "montado". El montado se realiza mediante el comando mount, con lo que el contenido de la unidad
se pone a disposición del usuario en el directorio de Linux que se elija.

La sinapsis del comando sería:

mount [-t tipo_de_sistema_ficheros] [dispositivo] [directorio_de_montaje]


Por ejemplo para acceder al CD-ROM se teclearía el siguiente comando:

mount -t iso9660 /dev/cdrom /mnt/cdrom


Donde:
"-t iso9660" indica el tipo de sistema que usa la unidad de disco para guardar los ficheros (las más usuales son:
iso9660 en el caso de un CD-ROM, vfat en el caso de Windows, y ext2 (3 o 4) en el caso de Linux),
"/dev/cdrom" indica el dispositivo que se va a montar. Todos los dispositivos están representados por un fichero
del directorio /dev; por ejemplo, en el caso de un disquete será seguramente /dev/fd0,
"/mnt/cdrom" es el directorio en el que se pondrá a disposición del usuario el contenido del CD-ROM. Para montar
disquetes se suele utilizar el directorio /mnt/floppy (aunque esto depende de la versión de Linux que utilicemos).

En el caso de Ubuntu, el comando mount admite directamente los directorios /cdrom, /cdrom1, /floppy, ... para el
montaje de nuestras unidades, por lo que lo único que habría que escribir, para montar por ejempo la disquetera,
sería:

mount /floppy
Si omitimos el tipo de sistema de ficheros y/o el dispositivo, Ubuntu toma la información correspondiente del
fichero /etc/fstab, el cual contiene información de los distintos sistemas de ficheros del equipo.

De todas formas el usuario siempre puede crear un directorio vacío con el nombre que el elija para montar las
unidades de disco que desee donde desee.

Cuando el usuario haya dejado de usar ese disco deberá "desmontarlo" mediante el comando umount antes de
sacar el disquete o el CD-ROM. Siguiendo con el ejemplo de la disquetera en Ubuntu, debería escribir:
46

umount /floppy
En principio, para utilizar el comando mount especificando todos los parámetros hace falta ser administrador o
root. Para que un usuario común pueda utilizar disquetes, CD-ROM, etc. hay que editar el fichero /etc/fstab. Por
ejemplo para que cualquier usuario pueda acceder a un disquete habrá que indicar la siguiente línea:

/dev/fd0 /mnt/floppy vfat user,noauto 0 0


También habrá que asegurarse de que el directorio /mnt/floppy sea accesible por todos los usuarios.
Una vez seguidos los pasos anteriores cualquier usuario podrá "montar" un disquete escribiendo el siguiente
comando:

mount /mnt/floppy
Al igual que antes, el usuario deberá ejecutar el comando "umount /mnt/floppy" antes de sacar el disquete.

Nota: Existen en la actualidad distribuciones (por ejemplo, SuSE Linux) que realizan este proceso de forma
automática, por lo que las unidades de disquete y CD-ROM quedan accesibles a todos los usuarios de una forma
sencilla, empleando los comandos:

mount /mnt/floppy
umount /mnt/floppy
Siempre que /mnt/floppy sea la ruta adecuada.
Para desmontar una partición empleamos el comando "umount":

umount /dev/sdxX
Donde "xX" es la partición que queremos desmontar. Por ej. "sda5" que es la partición "5" del disco duro "a".

Un ejemplo de crear un montaje automático de una partición en el arranque de Ubuntu:


http://www.ubuntu-guia.com/2011/08/montar-particion-inicio-ubuntu-1104.html

8. OTROS COMANDOS BÁSICOS

 du y df → (Espacio ocupado en el disco)


El comando du permite conocer el espacio ocupado en el disco por un determinado directorio y todos los
subdirectorios que cuelgan de él. Para usarlo basta simplemente colocarse en el directorio adecuado y ejecutar:

du
47

Este comando da el espacio de disco utilizado en bloques. Para obtener la información en bytes se debe emplear el
comando con la opción "-h":

du -h
El comando df por el contrario informa del espacio usado por las particiones del sistema que se encuentren
montadas:

df
Como el anterior, da el espacio en bloques. Para obtener la información en bytes se debe emplear el comando con
la opción "-h":

df -h

 lpr → (Impresión)
Se emplea para imprimir una serie de ficheros. Si se emplea sin argumentos imprime el texto que se introduzca a
continuación en la impresora por defecto. Por el contrario ...

lpr nombre_fichero
... imprime en la impresora por defecto el fichero indicado.

 ln → (Enlaces a ficheros)
Los enlaces nos van a permitir realizar copias de los ficheros (archivos o carpetas) con otro nombre, para poder
acceder a ellos desde lugares distintos a su ubicación original, con un ahorro de espacio muy importante con
respecto al comando cp.

Nuestro sistema identifica a los ficheros mediante un número denominado inodo, que les asigna en el momento de
su creación. Es decir, un directorio lo que contiene realmente es una lista de números de inodo con sus
correspondientes nombres de fichero. De esta forma, cada nombre de fichero es un enlace a un inodo particular;
por ello, cada inodo está asociado a un conjunto de información guardada en el disco, que puede tener asignados
distintos nombres, y a la que podremos acceder desde distintos lugares del árbol de directorios si así lo deseamos.

En este sentido, podremos crear dos tipos distintos de enlaces a ficheros: enlaces duros y enlaces simbólicos. El
comando ln nos servirá para crear ambos tipos de enlaces. La sintaxis es la siguiente:

ln [opciones] origen [dest]


ln [opciones] origen... directorio
48

ENLACES DUROS (HARD LINKS)

Si utilizamos el comando ln sin especificar ninguna opción, por defecto crearemos un enlace duro.

Obviamente, el fichero o ficheros para los que deseamos crear un enlace duro deberán existir. Así mismo, si el
último argumento es el nombre de un directorio que existe, crearemos un enlace duro a cada fichero, dentro del
directorio, y con el mismo nombre de fichero.

Si solamente especificamos el fichero que queremos enlazar, y no indicamos ningún nombre para el enlace, éste se
creará con el mismo nombre que el fichero a enlazar.

Los cambios que realicemos en el fichero enlazado o en el enlace, se reflejarán en el resto, ya que todos tendrán el
mismo número de inodo, y por lo tanto hacen referencia al mismo conjunto de información.

La ventaja de utilizar enlaces duros radica en que el comando "rm" únicamente borrará aquel fichero que le
indiquemos. La información solamente se borrará por completo cuando borremos todos los enlaces a un inodo.

La desventaja con respecto a los enlaces simbólicos es que sólo permite crear enlaces dentro del mismo sistema de
ficheros.
Los directorios . y .. son enlaces duros al directorio actual y a su directorio padre respectivamente.

Ejemplo:

1 – Creamos el fichero pruebaln con la orden cat.

cat > pruebaln


Pulsamos Enter, escribimos algo, por ejemplo "hola" y pulsamos Enter y Ctrl + D para guardarlo.
2 – Creamos un enlace a pruebaln que se llame penlace.

ln pruebaln penlace
3 – Veamos las características de estos ficheros con la orden ls. Utilizamos la opción "-i" para ver el número de
inodo. Ambos tendrán el mismo número de inodo con dos enlaces.

kaos1310@kaos:~$ ls -i pruebaln penlace


2753739 penlace 2753739 pruebaln

4 – Ahora modificamos pruebaln añadiendo otra línea ...


49

cat >> pruebaln


Pulsamos Enter, escribimos algo, por ejemplo "adios", pulsamos Enter y Ctrl + D para guardarlo.
... y comprobamos si también se modifica penlace:

kaos1310@kaos:~$ cat pruebaln


hola
adios
kaos1310@kaos:~$ cat penlace
hola
adios

5 – Ahora modificamos penlace añadiendo otra línea ...

cat >> penlace


Pulsamos Enter, escribimos algo, por ejemplo "otra vez hola", pulsamos Enter y Ctrl + D para guardarlo.
... y comprobamos si también se modifica pruebaln.

kaos1310@kaos:~$ cat penlace


hola
adios
otra vez hola
kaos1310@kaos:~$ cat pruebaln
hola
adios
otra vez hola

6 – Eliminamos pruebaln ...

rm pruebaln
... y comprobamos si penlace permanece y contiene la información correspondiente.

kaos1310@kaos:~$ cat penlace


hola
adios
otra vez hola

7 – Si utilizamos la orden ls -i, vemos que penlace sigue con el mismo número de inodo, que ahora solamente
tendrá un enlace:
50

kaos1310@kaos:~$ ls -i penlace
2753739 penlace

ENLACES SIMBÓLICOS

Si utilizamos la opción -s con el comando ln, es decir ln -s, crearemos un enlace simbólico. La sintaxis en este
caso es la misma que utilizamos para crear enlaces duros.

Podemos encontrar una similitud entre este tipo de enlaces y los accesos directos que estamos acostumbrados a
crear con los Win2.

En el caso de los enlaces simbólicos, cada fichero tendrá un número de inodo distinto. Sin embargo, al igual que
con los enlaces duros, todos los cambios que se realicen en uno de los ficheros se verán reflejados en el resto.

Si borramos el fichero enlazado, el enlace simbólico perderá toda la información, puesto que su inodo apunta a un
número de inodo que ya no existe. Sin embargo, podremos crear enlaces simbólicos a ficheros de otros sistemas
de archivos.

Ejemplo:

1 – Aún tenemos el fichero penlace. Creamos un enlace duro a penlace que se llame pruebaln.

ln penlace pruebaln
2 – Con la orden ls -li vemos que ambos tienen el mismo inodo, y que este inodo tiene dos enlaces.

kaos1310@kaos:~$ ls -li pruebaln penlace


2753739 -rw-r--r-- 2 kaos1310 kaos1310 25 dic 21 10:40 penlace
2753739 -rw-r--r-- 2 kaos1310 kaos1310 25 dic 21 10:40 pruebaln

3 – Creamos un enlace simbólico a penlace que se llame penlacesim.

ln -s penlace penlacesim
4 – Con la orden ls -li vemos que tienen distinto número de inodo. Además, el inodo de penlacesim sólo tiene
un enlace, y el inodo de penlace sigue teniendo dos. En la línea correspondiente a penlacesim vemos que aparece
el fichero al que apunta, y la letra "l" (ele) al inicio de los permisos.

kaos1310@kaos:~$ ls -li pruebaln penlace penlacesim


2753739 -rw-r--r-- 2 kaos1310 kaos1310 25 dic 21 10:40 penlace
51

2783398 lrwxrwxrwx 1 kaos1310 kaos1310 7 dic 21 11:00 penlacesim -> penlace


2753739 -rw-r--r-- 2 kaos1310 kaos1310 25 dic 21 10:40 pruebaln

5 – Cambiamos penlace y comprobamos si cambia penalcesim.

cat >> penlace


Pulsamos Enter, escribimos algo, por ejemplo "otra vez adios", pulsamos Enter y Ctrl + D para guardarlo.

kaos1310@kaos:~$ cat penlacesim


hola
adios
otra vez hola
otra vez adios

6 – Por último borramos penlace. Comprobamos que pruebaln permanece y que no podemos ver el contenido de
penlacesim, el sistema nos dirá que no existe. Para que desaparezca totalmente tenemos que borrarlo, además
borramos pruebaln para dejar todo como estaba sin las pruebas que hemos hecho.

rm penlace
kaos1310@kaos:~$ cat pruebaln
hola
adios
otra vez hola
otra vez adios
kaos1310@kaos:~$ cat penlacesim
cat: penlacesim: No existe el archivo o el directorio

rm penlacesim
rm pruebaln

9.5. Agrupación y compresión de ficheros: Comandos tar y gzip/gunzip

Tanto el comando tar como gzip son ampliamente empleados para la difusión de programas y ficheros en Linux.
tar Este comando agrupa varios ficheros en uno solo o “archivo”, mientras que el segundo
os comprime. En conjunto estos dos programas actúan de forma muy similar a programas como Winzip. Su sintaxis es:

tar [opciones][ficheros]
52

El modo en el que se escriben las opciones de tar es un poco especial. El guión inicial, por ejemplo, no es necesario.
Las opciones más comunes para tar son:
-c creación de archivadores nuevos.
-x extracción de archivos de un archivador existente.
-v muestra los archivos mientras se agregan o se extraen.
-t muestra el contenido de un archivo tar.
-f el siguiente argumento es el archivador a crear, del que queremos extraer archivos o mostrar un listado.
Para crear un nuevo archivo se emplea:

tar –cvf nombre_archivo.tar fichero1 fichero2 ...

donde fichero1, fichero2 etc. son los ficheros que se van a añadir al archivo tar. Si se desea extraer los ficheros se
emplea:

tar –xpvf nombre_archivo.tar fichero1 ...

Veamos algunos ejemplos:


# tar cvf escritorio.tar Desktop
empaqueta el contenido de Desktop en un archivador nuevo escritorio.tar

#tar xvf escritorio.tar Desktop/Floppy.desktop

extrae del archivo escritorio.tar el fichero indicado

#tar xvf escritorio.tar

extrae todo el contenido del archivo escritorio.tar

#tar tvf escritorio.tar

muestra un listado largo del contenido del archivo escritorio.tar


Hay que tener en cuenta, a la hora de extraer el contenido de un archivador (al fichero tar resultante se le suele llamar
así), si el archivador se creó conservando el nombre del directorio de origen. Es posible que se sobrescriba el contenido
de los ficheros originales.
Ejemplo: Nos situamos en el directorio raíz como root. Si archivamos los ficheros / etc/group y /etc/passwd:
53

#tar cvf backup.tar /etc/group /etc/passwd

estamos conservando los nombres del directorio al que pertenecen. Por lo tanto, para extraer estos ficheros nos
tendremos que situar en el directorio raíz:

#cd /
#tar xvf backup.tar /etc/group /etc/passwd

Sin embargo, si archivamos los ficheros group y passwd estando en /etc:

#tar cvf /backup.tar group passwd

no guardamos la ruta, por lo que para extraer los ficheros tendremos que situarnos en ella:

#cd /

#cd /etc
#tar xvf /backup.tar group passwd

gzip/gunzip Al contrario que tar que agrupa varios ficheros en uno, gzip comprime un único fichero con lo que la
información se mantiene pero se reduce el tamaño del mismo. El uso de gzip es muy sencillo:

gzip [opciones] fichero

con lo que se comprime fichero (que es borrado) y se crea un fichero con nombre fichero.gz.
La opción más común es:
-1 a –9 grado de compresión, mínimo y máximo respectivamente.
-d descomprimir el fichero .gz
Si lo que se desea es descomprimir un fichero se emplea entonces:
gzip –d fichero.gz
recuperando el fichero inicial.
Otra posibilidad sería utilizar el comando gunzip para la descompresión, de la siguiente forma:
gunzip fichero.gz
Como se ha comentado al principio es típico emplear tar y gzip de forma consecutiva, para obtener ficheros con
extensión tar.gz o tgz que contienen varios ficheros de forma comprimida (similar a un fichero zip). El comando tar
incluye la opción z para estos ficheros de forma que para extraer los ficheros que contiene:
54

tar –zxf fichero.tar.gz

9.6. Cambio de modo de los ficheros: comandos chmod, chown y chgrp

Cada usuario es dueño de su directorio personal y será dueño también de los archivos que incluya en él.
Un usuario en Linux podrá configurar permisos en sus archivos. Por ello, distinguiremos por un lado tres categorías de
usuarios, y por otro los tipos de permisos que cada uno de ellos puede tener sobre un archivo y/o directorio.

Categorías de usuarios

 Dueño del archivo (u).


 Grupo dueño (g), formado por todos los usuarios que son miembros de un grupo asociado al archivo.
 Resto de usuarios (o), todos los usuarios que no son ni el dueño ni miembros del grupo dueño.
Tipos de permisos

 Lectura (r de Read, leer): para un archivo permite leer su contenido, para un directorio permite que se
muestren los archivos que contiene.
 Escritura (w de Write, escribir): para un archivo permite que se modifique su contenido, para un directorio
permite agregar y quitar archivos.
 Ejecución (x de eXecute, ejecutar): para un archivo permite su ejecución, para un directorio permite que el
usuario lo recorra (que entre y pase por él) – si no tiene permiso de lectura, aunque pueda entrar no podrá ver el
contenido.
Cuando ejecutamos el comando ls –l nombre_archivo, podemos ver la configuración de permisos del archivo
nombre_archivo:

 El primer carácter indica el tipo de archivo: “d” si es directorio, “-“ si es un archivo regular, “l” si es un enlace
simbólico.
 Los siguientes nueve caracteres indican los permisos para el dueño, el grupo dueño y otros (rwxrwxrwx); si
aparece un guión, indica que el permiso correspondiente no está habilitado.
 El siguiente número indica el número de vínculos.
 Nombre del dueño y nombre del grupo dueño.
 Tamaño en bytes.
 Fecha de la última modificación.
55

 Nombre del archivo.


1. Comando chmod -> Para cambiar los permisos de un fichero se emplea el comando chmod, que tiene el formato
siguiente:

chmod [quien] oper permiso files

donde:

 quien -> Indica a quien afecta el permiso que se desea cambiar. Es una combinación cualquiera de las
letras "u" para el usuario, "g" para el grupo del usuario, "o" para los otros usuarios, y "a" para todos los anteriores.
Si no se da el quien, el sistema supone "a".
 oper -> Indica la operación que se desea hacer con el permiso. Para dar un permiso se pondrá un +, y para
quitarlo se pondrá un -. Si quiero dar exactamente unos permisos, pondremos =.
 permiso -> Indica el permiso que se quiere dar o quitar. Será una combinación cualquiera de las letras
anteriores : r,w,x,s.
 files -> Nombres de los ficheros cuyos modos de acceso se quieren cambiar.

Por ejemplo, para quitar el permiso de lectura a los usuarios de un fichero llamado fichero.txt el comando a utilizar es:
chmod a -r fichero.txt

Los permisos de lectura, escritura y ejecución tienen un significado diferente cuando se aplican a directorios y no a
ficheros normales. En el caso de los directorios el permiso r significa la posibilidad de ver el contenido del directorio con
el comando ls; el permiso w da la posibilidad de crear y borrar ficheros en ese directorio, y el permiso x autoriza a buscar
y utilizar un fichero concreto.

2. Comando chown -> Por otra parte, el comando chown se emplea para cambiar de propietario (“change owner”) a un
determinado conjunto de ficheros. Este comando sólo lo puede emplear el actual propietario de los mismos. Los
nombres de propietario que admite Linux son los nombres de usuario, que están almacenados en el fichero /etc/passwd.

La forma general de utilización del comando chown es:

chown newowner file1 file2 ...

3. Comando chgrp -> Análogamente, el grupo al que pertenece un fichero puede ser cambiado con el comando chgrp,
que tiene una forma general similar a la de chown,
56

chgrp newgroup file1 file2...

Los grupos de usuarios están almacenados en el fichero /etc/group.

10. GESTIÓN DE USUARIOS Y GRUPOS

10.1. Introducción

Ya sabemos que Linux es un sistema multiusuario y por lo tanto distingue diferentes usuarios. Cada usuario recibe una
cuenta que incluirá toda la información necesaria (nombre de usuario, directorio inicial, etc.).
Además de las cuentas dadas a personas, existen cuentas especiales definidas por el sistema que tienen privilegios
especiales. La más importante es la cuenta raíz (administrador), con el nombre de usuario root.
Normalmente, los usuarios normales están restringidos, de forma que los permisos de los ficheros en el sistema están
preparados para que no puedan borrar o modificar ficheros en directorios compartidos por todos los usuarios.
Estas restricciones desaparecen para root. El usuario root puede leer, modificar o borrar cualquier fichero en el sistema,
cambiar permisos y pertenencias, etc. Por lo tanto, podemos deducir que la gestión de los usuarios solamente puede
realizarla el usuario root.

10.2. Conceptos de gestión de usuarios

La información que el sistema mantiene acerca de cada usuario es la siguiente:


• Nombre de usuario: es un identificador único dado a cada usuario del sistema. Es la cadena de caracteres con la que el
usuario se identifica al entrar en el sistema. Se pueden utilizar letras, dígitos y los caracteres _ (guión bajo) y . (punto).
Ejemplo: simmd.
• User ID o UID: es un número único dado a cada usuario del sistema. Su número debe ser mayor que el del último
usuario creado en el sistema.
• Group ID o GID: número identifica el grupo al que pertenece el usuario. El número ha de ser el mismo para todos los
usuarios que formen el grupo. Cada usuario puede pertenecer a uno o más grupos definidos por el administrador del
sistema. Aunque la importancia real de las relaciones de grupo es la relativa a los permisos de ficheros.
• Clave: el sistema almacena la contraseña del usuario encriptada. El comando passwd nos permitirá asignar y cambiar
las claves de los usuarios.
• Nombre completo: puede ser el nombre real del usuario, su número de teléfono, su dirección, etc. Es decir, guarda
57

información real sobre el sistema.


• Directorio inicial: es el directorio al que accede el usuario al entrar en el sistema. Cada usuario debe tener su propio
directorio inicial, normalmente situado bajo /home. En principio será el único directorio en el que el usuario podrá
guardar su información personal, programas, etc. Ejemplo: /home/simmd.
• Intérprete de inicio: es el intérprete de comandos que arranca para el usuario cuando se conecta al sistema.
Ejemplos: /bin/bash, /bin/tcsh.
El fichero que contiene toda esta información relativa a los usuarios es el fichero / etc/passwd. Este fichero contiene una
línea por cada usuario del sistema, y su estructura es la siguiente:
nombre:clave encriptada:UID:GID:nombre completo:directorio de inicio:intérprete
Ejemplo:

simmd:x:501:501:simmd:/home/simmd:/bin/bash

En el caso de los grupos, la información sobre ellos se encuentra en el fichero /etc/group. Hay varios grupos definidos en
el sistema (root, bin, sys, mail, etc) que se utilizan para permisos de ficheros del sistema. Los usuarios no deben
pertenecer a ninguno de estos grupos.
El formato de cada línea del fichero /etc/group es el siguiente:
nombre del grupo:clave:GID:otros miembros
La clave del grupo no suele utilizarse.
En /etc/passwd cada usuario tiene un GID. Sin embargo, como los usuarios pueden pertenecer a otros grupos, podemos
añadir su nombre de usuario en el campo otros miembros (separados unos usuarios de otros por comas) de todos
aquellos grupos no definidos por el sistema a los que queremos que pertenezca.
Podemos conocer a qué grupos pertenece un usuario utilizando la orden groups. (El grupo con GID 100 suele ser el
grupo users).

10.3.Añadir nuevos usuarios y borrar usuarios

Podemos añadir usuarios al sistema de varias formas. La más engorrosa de todas es hacerlo a mano. Es decir, añadimos
al fichero /etc/passwd la línea correspondiente al usuario. Seguidamente le asignamos una clave con la orden passwd y
finalmente establecemos el dueño, grupo dueño y permisos para el directorio /home/usuario que deberemos crear.
Además, debemos actualizar /etc/shadow con pwconv.
Sin embargo, existen varias utilidades que nos permiten crear usuarios de una forma mucho más cómoda e intuitiva:
a) Servidor Xwindow. Entorno KDE
Iniciamos una sesión como root en el entorno gráfico. Seleccionamos:
Menú K Configuración Usuarios Crear usuarios (variará según la distribución)
Aparecerá un cuadro de diálogo con los usuarios normales que hay creados en el sistema y toda la información
correspondiente a cada uno de ellos. Desde aquí podremos añadir, borrar y modificar usuarios y grupos. Una vez
realizados los cambios oportunos debemos guardarlos, como si de un documento se tratase.
58

b) Entorno linuxconf:
Desde una sesión en modo consola podemos escribir la orden linuxconf para acceder a un entorno que nos permite
gestionar todo Linux, y por lo tanto la gestión de usuarios.
Entramos en Users, User accounts (cuentas de usuario), y podremos ver todas las cuentas de usuario que están definidas
en el sistema.
Para añadir una nueva cuenta, con el tabulador seleccionamos el botón Add.
Escribiremos el Login, Full name, group, Home directory, User ID, por ejemplo un cero en Must deep # days y siete en
Warm # days before expiration. Con el tabulador nos posicionamos en el botón Accept.
Para salir de linuxconf pulsamos el botón Dismiss y Quit.
c) Useradd/Adduser
Las órdenes useradd y adduser también nos permiten añadir nuevas cuentas de usuario desde el modo consola.
Podemos crear un usuario con las características por defecto:

#useradd usuario
#adduser usuario

Habremos creado un usuario sin contraseña. Para habilitar su cuenta comprobamos si en el campo clave de los
ficheros /etc/passwd y /etc/shadow existen signos de admiración cerrada ( ! ), en ese caso debemos borrarlos.
Posteriormente establecemos una contraseña si lo deseamos.
Si queremos crear un usuario a nuestra medida utilizaremos la siguiente sintaxis:

#useradd/adduser –r -p -u -g -c -d -s

Lo único que nos quedará por hacer será crear el directorio /home del usuario y establecer los permisos pertinentes.
Para borrar un usuario desde el modo consola:

#userdel [-r] usuario

Si utilizamos la opción –r también eliminaremos el directorio home del usuario o directorio inicial.
Una forma de deshabilitar una cuenta de usuario sin tener que borrarla es escribir ! en el campo clave del usuario en el
fichero /etc/shadow o /etc/passwd.

10.4. Otras órdenes para la gestión de usuarios y grupos

chfn: permite cambiar el nombre completo del usuario:


59

#chfn –f

groups: muestra todos los grupos a los que pertenece el usuario.


groupadd: permite añadir un nuevo grupo. Sintaxis:

#groupadd [-g GID] [-f]

-f obliga al sistema a informar si se producen errores (por ejemplo cuando el grupo que queremos crear ya existe).
Si no especificamos un GID, el sistema asigna el menor GID que corresponde a este
grupo.
groupdel: borra el grupo cuyo nombre indiquemos junto a la orden.
groupmod: permite modificar el GID y el nombre del grupo. Sintaxis:

#groupmod [-g ] [-n ]

id: muestra UID y GID del usuario y los grupos a los que pertenece el usuario conectado al sistema. Sintaxis:

#id

#id usuario

11. REDIRECCIONAMIENTO Y TUBERÍAS

11.1. Introducción

Muchos comandos de Unix toman su entrada de la ENTRADA ESTÁNDAR (stdin) y envían su salida a la SALIDA ESTÁNDAR
(stdout). El intérprete de comandos configura el sistema de forma que la stdin es el teclado y la stdout la pantalla.
Veamos al gunos ejemplos que ilustren esta cuestión:
Ejemplo 1: Si al comando cat no le pasamos argumentos, actuará mostrando en pantalla todo lo que hayamos tecleado
60

antes de un Intro. Para indicarle al sistema que queremos finalizar la ejecución de cat, pulsamos la combinación de teclas
CTRL+ D.
$cat
hola lo que recibe de la stdin
hola lo que devuelve a la stdout
CTRL+ D fin de cat
$
Ejemplo 2: El comando sort actúa de forma parecida. Si lo ejecutamos e introducimos un conjunto de líneas desde la
stdin, cuando pulsemos la combinación CTRL+ D devolverá a la stdout las mismas líneas pero de forma ordenada.
$sort
méndez
luque
rodríguez
CTRL+ D fin de entradas
luque
méndez
rodríguez
$

11.2. Redireccionamiento de la entrada y la salida

Al igual que en MS-DOS, podemos utilizar los caracteres > y <>fichero


b. Redirección no destructiva: crea un nuevo fichero o añade al final del contenido de uno que ya existe la información
que el comando recibe de la stdin.
$comando >>fichero
$sort <. Con cat no tiene mucho sentido, ya que el resultado que se obtiene es igual al que produce sin utilizar este
redireccionamiento. Con sort, mostrará en pantalla el contenido del fichero que le indiquemos de forma ordenada. (Ver
el ejemplo 4 anterior). 10.3. Tuberías (pipes)
Hemos visto que el comando sort, aunque simple, actúa como filtro, devolviendo a la salida lo que recibe desde la
entrada de forma ordenada.
Las tuberías pueden ser utilizadas para combinar comandos, de forma que la salida del primero es enviada a la entrada
del segundo y así sucesivamente.
De esta forma, podemos aplicar un filtro a la stdout del comando ls enviándola a la stdin de sort. Lo que conseguimos es
conectar una cadena de comandos en una tubería.
Para crear las tuberías utilizamos el carácter | (barra vertical, carácter de canalización).
Ejemplos:
$ls /usr/bin |more muestra el contenido de /usr/bin por pantallas.
$ls |sort -r muestra un listado del directorio actual ordenado alfabéticamente de mayor a menor.
$ls |sort -r |head -1 veremos el primer fichero de un listado del directorio actual
61

ordenado alfabéticamente de mayor a menor.

12. LA EDICIÓN DE TEXTO. EL EDITOR vi

12.1. Introducción

En Linux existen muchos editores de texto disponibles (vi, Emacs, joe), sin embargo será el visual editor (vi) el único que
encontraremos en cualquier sistema Unix.
vi fue el primer editor de pantalla completa que existió y, aunque no es fácil de usar, es una herramienta
extremadamente potente. La versión proporcionada con Mandrake es una versión mejorada de vi (vim – VI iMproved).
Para comenzar con vi y editar un fichero de texto emplearemos la sintaxis:

$vi

En la pantalla, de 24 líneas, aparecerá una columna de “~” que indican el final del fichero. En la parte inferior veremos el
nombre del nuevo fichero.
En un principio no podremos insertar texto, ya que vi arranca en el modo órdenes, uno de los tres posibles modos de
operación: modo órdenes, modo inserción, modo última línea.
• En modo órdenes o modo comandos no podremos insertar texto. Nos permitirá usar ciertas órdenes de edición de
ficheros o cambiar a otros modos.
• Al modo de inserción, que nos permitirá escribir y desplazarnos por el archivo, se accede desde el modo comando por
ejemplo con la orden i. Para volver al modo comando pulsamos la tecla Esc.
• El modo última línea, o modo ex, proporciona ciertas órdenes extendidas a vi, como por ejemplo salir de vi guardando
o sin guardar los cambios realizados en el archivo (:wq :q!). Para acceder a este modo, tecleamos : desde el modo
comando. Para salir de él ejecutamos una orden o borramos todo, incluidos los dos puntos.

12.2. Insertar texto

Si estamos en modo órdenes podemos pasar al modo de inserción de varias formas:


• Tecla i: para insertar texto desde la posición en la que se encuentra el cursor.
• Tecla a: para insertar texto comenzando detrás de la posición actual del cursor.
62

• Tecla A: para insertar texto comenzando al final de la línea actual.


• Tecla I (i mayúscula): para insertar texto comenzando al inicio de la línea actual.
• Tecla o: para insertar texto debajo de la línea actual.
• Tecla O: para insertar texto por encima de la línea actual.
En la parte inferior de la pantalla aparecerá la cadena –INSERT—indicándonos que estamos en el modo de inserción.
Podremos borrar y suprimir texto, además de movernos por el archivo con las flechas del cursor.

12.3. Borrar texto

Además de las teclas de retroceso y suprimir, podemos utilizar otras órdenes para
borrar desde el modo comando:
• Tecla x: borra el carácter en el que se encuentra situado el cursor.
• Tecla X: borra el carácter que está a la izquierda del cursor.
• Teclas dd: borra la línea en la que se encuentra el cursor.
• Tecla dw: borra la palabra en la que se encuentra el cursor.
• Tecla o: para insertar texto debajo de la línea actual.
• Tecla O: para insertar texto por encima de la línea actual.

12.4. Modificar texto

Desde el modo comando podemos reemplazar o sustituir parte del texto:


• Tecla r: permite sustituir el carácter en el que se encuentra el cursor.
• Tecla R: en la parte inferior de la pantalla aparecerá la cadena –REPLACE--, que nos indica que podemos reemplazar el
texto hasta que pulsemos la tecla Esc. Es decir, R es similar al modo de inserción, con la diferencia de que en lugar de
insertar texto lo sobrescribe.
• Teclas :r : inserta en el fichero que estamos editando el contenido del fichero que indicamos.
• Tecla ~: cambia de mayúsculas a minúsculas, o viceversa, el carácter en el que se encuentra el cursor (F10 cambia uno,
F11 cambia tres, F12 cambia cuatro).

12.5. Órdenes de desplazamiento


63

Además de las flechas del cursor, podemos movernos por el documento desde el modo comando utilizando una serie de
órdenes:
• Tecla h: un carácter a la izquierda.
• Tecla j: un carácter abajo.
• Tecla k: un carácter arriba.
• Tecla l (ele minúscula): un carácter a la derecha.
• Tecla e: al final de la palabra actual.
• Tecla b: al inicio de la palabra actual.
• Tecla w: al inicio de la palabra siguiente.
• Tecla 0 (cero): al inicio de la línea actual.
• Tecla $: al final de la línea actual.
• /: desplaza el cursor hacia delante hasta que encuentra el texto cadena.
• ?: desplaza el cursor hacia atrás hasta que encuentra el texto cadena.
• Tecla H: va al comienzo del archivo.
• Tecla G: va al final del archivo.
• CTRL+ f: avanza una pantalla.
• CTRL+ b: va una pantalla hacia atrás.
Cada uno de los comandos de movimiento puede estar precedido por un número, de forma que tenemos la posibilidad
de movernos a una palabra, línea o carácter arbitrarios.
Además, podemos asociar órdenes de desplazamiento con otras órdenes como por ejemplo borrar.
Ejemplos:
10G: va a la línea 10 del fichero.
dG: borrará todo, desde la posición del cursor hasta el final del fichero.
d$: borrará todo desde la posición del cursor hasta el final de la línea.
3e: moverá el cursor tres palabras hacia delante.
d3b: borrará tres palabras hacia atrás.
d/: borra todo desde la posición del cursor hasta que encuentra el texto cadena.
d0: borra todo hasta el inicio de la línea actual.

12.6. Cortar, copiar y pegar

Utilizaremos las órdenes y (Yank) y d (Delete) para copiar y cortar texto respectivamente.
Combinaremos estas dos órdenes con las de desplazamiento para copiar o cortar conjuntos de caracteres, líneas,
palabras.
Para pegar el texto que hemos copiado o cortado utilizaremos las órdenes p (para insertar el texto después del cursor) y
P (para insertar el texto antes del cursor).
Ejemplos:
y?: copiará todo desde la posición del cursor hacia atrás, hasta que encuentre el texto cadena.
d15l: cortará 15 caracteres desde la posición del cursor hacia la derecha.
64

y$: copiará todo desde la posición del cursor hasta el final del párrafo actual.

12.7. Guardar y salir

Para salir sin guardar los cambios escribimos :q!.


Para salir guardando los cambios escribimos :wq o ZZ o :x.
Para guardar los cambios sin salir escribimos :w.

12.8. Editar otros ficheros

Si estamos editando un fichero con vi, podemos editar otro escribiendo :e desde el modo comando. Para poder utilizar
esta orden tendremos que indicarle a vi si queremos guardar o no los cambios del primer fichero; es decir,
utilizaremos :w y luego :e, o bien :e! Directamente si no queremos guardar los cambios. Dejaremos de editar el primero
y pasaremos al segundo.

12.9. Ejecutar comandos del intérprete

Podemos insertar, en el fichero que estamos editando, la salida de un comando. Para ello utilizamos la orden :r! y a
continuación el comando que queremos ejecutar. Por ejemplo,

:r! ls –i

inserta un listado del directorio actual con números de inodo al final del párrafo actual.
También podemos ejecutar una orden desde vi y volver al editor una vez que ésta finalice. Utilizaremos la orden :!. Por
ejemplo,

:! ls –i

mostrará en pantalla el mismo listado que en el ejemplo anterior, aunque en este caso los resultados no se insertarán en
el fichero.
65

Incluso podemos dejar temporalmente vi e iniciar el intérprete de comandos para ejecutar otras órdenes. Para salir del
intérprete y regresar a vi utilizamos la orden exit. Para iniciar el intérprete usamos la orden :shell. Por ejemplo, es posible
que queramos consultar la página de manual de vi y guardarla en un fichero.

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

 Si te quedas sin el entorno gráfico, pulsa la combinación de teclas CTRL+ALT+F1 entras en consola, te logeas
y ejecuta:
sudo rm -R .gconf
Y vuelve al entorno gráfico con CTRL+ALT+F7.

 Para matar o forzar el cierre de una aplicación que se ha quedado colgada:


xkill
El cursor se convierte en una calavera o en una cruceta (+), según versión
- Para matar la aplicación haz click izquierdo sobre la ventana de la aplicación colgada.
- Para parar xkill sin cerrar ninguna aplicación, haz clic derecho en cualquier lugar.

 Para reconfigurar las X (gráfica):


sudo dpkg-reconfigure xserver-xorg
y reiniciamos el sistema con:

sudo reboot

 Para saber que tarjeta gráfica tengo instalada:


lspci | grep -i vga

 Para saber el rendimiento (frames por segundo) de la tarjeta gráfica:


glxgears

 Para saber qué modelo de tarjeta de sonido tengo:


lspci | grep -i audio
o

aplay -l

 Para saber que modelo de chip tiene la tarjeta de sonido:


cat /proc/asound/card0/codec#* | grep Codec

 Para ver la red (internet):


ifconfig
66

 Para saber todo el hardware:


lspci

 Para saber todo el hardware y los controladores que tenemos instalados:


lspci -vv
o

sudo lshw

 Para saber el listado de módulos cargados de sonido:


lsmod | grep snd

 Para saber los dispositivos que hay conectados por usb:


lsusb

 Para saber las particiones, sistemas de archivos y sistemas operativos de tu equipo:


sudo fdisk -l

 Para recargar los repositorios:


sudo apt-get update

 Para actualizar el sistema y sus aplicaciones:


sudo apt-get upgrade

 Para reconfigurar los repositorios para solucionar paquetes rotos:


sudo dpkg --configure -a

 Para detener las X (la gráfica) e iniciarla respectivamente con:


En Ubuntu 11.04 y anteriores:

sudo /etc/init.d/gdm stop


sudo /etc/init.d/gdm start
En Ubuntu 11.10:

sudo service lightdm stop


sudo service lightdm start
67

 Crear un archivo llamado "paquetes-instalados" en tu carpeta personal con todos los paquetes que tienes
instalados:
dpkg --get-selections | grep -v deinstall > paquetes-instalados

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

nformación del sistema


1. arch : mostrar la arquitectura de la máquina (1).
2. uname -m : mostrar la arquitectura de la máquina (2).
3. uname -r : mostrar la versión del kernel usado.
4. dmidecode -q : mostrar los componentes (hardware) del sistema.
5. hdparm -i /dev/hda : mostrar las características de un disco duro.
6. hdparm -tT /dev/sda : realizar prueba de lectura en un disco duro.
7. cat /proc/cpuinfo : mostrar información de la CPU.
8. cat /proc/interrupts : mostrar las interrupciones.
9. cat /proc/meminfo : verificar el uso de memoria.
10. cat /proc/swaps : mostrar ficheros swap.
11. cat /proc/version : mostrar la versión del kernel.
12. cat /proc/net/dev : mostrar adaptadores de red y estadísticas.
13. cat /proc/mounts : mostrar el sistema de ficheros montado.
14. lspci -tv : mostrar los dispositivos PCI.
15. lsusb -tv : mostrar los dispositivos USB.
16. date : muestra la fecha actual del sistema.
17. cal 2016 : mostrar el almanaque de 2016.
18. cal 07 2016 : mostrar el almanaque para el mes julio de 2016.
19. date 041217002011.00 : colocar (declarar, ajustar) fecha y hora.
20. clock -w : guardar los cambios de fecha en la BIOS.
Apagar, Reiniciar o Cerrar Sesión (System V o anterior)
1. shutdown -h now : apagar el sistema de inmediato(1).
2. init 0 : apagar el sistema (2).
3. telinit 0 : apagar el sistema (3).
4. halt : apagar el sistema (4).
5. shutdown -h horas:minutos & : apagado programado del sistema.
6. shutdown -c : cancelar un apagado programado del sistema.
7. shutdown -r now : reiniciar de froma ordenada.
8. reboot : reiniciar de forma ordenada.
68

9. logout : cerrar sesión.


Apagar, Reiniciar o Cerrar Sesión (Systemd actual)
1. systemctl powerof : apagar el sistema
2. powerof : apagar el sistema
3. systemctl halt : Detiene el sistema (no lo apaga)
4. halt : apagar el sistema.
5. systemctl reboot : Reinicia el sistema de forma ordenada.
6. reboot : reiniciar de forma ordenada.
7. echo b > /proc/sysrq-trigger : Reinicia el sistema sin validar ni guardar nada
(como un apagado físico al switch de encendido/apagado). Solo para
emergencias.
8. logout : cerrar sesión.
Archivos y Directorios
1. cd /home: entrar en el directorio ‘/home’.
2. cd ..: retroceder un nivel.
3. cd ../..: retroceder 2 niveles.
4. cd / : ir al directorio raíz /.
5. cd : Ir al directorio home del usuario actual ‘/home/$USERNAME/’
6. cd ~user1: ir al directorio user1.
7. cd – : ir (regresar) al directorio anterior.
8. pwd : mostrar el camino del directorio de trabajo.
9. ls : ver los ficheros de un directorio.
10. ls -F : ver los ficheros de un directorio.
11. ls -l : mostrar los detalles de ficheros y carpetas de un directorio.
12. ls -lh : Mostrar los detalles de archivos y directorios y el tamano en Kb, Mb, Gb
o Tb.
13. ls -a : Mostrar los ficheros ocultos.
14. ls *[0-9]* : mostrar los ficheros y carpetas que contienen números.
15. ls -ltr : Mostrar los archivos ordenados por fecha los mas recientes al final.
16. ls -lhSr : Mostrar los archivos por tamaño, los mas grandes al final (en Kb, Mb,
Gb o Tb)
17. ls -l –full-time : Mostrar detalles de archivos y directorios con la fecha completa
18. tree : mostrar los ficheros y carpetas en forma de árbol comenzando por la
raíz.(1)
69

19. lstree : mostrar los ficheros y carpetas en forma de árbol comenzando por la
raíz.(2)
20. mkdir dir1: crear una carpeta o directorio con nombre ‘dir1’.
21. mkdir dir1 dir2: crear dos carpetas o directorios simultáneamente (Crear dos
directorios a la vez).
22. mkdir -p /tmp/dir1/dir2: crear la ruta de directorios, cualquiera que no exista
se crea.
23. mkdir -m 777 dir1 : crear un directorio y asignar los permisos para ese
directorio
24. rm -f file1: borrar el fichero llamado ‘file1’.
25. rmdir dir1: borrar la carpeta llamada ‘dir1’.
26. rm -rf dir1: eliminar una carpeta llamada ‘dir1’ con su contenido de forma
recursiva. (Si lo borro recursivo estoy diciendo que es con su contenido).
27. rm -rf dir1 dir2: borrar dos carpetas (directorios) con su contenido de forma
recursiva.
28. yes | rm archivo* : Si solicita confirmación, responder yes a todos los archivos
y borrarlos sin demora.
29. mv dir1 new_dir: renombrar o mover un fichero o carpeta (directorio).
30. cp file1: copiar un fichero.
31. cp file1 file2: copiar dos ficheros al unísono.
32. cp dir /* .: copiar todos los ficheros de un directorio dentro del directorio de
trabajo actual.
33. cp -a /tmp/dir1 .: copiar un directorio dentro del directorio actual de trabajo.
34. cp -a dir1: copiar un directorio.
35. cp -a dir1 dir2: copiar dos directorio al unísono.
36. ln -s file1 lnk1: crear un enlace simbólico al fichero o directorio.
37. ln file1 lnk1: crear un enlace físico al fichero o directorio.
38. ln -s archivo1 link1 : crear un enlace simbólico de archivo1 en link1
39. touch -t 0712250000 file1: modificar el tiempo real (tiempo de creación) de un
fichero o directorio.
40. file file1: conocer el tipo mime de un fichero texto.
41. iconv -l: listas de cifrados conocidos.
42. iconv -f fromEncoding -t toEncoding inputFile > outputFile: crea una nueva
forma del fichero de entrada asumiendo que está codificado en fromEncoding y
convirtiéndolo a ToEncoding.
70

43. find . -maxdepth 1 -name *.jpg -print -exec convert “{}” -resize 80×60
“thumbs/{}” \;: agrupar ficheros redimensionados en el directorio actual y
enviarlos a directorios en vistas de miniaturas (requiere convertir desde
ImagemagicK).
44. scp usuario@172.16.20.01:/dir1/archivo1 ~/Descargas : Copiar el archivo
‘archivo1’ de un servidor remoto mediante ssh a una carpeta local.
45. scp -P 1022 dir1/archivo1 usuario@172.16.20.01:/dir1/ : copiar un archivo
local ubicado en ‘./dir1/archivo1’ y copiarlo a un servidor remoto usando ssh en el
puerto 1022.
Encontrar archivos
1. find / -name ‘file1’: buscar fichero y directorio a partir de la raíz del sistema.
2. find / -user ‘user1’: buscar ficheros y directorios pertenecientes al usuario
‘user1’.
3. find /home/user1 -name ‘*.bin’: buscar ficheros con extensión ‘. bin’ dentro
del directorio ‘/ home/user1’.
4. find /usr/bin -type f -atime +100: buscar ficheros binarios no usados en los
últimos 100 días.
5. find /usr/bin -type f -mtime -10: buscar ficheros creados o cambiados dentro
de los últimos 10 días.
6. find / -name ‘*.rpm’ -exec chmod 755 ‘{}’ \;: buscar ficheros con extensión
‘.rpm’ y modificar permisos.
7. find / -xdev -name ‘*.rpm’: Buscar ficheros con extensión ‘.rpm’ ignorando los
dispositivos removibles como cdrom, pen-drive, etc.…
8. locate ‘*.ps’: encuentra ficheros con extensión ‘.ps’ ejecutados primeramente
con el command ‘updatedb’.
9. whereis halt: mostrar la ubicación de un fichero binario, de ayuda o fuente. En
este caso pregunta dónde está el comando ‘halt’.
10. which halt: mostrar la senda completa (el camino completo) a un binario /
ejecutable.
Montando un sistema de ficheros
1. mount /dev/hda2 /mnt/hda2: montar un disco llamado hda2. Verifique
primero la existencia del directorio ‘/ mnt/hda2’; si no está, debe crearlo.
2. umount /dev/hda2: desmontar un disco llamado hda2. Salir primero desde el
punto ‘/ mnt/hda2.
71

3. fuser -km /mnt/hda2: forzar el desmontaje cuando el dispositivo está


ocupado.
4. umount -n /mnt/hda2: correr el desmontaje sin leer el fichero /etc/mtab. Útil
cuando el fichero es de solo lectura o el disco duro está lleno.
5. mount /dev/fd0 /mnt/floppy: montar un disco flexible (floppy).
6. mount /dev/cdrom /mnt/cdrom: montar un cdrom / dvdrom.
7. mount /dev/hdc /mnt/cdrecorder: montar un cd regrabable o un dvdrom.
8. mount /dev/hdb /mnt/cdrecorder: montar un cd regrabable / dvdrom (un
dvd).
9. mount -o loop file.iso /mnt/cdrom: montar un fichero o una imagen iso.
10. mount -t vfat /dev/hda5 /mnt/hda5: montar un sistema de ficheros FAT32.
11. mount /dev/sda1 /mnt/usbdisk: montar un usb pen-drive o una memoria (sin
especificar el tipo de sistema de ficheros).
12. mount -t nfs host.local:/directorio /ruta/local : Montar un directorio en un
servidor remoto por NFS en una ruta local.
13. mount -t cifs //host.local/directorio /ruta/local : Montar un directorio
compartido por un servidor windows remoto en una ruta local.
14. mount -t cifs //host.local/directorio /ruta/local -o
username=user,password=pass : Montar un directorio compartido por un
servidor windows remoto en una ruta local si requiere usuario y contraseña
Espacio de Disco
1. df -h: mostrar una lista de las particiones montadas.
2. ls -lSr |more: mostrar el tamaño de los ficheros y directorios ordenados por
tamaño.
3. du -sh dir1: Estimar el espacio usado por el directorio ‘dir1’.
4. du -sk * | sort -rn: mostrar el tamaño de los ficheros y directorios ordenados
por tamaño.
5. rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n: mostrar el espacio usado
por los paquetes rpm instalados organizados por tamaño (Fedora, Redhat y
otros).
6. dpkg-query -W -f=’${Installed-Size;10}t${Package}n’ | sort -k1,1n: mostrar el
espacio usado por los paquetes instalados, organizados por tamaño (Ubuntu,
Debian y otros).
Usuarios y Grupos
1. groupadd nombre_del_grupo: crear un nuevo grupo.
72

2. groupdel nombre_del_grupo: borrar un grupo.


3. groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo:
renombrar un grupo.
4. useradd -c “Nombre Apellido” -g admin -d /home/user1 -s /bin/bash user1:
Crear un nuevo usuario perteneciente al grupo “admin”.
5. useradd usuario1: crear un nuevo usuario.
6. userdel -r usuario1: borrar un usuario (‘-r’ elimina el directorio Home).
7. usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1:
cambiar los atributos del usuario.
8. passwd: cambiar contraseña.
9. passwd usuario1 : cambiar la contraseña de un usuario (solamente por root).
10. passwd -l usuario1 : Bloquea la cuenta y el inicio de sesión del usuario1.
11. passwd -u usuario1 : Re activa la cuenta y el inicio de sesión del usuario1.
12. chage -l usuario1 : Muestra los plazos y límites fijados al usuario1.
13. chage -E 2011-12-31 usuario1: colocar un plazo para la contraseña del usuario.
En este caso dice que la clave expira el 31 de diciembre de 2011.
14. pwck: chequear la sintaxis correcta el formato de fichero de ‘/etc/passwd’ y la
existencia de usuarios.
15. grpck: chequear la sintaxis correcta y el formato del fichero ‘/etc/group’ y la
existencia de grupos.
16. newgrp group_name: registra a un nuevo grupo para cambiar el grupo
predeterminado de los ficheros creados recientemente.
17. id usuario : Mostrar los ID de usuario y de grupo(s) del usuario indicado.
Permisos en Archivos (Usa “+” para colocar permisos y “-” para eliminar)
1. ls -lh: Mostrar permisos.
2. ls /tmp | pr -T5 -W$COLUMNS: dividir la terminal en 5 columnas.
3. chmod ugo+rwx directory1: colocar permisos de lectura ®, escritura (w) y
ejecución(x) al propietario (u), al grupo (g) y a otros (o) sobre el directorio
‘directory1’.
4. chmod go-rwx directory1: quitar permiso de lectura ®, escritura (w) y (x)
ejecución al grupo (g) y otros (o) sobre el directorio ‘directory1’.
5. chown user1 file1: cambiar el dueño de un fichero.
6. chown -R user1 directory1: cambiar el propietario de un directorio y de todos
los ficheros y directorios contenidos dentro.
7. chgrp group1 file1: cambiar grupo de ficheros.
73

8. chown user1:group1 file1: cambiar usuario y el grupo propietario de un


fichero.
9. find / -perm -u+s: visualizar todos los ficheros del sistema con SUID
configurado.
10. chmod u+s /bin/file1: colocar el bit SUID en un fichero binario. El usuario que
corriendo ese fichero adquiere los mismos privilegios como dueño.
11. chmod u-s /bin/file1: deshabilitar el bit SUID en un fichero binario.
12. chmod g+s /home/public: colocar un bit SGID en un directorio –similar al SUID
pero por directorio.
13. chmod g-s /home/public: deshabilitar un bit SGID en un directorio.
14. chmod o+t /home/public: colocar un bit STIKY en un directorio. Permite el
borrado de ficheros solamente a los dueños legítimos.
15. chmod o-t /home/public: deshabilitar un bit STIKY en un directorio.
Atributos especiales en ficheros (Usa “+” para colocar permisos y “-” para
eliminar)
1. chattr +a file1: permite escribir abriendo un fichero solamente modo append.
2. chattr +c file1: permite que un fichero sea comprimido / descomprimido
automáticamente.
3. chattr +d file1: asegura que el programa ignore borrar los ficheros durante la
copia de seguridad.
4. chattr +i file1: convierte el fichero en invariable, por lo que no puede ser
eliminado, alterado, renombrado, ni enlazado.
5. chattr +s file1: permite que un fichero sea borrado de forma segura.
6. chattr +S file1: asegura que un fichero sea modificado, los cambios son
escritos en modo synchronous como con sync.
7. chattr +u file1: te permite recuperar el contenido de un fichero aún si este está
cancelado.
8. lsattr: mostrar atributos especiales.
Archivos y Ficheros Comprimidos
1. bunzip2 archivo1.bz2: descomprime el archivo con nombre ‘archivo1.bz2’.
2. bzip2 archivo1: comprime un archivo con nombre ‘archivo1’.
3. gunzip archivo1.gz: descomprime el archivo con nombre ‘archivo1.gz’.
4. gzip archivo1: comprime un archivo llamado ‘archivo1’ y genera ‘archivo1.gz’.
5. gzip -9 archivo1: comprime con compresión al máxim0.
74

6. rar a file1.rar test_file: crear un fichero rar llamado ‘file1.rar’.


7. rar a file1.rar file1 file2 dir1: comprimir ‘file1’, ‘file2’ y ‘dir1’ simultáneamente.
8. rar x archivo1.rar: descomprime el archivo archivo1.rar.
9. unrar x archivo1.rar: descomprime el archivo archivo1.rar.
10. tar -cvf destino.tar archivo1: crear un tarball descomprimido llamado
destino.tar.
11. tar -cvf destino.tar archivo1 archivo2 dir1: crear un archivo destino.tar que
contiene los archivos y directorio ‘archivo1’, ‘archivo2’ y ‘dir1’.
12. tar -tf archivo.tar: mostrar los contenidos de archivo.tar.
13. tar -xvf archivo.tar: extraer un tarball.
14. tar -xvf archivo.tar -C /tmp: extraer un tarball en la ruta /tmp.
15. tar -cvfj destino.tar.bz2 dir1: crear un tarball comprimido con bzip2.
16. tar -xvfj archivo.tar.bz2: descomprimir un archivo tar comprimido con bzip2
17. tar -cvfz destino.tar.gz dir1: crear un tarball comprimido con gzip.
18. tar -xvfz archivo.tar.gz: descomprimir un archivo tar comprimido con gzip.
19. tar -xvfz archivo.tar.gz dir1/archivo1.txt : extraer solo el archivo1.txt que
está en el directorio dir1
20. tar -xvfz archivo.tar.gz dir1/dir2/dir3/ –strip-components=3 : Extraer los
archivos contenidos en dir3 y eliminar la ruta dir1/dir2/dir3/ (3 components) de
los archivos al extraerlos.
21. zip destino1.zip archivo1: crear un archivo comprimido en zip.
22. zip -r destino1.zip archivo1 archivo2 dir1: comprimir, en zip, varios archivos y
directorios de forma simultánea.
23. unzip archivo1.zip: descomprimir un archivo zip.
Paquetes RPM (Red Hat, Fedora y similares)
1. rpm -ivh package.rpm: instalar un paquete rpm.
2. rpm -ivh –nodeeps package.rpm: instalar un paquete rpm ignorando las
peticiones de dependencias.
3. rpm -U package.rpm: actualizar un paquete rpm sin cambiar la configuración
de los ficheros.
4. rpm -F package.rpm: actualizar un paquete rpm solamente si este está
instalado.
5. rpm -e package_name.rpm: eliminar un paquete rpm.
6. rpm -qa: mostrar todos los paquetes rpm instalados en el sistema.
7. rpm -qa | grep httpd: mostrar todos los paquetes rpm con el nombre “httpd”.
75

8. rpm -qi package_name: obtener información en un paquete específico


instalado.
9. rpm -qg “System Environment/Daemons”: mostar los paquetes rpm de un
grupo software.
10. rpm -ql package_name: mostrar lista de ficheros dados por un paquete rpm
instalado.
11. rpm -qc package_name: mostrar lista de configuración de ficheros dados por
un paquete rpm instalado.
12. rpm -q package_name –whatrequires: mostrar lista de dependencias
solicitada para un paquete rpm.
13. rpm -q package_name –whatprovides: mostar la capacidad dada por un
paquete rpm.
14. rpm -q package_name –scripts: mostrar los scripts comenzados durante la
instalación /eliminación.
15. rpm -q package_name –changelog: mostar el historial de revisions de un
paquete rpm.
16. rpm -qf /etc/httpd/conf/httpd.conf: verificar cuál paquete rpm pertenece a
un fichero dado.
17. rpm -qp package.rpm -l: mostrar lista de ficheros dados por un paquete rpm
que aún no ha sido instalado.
18. rpm –import /media/cdrom/RPM-GPG-KEY: importar la firma digital de la
llave pública.
19. rpm –checksig package.rpm: verificar la integridad de un paquete rpm.
20. rpm -qa gpg-pubkey: verificar la integridad de todos los paquetes rpm
instalados.
21. rpm -V package_name: chequear el tamaño del fichero, licencias, tipos, dueño,
grupo, chequeo de resumen de MD5 y última modificación.
22. rpm -Va: chequear todos los paquetes rpm instalados en el sistema. Usar con
cuidado.
23. rpm -Vp package.rpm: verificar un paquete rpm no instalado todavía.
24. rpm2cpio package.rpm | cpio –extract –make-directories *bin*: extraer
fichero ejecutable desde un paquete rpm.
25. rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm: instalar un paquete
construido desde una fuente rpm.
76

26. rpmbuild –rebuild package_name.src.rpm: construir un paquete rpm desde


una fuente rpm.
Actualizador de paquetes YUM (Red Hat, Fedora y similares)
1. yum install package_name: descargar e instalar un paquete rpm.
2. yum localinstall package_name.rpm: este instalará un RPM y tratará de
resolver todas las dependencies para ti, usando tus repositorios.
3. yum update package_name.rpm: actualizar todos los paquetes rpm
instalados en el sistema.
4. yum update package_name: modernizar / actualizar un paquete rpm.
5. yum remove package_name: eliminar un paquete rpm.
6. yum list: listar todos los paquetes instalados en el sistema.
7. yum search package_name: Encontrar un paquete en repositorio rpm.
8. yum clean packages: limpiar un caché rpm borrando los paquetes
descargados.
9. yum clean headers: eliminar todos los ficheros de encabezamiento que el
sistema usa para resolver la dependencia.
10. yum clean all: eliminar desde los paquetes caché y ficheros de encabezado.
Paquetes Deb (Debian, Ubuntu y derivados)
1. dpkg -i paquete.deb: instalar / actualizar un paquete deb.
2. dpkg -r nombre_del_paquete: eliminar un paquete deb del sistema.
3. dpkg -l: mostrar todos los paquetes deb instalados en el sistema.
4. dpkg -l | grep httpd: mostrar todos los paquetes deb con el nombre “httpd”
5. dpkg -s nombre_del_paquete : obtener información en un paquete específico
instalado en el sistema.
6. dpkg -L nombre_del_paquete : mostar lista de ficheros dados por un paquete
instalado en el sistema.
7. dpkg –contents paquete.deb : mostrar lista de ficheros dados por un paquete
no instalado todavía.
8. dpkg -S /bin/ping : verificar cuál paquete pertenece a un fichero dado.
Actualizador de paquetes APT (Debian, Ubuntu y derivados)
1. apt-get install package_name: instalar / actualizar un paquete deb.
2. apt-cdrom install package_name: instalar / actualizar un paquete deb desde
un cdrom.
3. apt-get update: actualizar la lista de paquetes.
77

4. apt-get upgrade: actualizar todos los paquetes instalados.


5. apt-get remove package_name: eliminar un paquete deb del sistema.
6. apt-get check: verificar la correcta resolución de las dependencias.
7. apt-get clean: limpiar cache desde los paquetes descargados.
8. apt-cache search searched-package: retorna lista de paquetes que
corresponde a la serie «paquetes buscados».
Ver el contenido de un fichero
1. cat file1: ver los contenidos de un fichero comenzando desde la primera hilera.
2. tac file1: ver los contenidos de un fichero comenzando desde la última línea.
3. more file1: ver el contenido a lo largo de un fichero.
4. less file1: parecido al commando ‘more’ pero permite salvar el movimiento en
el fichero así como el movimiento hacia atrás.
5. head -2 file1: ver las dos primeras líneas de un fichero.
6. tail -2 file1: ver las dos últimas líneas de un fichero.
7. tail -f /var/log/messages: ver en tiempo real qué ha sido añadido al fichero.
Manipulación de texto
1. cat file1 file2 .. | command <> file1_in.txt_or_file1_out.txt: sintaxis general
para la manipulación de texto utilizando PIPE, STDIN y STDOUT.
2. cat file1 | command( sed, grep, awk, grep, etc…) > result.txt: sintaxis
general para manipular un texto de un fichero y escribir el resultado en un fichero
nuevo.
3. cat file1 | command( sed, grep, awk, grep, etc…) » result.txt: sintaxis
general para manipular un texto de un fichero y añadir resultado en un fichero
existente.
4. grep Aug /var/log/messages: buscar palabras “Aug” en el fichero
‘/var/log/messages’.
5. grep ^Aug /var/log/messages: buscar palabras que comienzan con “Aug” en
fichero ‘/var/log/messages’
6. grep [0-9] /var/log/messages: seleccionar todas las líneas del fichero
‘/var/log/messages’ que contienen números.
7. grep Aug -R /var/log/*: buscar la cadena “Aug” en el directorio ‘/var/log’ y
debajo.
8. sed ‘s/stringa1/stringa2/g’ example.txt: reubicar “string1” con “string2” en
ejemplo.txt
78

9. sed ‘/^$/d’ example.txt: eliminar todas las líneas en blanco desde el


ejemplo.txt
10. sed ‘/ *#/d; /^$/d’ example.txt: eliminar comentarios y líneas en blanco de
ejemplo.txt
11. echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’: convertir minúsculas en mayúsculas.
12. sed -e ‘1d’ result.txt: elimina la primera línea del fichero ejemplo.txt
13. sed -n ‘/stringa1/p’: visualizar solamente las líneas que contienen la palabra
“string1”.
Establecer caracter y conversión de ficheros
1. dos2unix filedos.txt fileunix.txt: convertir un formato de fichero texto desde
MSDOS a UNIX.
2. unix2dos fileunix.txt filedos.txt: convertir un formato de fichero de texto
desde UNIX a MSDOS.
3. recode ..HTML < page.txt > page.html: convertir un fichero de texto en html.
4. recode -l | more: mostrar todas las conversiones de formato disponibles.
Análisis del sistema de ficheros
1. badblocks -v /dev/hda1: Chequear los bloques defectuosos en el disco hda1.
2. fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema Linux
en el disco hda1.
3. fsck.ext2 /dev/hda1: reparar / chequear la integridad del fichero del sistema
ext 2 en el disco hda1.
4. e2fsck /dev/hda1: reparar / chequear la integridad del fichero del sistema ext
2 en el disco hda1.
5. e2fsck -j /dev/hda1: reparar / chequear la integridad del fichero del sistema
ext 3 en el disco hda1.
6. fsck.ext3 /dev/hda1: reparar / chequear la integridad del fichero del sistema
ext 3 en el disco hda1.
7. fsck.vfat /dev/hda1: reparar / chequear la integridad del fichero sistema fat en
el disco hda1.
8. fsck.msdos /dev/hda1: reparar / chequear la integridad de un fichero del
sistema dos en el disco hda1.
9. dosfsck /dev/hda1: reparar / chequear la integridad de un fichero del sistema
dos en el disco hda1.
79

Formatear un sistema de ficheros


1. mkfs /dev/hda1: crear un sistema de archivos tipo Linux en la partición hda1.
2. mke2fs /dev/hda1: crear un sistema de archivos tipo Linux ext 2 en hda1.
3. mke2fs -j /dev/hda1: crear un sistema de archivos tipo Linux ext3 (journal) en
la partición hda1.
4. mkfs.ext4 /dev/sda1 : crear un sistema de archivos tipo Linux ext4 en la
partición sda1
5. mkfs.xfs /dev/sdb1 : crear un sistema de archivos tipo XFS en la partición sdb1
6. mkfs.btrfs -m single /dev/sdb : crear un sistema de archivos tipo Btrfs en el
disco sdb
7. mkfs.btrfs -m raid0 /dev/sdb /dev/sdc : crear un sistema de archivos no
redundante tipo Btrfs con RAID0 con los discos sdb y sdc
8. mkfs -t vfat 32 -F /dev/hda1: crear un fichero de sistema FAT32 en hda1.
9. fdformat -n /dev/fd0: formatear un disco flooply.
10. mkswap /dev/hda3: crear un fichero de sistema swap.
Trabajo con la SWAP
1. mkswap /dev/sda3: crear fichero de sistema swap.
2. swapon /dev/sda3: activando una nueva partición swap.
3. swapon /dev/sda2 /dev/sdb3: activar dos particiones swap.
Respaldos (Backup)
1. dump -0aj -f /tmp/home0.bak /home: hacer una salva completa del directorio
‘/home’.
2. dump -1aj -f /tmp/home0.bak /home: hacer una salva incremental del
directorio ‘/home’.
3. restore -if /tmp/home0.bak: restaurando una salva interactivamente.
4. rsync -rogpav –delete /home /tmp: sincronización entre directorios.
5. rsync -rogpav -e ssh –delete /home ip_address:/tmp: rsync a través del
túnelSSH.
6. rsync -az -e ssh –delete ip_addr:/home/public /home/local: sincronizar un
directorio local con un directorio remoto a través de ssh y de compresión.
7. rsync -az -e ssh –delete /home/local ip_addr:/home/public: sincronizar un
directorio remoto con un directorio local a través de ssh y de compresión.
8. dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr ‘dd of=hda.gz’: hacer una
salva de un disco duro en un host remoto a través de ssh.
80

9. dd if=/dev/sda of=/tmp/file1: salvar el contenido de un disco duro a un


fichero. (En este caso el disco duro es “sda” y el fichero “file1”).
10. tar -Puf backup.tar /home/user: hacer una salva incremental del directorio
‘/home/user’.
11. ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x
-p’: copiar el contenido de un directorio en un directorio remoto a través de ssh.
12. ( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’:
copiar un directorio local en un directorio remoto a través de ssh.
13. tar cf – . | (cd /tmp/backup ; tar xf – ): copia local conservando las licencias y
enlaces desde un directorio a otro.
14. find /home/user1 -name ‘*.txt’ | xargs cp -av –target-
directory=/home/backup/ –parents: encontrar y copiar todos los ficheros con
extensión ‘.txt’ de un directorio a otro.
15. find /var/log -name ‘*.log’ | tar cv –files-from=- | bzip2 > log.tar.bz2:
encontrar todos los ficheros con extensión ‘.log’ y hacer un archivo bzip.
16. dd if=/dev/hda of=/dev/fd0 bs=512 count=1: hacer una copia del MRB (Master
Boot Record) a un disco floppy.
17. dd if=/dev/fd0 of=/dev/hda bs=512 count=1: restaurar la copia del MBR
(Master Boot Record) salvada en un floppy.
CD-ROM
1. cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpiar o
borrar un cd regrabable.
2. mkisofs /dev/cdrom > cd.iso: crear una imagen iso de cdrom en disco.
3. mkisofs /dev/cdrom | gzip > cd_iso.gz: crear una imagen comprimida iso de
cdrom en disco.
4. mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso
data_cd: crear una imagen iso de un directorio.
5. cdrecord -v dev=/dev/cdrom cd.iso: quemar una imagen iso.
6. gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom –: quemar una imagen iso
comprimida.
7. mount -o loop cd.iso /mnt/iso: montar una imagen iso.
8. cd-paranoia -B: llevar canciones de un cd a ficheros wav.
9. cd-paranoia – ”-3”: llevar las 3 primeras canciones de un cd a ficheros wav.
10. cdrecord –scanbus: escanear bus para identificar el canal scsi.
81

11. dd if=/dev/hdc | md5sum: hacer funcionar un md5sum en un dispositivo,


como un CD.
Trabajo con la RED ( LAN y Wi-Fi)
1. ifconfig eth0: mostrar la configuración de una tarjeta de red Ethernet.
2. ifup eth0: activar una interface ‘eth0’.
3. ifdown eth0: deshabilitar una interface ‘eth0’.
4. ifconfig eth0 192.168.1.1 netmask 255.255.255.0: configurar una dirección IP.
5. ifconfig eth0 promisc: configurar ‘eth0’en modo común para obtener los
paquetes (sniffing).
6. dhclient eth0: activar la interfaz de red ‘eth0’ en modo dhcp.
7. route -n: mostrar mesa de recorrido.
8. route add -net 0/0 gw IP_Gateway: configurar entrada predeterminada.
9. route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: configurar
ruta estática para buscar la red ‘192.168.0.0/16’.
10. route del 0/0 gw IP_gateway: eliminar la ruta estática.
11. echo “1” > /proc/sys/net/ipv4/ip_forward: activar el recorrido ip.
12. hostname: mostrar el nombre del host del sistema.
13. host www.example.com: buscar el nombre del host para resolver el nombre a
una dirección ip(1).
14. nslookup www.example.com: buscar el nombre del host para resolver el
nombre a una direccióm ip y viceversa(2).
15. ip link show: mostar el estado de enlace de todas las interfaces.
16. mii-tool eth0: mostar el estado de enlace de ‘eth0’.
17. ethtool eth0: mostrar las estadísticas de tarjeta de red ‘eth0’.
18. netstat -tup: mostrar todas las conexiones de red activas y sus PID.
19. netstat -tupl: mostrar todos los servicios de escucha de red en el sistema y sus
PID.
20. tcpdump tcp port 80: mostrar todo el tráfico HTTP.
21. iwlist scan: mostrar las redes inalámbricas.
22. iwconfig eth1: mostrar la configuración de una tarjeta de red inalámbrica.
23. whois www.example.com : buscar en base de datos Whois.
24. ping ejemplo.local : Verificar una conexión de red, esperando una respuesta
(eco) el host responde, puede ser un dominio, subdomino o un dirección IP.
25. traceroute 192.168.1.1 : realiza una traza de las rutas recorridas para alcanzar
un host.
82

Redes de Microsoft Windows (SAMBA)


1. nbtscan ip_addr: resolución de nombre de red bios.
2. nmblookup -A ip_addr: resolución de nombre de red bios.
3. smbclient -L ip_addr/hostname: mostrar acciones remotas de un host en
windows.
Tablas IP (CORTAFUEGOS)
1. iptables -t filter -L: mostrar todas las cadenas de la tabla de filtro.
2. iptables -t nat -L: mostrar todas las cadenas de la tabla nat.
3. iptables -t filter -F: limpiar todas las reglas de la tabla de filtro.
4. iptables -t nat -F: limpiar todas las reglas de la tabla nat.
5. iptables -t filter -X: borrar cualquier cadena creada por el usuario.
6. iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permitir las
conexiones telnet para entar.
7. iptables -t filter -A OUTPUT -p tcp –dport http -j DROP: bloquear las
conexionesHTTP para salir.
8. iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitir las
conexiones POP a una cadena delantera.
9. iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando una
cadena de entrada.
10. iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: configurar un PAT
(Puerto de traducción de dirección) en eth0, ocultando los paquetes de salida
forzada.
11. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j
DNAT –to-destination 10.0.0.2:22: redireccionar los paquetes diriguidos de un
host a otro.
Monitoreando y Depurando
1. top: mostrar las tareas de linux usando la mayoría cpu.
2. ps -eafw: muestra las tareas Linux.
3. ps -e -o pid,args –forest: muestra las tareas Linux en un modo jerárquico.
4. pstree: mostrar un árbol sistema de procesos.
5. kill ID_Processo: llamar el cierre de un proceso y esperar a que termine
normalmente.
6. kill -9 ID_Processo: forzar el cierre de un proceso y terminarlo.
7. kill -1 ID_Processo: forzar un proceso para recargar la configuración.
83

8. killall httpd : Matar todos los procesos con nombre httpd o el nombre
indicado.
9. pkill -u user1 : Matar todos los procesos del usuario user1.
10. lsof -p $$: mostrar una lista de ficheros abiertos por procesos.
11. lsof /home/user1: muestra una lista de ficheros abiertos en un camino dado
del sistema.
12. strace -c ls >/dev/null: mostrar las llamadas del sistema hechas y recibidas por
un proceso.
13. strace -f -e open ls >/dev/null: mostrar las llamadas a la biblioteca.
14. watch -n1 ‘cat /proc/interrupts’: mostrar interrupciones en tiempo real.
15. last reboot: mostrar historial de reinicio.
16. lsmod: mostrar el kernel cargado.
17. free -m: muestra el estado de la RAM en megabytes.
18. smartctl -A /dev/sda: monitorear la fiabilidad de un disco duro a través de
SMART.
19. smartctl -i /dev/sda: chequear si SMART está activado en un disco duro.
20. tail /var/log/dmesg: mostrar eventos inherentes al proceso de carga del
kernel.
21. tail /var/log/messages: mostrar los eventos del sistema.
22. w : Mostrar todas las sesiones de terminales y listar los usuarios que las
invocaron
23. w | grep pts | sort -k1 : Mostrar las sesiones de terminales ordenadas por
usuario
Otros comandos útiles
1. apropos …keyword: mostrar una lista de comandos que pertenecen a las
palabras claves de un programa; son útiles cuando tú sabes qué hace tu
programa, pero de sconoces el nombre del comando.
2. man ping: mostrar las páginas del manual de un comando ping, usar la opción
‘-k’ para encontrar cualquier comando relacionado.
3. whatis keyword: muestra la descripción de lo que hace el programa.
4. mkbootdisk –device /dev/fd0 `uname -r`: crear un floppy boteable.
5. gpg -c file1: codificar un fichero con guardia de seguridad GNU.
6. gpg file1.gpg: decodificar un fichero con Guardia de seguridad GNU.
7. wget -r www.example.com: descargar un sitio web completo.
84

8. wget -c www.example.com/file.iso: descargar un fichero con la posibilidad de


parar la descargar y reanudar más tarde.
9. echo ‘wget -c www.example.com/files.iso‘ | at 09:00: Comenzar una
descarga a cualquier hora. En este caso empezaría a las 9 horas.
10. ldd /usr/bin/ssh: mostrar las bibliotecas compartidas requeridas por el
programa ssh.
11. alias hh=’history’: colocar un alias para un commando –hh= Historial.
12. chsh: cambiar el comando Shell.
13. chsh –list-shells: es un comando adecuado para saber si tienes que hacer
remoto en otra terminal.
14. who -a: mostrar quien está registrado, e imprimir hora del último sistema de
importación, procesos muertos, procesos de registro de sistema, procesos activos
producidos por init, funcionamiento actual y últimos cambios del reloj del
sistema.
Comandos para VMs Linux con VMware
1. mount /dev/sr0 /mnt : montrar el DVD virtual de VMware Tools para
Instalarlas en una VM linux
2. tar zxf /mnt/VMwareTools-XX.X.X-build.tar.gz -C /tmp : Extraer los archivo
de instalación de las VMware Tools en /tmp. Indicar la versión X.XX.XX y el build
que exista en el DVD virtual.
3. /tmp/vmware-tools-distrib/vmware-install.real.pl : Ejecutar instalador de las
VMware Tools en una VM Linux.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Clonezilla Live:

Es una distribución GNU/Linux que surge como alternativa abierta y libre de Norton Ghost. Con ella
podrás gestionar particiones, repararlas, además de incluir herramientas para SSH, Samba, NFS,
etc. También te permite clonar paticiones y volcarlas en imágenes para realizar copias de seguridad.

Rescatux:

Es una distribución basada en Debian 7 Wheezy y orientada a reparar problemas tanto en sistemas
Linux como en Windows. Entre los problemas que se pueden resolver se incluyen los generados por
85

el gestor de arranque GRUB o los MBR (Master Boot Record) de Windows. Además puede chequear
el sistema de ficheros de Linux.

SystemRescueCD:

Es otra distro con multitud de herramientas y un entorno ligero que permite restaurar y gestionar
ciertos problemas, incluidos los de las particiones NTFS de Windows.

Trinity Rescue Kit:

Es una distribución especialmente orientada a reparar sistemas operativos Microsoft Windows.


Cuando Windows tiene problemas y no arranca, esta distro te sacará de apuros. En ella se incluyen
distintos escáneres de virus como Clam AV, F-Prot, BitDefender, Vexira y Avast. Además tiene
herramientas para limpiar archivos temporales y de la papelera de reciclaje, recuperación de
contraseñas (Winpass) y otras funciones avanzadas.

Insert:

Con herramientas para realizar tests de hardware, detección de problemas, analizar sistemas,
gestionar redes, etc.

Gparted Live:

La famosa herramienta Gparted para gestionar particiones tiene una versión Live tanto para quemar
en un disco óptico como para memorias USB. Y eso es una gran oportunidad para disponer de una
potente suite para trabajar con el disco duro…

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
86

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
87

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
88

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX