お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2011-11-14 09:52:41

mcmlxxxvii
新しいメンバ
登録日: 2011-10-13

端末のカレントディレクトリの違い

おはようございます。

Ubuntu10.10を使っている者です。


以前、端末(terminal)を起動するときのデフォルトの表示サイズを132x24にしたかったため、パネル上にショートカット(ランチャ)を作って、「ランチャのプロパティ」のコマンド欄に「gnome-terminal --geometry=132x24」と入力して起動させていました。

最近、キーボードショートカットで端末を起動させたいと思い、「システム」→「設定」→「キーボードショートカット」の「端末の起動」では表示サイズは変更出来なかったので、「独自のショートカット」に「端末の起動(132x24)」と追加して、ランチャ同様、コマンド欄に「gnome-terminal  --geometry=132x24」と入れ、Ctrl+Alt+Tを割り当て、端末を起動するようにしました。
(デフォルトの「端末の起動」は「無効」になりました)


ところが、パネル上のショートカットでは、端末はホームディレクトリで開きますが、Ctrl+Alt+Tで端末を開くと何故かルートディレクトリになってしまいます。

mcmlxxxvii@pc:/$

なんとなく怖いので、いつも「cd」を打ってホームディレクトリに戻していますが、何故キーボードショートカットだと、こうなるのでしょうか。
また、ホームディレクトリで開く方法は無いでしょうか。


・割り当てキーを、Shift+Ctrl+Oなどと変えても同じでした
・デフォルトの「端末の起動」は、ホームディレクトリで開きます
・/etc/passwdの自分の箇所は、「mcmlxxxvii:x:1000:1000:mcmlxxxvii,,,:/home/mcmlxxxvii:/bin/bash」です(ユーザーは自分一人です)
・端末のバージョンは、2.32.0です。


以上です。
よろしくお願いします。

オフライン

 

#2 2011-11-14 19:58:24

STGSAGWAN
メンバ
登録日: 2008-11-12

Re: 端末のカレントディレクトリの違い

$HOMEで開くには、

コード:

gnome-terminal --geometry=132x24 --working-directory=$HOME

か、

コード:

sh -c "cd $HOME && exec gnome-terminal --geometry=132x24"

のような泥臭い方法で。

--
何故ルートディレクトリがカレントディレクトリになるかについてですが、gnome-terminalのソースコードには確かに"/"へchdirするコードがあります。
しかし、何故その分岐を辿るのが私にはよく理解できないです。
terminal.cのmain関数が始まって直ぐの箇所です。

コード:

  /* Now change directory to $HOME so we don't prevent unmounting, e.g. if the
   * factory is started by nautilus-open-terminal. See bug #565328.
   * On failure back to /.
   */
  home_dir = g_get_home_dir ();
  if (home_dir == NULL || chdir (home_dir) < 0)
    (void) chdir ("/");

g_get_home_dir: http://developer.gnome.org/glib/2.28/glib-Miscellaneous-Utility-Functions.html#g-get-home-dir

オフライン

 

#3 2011-11-15 10:05:24

mcmlxxxvii
新しいメンバ
登録日: 2011-10-13

Re: 端末のカレントディレクトリの違い

STGSAGWANさん、おはようございます。
ご回答有難う御座います。

ソースコードも提示していただき、恐れ入ります。
g_get_home_dir ()がNULLだったら、ルートになっちゃうって感じ・・・かな・・・

・・・まだまだ勉強不足で、理解できる領域ではなさそうです。


ともかく、 「--working-directory=$HOME」オプションを加えることで、Ctrl+Alt+Tでホームディレクトリを開けるようになりました。
また、自分のPC固有の問題でもなさそうなので、安心しました。

この度は有難う御座いました。

オフライン

 

Board footer

Powered by FluxBB