Linuxコマンドとは?実行方法と基本のコマンドを紹介

Linuxコマンドとは?実行方法と基本のコマンドを紹介

Linuxエンジニア 案件・求人一覧はこちら

Linuxコマンドとは?


Linuxは主にサーバーコンピューター用のOSとして利用されています。サーバーを管理するためにはターミナル(端末)用のアプリケーションでリモート接続することがほとんどです。リモート接続によるコンピューター利用の大半はCUI(Character User Interface)と呼ばれる文字だけが表示される画面を通じてコンピューターとやりとりすることになります。そのようなCUI環境で行うことは、コマンドと呼ばれる文字列をキーボードで入力するコマンド実行です。ファイルを開く、プロセスの状態を確認する、コンピューターやアプリケーションの設定をする等の作業では、全てにおいて何かしらのコマンドを実行することになります。サーバー管理者だけではなく、開発環境としてLinuxを利用するソフトウェア開発者にとってもLinuxのコマンドを覚えることは必須です。この記事では、これからLinuxを利用する方の最初のステップとなるようなLinuxコマンドの使い方をご紹介します。

Linuxコマンドの実行方法

コマンドを実行するためには、LinuxをCUIモードで起動するか、GUIモードで起動してターミナルアプリケーションを起動するか、もしくはWindowsマシンなどの別のコンピューターからリモート接続可能なターミナルアプリケーションを使い、Linuxのシェルにアクセスする必要があります。個人でLinuxを学んでみたい方は、Windowsコンピューターにコンピューター仮想化ソフトウェアをインストールし、仮想マシンに対してLinuxディストリビューションをインストールするのが良いでしょう。多くのディストリビューションではまずGUIが起動し、そこからターミナルアプリケーションを起動することができるようになっています。シェルとはOSの中核となるプログラムに対して、利用者がアクセスするためのプログラムです。例えば、「テキストエディターを起動する」という命令をOSに伝えるためには、利用者はシェルを通してテキストエディターを起動するためのコマンドを実行することになります。ここではシェルとしてBashというシェルを利用することを想定します。Bashは多くのLinuxディストリビューションで利用可能であり、特に設定をせずともデフォルトのシェルとして採用されている場合が多いです。なお、筆者の環境はUbuntu 18.04.3です。本記事ではディストリビューションに依らない説明をしますが、一部のコマンド実行結果などの表示は環境により異なる場合があります。ご了承ください。

コマンドの入力と実行

前置きが長くなりましたが、さっそくコマンドを実行してみましょう。ターミナルアプリケーションなどでアクセスし、シェルが起動すると以下のような画面が表示されているでしょう。

これはコマンドラインと呼ばれるものです。$などの記号の後にキーボードからコマンドを入力できるようになっています。user1@host1:~の部分はユーザー名@コンピューター名:現在のディレクトリと言う意味で表示されていますが、環境や設定によって異なります。このコマンドラインに対してキーボードからlsと入力してエンターキーを押してみてください。

これでlsコマンドの実行が完了しました。lsはディレクトリの内容を表示するコマンドです。上記の例ではユーザーuser1のホームディレクトリ内にある"memo.txt"のようなテキストファイルやPNG画像ファイル、"ドキュメント"などのディレクトリ名が表示されています。コマンドラインにキーボードからコマンドの文字列をタイプしてエンターキーを押す。これがコマンドを実行する方法です。さて、上記のディレクトリ内容の表示ですがファイル名やディレクトリ名などの名前しか表示されておらず、情報が少ないです。ファイルのサイズや更新日時なども表示したいところです。そのためにはlsコマンドにオプションを指定する必要があります。

コマンドのオプションと引数

先ほどの例ではlsコマンドを実行してもファイルとディレクトリの名前しか表示されませんでした。ファイルのサイズや更新日時などの情報も表示するには、lsコマンドにオプションを付け足して実行します。コマンドラインからlsとタイプした後に、半角スペースを空けて続けて-lと入力してエンターキーを押してください。

1行に1ファイル/ディレクトリずつの詳細な情報が表示されるようになります。表示される情報は左から順に、ファイルの種類とアクセス権、ハードリンク数、所有ユーザー、所有グループ、ファイルのサイズ、更新日時、ファイル名です。コマンドにオプションを付与することによって、コマンドの機能を拡張できたり、別の機能を実行することができます。コマンドによって異なる場合がありますが、ほぼ全てのコマンドでオプションはハイフン-に続けて文字を入力します。lsコマンドのオプションは他にも多くあります。lsコマンドの実行結果の表示順はデフォルトではファイル/ディレクトリの名前順ですが、それだと目的のファイルを見つけるのに手間がかかる場合があります。そのような場合に-tオプションを付与すると更新時間が新しい順に表示されます。そしてさらに-rオプションは表示順を逆にする効果があります。複数のオプションを指定する場合にはハイフン-の後にオプションの文字を続けて入力します。

-lオプションと-tオプションと-rオプションをまとめて-ltrと付与することで、更新時間がもっとも新しい物が最後に表示されるようになりました。最後に編集したファイルを探す場合には非常に便利です。さらに、コマンドにはオプションとは別にパラメータとして値(引数)を指定することができます。lsの場合は引数としてファイル名を指定でき、そのファイルのみの情報を表示します。引数はオプションと同じようにコマンドの後に半角スペースを空けて入力します。

オプションと引数を同時に指定することも出来ます。-lオプションと同時に使用するには以下のようにします。

これだけは覚えたい基本のコマンド

lsは非常によく使うコマンドですが、Linuxのシェルにはそれ以外にも多くのコマンドがあります。ここではその中から使用頻度が高いコマンドをいくつか紹介し、基本的な使い方を説明します。

cd

cdコマンドは現在のディレクトリ(カレントディレクトリ)を変更します。コマンドラインで操作を行う場合には「コマンドを実行するディレクトリ」という概念が重要です。例えばlsコマンドを実行して表示されるのはlsコマンドを実行したディレクトリの内容です。コマンドを実行するディレクトリを起点としてファイルへのアクセスを行う形式をとる場合には、必要に応じてディレクトリを変更しなければなりません。cdコマンドはそのような場合に使用します。cdコマンドは引数にディレクトリのパスを指定して実行します。

コマンドを実行しても何も表示されず、カレントディレクトリが変更されます。

pwd

pwdコマンドはカレントディレクトリを表示します。オプションや引数は必要ありません。

コマンドラインにカレントディレクトリが表示されない環境でカレントディレクトリを確認したい場合や、シェルスクリプト内でカレントディレクトリを変数に保存する場合などに使用します。

cp

cpコマンドはファイルのコピーを行います。引数にコピー元のファイルとコピー先のディレクトリを指定します。

デフォルトではコマンドを実行しても何も表示されません。コピーなので、元のファイルはそのままです。複数のファイルを一括でコピーすることや、オプションを指定してディレクトリごとコピーすることも出来ます。

mv

mvコマンドはファイルを移動します。引数に元のファイルと移動先を指定します。実行すると元のファイルは削除されます。

デフォルトではコマンドを実行しても何も表示されません。例では移動先としてディレクトリを指定しているので、ファイルが別のディレクトリに移動することになりますが、移動先として新たなファイル名を指定することで、ファイルの名前変更ができます。

rm

rmコマンドはファイルを削除します。引数に削除するファイルを指定します。

デフォルトではコマンドを実行しても何も表示されません。複数のファイルを削除することや、オプションを指定することでディレクトリとその内容もすべて削除することができます。

コマンドの実行は慎重に

Linuxコマンドの実行方法といくつかのコマンドを紹介しました。この記事で紹介したコマンドはごく一部です。長いLinuxの歴史の中で作成されてきた様々なコマンドには機能の追加や設計の方針によりコマンドごとにオプションの指定の仕方が異なったり、複雑な指定が必要なものもあります。そのため、正しくオプションや引数を指定したつもりでも意図した動作にならないことがあります。この問題を解決するためには、そのコマンドを利用して覚えるしかありません。重要なサービスを提供しているサーバーで慣れないコマンドを実行することは、重大な障害を招く可能性があります。例えば、最後に紹介したrmコマンドでファイル名を間違って、重要なファイルを削除してしまうかもしれません。そのような事態を起こさないためにも、まずは練習用の環境を作りそこでコマンドの使用方法を十分に調べてください。Linuxをより便利に活用するためには、コマンドを繰り返し使用し、その結果を確認することが必要です。

Linuxエンジニア 案件・求人一覧はこちら

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。

合わせて読みたい

LinuxにおすすめのTerminal7選とソフト13選をご紹介!... hbspt.cta.load(20723875, '0f72735d-da9f-4038-a47b-134730f22cb0', {"useNewLoader":"true","region":"na1"}); Linuxの特徴4つ Linuxはさまざまな特徴を持つオープンソースのOSで...
軽くてサクサク動くMX Linux!紹介とセットアップ方法について... hbspt.cta.load(20723875, '0f72735d-da9f-4038-a47b-134730f22cb0', {"useNewLoader":"true","region":"na1"}); MX Linuxとは MX Linuxとは何か、またMX Linuxの特性や他...
Linux shellとは?Linux shellを実行させる方法・bashからBourne she... hbspt.cta.load(20723875, '0f72735d-da9f-4038-a47b-134730f22cb0', {"useNewLoader":"true","region":"na1"}); Linux shellとは? Linuxにとってのシェルとは、OSであるLi...
ノートPCでLinuxを使用しよう!エンジニアがLinuxを使用するメリット... 市販されているノートPCのOSはWindowsやMACがほとんどですが、Linuxを使ってみたいという人もいるでしょう。 PC用のOSとしてのシェアは低めですが、WindowsやMACにはないメリットも数多くあります。 本記事では、Linuxについて解説していきます。 Linuxを扱う機会...
エンジニアが知っておくべきARM!今後はLinuxサーバ向けも増える?... IT業界は変化が早く、エンジニアが学ぶべき知識やスキルも時代とともに変化します。 そして、これからの時代に向けてぜひ学んでおきたいのが「ARMアーキテクチャー」です。 ここでは、ARMアーキテクチャーの概要や同時にLinuxを勉強すべき理由などについてまとめました。 hbspt.cta.lo...