痔になりやすい生活習慣とは?

お世話になります.
※端末=ターミナルです.
早速ですが,Ubuntu(Linux)の端末1から別の端末2を呼び,端末1から呼び出した新しい端末2の上でコマンドを実行する方法はありませんでしょうか?

調べてところ,
$ gnome-terminal
のオプションで,「 -e, --command」 や「 -x, --execute 」を利用することで,端末2を起動しながらコマンドを実行できる様です.(gnome-terminal --help 参照)

しかし,実際に試したUbuntu8.10では,端末2が起動するものの,その上で指定したコマンドが実行されません.

やり方をご存知の方がいましたら,ご教授よろしくお願いいたいます.

このQ&Aに関連する最新のQ&A

Linux 端末」に関するQ&A: RedHatLinuxの端末でftp

A 回答 (2件)

書式を勘違いされているような?



普通に
gnome-terminal -e top &
といった形で実行できませんか?

この回答への補足

早期回答ありがとうございます。
上記コマンドを試したところ、端末2の起動後、topが実行されました。
しかし、別なコマンド、たとえば
$ gnome-terminal -e cd ../ &
を実行すると
「この端末の子プロセスを作成中にエラーが発生しました」と言われます。また、
$ gnome-terminal -e ls
とすると、エラーはありませんが、実行後すぐに消えてしまっているようです。待機を必要とするコマンドのみ表示しつづける仕様なのでしょうか?
以上、よろしくお願いいたいます。

補足日時:2011/01/27 23:15
    • good
    • 4
この回答へのお礼

依然として、cdの際にエラーが出る部分について理解ができていませんが、仕様についてすこし理解しました。

具体的なコマンドを記述していただき大変参考になりました。
ありがとうございました。

お礼日時:2011/01/29 06:18

「待機を必要とするコマンドのみ表示しつづける」という奇特な仕様ではないと思います. 普通は


「起動したコマンドが終わったら終了する」
というつくりになるはず.

cd でエラーになるのは「そんな実行ファイルが存在しないから」でしょうね.
    • good
    • 1
この回答へのお礼

ご回答ありがとうございます。
「起動したコマンドが終わったら終了する」のですね。
エラーについては、まだ理解が追い付いていませんが、これからも精進したいとおもいます。

お礼日時:2011/01/29 06:14

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

よろしくお願いします

Aベストアンサー

No2です。

TerminalをウィンドウのXボタンで閉じるのは普通でないと思いますが。

gnome-terminal -e "sh -c 'ls;exec bash'"

で。

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Qシェルスクリプトファイルをダブルクリックすると

表示するか実行するか尋ねるウィンドウが開きますが
ウィンドウが開かずに直ちに実行されるようにする方法はあるでしょうか?
あればその方法を教えてください

よろしくお願いします

Aベストアンサー

デスクトップに置いた場合の話だと思いますけど
それはLinuxにおいて、あるいはX Window Systemにおいて
普遍的な挙動ではありません。

今KDE4でやったら、普通に実行されるようですから
それ以外のデスクトップ環境での挙動だと思います。

いずれにせよ、右クリックから設定できるかもしれません。
あるいは、環境によっては、設定ファイルの編集などで対応できるかもしれません。


個人的には、デスクトップからウィンドウを全部消すような異常事態は無いので
デスクトップ上のアイコンを使うという習慣がありません。

一連の作業を自動化するためのシェルスクリプトだとしたら
ディレクトリーの指定などをきっちりやっておかないと
シェルスクリプトがおかしな挙動を起こしそうで
ことさらにデスクトップとかには置きたくないなぁと思っています。

どうしても、アイコンを置きたいのであれば
第三者がうっかり実行するリスクまで含めて
気をつけて設置しなければならないと思います。

Qシェルスクリプトでファイル内の数値文字列を数値として扱うには

失礼します。
シェルスクリプトでファイル内のテキスト(数値文字列)を取得して、それを使って計算するにはどうすれば良いでしょうか?

str:ファイル内のテキスト(数値文字列)

res=$(( $str + 1 ))

・エラー
")syntax error: invalid arithmetic operator (error token is "


よろしくお願いします。

Aベストアンサー

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをexprに書き換えたところ
$ ./test2.sh
Using expr
09:19:00.302748000
09:19:19.259990000

exprだと19秒ですが、$(( 演算 )) だと10秒程度なので、演算が多くなれば確かにexprは不利ですね。

bashをご使用と判断して

res=$(( $str + 1 ))
ではなく、
res=$(( str + 1 ))
だと思います。

> exprもやってみたのですが、処理が遅くなるので使いません。
興味があって以下のシェルで検証してみました。

#!/bin/bash

str=1
i=0

echo 'Using $((str + 1))'
date '+%H:%M:%S.%N'

while [ $i -lt 10000 ]
do
str=$(( str + 1))
i=`expr $i + 1`
done

date '+%H:%M:%S.%N'

exit

$ ./test.sh
Using $((str + 1))
09:18:46.290418000
09:18:56.929345000
これをe...続きを読む

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qshはシェルなのかコマンドなのか?

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切り替えるには、コマンドライン
でシェルの名前を入力します。exitコマンドで、元のシェル
に戻ります」とあり、その文章の下には実際にshと打ち込んでexit
で元に戻る様が書いてあるので実際に試してみました。

[root@localhost ~]# sh
sh-3.2# exit
exit
[root@localhost ~]#

この記述のせいでますますわからなくなりました。

なお、最後のbinがシェルスクリプトであることは理解して
おります。

ご存じの方、ご教授頂ければ幸いです。何卒宜しくお願い申し
上げます。

http://d.hatena.ne.jp/KishikawaKatsumi/20080504/1209922424

$ sudo sh j2sdk-1_4_2_13-linux-i586-rpm.bin
$ sudo rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
と、shと打ち込むと最後の.binが消えますが、shは
シェルなのか、それともコマンドなのかどちらなの
でしょうか?

手元にあるlinuxの入門書には「shはシェルの一種である」
と記述があります。googleで検索をしてみましたが、
コマンドであるような記述もあり、混乱しております。

また、その入門書には「シェルを切...続きを読む

Aベストアンサー

shを始めとするシェルには2つの側面があります。

1) インタラクティブ(対話的)シェル
「sh」だけで起動した場合はこの状態です。最初はキーボードからの入力待ち状態で、1行コマンドを入力してリターンを押すと即座に実行し、コマンドが終了すると、再度入力待ち状態に戻ります。

2) コマンドインタープリタ
「sh ファイル名」で起動した場合はこの状態です。キーボードの代わりに、ファイルからコマンドを読み取り/実行を繰り返します。最後まで処理を終えるか、ファイル内で終了コマンドを読み取った段階で終了します。

シェルスクリプトというのは、要は、一連の処理手順を手で入力する代わりにファイルにまとめて一気に実行できるようにしたものと思えば良いでしょう。

Qshellスクリプトから別のshellスクリプトを呼び出す方法

今現在VineLinux4.1をサーバとして起動させております。
その関係もありまして維持としてシェルを動かす事はある意味必須の状態です。
本題はAと言うスクリプトからBと言うスクリプトを呼び出す方法がわかりません。
試してみた方法はsourceで呼び出す方法です。
A.shの中身を以下とすると

#!bin/bash
echo ="B.shを呼び出します"
source B.sh
echo ="シェルスクリプトを終了します"
exit 0

上記のようにした場合、最初のecho文は出力され、B.shの内容を一通り終えると最後のechoは出力されずA.shは完了しません。
ごくごく基本的なことかもしれませんが、うまく検索にも引っ掛けられなかったので、ご質問させていただきます。
よろしくお願い致します。

Aベストアンサー

#2です。

>cshは=の前後にスペースが入るかと思いますが、今回はbashを指定しておりますので。

cshの何のことを言ってるのかわかりませんが、例えばbashで、
echo="シェルスクリプトを終了します"
は、echoコマンドじゃなくて、echo というシェル変数に「シェルスクリプトを終了します」という文字列をセットするコマンドになります。当然何も表示されません。

>A.shとB.shは単独で正常に稼動できる状態です。

B.shが単独で正常に動いているように思えることは、B.shに問題がないことを意味しません。
例えば、B.sh をexitで終了したりするとそこでbashは終了するわけだし。

>質問の例はあくまで例ですが、

書かれているA.shに問題がなさそうなので、B.shの中に原因があると想像しました。
現象が発生する最小限の、A.sh と B.sh の内容をすべて正確に書いてください。

今気づきましたが、A.sh の最後に無意味なexit 0がありますが、もしかして、B.shの最後にもexit 0が?

source コマンドは、その場所に指定したファイルの内容を挿入するコマンドです( C の #include 相当 )。もし、新たにbashプロセスを起動して、そこでB.shを動かしたいなら、
bash B.sh
です。他には#1の方が書いた方法もあります。

#2です。

>cshは=の前後にスペースが入るかと思いますが、今回はbashを指定しておりますので。

cshの何のことを言ってるのかわかりませんが、例えばbashで、
echo="シェルスクリプトを終了します"
は、echoコマンドじゃなくて、echo というシェル変数に「シェルスクリプトを終了します」という文字列をセットするコマンドになります。当然何も表示されません。

>A.shとB.shは単独で正常に稼動できる状態です。

B.shが単独で正常に動いているように思えることは、B.shに問題がないことを意味しませ...続きを読む

Qgnomeのスタートアップの設定ファイルはどこ??

CentOS6のGnomeのスタートアップの設定ファイルについて教えてください。

CentOS起動時にgnome-terminalを起動できるようにしまし。(GUIにて)

<方法>
1) gnome-session-properties

2)管理者権限でGUIから自動起動するコマンド(gnome-terminal)を追加

やりたいことはこれで出来たのですが、

*GUIにて変更して、どのprofileの記述が変わったため自動実行が出来たのか

これが気になっています。

rc.d関連かな?とか思いましたが分からず終い。。。

ということで

質問は
1.スタートアップをGUIで登録するとどの設定ファイルが変わるのか

2.スタートアップの登録をCUIで行う方法

この2点を質問させてください。

Aベストアンサー

>gnome-tereminal
>eamcs
>この2つを両方起動するには、
>この設定ファイルをどのように記述するものでしょうか??

おなじように書くだけですが……。
ちなみにアプリ1つにつき1ファイルですから、別に作成する必要があります。
ファイル名は拡張子が固定で他は任意…だと思われますが…。

cat << EOT > ~/.config/autostart/emacs.desktop
[Desktop Entry]
Type=Application
Exec=/usr/bin/emacs
Hidden=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=Emacs
Name=Emacs
Comment[ja_JP]=
Comment=
EOT

とか。
開いたGNOME端末の中でCUIのemacsを起動したい。
ということであれば、この方法ではダメですけどね。
先の回答のExecの行を
Exec=/usr/bin/gnome-terminal -e "/usr/bin/emacs -nw"
と変更することになりますか。

>gnome-tereminal
>eamcs
>この2つを両方起動するには、
>この設定ファイルをどのように記述するものでしょうか??

おなじように書くだけですが……。
ちなみにアプリ1つにつき1ファイルですから、別に作成する必要があります。
ファイル名は拡張子が固定で他は任意…だと思われますが…。

cat << EOT > ~/.config/autostart/emacs.desktop
[Desktop Entry]
Type=Application
Exec=/usr/bin/emacs
Hidden=false
X-GNOME-Autostart-enabled=true
Name[ja_JP]=Emacs
Name=Emacs
Comment[ja_JP]=
Comment=
EOT

とか...続きを読む

Qgrepで検索文字列が完全一致した行だけ取り出す方法

grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか?

通常は
grep hoge hoge.txt

と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。

例えばhoge.txtの中に
cc ghoge
kkl hogem
jjll hoge
という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。

何かよい方法があれば教えてください

Aベストアンサー

-w オプションじゃだめですか?

参考URL:http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング