Ir al contenido principal

Comandos útiles de la shell en Linux


    • Listar los ficheros de un directorio en duplicado en la misma línea y guardarlos en un fichero. Esto puede ser útil para manipular los fichero. Por ejemplo suponiendo que se tratan de ficheros de audio y queremos un fragmento de 30 segundos de cada pista:
      ls *.flac | awk '{ print "ffmpeg -i " $0 " -t 30 fragmento-" $0 }' > fichero-destino
      bash fichero-destino


      Renombrar ficheros de imágenes a un nombre + un número:
      ls *.jpg | awk '{ print "mv \"" $0  "\"imagen" x++ ".jpg" }' > fichero-destino

      bash fichero-destino
      Renombrar las extensiones de algunos ficheros:
      ls *JPG* | awk '{a=$0;gsub(".JPG",".jpg",a); print "mv " $0 " " a }' > fichero-destino
      bash fichero-destino

    • Ficheros inmodificables. lsattr muestra los atributos de un fichero y chattr los cambia:
      chattr +i fichero/directorio (lo hace inmodificable)
      chattr -i fichero/directorio (permite la modificación)

    • Borrando ficheros para una fechada dada:
      ls -ld */*/* | grep "jul 10" | cut -c 47-80| xargs rm

    • Cambiar de png a jpg.
      ls *.png | awk '{a=$0;gsub(".png",".jpg",a); print "convert " $0 " " a}' > kk.sh
      bash kk.sh
    • Cambiar la resolución a 300 dpi de una imagen:
      convert -units PixelsPerInch imagen -resample 300 imagenresultanteVarios ficheros, convertirlos a jpg, 300 dpi y renombrarlos como una secuencia numérica:
      ls * | awk '{print "convert -units PixelsPerInch " $0 " -resample 300 " NR ".jpg" }' > fichero-destino

    • Matar todos los procesos de un usuario:
      pkill -u usuario
      sudo pkill -u usuario


    • Indicar clave con sshpass. Esto nos ahorra esperar para meter la clave en conexiones lentas.
      sshpass -p clave ssh ususaro@servidor -p puerto
    • Sincronizar una carpeta, copiando solo los ficheros que falten o que sean diferentes del original (verficado mediante hash):
      rsync -avuc carpeta_origen/ carpeta_destino/ El parámetro -a hace la copia recursiva y preserva los tiempos de modificación, copia los vínculos simbólicos, preserva los permisos, preserva la información de el dueño y el grupo del archivo, preserva los archivos de dispositivo y los archivos especiales.
      Los parametors -uc actualizará los contenidos de la carpeta destino en base a la carpeta de origen mediante la comparación del hash de los ficheros.

      Mostrando el progreso y mediante un puerto diferente al estándar de ssh:
      rsync -avuc -e 'ssh -p 443' --progress carpeta_origen/ host:/carpeta_destino/
      pkill -u usuario

    Comentarios

    Entradas populares de este blog

    Conectar Dolibarr con otra aplicación mediante un servicio SOAP

    Para conectar con Dolibarr otras aplicaciones, como un carrito de la compra, puede ser muy interesante utilizar los " Web Services " que nos ofrece Dolibarr. Para activarlos tenemos que ir a Configuración-> Módulos-> Módulos Interfaz y poner a ON los WebServices. También hay que configurar la clave para usar los Web Services (parámetro "dolibarrkey" en webservices). Indicamos una palabra clave que se nos ocurra como por ejemplo: $5x8Cd45Cadec_f?K y pulsamos salvar. A continuación muestro un ejemplo con Python y la librería suds para obtener una factura: from suds.client import Client client = Client('http://www.midominio.es/dolibarr/webservices/server_invoice.php?wsdl') auth = client.factory.create('authentication') auth.dolibarrkey='$5x8Cd45Cadec_f?K' auth.sourceapplication='' auth.login='usuario' auth.password='clave' auth.entity='' result = client.service.getInvoice(auth,'1') print resu...

    Instalación Django en NAS Synology con FastCGI

    Los NAS Synology no traen el módulo de apache mod-wsgi por lo que he utilizado el módulo mod-fastcgi en su lugar para hacer funcionar Django en los NAS Synology. Necesitamos del módulo mysql-python , para su instalación podemos seguir la entrada que ya se publicó en este mismo blog:  http://ilizaran.blogspot.com.es/2014/09/instalacion-del-modulo-mysql-python-en.html De la instalación de mysql-python ya tendremos instalado pip en el NAS por lo que podremos instalar Django con algunos módulos necesarios: pip install Django pip install setuptools pip install flup Para saber que la instalación de Django ha sido correcta y verificar la versión podemos realizar: python import django  django.VERSION Ahora modifcamos la configuración de apache editando el fichero /etc/httpd/conf/httpd.conf-user  para hacer accesible los ficheros css, imágenes y javascript de la parte administrativa de Django, por lo que añadimos: Alias /static/admin /usr/local/packages/@appstor...

    Calendario compartido en thunderbird sincronizado con el calendario de Google.

    Se pretende crear un calendario común y compartido para que todos los que queramos vean nuestro calendario. Para ello tenemos que tener el thunderbird que es un cliente de correo. Si ya teníamos thunderbird, solamente tenemos que instalar 2 complementos: lightning y provider for google calendar . Para instalarlos simplemente entramos en thunderbird y en el menú superior entramos en Herramientas > Complementos . En la parte superior hay una barra para buscar los complementos y simplemente escribimos los 2 complementos dichos anteriormente y reiniciamos thunderbird. Ahora creamos una cuenta en google y si la tenemos no hace falta crearla. Accedemos a la cuenta de google y entramos en Calendar Una vez hemos entrado, a la izquierar nos saldrán los calendarios que tenemos. Creamos un nuevo calendario desplegando la pestaña que está al lado de Mis calendarios.   Creamos un calendario al que le vamos a llamar prueba. Ya estaría creado nuestro calendario. Entramos ...