• 締切済み

gnome-terminalの使い方教えてください

# gnome-terminal -e "sh -c 'ssh localhost;cd ビデオ;exec bash'" を実行するとこれを実行したgnome-terminalとは別に新たなgnome-terminalが開かれ localhostの/root/ビデオ のディレクトリに移動できます. ところが # gnome-terminal -e "sh -c 'ssh 192.168.2.6;cd ビデオ;exec bash'" を実行してもこれを実行したgnome-terminalとは別に新たなgnome-terminalが開かれますが 192.168.2.6のPCの/root のディレクトリに移動してしまい 192.168.2.6のPCの/root/ビデオ に移動できません. 後者の場合に 192.168.2.6のPCの/root/ビデオ に移動させる方法はあるでしょうか? よろしくお願いします.

  • reiman
  • お礼率73% (794/1076)

みんなの回答

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.7

いまさらFedora14の環境を用意するのに手間取りました……。 >ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' >を実行すると >何も表示されずにカーソルが次の行にいって >自PCのプロンプトが出るだけです. それは正常です。 ちなみに、どんなコマンドが実行されてどういう結果になったのか…という事は理解されてます? こちらで用意したFedora14の環境(インストールしてyum updateしてVMWare toolsインストールした)では、 「引数を解析できませんでした: ディスプレイをオープンできません:」は発生しませんでしたね。 export DISPLAY= として、環境変数を削除した場合は… [user@Fedora14 ~]$ gnome-terminal -e "ssh 192.168.61.130 'cd rpms;ls > ../aa.txt'" 引数を解析できませんでした: ディスプレイをオープンできません: [user@Fedora14 ~]$ でしたし。(接続先のホスト名は…localhostになってる) # 実際にはsshコマンドに-lでログイン名指定していますが…まぁ、本題ではないので省略。 パスワードの入力要求も出ませんでしたから、sshコマンドの処理もされていないでしょう。 # 接続先は最小インストールしたCentOS6.4。 # rpmbuild用に作成したディレクトリがあるので、そこに移動いるようにしてる。 「引数を解析できませんでした: ディスプレイをオープンできません:」が発生する環境でprintenvコマンドで環境変数を表示したらどうなりますかね?

reiman
質問者

お礼

私のこの質問の目的は シェルスクリプトで3つのPCを操作できる端末ウィンドウを開きそれぞれを所定のディレクトリに移動させておく. ということなのです. だから質問文にかいたような形式の複合コマンドになります.

reiman
質問者

補足

根気強い回答ありがとうございます. 同じ端末を何度も使っていると動作が違ってきます. 新しく端末を開いた後 ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' を実行すると [root@fx8120 ~]# ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' と端末が実行状態になったままです. gnome-terminal -e "ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt'" を実行すると [root@fx8120 ~]# gnome-terminal -e "ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt'" [root@fx8120 ~]# となり一瞬新しい端末ウィンドウが開いてすぐに閉じます. 引数を解析できませんでした: ディスプレイをオープンできません: が出なくなったので状態が変わったのかも知れません.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.6

># gnome-terminal -e "ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt'" >引数を解析できませんでした: ディスプレイをオープンできません: >[root@prime ~]# 接続先(192.168.2.6)の名前は「prime」で合っている。と言うことでOKでしょうか? 手元で実験した限りだと…… 「引数を解析できませんでした: ディスプレイをオープンできません:」は『TeraTermなどで接続している状態で実行する』と発生しましたね。 実行しているターミナルではDISPLAY環境変数がありませんから、当然ですが……。 # export DISPLAY=なんちゃら で設定すれば成功するんじゃないですかね。 たぶんCUIで実行している状態でコンソールから実行しても発生するのでしょうが、コンソールからでは日本語の入力はできないでしょうから「ビデオ」の入力ができないでしょう。 クライアントがGUIで起動していて、ログイン済み。 で、クライアントのターミナル(GNOME ターミナル)から上記のコマンドを入力する必要がありますが……。 #2のお礼の時点ではGNOME ターミナルが起動できていたようですが、#3の補足を書いている時点ではどういうふうに操作したのでしょうか? # コピペが手間だからWindowsとかからTeraTermなりで実行しました。なんて事はないですか? あとは…… ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' だけで実行したらどうなりますか?

reiman
質問者

補足

度重なる回答ありがとうございます. 歯医者に行っていました. fedora14のgnome-terminalのみでやっています. ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' を実行すると 何も表示されずにカーソルが次の行にいって 自PCのプロンプトが出るだけです. [root@fx8120 ~]# ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt' [root@fx8120 ~]# 接続先(192.168.2.6)の名前は「prime」で合っている。と言うことでOKです. 接続元192.168.2.7「fx8120.box」 接続先192.168.2.6「prime.am」 です.(拡張子部分は表示で省略される様です) ウィンドウズは1年にI、2日しか使いません. 以前使ったのは3ヶ月前に3時間程度です. e-taxのために仕方なく使っているのです.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.5

># gnome-terminal -e "ssh 192.168.61.131 'cd vmware-tools-distrib;ls > ../aa.txt'" >引数を解析できませんでした: ディスプレイをオープンできません: コマンドの内容理解してやってますか? 貴方の環境で192.168.61.131に接続できるんですか? また、ログインした先のホームディレクトリにvmware-tools-distribというディレクトリがあるんですか? 「ディスプレイをオープンできない」ってエラー自体はちょっと不明ですが……。 # GNOME入っていて、CUIで起動していたらそうなりますかね…。

reiman
質問者

補足

回答ありがとうございます. うっかりしてそのままコピーしていれてしまいました. # gnome-terminal -e "ssh 192.168.2.6 'cd ビデオ;ls > ../aa.txt'" 引数を解析できませんでした: ディスプレイをオープンできません: [root@prime ~]# と接続しましたが cd ビデオ は実行されません. 大変失礼しました.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.4

>ウィンドウ内には何も表示されずにリモートPCに接続しないようです. そもそも… ssh 192.168.2.6 で接続できるんですか? シェルプロンプトが表示される状態まで…。 なんか、既に最初の質問から内容変わっているような気がしないでもないですが…。 # 新たにgnome-terminalを開かないとならないのか?というのも含めて。

reiman
質問者

補足

4度もの回答ありがとうございます. sshは正常に接続されています. # ssh 192.168.2.6 Last login: Mon Apr 22 14:15:28 2013 from 192.168.2.7 [root@prime ~]# マシンの差かもしれません. 因みに自作マシンは cpu:fx8120 mother board:ASRock 880GM-LE FX(880G AM3+ mATX DR3) memory:4GB+4GB os:fedora14 です.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.3

>端末タイトルのウィンドウは開きますが >ウィンドウ内には何も表示されずにリモートPCに接続しないようです. こちらで試した時にはリモートに接続できましたけどね。 サーバ/クライアントともにVMware環境。CentOS6.4のクライアントからUbuntu Serverのサーバへ接続。 公開鍵認証にしていなかったので、パスワード入力を要求されましたけどね。 # ユーザー名はどちらにも共通で存在するユーザー名になってます。 gnome-terminal -e "ssh 192.168.61.131 'cd vmware-tools-distrib;ls > ../aa.txt'" で、接続先サーバのホームディレクトリにaa.txtが作成されています。 # リダイレクトしないと一瞬で閉じられたので……。

reiman
質問者

補足

回答ありがとうございます. # gnome-terminal -e "ssh 192.168.61.131 'cd vmware-tools-distrib;ls > ../aa.txt'" 引数を解析できませんでした: ディスプレイをオープンできません: # となりダメでした. 先ほどの状態が再現できずに 引数を解析できませんでした: ディスプレイをオープンできません: が出ているので困っています.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.2

># gnome-terminal -e "sh -c 'ssh 192.168.2.6 \'cd ビデオ;exec bash\''" >引数を解析できませんでした: "--command/-e" への引数が正しいコマンドではありません: ' に対応する引用記号の前でテキストが終了しています (テキストは 'sh -c 'ssh 192.168.2.6 \'cd ビデオ;exec bash\''') ならば… gnome-terminal -e "ssh 192.168.2.6 'cd ビデオ;exec bash'" でどうでしょう? わざわざsh起動しなくても、gnome-terminal起動した時点でログインシェルが起動しているでしょうし。 実行したいのはあくまでsshでしょう。

reiman
質問者

お礼

再回答ありがとうございます. ご提案の方法を試したところ 端末タイトルのウィンドウは開きますが ウィンドウ内には何も表示されずにリモートPCに接続しないようです.

  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

とりあえず、man ssh辺りを。 sshで接続したリモート側でコマンドを実行させる方法について調べられるはずです。 「ssh コマンド リモート実行」で検索すれば http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230889/ ってページも見つかると思いますけどね。 ># gnome-terminal -e "sh -c 'ssh 192.168.2.6;cd ビデオ;exec bash'" sshコマンドで192.168.2.6に接続します。 そこでリモート側は終了でしょう。 で、"cd ビデオ;exec bash"は、当然ローカルで実行されます。 # ssh接続が切れないと続きのコマンドが処理されないような気がしますが、そこのところどうなんですかね? というか…… >192.168.2.6のPCの/root >のディレクトリに移動してしまい sshでrootログイン有効とは、なかなか……。 # まぁ、外部からの接続はできないんでしょうけど…。 gnome-terminal -e "sh -c 'ssh 192.168.2.6 \'cd ビデオ;exec bash\''" とかやってみたらどうです? # 動作確認はしていませんが。

reiman
質問者

補足

素早い回答ありがとうございます. 勿論外部からのアクセスはこのPCはdenyします. # gnome-terminal -e "sh -c 'ssh 192.168.2.6 \'cd ビデオ;exec bash\''" 引数を解析できませんでした: "--command/-e" への引数が正しいコマンドではありません: ' に対応する引用記号の前でテキストが終了しています (テキストは 'sh -c 'ssh 192.168.2.6 \'cd ビデオ;exec bash\''') # となりご提案の方法はうまくいきませんでした. いろいろ試行錯誤します.

関連するQ&A

  • 端末上でgnome-terminal -e lsを

    実行すると lsが実行された端末が新たに生成されますが直ぐに消えます どうしたらlsが終了しても端末を消さないようにすることができるでしょうか? なお端末上で gnome-terminal -e top を実行すると端末は消えません 実行が終わらないコマンドを実行する時には端末は消えない様です よろしくお願いします

  • コマンドでフアィルを見つけるとき・・・?

    kouzou@localhost ~]$ su パスワード: [root@localhost kouzou]# cd mysql bash: cd: mysql: そのようなファイルやディレクトリはありません [root@localhost kouzou]# find mysql find: ‘mysql’: そのようなファイルやディレクトリはありません [root@localhost kouzou]# cd / [root@localhost /]# find mysql find: ‘mysql’: そのようなファイルやディレクトリはありません [root@localhost /]# tree -mysql / > allfiles bash: tree: コマンドが見つかりませんでした... [root@localhost /]# find /mysql find: ‘/mysql’: そのようなファイルやディレクトリはありません [root@localhost /]# tree mysql bash: tree: コマンドが見つかりませんでした... 場所から「/」から検索すると200程、出てきました。 どうやったら、コマンドで見つけられますか? ご多忙中、大変恐れ入ります。 ご回答の程、宜しくお願い申し上げます。

  • 2つのfedora18のPC同士でsmplayer

    を実行しています PC1:OSがfedora18でアプリsmplayerが入っているPC PC2:OSがfedora18でアプリsmplayerと動画/root/movie.aviが入っている PC1でgnome-terminalを開きその中でPC2にSSH接続し smplayerで/root/movie.aviを実行すると以下の様にできませんでした [root@fx8350 ~]# ssh 192.168.2.7 Last login: Wed Aug 27 06:11:05 2014 from 192.168.2.8 [root@fx8120 ~]# smplayer /root/mover.avi smplayer: cannot connect to X server [root@fx8120 ~]# PC1からPC2の操作であることは前提ですが smplayerはPC1上で実行するのではなく PC2上で実行しPC2のモニタの中で動画を再生したいのです どうすればよいでしょうか?

  • 他PCにsshで接続した場合の自PCでの相手のパス

    を明確に設定する方法はあるでしょうか? 現在以下のPCがあります PC1:OSはFedora18、プライベートIPアドレスは192.168.2.8 PC2:OSはFedora18、プライベートIPアドレスは192.168.2.7 PC1のgnome-terminalにおいて ssh 192.168.2.7 でPC1からPC2に接続すると PC2内のファイル/root/ビデオ/my-movie.aviを PC1のnautilusにより /run/user/0/gvfs/sftp:host=192.168.2.7/root/ビデオ/my-movie.avi として表示させることが出来ます /run/user/0/gvfs/sftp:host=192.168.2.7/ というパスは非常に長く表現も異様なのでもっと簡単にできないでしょうか? 実は動画ソフトparoleでPC2内のファイル/root/ビデオ/my-movie.aviを PC1のgnome-terminalで再生する場合には parole sftp://192.168.2.7/root/ビデオ/my-movie.avi を入力しリターンキーを押せばいいのですが 動画ソフトsmplayerでPC2内のファイル/root/ビデオ/my-movie.aviを PC1のgnome-terminalで再生する場合には smplayer /run/user/0/gvfs/sftp:host=192.168.2.7/root/ビデオ/my-movie.avi を入力しリターンキーを押さなければなりません これでは不便なので教えてください

  • ターミナルの切り替え

    SSHでVPS(Cent OS5.8)に接続してrailsのサーバーを立ち上げました。そうすると当たり前ですが実行されターミナルに状態が出力されます。このときにターミナルは別の操作ができなくなるのですが、この場合どうやれば実行させつつ別の作業操作ができるのでしょうか。 それともPC側から別のプロンプトを立ち上げてSSHでログインするのでしょうか。Linuxは初めてなのでご教授の方よろしくお願いします。

    • ベストアンサー
    • Ruby
  • 【sed】変数に設定したコマンドの実行について

    お世話になります。 一度変数に文字列として格納したsedコマンドの実行についての質問です。 以下、「実装1」のように、「あるファイルの最終行を除外して別のファイルに書き込む」という処理を行おうとしています。 ログ出力などの関係で、実行するコマンドを一度変数に格納する必要があるのですが 一度変数に格納して実行すると「実装2」のようにエラーが出てしまいます。 変数に格納したsedコマンドを実行するにはどのようにすればいいでしょうか? なお、シェルはbashです。 実行例ではターミナルから直接実行していますが、実際にはシェルスクリプトにして実行します。 以上、どなたかご教示頂けないでしょうか。 ■実装1 [root@localhost tmp]# cat /tmp/data aaa bbb ccc [root@localhost tmp]# sed -e '$d' /tmp/data >/tmp/data2 [root@localhost tmp]# cat /tmp/data2 aaa bbb [root@localhost tmp]# ■実装2 [root@localhost tmp]# CMD='sed -e $d /tmp/data >/tmp/data2' [root@localhost tmp]# echo $CMD sed -e $d /tmp/data >/tmp/data2 [root@localhost tmp]# $CMD aaa bbb sed: >/tmp/data2を読み込めません: そのようなファイルやディレクトリはありません [root@localhost tmp]#

  • Macのターミナルのエラー(特定文字入力不可.他)

    MacOSXのターミナルで問題が起こりました。 問題1 『eという文字のみ入力できないのです。入力しようとeのキーを押すと、ポッとエラー音がして入力されません。他の文字は入力できています。どうしたら元の入力できる状態にな戻りますか?(インストールCDからターミナルを上書きしてみても効果なしでした)』 問題2 『ターミナルを起動するといきなり以下の文がポッというエラー音とともに出ます。始めは出てませんでした。 th476a:~ ユーザーディレクトリ名$ /Usrs/ユーザーディレクトリ名/ディレクトリ1/ディレクトリ2/4-25.out -bash: /Usrs/ユーザーディレクトリ名/ディレクトリ1/ディレクトリ2/4-25.out: No such file or directory この4-25.outというファイルは以前作ったC言語のファイルです。このファイルを実行した後から毎回ターミナル起動時にこの文がでるようになりました。ちなみに、4-25.outがその場所にあると毎回実行されてしまいます。どうにかしてこの文を表示されなくしたい(元の状態に戻したい)のですが、どうしたらよいでしょうか。』 どうかよろしくお願い致します

    • ベストアンサー
    • Mac
  • ディレクトリーを指定してxtermを実行?

    gnome-terminalを実行すると、ホームディレクトリになります。 ディレクトリーを指定してターミナルを実行する方法を教えて下さい。 よろしくお願いします。

  • コマンドラインでのgFTPの使い方を教えてください

    man gftp で SYNOPSIS:gftp [options] [[proto://][ user : [pass] @] server [: port ][/ directory ]] となっていたので gftp ssh://root:password@192.168.2.6/root/ビデオ を実行すると [root@fx8120 ~]# gftp ssh://root:password@192.168.2.6/root/ビデオ usage: gftp [[protocol://][user[:pass]@]site[:port][/directory]] [root@fx8120 ~]# となり使い方が間違っているのでSYNOPSISがでてきます どのようにきじゅつしたらいいのでしょうか? よろしくお願いします

  • .bash_historyについて

    .bash_historyファイルがホームディレクトリと、ルート直下に有ります。 ホームディレクトリの.bash_historyは各ユーザのコマンド履歴だと理解できるのですが、ルート直下の.bash_history(所有者はroot) は誰のコマンド履歴でしょうか? /root/.bash_historyもあるのでrootのコマンド履歴が2カ所あるというのも理解できないです。 [root@localhost ~]# locate .bash_history /home/hoge/.bash_history /home/abc/.bash_history /.bash_history /root/.bash_history