Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

UNIX(Linux)
入門編

  1. UNIX(Linux)とは
  2. ディストリビューションとは
  3. CentOSとMacOSとCUIについて
  4. 仮想化ソフトウェアを使ったCentOSのインストールとMacOSのCUI環境について
  5. ログインとrootユーザーとシャットダウン等について
  6. コマンドの構造と注意点について
  7. ファイルシステムとカレントディレクトリの移動と表示(cdとpwd)について
  8. 各主要ディレクトリの解説とディレクトリ等の内容表示(ls)について
  9. ちょっと高度なディレクトリの移動(cd)とパスについて
  10. 『ls』コマンドの応用(1)とドットファイルについて
  11. 『ls』コマンドの応用(2)
  12. タブキーを使った入力補完について
  13. ディレクトリの作成方法(mkdir)について
  14. ファイルの簡易作成(touch)とファイルについて
  15. 標準入出力とリダイレクション(>と>>)を使ったファイル生成とechoとcatについて
  1. ファイルとディレクトリの削除(rm)について
  2. ファイルとディレクトリのコピー(cp)について
  3. ファイルとディレクトリの移動と名前変更(mv)について
  4. viエディタとは
  5. viの基本的な使い方(1)
  6. viの基本的な使い方(2)
  7. ターミナル(sshとTera Term)を使ったリモート操作について
  8. ソフトウェアのインストール方法(yumとパッケージ管理ツール)について
  9. ユーザーの概要と確認と追加と切り替え(adduserとsu)について
  10. ユーザーのパスワードと削除と更新と管理者権限での実行(passwdとuserdelとusermodとsudo)について
  11. グループの概要と確認方法(groups)について
  12. グループの追加と削除と設定変更(groupaddとgroupdelとgroupmod)とユーザー追加方法について
  13. パーミッション(権限)について
  14. パーミッションの設定方法(chmodとchown)について
  1. トップページ
  2. UNIX(Linux)入門編 - CentOSとMacOSとCUIについて

CentOSとMacOSとCUIについて

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

続きまして『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環境の構築についてやっていきましょう。ではこの辺で失礼致します。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。