コマンドラインを学ぶためにLinuxディストリビューションが必要ですか、それともOS Xで十分ですか?


12

コマンドラインの使用方法を学習します。具体的には、「The Linux Command Line:A Complete Introduction」という本を使用します。今、Linuxディストリビューションを使用して本を読み進める必要がありますか、それともOS Xで十分ですか?

Linuxディストリビューションが必要な場合、VMで使用するだけで十分ですか、それともネイティブにインストールする必要がありますか?


8
VMではなく物理ハードウェアにOSをインストールする必要がある唯一の理由は、パフォーマンスのためです。基本的な手順を学ぼうとしているだけなら、それは問題になりません。おそらくVMでArchのようなものを実行することをお勧めします。
-Bratchley


4
コマンドラインは、ユーザーとシステム間の単なるリンクです。Bashシェルの構文は同じかもしれませんが、システム固有の部分に対処する必要がある場合、違いが生じるでしょう。たとえば、OS Xには/procファイルシステムがなく、USBドライブはUbuntuのように表示され/Volumesない傾向があります/media/username。CentOSには異なるdhclient.confファイルがあります。などなど
セルギーKolodyazhnyy

4
提案されているクロスサイト複製は、MacBookでの仮想化パフォーマンスに関する非常に明らかに異なる質問です。質問はクロスポストされません。
マイケルホーマー

2
@Utku役に立つかもしれないのは、いくつかの概念を分離することだと思います:コマンドラインの使用と、それを使用するオペレーティングシステム。離れてコマンドラインを知りたい場合は、OS Xが動作し、Linux、BSD、またはWindowsでもある程度の努力が必要です。UNIXまたはLinuxについて知りたい場合、コマンドラインはそのほんの一部にすぎません。OSと対話するためのインターフェイスのみです。目的を明確にすると、学習しやすくなると思います:)
rickcnagy

回答:


33

LinuxをVMで実行することを強くお勧めします。すべてのソフトウェアは無料でダウンロードでき、VMで実行する場合とコマンドラインを学習する目的でネイティブに実行する場合の実際的な違いはありません。

さらに、Linuxコマンドラインはほとんどがbash + GNU coreutilsで構成されており、これはBSD Unixとは大きく異なります(OS XはBSD Unixの後継です)。BSD UnixとGNU Linuxでの引数の記述には、設定に非常に大きな違いがあります。両方のシステムで作業する場合などps、標準ユーティリティのさまざまなオプションを使用して、初心者でも自分で噛むことができtarます。

書籍がLinux固有のときにOS Xを使用すると、一貫性のない矛盾が頻繁に発生し、経験を積むと表面的に見えますが、学習しているときに混乱を招きます。あなた自身のために物事を簡単にしてください。

また、これにより、重要なファイルを削除または変更することにより、マシンを破損する心配なく実験することができます。

そして最後に、確かに大事なことではありませんが、OS XターミナルからVMへのSSH接続をセットアップできるようになるため、SSHキーの使用に慣れることができ、Linuxサーバーに関係なく、ネイティブマシン、ローカルVM、またはAWSまたはDigital Oceanで実行中:すべて同じように動作します!


ところで、VMとネイティブLinuxで同じディレクトリ構造を使用できますか?
Utku

3
はい。目的上、これはネイティブインストールとまったく同じです。
seumasmac

これが最も安全な答えですが、本によっては、コマンドラインブックの紹介では多くの(存在する場合)相違点が示されていないと思います。マニュアルを一見した後、私に突き刺さったのは、ディレクトリ構造の説明だけです。
pllee

1
@Utku本で/ dev / sdaまたは/ dev / hdaが言及されていて、インストールで見つからない場合は、/ dev / vdaを探してみてください。これは私が考えることができる唯一の可能な違いです、それはあなたにとって重要です。
キマックス

1
VMを使用する必要さえありません。HD上のスペースを使いたくない場合は、ライブCDを使用することもできます。また、フラッシュドライブから起動することもでき、CD /ブータブルフラッシュドライブの作成にかかる時間はごくわずかです。
クリスクレフィス

18

OS Xは、認定されたUNIXでありPOSIXに準拠しているため、コマンドラインを学習するには十分です。Linux固有のコマンドラインブックを見る場合は、OS XのユーザーランドツールはBSDから派生しているのに対して、LinuxのツールはGNUであり、それらの間には微妙な(それほど微妙ではない)違いがあることに留意する必要があります。

GNUツールで学習したい場合は、macportsまたはhomebrewを使用してGNUユーザーランドをインストールするか、VMで完全なLinuxインストールを実行できます。


だから、コマンドラインに「一般的な」本がないと思いますか?本はGNUまたはBSDツールを使用します。そうですか?
Utku

1
シェル(たとえばbash)に本がある場合、それを実行するほぼすべてのシステムに適しています。オペレーティングシステムの機能または特定のツールをシェルの外部で使用し始めると異なります。
テプピック

1
@teppicしかし、シェルはそれだけでどれほど便利ですか?知る限り、シェル自体は実行するコマンドがないため役に立たない。のような最も基本的なコマンドでさえ、lsGNUまたはBSDからのものでなければなりません(間違っている場合は修正してください)。したがって、これは、1つのツールチェーン(または環境)を選択し、そこでコマンドラインの学習を開始する必要があることを意味すると思います。そうですか?
Utku

@Utkuコマンドは同じです(ほとんどの場合)が、オプションと出力は異なる場合があります(多くの場合、GNUは多くの拡張機能を実装しているため)。BSDツールとGNUツールを簡単に行き来できます。
ケーシー

@caseyだから、OS Xの本から始めるかもしれません。その後、本に記載されていない動作に遭遇した場合、Linuxで試してみるか、同じコマンドのBSDバリアントを見るだけでしょうか。
-Utku

9

これまでのところいくつかの良い答えがありますが、デフォルトのOS Xコマンドラインツールから離れるもう1つの理由は、それらが非常に古いバージョンであることです。たとえば、OS X grepは2004年bashから、2007年からです!その理由は、AppleはGPL3に基づいてライセンスされたツールの出荷を拒否しているためです。

Linuxを適切にインストールしたくない場合は、手動で最新バージョンをインストールできます(おそらく、MacPorts、Fink、Homebrewなどのポートシステム経由で)。


3

最初の違い:

ls * -lah

Linuxでは機能しますが、Macでは失敗します(パラメーターを最初に指定する必要があります)。VMを使用するか、Mac OS用の本を入手してください。後で使用するものを学習してから、違いを学習する必要があります。


3
あなたは言うべきls * -lahことはOS X上で動作する方法があり、それはOS X上で動作する方法Linuxの作品にそれがLinux上で動作する方法を、それはOS X上で動作し、正しい / 12.2ユーティリティの構文ガイドラインPOSIX(12ユーティリティの表記法に従って/ガイドライン9):「すべてのオプションは、コマンドラインのオペランドの前に置く必要があります。」getopt(3)で説明されているように、「…環境変数POSIXLY_CORRECTが設定されている場合、オプション処理は、非オプション引数に遭遇するとすぐに停止します。」
G-Manは「Reinstate Monica」と言います

3

UNIXを学ぶ最良の方法は、Unixを実際に使用することです。通常の作業環境(OS X)で独自のファイルやデータを操作できるようにするために、本のLinux固有の例とMacバージョンの標準ツールの違いに遭遇する価値があると思います。

違いに遭遇することは、時にはイライラする場合でも、貴重な学習経験になります。

Linux VMを使用して(特に危険なコマンドの場合)練習することも便利ですが、学習のための実際の使用法に勝るものはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.