CCNAの合格点は? 試験改定後の傾向や勉強方法を解説
2022.04.27
Linux(リナックス)は、WindowsOS、MacOSと同様にコンピュータ上でワードやエクセルなどの何かのアプリケーションを動かすために必要なOSの一つで、誰でも無償で入手して利用できます。
WindowsOSやMacOSは、マイクロソフト社やアップルコンピュータといった企業によって開発されたOSですが、Linuxは当時学生だったリーナス・トーバルズという人によってカーネルのソースコードが書き起こされて以降、世界中の開発者によって日々バージョンアップされてきたため様々な種類のLinuxがあります。
この記事では、LinuxやOSといった基本的な概念から、よく使うコマンドまで解説していきます。
目次
開くあなたにはどれが向いてる? 今すぐエンジニア診断してみよう
「エンジニアになってIT業界で働きたい」
「エンジニアに興味はあるけど、種類が多すぎて自分に向いてる職種がわからない」
そんな悩みを解決するのが、「エンジニア診断ツール」です。
「エンジニア診断」はたった12の質問に答えるだけで、あなたに向いているエンジニアを診断。
診断結果には仕事内容の概要も掲載しているので、自分に合ったエンジニアについて詳しく知って、エンジニア就職に一歩近づきましょう。
「Linux(リナックス)」は元を辿れば1970年にAT&Tベル研究所によって開発された「Unix(ユニックス)」というOSが起源です。それから、1991年にヘルシンキ大学の学生だったリーナス・トーバルズがUnixのソースコードを元に自分専用にソースコードを書き起こしたのがLinuxの始まりです。
それ以来、LinuxはUnixとは区別され「Unix系OS」と呼ばれ、世界中の開発者によってバージョンアップされて今日に至ります。
Linuxは論理的な動作の流れの観点から、ソフトウェアとハードウェアの間の処理を仲介する「カーネル」と、そのカーネルをコントロールするための「シェル」の2つに分かれます。
「カーネル」はコンピュータが理解できる機械語に変換できますが、カーネルだけでは何の処理もできません。そのため、ソフトウェアでの操作は「シェル」を介してカーネルに伝えられて処理されます。
カーネルとシェルがセットでOSとしての機能が実現することになります。このカーネルとシェルなどのセットの組み合わせのことを「Linuxディストリビューション」と呼び、一般にLinuxと言えばLinuxカーネルのことでなく、こちらのLinuxディストリビューションのことを言います。
OSはソフトウェア処理とハードウェア処理を仲介するのが仕事です。例えば、ソフトウェア上で何かのファイルを開いたり保存したりすると、ハードウェア上のCPUやメモリ、ハードディスクなどの記録媒体などで処理されます。
それらのソフトウェア処理を、ハードウェアの種類に関係なく伝達してくれるのがOSです。もし、OSがなければそれぞれのソフトウェア処理は、個々のCPUやメモリに合わせた機械語に変換してハードウェア処理を実行しなければなりません。
別のPCで作成されたファイルであっても、異なるCPUやメモリで正常にハードウェア処理できたり、同じアプリケーションであれば同じソフトウェア処理を実行出来るのは、OSがソフトウェア処理とハードウェア処理の仲介をしてくれているおかげです。
自分の適性が分かる!今すぐエンジニア診断してみよう
「エンジニアに興味はあるけど、種類が多すぎて自分に向いてる職種がわからない」
そんな悩みを解決するのが、「エンジニア診断ツール」です。
エンジニア診断ツールの特徴
「エンジニア診断」はたった12の質問に答えるだけで、あなたに向いているエンジニアを診断。
診断結果には仕事内容の概要も掲載しているので、自分に合ったエンジニアについて詳しく知って、エンジニア就職に一歩近づきましょう。
LinuxはWindowsやMacのようにコンピュータにインストールして普通のパソコンとして使うことも可能ですが、一般的にはHTMLファイルを公開する「webサーバ」や、ファイル転送を行うための「FTPサーバ」といった各種サーバ用のOSとして使われることが多いです。
その他、Linuxはカーネルのソースコードが公開されているので、インターネット上でソースコードを入手して、カーネルを再構築すれば自作のOSを作ることも可能です。
Linuxでは、サーバを構築するための様々なアプリケーションがあり、無償で入手可能です。例えばWebサーバを構築したいのであれば「apache(アパッチ)」や「nginx(エンジンエックス)」、DNSサーバであれば「bind(バインド)」をダウンロードしてインストールすることでLinuxをサーバとして使うことができます。
サーバアプリケーションは、「リポジトリ」と呼ばれる、各種パッケージのソースコードやバージョン管理を行っている配布サイトから入手します。リポジトリから自動でインストールするコマンドを実行するだけでインストール完了します。
Linuxはカーネルのソースコードが公開されているので、そちらを入手して自分用にカスタマイズしたオリジナルのOSを作ることも可能です。
ソースコードを入手する方法は2通りあります。1つは、Linuxカーネルの大本である「The Linux Kernel Archives」から「tarball(ターボール)」をダウンロードする方法で、2つめは「Ubuntu(ウブントゥ)」や「CentOS(セントオーエス)」といったLinuxディストリビューションの開発元からダウンロードする方法です。
Linuxディストリビューションの開発元からダウンロードした場合は、開発用のモジュールやパッチは一通りそろっていますが、「The Linux Kernel Archives」からダウンロードした場合は、必要最低限のものしかないため、本格的に開発したい場合は、Linuxの最初の開発者であるリーナス・トーバルズのgitのリポジトリからダウンロードした方がいいでしょう。
■参考サイト
30秒で結果がわかる! エンジニア診断を無料で受けよう
「エンジニア診断ツール」を使うと、12の質問に答えるだけで、8種類のエンジニアの中から一番自分に向いているエンジニアがわかります。
さらに、「エンジニア診断」は無料で受けられて、診断結果には向いているエンジニアの仕事内容が記載されているので、自分の適性をその場で理解することが可能です。
「エンジニア診断」を活用して、エンジニア就職に一歩近づきましょう。
Linuxは「オープンソース」と呼ばれ誰でも自由に利用が可能です。そして、世界中の開発者によってバージョンアップされてきたため、たくさんの種類が存在します。
開発されたアプリケーションのソースコードも世界中で公開されており、それを無料で利用できるなど、開発者側とユーザ側の両方にとっても素晴らしい特徴がいくつかあります。ここではその素晴らしい特徴に加えて、Linuxの持つその他の特徴についても紹介します。
Linuxは「オープンソース」の一つです。オープンソースとは、商用・非商用の目的を問わず利用、修正、配布が可能になっていることを言います。オープンソースであることで、用途を問わずに自由にカスタマイズすることが可能になります。
ソースコードが公開されている場合は、世界中の開発者達によって脆弱性のパッチが当てられたりモジュールが作成されるため、セキュリティや利便性の向上のためのバージョンアップが頻繁に行われるというメリットがあります。
一方で、企業が開発するOSと異なるため、問い合わせ用のサポート窓口がなく、使用する場合はネット上のコミュニティや開発元の公式サイトで情報収集をして自己責任で管理しなければならないというデメリットもあります。
1991年にLinuxが誕生して以来、たくさんの派生形のLinuxディストリビューションが存在しています。有名なものとしては、RedHat社の開発したパッケージ管理システムを使う「RedHat系(レッドハット)」、deb形式のパッケージ管理システムを使う「Debian系(デビアン)」、GNUプロジェクトのフリーソフトウェアのライセンスに準拠してパッケージ管理を必要最低限の機能に絞った「Slackware系(スラックウェア)」などがあります。
他にも、パッケージ管理にPython(パイソン)で記述されたPortage(ポーテージ)を採用した「Gentoo系(ジェンツー)」や、スマートフォン向けのAndroidOSなどもLinuxの派生形です。
派生が異なるとファイル形式が違うため、ソフトウェアのアップデートやインストール方法も異なってきます。
LinuxのOSから、それに付随する機能のモジュール、アプリケーションまですべて無料で使うことが可能です。windowsのように購入してライセンス認証をして使用する必要もありません。
また、サーバの用途として使われることが多いLinuxですが、サーバ構築を行う場合のサーバアプリケーションも商用利用問わずすべて無料で使うことができます。
Linuxでは、Windowsでよく使われるエクセルやワードのようなOffice製品は使えませんが、同様の機能を備えたものに「LibreOffice(リブレオフィス)」があり、こちらを無料で使うことができます。
Linuxは一般的には軽量OSです。特に「Micro Core Linux」に関しては必要最低限のCUI機能のみの実装でOSの容量は2021年時点で10MBちょっとで、これにGUIの機能を実装した「Tiny Core Linux」でも15MBちょっとです。
そのため低いスペックでも動作します。ただ、機能が豊富でかつGUIの機能を実装したLinuxディストリビューションの場合は、OSの総容量はかなり大きくなります。
「CentOS8」に関してはGUIの機能を実装したフルパッケージのOSの総容量は8GBを超えます。LinuxはWindowsやMACと違いOSの機能をカスタイマイズできるので、ハードウェアのスペックが低い場合は、必要な機能のみをインストールして使うことで安定したシステム構築が可能です。
■参考サイト
LinuxにもWindowsやMacと同様に、画面上でマウスを操作して作業する「GUI(Graphical User Interface=グラフィカル・ユーザ・インターフェース)」の機能は備わっていますが、サーバとして使われる場合がほとんどのため、実際に運用している機器に実装されている機能は必要最低限に絞られていることが一般的です。
機器のハードディスクの容量を削減するのためにあえてGUIの機能を実装してなかったり、障害が起こらない限りは頻繁にログインして操作することもないので、GUIの機能そのものが必要ないというケースがほとんどです。
そのため、操作はコマンドから実行する「CUI(Character User Interface=キャラクタ・ユーザ・インターフェース)」で行うことが普通です。また、Linuxでサーバ構築を行う場合も基本的にCUIで実行して、環境に応じて必要な機能を追加していくのが一般的なため、GUIの機能そのものが必ずしも必要になるとは限らないということになります。
エンジニア診断を受けて最初の1歩を踏み出そう!
エンジニアになるかどうか悩んでいる人は、まず「エンジニア診断ツール」を活用するのがおすすめです。
「エンジニア診断」を使うと、どのエンジニアに自分が向いているのか、簡単に理解することができます。約30秒で診断できるので、気軽に利用してみてください。
エンジニア診断ツールでわかること
Linuxカーネルのソースコードが公開されて以降、時代の流れや変化とともに世界中の開発者によってバージョンアップされて、今日ではたくさんの種類のLinuxディストリビューションが存在します。
同じLinuxでもパッケージの管理、アップデート方法など、いくつかの異なる特徴があります。また、実際に運用される場合においても使用用途にも違いや特徴があります。ここでは主なものを3つ紹介します。
パッケージ管理にRedHat社が開発した「rpm形式」を使う種類のLinuxです。「Red Hat Enterprise Linux(RHEL=レッドハット・エンタープライズ・リナックス)」、「CentOS(セントオーエス)」、「Fedora(フェドラ)」などがあります。Linuxはオープンソースですが、RedHat社が開発した「Red Hat Enterprise Linux (RHEL)」は商用のLinuxです。
2018年のRedHat社の発表によれば、有償のサーバ用OSのサブスクリプション市場ではMicrosoftに次いで全体の30%程のシェアを占めています。有償の企業サポートがあるためRHELを導入する企業も多いことがわかります。
RHELを無償で使いたいという場合は、CentOSまたはFedoraを使うことになります。ただし、長い間RHELのクローンと言われ人気のあったCentOSは、今後独自開発の方向に進むという発表があります。そのためRHELの無償版を使いたい場合は、2003年からRHELの後継的なOSとして開発されてきたFedoraを使った方が良いでしょう。
■参考サイト
Red Hat、エンタープライズ Linux サーバー市場をリード
CentOS Project shifts focus to CentOS Stream
パッケージ管理に「deb形式」を使う種類のLinuxです。代表的なものに「Debian GNU/Linux(デビアン・グニュー・リナックス)」、「Ubuntu(ウブントゥ)」、「Linux mint(リナックスミント)」などがあります。
Webアプリケーションの開発では非常に人気のあるLinuxで、2019年のマイナビの発表によるとシェア全体の40%近くをUbuntuが占め、その他のDebian系を合わせると全体の半分以上になり、RedHat系の方のシェアは数%程度です。
企業内の業務系OSではシェアが高いRedHat系に対して、Webアプリケーション開発ではDebian系のLinuxがいかに信頼されて使われているかがわかります。また、Debian系は1993年にDebian GNU/Linuxから開発が始まり、Linuxの中でも開発の歴史も古く、長く使われてきたという実績もあります。
■参考サイト
2019年5月Webサイト向けLinuxディストリビューションシェア/円グラフ
「Slackware package manager」でパッケージ管理されるLinuxです。RedHat系やDebian系などの他のディストリビューションとは違い、最初に開発されたLinuxの思想を受け継いでおり、フリーソフトウェアの開発・配布についてのライセンスを定義している「GPL」に準拠しています。
他のディストリビューションとは中立的な立場のLinuxで、元祖Linuxの流れの派生形と考えて良いでしょう。RedHat系やDebian系と比べて、業務用やその他の開発系で使われることは少ないですが、開発初期のLinuxの思想を持っているこということで学習用として使われるのに良いとされています。
Linuxを使いこすためには、いくつかのLinux用語を理解しておく必要があります。WindowsやMACとは異なったシステムの構成や、開発・運用を行っていくための基本的な考え方を理解するのがLinuxを習得するための第一歩になります。
また、画面上でマウスを操作するWindowsやMACとは異なり、基本はコマンド操作になるので、タイピングのスキルを身につける必要もあります。その他にも、サーバ用途として使われることが多いためネットワークの基本的な知識も必要になります
ウェブやメールなど、サーバが提供してくれるものが「サービス」です。サービスが起動しているということは、そのシステムがサーバとして動作しているということを意味します。
サービスを起動するためにはサーバの「プロセス」を動作させる必要があり、Linuxでサーバプロセスは「デーモン」というプログラムを実行することサービスを起動できます。デーモンの名称には決まりがあり、サービス名の後ろに「d」がつきます。httpであればhttpd、sshでsshdというのがデーモンの名称になります。
例えば、httpdを起動すればそのシステムはwebサーバになり、sshdを起動すればそのシステムはsshサーバになります。
「パッケージ」は、アプリケーションを動作させるために集まったプログラムのことです。例えば、webサーバとして動作させるためには「apache(アパッチ)」や「nginx(エンジンエックス)」などのwebサーバとしてアプリケーションを動作させるためのパッケージをダウンロードしてインストールすることになります。
ここで重要なのが、Linuxディストリビューションによってパッケージの管理システムが異なるということです。Red Hat系であればrpm形式を、Debian系であればdeb形式のパッケージをインストールする必要があります。
ディストリビューションが異なれば当然仕様も変わりコマンドも異なります。Red Hat系は「yumコマンド」や「rpmコマンド」で、Debian系であれば「aptコマンド」でインストールします。
「ライブラリ」とは、プログラムで何かの処理を実行するときに、使いやすいようにまとめられたプログラム群のことです。ライブラリには特定のプログラムのみがアクセスして利用できるものと、複数のプログラムがアクセスできるものに分かれます。
例えばアプリケーションの実行時に、複数のプログラムが個別でそれぞれライブラリを作って利用するより、一つのライブラリを複数のプログラムがアクセスして汎用的に使うことでシステムの容量や負荷を減らすことができます。
また、ライブラリの呼び出し方も2種類あります。プログラムに直接ライブラリを記述するスタティックリンクと、プログラムが実行されたときに動的にライブラリが呼び出されるダイナミックリンクです。
「リポジトリ」は、アプリケーションのバージョン管理を行ってくれるシステムのことです。Linuxで新しく何かのアプリケーションを利用する場合には、インターネット上からアプリケーションをダウンロードする必要があります。
その場合、ユーザがバージョン管理をすることなく最新のパッケージや前のバージョンをなど好きなバージョンを入手できるのはリポジトリの仕組みのおかげです。ユーザの視点からいえば、好きなパッケージのバージョンをダウンロードできるようなっている配布サイトのようなものです。
Red Hat系は「yumコマンド」で、Debian系であれば「aptコマンド」を実行することで、リポジトリにアクセスしてパッケージのダウンロードからインストールまで行います。
「ディレクトリ」は、windowsでいう「フォルダ」のことです。Linuxではファイルを格納するための箱をディレクトリと呼びます。Linuxを操作する場合は、ファイルやディレクトリには、誰に対して読み込み、書き込み、実行などの各種アクセス権限があるかを細かく設定する必要があります。
特にサーバ用途として使用される場合は、不特定多数の人がシステムにアクセスするため、ディレクトリの他にも各ファイルに対するセキュリティの設定はかなり重要です。
例えば、悪意のあるユーザによって意図しないファイルにアクセスされて情報が流出したり、または利用したいのにアクセス出来なかったりという事故を無くすためにもディレクトリのアクセス権限を必要最低限に絞って設定しましょう。
「シェル」は、Linuxカーネルに何かの命令を出すためのものです。主にはユーザがコマンドを実行する場所と思って良いでしょう。Linuxの操作は基本はコマンド操作になります。
シェルを使ってコマンドでカーネルに命令して何かの実行処理をします。Linuxの標準のシェルは「Bash(バッシュ)」で、通常のLinuxコマンドが実行できるシェルです。シェルが変わるとコマンドも変わり、カーネルに対する命令も処理も異なります。
Linux上で何か自動実行を行うためのシェルスクリプトを実行する場合も同様でシェルによって動作や使えるコマンドが異なります。他にも「csh(シーシェル)」、「ksh(ケーシェル)」、「tcsh(ティーシーシェル)」、「zsh(ゼットシェル)」などたくさんの種類がありLinuxでインストールされていれば切り替えて使うことも可能です
Linuxの操作の基本は「コマンド」です。まずはコマンドを何度か実行しながら少しづつ覚えていく必要があります。コマンドの後ろには半角スペースを開けてハイフンと何かの文字列の組み合わせで引数を取りオプションをつけて実行することも可能です。
またコマンドのオプションはたくさんあり「manコマンド」で、そのコマンドのオプションを確認することが出来ます。例えば「ls」というファイルの一覧を表示するコマンドのオプション知りたい場合は「man ls」と実行することで確認できます。下記はその実行結果の一部です。
比較的よく使うコマンドとその実行例は下記になります。
■ディレクトリの移動
例:rootディレクトリに移動する
# cd /root
■ファイル表示
# ls
bin dev lib libx32 mnt root snap sys var
boot etc lib32 lost+found opt run srv tmp wget-log
cdrom home lib64 media proc sbin swapfile usr
■現在のディレクトリのパスの表示
# pwd
/root
■ファイルをコピーする
例:test.txtをtest_1.txtという名前でコピーする
# cp test.txt test_1.txt
■ファイルを削除する
例:test_1.txtを強制的に削除する
# rm -rf test_1.txt
■ディレクトリを作成する
例:test_1というディレクトリを作成する
# mkdir test_1
■エディタでテキストファイルを開いて記入する
例:test_2.txtを作成する
vi test_2.txt
■ファイルの中身を表示する
# cat test_2.txt
test2:
関連記事:現場で使えるLinuxコマンドを習得しよう|就活方法まで徹底解説
Linuxの勉強方法の基本は、システム内の動作の流れをつかんで、ひたすら手を動かしてコマンドを実行することです。Linuxはコマンド操作によるオペレーションが基本なのでタイピングスキルも高めておきたいところです。
また、何よりもLinuxを実行できる環境の準備がないことには何も始まりません。慣れない初心者にとっては、環境構築の時点でつまずいて勉強をスタート出来ないというケースも少なくありません。まずは、個々の許す時間や費用など環境に合った勉強方法を見つけましょう。
低料金で利用できるサイトも多く、お試し期間で無料で使えるものもあります。自分の空いた時間にアクセスして勉強することが出来るため、自分のペースで勉強出来るというメリットがあります。
サイト上でLinuxコマンドを実行できたり、環境構築方法が紹介されていれば問題ないですが、そういった環境が準備されてない場合は、知識のみの習得になってしまうため、実務での能力の向上につながらないというデメリットがあります。そのため、ある程度Linuxの経験や知識がある方向けの勉強方法かと思います。
サイトによっては、疑問点をメールで質問出来るなどのサポート体制が整っている場合もあるので、うまく活用して疑問点を解消していけばLinuxのスキルアップにもつながるでしょう。
リアルタイムでスクールの講師に質問してその場で疑問を解決出来たり、ゼロから教えてもらえたりできるので、特に未経験者の方向きです。
ただし、スクールの場合は決まった時間しか開講していないため、ある程度は自分のスケジュールとスクールの開講スケジュールの調整が必要になります。平日の昼間に仕事をしている方にとっては、空いた時間をどれくらい確保して勉強時間に充てられるかがカギになります。
他の勉強方法と比べると少し費用が高めになりますが、場合によっては会社と提携しているスクールもあり、自分の所属している会社がどこかのスクールと提携して無料で使える場合は、積極的に使うといいでしょう。ある程度まとまった時間がとれる方にとっては、未経験者であっても短期的にLinuxのスキルアップが可能です。
完全独学のスタイルで経験者の方向きの勉強方法です。初期投資は参考書代だけで、自分のペースで勉強できるというメリットがありますが、本を読んで進めて実行して確認するスタイルなので、Linuxが実行できる環境を自分で構築する必要があります。
また、Linuxはたくさんの種類があり、ディストリビューションや各バージョンが違うだけでもコマンドが実行出来ないというケースも発生します。そのため、参考書と同じ環境を準備することに注意しましょう。
他にも、疑問点が出た場合は完全に自己解決になり、公式サイトやネットのコミュニティなどで情報収集するなどしてある程度の調査能力も必要になります。
Linuxの資格は、主に「LPIC」「Linuc」「RedHat認定資格」の3つあります。「LPIC」はカナダに本拠地を置く非営利団体のLPIの認定資格で、日本ではLPI日本支部が運営しているLinuxの国際標準資格です。
それに対して「Linuc」は、LPI-Japanという日本独自の組織が運営する資格です。元々はLPI-Japanが「LPIC」という資格を運営していましたが、日本の市場向けに試験を作るという意向でLPI-Japanが「Linuc」の運営を始めたという経緯があります。ただ、実際のところは試験内容や難易度にほとんど違いがないのが現状です。
次に「RedHat認定資格」ですが、こちらはRHELに特化した実務ベースの資格です。「LPIC」「Linuc」は「Level 1」から「Level 3」までのグレードランクがあるのに対して、「RedHat認定資格」は「システム管理者」や「開発者」など、実務のポジションペースのグレードランクを設けています。「RedHat認定資格」は「LPIC」「Linuc」より受験料も高く、難易度も高いです。
OSの起動からアプリケーションが実行されるまで、Linuxでコマンドを実行して、ログやその他の確認コマンドの出力結果を理解することでOSがどのような動作をして、どんな処理をしているのかが見えてくるでしょう。
また、WindowsやMACでもコマンドから何かを実行するということもできます。場合によってはコマンド操作の方が早い場合もあります。Linuxで身に着けたOSの知識をWindowsやMACにも活かして、OSのオペレーションのスキルアップをさらに目指して行きましょう。
あなたにはどれが向いてる? 今すぐエンジニア診断してみよう
「エンジニアになってIT業界で働きたい」
「エンジニアに興味はあるけど、種類が多すぎて自分に向いてる職種がわからない」
そんな悩みを解決するのが、「エンジニア診断ツール」です。
「エンジニア診断」はたった12の質問に答えるだけで、あなたに向いているエンジニアを診断。
診断結果には仕事内容の概要も掲載しているので、自分に合ったエンジニアについて詳しく知って、エンジニア就職に一歩近づきましょう。
飯塚 寛也
2022.04.27
2022.01.24
2022.01.12
2020.09.09
2020.07.03
2020.06.19
2020.06.11
2020.06.04