apt updateSi solo queremos actualizar firefox, ejecutaremos el comando siguiente:
sudo apt install --only-upgrade firefox
apt updateSi solo queremos actualizar firefox, ejecutaremos el comando siguiente:
sudo apt install --only-upgrade firefox
sudo apt-get remove unrar-free
Deberemos añadir las siguientes líneas a /etc/apt/sources.list
deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
Actualizamos la lista de nuevos repositorios
sudo apt-get update
Creamos un directorio y accemos a él
mkdir ~/unrar-nonfree && cd ~/unrar-nonfree
Instalamos las dependencias para el paquete unrar-nonfree
sudo apt-get build-dep unrar-nonfree
Descarmos el código fuente y generamos el .deb
sudo apt-get source -b unrar-nonfree
Instalamos el paquete creado
sudo dpkg -i unrar*.deb
Ya podemos eliminar el directorio creado.
cd && rm -r ~/unrar-nonfree
su
yum install postgresql postgresql-server postgresql-contrib
systemctl start postgresql
systemctl enable postgresql
su postgresy creamos una base de datos de test
createdb test
psql test
CREATE ROLE testuser WITH SUPERUSER LOGIN PASSWORD 'test';
psql -h localhost -U testuser test
grub-mkconfig -o /boot/grub/grub.cfg
mkdir 3-14 cd 3-14
wget http://bcable.net/archive.php?surrogafier-1.9.1b.php
sudo ln -s /home/pi/surro /var/www/surro
sudo apt-get install apache2
http://192.168.1.4/
sudo apt-get install tightvncserver
tightvncserver
vncserver :0 -geometry 1920x1080 -depth 24
echo vncserver :0 -geometry 1920x1080 -depth 24 >> /home/pi/.bashrc
ssh pi@192.168.1.14
sudo cp /etc/network/interfaces /etc/network/interfaces.old sudo nano /etc/network/interfaces
auto lo iface lo inet loopback iface eth0 inet static address 192.168.1.4 netmask 255.255.255.0 gateway 192.168.1.1 allow-hotplug wlan0 iface wlan0 inet manual wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf iface default inet dhcp
sudo reboot
# parted GNU Parted 2.3 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted)En este caso, en el que sólo dispongo de un disco duro conectado, ya lo ha seleccionado de manera automática. En caso de que fuera otro, ejecutariamos
(parted) select /dev/sdbPodemos ver las particiones actuales con el comando print
(parted) print Model: ATA WDC WD3200BEVT-6 (scsi) Disk /dev/sda: 320GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 1049kB 177GB 177GB primary ext3 boot 2 314GB 320GB 6164MB extended 5 314GB 320GB 6164MB logical linux-swap(v1)En este caso nos interesará redimensionar la partición uno. Para eso deberemos indicarle el número de partición y el nuevo tamaño indicando el inicio y el final de la partición.
(parted) resize 1 1 170GBCon esto estaremos dejando 7GB libres.
apt-get install vnc4server
vncpasswd Password: Verify:
vncserver :1 New 'X' desktop is debian:1 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/debian:1.log
192.168.1.14:1
vncserver -kill :1
vncserver :1 -geometry 800x600 -depth 24
# mkdir primer_deb # cd primer_deb # mkdir -p usr/bin # nano usr/bin/primer_deb
# chmod +x usr/bin/primer_deb
# tar czvf datos.tar.gz usr/bin
# nano control
Package: primero Version: 0.1 Priority: optional Architecture: all Installed-Size: TODO Maintainer: user root Description: Creacion primer paquete debian!Empaquetamos y compromimos
# tar czvf control.tar.gz controlCreamos el último fichero
echo 2.0 > debian-binaryPor último nos quederá empaquetarlo todo con ar
# ar -r primer_deb.deb debian-binary control.tar.gz datos.tar.gzAhora ya disponemos del paquete y lo podemos instalar
# dpkg -i primer_deb.deb
dd if=/dev/sda | gzip> /home/vm/image.gz
gzip-dc /home/vm/image.gz | dd of=/dev/sda
dd if=/dev/sda of=/home/vm/image count=1 bs=512
dd if=/home/vm/image of=/dev/sda
Sintaxis: sed [-f fichero_ordenes] [-n] [archivo]
La herramienta sed es un editor de flujo(stream editor) utilizado para manipular archivos de texto. Sed copia los archivos especificados en la salida estándar después de procesarlos. Este procesamiento de los archivos de entrada se lleva a cabo línea por línea, acorde con las órdenes dadas a sed. Podemos destacar que sed no modifica los archivos de entrada. Las órdenes que procesa sed pueden ser aportadas explícitamente desde la línea de órdenes, o bien éstas pueden residir en un archivo. En este último caso, utilizamos la opción -f y a continuación el nombre del fichero de órdenes. La opción -n será empleada siempre que deseemos evitar la salida por pantalla de la línea que está procesando(por defecto sed visualiza las líneas que procesa, aunque no haga nada)
El aspecto general de las órdenes sed es el siguiente:
[dirección [, dirección ]] función [argumentos]
En éstas se indica la dirección (número de línea) o rango de direcciones a las cuales se debe aplicar la función indicada con sus posibles argumentos.
La mejor manera de entender el funcionamiento de sed es mediante ejemplos, veamos:
Creamos un fichero que contenga el siguiente texto
$ cat fichero
linea primera
linea segunda
linea tercera
linea cuarta
linea quinta
$sed 3p fichero linea primera linea segunda linea tercera linea tercera linea cuarta linea quinta
$ sed -n 3p fichero linea tercera
$ sed -n /primera$/,$p fichero linea primera
En el ejemplo anterior mostramos todas las líneas que acaban con la palabra primera. Mediante expresiones regulares también podemos especificar un rango de direcciones, por ejemplo:
$ sed -n '/segunda$/,$p' fichero
linea segunda
linea tercera
linea cuarta
linea quinta
$ sed 's/linea/fila/g' fichero fila primera fila segunda fila tercera fila cuarta fila quinta
$ sed 's/ //g' fichero lineaprimera lineasegunda lineatercera lineacuarta lineaquinta
$ sed 's/primera/<&>/g' fichero linea <primera> linea segunda linea tercera linea cuarta linea quinta
Para eliminar desde la línea 1 a la 3.
$ sed '1,3d' fichero
linea cuarta
linea quinta
Si quisiéramos eliminar las líneas que terminan con era:
$ sed '/era$/d' fichero
linea segunda
linea cuarta
linea quinta
Si creamos un fichero que contenga la siguiente línea
$cat orden
s/a/XXX/g
Al indicarle a sed que utilize este archivo de órdenes para procesar otros archivos, cualquier carácter a será sustituido por XXX. Por ejemplo:
$ sed -f ord fichero lineXXX primerXXX lineXXX segundXXX lineXXX tercerXXX lineXXX cuXXXrtXXX lineXXX quintXXX
Insertar antes de una línea:
$sed '/segunda$/i\ insertamos linea antes' fichero
linea primera linea
insertamos linea antes
linea segunda
linea tercera
linea cuarta
linea quinta
Insertar un línea después de la línea que coincida con el patron.
$ sed '/segunda$/a\ insertamos linea despues' fichero linea primera linea linea segunda insertamos linea despues linea tercera linea cuarta linea quinta
Con la opción c podemos sustituir las lineas que cumplan con el patron
$ sed '/segunda$/c\ sustituimos la linea' fichero linea primera linea sustituimos la linea linea tercera linea cuarta linea quinta
sudo dd bs=1M if=/dev/sdh of=backupRaspberry2-12-2012.img
$ iwlist wlan0 scan
$ wpa_passphrase "ESSID" CONTRASEÑA >> /etc/wpa_supplicant/wpa.conf
network={
ssid="ONOXXXX"
key_mgmt=WPA-PSK
psk="XXXXXXXXXXX"
}
$ wpa_supplicant -iwlan0 -dnl80211 -c /etc/wpa_supplicant/wpa.conf
root@raspberrypi:/home/pi# ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:xx:xx:xx:xx
inet addr:192.168.1.17 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1488 Metric:1
RX packets:3128 errors:0 dropped:0 overruns:0 frame:0
TX packets:2461 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:164652 (160.7 KiB) TX bytes:181438 (177.1 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:560 (560.0 B) TX bytes:560 (560.0 B)
wlan0 Link encap:Ethernet HWaddr 00:1a:xx:xx:xx:xx
inet addr:192.168.1.18 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:739 errors:0 dropped:0 overruns:0 frame:0
TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:102641 (100.2 KiB) TX bytes:2816 (2.7 KiB)
Por último podemos agregar las siguientes líneas al fichero /etc/network/interfaces.
echo "wpa-driver nl80211" >> /etc/network/interfaces echo "wpa-conf /etc/wpa_supplicant/wpa.conf" >> /etc/network/interfaces
$cat fichero Este es un archivo de texto QUE CONTIENE MAYUSCULAS Y minusculas.Veamos como funciona mediante ejemplos:
$ tr "[A-Z]" "[a-z]" < fich este es un archivo de texto que contiene mayusculas y minusculas.
tr "[a-z]" "[A-Z]" < fich ESTE ES UN ARCHIVO DE TEXTO QUE CONTIENE MAYUSCULAS Y MINUSCULAS.
tr "[A-Z]" x < fich xste es un archivo de texto xxx xxxxxxxx xxxxxxxxxx x minusculas.
$ tr -d "[A-Z]" < fich
ste es un archivo de texto
minusculas.
$cat fichero Aqquuuiii tttteeeennngggoo cccciiiiiieeeeerrrrttttooooossss ccccaaarrraaacccctttteeerrreeeesss rrrreeeepppeeettttiiidddddooooossssss $ tr -s "[a-z]" < fich2 Aqui tengo ciertos caracteres repetidos
$ tr -c "[a-z]" " " < fich ste es un archivo de texto minusculas
$ echo "umask 022" >> ~/.bashrcLos cambios tendrán efecto después de reiniciar sesión. El umask por defecto 0002 se utiliza para los usuarios normales. Con esta máscara, los permisos predeterminados de directorio son 775, y los permisos de archivo son 664. El umask por defecto para el usuario root es 0022, y como resultado, los permisos predeterminados de directorio son 755, y los permisos de archivo son 644. Para los directorios, los permisos de base es 0777 (rwxrwxrwx) y para los archivos son 0666 (rw-rw-rw). Para calcular los permisos de directorio para un valor umask de 022 (usuario root) haremos lo siguiente:
$ umask 077 $ touch archivo.txt $ mkdir directorio $ ls -ld archivo.txt directorioSalida:
drwx------ 2 vill vill 4096 2012-10-27 02:21 directorio -rw------- 1 vill vill 0 2012-10-27 02:21 archivo.txt
#!/bin/bash
cadena="TRWAGMYFPDXBNJZSQVHLCKET";
longitud=${#1}
if [ "$longitud" -eq 9 ]
then
posicion=`expr ${1:0:8} % 23`
letra=${cadena:posicion:1}
letradaentrada=`echo ${1:8} | tr [a-z] [A-Z]`
if [ $letra == $letradaentrada ]
then
echo "número DNI correcto"
exit 0
else
echo "letra inválida"
exit 1
fi
else
echo "Longitud errónea"
exit 1
fi
exit 0
Ejecutamos d la siguiente manera.
# bash dni.sh 41033454s letra inválida
$ ls -i /etc/passwd 32820 /etc/passwdTambién podemos utilizar el comando stat para averiguar el número de inodo y sus atributos:
$ stat /etc/passwd Archivo: `/ etc / passwd ' Tamaño: 1988 Blocks: 8 IO Block: 4096 archivo normal Dispositivo: Inode 341h/833d: 32820 Enlaces: 1 Acceso: (0644/-rw-r--r--) Uid: (0 / root) gid: (0 / root) Acceso: 2005-11-10 01:26:01.000000000 0530 Modificar: 2005-10-27 13:26:56.000000000 0530 Cambio: 2005-10-27 13:26:56.000000000 0530Inodo aplicación Muchos de comandos a menudo dan números de inodo para designar un archivo. Vamos a ver.
$ ls -li /etc/passwd 12886034 -rw-r--r-- 1 root root 1903 sep 28 13:01 /etc/passwdSi escribimos los siguientes comandos:
$ cd / tmpAhora si ententamos eliminar el archivo "la *, veremos que no es posible. No podremos eliminar los archivos si los hemos creado con caracteres de control o un carácter especial como?, * ^ Etc. En estos casos tendremos usar el número de inodo para eliminar archivos.
$ touch \ "la *
$ ls -l
# ls -iEnlaces duros y simbólicos Para crear un enlace duro utilizamos el comando ln de la siguiente forma:# ls -i * 2781528 index.php 2781559 ??! # find . -inum 2781559 -exec rm -i {} \;
# ln /root/file1 root/file2 / # ls -lCon los comandos anteriores creamos un enlace al file1. Con esto creamos un nuevo apuntador hacia el inodo donde se almacenaba la información de file1 Los enlaces simbólicos se refieren a:
$ ln -s /home/user/file1.txt /home/user/file2.txt $ ls -aliCon el comando anterior crearemos un enlace simbólico a file1.txt. Tarea: creación de enlaces simbólicos y eliminación Vamos a crear un directorio llamado foo, escribimos:
$ mkdir foo $ cd fooCopiamos el archivo /etc/resolv.conf:
$ cp /etc/resolv.conf .Observar el número de inodo y escribir:
$ ls -ali 152 Total 1048600 drwxr-xr-x 2 vivek vivek 09/12/2008 20:19 4096. 1015809 drwxrwxrwt root root 220 143 360 12.09.2008 20:19 .. 1048601-rwxr-xr-x 1 vivek vivek 09/12/2008 20:19 129 resolv.conf Ahora crear enlace simbólico al resolv.conf, introduzca: $ ln -s alink.conf resolv.conf $ ls -ali 152 Total 1048600 drwxr-xr-x 2 vivek vivek 09/12/2008 20:24 4096. 1015809 drwxrwxrwt root root 220 143 360 12.09.2008 20:19 .. 1048602 lrwxrwxrwx 1 vivek vivek 09/12/2008 20:24 11 alink.conf -> resolv.conf 1048601-rwxr-xr-x 1 vivek vivek 09/12/2008 20:19 129 resolv.confEl contador de referencias del directorio no ha cambiado (total 152). Nuestra simbólico enlace se almacena en un inodo diferente que el archivo de texto (1048602). La información almacenada en resolv.conf es accesible a través del archivo de alink.conf. Si borramos el archivo de texto resolv.conf, alink.conf se convierte en un vínculo roto y nuestros datos se pierden:
$ rm resolv.conf $ ls -aliSi alink.conf era un vínculo físico, los datos todavía serían accesibles a través de alink.conf. Además, si se elimina el enlace simbólico en sí, los datos todavía estarían allí.