Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

UNIX(Linux)
Beginner

  1. What is UNIX (Linux)? - Japanese Only
  2. What are Distributions? - Japanese Only
  3. About CentOS, macOS, and CUI - Japanese Only
  4. Installing CentOS with Virtualization Software and macOS CUI Environment - Japanese Only
  5. Login, root User, and Shutdown - Japanese Only
  6. Command Structure and Important Notes - Japanese Only
  7. File System and Navigating Directories (cd and pwd) - Japanese Only
  8. Key Directories and Listing Contents (ls) - Japanese Only
  9. Advanced Directory Navigation (cd) and Paths - Japanese Only
  10. Advanced ls Command (Part 1) and Dotfiles - Japanese Only
  11. Advanced ls Command (Part 2) - Japanese Only
  12. Tab Completion for Input - Japanese Only
  13. Creating Directories (mkdir) - Japanese Only
  14. Quick File Creation (touch) and About Files - Japanese Only
  15. Standard I/O, Redirection (> and >>), echo, and cat - Japanese Only
  1. Deleting Files and Directories (rm) - Japanese Only
  2. Copying Files and Directories (cp) - Japanese Only
  3. Moving and Renaming Files and Directories (mv) - Japanese Only
  4. What is the vi Editor? - Japanese Only
  5. Basic vi Usage (Part 1) - Japanese Only
  6. Basic vi Usage (Part 2) - Japanese Only
  7. Remote Operations via Terminal (SSH and Tera Term) - Japanese Only
  8. Installing Software (yum and Package Managers) - Japanese Only
  9. User Overview, Verification, Creation, and Switching (adduser and su) - Japanese Only
  10. User Passwords, Deletion, Modification, and sudo (passwd, userdel, usermod) - Japanese Only
  11. About Groups and the groups Command - Japanese Only
  12. Adding, Deleting, and Modifying Groups (groupadd, groupdel, groupmod) - Japanese Only
  13. About Permissions - Japanese Only
  14. Setting Permissions (chmod and chown) - Japanese Only
  1. Home
  2. UNIX(Linux)Beginner - About CentOS, macOS, and CUI

About CentOS, macOS, and CUI - Japanese Only

みなさまどうもおはこんばんにちは。

続きまして『CentOS』くんについてと今回の『UNIX(Linux)入門編』でベースとする環境について色々とやっていきたいと思います。

まず『CentOS』のバージョンについてなのですが、この記事を執筆している2018年春頃ですと『7.4』っていうのが最新になっています。

しかしここでちょっと注意点なのですが「『CentOS』の7系は構造やコマンド体系がこれまでと大分違う」という事があります。どういう事かというとこれまでUNIX系OSで使われていたコマンドとかがコマンド名が変わっていたり構造が変わっていたりで昔の知識がいまいち使えないんですね。

なのでこれから勉強を始めるOSとして最適か、と言われると著者的に微妙な感じがしますので今回は6系の最新である『6.9』をベースにやっていきたいと思います。最終リリースは少し前になりますが『6.9』はとってもデキが良くてちゃんと64bit対応もされていますのでその辺もご安心下さい。著者は基本的に「最新のトレンドを追うよりもなるべく枯れた技術を使うべき」という思想を持った老害おっさんなのでその辺も個人的にナイスなわけでございます。

そしてもうひとつ今回勉強するにあたって制限をかけたい点があり、それは「GUIではなくCUIで操作する」という事です。CUIとは映画とかドラマとかでハッカー役の人が黒い画面でアルファベットとかを打ち込みまくって何かをしているあれになりますね。

GUIとCUIについて軽く知っておきたい場合はこちらを参考にすると良いかもです。

(´-`).。oO(ところで子供の頃から疑問なのですが映画とかに出て来るハッカーな設定の皆様は一体何をしているのですかね...)

(´-`).。oO(お互いにコマンドみたいなのを打ち合って「くそー...そうきたかー...(´・ω・`)」とか「入られたー!(:_;)」とかやってる良くあるあれのお話でございます...)

(´-`).。oO(まあ本物のハッキングは非常に地味な作業の繰り返しになるので演出的に映えないのは重々承知なのですが...)

(´-`).。oO(一体いつどこで「ハッカーはコマンドを打ち合いするものである(キリッ」という謎のイメージが根付いたのかが非常に気になるわけなのでございます...)

『CentOS』に限らず昨今の『Linux』はGUIも用意されている事が多いわけなのですが正直GUIでの操作って『WindowsOS』や『MacOS』が扱えるならば簡単に扱えるので特に勉強するようなものでもないんですよね。恐らくちょっと調べるくらいで完了してしまうのではと思います。

しかしCUIは知識が無いと確実に操作出来ないのでUNIX系OSを勉強するとしたらここが一番重要なポイントになるわけです。

さらに商用利用で使われるサーバーに対してのGUIの組み込みは基本的に行われません。なぜなのかというとサーバーはあくまでもグラフィック以外の処理を行うのが主な使い方になりましてグラフィック部分はユーザーさんのデバイスに任せる、というのが一般的な流れになるからです。

例えば今この記事を読んでる皆様はPCとかスマホとかを使っていますよね。そんでその際に当サイトのサーバーはどういう処理を行っているかというとPHPとかで演算したHTMLとかCSSとかJSとかを皆様のお手元のデバイスに送りつけているだけだったりします。

つまり当サイトのサーバーは「こういう風に表示して!」って指示が書かれているソースコードを送り、実際のグラフィック部分を担当しているのはそのソースコードを受け取った皆様のお手元のデバイスのブラウザになる、とった感じになります。

というわけでGUIを入れる必要はほぼ無いというかGUI部分の処理は無駄になるので入れないようにするわけです。

まあこういうのは設計者の好みによるのでサーバーにGUIを入れてもOKだしCUIのみで構築するのもOKだしでどちらも正解なのですがやはり企業さんのサーバー設計を任される人というのはある程度以上の腕前を持ったプログラマーさんになる事が多いわけです。ってことはCUIも超絶詳しい、ってことでCUIのみの構築となる事が多いのですね。

著者は普段色々な企業さんの開発をお手伝いしているのですがここ3年くらいで開発に参加した100社くらいの企業さんの中でGUI入りのサーバーがあったのは2社くらいになりますね。かなり比率は少ないなと思って頂けると思います。なのでこれから勉強する皆様にはぜひCUIの操作方法を学んで頂きたい次第でございます。

そして『CentOS』のCUIベースの環境での解説と共に『MacOS』でのCUIベースの環境の解説もちょいちょい入れていきたいと思います。これはなぜなのかと言うと最近の開発では『MacOS』なPCが使われる事が非常に増えてきているのが理由です。

昔はWindowsマシンで開発することばっかりだったのですが10年後には逆転してるんじゃないかというくらいの勢いで『MacOS』が普及してきています。

この理由は
「Macなデバイスはデキが良くて使いやすい」
とか
「Macなデバイスはフォントがきれい(*゚▽゚*)」
とか
「Macなデバイス使ってるの方がイケメンに見える(*゚▽゚*)(*゚▽゚*)」
とか
「Macなデバイスを使ってドヤ顔したい(*゚▽゚*)(*゚▽゚*)(*゚▽゚*)」
とかそういう理由もあるかもですが、それ以上に
「昨今の『MacOS』は『UNIX』ベースだから」
という事が大きいです。

2000年前後の時期に『Linux』が爆発的に普及して様々な企業さんに導入された経緯があるのですがなぜ爆発的に普及したのかというと「『Linux』は無料で使えるから」なんですね。もちろん使いやすいとかOSのデキが良いってのもありますが一番の理由は絶対お金の関係です。

昔みたいにUNIXサーバーが何百万円するような感じだとお金を沢山用意しなければならずサーバーを用意するだけでも一苦労だったのですが『Linux』の登場でとっても簡単に導入する事が出来るようになりました。著者が考えるIT系ベンチャー企業が爆発的に増えた理由は恐らくこれになりますね。

ちなみに1990年代や2000年前後の頃って『WindowsOS』ばっかりな時代だったのであまり選択肢が無く、「サーバー(UNIX)向けに書いたC言語とかのファイルをサーバーにアップロードしたあと『Tera Term』などのターミナルソフトウェアを使ってサーバーの中でコンパイルして処理を確認してまた作業を進める」っていうような手順を取っていたのですが昨今の『UNIX』ベースな『MacOS』を使うと同じUNIXであるが故にそれらが全てローカル(手元)のPCで完結できる事が多くてものすごーく楽ちんなんですね。

『WindowsOS』は『UNIX』とは全く違う構造なのでサーバーが『UNIX』系となるとローカルの『WindowsOS』だけで全て完結させるのは色々と厳しいです。なので昨今はMacなデバイスが使われることが増えている、といった感じになります。

というわけで次の記事ではCUI環境の構築についてやっていきましょう。ではこの辺で失礼致します。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .