Ubuntu¶
Enlaces¶
Ficheros interesantes¶
Fichero | Utilidad |
---|---|
/usr/lib/os-release |
Información sobre la distribución |
Aplicaciones interesantes¶
- ReText: Editor Markdown.
- Franz: Configuración de icono en GNome.
- App Grid: Repositorio de aplicaciones.
- OpenWeather Shell Extension: Información del tiempo meteorológico en la barra de menú.
Paquetes a instalar en Xubuntu¶
font-viewer
: Visor/instalador de tipos de letra.python3-pip
: PIP instalado desde los repositorios (facilita la instalación de virtualenvwrapper).python-is-python3
: Abre Python3 ejecutandopython
.android-file-transfer
: Para transferir ficheros por MTP (hacia Android o las Oculus Quest).qpdfview
: Visor PDF.thunar-archive-plugin
: Crear archivadores y descomprimir desde Thunar.gvfs gvfs-common gvfs-backends gvfs-fuse thunar-volman
: Soporte MTP para Android.
Servicios interesantes¶
Problema con aplicaciones root en Wayland¶
Hay que ejecutar el comando:
1 |
|
Se puede automatizar en el arranque añadiendo el comando en las Aplicaciones al incio
(fuente).
Configuración de opción predeterminada en GRUB¶
- Editar fichero
/etc/default/grub
y modificar el parámetroGRUB_DEFAULT
dando el valorsaved
en lugar del valor numérico que encontraremos. - Ejecutar
sudo update-grub
. - Ejecutar
sudo grub-set-default N
siendo N la posición de la entrada del menú de GRUB que queremos que actúe como predeterminada (contando desde 0).
Problemas con GRUB¶
Solución problemas wifi en 11.04 y 11.10¶
Help with Ubuntu: Fix slow WiFi in Ubuntu 11.04
Solución problema Wireshark en trusty y utopic¶
liboverlay-scrollbar hangs Wireshark
Actualización de Intrepid a Jaunty¶
Tras actualizar de Intrepid a Jaunty se observa un empobrecimiento del rendimiento gráfico en equipos con gráficas integradas Intel 945. En las siguientes páginas explican como hacer downgrade al controlador Intel que había en Intrepid:
- https://wiki.ubuntu.com/ReinhardTartler/X/RevertingIntelDriverTo2.4
- http://www.astaroth.glufca.com/?p=346
Otro truco que también funcionó sin necesidad de hacer lo anterior fue reconfigurar xorg a la configuración por defecto y luego en la composición de múltiples monitores, situar uno debajo del otro en lugar de uno al lado del otro.
Actualización de raring a saucy¶
Apache cambia de versión de 2.2 a 2.4. Aquí encontré solución a los problemas que eso supuso.
Recursos gráficos¶
/usr/share/icons
/usr/share/app-install/icons
/usr/share/pixmaps
/usr/share/icons/gnome
/usr/share/icons/hicolor
/usr/share/icons/Human
/usr/share/icons/Humanity <---
/usr/share/icons/oxygen
/usr/share/icons/default.kde4 <---
Convertir un video a formato 3GP (H263+AAC)¶
- Instalar un repositorio no oficial que contiene los codecs:
$ sudo -E wget --output-document=/etc/apt/sources.list.d/medibuntu.list http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update
- Instalar el codificador y los codecs:
$ sudo aptitude install ffmpeg libavcodec-extra-53
- Codificar el video:
$ ffmpeg -i EspacioMudejar.wmv -s qcif -vcodec h263 -acodec libfaac -ac 1 -ar 8000 -r 25 -ab 32 -strict experimental -y EspacioMudejar.3gp
Las opciones más importantes son:
- ar: Frecuencia de audio
- r: framerate
- ab: Audio bitrate en kbps
Convertir APE a WAV¶
Los ficheros .ape con que se distribuyen algunos CD's se puede convertir a WAV para poder quemarlo a un CD (con un fichero .cue que normalmente acompaña al .ape se puede quemar directamente con el Burn del Mac por ejemplo) instalando el paquete ffmpeg
y ejecutando el siguiente comando:
$ ffmpeg -i fichero.ape fichero.wav
Hay que acordarse de sustituir dentro del fichero .cue la referencia al fichero original .ape por el nuevo .wav.
Convertir FLAC a WAV¶
Los ficheros .flac con que se distribuyen algunos CD's se puede convertir a WAV para poder quemarlo a un CD (con un fichero .cue que normalmente acompaña al .flac se puede quemar directamente con el Burn del Mac por ejemplo) instalando el paquete flac
y ejecutando el siguiente comando:
$ flac -d fichero.flac
Hay que acordarse de sustituir dentro del fichero .cue la referencia al fichero original .flac por el nuevo .wav.
Restaurar panel Gnome¶
$ gconftool --recursive-unset /apps/panel
$ rm -rf ~/.gconf/apps/panel
$ pkill gnome-panel
Concatenar PDF's¶
Con pdftk
programa en linea de comando para procesar ficheros PDF. Está para casi todas las plataformas.
$ sudo aptitude search pdftk
i pdftk - A useful tool for manipulating PDF documents
$ sudo aptitude install pdftk
Concatenar todos los archivos facilmente que tengas en una carpeta:
$ pdftk carpeta_con_todos_ficheros/*.pdf cat output fichero_concatenado.pdf
Tiene muchas mas funcionalidades consultables con –help, pero si quieres, puedes echarle un vistazo a un articulo de Linux-Magazine “PDF a tope”.
APOD¶
Programa para descargar y ajustar como fondo de escritorio la imagen astronómica del día de la web APOD. Es necesario que se encuentre Python instalado en el sistema.
Instalar el siguiente script en algún lugar:
#!/usr/bin/python
#APOD in the GNOME desktop
#Author: Rodrigo Rivas Costa.
#Mail: rodrigorivascosta@gmail.com
#Web: http://rodrigo.dualnot.com/
# This program is in public domain, so do whatever you wish with it,
# although it'd be nice if you keep the above notice.
# Just don't blame me if it blows your computer.
import urllib
import gconf
import os
dir = os.getenv('HOME') + '/.apod'
try:
os.mkdir(dir)
except:
pass
try:
execfile(dir + '/options.py')
except:
pass
def DoAPOD():
u = urllib.urlopen('http://apod.nasa.gov/apod/')
KEY1 = 'href="'
KEY2 = '"'
image = None
for line in u.readlines():
pos1 = line.find(KEY1)
if pos1 == -1:
continue
pos1 += len(KEY1)
pos2 = line.find(KEY2, pos1)
if pos2 == -1:
continue
href = line[pos1:pos2]
hrefl = href.lower()
if hrefl.endswith('.jpg') or hrefl.endswith('.png'):
image = href
break
u.close()
if not image:
return
image_base = os.path.split(image)[-1]
image_base_ext = os.path.splitext(image_base)
image_base = 'apod' + image_base_ext[-1]
if not (image.startswith('http:') or image.startswith('ftp:')):
if not image.startswith('/'):
image = '/apod.nasa.gov/apod/' + image
image = 'http:/' + image
img = urllib.urlopen(image)
d = img.read()
img.close()
try:
os.unlink('apod.jpg')
except:
pass
try:
os.unlink('apod.png')
except:
pass
name = dir + '/' + image_base
f = file(name, 'wb')
f.write(d)
f.close()
cli = gconf.client_get_default()
cli.set_string('/desktop/gnome/background/picture_filename', name)
cli.set_string('/desktop/gnome/background/picture_options', 'zoom')
if __name__ == '__main__':
DoAPOD()
Por último programar una tarea en cron para ejecutar el script con el usuario al que queramos que se aplique el fondo de escritorio. Por ejemplo introduciendo la siguiente línea en /etc/crontab
para que se ejecute a las 10 de la mañana:
00 10 * * * edumoreno /home/edumoreno/.apod/apod
En el ejemplo se ha puesto como ejemplo el usuario edumoreno
así como su home.
Instalar Oracle Java¶
Movemos la carpeta creada después de la instalación (llamada jre1.7.0_05
en este ejemplo) a una ruta más apropiada:
$ sudo mv jre1.7.0_05 /usr/lib/jvm
Establecemos el nuevo Java como una de las "alternativas de java":
$ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.7.0_05/bin/java" 1
Ahora establecemos la "nueva alternativa" como la real de Java. Este paso hace que la versión de Oracle sea la usada por defecto:
$ sudo update-alternatives --set java /usr/lib/jvm/jre1.7.0_05/bin/java
Para comprobar si tenemos la versión 1.7.0, tecleamos en la terminal:
$ java -version
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)
Para ver cómo ha quedado el estado de las alternativas:
$ update-alternatives --config java
Para ver físicamente cómo han quedado las alternativas relativas a java
:
$ ls -l /etc/alternatives/java*
Si nos interesa borrar alguna de las alternativas (por ejemplo una para java
):
$ sudo update-alternatives --remove java /usr/lib/jvm/jdk1.8.0_20/bin/java
Hay un PPA para poder instalar el JDK más fácilmente. Se pueden ver las instrucciones aquí. Desafortunadamente dejó de funcionar a mediados de abril de 2019 por cambios en la política de distribución de Java por parte de Oracle. A partir de ahora instalar manualmente siguiendo estas instrucciones o instalar el JDK que se distribuye en forma de .deb.
Reparación del sistema de archivos cuando se pone en modo "sólo lectura"¶
$ sudo fsck
Descarga de un vídeo incrustado en un reproductor Flash¶
Hacer captura Wireshark. Filtrar los paquetes RTMP con el filtro: "rtmpt". Localizar en los paquetes RTMP los comandos Handshake o Invoke la base de la url, lo que está en una propiedad llamada "tcUrl". Por ejemplo en un vídeo de Antena3 de F1 esta propiedad valía:
rtmp://antena3tvfs.fplive.net/antena3mediateca
Luego localizar el fichero en concreto. Suele estar en otro paquete y está relacionado con el comando "play". En el caso del ejemplo anterior salía:
mp4:mp_series1/f1cms/gestorf1/videos/517/VIDEOS_20130512_1315517.mp4
Unir las dos piezas para construir la URL completa:
rtmp://antena3tvfs.fplive.net/antena3mediateca/mp_series1/f1cms/gestorf1/videos/517/VIDEOS_20130512_1315517.mp4
Descargar el stream con el comando "rtmpdump":
$ rtmpdump -r "rtmp://antena3tvfs.fplive.net/antena3mediateca/mp_series1/f1cms/gestorf1/videos/517/VIDEOS_20130512_1315517.mp4" -o archivo.mp4
En ocasiones se produce el error siguiente:
WARNING: Received FLV packet before play()! Ignoring.
En estos casos utilizar el siguiente comando que separa las dos porciones de la URL:
$ rtmpdump -r "rtmp://alacarta.aragontelevision.es/vod" -y "mp4:/_archivos/videos/web/15288/15288.mp4" -o archivo.flv
Para vídeos de emisiones en vivo hay que añadir la opción -v
. Por ejemplo, en una emisión de AragónTV, en la captura Wireshark se localizaron los siguientes elementos:
- Paquete Handshake S2 => tcUrl = rtmp://aragontvlivefs.fplive.net/aragontvlive-live
- Paquete play => valor = stream_normal_abt
Así pues la URL final será: rtmp://aragontvlivefs.fplive.net/aragontvlive-live/stream_normal_abt
y el comando de descarga:
$ rtmpdump -v -r "rtmp://aragontvlivefs.fplive.net/aragontvlive-live/stream_normal_abt" -o archivo.mp4
Para descargar vídeos desde YouTube, last.fm, Google video, Dailymotion y Vimeo se puede utilizar el comando clive
. Aquí comentan cómo se usa.
Descarga vídeo de A3Player¶
Enlaces¶
Las carreras de Formula1 últimamente son emitidas en el formato HLS. Para descargar una carrera empezar haciendo una captura con Wireshark desde el momento en que se le da al Play hasta que se empieza a ver parte del vídeo (esperando que terminen los anuncios). Luego filtrar en Wireshark con la siguiente expresión:
http.request.uri contains "playlist.m3u8"
Localizar la URL de descarga del fichero playlist.m3u8. Por ejemplo podría ser:
http://geodeswowa3player.antena3.com/vcg/_definst_/mp4:assets3/2013/10/26/E6941C5D-2A9F-414B-B3FF-01FAC33073C4/sigra.mp4/playlist.m3u8?pulse=assets3%2F2013%2F10%2F26%2FE6941C5D-2A9F-414B-B3FF-01FAC33073C4%2F%7C1382835190%7Cb23df1201096fc1cc490427e05307f70
Compresión batch de vídeos¶
Instalar el cliente de linea de comando de Handbrake.
Dependiendo de la extensión habrá que cambiar el ls
inicial. Los vídeos de salida son MP4, por lo que si la extensión inicial no es esa, habrá que cambiarla en los ficheros finales.
$ mkdir comp
$ ls *.mp4 | awk '{print "HandBrakeCLI -Z Normal -i "$0" -o comp/"$0}' | sh
Resampleado de video con HandBrake¶
(Fuente)
On the Video tab use Avg Bitrate and use 2500 to 3000 depending if a big action movie(3000) or if less fast action/movement in the movie(2500). Make sure to click on 2-Pass Encoding and Turbo first pass.
Split de vídeos¶
(Fuente)
Con el siguiente comando:
$ ffmpeg -i archivo_original.mp4 -codec copy -ss 00:00:00 -t 00:04:09 archivo_recortado.mp4
Donde el valor de la opción -ss es el instante de inicio en hh:mm:ss y el valor de -t es la longitud en hh:mm:ss
Es importante respetar el orden de las opciones, sobre todo poner al principio la opción -i
que indica el fichero de entrada. De no hacerlo así (se explica aquí) las opciones de codec no saben localizar bien los codecs del fichero de entrada.
Durante un tiempo en Ubuntu, ffmpeg
no estuvo disponible. Su sustituto fue avconv
, compatible la mayoría de las veces. No admitía sin embargo la opción de copiar el codec de audio y vídeo. Había que especificarlo. Una lista de encoders soportados se puede obtener ejecutando:
$ avconv -encoders
Un par de codecs comprobados que suelen dar buen resultados son h264 y aac:
ffmpeg -i archivo_original.mp4 -acodec aac -vcodec h264 -ss 01:07:38 -t 00:01:14 archivo_recortado.mp4
Crop en video¶
$ ffmpeg -i input.mp4 -filter:v "crop=w:h:x:y" output.mp4
donde:
- w: ancho final
- h: alto final
- x: coordenada x del punto superior izquierdo del recuadro
- y: coordenada y del punto superior izquierdo del recuadro
Extraer frame de video¶
$ ffmpeg -i input.mp4 -ss 00:01:00 -frames:v 1 frame.png
donde el argumento -ss marca el instante del frame en hh:mm:ss
Redimensionado de imágenes en lote¶
Por ejemplo a 1080 de alto manteniendo el ratio dentro de un directorio llamado resized:
$ convert '*.jpg[x1080]' resized/%03d.jpg
En ocasiones, si hay varios miles de fotos, se puede llenar la memoria. En este caso hacer la conversión con el siguiente comando, que trata las imágenes una a una:
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a})
convert ${i}[x1080] resized/${new}
let a=a+1
done
Crop y resize de imágenes en lote¶
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a})
convert ${i} -crop wxh+x+y -resize wsxhs -gravity Center ${new}
let a=a+1
done
donde:
- w: ancho del crop
- h: alto del crop
- x: posición horizontal esquina superior derecha del crop
- y: posición vertical esquina superior derecha del crop
- ws: ancho del reescalado final
- hs: alto del reescalado final
Conversión de formato en lote¶
for file in *.jpg; do
filename=$(basename "$file")
fileid=${filename%%.*}
convert ${filename} ${fileid}.png
done
Renombrado de archivos en lote¶
Por ejemplo una serie de archivos jpg:
a=1
for i in *.jpg; do
new=$(printf "%04d.jpg" ${a})
mv ${i} ${new}
let a=a+1
done
Compresión de ficheros en lote¶
for file in *.col; do
filename=$(basename "${file}")
fileid=${filename%%.*}
7z a "${fileid}.7z" "${filename}"
done
Sustitución de cadena en ficheros en lote¶
for file in *.cfg; do
filename=$(basename "${file}")
fileid=${filename%%.*}
sed -i 's/ShowFps 1/ShowFps 0/' "${file}"
done
Montaje de vídeo StopMotion a partir de imágenes¶
A 10fps por ejemplo (Fuente):
$ ffmpeg -f image2 -r 10 -i %04d.jpg -vf scale=1440:1080 -r:v 10 -c:v libx264 -qp 0 -preset veryslow -an "video.mkv"
Montaje de gif a partir de imágenes¶
convert -delay n -loop 0 *.jpg output.gif
donde:
- n: milisegundos entre cada frame.
Configurar Wireshark para poder capturar con usuarios no-root¶
Ejecutar lo siguiente:
$ sudo dpkg-reconfigure wireshark-common
$ sudo usermod -a -G wireshark <usuario>
Reiniciar la sesión.
Solucionar el problema con Wireshark en las últimas versiones de Ubuntu¶
Cuando se inicia una captura, se cuelga Wireshark, emitiendo una serie infinita de errores de GTK en consola. En esta página comentan varios workarrounds. Por ejemplo editando el fichero /usr/share/applications/wireshark.desktop
y cambiando la línea de ejecución por:
Exec=env LIBOVERLAY_SCROLLBAR=0 wireshark %f
Ficheros implicados en arranque¶
/etc/rc.local
: This script is executed at the end of each multiuser runlevel.
Montar imagen de disco o partición¶
(Fuente)
-
Averiguar la estructura de las particiones:
$ fdisk -l Rpi_8gb_wheezy_backup.img Disco Rpi_8gb_wheezy_backup.img: 7,5 GiB, 8068792320 bytes, 15759360 sectores Unidades: sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico/físico): 512 bytes / 512 bytes Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes Tipo de etiqueta de disco: dos Identificador del disco: 0x000981cb Dispositivo Inicio Comienzo Final Sectores Tamaño Id Tipo Rpi_8gb_wheezy_backup.img1 8192 122879 114688 56M c W95 FAT32 (LBA) Rpi_8gb_wheezy_backup.img2 122880 15759359 15636480 7,5G 83 Linux
-
Calcular el offset multiplicando el sector de comienzo de la partición por el tamaño del sector:
122880 * 512 = 62914560
-
Montar:
$ sudo mount -t ext4 -o loop,offset=62914560,ro,noexec Rpi_8gb_wheezy_backup.img mnt
Screencast¶
$ avconv -f x11grab -r 25 -s 910x550 -i :0.0 -vcodec huffyuv screencast.avi
Gestión de módulos¶
Añadir un módulo al kernel¶
$ sudo modprobe <modulo>
Si se quiere añadir de forma permanente, es decir, de forma automática en el arranque, se incorpora el nombre del módulo al fichero /etc/modules
.
Cuando el módulo que se carga es un driver de un dispositivo, el kernel envía un evento al subsistema udev
. La monitorización de estos mensajes se puede hacer teniendo abierto un terminal con el siguiente comando lanzado (fuente):
$ udevadm monitor --property
Listado de módulos¶
$ lsmod
Información de un módulo¶
$ modinfo <modulo>
Ficheros definición variables de entorno¶
Si se necesita definir una variable global se podrá hacer en los ficheros:
/etc/environment
/etc/profile
/etc/profile.d
/etc/bashrc
o/etc/bash.bashrc
Si es a nivel de usuario se hará en:
~/.bashrc
~/.bash_profile
Poner barras de scroll normales¶
gsettings set com.canonical.desktop.interface scrollbar-mode normal
Skype en tray¶
Instalar los paquetes sni-qt
y sni-qt:i386
.
Workrave en tray¶
gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"
Localización de ficheros .desktop¶
- Los del usuario se encuentran en:
~/.local/share/applications
- Los del sistema en:
/usr/share/applications
Configuración de gedit¶
Al menos las últimas versiones de gedit no tienen un panel de ajustes para las opciones predeterminadas. Cada vez que arranca aparecen preajustados 8 espacios como anchura del tabulador y no sustituye por espacios. Puede sacarse una lista de todos los ajustes que se pueden cambiar con el siguiente comando:
gsettings list-recursively | grep -i gedit.preferences.editor
Los ajustes del tabulador mencionados antes, para pasar a 4 espacios, ejecutar:
gsettings set org.gnome.gedit.preferences.editor insert-spaces true
gsettings set org.gnome.gedit.preferences.editor tabs-size 4
Otro ajuste interesante es el del wrap mode. Se puede hacer con (puede valer 'none', 'word', 'char', o 'word-char'):
gsettings set org.gnome.gedit.preferences.editor wrap-mode 'word'
Localizar paquete que contiene un fichero¶
(Fuente)
-
Instalar
apt-file
:$ sudo apt-get install apt-file
-
Actualizar su base de datos:
$ sudo apt-file update
-
Hacer la búsqueda:
$ apt-file search <fichero_con_ruta>
Configuración de idiomas del sistema (locales)¶
$ sudo dpkg-reconfigure locales
Configuración de SWAP en disco SSD¶
Siguiendo [esta página], añado lo siguiente al fichero /etc/sysctl.conf
para bajar el 60% que usa Ubuntu por defecto a 10%:
vm.swappiness=10
Buscar paquetes y ficheros de los mismos¶
- Encontrar un paquete por su nombre:
apt-cache search 'cadena'
- Encontrar un paquete ya instalado que contiene un fichero:
dpkg -S 'fichero'
- Encontrar un paquete no instalado que contiene un fichero:
apt-file search 'fichero'
- Localizar el repositorio del que procede un paquete:
apt-cache policy 'paquete'
- Listar los ficheros que contiene un paquete ya instalado:
dpkg -L paquete
- Listar los ficheros que contiene un paquete no instalado:
apt-file list paquete
(antes hay que hacerapt-file update
) - Listar los ficheros de un fichero .deb:
dpkg -c paquete.deb
Limpieza de paquetes snap¶
Localizar los paquetes desactivados con:
$ snap list --all|fgrep desactivado
Y luego borrarlos con:
$ snap remove --revision XXX NOMBRE
Por ejemplo:
edumoreno@eduardo-HP-Folio-13:~$ snap list --all|fgrep desactivado
canonical-livepatch 9.7.3 105 latest/stable canonical* desactivado
chromium 94.0.4606.81 1781 latest/stable canonical* desactivado
edumoreno@eduardo-HP-Folio-13:~$ snap remove --revision 105 canonical-livepatch
canonical-livepatch (revisión 105) eliminado
edumoreno@eduardo-HP-Folio-13:~$ snap remove --revision 1781 chromium
chromium (revisión 1781) eliminado
Montar ext4 para usuario¶
Normalmente al automontar una partición ext4 se respetarán los ID's de los propietarios:grupos de los ficheros. Para montar temporalmente con permisos ajustados para un usuario, utilizar bindfs
de esta forma:
# El punto de partida es una partición automontada de esta forma:
# /dev/sdb1 306616440 64348 290907216 1% /media/edumoreno/47acea17-841f-42d3-85f2-886543f056db
sudo bindfs -u $(id -u) -g $(id -g) /media/edumoreno/47acea17-841f-42d3-85f2-886543f056db /home/edumoreno/mnt/
Cambiar ID de usuario¶
Por ejemplo para sincronizar con los IDs de un sistema de archivos montado por NFS y así no tener problemas de permisos. En el siguiente ejemplo se cambia el ID del usuario edumoreno a 1002:
sudo usermod -u 1002 edumoreno