programa similar a iMacros para terminal?

0

¿Existe un programa para Terminal como el complemento iMacros para Firefox, que puede grabar lo que hice y luego hacer automáticamente el trabajo que he hecho? Espero que haya un programa de este tipo que me ayude a repetir el trabajo en la terminal, ¿algún consejo?

Saludos

liunx
fuente

Respuestas:

1

Google encuentra esto . ¿Es lo que buscas?

Si tuviera que automatizar la interacción entre humanos y TTY, preferiría hacerlo con Expect .

bobah
fuente
¡Espero es lo que quería! Muchas gracias. Mi idea es grabar lo que escribí en el terminal con las funciones capture-pane & save_buffer de tmux, luego escribir un script en perl y generar un script en espera, cuando hago el trabajo de repetición, yo puede ejecutar el script! ¿Es una buena idea? ¡Gracias de nuevo!
liunx
1

bashcontiene todas las utilidades que realmente necesitas. Si desea ejecutar varios comandos con un solo comando, puede escribir sus propios scripts de shell o escribir funciones .

Las funciones son fáciles

Hace unos días, definí una función cspara cambiar el directorio y enumerarlo a través de ls.

function cs() { cd $1 && ls ; }

$1Es el primer argumento. Si desea usar la lista de todos los argumentos, use $@.

Se puede invocar como

$ cs my_directory

Esto es genial para agrupar rápidamente varios comandos dentro de su sesión actual. Puede colocar la función al final de su ~/.bashrcpara cargarla con cada nueva instancia de bash.

Los guiones son bastante poderosos

Los scripts se ejecutan en su propio proceso. Esto significa que cualquier variable que asigne es local para este proceso. Para escribir un guión, coloque un shebang en la parte superior. Consiste en los caracteres #!seguidos por la ruta al intérprete que ejecutará su archivo. Shebangs podrían incluir

#!sh
#!/bin/bash
#!/usr/bin/perl

En un script de shell, podría hacer cosas como

#!/bin/bash
VARIABLE=42
echo "The variable is $VARIABLE"  # echo appends a newline
echo "I'm now going to Google"
firefox http://www.google.com

No olvide hacer que el script sea ejecutable a través de

$ chmod +x my_script

Luego se puede ejecutar como

$ ./my_script         # from the current directory
$ ~/path/to/my_script # absolute path, ~ is your User directory.

La sintaxis bash contiene condicionales, bucles e interruptores y casi cualquier cosa. Si detesta el bajo rendimiento o si necesita una sintaxis más agradable, puede aprender fácilmente algunas líneas de Perl o Python.

Ver lo que escribiste

Estas soluciones dependen de saber lo que quiere hacer antes de hacerlo. Si este no es el caso, puede mirar el archivo de historial ( ~/.bash_historypor defecto) o usar el historycomando.

$ history 5

enumera los 5 últimos comandos, con un número corriente. En mi caso, esto da

 1892  function foo() { cd $1 ; ls ; }
 1893  foo ..
 1894  history
 1895  history 15
 1896  history 5

Puede usar fácilmente esta lista de comandos para escribir una función o un script de shell.

Una solución casera rápida

Aquí hay una solución para la grabación de macros. Utiliza dos funciones definidas por el usuario y un script perl en línea para realizar el procesamiento interesante.

function create-marker() { echo "Starting the recording" ; }
function process-marker() { history | perl -ne's/^\s*\d*\s*//; chomp; push @commands, $_; }{ pop @commands; push @macro, pop @commands until $commands[-1] eq "create-marker" or !@commands; print "$_\n" for reverse @macro;' ; }

Esta sesión

$ create-marker
Starting the recording
$ cd ~
$ ls
# omitted
$ firefox http://www.google.com
$ process-marker

Crea el siguiente resultado:

cd ~
ls
firefox http://www.google.com

Luego puede copiarlo y pegarlo fácilmente en un nuevo script.


Nota: No tengo una Mac y probé esto en Ubuntu. Los caminos pueden diferir, pero los conceptos son sólidos.

amon
fuente
Muchas gracias, es útil, pero cuando interactúo con una conexión ssh o una conexión en serie, es posible que no podamos obtener ayuda del historial, ¿verdad? Por lo tanto, la grabadora de macros puede ser limitada, ¡pero gracias de todos modos!
liunx
0

Es poco probable que le interese si no es un usuario, pero emacs tiene un modo shell ( M-x shell) que, por supuesto, admite los comandos normales de edición de emacs, incluidas las macros de teclado ( C-x (para comenzar a grabar, C-x )detener y luego C-x eejecutar). Si todo lo que está haciendo es repetir un montón de mecanografía, esto puede ser útil.

Pero, en términos más generales, estoy de acuerdo con bobah: usted no declara el problema que está tratando de resolver, pero es casi seguro que es algo más adecuado para herramientas como esperar que la falsificación de datos sin procesar ...

Andy Ross
fuente
0

Sé que estás pidiendo esto para la Terminal, pero como no he oído hablar de tal programa, una alternativa sería la Terminal ZOC . Es comercial, por lo que puede que no esté en tu callejón, pero es lo más parecido en lo que puedo pensar, dada la descripción de tu problema. Admite el uso de un shell local en Mac OS (esencialmente un reemplazo para el terminal) y tiene una función de grabación de script (menú Script -> Grabar Scipt). También puede asignar estos scripts (o textos más cortos) en botones y combinaciones de teclas.

QSQ
fuente