IT/ICT/IoT

思いつくままに書き綴るIT/ICT/IoT
サイト内検索
カスタム検索
 GPT
 MBR
 LVM
...etc.

Linuxを知るメリット

 Linuxを知ることにはメリットしかありません。

 しかも、そのメリットは計り知れません。

 だから、とりあえず、3つだけ挙げてみます。

  1. 全方位360度の視界が開ける自由さ
  2. できることがめちゃめちゃ増える
  3. 大幅に時短(時間を節約)できる

1.全方位360度の視界が開ける自由さ

 Windowsだけ知っている場合、その視界は、せいぜい左右30度くらいでしょうか。

 大雑把に言うとOSは、コマンドの集まりです。

 Linuxは、これを堪能できる造りですが、Windowsは、これをいかに完全に隠蔽してGUIを基本にするかに力点を置いた造りです。

 もちろん、Linuxは、Windowsと同じように使うこともできます。

 全てをベールに包み込んでグラフィカルに操作できることは、直感的で初心者にはとてもありがたいことです。

 ただ、もっと知りたいと思っても固くガードで閉ざされるほどに包まれてしまうと中身が見えず、何ができるのか、自分で探り当てることはできなくなります。

 与えられた限られた情報の中だけで試行錯誤することになり、できること自体のつながりも見えづらくなる為、1つ1つが断片的で覚えづらいものとなってしまいます。

 無性にデフラグしたくなるほどに。

 デフラグといえば、Windowsのデフラグは、こまめにすれば別も時間がかかる為、嫌気がさし、できればやりたくないですが、やらないとマシンの動作の遅さが改善できなかったり、ディスク領域が無駄になったり...。

 Linuxには、デフラグなんて作業は、必要ありません。(これだけでもとてつもないメリットかも!?)

 話が戻すとOSの中核は、カーネルと呼ばれますが、Linuxでは、このカーネルすら公開されたオープンソースです。

 これは、誰でも閲覧できるどころか、編集して自分でコンパイルすることも自由にできることを意味します。

 それ以外の部分の多くは、ユーザーランドなどと呼ばれますが、これも、その多くは、オープンソースから成っています。

 なんでもできて堪能できる造りだから仮に断片的に覚えた情報も後でどんどんつながってきます。

 理解が深まるため、知れば知るほど、知ること自体も楽しくなります。

 知ることすら楽しく、ほぼ全てがオープンで制約もなく自由にできるのですから、何をやってみるのも楽しくなります。

 尚、Linuxは、UNIXの特許に関わる部分を避けて教育用に作られたMINIXをベースに作られつつも、その流れは汲んでいるであろうこともあり、*BSDやPC-UNIXなどUNIX風のOSとも共通する部分が多くなっています。

 そのMINIXは近年、NetBSDからその多くを取り込み、オープンソースとなっています。

 macOSもUNIX認定を受けたUNIXですから、その部分は、Macもほぼ共通します。

 MS社も元はXENIXという商用UNIXを開発、その後、MS-DOS、Windows 1.0、3.1、95...と続いていきます。

 商用とは言え、XENIXもUNIXですから、共通する部分は多かったはずです。

 PC-UNIXは、今となっては数が限られるものの、*BSDにもそれなりに、Linuxは、Android含め、全数を把握するのも難しいほど選択肢があります。

 尚、それら同梱配布される一式を以てディストリビューションやディストロと呼ぶことがあります。

 ただ、それだけ多くのディストロも、前述の通り、共通部分が多いため、これらの内、1つでも知っていると他も比較的スムースに使えるという自由さもあります。

 Windowsだけ知っていてもこうはいきません。

 ちなみにLinux/*BSD/PC-UNIXのほとんどは、開発協力ボランティアや寄付は歓迎する一方、無償で提供されています。

 サポートはないものの、インターネット上の文書もユーザー発信の情報も豊富なので調べる意欲さえあれば困ることはありません。

 システムの中にも頼もしいマニュアルがあり、端末上でman ~とするだけで呼び出すことができます。

 manが何かを知るためには、

man man

とするだけ。

apropos ssh

とすると、sshについて書いてあるマニュアルをリストアップしてくれます。

 ちなみに企業向けにサポート付きで提供されているLinuxもあります。

 Windowsが動くパソコンやMac、CD/DVD、USBメモリの他、Raspberry PiやBeagleBorneといったマイクロコンピュータ、組み込み用途やものによっては特殊なハードウェアにもインストールできるものもあります。

 また、1台のPCにしかインストールできない...なんて制約は一切ないので何台でも好きなだけインストールすることができます。

 Linux/*BSD/PC-UNIXも日々更新されていくこともあり、基本、自分で明示的に行なうことになりますが、簡単にアップデートできるようになっています。

 が、Windowsのように再起動時含め、アップデートに1〜2時間かかることも珍しくない...とか、何かとフリーズする...なんてことはありません。

 Linux/*BSD/PC-UNIXにも多くのディストロにおいてシステムのメンテナンス継続して行なうか否かという意味でのサポート期限というものはありますが、簡単にアップグレードできますし、無償です。

 Linux/*BSD/PC-UNIXと言えど、メジャーバージョンのアップグレードについてはアップデートとは違い、大掛かりなので通信環境などにもよりますが、1〜2時間かかるのが一般的です。

 ただ、Windowsと違ってパーティションを細かく分割することもできるので例えば、システムだけを収めたパーティションを切ってあれば、自分でインストールしたソフトウェアやデータはそのままに新たなシステムにまるごと入れ替えるということさえ可能です。

 アップグレードも特徴の1つとしているディストロもあり、ユーザーの選択基準の1つともなります。

 例えば、ユーザーが意識することもなく常にアップデート、必要に応じてアップグレードしていくローリングアップデートという手法を取るディストロや6ヶ月ごと、2年ごとや3年ごとのアップグレードを目標とし、リリース(、ユーザーがそれを以て明示的にアップグレード)するディストロもあります。

 Linux/*BSD/PC-UNIXを強く意識してか、macOSもOS X Mavericksからアップグレードが無償となりました。

 その後、WindowsもWindows 10からは、ユーザーがアップグレードを意識する必要がなくなりました。

 ご承知の通り、今後の一定のWindows 7や8/8.1からのアップグレード含め、以前はその度に新しいWindowsかPCを買うしかありませんでした。

 1つ気になるのは、意識することがないだけにマシンスペックが不足するようなアップグレードの可能性はないのだろうかという点。

 仮にそうしたことがあるとパソコンの状態に関わらず、その時点で買い替えを余儀なくされることに...。

 macOSの場合も同じようなことはあり得るでしょう。

 何れの場合もセキュリティサポート期限の過ぎたOSは、危険なのでネットに接続できないとなると今どきあっても使い道は極めて狭まるでしょう。

 一方、ディストロ数が多いLinux/*BSD/PC-UNIXの中には、そうしたパソコンでも安心してネットにつなぐことができて快適に動くものがたくさんあります。

 このように選択肢が多いという点もLinux/*BSD/PC-UNIXの利点の1つです。

2.できることがめちゃめちゃ増える

 この最大の理由は、shellとshellスクリプトがあるからと言えるでしょう。

  • shell
  • shellスクリプト

 shellは、ログインからログアウトまでユーザーがやることを見守り、優しく包み込んでくれつつ、頑強に守ってくれる貝殻に由来し、ログインシェルと呼ばれることもあります。

 そんなshellにもいろいろな種類があります。

 これは、GUIはもちろん、端末(ターミナル)上で実行する各種コマンド群も網羅しているということであり、基本的に「できないことはありません」。

 Linux/*BSD/PC-UNIXは、最小機能を備えたコマンドを連携させることで大規模な処理をもこなすことを見越して作られています。

 どれをとっても秀逸で挙げればキリがないですが、例えば、find、grep、sort、unique、cut、paste、wc、diff、comm、type、file、mv、cp、ssh、scp...等々、直感的にわかりやすいネーミングのものが多く馴染みやすいのも良いところ。

 スクリプトは、コマンドやスクリプトを書き連ねた単なるテキストファイルです。

 糊付けするかのようにコマンドやスクリプトをつなぐことができるため、グルー言語と呼ばれることもあります。

 特にログインシェルのスクリプト版とも言えるshellスクリプトは、その性質が強いものです。

 例えば、Python/Perl/Rubyのようなスクリプトやawk、sedといったコマンド、時にスクリプト、find、grep...などのコマンドなども含め、様々なコマンドやスクリプトやif文、for文などを書き連ねることでひと塊のプログラムとして実行することができます。

 基本、書き連ねるだけなので簡単ですし、組み合わせパターンは無限にあるのでできることも当然増えます。

 WindowsにもMS-DOSやPowerShellなど仮想端末で実行できる環境がありますが、基本的に「できないことだらけ」です。

 WindowsでもPython/Perl/Rubyなどを探してきてダウンロード、インストールして実行環境を整えて(PATHを通して)、スクリプトを書いて実行することはできます。

 が、先のLinuxのような柔軟性はありません。

 それに加え、Linuxには、ソフトウェアをまとめて管理するリポジトリという場所・領域があるので基本的に探しに行く必要はありません。

 インストールしたいものを指定するだけです。

 例えば、Debian系でVLCメディアプレイヤーをインストールするには端末上で、

 sudo apt install vlc

 とするだけ。(もちろんGUIでも可。)

 これだけで依存関係も解決してくれますし、全てをファイルとして管理し、ファイル階層も一貫して整っているため、すぐに実行できます。

 というか、Python/Perl/Rubyあたりならインストールするまでもなく、既に入っていることが多いでしょう。

 その場合、書いて即実行できるわけです。

 ディストロにもよりますが、リポジトリには、多いと数万個のソフトウェアが収録され、そこにあるもののほとんどは、オープンソース、仮にそうでなくとも無償で利用することができます。

 ないものは、ないといっても言い過ぎではないほどの収録数です。

 というより、これが仮に数千であっても、その内の一部だけで十分事足りるわけで全てを使うという人は、まず皆無であり、むしろ、一生の内にどのくらい把握できるのだろうかというほどの数です。

3.大幅に時間を節約できる

 これは、GUIのみに囚われず、本来ベースとなっているCLIを存分に使うことができることに尽きるのではないでしょうか。

 しかし、それは、CLI操作が苦にならない、かつ、充実した環境でないと、そんな気にはなれないでしょう。

 かく言う自身も純粋なWindowsユーザーだった頃でさえ、MS-DOSは、できることが限られた、退屈極まりないものという認識しかなく、そんな環境のCLIに興味を覚えるわけもなく、ほぼ全てGUI操作でした。

 が、Linuxを知った時、端末を使った時の、あの開放感は、表現のしようがないですが、強いて言えば、一気に視界が開けた気分でした。

 例えば、一連の文章を書く際には、GUIの方が便利なこともあるでしょうが、プログラムを書くときには、ファイルが複数ある場合には、CLIベースの方が圧倒的に早い。

 IDEも便利ですが、慣れればCLIの方が圧倒的に早いという人も多いでしょう。

 尤もLinuxを、端末を知るまでは、私もこのようなことを言われてもさっぱり実感が湧きませんでしたけどね。

 まさに百聞は一見にしかず。

 CLIはとても強力です。

 そうしたければ、ログインshell(端末)上だけで全て済んでしまうのです。

 MS-DOSやPowerShellのことを記憶から一掃して先入観を捨てさえすれば、とても簡単にとても多くのことができることがわかるはずです。

 例えば、ファイルの種類に関わらず、スクリプトがなんであっても次から次へと参照したり、編集したり、ファイルやディレクトリ(フォルダ)を移動、コピー、リネーム、ソフトリンク、所有者・権限設定したり、音楽を再生したり、CD/DVDやUSBメモリにディスクイメージを書き込んだり...等々あらゆる作業ができたりするのです。

 これは、まさに究極の時短です。

 GUIだとファイルマネージャーを開いてファイルを探してマウスで選んでダブルクリックして...となるわけです。

 たまになら、1〜2回ならたいした手間ではありませんし、その方が、都合が良いこともあるでしょう。

 これが、しょっちゅう、数多くのファイルを編集することを考えると結構な手間であり、時間もかかりますから。

 日々のアップデートも例えば、Debian系なら

sudo apt update

sudo apt upgrade

とするだけでOSや依存関係まで含めたインストール済みアプリを最新の状態にしてくれます。

 内容にもよりますが、たいていは数秒から数十秒もあれば、事足りるでしょう。

 もちろん、GUIを使うこともできますけどね。

 端末には、履歴機能があり、上下キーで移動できるのでタイプを省略したいならこれを使うとよいでしょう。

 先の例なら、sudo apt updateを実行後、上矢印を1回押してこれを表示し、BSキーで"date"部分を消し、代わりに"grade"としてEnterを押せば、sudo apt upgradeできます。

 途中、丁寧に確認を求められる場合がありますが、これを全てYesとして自動化したい場合、yフラグを付けてsudo apt upgrade -yとすることもできます。

 中には、PowerShellはとても強力だと言う人もいるでしょう。

 そういう方は、CLIが時短になるのは重々承知の上かと思います。

 私はPowerShellを使いこなしたことはありません。

 使いこなすどころか、私が最後に物理マシンで使ったWindowsはVistaでPowerShellは標準搭載されていませんでした。

 当時、既にLinuxを、端末を知っていた私もWindowsユーザーですから、追加インストールできると知って興味津々で導入してみたことがあった気もしますが、私には難解過ぎました。

 それに仮にその壁を乗り越えて覚えたとしても他で役に立つとは思えず、モチベーションがあがりませんでした。

 知見が広がるという意味では、使えるに越したことはないとは思いますが、今尚、その学習コストを負担する気にはなれないでいます。

 それでもPowerShellを知っている人がLinuxの端末の世界を知るのと、その逆では、視界の開け方に雲泥の差があると思います。

 もし、Linuxや端末の魅力を知らなかったら、私は、何台もの古いパソコンを再生させることも、HDDやRAMを換装してみることもなかったと思います。

 また、ArduinoやESP8266、ESP32といったマイクロコントローラやRaspberry Piなどのマイクロコンピュータに興味を持つこともなかったでしょう。

 仮にあったとしてもなんら抵抗もなく、スマートリモコンやスマートコンセント、スマートスピーカーを自作する、自作できるなどということは想像すらできなかったと思います。

 VirtualBoxやParallelsでもWSL2でもクラウドでもいいので積極的にLinux/*BSD/PC-UNIXを使ってみることをオススメします。

 そこには何の壁もありません。

 きっと見える世界が変わりますよ。

Valid HTML 4.01 TransitionalValid CSS!
2017/11/03-HTTPS対応
スマートフォン対応
ペイパル|Mastercard,VISA,American Express,JCB

2004-someday

webzoit

 Mac OS/Mac OS X/OS X
VirtualBoxにDOS/Windows
VMware PlayerにPE
VMware PlayerにDOS/Windows
QEMU
QEMUにDOS/Windows
Virtual PCにDOS/Windows
【Docker】