Salve a tutti, sto cercando uno script che all'interno della finestra di un terminale visualizzi i comandi che effettuo con il mouse. Per fare un esempio se con il mouse sposto un file da una cartella ad un'altra, sul terminale comparira: mv mio_file /usr/share/doc/file_nuovo
Lo script di per se non serve a niente se non ad uso didattico. Qualcuno saprebbe aiutarmi ? Grazie dell'aiuto

chiesto 03 Apr '15, 11:50

gianniDP's gravatar image

gianniDP
2023


Non credo che esista, ne possa esistere una tale funzionalità, e cerco di spiegare il perché.

Quando effettui dei movimenti con il mouse o premi dei tasti sulla tastiera cosa avviene?

  1. il kernel passa le relative informazioni al driver grafico, quindi al server X
  2. il server X, tranne che per certe sequenze di tasti di uso interno (penso al Ctrl-Alt-BkSpace che una volta killava il server X stesso), passa tutto al Window Manager
  3. il Window Manager intercetta anch'esso delle combinazioni di tasti globali, per esempio il cambio di desktop, i tasti di start/stop del player audio, etc., ma a parte queste passa le informazioni al processo relativo alla finestra in primo piano
  4. il processo in questione può fare delle informazioni ricevute quello che vuole, internamente, senza che sia noto all'esterno.

quindi in definitiva, quando sposti un file, l'azione è eseguita dal File Manager internamente, e nessun altro processo è in grado di associare al movimento del mouse l'azione eseguita.

Inoltre il File Manager con tutta probabilità non userà alcun comando di shell, ma direttamente chiamate di sistema in un linguaggio di basso livello, per esempio in C, in Java o altro, e solo raramente potrebbe utilizzare Python o qualche altro linguaggio di più alto livello, ma certamente non comandi di shell.

coll. permanente

ha risposto 03 Apr '15, 13:11

enzotib's gravatar image

enzotib ♦♦
14.0k112186

@enzotib non ne sono a conoscenza, ma non esiste un equivalente di un keylogger per ciò che fa il mouse?

(03 Apr '15, 13:23) dadexix86 ♦♦ dadexix86's gravatar image

@dadexix86: c'è xev, un programma che crea una finestra, oppure gli si indica l'id della finestra da monitorare, e poi mostra su terminale dove è stato lanciato tutti gli eventi di mouse e tastiera ricevuti dalla finestra, ma è un elenco sterile, che non dice, né secondo ha modo di dire, cosa ci fa l'applicazione con queste informazioni.

(03 Apr '15, 13:39) enzotib ♦♦ enzotib's gravatar image

@enzotib ma si può lanciare xev che monitori tutto lo schermo?

Ovviamente di per sé sarebbe molto limitato, ma abilitando i simboli di debug e lanciando sempre le applicazioni con debug abilitato si potrebbero (in teoria) combinare i due dati per ottenere l'elenco delle operazioni fatte da mouse...

(03 Apr '15, 13:46) dadexix86 ♦♦ dadexix86's gravatar image

@dadexix86: no so se xev è in grado di monitorare gli eventi di tutte le finestre.
Se così fosse, in linea di principio incrociando temporalmente gli eventi con le chiamate di sistema dei vari processi, recuperabili con strace, si potrebbe arrivare a qualcosa, che sarebbero delle system call e non quello che si aspetta l'utente, ovvero dei comandi di shell.

(03 Apr '15, 15:22) enzotib ♦♦ enzotib's gravatar image
La tua risposta
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×137
×64
×48

domanda posta: 03 Apr '15, 11:50

domanda visualizzata: 721 volte

ultimo aggiornamento: 03 Apr '15, 15:22

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.