web-dev-qa-db-ja.com

UIクリックに対応するコマンドラインコマンドを知る方法は?

UbuntuのGUIから「ムービープレーヤー」をクリックできますが、対応するコマンドラインコマンドを知るにはどうすればよいですか。コマンドラインからムービープレーヤーを実行したい。

これは、ムービープレーヤーのバックグラウンドコマンドだけでなく、メニューのアイコンの1つをクリックしたときにxウィンドウシェルによって実行された実際のコマンドをすべて知りたいです。

どうもありがとう。

4
smwikipedia

コンソールを開いて、

ps --sort start_time x

これにより、アクティブなプロセスのリストが開始時刻でソートされ、最新のプロセスが下部に表示されます。たとえば、Firefoxを起動したばかりで、次のようになっています。

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

もちろん ps --sort start_time xは常に最新のプロセスです。

6
artistoex

アイコンを右クリックして、[プロパティ]を選択します。これにより、ほとんどの場合、それに関連付けられているコマンドラインがわかります。

4
Cry Havok

Ubuntuの3つの主要なGUIは、Gnome、KDE、Xfceです。これらのプロジェクトはすべて、freedesktop.orgの無料デスクトップ標準に準拠しようとしています。 Xfceは、特にメニュー項目の処理方法を定義する Desktop Entry 標準に従っているようです。

次の手順は、Gnome、KDE、およびXfceで機能するはずです。

メニュー項目(「ランチャー」または「デスクトップエントリ」とも呼ばれます)は、/usr/share/applicationsに保存されます。

このアプリケーションは「MoviePlayer」と呼ばれているので、適切なファイルを見つけるには次のようにします。

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

Grepは、「totem.desktop」に適切なコンテンツが含まれていることを示しています。このことから、「MoviePlayer」が「トーテム」アプリケーションに関連付けられていることがわかります。

ここで、このメニュー項目によって実行されるコマンドを確認するには、Execを検索します。

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

これらのGnome/KDE/Xfce .desktopファイルの形式については、freedesktop.org デスクトップエントリ仕様 で詳しく説明されています。 デスクトップエントリ仕様:Execキー は、%Uキーの使用について説明しています。

URLのリスト。各URLは、実行可能プログラムに個別の引数として渡されます。ローカルファイルは、file:URLまたはファイルパスとして渡すことができます。

3

Xubuntuで、ユーザー/共有/アプリケーションに移動し、パネルに配置するアプリを右クリックします。デスクトップに送信(リンク)を選択します。これでランチャーがデスクトップに表示されました。いずれかを右クリックして[プロパティ]を選択すると、コマンドラインが表示されます。パネルを右クリックし、[ランチャーの作成]を選択して、アプリごとにデスクトップランチャーのプロパティを複製します。これで、デスクトップ上のランチャーを削除できます。

Ubuntu(Gnome)よりも少し回り道ですが、Xubuntuはすべての機能を削除するため、高速です。

1
Ron

コマンドラインからも制御できるムービープレーヤーが必要な場合は、mplayerを使用します。

1
akid

注:この回答はartistoexの回答の拡張です。

このコマンドは、現在のユーザーによって実行され、過去60秒以内に開始されたすべての現在実行中のコマンドを表示する必要があります。

_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
_

このコマンドを使用するには、アイコンまたはメニュー項目をクリックしてコマンドを実行し、開いたばかりのプログラムがまだ実行されている間に、上記のコマンドを実行します。 YOURUSERNAMEを現在のユーザーのユーザー名に置き換えることを忘れないでください。

説明

psは、現在実行中のプロセスを表示します。 ps引数の説明:

  • x:端末(実際にはtty)を介して実行されないプロセスが含まれます。 _-t '?'_を追加すると、端末に関連付けられていないonlyプロセスが表示されます。
  • _--sort -start_time_:プロセスが開始した時間で出力を並べ替えます(降順)
  • _-U YOURUSERNAME_:[〜#〜] yourusername [〜#〜]をユーザー名に置き換えると、ユーザーが実行したプロセスのみが表示されます。この制限は、必要に応じて削除できます。
  • _-o start,command_:出力に2つの列を表示します:プロセスの開始時間と実行されたコマンド

awkは、最近実行されたプロセスのみを表示するためにここで使用されます。 awk引数の説明:

  • _$1>=recently&&$1<=now_:過去60秒以内に実行されたプロセスに出力を制限します。この時間枠を変更するには、次の引数を変更します(recently変数の割り当て)
  • recently=$(date --date='60 seconds ago' +%T):前の引数で使用したawk変数recentlyを_HH:MM:SS_形式(ps時間形式)で60秒前に設定します。
  • now=$(date +%T)awk変数nowを現在の時刻に設定します(これは、24時間以内に実行され、将来実行されるように見えるプロセスを除外するためです)

_sed 1,1d_を追加して、出力の最初の行を削除しました。これは、現在実行中のコマンドが表示されるため、表示しても意味がありません。

覚えておいてください:psを使用して実行されたプロセスを見つけることは、特定のプログラムでは期待どおりに機能しません。たとえば、Firefoxのショートカットをクリックしても、Firefoxがすでに実行されている場合、新しいプロセスは作成されず、古いプロセスの開始時刻は変更されません。ただし、この方法は多くのプログラムでかなりうまく機能します。

1
Trey Hunner

それはtotemになります。

この答えは、CryHavokの拡張です。

これが最も簡単な方法だと思います。

まず、アプリケーションランチャーにあるショートカットをデスクトップにコピーする必要があります。任意のアプリケーションを右クリックして、「このランチャーをデスクトップに追加」を選択できます(gnomeを使用している場合)。

ショートカットがデスクトップにあるので、ショートカットを右クリックしてプロパティを選択できます。 [基本]タブには、アプリケーションを起動するために開始されたコマンドラインコマンドが表示されます。

Geditを開いて、デスクトップアイコンを開くこともできます。デスクトップアイコンは、拡張子が「.desktop」の単なるテキストファイルです。このファイルには、コマンドラインから呼び出すことができるプログラムを示す「Exec =」の部分を含む、そのショートカットのすべてのパラメーターが表示されます。

0
James T

Gnomeを使用している場合は、

 gnome-open <file> 

次に、gnome-openは、そのファイルを開くために登録されているプログラムを使用してファイルを開きます。ただし、実行中の最終プロセスがわからない場合は、試してみることができます。

ps ux | grep filename

または、の出力から検索できます

ps ux
0
0fnt

メニューに表示される内容は、_.desktop_内の_/usr/share/applications_ファイルによって制御されます。これらのファイルのいずれかを表示すると、_Exec=_の行があります。これは、アイコンをクリックしたときにUbuntuが実行するコマンドです。

0
Martin Hilton