16

cygwinでいくつかのエイリアスを定義しようとしていますが、成功しません。私は.bashrcファイルの最後でこのようにしています。

alias foo='pwd'

cygwinのフォルダー内と、現在使用しているWindowsユーザーのホームフォルダーの.bashrc両方にあるファイルにこの行を追加しようとしました。どちらの場合も、この行をファイルのコピーに追加しました。どちらの場合も、機能しませんでした。homeC:\Users\Nuno\/etc/skel/.bashrc

私は以前にこれを機能させていました。Cygwinを再インストールする必要がありましたが、それが二度と正しく機能しなくなったためです。すべてのファイルを削除しました(または、再インストールを行う場合は、少なくともそう思います)。homeまた、最初のインストール(動作していたとき)で、cygwinがフォルダー内に.bashファイルを作成していたことにも気づきました。さて、そうではありません。

私はWindows7を実行しているマシンを使用しています。

編集:私のcygwinホームフォルダはWindowsホームフォルダに設定されていますC:\Users\Nuno\。有効なファイルと思われるものをそこに配置しました.bashrcが、それでも機能しません。

前もって感謝します。

4

8 に答える 8

11

me_andがすでに何が起こっているのかを説明したように、何らかの理由でWindowsのHOME環境変数を削除できない、または削除する意思がない場合に備えて、回避策を追加したいと思います。

通常、Cygwinのショートカットは実行されます

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

代わりに、次のコンテンツを含むバッチファイルを作成して開始できます。

@echo off
set HOME=
start C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico -

これにより、ホームディレクトリ設定がWindows環境変数によって上書きされないCygwinウィンドウが起動します。

于 2013-03-26T22:03:25.977 に答える
10

.bashrcファイルは、CygwinBashが起動時にホームディレクトリがあると判断した場所からロードされます。編集でホームディレクトリを変更したと述べましたが、その方法は変更していません。そのため、そこで間違いを犯した可能性があります。

Cygwinは、2つの場所のいずれかからホームディレクトリをロードします。それらが異なる場合、問題が発生する可能性があります。

  • HOME環境変数。これは、Cygwinを起動した場合でも取得されるため、通常はWindows自体から取得されます。Win+を押して、[Pauseシステムの詳細設定]、[環境変数...]に移動すると、定義した環境変数を確認できます。「HOME」が「ユーザー変数」または「システム変数」のいずれかにある場合は、それを削除します。これは不要であり、問​​題が発生するだけです。

  • Cygwinの/etc/passwdファイル(通常C:\Cygwin\etc\passwdはWindowsから)。これには、システム上の各ユーザーの詳細を含む行がいくつかあります。7番目に:区切られたフィールドはホームディレクトリです。whoamiCygwin bashシェルから実行することで、どのユーザーを見ているかを知ることができます。

whoamiレポートの場合nunos、Cygwinに/etc/passwdは次のような行が必要です。

nunos:unused:1001:513:U-System\nunos:S-1-2-34-567890-123456-7890123-1001:/home/nunos:/bin/bash

それが/home/nunos重要です。それが何か違う場合は、おそらくそれをリセットする必要があります。その時点で.bashrc、Cygwinので使用します/home/nunos/

また、このためのスペースを含むディレクトリにも十分注意する必要があります。C:\Users\nunos 問題ないはずですが、特に注意してくださいC:\Documents and Settings\nunos。これはCygwinでは機能しません。

于 2013-03-26T20:48:57.410 に答える
7

同じ問題が発生し、〜/.bashrcに追加されたエイリアスが機能しませんでした。何らかの理由で、コンソールの起動時に〜/.bashrcが実行されなかったようです。

問題を修正する応答に出くわしました

したがって、.bash_profileファイルを作成する必要があります。これはデフォルトのスクリプトのようで、.bashrcが確実に実行されるように、このコードをその中に入れます。

# ~/.bash_profile: executed by bash for login shells.

if [ -e /etc/bash.bashrc ] ; then
 source /etc/bash.bashrc
fi

if [ -e ~/.bashrc ] ; then
 source ~/.bashrc
fi

それは私にとってはうまくいきます。.bash_profileが実行可能であることを確認してください。(chmod + x〜/ .bash_profile)

于 2013-06-05T12:29:00.810 に答える
2

これは本当に迅速で汚い方法ですが、ほとんどの場合は問題なく機能します。

「ls」だけでなく、常に「ls--color」を実行したいとします。.bashrcのものをいじくり回す代わりに、元のlsコマンドを基本的にブートレッグする単純な.batファイルを作成できます。

これが私がしたことです:

cd /bin
echo ls2.exe %* --color > lsNew.bat
mv ls.exe ls2.exe
mv lsNew.bat ls.bat

したがって、CMDからlsを入力するたびに、実際にはls.batを呼び出します。これにより、元のlsコマンドであるls2.exe --colorと、残りの引数が呼び出されます。 %*をうまく通過します。

于 2013-09-15T02:58:10.940 に答える
0

同じ問題が発生しましたが、ConEmuを使用してコンソールを実行していました。私は設定に入り、これから設定を変更する必要がありました:

CHERE_INVOKING = 1&%ConEmuDrive%\ Programs \ Cygwin \ bin \ sh.exe --login -i -new_console:C: "%ConEmuDrive%\ Programs \ Cygwin\Cygwin.ico"を設定します

これに:

set HOME =&set CHERE_INVOKING = 1&%ConEmuDrive%\ Programs \ Cygwin \ bin \ bash.exe --login -i -new_console:C: "%ConEmuDrive%\ Programs \ Cygwin \ Cygwin.ico"

その後、それは正しく動作します。

于 2015-06-28T06:01:17.220 に答える
0

cygwinから説明されているように機能します。

Windowsのホームディレクトリにファイル「.profile」を作成します。これは、cygwinを起動するたびに読み込まれます。

エイリアスを使用してファイルを編集することも、.bashrcを入手することもできます。

ソースを作成する場合は、「source .bashrc」を挿入し、Windowsのホームディレクトリにも.bashrcを保存します。これで、.bashrcの編集を開始できます。

于 2017-12-08T06:41:18.167 に答える
0

これは、Cygwin64を使用するWindows10で機能しています。「kubectl」は、「k」と入力したときに実行したいプログラムにすぎないので心配しないでください。変更後、Cygwinターミナルを再起動します。

Smith @ NB-Smith-3〜echo "alias k = C:/ Users / Smith / kube / kubectl" >> $ HOME / .bash_profile

このファイルを変更しますC:\ cygwin64 \ home \ Smith.bash_profile

于 2020-12-17T10:14:29.123 に答える
-1

同じ問題が発生したのは、パスが正しくない理由です。正しいパスは次のとおりです。D:\ C ++ \ cygwin \ home \ USER_WINDOWS.bash_profile

于 2015-06-03T19:50:08.687 に答える