Linuxを”初めて”触る人が知らないと詰む5つの超基本(誰も教えてくれなかった)〜RPGに例えて〜

Linuxを”初めて”触る人が知らないと詰む5つの超基本(誰も教えてくれなかった)〜RPGに例えて〜 環境構築・OS(特にLinux)
スポンサーリンク

Linuxを触る必要がある(または関係してくるかもしれない)んですけど、ちゃんと基礎から勉強したことがないんですよね。
「基本的だけど超絶大事なこと」だけで良いので、ちょろっと教えてくれませんか?

はるすと
はるすと

はい、そんな方のために、この記事では、Linuxを触る上で必要最低限大切なことを、30分で理解できるというコンセプトで解説していきます。

 



0.まずはじめに、この記事が目指す場所と対象読者

まず初めにお断りしておきます。

Linuxは一朝一夕でマスターできるものではありません!!

それはドラ◯エ全シリーズを1日でやろうとするようなものです。

ですから、本来は、ちゃんとお金と時間をかけて勉強するのが一番です。Linuxの基本的な教科書を買って一読する、とか。LPICやLinuCなどのLinuxの資格勉強をする、とか。Udemyなどe-Learningをひとつふたつするのも良いでしょう。お金は少なくとも数千円(教材費)、時間は数日〜数週間単位で学んでいくのが王道でしょうか。

それほど、Linuxと一口に言った場合、テーマは大きい。

しかし、

  • ちゃんと勉強をする暇がないほど、喫緊でLinuxに取り組まないといけない!
  • そんなにガッツリ触るわけではないが、業務の関連で出てきたので簡単にざっくり知りたい!
  • 何も知らないけど初めてLinuxの仮想環境を立ち上げます!
  • よくわかってなかったけど、もしかして、おれ今Linux環境触っている?
  • ガッツリ勉強すべきかどうか、その判断をするのにまずはザックリ知りたい

そんな、不幸にも裸で戦場に投げ出された人や、専門外だからと効率的に学びたい人がいるのも事実。

ただ試しに「Linux」でググってみてください。「Linuxの特徴」をきれいにまとめてくれている記事や、技術的なことをピンポイントで解説してくれている記事は多いですが、その間、つまりLinuxを実際に触るにあたっての導入部分をまとめた記事はほとんど見つかりません。(私は当時見つけられませんでした)

この記事では、そんな方のために、Linuxを触る上で必要最低限大切なことを、30分で理解できるというコンセプトでまとめてみました。

ただ、再三で申し訳ありませんが、この記事さえ読めば大丈夫というわけではありません。「何を知らないといけないのかを知る」のがこの記事の目的です。Linuxをある程度学んだ人からしたら「え、そこから・・・?」と思うような内容ですが、WindowsやMacしか触ったことないような人からすると、ちょっとしたパラダイムシフト、根本的な考え方を転換する必要があるからです。

この記事に書いてあることはそれぞれ、調べたらすぐ出てきます。しかし、そのとっかかりを知らなければ、調べることすらできません。そんな基本的なことです。

例えるなら、一切の「スポーツ」を知らない人に「おい磯野ー野球しようぜ!」と言うようなものです。野球に誘ったら、当然、運動できる服装でグローブくらい持ってくると思うでしょうが、そもそも「服装は大事かもしれない」「道具がいるかもしれない」ことを知らないとしたら、人にも聞きようがないし、ネットで検索のしようもないからです。

この記事を読み終えたあかつきには、「足りないことはわかった。あとは必要に応じて随時ググるなり勉強すればいいや」という状態になることを目指します。

それでは参りましょう!いざ、Linuxの世界へ!!

 



1.Linuxの世界に入る:仮想サーバーへSSH接続

最近は、物理的にサーバーを用意して、その中にLinuxを入れてサーバーを立ち上げるよりも、既存のパソコンやクラウドに仮想サーバーを用意することの方が多いかと思います。一度立ち上げて入ってしまえばあまり気にする必要はないのですが、最初の入り口で躓かないためにも、このあたりの話は知っておく必要があります。

とはいえ、ここもテーマの重い話です。別記事にまとめておりますので、読んでみてください。少なくとも「Linuxを触るとしたら、仮想化された環境が多い」というのを知っておいていただけると良いかと思います。

またその「仮想サーバーに入る」には、Teratermのようなツールを使うか、ターミナルなどから「SSH接続」することが多いですね。Macから仮想サーバーへSSH接続する場合は下記の記事を参考にしてください。(Windowsの方は、「windows ssh 方法」などで検索してみてね)

これで、Linuxの世界に入れます。

2.目を開いて動き回る:Linuxコマンド(超基本だけ)

2.1 CUIの世界へようこそ

Linuxを初めて触る人がまず戸惑うのがCUIです。windowsもmacもGUIから入りますからね。

え、CUI?GUI?という方へ。
安心してください、解説しますよ。

どちらもUI(User Interface)がついていることから察することもできるかもしれませんが、人間である私達が、どうやってコンピューターとやり取りするか?その方法の違いです。それぞれざっくり説明すると、

  • CUI(Character-based User Interface)は、キーボードから何かしらの「コマンド」を入力して動作をコンピューターに指示する方法。操作するのにキーボードでの入力が必要。Windowsではコマンドプロンプト、MacではTerminal.appのイメージ。
  • GUI(Graphical User Interface)は、表示されているボタンや、アイコンをマウスでクリックするだけで、あらかじめセットされたプログラムが作動し、コンピューターに指示できる方法。マウスだけでも操作可能。慣れ親しんでいるのはこっちのはず。

詳しくは、下記外部サイトをご覧ください。

CUIとGUI

【初心者向け】CUIとGUIの違いとその特徴。なぜ使い分ける必要があるのか。

持つべき認識は、

  • CUIでも、GUIとやっていることは同じ(どちらもパソコンに操作を命令している)
  • でも、得意不得意、もっと言えば出来ることとできないことがある
  • GUIではマウス操作でやっていたことを、CUIではコマンドを打つことで行う必要がある

ということです。

2.2 CUIで必須のLinuxコマンド(GUIで言うところのマウス)の習得

Linuxでは、ほとんどがCUI(キーボード操作必須の方)です。UbuntuなどGUIを実現したLinuxも増えていますが、Linuxを触るならCUIが主流です。

つまり、コマンドを知らずにLinuxを触ろうとするのは、マウスの使い方を知らずにパソコンを触る、コントローラーを持たずにゲームを始める、もっと言えば目隠しして手足を縛られて戦場に放り込まれるに等しいのです。何もできませんし、そもそも何も見えません。

Linuxコマンドの重要性がわかったところで、具体的なコマンドを習得していきましょう。

Linux超基本コマンド7選

特に、マウス操作の超基本(クリック)に当たると言えるほどの超基本コマンドが、下記のコマンドです。

  1. pwd
    • print working directoryの略。今自分がどこにいるか?その絶対パスを表示。
    • CUIでは、そのサーバーに入っている間、必ずどこかのディレクトリ(=フォルダ)にいる(だいたい最初はホームディレクトリ)。そこからコマンドの指示を出す。CUIの世界=ディレクトリの世界、と言ってもいい(そんな表現見たことありませんが)。その現在地を把握できるコマンドがpwd。
    • ちなみに、その自分がいるディレクトリのことを、カレントディレクトリ(Current Directory)と呼ぶカレントディレクトリの絶対パスを表示するコマンドがpwd。
    • ディレクトリについては、4章でさらに詳しく解説。
  2. ls [ディレクトリパス]
    • listの略。そのディレクトリに何が入っているか?を表示。
    • ファイルもディレクトリも表示される。
    • 隠れファイルや隠れディレクトリは表示されない。ただし、-aオプションをつければ、表示される。
    • ディレクトリパスは省略可。省略すると、カレントディレクトリに何が入っているかを表示。
  3. cd [ディレクトリパス]
    • change directoryの略。そのディレクトリに移動。
    • 変なディレクトリに入ってしまっても、cd ~/でホームディレクトリに帰ってこれます。
  4. mkdir [ディレクトリパス]
    • make directoryの略。新しいディレクトリを作成。
    • テストや誤って作成した場合、rmdirコマンドで消去できます。
  5. touch [ファイルパス]
    • 新しいファイルの作成。
    • テストや誤って作成した場合、rmコマンドで消去できます。
  6. cat [ファイルパス]
    • concatnateの略。そのファイルの内容を表示。
  7. vi [ファイルパス]
    • visualの略。そのファイルの閲覧・編集。
    • 画面が編集画面に切り替わる。(初めてviを叩いた時、いきなり画面が切り替わって元に戻れなくなってめっちゃ焦ったのを今でも覚えています)
    • ここから操作したり元の画面に戻るには、さらに「viコマンド」を入力する必要があるため、別途調べてみてほしい。(i, esc, :q, :q!, :wqあたり)
    • vimやnanoでも代替可能。(ただし、viは標準搭載なので必ずありますが、vimやnanoはない場合もあります。直感的で使いやすいのはnanoですが、慣れたらviの方が速い、という人も。)

上記コマンドを打って、Enterを押せば、コンピューターに指示できます。この7つだけは、覚えてしまいましょう。1,2,6は表示するだけなので、気軽にどんどん打って構いません。3も、カレントディレクトリは変わりますが、サーバーの何かを変えるわけではないので、そんなに臆病になる必要はありません。4,5,7は一応サーバーに変更を加えることになるので、無意味に打つのは避ける方が良いかもしれません。

ちなみに、上記の「パス」は、「絶対パス」でも「相対パス」でも構いません。正しければ動きます。それぞれの用語を端的に説明するなら、

  • パス:ディレクトリやファイルの住所みたいなもの
  • 絶対パス:ルートディレクトリからのパス
  • 相対パス:カレントディレクトリからのパス

例として、今/etc/httpdにいる(pwdコマンドで/etc/httpdと出てくる、つまりカレントディレクトリが/etc/httpd)としたら、

  • 絶対パス:/etc/httpd/conf/httpd.conf
  • 相対パス:conf/httpd.conf

例えるなら、あなたが今、日本の東京都新宿区にいるとしたら

  • 絶対パス:東京都新宿区西新宿2-8-1(ルートディレクトリが日本)
  • 相対パス:西新宿2-8-1(カレントディレクトリが日本の東京都新宿区)

となります。(あくまで例えです)

知っておきたい終了コマンド

余裕のあるうちに、戻ったり終了するコマンドも覚えておく方が良いでしょう。例えば、pingコマンドを打つと、デフォルトでは1秒毎に接続結果を教えてくれます。何もしないと、毎秒毎秒、接続結果が追加表示されていきます。Enterを押しても、BackSpaceを押しても止まりません。また、誤って無限ループするコードを実行してしまったとしましょう。コンピューターは、愚直にあなたのクソ命令を守り、裏で動き続けます。Enterを押しても、BackSpaceを押しても止まりません。初心者がこの状況になると非常に焦ります。下手するとパニックに陥ります。これを止めてくれるコマンドが、

  • ctrl+c(command + c)
  • ctrl+d(command + d)
  • qキー(またはquitと打つ→Enter)
  • exitと打つ→Enter
  • escキー

等の「終了コマンド」です。環境によってどれかは利くでしょう。「これで必ず止まる」という思い込みがあるとそれで止まらなかった時に焦りが助長されるので、どれかで止まる、くらいの心持ちでいるのが良いです。上記の例だと、ctrl + Cで止まることが多いです。これは、困って焦ってからググるのは精神衛生上良くないので、予め紹介しておきました。

ちなみに、たまにやる人がいるので注意喚起ですが、間違っても、パニクってGUIで✗ボタン「ウィンドウを閉じる」を押さないでくださいね? ターミナルなどの操作画面が閉じても、コンピューターが計算をやめるわけではないですからね。これはラジコンが暴走し始めた時にリモコンを捨てて目を閉じるのと同じ行為です。臭いものに蓋をするだけの、現実逃避になってしまいます。これをしてしまうと、別のアプリを立ち上げてプロセスをキルするといったさらに高度な操作が求められます。(頼れる人が周りにいなければ、電源切って再起動、とかでも、荒業ですが一応止まります。)(追記:最近は、ターミナルを閉じたらプロセスも停止するものもあるようです。進化してますね。)

その他のLinuxコマンド

もちろん、ここで紹介したコマンドはほんの一部です。sudoとか必ず使わざるを得ないと思いますし、echoとかgrepとかdiffとかも超便利なのですが、それぞれのコマンドの説明だけでひとつ記事が書けるレベルなので泣く泣く割愛します。それぞれについて知りたい場合は「Linux コマンド ◯◯(コマンド名)」とググれば出てきます。

他にもこんなにたくさんあるんだーというのを見てみたい方は下記記事とかいいんじゃないでしょうか。(これですら全てではありません)

【Linux】コマンドまとめ 〜コマンド名の由来を添えて〜

他のコマンドも、「Linux コマンド 〇〇(やりたいこと)」とググれば出てきます。例えば、ファイルをコピーしたいなら「Linux コマンド ファイル コピー」といった感じです。

特に、ここで紹介したのは「標準搭載」されている、つまりどんなLinuxにも最初から入っているコマンドでしたが、インストールして使う、つまり後から追加して初めて使えるようになるコマンドまで含めたら膨大です。そういうのも、ググったら出てきます。何がインストールされていて何がされていないのか、その確認方法については、5章で解説していきます。

コマンドがわかり使えるようになると、Linuxの世界でようやく目が見えて手足が動かせるようになってきます。

3.足元を固める:OSの確認

コマンドの基本を覚えたら、最初の一歩を踏み出せたことになります。そしたらまずは、Linux本体、つまりOSを確認してみましょう。

3.1 実は「Linux」という名前のOSがあるわけではない

さて、先ほどから「Linux」と連呼していますが、「Linux」とは何か説明できますか?

「え、OSの一種なんでしょう?」

そう思った方、それは半分合っているようで、半分は勘違いしているかもしれません。

そもそもOSとは何でしょうか。そして、OSには多数種類があり、派閥があるのはご存知でしょうか?その派閥(系列)によって、使えるコマンドが変わる場合があります。

こちらをご覧ください。

この記事を読めば、「あれ、OSはLinuxって聞いてたんだけど、Ubuntuってやつが入ってる・・・」だとか「RHELではyumでインストールできたからUbuntuでもできると思ったらできなかった、と思ったらCentOSはできた、え、なぜ??」などという疑問がなくなります。

結論だけ簡単にまとめると、「Linux」とは、

  • LinuxはLinuxディストリビューションの略称であり、LinuxディストリビューションはLinuxカーネルが入ったOSの「総称」である。つまり「Linux」はあくまでOSの「総称」
  • Red Hat系、Debian系など、同じLinuxの中でも派閥がある。

私は最初「Linux」という名前のOSがあると思ってました。「南アメリカ」という国があると思っていた、というくらい恥ずかしいですね。

つまり、LinuxはLinuxでも、どのLinuxディストリビューションを使っているのか、確認しておく必要があります。

3.2 そのLinuxサーバーに、どのLinuxディストリビューション(OS)が入っているのか確認しよう

今から触るLinuxサーバーに、OSとして何が入っているのか確認しておきましょう。OSとして何が入っているのか確認するためのコマンドがあります。

今更聞けない!LinuxのOSやバージョンの確認方法

どのLinuxが入っているか皆目検討もつかない場合は、こんな荒業もあります。確かに便利。

Linux OSの種類とバージョンの調べ方

これで正しいOS名とバージョンがわかったら、「Linux」などというざっくりワードではなく、「正しいOS名 + バージョン」でピンポイントに検索することができます。言わずもがな、その方が、よりマッチした記事が出てきます。(あまりにマイナーなOSの場合には、似たメジャーなOSやLinuxで調べる方が多くの記事がヒットする場合もあるので一概には言えませんが。)先輩に聞くときも、その情報を出さないと答えようがない場合もあります。

もちろん、Linux共通コマンドなど、どのLinuxでも共通の話については、「Linux ◯◯」の検索で十分です。それも、調べていくうちに使い分けられるようになるでしょう。

OSがきちんと把握できれば、Linuxの世界で足元がしっかり固まった感じがします。

4.地図を手に入れる:ディレクトリ構成の把握

第2章で、CUIの世界はディレクトリの世界だ、と言いました。

CUIの世界がディレクトリの世界なら、ディレクトリ構成を知るのはその世界で地図を手にするようなものです。

つまりまず大前提として、「Linuxには最初から複数のディレクトリが存在し、各ディレクトリの役割を把握しておくことは重要」という認識を持ちましょう。その認識さえあれば、後はググれば良いのですから。私はその認識すらなかったので、「なんだか既にたくさんディレクトリがあるなー」と思いながらもそれぞれの役割なんぞ調べもせず「Linux難しい・・・」などとほざいておりました。

まず最初に押さえてほしいディレクトリが2つ、その上で確認すべき他のディレクトリを3つ目に紹介します。

4.1 ホームディレクトリ /home/[ユーザー名]

サーバーにログインして最初にいるディレクトリが、たいていこの「ホームディレクトリ」です。
ログイン後すぐにpwdしてみてください。/home/[ユーザー名]の形式になっているかと思います。

ちなみに、ホームディレクトリは短縮系があり、~/“の2文字でホームディレクトリの絶対パスを表します。例えば、

cd ~/

でいつでもホームディレクトリに帰ってこれます。(windowsでは”./”がホームディレクトリを表します。)

ここでは、新しいディレクトリを作ったり、ファイルをつくったり、編集したりするのは比較的自由です。一般ユーザー権限でも、制限されることはありません。

【3分理解】Linuxユーザのホームディレクトリについて

逆に、Linuxサーバーに必要なあれやこれやがホームディレクトリに入っていることは稀でしょう。それらを知るには、家の外、村の外を見てみる必要があります。「いったん、外に出る」これが、次に紹介するルートディレクトリです。

4.2 ルートディレクトリ /

pwdなどのコマンドを使ったり、色々調べたりしていると、パスがスラッシュ(“/”)で区切られているのがわかるかと思います。実はそれだけでなく、絶対パスの頭にもスラッシュがついていることにお気づきでしょうか?

この「パスの頭についているスラッシュ」を「ルートディレクトリ」と呼びます。

「ルートディレクトリ」は、ファイルシステム内で利用可能な領域における最上位にあるディレクトリです。つまり、ルートディレクトリだけは単体で存在し、別のディレクトリ配下に入っているわけではない、という言い方もできますし、全てのディレクトリはルートディレクトリ配下にある、という表現もできそうです。とにかく、一番の大元、一番上のディレクトリです。それより上はありません。

そして、だいたい最初はルートディレクトリにいないことが多いので、全体を調べたい場合は、

cd /

とコマンド実行してルートディレクトリに移動してから行うようにしましょう。(権限がない場合もあるので、その時は上司や依頼主に相談してください)これでユーザーのホームディレクトリが集まる/home村を出ることができます。

詳しくは下記記事を参照ください。

Linuxの「/(スラッシュ)」の役割を知っておくと恥をかかずに済むかもって話

UNIX/Linux ディレクトリとディレクトリの操作

4.3 他の各ディレクトリ(/etcとか/usrとか/binとか) 

ログイン後にいるホームディレクトリ(“/home/[ユーザー名]”)と、最上位パスであるルートディレクトリ(”/”)の存在がわかったら、ルートディレクトリ直下の他のディレクトリも見てみましょう。

ls /

を実行してみてください。(既にcd /を実行済なら、lsだけでもOK)ルートディレクトリ直下のファイル、フォルダが表示されます。

めっちゃたくさん出てきませんか?

なんとなく意味がわかりそうなディレクトリから、何がなんだか見当のつかないディレクトリまで、たくさんあるかと思います。

もちろん、最初から入っている全てのディレクトリには、意味があります。

ただ、/etcとかは、なんとなくエトセトラから来ているのかなーじゃあ「その他」のファイルが入るのかな?と思いきや、Linuxの設定ファイルが入っている超重要なディレクトリだったり、/usrとかはなんとなくuserに似ているなと思ったら、システムではなくユーザーが使うアプリケーションが格納されているディレクトリだったり、/binには基本コマンドが入っているかと思いきや/usr/binというディレクトリもあったり、なんとなく私の感覚よりもはるかに複雑なようです。

もちろん最初から全てを把握しておく必要はありませんが、ざっと見ておくと安心です。魔王の城がどこにあるのか、見当がつくかもしれません。詳しくは下記外部サイトを参照してください。

Linuxディレクトリ構造

各ディレクトリの役割を知ろう(ルートディレクトリ編)

Linuxのディレクトリ構造(一覧)を理解する

あとは、必要にかられたり、気になったものから調べて行けばいいかなと思います。

ディレクトリ構成と、その特性を把握すると、Linuxの世界で地図が手に入ったようなものですね。霧が晴れて周りが見渡せるようになります。

5.道具を使う:ソフトウェアの確認方法

さて、ここまで

  • 仮想サーバーにSSH接続してLinuxの世界に入り、
  • コマンドを知ってCUIの世界で動き回れるようになって、
  • OSを確認して足元を固め、
  • ディレクトリ構成を知って地図を手に入れました。

一応、これだけでもLinuxの冒険の旅に出られないことはないのですが、最後に、道具の使い方、つまりソフトウェアの扱いについて知っておきましょう。

これからLinuxの世界に入ろうという方は、Linux環境を使って何かをしたいわけですよね?つまり、何か目的があるわけですよね?

例えば、これからプログラミングの学習を始める方は、プログラミング言語を入れて、プログラムを実行できる環境を作るわけですよね?
Webサーバーを立ち上げようという方は、ApacheやNginxといったミドルウェアを導入するわけですよね?

あるいは、既に入っているかもしれません!

そうなんです。特に既存のLinuxサーバーを利用する場合は特に、既に何が入っているのか?何のサーバーなのか、把握することは大切です。RPGで言ったら、まずはその町で手に入る道具や情報をかき集めるフェーズですね。

そのソフトウェアが既に入っているかどうか、入っているとしたら何が入っているのか、バージョンは何か?確認する一般的な方法を押さえておきましょう。

5.1 そもそもソフトウェアって?

ソフトウェアとは、コンピュータを動かすプログラム(の集まり)のことです。「コンピュータを動かすプログラム」ならソフトウェアと言ってよいので、かなり広い概念です。OSやアプリケーションソフトウェアも、ソフトウェアの一種です。逆に、ソフトウェアでないものと言ったら、「ハードウェア」になります。「ソフト」と「ハード」と略したりもします。

Linux関連で色々調べていくうちに、他にもミドルウェアプラグインパッケージなど、色々な表現が出てきて惑わされると思いますが、どれもソフトウェアの一種(あるいは、ソフトウェアの集まり)だと思っていただいて差し支えありません。「こん棒も銅の剣も弓矢も全て武器の一種と思っていただいて差し支えありません、全て武器屋で手に入ります」と言うのと同じです。

詳しくは、こちらの記事で解説しています。

ここからは、略して「ソフト」と書いていきます。「ソフト」はソフトウェアのことですから、アプリもパッケージもミドルウェアもつまりは「ソフト」のことです。

5.2 調べたいソフトの名前がわかっている場合の確認方法

調べたいソフトの名前がわかっている場合、つまり、ある特定のソフトについて調べたい場合は簡単です。「◯◯(ソフト名) 確認」でググればすぐに出てきます。ここでは、その中でも代表的な確認方法を紹介します。

もちろん、別のやり方もあると思います。良いやり方があったらぜひ教えてください。

バージョンを確認する

インストールされているか?を確認するには、バージョンを表示するコマンドがよく使われます。何かを実行するわけではないのでうっかり何かを変更してしまうリスクがないし、合わせてバージョンも確認できて便利なので。たいていは、

◯◯(ソフト名) -v
◯◯(ソフト名) -V
◯◯(ソフト名) --version

あたりで確認できます。(例外もあります。)

例えばpythonが入っているか確認するには、

python --version

または

python -V

で調べられます。(pythonは、python2とかpython3が別のソフトと認識されているので注意)もし入っていなければ、「そんなコマンドないよ」的なメッセージが表示されます。

バージョン確認のコマンドの例をざっと確認するにはこちらが参考になりました。

よく使うバージョン確認コマンド集

マニュアルを確認&設定を確認

設定ファイルなどがどこに入っているか調べたい場合は、マニュアルを見てみましょう。マニュアルを表示するには、manコマンドを使用します。

man ◯◯(ソフト名)

です。httpdなどのミドルウェアだけでなく、コマンドもこれで調べられます。この中に、設定ファイルのパスなども記載していることが多いです。こちらも詳しくは外部サイトへどうぞ。

わわわIT用語辞典 man【コマンド】

manコマンドについて詳しくまとめました 【Linuxコマンド集】

ただ注意事項として、全てのソフトにマニュアルがあるわけではありません。

PHPなんかは、

php -i

で設定がわかります。その内容を見ると、直接書いてあるわけではないのですが、例えば下記コマンドでPHPの設定ファイルが覗けることがわかるみたいです。

cat /etc/php.ini
ls /etc/php.d/*
php -r 'print_r(openssl_get_cipher_methods());'

ファイルの検索

最終的に、ある特定のファイルがどこに存在するか?で調べる方法もあります。格納されているファイルの絶対パスを取得する方法が、

find `pwd` -maxdepth 8 -name [ファイル名]

です。注意点もあります。

  • 8というは、階層の深さを指定しています。他の数字を指定しても良いですが、欲張って20とか30とかあまり深くし過ぎるとめっちゃ重くなりますし、3とか5とかだと深くに格納されているファイルが出てこないので難しいところです。8~16くらいがいいのかな?という感じです。
  • ファイル名は正確なファイル名でないとヒットしないので注意。
  • 上位のフォルダまでは検索しないので注意。例えば、デフォルトだとホームディレクトリにいることが多いので、/etc配下等のファイルは”cd /”してからでないと出ない。

こちらのサイトで、readlinkなど他の方法も記載してくれています。

ファイルの絶対パスを取得する

5.3 漠然と網羅的に知りたい場合の確認方法

このサーバーにはどんなソフトが入っているか、つまり、特にソフトの名前を指定せずに何のソフトが入っているのか確認したい場合は、インストールの履歴を見ることができます。

しかし、注意していただきたいのが、「インストールした全てのソフトの履歴を見る」という機能はありません。

どういうことか。順番に解説していきます。

ソフトをインストールする方法は2つ

そもそも、ソフトをインストールするには2つの方法があります。

  1. ソースコードで直接インストールする方法
  2. パッケージ管理システム(パッケージマネージャ)を使う方法

1は直接販売/工場直売/産地直送2は卸し(商社)を介して入手するようなイメージです。ご想像のとおり1の方が原始的ですが技術的には高度です。なぜなら、カレーの材料が欲しい場合、1の方法だと、人参農家から人参を買い、じゃがいも農家からじゃがいもを買い、肉屋で肉を買わないといけません。目利きも必要です。2の方が現在の主流です。例えるなら、かなり気の利いたスーパーです。商社と取引された経験のある方は、そちらをイメージされた方がより近いです。カレーの材料一式用意してくれます。材料も厳選してくれます。パッケージ管理システムについて詳しくはこちらの外部サイトへ。

【パッケージ管理システムとは?】Linuxでのパッケージ管理の使い方まとめました

ソースコードで直接インストールしたソフトの履歴の確認

そして残念ながら、1のソースコードで直接インストールする方法の場合は、履歴を追うのは困難です。一部、こちらの記事に書かれているように、ソースコードからインストールしたソフトの履歴を追う方法もあるようですが、登録前から既に入っているものに関しては追うことができないのです。例えるなら「あなたが今までに買ったもの全てのリストをください」と言われているようなものとお考えください。あなたが幼少期から缶ジュース1本に至るまで家計簿をつけているような変人でない限り、その困難さが実感できると思います。

パッケージ管理システムを使ってインストールしたソフトの履歴の確認

2の場合は、そのパッケージ管理システムでインストールしたソフトに関しては履歴を表示できます。RedHat系だとdnf, yum, rpmコマンド、Debian系だとapt系やdpkgあたり、他にもPythonにはpip、RubyにはRubyGems、PHPにはComposerやPearなど、各プログラミング言語に対してもパッケージ管理システムが用意されています。各種類はこちらのサイトでよくまとめられています。
https://urashita.com/archives/7781

ただ、こちらの場合も、各パッケージ管理システムに対して、それぞれ確認する必要があります。

例えば、yumというパッケージ管理システム。

yum install ◯◯(ソフト名)

というコマンドを使ってインストールしたソフトは、

yum history 〜〜

というコマンドで調べることができます。詳しくはこちら。

ただし、これはyum install ◯◯でインストールしたソフトしか表示されません。例えば、rpmというパッケージ管理システムでインストールしたソフトに関しては、表示されないのです。そちらは別に、

rpm -qa --last

または

rpm -ql hogehoge

などのコマンドを使って、別に調べる必要があります。

このあたりの話は、こちらの外部サイトも参照してみてください。少々昔の記事ですが、本質は変わっていません。

yum historyとrpm -qa –lastで、構築手順を追跡

こちらを例えるなら、「あなたが今までにAmazonで買ったもの全てのリストをください」と言われているようなものです。これはAmazonのマイページにログインして購入履歴を見れば済みますね。ただ当然ですが、楽天で購入したものは出てこないので、それは別に調べる必要があります。

このように、「どんなソフトが入っているか?」を漠然と網羅的に確認するのは非常に手間がかかるということだけでも覚えておいてください。私は「既存のLAMP環境のソフトウェア調査」というお仕事をいただいたこともあります。仕事としてひとりリソースを割きたいと思うくらいには面倒な作業であることがわかるかと思います。

今改めて調べてみたら、「linux ソフトウェア 確認」とかでググっても、このあたりの結構良い記事が出てきますね。さらに詳しく知りたい方は、ぜひ調べてみてください!psコマンドでプロセスを確認したり、/usr/localなどを覗いて別途インストールされているものがないか確認したり、他にも方法はありますから。

ソフトウェアが確認できるようになったら、ドラ◯エで言ったら、スタートボタンから装備や持ち物を確認できるようになったことと同じですね。ひのきのぼうとぬののふくを装備していて、薬草を持っていることを確認できます。今後は、手に入れたものを、いつでも確認できますし、わからなければググり、足りないものは入手していけばよいです。仮に「薬草ってなんだ?」となっても、「薬草」というキーワードがあれば、調べればわかりますから。

いざ冒険へ:Linuxの超基本5選まとめ

この記事では、Linuxを初めて触る人が絶対に押さえるべき5つの超基本

  1. 仮想サーバーの理解とSSH接続
  2. CUIにおけるLinuxコマンドの重要性超基本コマンド7選
  3. Linuxの真実及びOS(何のLinuxディストリビューションを使っているか)の確認方法
  4. Linuxの代表的なディレクトリ構成の把握
  5. 既にインストールされているソフトウェアの確認方法

について解説しました。

おめでとうございます!!

この記事を読んだ皆さんは、記事を読む前にもし仮に何もわかってない全くの素人だったとしても、晴れて「Linux初心者」に昇格しました。あるいは、レベル1になりました。

さあ、もうあなたは、

Linuxの何がわからないのか、わかっています!

Linuxの何を知らないのか、知っています!

それで十分、自信を持って冒険に出られます!

モンスター(エラー)が出てきても大丈夫!あなたはその場所がどこかわかりますし、どんな装備を持っているかも知っています。後は調べればわかります。状況を説明できれば、先輩に聞くこともできます。そのOSが何か確認できるし、ディレクトリの特性も調べれば出てくるし、どのソフトが入っていて、どのソフトは入っていないのか知っていれば、解決への一歩を踏み出せます。

最初はスライムすら一人では倒せないかもしれませんが、大丈夫です。0と1は違います。0に何をかけても0ですが、1は積み上げていけば何倍にもなります。自信を持って「ここがわからない!」と言いましょう。そこから始め、エラーを解決しながらレベルアップしていきましょう。

この記事が、何も知らずにLinuxの世界へ迷い込んで「お前は勇者だ。命をかけて冒険に行け!」と命じられた人の冒険の足がかりになれば幸いです。

はるすと
はるすと

最後まで読んでくださってありがとうございました!感想・ご指摘、歓迎です!

画像提供:OpenClipart-VectorsによるPixabayからの画像

この記事を書いた人
こもれびエンジニア

自然と自由を愛するエンジニア。2021年1月に、大手製造業設計からプログラマ(Rails, AWS)へ転職。動物や自然との触れ合いや、汗を流すのが好き。

/HSP(繊細さん)/18デリケートな象/ストレングスファインダー(1分析思考/2親密性/3学習欲/4調和性/5収集心)、テニス、合気道、登山、あいだみつを、ジブリ、ワンピース、ドラゴンボール、AWS、Ruby on Rails、アイミング

twitterをフォローして、記事にならないちょっとした豆知識もチェック!
環境構築・OS(特にLinux)
スポンサーリンク
SNSでシェア/コメントして、自分のアウトプット/発信力を高めるのにお使いください。 ↓ 各ページへジャンプ ↓
twitterをフォローして、記事にならないちょっとした豆知識もチェック!
スポンサーリンク
「そんなか」サイト

コメント

タイトルとURLをコピーしました