Mostrando entradas con la etiqueta sh. Mostrar todas las entradas
Mostrando entradas con la etiqueta sh. Mostrar todas las entradas

martes, diciembre 01, 2015

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