GNUコマンドラインユーティリティ

Mac OS XがBSDに基づいていることは秘密ではありません。その結果、ls、find、xargsなど、BSDベースのコマンドラインユーティリティの完全なセットを継承しました。 それらは適切で正しいものであり、それらを使用することはかなり可能です-ただし、Linuxを長い間使用している場合、おそらくこれらのユーティリティのGNUバージョンに慣れているでしょう。たとえば、 ---



、通常のオプション--help-まあ、あなたは一般的に開発しています習慣。 私もそのような人々に属し、Terminal.appで数十のコマンドを入力する必要があったとき、10分後に胸の毛引き裂き、緊張し、男を読み始めましたが、これは労働生産性に貢献しませんでした。

少し後で、私は-なぜ、実際にはGNUバージョンのユーティリティを使用できないのか-システムに付属していないという理由だけで考えましたか? いいえ、これはUNIXの方法ではありません!



数分の検索で疑念が確認され、必要なユーティリティのバージョンがGNU coreutilsで見つかりました。 今、問題はそれらをインストールする方法でした。

一般的に、2つのオプションがありました。



私は2番目の方法を使用することを好みましたが、これは皆の個人的なビジネスです:-)

そのため、MacPortの簡単なインストールガイドは公式Webサイトで見つけることができます-プロセスは非常にシンプルで簡単です。AppleDeveloper Tools(特にxcode)をインストールするだけです。

MacPortのインストール後、最も単純なケースでは、ターミナルで1つのコマンドを実行するだけで済みます。
  sudo port install coreutils 


なぜ最も単純な場合ですか? 問題は、MacPortはデフォルトではファイルユーティリティを上書きせず、そのバージョンを別の名前で別のディレクトリにインストールすることです。

/ opt / local / bin / g lsの代わりに/ usr / bin / ls

/ opt / local / bin / g / usr / bin / findの代わりにfind

...


この問題を解決するにはいくつかの方法があります。特定の問題を選択することは全員のビジネスです。それらをリストします。

  1. 最も簡単な方法は、with_default_namesオプションを使用してcoreutilsをインストールすることです。

      sudo port install coreutils + with_default_names 
    この場合、ユーティリティはデフォルトで上書きされます。 システムユーティリティが互換性のあるユーティリティで置き換えられても、システム全体としては評価されない可能性があるため、この方法を使用することはお勧めしません。
  2. 2番目のオプションは、デフォルトユーティリティの名前を変更し、新しいプログラムへのリンクを追加することです。
      mv / usr / bin / ls / usr / bin / mls
     ln / opt / local / bin / gls / usr / bin / ls 
    この場合、ユーティリティの元のバージョンは、接頭辞「m」が付いた名前で利用できます。 また、最善の方法ではありません。/usr/bin/lsを使用すると、例外なくすべてのプログラムがGNUバージョンのユーティリティを取得するためです。
  3. 3番目の方法は、イデオロギー的に最もベテランです。 リンクは「g」プレフィックスなしで作成されますが、 /opt/local/bin



      ln / opt / local / bin / gls / opt / local / bin / ls 
    次に、ローカルの~/.bashrc



    で、このパス PATHの/usr/bin



    に追加します。
      export PATH = / opt / local / bin:$ PATH 
    または、一般に別のディレクトリにリンクを作成し、$ PATHの前にリンクを書き込むことができます。 この場合、GNUバージョンのユーティリティを使用するのは、あなただけで、お気に入りのシェル(macportからインストールすることもできます)でのみ作業します。 他のすべてのプログラムと人々は、それらの存在を推測することさえせず、標準のBSD互換のfileutilsを使用します。
  4. grubozavrの男性gribozavrがアドバイスする4番目のオプション(および、私自身もこれまで考えもしなかった白髪の恥)は、別名を作成することです。
     エイリアスls = '/ opt / local / bin / gls' 
    これを〜/ .bashrcに追加します


したがって、コマンドユーティリティの完全なGNUバージョンを取得します。これは、義務や誠実な衝動としてMacを使用するLinuxoidにとって非常に便利です(私は誇らしげに後者にランクされています)。



All Articles