web-dev-qa-db-ja.com

Cygwinのデフォルトの起動ディレクトリを変更するにはどうすればよいですか?

Cygwinを起動するときはいつでも、cygwinを使用するときに気にする唯一のディレクトリまで、いくつかのレベルまでcdする必要があります。

どうすればデフォルトでこの特定のディレクトリでcygwinを起動できますか?つまり、Cygwinを起動するたびに、そのディレクトリに既に存在しますか?

おそらくそれと近いものをいくつか見つけましたが、理解できません。これらの(n00b)用語を検索しても、実際には結果がありません。どんな助けでも素晴らしいです!

37
Matt

追加するだけ

cd /path/to/directory/you/care/about

〜/ .bashrcファイルの最後に。

49
garyjohn

「start cygwin」を定義しますか?マシンの電源を入れたときにcygwinサーバーを実行できますが、それはあなたが意図していることではないと思います。

つまり、シェルプロンプトを開くたびに特定のフォルダーに移動する場合は、それを$ HOME/.bashrcに置くことができます。

Cygwinエディター(UNIXの行末を使用するエディター)を使用して$ HOME/.bashrcを編集し、行を追加します。

cd /whatever/directory/you/want

このディレクトリに頻繁にアクセスする場合は、エイリアスを作成することをお勧めします。

あなたの$ HOME/.bashrcに以下を入れてください:

alias GT='cd /whatever/directory/you/want'

好きなように呼んでください。 「行く」ためにGTを使用しましたが、大文字にしない組み込みコマンドから簡単に分離できるため、大文字にしました。

3
Rich Homolka

.bash_profile(または.profile)の最後の行にcd your/dirctory/here

2
glenn jackman

このソリューションでは、.bashrcを編集する必要はありません。

以下はmkpasswdの公式ドキュメントの抜粋です。

たとえば、次のコマンド:

例3.11。代替ホームルートの使用

$ mkpasswd -l -p "$(cygpath -H)" > /etc/passwd

ローカルユーザーのホームディレクトリをWindowsの「プロファイル」ディレクトリに配置します。

stackoverflow の類似の質問からコピーされた回答がここにあるものよりもこのソリューションが好きなので)

0
Line

pythonスクリプト

!!使用前に末尾に.bashrcの文字列を追加してください!!

使用する name_script.py c:\path

path_bachrc-.bashrcへのパス

cmd-cygwin.batへのパス

#***********************************************#
#   [email protected]                         #
#***********************************************#
import argparse
import subprocess
import os

path_bachrc = 'c:/PP/cygwin/home/adm/.bashrc'
cmd = 'c:\PP\cygwin\Cygwin.bat'

def delEndLineFromFile(filename):
    with open(filename, 'r') as f:
        aList = f.readlines()

    bList = aList[0:-1]

    with open(filename, 'w') as fd:
        fd.writelines(bList)


parser = argparse.ArgumentParser()
parser.add_argument("newPath", type=str, help="New path in .bachrc cygwin")
args = parser.parse_args();

delEndLineFromFile(path_bachrc);

p = args.newPath;
pNew = 'cd /cygdrive/' + p[:1] + p[2:].replace('\\', '/')
print(pNew)

with open(path_bachrc, 'a') as f:
    f.write(pNew)

PIPE = subprocess.PIPE
p = subprocess.Popen(cmd, Shell = True)
0
user236976