Question Comment connaître la ligne de commande correspondante cmd pour le clic de l'interface utilisateur?


Je peux cliquer sur le "lecteur vidéo" de l'interface graphique d'Ubuntu, mais comment pourrais-je connaître la ligne de commande correspondante cmd. Je veux lancer le lecteur de film depuis la ligne de commande.

Et ceci ne concerne pas uniquement la commande d'arrière-plan du lecteur de film, je veux connaître toutes les commandes qui ont été exécutées par le shell de la fenêtre X lorsque je clique sur l'une des icônes du menu.

Merci beaucoup.


4
2018-05-21 05:16


origine


Vous dites "interface graphique d'Ubuntu", mais prenez-vous au sujet de Gnome (l'interface graphique par défaut pour Ubuntu), ou de KDE (pour Kbuntu) ou de XFCE (pour xubuntu). La réponse est différente pour chaque interface graphique. - Stefan Lasiewski
@stefan: supposons, à partir des balises, que l'utilisateur recherche des solutions basées sur Xubuntu / XFCE. (Oui, ces balises ont été ajoutées par quelqu'un d'autre, mais cela était basé sur un commentaire sur l'une des réponses ci-dessous.) - quack quixote


Réponses:


ouvrir la console et entrer

ps --sort start_time x

Cela devrait vous donner une liste des processus actifs, triés en fonction de l'heure de début, avec le processus le plus récent en bas. Par exemple, je viens de démarrer Firefox et j'ai ceci:

19713 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.3/firefox
19718 ?        S      0:00 /bin/sh /usr/lib/firefox-3.6.3/run-mozilla.sh /usr/lib/firefox-3.6.3/firefox-bin
19722 ?        Sl     0:01 /usr/lib/firefox-3.6.3/firefox-bin
19737 pts/2    R+     0:00 ps --sort start_time x

Bien sûr ps --sort start_time x est toujours le processus le plus récent.


6
2018-05-21 17:57



Les processus IIRC peuvent modifier cette description à l'exécution. - Maciej Piechotka
Pour afficher uniquement les 10 derniers processus exécutés, -start_time et la tête pourrait être utilisée: ps --sort -start_time x | head - Trey Hunner
@Maciej C'est vrai, mais la plupart des processus ne le font pas. - Kevin Panko


Cliquez avec le bouton droit sur l'icône et sélectionnez Propriétés. Cela vous indiquera la ligne de commande qui lui est associée dans la plupart des cas.


4
2018-05-21 06:36



Cela fonctionne pour Gnome (le gestionnaire de bureau standard pour Ubuntu), mais il ne fonctionne pas pour tous les gestionnaires de bureau. - stib
J'utilise Xubuntu et cliquez avec le bouton droit sur le programme. - smwikipedia
Même dans Gnome, cela ne fonctionne que pour les lanceurs de programmes sur le panneau ou sur le bureau. cela ne fonctionne pas dans le menu. - quack quixote
Pour le menu (dans Gnome), il y a un éditeur de menu pour voir les commandes exécutées en un clic. Cliquez simplement avec le bouton droit de la souris et sélectionnez «Menu Edition», puis accédez à l'élément et vérifiez sa ligne de commande. - chronos


Les trois principales interfaces utilisateur pour Ubuntu sont Gnome, KDE, Xfce. Ces projets tentent tous de suivre les normes de Free Desktop sur freedesktop.org. Xfce semble suivre le Entrée de bureau standard, qui définit, entre autres, la manière dont les éléments de menu sont gérés.

Les instructions suivantes devraient fonctionner dans Gnome, KDE et Xfce.

Les éléments de menu (également appelés «lanceurs» ou «entrées de bureau» sont stockés dans /usr/share/applications.

Vous savez que cette application s'appelle "Movie Player", donc pour trouver le fichier approprié, procédez comme suit:

stefanl@HOST:/usr/share/applications $ grep -i "movie player" *.desktop
totem.desktop:Name=Movie Player

Grep me montre que «totem.desktop» contient le contenu approprié. De cela, je sais que "Movie Player" est associé à l'application "totem".

Maintenant, pour voir la commande qui est exécutée par cet élément de menu, vous recherchez Exec:

stefanl@HOST:/usr/share/applications $ grep Exec totem.desktop 
Exec=totem %U

Le format de ces fichiers Gnome / KDE / Xfce .desktop est décrit plus en détail sur freedesktop.org Spécification d'entrée de bureau. le Spécification d'entrée de bureau: la clé Exec décrit l'utilisation du %U clé:

Une liste d'URL. Chaque URL est transmise en tant qu'argument distinct au programme exécutable. Les fichiers locaux peuvent être transmis sous forme de fichier: URL ou chemin de fichier.


3
2018-06-02 21:42



vous pouvez également examiner les lanceurs dans le menu avec à la carte (aka Système -> Préférences -> Menu principal); Recherchez l'entrée de menu dans Alacarte et examinez les propriétés pour voir la ligne de commande en cours d'exécution. Je suis sûr que les lanceurs sont installés au même endroit dans Xubuntu, mais je ne sais pas si Alacarte est inclus. - quack quixote


Si vous voulez un lecteur de film que vous pouvez contrôler depuis la ligne de commande, utilisez mplayer.


1
2018-05-21 06:44





Remarque: Cette réponse est une extension de artistoexla réponse.

Cette commande devrait afficher tout en cours d'exécution commandes exécutées par l'utilisateur actuel et démarrées dans les 60 dernières secondes:

ps x --sort -start_time -U YOURUSERNAME -o start,command | \
awk '$1>=recently&&$1<=now' \
recently=$(date --date='60 seconds ago' +%T) now=$(date +%T) | sed 1,1d

Pour utiliser cette commande, cliquez sur une icône ou un élément de menu pour exécuter une commande et, pendant que le programme qui vient d'être ouvert est toujours en cours d'exécution, exécutez la commande ci-dessus. N'oubliez pas de remplacer YOURUSERNAME avec le nom d'utilisateur de votre utilisateur actuel.

Explication:

ps affichera les processus en cours d'exécution. Explication de ps arguments:

  • x: inclut les processus non exécutés via un terminal (en fait, un tty). Ajouter -t '?' afficherait seulement processus non associés à un terminal.
  • --sort -start_time: triez la sortie au moment du démarrage du processus (ordre décroissant)
  • -U YOURUSERNAME: Remplacement TON NOM D'UTILISATEUR avec votre nom d'utilisateur, seuls les processus exécutés par votre utilisateur seront affichés. Cette restriction peut être supprimée si nécessaire.
  • -o start,command: Affiche deux colonnes dans la sortie: l'heure de début du processus et la commande exécutée

awk est utilisé ici pour afficher uniquement les processus exécutés récemment. Explication de awk arguments:

  • $1>=recently&&$1<=now: Restreint la sortie aux processus exécutés dans les 60 dernières secondes. Pour modifier ce délai, modifiez l’argument suivant (recently affectation variable)
  • recently=$(date --date='60 seconds ago' +%T): met le awk variable recently utilisé dans l'argument précédent à 60 secondes il y a dans HH:MM:SS format (ps format de l'heure).
  • now=$(date +%T): met le awk variable now à l'heure actuelle (ceci est d'exclure les processus exécutés il y a moins de 24 heures qui ressembleraient à ceux exécutés à l'avenir)

J'ai ajouté sed 1,1d pour supprimer la première ligne de sortie car elle affichera la commande en cours d'exécution, ce qui est inutile à afficher.

Garder en tete: En utilisant ps Pour savoir quel processus a été exécuté, cela ne fonctionnera pas comme prévu pour certains programmes. Par exemple, si vous cliquez sur un raccourci Firefox mais que Firefox est déjà en cours d'exécution, aucun nouveau processus ne sera créé et l'heure de début de l'ancien processus ne sera pas modifiée. Cependant, cette méthode fonctionne assez bien pour de nombreux programmes.


1
2018-06-02 21:25





Dans Xubuntu, accédez à user / share / applications et cliquez avec le bouton droit de la souris sur les applications que vous souhaitez placer dans un panneau. Sélectionnez envoyer (lien) au bureau. Maintenant que les lanceurs sont sur le bureau, vous pouvez cliquer avec le bouton droit sur l'un d'entre eux et sélectionner Propriétés pour voir la ligne de commande. Faites un clic droit dans un panneau, sélectionnez créer un lanceur et dupliquez les propriétés dans le lanceur de bureau pour chaque application. Vous pouvez maintenant supprimer les lanceurs sur le bureau.

C'est un peu plus détourné que dans Ubuntu (Gnome), mais Xubuntu est plus rapide car il réduit tous les bonus.


1
2018-03-01 19:08





Ce serait totem.


0
2018-05-21 06:19





Ce qui apparaît dans le menu est contrôlé par les fichiers de .desktop fichiers dans /usr/share/applications. Si vous visualisez l'un de ces fichiers, il y a une ligne Exec= quelque chose, c'est la commande que Ubuntu exécute lorsque vous cliquez sur l'icône.


0
2018-06-02 18:46