MacのコマンドラインはLinuxと比較してどうですか?


30

Ubuntu Linux、特にコマンドラインが大好きです。しかし、少なくとも現時点では、Windowsの方がユーザーフレンドリーであるということを認めざるを得ません。Windows用のソフトウェア、ドライバー、および機能が充実しているだけです。

MacがUnix上に構築されていることを知っているので、Macがそれらの間のスイートスポットかどうか疑問に思います。しかし、私は疑問に思う:MacのコマンドラインはLinuxのbashにどれほど似ているのか?vim、bashスクリプト、gitなどを使用してすぐに選択できますか?ディレクトリの変更などの一般的なコマンドは異なりますか?オンラインの「比較と対照」リソースを知っている人はいますか?


回答:


11

bashはbashであるため、シェルとそのビルトインは同じです。しかし、いくつかのようなツールの振る舞いがあることに注意してくださいpsまたはhead細部が異なることができますは、このようにあなたのスクリプトが失敗する可能性があります。


5
これはMacとLinuxの問題ではなく、Unixのさまざまなフレーバーがわずかに異なる問題を処理するということではないことに留意してください。Linuxと、たとえばHP-UXでも同じ(実際にはより多くの違い)が見つかります。
KeithB

2
LinuxとOSXでgnu binutilsツールセットを標準化できます。MacportsとhomebrewはどちらもOSXにインストールされます。これにより、少なくともls / tar / etcなどが標準化されます。psは依然としてOSに依存しています。
skarface

またfilefile -iしばらくLinux上file -I☹️OSXで
アンソニー・香港

30

Mac OS XはUnix OSであり、コマンドラインはLinuxディストリビューションと同じ99.9%です。bashはデフォルトのシェルであり、同じプログラムとユーティリティをすべてコンパイルできます。大きな違いはありません。Mac用のパッケージ管理を提供するMacPortsなどのさまざまなプロジェクトもあります。


1
+1:上記は真です。Macがコードのコンパイルやビルド済みパッケージの使用に関してIntelまたはPowerPCプロセッサを使用している場合、新しいMacはIntelだけであると理解しますが、間違っている可能性があります。typo @ w0rm:パッケージ*管理。:-)
Sirex

2
スクリプトはおそらくMacとLinuxの両方で機能しますが、両方のプラットフォームでテストすることは常に賢明です。Linuxディストリビューション間や、同じLinuxバージョンの異なるバージョン間でさえ、かなりの(微妙な)違いを見てきました。
-Roalt

1
FeeBSDは正確です。
digitxp

6
@digit、それは彼らが請求するBSDバージョンでなければなりませんか?s / F / Fr /;)
ジョンT

18
99.9%は正しくありません。OS XはBSDバリアントであり、GNUユーティリティはありません。いつでもインストールできますが、多くのコマンドには異なるオプションがあります。Unixではありますが、Linuxではありません。
マッテオ

12

非常に似ていますが、BSD v。Linuxの違いを知っている場合は、MacにBSDの動作があることを期待してください。


面白い。それについて詳しく説明していただけますか?何故ですか?
fat_mike

@fat_milkeは、OSXはLinixが使用するGNUではなくBSDユーティリティを使用するため
user151019

b / c Linuxよりも早くUnixから分岐した* nixカーネル(BSDベースのNeXTSTEP)から派生したMac OSX。したがって、それらはいくつかのユーティリティのわずかに異なる実装で終わりました。参照en.wikipedia.org/wiki/MacOS
ニーチェ


9

いくつかのこと-コマンドラインの意味に依存します。

  1. おそらくbashを実行しますが、これは他のUNIXのbashと同じです。bashプログラミング言語も同じバージョンになります-同じバージョンである限り。Bashのバージョンは言語にわずかな違いがありますが、これはMacOSXとLinux自体とは関係ありません。

実際にこれにぶつかるかもしれません-ライセンスの理由から、Macの/ bin / bashは3.xに固定されています。4または5に慣れている場合、軽微な互換性の問題が見つかることがあります。

  1. bash自体は、「コマンドライン」の小さなサブセットです。役に立つようにするには、通常、awk、ls、cutなどの他の一般的なUNIXユーティリティを使用します。その歴史のため(LinuxやSystemVではなく、BSDから派生しています)、Macバージョンのユーティリティは、Linux(別名GNUバージョン)で使用しているものとは異なります。これらには、少なくともいくつかのフラグの違い、およびLinuxとの出力と機能の違いがあります。これらを使用するスクリプトは、補正するために変更する必要があります。BSD awkとGNU gawkはかなり異なります。または、これらのGNUバージョンをmacportsまたはhome brewから取得し、これらがデフォルトになるようにPATHを設定できます(ビルトインバージョンよりも)。

  2. MacOS Xには、いくつかの新しいクールなツールもあります。 openいいですね、ダブルクリックしたようにオブジェクトを開きます。 defaultsGUI設定パネルではなく、いくつかの設定を行うことができます。 textutil便利sayで楽しいことがあります。


3

MacとLinuxのコマンドライン機能は、OS XのGUIの下にUNIXのフレーバー(ダーウィンと呼ばれる)があるため、実際に似ています。

OS Xのデフォルトのシェルはbashであるため、それに精通していればうまく調整できます。

Macでは、デフォルトのコマンドラインアプリケーションはターミナルです。他にも多くのエミュレータがありますが、全体的なターミナルは、Linuxで使用しているシェルと非常によく似たルックアンドフィールを提供します。

違いの主な原因は次のとおりです。

  • 時々異なるコマンドライン引数(du例:参照)。cdまたはlsなどの主要なコマンドは似ています。
  • Linuxの場合のように、手作業で編集してはならないOS Xの部分がさらにあります。これは独自のトピックですが、Macを実行することは、構成と維持の点でLinuxボックスを実行することとまったく同じではないことに注意してください。

OS Xのコマンドライン(例:openコマンド)から利用できるクールなハックもたくさんあると言われています。以前のスレッドやブログ記事にはたくさんの情報があります。

MacPorts、Fink、またはOS X用の他のいくつかのパッケージ管理システムを介して、多数のオープンソースパッケージ(つまりgithgなど)を手に入れることもできます。また、必要に応じてシステムのようなUNIX / Linux向けの他のソースパッケージを構築することもできます。


0

1つの違いがあります。MacとLinuxの両方のbashシェルでこのコマンドを試してください

find /etc -name "*.conf"

/ etc内に多くの.confファイルがあるにもかかわらず、Macは何も表示しません。


1
たぶん、あなたは人々にこれがなぜであるかを伝えることができました。
マッド

1
確かではありませんが、POSIXでのパス名の展開に関係しているのかもしれません。このコマンドは機能しfind /etc/* -name "*.conf"ます。それでも、MACコマンドラインとLINUXコマンドラインを対比するための例として提供されました。-ve投票を推論できません。
アントニートーマス

4
OSXの/ etcはシンボリックリンクであるためです。試しfind /etc/ -name "*.conf"てみると、/ etcがファイルではなくディレクトリであることを示しています。DOES findLinuxでは、デフォルトではディレクトリとしてのディレクトリへのシンボリックリンクを扱いますか?
MechEthan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.