CCNAの合格点は? 試験改定後の傾向や勉強方法を解説
2022.04.27
この記事では、ITソフトウェア開発で頻繁に使われているLinux環境において、エンジニアがよく使うLinuxコマンドを紹介しています。
Linux操作の基本ともなるLinuxコマンドを習得することは、エンジニアを目指すうえでも役に立ちます。Linuxコマンドと合わせて習得することで就職活動などに有利となる技術についても紹介しているので、ぜひ最後までご覧いただいて、ご自身の今後の勉強方針を決めるのに役立ててください。
目次
開くあなたにはどれが向いてる? 今すぐエンジニア診断してみよう
「エンジニアになってIT業界で働きたい」
「エンジニアに興味はあるけど、種類が多すぎて自分に向いてる職種がわからない」
そんな悩みを解決するのが、「エンジニア診断ツール」です。
「エンジニア診断」はたった12の質問に答えるだけで、あなたに向いているエンジニアを診断。
診断結果には仕事内容の概要も掲載しているので、自分に合ったエンジニアについて詳しく知って、エンジニア就職に一歩近づきましょう。
Linuxは、Linuxコマンドを実行するための環境のOS(オペレーティングシステム)です。OSとして有名なWindowsやMacが一般のパソコンで使われるのとは異なり、Linuxは特にサーバーの環境で使われることが多いOSですが、Windowsなどと同様に個人の環境で使うこともできます。
Linuxには、Webやデータベースなどのサービスを提供することに適したソフトウェアが多くあり、それらのソフトウェアやLinuxのOS自体を無料で利用できるため、幅広い分野で活用されています。
Linuxについて詳しく知りたい方は、ぜひ以下の記事もご覧ください。
関連記事:Linux(リナックス)って何|意味や用途を完全解説
Linuxは、Windowsと同じようなGUI(グラフィカルユーザーインターフェース)を使って、マウスを使って簡単に操作できますが、サーバー環境として使う場合は、画面の情報量を減らした文字だけのCUI(キャラクタユーザーインターフェース)環境で使うのが一般的です。
CUI環境ではOSに対する操作はキーボードから入力して行うのが基本で、それらの命令はLinuxコマンドと呼ばれます。
Linuxをサーバー用途として使えるようにするために、Linuxコマンドを使ってさまざまな設定したり、サーバー内に蓄積された情報を収集したりします。
サーバーは、サービスを提供するシステムの中核で、ほとんどの場合は24時間動き続ける必要があります。サービスが開始される前は自由に操作できますが、サービスの提供が始まった後は、停止するリスクなどを回避するため、アクセスや操作を最小限に抑えます。
ここでは、サーバーを操作する必要が生じる場面を含め、ITの開発現場においてLinuxコマンドが使われる具体的な状況を紹介します。
ソフトウェアやサービスなどでサーバーの機能を使う場合には、利用する内容に合わせてサーバーを設定する必要があります。サーバー機能として代表的なものではWebサーバーやデータベースなどがあります。
Linuxコマンドを使ってサーバー上で設定ファイルを更新したり、特定のプログラムを実行して必要な機能が使える状態に設定します。
各種サービスに必要なサーバー設定などに関する知識とともに、それらを適切に処理するためにLinuxコマンドの技術も必要です。コマンドに熟練したエンジニアは効率よく処理して、より短い期間で設定作業を終えることができるでしょう。
すでにサービスを提供している状態のサーバーで、何か障害が発生した場合などは、Linuxコマンドを活用して原因を調査します。Webサーバーなどへの不正アクセスを調べるためにアクセスログファイルを確認するといった場合にも、Linuxコマンドが使われます。
Windowsの操作のように、検索ウィンドウに文字列を入力してボタンを押したら結果が出るようなものではなく、Linuxのコマンドを駆使して目的の情報を引き出さなければいけません。
限られた環境の中で、必要な情報を引き出すためには、Linuxコマンドについて深く理解している必要があります。特にサーバー上には大量のデータが蓄積されていることも多く、それらの中から必要な情報だけを抽出する作業は簡単ではありません。
自分の適性が分かる!今すぐエンジニア診断してみよう
「エンジニアに興味はあるけど、種類が多すぎて自分に向いてる職種がわからない」
そんな悩みを解決するのが、「エンジニア診断ツール」です。
エンジニア診断ツールの特徴
「エンジニア診断」はたった12の質問に答えるだけで、あなたに向いているエンジニアを診断。
診断結果には仕事内容の概要も掲載しているので、自分に合ったエンジニアについて詳しく知って、エンジニア就職に一歩近づきましょう。
サーバーにLinuxを採用している開発プロジェクトの場合は、そのプロジェクトに関わる一部のエンジニアがLinuxコマンドを使って業務をします。サーバーがLinuxであっても、Linuxのコマンドを実行して作業を行う必要があるのは、サーバーに対して直接的な担当業務があるエンジニアだけです。
ここでは、どのようなエンジニアがLinuxコマンドを使った仕事をしているのかを紹介します。
プログラマーは、プログラミングすることでソフトウェアを作る職種です。プログラマーにも細かな分類があって、なかでもWebやデータベースなどサーバーに近いプログラムを担当するプログラマーの場合は、プログラミング言語だけでなく、Linuxコマンドについての知識が必要となる場合があります。
小規模なプロジェクトなどでは、サーバーやネットワークなどに専任のエンジニアが配置されないこともあり、プログラマーがサーバーやデータベースの設定まで行うことも珍しくありません。Linuxはプログラミングとは異なる技術知識ですが、プログラムはサーバーやOSと密接な関係にあり、知識を深めることでプログラミングの能力向上にも役立てることができます。
関連記事:プログラマーとは|仕事内容や年収から向いている人や資格まとめ
未経験からプログラマーになれる?|おすすめ言語や面接対策を紹介
大規模なプロジェクトでは、サーバーの設定や運用に専任するエンジニアとして、サーバーエンジニアが加わることがあります。
プログラマーとは違って、サーバーエンジニアは主に上流工程であるサーバーの設計などを行います。サーバーの設計では、サービス提供に必要な機器やソフトウェアなどを選んで、具体的な作業の計画を立案します。
サーバーエンジニアはサーバーを設定する作業だけでなく、サービス提供が始まった後の運用もサポートをする場合があります。運用サポートでは、操作を間違えると提供中のサービスに悪影響が出る可能性もあり、場合によってはメンテナンス時間を設けてサーバーの操作を行うこともあります。
関連記事:サーバーエンジニアとは|仕事内容から必要なスキルまで徹底解説
データベースを専門的に扱うデータベースエンジニアはLinuxコマンドをよく使います。
Linux上でデータベースというサービスを設定する作業では、データベースソフトウェアの設定ファイルの変更や、ネットワークやセキュリティに関連したOS操作のために、Linuxのコマンドを頻繁に使います。
また、動いているデータベース内のデータを確認するために、サーバー上で作業を行うこともあります。データベースの操作自体は「SQL」などの専用言語を使いますが、データベースに接続するまでの間の操作はLinuxコマンドが必要で、多くの場合セキュリティに守られたデータベースへの接続をするために、ユーザー権限の昇格などの独特な操作します。
関連記事:データベースエンジニアとは|仕事内容から必要なスキルまで徹底解説
Linuxはサーバーは、ネットワークに接続されることで本領を発揮するので、Linuxのネットワークやセキュリティの設定などを行うネットワークエンジニアも、Linuxのコマンドをよく使います。
ネットワークエンジニアは、Linuxを適切なネットワークに接続するために、Linuxコマンドを使ってOSの設定ファイルなどを書き換えるといった作業をします。設定後に接続状態や接続の経路などが正しいことを確認する場合も、Linuxのコマンドを使いながら作業します。
ネットワークエンジニアはLinux環境に特化したエンジニアではありませんが、サーバーにはLinux環境が採用されることが多いため、Linuxを操作する機会が多い職種です。
ネットワークエンジニアになるために、必要なスキルなどを詳しく解説した以下の記事もぜひご覧ください。
関連記事:ネットワークエンジニアとは?仕事内容&必須スキルまとめ
30秒で結果がわかる! エンジニア診断を無料で受けよう
「エンジニア診断ツール」を使うと、12の質問に答えるだけで、8種類のエンジニアの中から一番自分に向いているエンジニアがわかります。
さらに、「エンジニア診断」は無料で受けられて、診断結果には向いているエンジニアの仕事内容が記載されているので、自分の適性をその場で理解することが可能です。
「エンジニア診断」を活用して、エンジニア就職に一歩近づきましょう。
書籍やネットの情報などでLinuxコマンドを勉強して、実際に覚えたことを実行しようとしても上手くいかないことがあります。なぜ失敗したのかを理解するためにも、LinuxというOSについての基本的な知識は必要です。
LinuxというOSは機能が多く、すべてを学ぼうとすると大変ですが、ここでは特にコマンドについての勉強をする際に必要となる基本的な要素について紹介しています。
目的のデータにたどり着くために、まずLinuxでのデータ管理構造を知りましょう。
基本的には、Windowsのファイルやフォルダと同じような構造で管理されていますが、Linuxでは名前が少し異なるものもあります。たとえば、フォルダはディレクトリ、ショートカットはリンクと呼びますが、役割はほとんど変わりません。
また、OS操作をする際に「自分の場所」の概念があることも特徴の一つです。自分のいる場所をカレントディレクトリと呼び、それ以外のディレクトリにあるデータについての操作にはさまざまな制限があります。
各種Linuxのコマンドも、パス(Path)として設定されてる場所にあるものだけが利用できます。パスの設定に含まれないディレクトリにあるコマンドを実行すると失敗してしまいます。
Linuxコマンドを使うために、ユーザーがログインすると自動的に実行されるプログラムをシェル(Shell)といいます。シェルにはいくつかの種類があり、有名なものにはtcshやbashといったものがあります。
ユーザーがLinux環境にログインすると、環境を設定するためのシェルスクリプトが自動的に実行されます。多くの場合シェルスクリプト内で、Linuxコマンドが配置されているディレクトリへのパスが設定されることで、ユーザーは自由にLinuxコマンドを利用できるようになります。
シェルが異なる環境では、コマンドや利用できるオプションが異なったり、ログイン時の設定パスが異なり、使えるコマンドが変わることがあります。
ファイルやディレクトリなどの所有者や権限については、Windowsではあまり意識することはありませんが、Linuxでは非常に厳密に管理されています。
Linuxの権限情報は「パーミッション」と呼ばれ、「所有者」と「所有者の所属するグループ」と「他のユーザー」という区切りに対して、「読み」「書き」「実行」の3つの行動を許可するという構成になっています。
書き込みの権限がない場合は更新ができず、読み込み権限がない場合は閲覧ができません。実行権限がないLinuxコマンドは、実行するとエラーとなり失敗してしまいます。Linux環境では、ログインしたユーザーによって、実行できるコマンドやファイルに対する操作権限が決定するため、ログインユーザーの扱いはWindows以上に重要です。
エンジニア診断を受けて最初の1歩を踏み出そう!
エンジニアになるかどうか悩んでいる人は、まず「エンジニア診断ツール」を活用するのがおすすめです。
「エンジニア診断」を使うと、どのエンジニアに自分が向いているのか、簡単に理解することができます。約30秒で診断できるので、気軽に利用してみてください。
エンジニア診断ツールでわかること
サーバーの設定やログの確認などの多くの作業では、特定のファイルを操作する必要があります。それらのファイルの多くは、サーバープログラムが特定のディレクトリで管理しています。
ここでは、対象のファイルを操作可能とするために、ファイルを探したりカレントディレクトリを移動するといった基本的なLinuxコマンドを紹介しています。
実際に試してみることは重要な経験になるので、覚えた知識はできるだけ自分の手を動かして確認してみましょう。
ログインした直後や、何かの操作をした後などに、自分がどこのディレクトリにいるのかを確認することがあります。Linux環境では、パスの概念とともに、自分の居場所であるカレントディレクトリは非常に重要な情報です。
カレントディレクトリを確認するには以下のコマンドを実行します。
$> pwd |
---|
pwdコマンドを実行すると、カレントディレクトリが表示されます。pwdコマンドは、対象のファイルの指定や複雑なオプションなども必要ないため、Linuxコマンドを練習できる環境を入手したら、最初に実行してみるのに良いでしょう。
カレントディレクトリの情報から、自分が目的とするファイルがある場所との位置関係を把握して、必要に応じてカレントディレクトリを変更するといった作業をします。
ファイルの指定方法には大きく2種類あり、どちらを使っても同じファイルを指定できます。
一つはOS上のファイル構造の根本である「ルートディレクトリ」からすべての経由するディレクトリを記載する「絶対パス」指定という方法です。もう一つは「カレントディレクトリ」からの位置を記載する「相対パス指定」です。
絶対パス指定はカレントディレクトリに関わらず一定であることが長所ですが、作業を行ううえでは指定が面倒という短所があり、多くのエンジニアは便利な場所にカレントディレクトリを移動して、相対パス指定でファイルの操作をします。
カレントディレクトリを移動するには、以下のコマンドを使います。
$> cd 移動先のディレクトリ |
---|
相対パス指定では、親ディレクトリを意味する「..(コロン二つ)」などを使って指定を簡略化することが可能です。
目的のディレクトリに移動したら、そのディレクトリ内にファイルがあることを確認するために、ファイルの一覧を見るコマンドが使われます。
カレントディレクトに入っているファイルの一覧を表示するには、以下のコマンドを使います。
$> ls |
---|
実行すると、カレントディレクトリ内にあるファイルの一覧が画面に表示され、ファイル数が多いディレクトリでは画面内に情報が収まりきらず、スクロールして表示されます。
lsコマンドは、Linuxコマンドの中でも特に利用頻度が高いコマンドです。一覧の表示結果などを便利にするさまざまなオプションが用意されているので、自分が使いやすいオプションの指定方法をいくつか使い分けながら、目的のファイルを素早く探し出しましょう。
目的のファイル名は分かっていても、そのファイルがどのディレクトリに置いてあるのか分からないこともあります。そういう場合にはファイルを検索します。
Windowsでは簡単なファイルの検索ですが、Linuxでは少し複雑な検索のコマンドを知っておく必要があるので、早い段階で覚えておくことをオススメします。
ファイルの検索には以下のコマンドが使われます。
$> find / -name [探すファイル名] |
---|
findコマンドには、目的に合わせて指定できる多くのオプション指定が用意されています。サーバー上にはファイルが多く、検索には相応の時間がかかるので、findコマンドの指定方法には気を付けましょう。
目的のファイルのディレクトリに移動してファイルの存在も確認できたら、いよいよその中身を確認して作業を開始します。Windowsと違ってファイルの中身を見るのにもLinuxコマンドが必要になります。
ファイルの中身を確認する方法はいろいろありますが、ここでは特に使われることが多いコマンドを紹介します。
ファイルを確認する作業に限りませんが、LinuxのCUI環境ならではの画面の狭さが原因となるさまざまな悩みを解決する便利なコマンドについても合わせて紹介しています。
ファイルの中身を確認する代表的なコマンドは以下になります。
$> cat [対象のファイル名] |
---|
catコマンドでは、指定したファイルの中身を画面に表示します。対象のファイル名には、カレントディレクトリのファイル以外に、絶対パス指定などを使って他のディレクトリにあるファイルを指定することも可能です。設定ファイルの中身やログファイルの確認など、広い用途で使われます。
サーバーの設定ファイルなど中身が長いファイルの場合は、すべての内容がスクロールして表示されます。スクロールして流れてしまった内容は見ることができないため、このコマンド単体では使い勝手が悪く、多くの場合は他のコマンドと組み合わせて使います。
catコマンドを使って長い内容のファイルを表示するとスクロールして流れてしまい、中身を確認することが難しい状況がよくあります。Linuxでは長いファイルを見る際などに、組み合わせることで便利なコマンドがいくつか用意されています。
Linuxのリダイレクトは、コマンドの入出力を変更するOSの機能で、この機能を使って目的の情報が効率的に扱えます。
リダイレクトの代表的な方法としては、以下のようなものがあります。
# ファイルの中身をコマンドに入力 $> [コマンド1] < ファイル # コマンドの実行結果をファイルに出力 $> [コマンド1] > ファイル #コマンドの実行結果を他のコマンドに入力 (パイプ) $> [コマンド1] | [コマンド2] |
---|
すべて利用頻度が高いですが、特に便利なのは「|(パイプ)」です。パイプを使うことで、長い表示を区切って確認することが可能になります。
パイプで使われることが多いコマンドに、入力された文字情報を一頁ごとに区切って表示する「moreコマンド」があります。more自体は単独でも利用できますが、そのほかのコマンドの出力結果に対して使うのが一般的です。
ここではcatの結果をパイプでmoreに入力して使う方法を紹介します。
$> cat 対象ファイル名 | more |
---|
catコマンドの後ろにパイプを挟んでmoreが指定されています。この指定方法では、catの出力結果がmoreの入力に渡され、スクロールして消えてしまう前に一時停止して、キーボードの入力をすることで次のページに進むという動きになるので、ファイルの内容を順番に上から読んで確認する場合に便利です。
grepコマンドでは指定した文字列を含む行だけを出力結果に表示します。非常に長い設定ファイルなどから、該当する設定項目の行だけを抽出して画面に表示できるため大変便利です。
ここではcatの出力結果をgrepコマンドに通す例を紹介します。
$> cat 対象のファイル名 | grep 抽出文字列 |
---|
catコマンドの後ろにパイプをつけて、grepコマンドで抽出対象とする文字列を指定しています。
目的の行だけが出力されるので、元のファイルを表示したときよりも出力結果は短くなりますが、それでもスクロールするような場合には、さらにパイプを挟んでmoreなども指定できます。
更新されたファイルがバックアップとして残されていて、更新前後の変更を確認する場合など、複数のファイルを比較する状況ではdiffコマンドが使われます。diffコマンドでは変更のあった行だけでなく、削除された行などについても、変更状況を確認できます。
diffコマンドの基本的な指定方法は以下のようになります。
$> diff ファイル1 ファイル2 |
---|
diffコマンドの出力結果は少し特徴的な形式になっていて、エンジニアによって好みの分かれるコマンドでもあります。慣れるまでは少し戸惑うこともあるかもしれませんが、慣れてくると変更内容が視覚的に分かるため、非常に便利なコマンドです。
目的のファイルを発見しても、そのファイルに対する操作権限がない場合は、閲覧や編集ができません。サーバー内のファイルに対する操作権限は、不正なアクセスを防止するために基本的に最小限に設定されているので、必要な作業に合わせて頻繁に権限を変更します。
ここでは、ファイルに対する権限の設定として使われる代表的な2つのLinuxコマンドを紹介します。
ファイルには所有者という情報が付与されています。所有者には作った人が自動的に設定されますが、サーバーソフトウェアなどでは特定のユーザーやグループが自動的に割り当てられるファイルも存在します。
設定変更を行うときには、特定のユーザーやグループのみが編集できるように、ファイルの所有者を変更することがあります。所有者を変更するには以下のコマンドを使います。
$> chown ユーザー ファイル名 |
---|
指定したファイル名の所有者を、指定したユーザーに変更します。グループについても変更する場合は、「ユーザー:グループ」のようにコロンで区切って指定します。
パーミッションは、Linuxのファイルシステムでのアクセス権限を管理する基本的な情報です。各ファイルやディレクトリなどに必ず付いている情報で、所有者、グループ、そのほかのユーザーに対して、読取・書込・実行の許可権限が設定されます。
それぞれの権限は、内部的には0か1のフラグで管理されており、合わせて8進数3桁の数字で表現されることもあります。
所有者 | グループ | その他 | ||||||
読取 | 書込 | 実行 | 読取 | 書込 | 実行 | 読取 | 書込 | 実行 |
1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
---|
上記例のように、所有者だけ読み書きが許可され、グループは閲覧だけができる設定は、2進数では「110 100 000」で、8進数では「640」と表現することが可能です。すべての許可を与える場合は「111 111 111」なので8進数では「777」ということになります。
パーミッションの変更は以下のコマンドを使います。
$> chmod 権限 ファイル名 |
---|
権限の部分にはいろいろな指定方法があり、上記8進数の表現も利用可能です。
ファイルを操作する権限があれば、設定変更などの編集操作が可能となります。
エンジニアが行う設定作業の中では、設定ファイルなどの更新作業などとともに、サーバーに必要となるディレクトリの作成や、作業中に作った不要なファイルの削除など、さまざまな操作が行われます。
ここではサーバーの設定作業の中で、よく使われるファイル操作に関するLinuxコマンドをいくつか紹介します。
Windowsのメモ帳のような感覚でファイルを編集したい場合は、Linuxではviというエディタを使います。viコマンドでは指定したファイルを開き、自由に内容を書き替えることが可能です。
ただ、viというエディタは編集方法が少し特殊なため、扱いには慣れが必要です。特殊なviを嫌うエンジニアは、別のエディタを使うことも多く、最近はLinux自体にもvi以外のエディタが用意されていることも珍しくありません。
ここでは、viでファイルを編集するLinuxコマンドを紹介します。
$> vi ファイル名 |
---|
vi以外では、viを拡張したvimといった高機能なエディタや、nanoのように直感的に操作できるエディタが多く使われています。
編集するファイルを事前にバックアップしておくなど、ファイルをコピーする操作は頻繁に行われます。誤った設定を保存してしまいサーバーが正しく動かなくなることもあるので、リスク回避のために元の設定ファイルを残しておくのが一般的です。
そのほかにも、特定のログファイルの保存を行ったり、自身のパソコンからファイルをサーバーにアップロードして使う場合にも、ファイルのコピーが行われます。
ファイルのコピーには以下のコマンドを使います。
$> cp コピー元 コピー先 |
---|
cpコマンドにはさまざまなオプションが用意されています。特に、ディレクトリの中身まで同じくコピーする指定などは、作業効率向上のためエンジニアの作業中によく使われます。
ファイルのコピーと似ていますが、元のファイルを残しておく必要がない場合は、ファイルをそのまま移動します。
ファイルの移動には以下のコマンドを使います。
$> mv 移動元 移動先 |
---|
サーバー上にはサイズが非常に大きなファイルも多くあるため、ファイルに対する操作は注意して行う必要があります。ファイル移動は、ファイルの場所が変わるだけなので、サーバーの容量を圧迫しないメリットがあります。場所の情報が変わるだけの処理になるため、コマンドの実行にかかる時間が非常に短いのも特徴の一つです。
また、移動先で指定したファイル名になることを利用して、ファイルの名前変更の用途でも使われます。
ファイルには、タイムスタンプと呼ばれる更新日時の情報が付いています。サーバー上では、更新日時の情報も重要な蓄積データの一つなので、この更新日時だけを更新するといった作業が行われることがあります。
ファイルのタイムスタンプを更新するには以下のコマンドを使います。
$> touch ファイル名 |
---|
touchコマンドを使うことで、指定したファイル名のタイムスタンプを現在日時に更新できます。指定したファイルが存在しなかった場合は、空のファイルが指定したファイル名で作られます。
オプション指定で日時も指定でき、その場合は指定した日時にタイムスタンプを設定できます。
サーバー設定中に作った一時的なファイルなど、作業終了後に不要となったファイルについては、エンジニア自身で削除する必要があります。
ファイルの削除には以下のコマンドを使います。
$> rm ファイル名 |
---|
削除コマンドは、稼働前のサーバーの設定作業だけでなく、稼働後の運用サポート段階でも、サーバー内のファイルの整理などで頻繁に使われます。
普通のファイル削除コマンドとしても使われますが、オプション指定をすることでディレクトリの中身をまとめて削除する方法を使えば、削除する作業量を大幅に軽減できるので、よく使います。削除されたファイルやディレクトリはもとに戻せないため、実行前に十分確認しましょう。
サーバーソフトウェアの動作に必要なディレクトリや、エンジニアの管理のためなど、さまざまな目的で新しいディレクトリが作られます。
ディレクトリの作成には以下のコマンドを使います。
$> mkdir ディレクトリ名 |
---|
指定したディレクトリ名で、新しいディレクトリが作られます。
特定のディレクトリがサーバーソフトウェアの動作に必要な場合などは、特にパーミッションに注意しましょう。作ったディレクトリをサーバープログラムが使える権限に設定する必要があります。
管理用に作ったディレクトリなどには、自由にファイルを入れておくことができるので、さらにファイルのコピーや移動のコマンドを使ってファイルの整理できます。
ディレクトリ自体の削除を行う場合は、以下のコマンドを使います。
$> rmdir ディレクトリ名 |
---|
rmdirコマンドでは指定したディレクトリが削除されますが、中身が空のディレクトリのみが削除できるということに注意しましょう。
多くのディレクトリは中に何かのファイルが入っている状態のため、このコマンドを使って削除できません。mkdirコマンドで間違った名前のディレクトリを作ってしまった場合などにはこのコマンドを使って削除します。
中身のあるディレクトリを削除する場合は、削除コマンドであるrmにオプションの-rを指定してまとめて削除するのが便利です。
Linuxのリンクは、Windowsにおけるショートカットのようなファイルです。
Webサーバーなどでは、Webサーバーの管轄外のディレクトリやファイルを、Webサーバー管轄内にあるかのように扱うことができるため、非常に便利です。
リンクを作るには、以下のコマンドを使います。
$> ln ファイル名 リンク名 |
---|
lnコマンドでは、指定したファイルへのリンクを作ります。この方法で作ったリンクは「ハードリンク」と言われるファイルで、リンク元のファイルを削除や移動したとしても継続して利用できます。
WindowsのショートカットはLinux上では「シンボリックリンク」と呼ばれ、オプションに-sを指定することで作成が可能です。シンボリックリンクは実体を持たないため、元のファイルが削除されると使えなくなります。
エンジニアが行うサーバーの設定作業の中では、ファイルに対する操作以外にも、さまざまなLinuxコマンドが使われます。
作業のために必要な手続きに関するコマンドは、知っておかなければ作業自体を行えないため非常に重要です。また、サーバーの状況を確認するためなどに使うコマンドを知っておくことで、的確に状況を把握して必要な処置ができます。
ここではファイル操作に関するコマンド以外で便利なコマンドをいくつか紹介します。
Linuxのログインユーザーは、ファイルへのアクセス権などのセキュリティに非常に大きな意味があります。
サーバーの設定作業などでは、アクセスが制限されているファイルを操作することも多く、パーミッションの変更も行えない状況では、操作できるユーザーに切り替えて対応します。
ユーザーの切り替えを行うには以下のコマンドを使います。
$> su ユーザー名 |
---|
suコマンドを実行すると、必要に応じてログインパスワードを求められることがあります。suコマンドを使うことで、より強い権限を持ったユーザーとして作業し、exitコマンドでそのユーザー権限からログアウトします。
エンジニアがデータベースなどにアクセスする場合も、このコマンドを使ってアクセスが許可されたユーザーに切り替えてから作業を行うことがよくあります。
データベースサーバーとWebサーバーが物理的に別のサーバーになっている構成などでは、両方のサーバーの状態を確認しながら作業を進めるために、Linuxの中から別のLinux環境へ直接ログインする方法が使われます。
他の環境へログインする方法は、サーバーの提供している方法などによって異なりますが、ここでは広く一般的に使われている以下のコマンドを紹介します。
$> ssh サーバーアドレス |
---|
データベースなどの重要な情報が保存されているサーバーは、セキュリティの観点から、外部からのアクセスが禁じられていることが多いので、Webサーバーなどの内部へのアクセス権限を持ったサーバーを経由して接続する際などにも、このコマンドが使われます。
多くのコマンドを実行してサーバーを操作する中で、過去に実行したコマンドと同じことを実行したい場合があります。長いコマンドなどは設定するのも大変なので、過去の履歴を確認して同じコマンドを実行したりします。
過去に実行したコマンドは以下のコマンドで確認できます。
$> history |
---|
historyコマンドを実行すると、過去に実行したコマンドが順番に表示されます。多くのコマンドを実行したユーザーの場合は、画面をスクロールして大量のコマンド履歴が表示されるため、パイプを指定してgrepやmoreなども併用して必要な情報を取り出すのが一般的です。
サーバー上で問題が発生した場合には、どのコマンドが原因だったのかを突き止めるために調べたり、不正アクセスで行われたコマンドを調査するためなどにも使われるため、意外と利用頻度の高いコマンドです。
サーバーにデータを蓄積する場合などには、ストレージの空き容量を確認することは重要です。ユーザーがファイルをアップロードして使うサービスなどでは、特にストレージの空き容量には注意しましょう。
ストレージの空き状況を確認するには以下のコマンドを使います。
$> df |
---|
dfコマンドを実行すると、サーバー上で使える各ストレージの状況が一覧表示されます。
空き容量が足りなくなっている場合は、削除や移動などのコマンドを使って空き容量を確保したり、必要に応じて追加のストレージを検討します。追加のストレージを接続する場合は、機器の調達や設定作業などを含めて関連エンジニアと協議して、比較的大きなメンテナンス作業が必要となるでしょう。
サーバーはネットワークに接続して使われることが多く、ネットワークの状態を確認することは良くあります。
Linuxにはネットワークに関して多くのコマンドがありますが、なかでもよく使われる2つのコマンドを以下に紹介します。
# 疎通確認、死活管理 $> ping アドレス # 経路確認 $> traceroute アドレス |
---|
pingコマンドはWindowsでも利用可能で、おもに通信相手の確認に使われます。相手に対して簡単なデータを送り、相手はそのデータを送り返すという単純なやり取りで、相手が稼働中であることを確認します。
tracerouteコマンドは経路を確認できます。通信状況が悪い場合などに、経路のどこで時間がかかっているのかを表示できるため、原因を特定するのに役立てることができます。
Pingについて詳しく知りたい方は、以下の記事も参考にしてみてください。
エンジニアは多くのLinuxコマンドを使ってさまざまな業務しますが、すべてのコマンドを覚えているわけではありません。よく使うコマンドなのに使い方を忘れてしまうこともあります。
以下のコマンドを使うと、指定したコマンドの使用方法を確認できます。
$> man コマンド名 |
---|
サーバーによっては表示される内容が異なったり使いづらいことも多いので、できるだけコマンドは覚えておきましょう。また、オプション指定で簡易ヘルプを表示できるコマンドも多く、エンジニアもコマンドの実行前に確認することは良くあります。
簡易ヘルプのないコマンドを確認する必要がある場合の最終手段として、manコマンドも頭の片隅に入れておくと、役立つこともあるでしょう。
IT関連に限らず書籍やネットの情報などで知識を付けるだけでなく、実際に自分で試して経験することは非常に重要です。予測していない失敗などを経験することで、関連した広い知識を得ることもできます。
Linuxのコマンドを実行するために個人でLinux環境を準備する場合、普段使っているコンピューターがWindowsだといろいろと苦労します。
ここでは、Linuxコマンドの練習をしたり、Linux自体の勉強をするのに役立つ方法を3つ紹介します。
Linuxはサーバーの用途で広く使われていますが、個人で使うことを想定したLinuxもあります。普段使っているパソコンにLinuxをインストールして、Linuxについてコマンドを含めた全般的な使い方を練習してみましょう。個人で使うLinuxとしてはUbuntuなどが有名です。
サーバーと違って個人の環境ではGUIを使って比較的容易にLinux設定ができて、同じことをLinuxコマンドを使って確認するという勉強方法が行えるのが最大の魅力です。
普段からLinuxと親しむことでLinux環境に慣れることができますが、Windows環境での便利なツールなどがLinux用の別のツールに置き換わるなどで、最初のうちは不便に感じることもあるでしょう。
Linuxが使えるレンタルサーバーなどを借りて、teratermなどの接続アプリを使ってWindowsから接続する方法があります。レンタルサーバーにはある程度の費用がかかることもあります。
この方法では、ある程度設定されているサーバーを確認しながら、必要な設定変更だけして、その動作を確認できるため非常に効率が良いのが特徴です。OSのセットアップやLinux自体の勉強が必要なく、Linuxコマンドだけに注力したい場合には、この方法は非常に時間を節約できるでしょう。
設定したレンタルサーバーを自分の公開Webサーバーとして活用するなどの目標を掲げて取り組むことで、目的意識をもってコマンドの習得を行うこともできて、サーバーが完成すると大きな達成感も得られるでしょう。
Windows環境の中に、仮想的なLinuxの環境を作ることができ、無料で利用できるVMwareやVirtualBoxといったソフトウェアは、エンジニアの間でも広く使われています。仮想環境への接続はsshなどで行いますが、仮想環境のLinuxに直接ログインして使うこともできます。
WindowsのPCには仮想コンピューターを動かすためのスペックが必要になりますが、勉強段階を含めてOS環境への費用を抑えることが可能です。
仮想環境の構築には、Linuxコマンドだけでなく、LinuxのOS設定やネットワークの設定など、多くの分野に渡って知識が必要となりますが、設定の過程で得られる経験はエンジニアにとっても非常に有益なものとなるでしょう。
Linuxコマンドは、目的に対する手段であって最終的な目標ではないため、専門にしているエンジニア職はありませんが、多くのソフトウェア開発現場で必要とされる知識です。
エンジニアとして就職するためには、Linuxコマンドの知識を活かすことができる技術力もあわせて必要となります。
ここでは、Linuxコマンドの知識と合わせて勉強するのにオススメの技術をいくつか紹介しています。どのようなエンジニアへのキャリアアップがあるのかも合わせて解説しているので、ぜひ参考にして勉強の計画に役立ててください。
Linuxで利用できる無料のデータベースであるMySQLやPostgreSQLについて、興味を持って覚えるようにしましょう。有料ではありますが、可能であればOracleについても実際に触れておくとエンジニアになってからもその経験は役に立ちます。
データベースの技術を習得しつつ、最初はプログラマーを目指しましょう。データベースを扱うプログラムの勉強では、データベースの構造などの知識とともに、プログラムで使うデータベースの構築作業などがあり、その過程でLinuxコマンドを使います。
プログラマーとして経験を積むことで、データベースエンジニアなどの上級職へとキャリアアップしていくことができるでしょう。
データベースを扱う言語であるSQLについて興味のある方は、ぜひ以下の記事もご覧ください。
関連記事:SQLとは|基本構文からエンジニア就活まで徹底解説!
Linuxサーバー上では、機能を提供するためにさまざまな設定をします。機能を提供するサーバーはアプリケーションサーバーと呼ばれ、代表的なものとしては、Webやデータベースなどがあります。こういったサーバープログラムは、ITの現場では利用頻度が高いので、その設定に精通している人材は広く求められる傾向にあります。
アプリケーションサーバーの設定を覚えながら、Javaなどのプログラミング言語を合わせて習得してプログラマーを目指しましょう。サーバー設定を行う上級職であるサーバーエンジニアや、IT業界の花形ともいわれるシステムエンジニアといった重要な職種にキャリアアップしていくことができるでしょう。
関連記事:システムエンジニアになるには|必要な知識から就活までを完全網羅
Linuxとともに、ネットワークについて興味を持って取り組みましょう。Linuxコマンドで設定したLinuxのサーバーを使って、ネットワークに関連したプログラミングを勉強するのが良いでしょう。
Linuxと関わるネットワーク関連のプログラマーとして就職した後に、さらにWebサーバーやデータベース設定におけるセキュリティ設定などを習得することで、最終的には上級職であるネットワークエンジニアを目指すことができます。
ネットワーク関連のエンジニアとしての就職活動では、ネットワークの基礎知識を証明できるCCNAなどを所持していると有利です。就職に資格は必須というわけではありませんが、資格を所持していることは知識の証明になるとともに、勉強への取り組み姿勢を示すことにもなるので、可能であれば取得を検討しましょう。
関連記事:CCNAとは|試験の難易度から合格するための勉強方法まで紹介
Linuxコマンドは、LinuxというOSを操作するための基本的な技術ではありますが、現在のIT社会におけるさまざまなサービスを提供するサーバーを支えている非常に重要な技術でもあります。
Linuxコマンドを習得することは、エンジニアとして広い分野に関わることができることにもつながります。将来的にはサーバーエンジニアやネットワークエンジニアといった高度な技術職へのキャリアアップにもつながるので、勉強する過程から周辺の技術にも興味を持って広い知識を習得して、目標とするエンジニアを目指しましょう。
あなたにはどれが向いてる? 今すぐエンジニア診断してみよう
「エンジニアになって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