人間は言語を使って思考する
多くの人間は言語を使って思考します。ごくまれに映像が言語より先に頭に思い浮かぶ人もいますが、私も本でそういう人がいる事を知っているだけで、出会ったことはありません。人の思考回路なんて見えないのに、なぜそう言い切れるのでしょうか。なぜなら言葉を持たない民族はどんな未開社会にも存在せず。言葉による圧倒的な情報の蓄積によって文明は進化してきたからです。それがどうLinuxと関係しているかというと、LinuxはCUIツールつまり文字でテキストを操作する用途においてWindowsより圧倒的に便利だからです。
CUIはGUIよりも思考にフィットする
人間は言語を使って情報を記述し、伝達し、記録を行い情報を処理して毎日生活しています。あなたが今日は新しいプロジェクトを始めようとする時、ターミナルを開いmkdir Documents/new_projectと打って専用フォルダを作ること、これはCUIに慣れた人にとってGUIでフォルダを選んで新規フォルダを選んで名前を入力する作業よりも圧倒的に思考にフィットしていて素早く行える手段なのです。
Linuxのコマンドのうちよく使うのは10個程度
-
ls(何があるか見る)
これがないと始まりません。ls -laで隠しファイルまで見る、という感覚さえあれば、あとはAIに「この中から特定のファイルだけ探して」と頼めます。 -
cd(どこかへ行く)
移動できないと何もできません。パスの概念を知るための基本中の基本です。 -
pwd(今どこにいるか確認する)
AIに「このディレクトリにあるファイルを処理して」と言うために、現在の絶対パスを知る必要があります。 -
cat / less(中身を覗く)
設定ファイルやログの中身をコピーしてAIに貼り付けるために必須です。 -
sudo(権限を行使する)
Linuxにおける「お上に従う(あるいは自分が王になる)」ための唯一の手段。これを知らないと、AIが教えてくれた解決策が「Permission denied」で全滅します。 -
apt / dnf(道具を取り寄せる)
新しい武器(パッケージ)をインストールする入り口です。
7.rm
ファイルを消す
8 mv
ファイルの名前を変える、もしくは移動する
9 cp
ファイルまたはディレクトリをコピーする
10. mkdir
ディレクトリを作成する
これらのコマンドはよく使うオプションがあるので、オプションの有無を含めるともっと多いのですが、実際によく自分が使うオプションというのは限られているのでそれも10個ぐらいです。実際のところ多くのLinuxユーザーはGUIとCUIを目的によって使い分けます。
*補足:あれPowerShellにもあるコマンドが沢山あるぞと思うかもしれませんが、使用方法が異なります。
GUIのメリット、CUIのメリット
ー GUIのメリットは直感的に操作できることです。
- CUIのメリットは素早く操作が出来ることです。
あくまで私の使い分けですが、私はハードディスクに保存してある電子書籍のファイルをPC本体のSSDにコピーするときはGUIを使います。GUIのほうが電子書籍の表紙のアイコンが見られて直感的だからです。それに対して、新しいフォルダを作成してエディタでそのフォルダを開く時はCUIを用います。CUIならmkdirが使えるので3つのコマンドを打ち込むだけで終わりだからです。ショートカットで出来るし、ドラッグアンドドロップでフォルダは開けるからWindowsでもいいじゃないかと思う方もいるかもしれませんが、キーボードからマウスに持ち替えるだけでもCUIになれたら面倒に感じるようになります。
どのLinuxを使ってもCLIは標準でBashを採用されている
多少の例外はありますが、LinuxのCLI環境(WindowsのPowerShellに当たる)はBashです。多少の例外はZSHというCLI環境が採用されていますが、コマンドは共通して使えます。MacもZSHを採用しています。ただ一つWindowsのPowerShellだけが独自の仕様を採用しているのです。Windowsのターミナルは別です。Linuxはディレクトリ構造も標準化されています。そして、テキストをあるコマンドで処理してから次のコマンドの入力につなげる処理も標準化されています。ちなみにBashとかZSHのことをシェルといいます。今後シェルという言葉が出てきても驚かないで下さい。
LinuxにはCLI環境(シェルを)使って動くプログラムが沢山ある
多くのLinuxユーザーはシェルで動くVIMというテキストエディターの操作を知っています。なぜでしょうか?それはLINUXユーザーがテキストでファイルを保存するだけでなく、Linuxで使われる多くのソフトが設定ファイルをテキスト形式をベースにしているからです。例えばBashの設定ファイルは隠しファイルになっているので、設定を追加したい時はシェルでBashの設定ファイルをいじるほうが圧倒的に楽です。隠しファイルはGUIには表示されないし、設定変更はわずか数行なのでわざわざGUIのエディタを開くほうが面倒だからです。
LinuxはAI時代にこそ生きるOS
AIが得意なことはテキストを生成することです。Linuxは多くのテキスト処理を行うコマンドを備えています。そしてほとんどの事がCUIから実行可能です。つまりAIにとって人間に代わってCUIにテキストを打ち込んで処理を代わりにやるということはお手のものなのです。もちろんテキストファイルで多くの設定が保存されるLinuxでは、人間が調べながら変更するより、AIに頼んで変更したほうが早い事もあります。
Linuxがなぜサーバー用途で多様されるのか
Linuxは圧倒的にサーバー用途では圧倒的なOSのシェアを誇ります。この分野においてLinuxはWindowosよりも圧倒的に多く用いられています。なぜでしょうか。この理由は多くのサーバー向けソフトウェアがオープンソースで開発されており、Linux自体もオープンソースであることが理由です。なぜオープンソースであるかというと、オープンソースのコードは多くの人が問題点を指摘したり、多くの人が修正することが可能だからです。なぜならサーバーで用いるソフトウェアは多くの人がチェックした信頼出来るコードを用いる必要があり、もし問題が発覚したらすぐに修正される必要があるため、メンテナンス性の高いオープンソースである必要があるからです。
UNIXの実装の一つとしてのLinux
私はUNIXについて多くのことを知りません。昔、GUIなんて動かす力なんてコンピューターにはない時代から存在していて、人々はCUIを使ってサーバーにアクセスしてサーバーのコンピューター性能をシェアして用いていた頃からあるOSだという事ぐらいしか知りません。サーバーとの通信速度には限界があるので、CUI向けに多くのツールが開発されました。Linuxはその資産の多くを引き継いだOSです。今でもサーバーの設定変更はCUIを用いてサーバーにアクセスしてテキストファイルを編集して行われますし、その返答をするサーバー側のOSにGUIなど必要ないのです。ですから例えばUbuntu Server OSはGUIを含んでいません。
LinuxのGUIは何種類もある
Linux自体もオープンソースだと先に書きましたが、これはLinuxのソースコードは多くの人の目に触れてメンテナンスされているため非常に安定していることと同時に、そのソースコードはGUIを含んでいません。WindowsとMacにない大きなメリットの一つ、LinuxにおいてGUIは選べるしカスタマイズも容易だという事です。どういう事かというとLinuxのGUIはLINUXの上で動くソフトウェアの一つに過ぎないという事です。事実、LINUXは好きなGUIを何種類もある中から選べるのです。このため非常に古いPCでも軽いGUIで動きます。このためWindows10からの移行先として推薦する記事が書かれるようになりました。
MacのほうがLinuxより優れているところ
Macは高いです。Appleはメモリ容量を低く抑えることで価格を安く見せていますが、用途によってはメモリが直ぐに足りなくなっても後から増設できません。それでもMacのCLIはZSHが動いているのでCUIの使いやすさはLinuxと代わりありません。なぜならMacOSXがFreeBSDというUNIX系のOSから作られた派生OSだからです。つまりMacは最も多くのソフトがあるUNIXを元に作られたOSであるという事が最大のメリットです。事実、INTELからM1へのCPUの変更やiOSを作り上げることが出来たのも、元がLinuxと同様に小さく汎用性の高いコアカーネルだったから出来た事です。iOSが一から作り上げられたOSだと勘違いしてた人もいるかもしれません。Appleは意図も簡単にMacOS上でもiOS向けソフトを動くようにしてしまいました。
Windowsの最も大きなデメリット
多あなたはWindows10からWindows11への変更で何が便利になった点を知っていますか?私は元Macユーザーなので、Macに最近追加された機能で必要不可欠で便利になった機能なんて全くないとはっきり断言できます。Windowsの10から11の変更点は知っていますが、たしかに重要機能のメンテナンスもあるものの、ほとんどのユーザーにとって必要ない余計な機能だらけです。MacもWindowsにも共通して言えますが、ユーザーが必要としない余計な機能をどんどんつけて、古いPCのサポート切っていくことです。ユーザーは新機能なんて別に欲しくないから、枯れた機能をメンテナンスして古いPCのサポートを続けてほしいと考えるのは当たり前です。ましてやMicrosoftは一部を除きPCの販売なんてしてないので、PCを売るために新OSで需要を喚起する必要性なんてないはずです。
Linuxの最大のメリット
Linuxはメンテンスが活発に行われています。新機能の追加ではなく既存機能のメンテナンスです。例えばLinuxMintのGUIであるCinamonは2011年に配布されは始めたGnome3から派生して作られており、非常に軽いことで有名です。長期的にメンテナンスされて余計な機能は追加されなかったからです。LinuxMintの必要なシステム要件は次のようになっています。
2GB の RAM(快適な使用には 4GB を推奨)
20GB のディスク容量(100GB を推奨)
1024×768の解像度(画面が収まらない場合、Altキーを押しウィンドウをマウスでドラッグ)
別にこれは古い機種専用の機能を削ぎ落としたシステムの要件ではないのです。LinuxMintのGUIはWindowsと良く似ており、よくWindowsからの移行に勧められるOSの一つです。一般ユーザーがそれで十分と思えるような機能を搭載していながら、とても軽いディとリビューション(Linuxを実際に使えるように機能をまとめて配布されている配布されているLinuxをこう呼びます)一つがLinuxMintです。
どのLinuxディストリビューションを使ったらいいか分からない
Linuxのディストリビューションは山ほどあります。その多くが小さなチームで開発とメンテナンスされているため、Linuxのコアがいくら安定していても、そのディストリビューション独自機能にはバグがあることが起こります。私はLinuxMintのGUIはそれほど好きではありません。ではなぜLinuxMintが良いと勧めるかというと、LinuxMintは十分に大きなユーザー数を誇っており、ユーザーからのフィードバックをもとに活発にメンテナンスされているからです。そのため最も安定して動くLinuxディストリビューションの一つとなっています。えっUbuntuのほうがユーザーが多いんじゃないの、それはその通りなのですが、UbuntuのGUIはWindowsから移行する人にとってはかなり違和感がある状態にデフォルトではなっています。それに対してLinuxのGUIはWindowsに似てるうえに、先に述べたようにベースが古いので十分過ぎるほど軽いのです。
webアプリケーションという分岐点
GoogleスプレッドシートをExcelの代わりに使って何か困ることってあるでしょうか?GoogleスプレレッドシートはExcelで多くのユーザーが必用とする機能のほとんどが揃っています。同じことが他の分野の多くのアプリに言えます。例えば私は英語の本をよく読むので英和辞書をよく引きますが、デスクトップ版の辞書が語彙の追加が辞書の改版までないのに対して、研究者オンラインディクショナリーというサービスでは逐次的に語彙の追加がされており、その数が3万以上になります。あなたが使用している業務アプリをオンライン版を開発してLinuxで動かすことは別に難しいことでは現代ではありません。多くのプログラミング言語にWebアプリケーションフレームワークが提供されており、プログラマーは一から開発するのではなく、そのフレームワークに既存のコードを移し替えるだけだからです。
まとめ
・LinuxはCUIとGUIを両方使いこなす人にとっては使いやすいOS
・LinuxはCLIでほとんどの操作が出来るのでAIによる自動化がしやすい
・LinuxはGUIを自由に選べるうえに、多くのGUIの選択肢が既にある。
・Linuxのコアは非常に小さいので軽いGUIを選べば古いPCでも動く
・Linuxはサーバー用途が元になったOSなので、サーバー用途のオープンソースの枯れたソフトが安定して動く(なんでもLinuxでは出来ない)
・CUIが充実していて、最も多くのソフトウェアが動くのはMacだが高い
・Linuxはソフトが少なくて困らないかというと、別に困らない。多くのWebアプリケーションがブラウザで動作しており、ブラウザさえ動けば困らないから。