この記事では、種類も交え、UNIXコマンドの使い方を紹介します。
UNIXコマンドにはどんなのがあるんだろう?
コマンドがわからない時はどうしたらいいの?
UNIXコマンドはWeb開発におけるサーバーサイドの操作や、大規模システムの管理でよく使われています。
しかし、初心者にとってコマンドのみで操作しなければならないUNIXの操作は大変ですよね。独学でコマンドを覚えるのに時間がかかり、挫折してしまう人もいるのではないでしょうか。
そこで、この記事では用途別にUNIXコマンドを一覧にまとめて紹介します。UNIXコマンドの主な役割や基本的な使い方、調べ方なども解説するので、ぜひ参考にしてください。
- UNIXコマンドはマウスを使わずにパソコン操作する方法の一つ
- LinuxはUNIXをベースに作られた互換性のある別のOS
- 操作手順で迷わないように事前に調べ方は覚えておこう
UNIXコマンドの基礎知識
UNIXコマンドは、UNIXやその派生システムで使われる、システム管理やファイル操作に欠かせないコマンドです。UNIXコマンドはカーソルを動かして操作する「GUI方式」ではなく、専用の入力画面にコマンドを打ち込んで操作する「CUI方式」で利用されます。
UNIXではすべての操作にコマンドが必要となるため、UNIXコマンドを覚えなければパソコンやサーバーが操作できないことになるのです。
UNIXコマンドの主な役割
下記がUNIXコマンドの主な役割にあたります。
- システムの管理
- ファイル・ディレクトリの操作
- プログラムの実行 など
例ば、lsコマンドを使ってファイルリストを表示したり、rmコマンドで不要なファイルを削除したりすることが可能です。マウスの操作で行う動作一つひとつに対応しているコマンドがあります。これらのコマンドを入力して、操作が可能です。
UNIXコマンドを利用した操作はシステムの根幹に影響します。そのため、使い方を間違えると大きなトラブルを引き起こす可能性があるので、正確な操作が必要です。
Linuxコマンドとの違い
UNIXコマンドとLinuxコマンドは非常に似ていますが、同一ではありません。LinuxはUNIXをベースに作られた別のOSです。そのため、LinuxコマンドはUNIXコマンドに似たコマンドが多く共通性があります。
UNIXは知的財産権を所持している企業があるため、利用するにはライセンス登録が必要です。しかし、Linuxはオープンソースソフトウェアのため、誰でも自由に利用できる点も大きく違います。
Linuxコマンドについては、次の記事で詳しく解説しているので、あわせて参考にしてください。
UNIXコマンド一覧【用途別】
用途別でUNIXコマンドを下の一覧表にまとめました。
コマンド | 用途 |
pwd | 現在のディレクトリを表示 |
cd | カレントディレクトリを変更 |
mkdir | 新しいディレクトリを作成 |
rmdir | ディレクトリを削除 |
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
ディレクトリの移動
ディレクトリ操作関連で一般的に使用されるコマンドは次のとおりです。
それぞれ詳しく解説します。
pwd
pwd(print working directoryの略)コマンドは、現在のディレクトリを表示します。
UNIXで作業をする際、どのディレクトリにいるかを確認するために頻繁に使用されます。
例えば上の画像の場合では、pwdと入力して”/home/ubuntu/website”と表示されています。これは「home」の中の「ubuntu」の中の「website」という位置にいることを表しています。
cd
cd(change directoryの略)コマンドは、ディレクトリを移動するためのコマンドです。例えば「cd documents」コマンドを使うと、「documents」ディレクトリに移動します。
例えば上の画像の場合ではubuntuディレクトリからwebsiteディレクトリへ移動を行っています。
mkdir
mkdir(make directoryの略)コマンドは、新しいディレクトリを作成します。例えば、「mkdir new_folder」を実行すると、「new_folder」という名前のディレクトリが作成されます。
上の例では、はじめにindex.htmlとcssというディレクトリのみ存在しています。しかし、”mkdir images”のコマンドを実行すると、imagesという名前のディレクトリが作成されるのが確認可能です。
rmdir
rmdir(remove directoryの略)コマンドでは、ディレクトリを削除します。
ただし、ディレクトリが空でないと削除できないため、先にディレクトリ内のファイルを削除する必要があります。
ファイルの表示
ファイルの表示関連で一般的に使用されるコマンドは次のとおりです。
ls
lsコマンドはディレクトリ内のファイルやサブディレクトリの一覧をリスト形式で表示します。
オプションを付与して詳細な情報(ファイルサイズ、変更日時など)を得ることも可能です。
例えば上の場合は、自分のいるディレクトリに、
index.htmlというファイル
css/ というディレクトリ
がそれぞれ存在しているという意味です。
次にオプションを使用した場合の動きを確認します。lsコマンドのオプション「a」を例題とし、llsの後にスペースを入れて-aを入力して使用します。
結果として、通常のlsコマンドでは表示されなかった.gitというディレクトリなどが表示されました。ここで表示されているのはLinuxの「隠しファイル」というものです。
head
headコマンドはファイルの最初の部分(標準では最初の10行)を表示します。
ファイル内容の一部を素早く確認したい場合に便利です。
tail
tailコマンドはファイルの末尾の部分を表示します。
ログファイルなど、更新され続けるファイルの最新の内容を確認するのに使用されます。
grep
grepコマンドは、ファイル内で指定したパターン(通常は文字列)を検索し、マッチした行を表示します。
正規表現を使って複雑な検索を行うこともでき、ログファイルや大量のデータから、特定の情報を抽出するのに非常に便利です。
ファイルの操作
ファイルの操作関連で一般的に使用されるコマンドは次のとおりです。
それぞれ詳しく解説します。
cp
cpコマンドはファイルのコピーが可能です。
例えば、「cp source.txt destination.txt」と実行すると、「source.txt」をファイル名「destination.txt」に変更した上でコピーします。任意のディレクトリを中身ごとすべてコピーする際には -rオプション(再帰的にコピー)を付与します。
上の例では、index.htmlというファイルが存在するディレクトリで、”cp index.html about.html”というコマンドを実行しています。
このコマンドにより、index.htmlというファイルと同様の内容のファイルが、about.htmlという名前で作成されます。
またcpはディレクトリ自体をコピーすることも出来ますが、その際には”cp -r [コピーしたいディレクトリ名] [コピー先]”というように指定します。
mv
mvコマンドはファイルやディレクトリの移動、または名前の変更が可能です。
例えば、「mv old_name.txt new_name.txt」でファイル名を変更できます。ファイルを指定したディレクトリに移動させたい場合は、「mv file.txt /path/to/directory/」と記述します。
上の例ではtop.jpgがindex.htmlと同じディレクトリに存在していました。
“mv top.jpg images/”というコマンドによりtop.jpgをimagesというディレクトリの中に移動させています。
index.htmlの存在するディレクトリからtop.jpgが消えていることが確認できます。また、imagesのディレクトリに移動して内容を確認するとtop.jpgが存在することが確認できます。
mvコマンドはファイルの移動を行うことだけでなく、ファイルの名前を変更することもできます。
mv [名前を変更したいファイル] [変更後の名前]として使用します。
“mv top.jpg main.jpg”というコマンドで、元々top.jpgという名前だったファイルが、main.jpgという名前に変更されていることが確認できます。
rm
rm コマンドはファイルまたはディレクトリの削除が可能です。
ディレクトリを削除する場合は -r オプションを使用して再帰的に削除する必要があります。削除をかける際は、本当に削除して良いのか、削除対象を間違えていないかなど、十分に注意してください。
上の例では、はじめにmain.jpgが存在していました。“rm main.jpg”というコマンドにより削除を行っています。削除後lsコマンドでファイルがなくなっていることが確認できます。
chmod
chmodコマンドはファイルやディレクトリのアクセス権を変更します。
使用者、グループ、その他のユーザーに対して読み取りや書き込み、実行の権限を設定が可能です。例えば、「chmod 755 file.txt」と記述した場合、所有者に全権限を、その他のユーザーには読み取りと実行の権限のみを与えます。
chown
chownコマンドは、ファイルやディレクトリの所有者およびグループを変更します。
例えば、「chown user:group file.txt」と記述した場合、「user」というユーザーと「group」というグループにファイルの所有権を移します。
ファイルの閲覧
ファイルの閲覧関連で一般的に使用されるコマンドは次のとおりです。
それぞれ詳しく解説します。
cat
cat コマンドは、テキストファイルの内容を見たい場合によく利用されます。
catコマンドを利用すれば、テキストの形式や表示設定を変更することなく中の確認が可能です。
今回は練習のためtest1.txt(内容はtest1file)とtest2.txt(内容はtest2file)というファイルを作成しておきました。
上の例では、”cat test1.txt”というコマンドでtest1.txtの内容を確認した後、”cat test2.txt”というコマンドでtest2.txtの内容を確認しています。
“cat test1.txt test2.txt”と2つ同時に指定することで、両方の内容を繋げて表示されていることが確認できます。
less
lessコマンドは、ファイル内容をページ単位で1画面ずつ閲覧することができます。
容量の大きなファイルを扱う時に便利です。lessコマンドを使えば、ユーザーはファイルの任意の部分を自由に前後に移動して閲覧可能です。
more
moreコマンドもファイルの内容を閲覧できるコマンドです。
主に内容を下方向にしかスクロールできないため、簡単な確認用として使用されます。lessコマンドと違い、ファイル末尾まで表示されると自動で終了します。
find
findコマンドはファイルシステムを検索して特定の条件に合致するファイルやディレクトリを見つけ出します。
非常に柔軟なコマンドで、名前、サイズ、日付など、多様な基準で検索が可能です。
コマンドの出力
ファイルの出力関連で一般的に使用されるコマンドは次のとおりです。
それぞれ詳しく解説します。
echo
echoコマンドは与えられた文字列や変数の値を画面上に出力します。
シェルスクリプトでのデバッグ、環境変数の確認、または他のコマンドへの入力としての利用が一般的です。例えば、「echo “Hello, World!”」と入力すると、画面上に「”Hello, World!”」と表示されます。
man
man コマンド(manualの略)は、指定したコマンドのマニュアルページの表示が可能です。
UNIXコマンドのオプションや使用方法が詳しく記載されており、コマンドの使い方を学ぶ際に非常に重宝します。例えば、「man ls」を実行すると、lsコマンドの詳細を記述したドキュメントが表示されます。
UNIXコマンドの基本的な使い方
ここからは、OS別にUNIXコマンドの基本的な使い方を解説します。
Windowsで使う手順
Windowsでは、元々UNIXコマンドを直接使うことはできません。そのため、WindowsパソコンにUNIX環境をインストールしたり、クラウド上にUNIX環境を構築したりして使用します。
中でも、クラウド上に環境を構築する方法は、パソコンの容量を圧迫することなく環境構築が可能でありおすすめです。
PaizaCloudは1分で仮想環境を作ってくれるとても便利なツールです。RubyやJavaは勿論、Webサイト作成で人気のWordPressなどもすぐに環境構築が出来てしまいます。
Windowsのパソコンを使用している場合、準備に時間を要してしまうので、PaizaCloudでスムーズに環境構築を行うのがおすすめです。
Macで使う手順
MacのOSはUNIXベースのシステムであるため、「ターミナル」アプリケーションを開くだけで、すぐにUNIXコマンドを使用可能です。
ターミナルはデスクトップ右上にあるスポットライトを起動し、「ターミナル」と入力してEnterを押すことで起動されます。
ターミナルが開かれたら、任意のUNIXコマンドを入力して実行します。
UNIXコマンドの調べ方
ここからは、UNIXコマンドの調べ方を、3つにまとめて紹介します。
コマンドがわからない時
コマンド名が思い出せない時は、まずインターネットでキーワードを検索してみるのがおすすめです。検索する際は「Linux [やりたいこと]」のキーワードで検索をかけます。例えば「Linux ディレクトリ 作成」で検索をかけます。
ディレクトリを作る為のコマンド「mkdir」に関する情報がいくつも出てきているのが確認できます。ほかにも、aproposコマンドを使用した検索方法もあります。
aproposはキーワードにもとづいてマニュアルページの説明を検索し、関連するコマンドのリストを表示します。例えば、「apropos user」と入力すると、ユーザー管理に関連するコマンドの一覧表示が可能です。
コマンドの使い方が知りたい時
特定のコマンドの詳細な使い方やオプションを知りたい場合は、manコマンドを使用します。
例えば、「man ls」と入力すると、lsコマンドのすべてのオプションとその説明が表示されます。
lsコマンドのマニュアルが表示されました。manコマンドは非常に詳しく書かれたマニュアルページの表示が可能です。
なお、マニュアルを終了するには「q」を押下します。
オプションが知りたい時
コマンドのオプションを調べるには、–helpオプションを使用するか、manコマンドを使用します。
「ls –help」と入力すると、lsコマンドで利用可能なオプションと短い説明が表示されるため、手早く必要な情報の確認が可能です。
UNIXコマンドを使う際のおすすめサイト
ここからは、UNIXコマンドを使う際に役立つおすすめサイトを、2つ紹介します。
逆引きリファレンス
逆引きリファレンスとは、「実現、実行したい処理」から必要な機能や操作を調べるためのガイドです。
例えば、下のようなコマンドの逆引きサイトでは自分のやりたいことから、コマンドを調べることができます。
tldr pages(英語) | tldr pagesは、UNIXコマンドの簡潔な例と説明を提供するページです。manコマンドを使用した際に表示されるドキュメントは、情報が詳細に乗っていますが、長すぎて読みにくい場合もあります。tldr pagesは過剰な情報を避け、実際によく使われるオプションのみを紹介しています。 |
commandlinefu(英語) | commandlinefuは、世界中のユーザーから提供されるUNIXコマンドの具体的な使用例を集めたWebサイトです。具体的な問題解決のためのコマンドが見つかることが多く、実践的な知識を得るのに適しています。 |
チートシート
チートシートとは、特定の操作や動作を行うために必要な情報をまとめた一覧シートのことです。簡単に言うと「早見表」「カンニングペーパー」です。
下記にサンプルシートが掲載されているページをまとめましたので、よければ参考にしてください。
Cheatography(英語) | Cheatographyでは、多くのUNIXコマンドのチートシートを無料で提供しています。これらのチートシートは、ユーザーがアップロードしており、自由に共有可能です。コマンドの概要から詳細なオプションまでを一覧で確認でき、手早い参照に便利です。 |
Devhints(英語) | Devhintsはさまざまなプログラミング言語のチートシートを多数提供しており、UNIXコマンドのチートシートもあります。見やすいフォーマットで、初心者から上級者まで幅広いユーザーに利用されています。 |
なお、IT企業への転職や副業での収入獲得を見据え、独学でプログラミングスキルを習得できるか不安な人は「侍エンジニア」をお試しください。
侍エンジニアでは、現役エンジニアと学習コーチの2名体制で学習をサポートしてもらえます。
「受講生の学習完了率98%」「累計受講者数4万5,000名以上」という実績からも、侍エンジニアなら未経験からでも挫折なく転職や副業収入の獲得が実現できますよ。
\ 給付金で受講料が最大80%OFF /
挫折なくUNIXコマンドの習得を目指すなら
ここまでUNIXコマンドを一覧表を交えて紹介してきましたが、
途中で挫折したらどうしよう…
と不安な人もいますよね。
いまでは無料で利用できる学習サイトやWebサービスもあるため、お金をかけなくても独学でUNIXの習得が可能です。
ただ、手軽に学べるようになった反面いざ勉強を始めると、学習途中に挫折する独学者は多くいます。事実、弊社の調査では
- 不明点を聞ける環境になかった
- エラーが解決できなかった
- モチベーションが続かなかった
などの理由から、87.5%の独学者が「プログラミング学習で挫折や行き詰まりを感じた」と回答しています。
またこうした背景もあってか、弊社がプログラミングに興味がある人100名へ実施した別の調査では
- 確実にスキルを身につけられると思ったから
- 独学では不安がある
- 効率よく学べそう
などの理由から、61%が「プログラミングの勉強を始めるならスクールを選ぶ」と回答しています。
加えて、プログラミングスクールの卒業生に「独学ではなくスクールを活用した理由」を聞いたところ「できるだけ短い期間でITエンジニアへの転職や副業に必要なスキルを身につけたかった」という回答も多く寄せられました(※1)。
上記から、1人でプログラミングスキルを習得できるか不安な人や短期間でスキルを習得したい人ほど確実性を求め、現役エンジニアといったプロの講師に質問できるプログラミングスクールを利用する傾向にあるのがわかります。
いざ独学でUNIXコマンドを学び始めても、勉強の最中に挫折しまっては学習にかけた時間を悔やむだけでなく「思っていたよりも難しいな…」とスキルの習得自体を諦めかねません。
仮にわからないことを飛ばしながら勉強を進めたとしても、ITエンジニアへの転職や副業での収入獲得を実現できる実践的なスキルが身につかなければ、結局後悔することになります。
そこで、おすすめしたいのが「SAMURAI ENGINEER(侍エンジニア)」です。
分割料金 | 一括料金 | 受講期間 |
---|---|---|
4,098円~ | 16万5,000円~ | 1ヶ月~ |
- 転職・副業・独立などの目的に特化したコースあり
- 累計指導実績4万5,000名以上
- 給付金活用で受講料が最大80%OFF
侍エンジニアをおすすめする最大の理由は「挫折しづらい学習環境」にあります。
先ほど述べたとおり、独学者の多くは自力で不明点やエラーを解決できないためにプログラミング学習を挫折しています。そのため、未経験者が現役エンジニアのようなプロに質問や相談できない状況で、プログラミングスキルを習得するのは非常に難易度が高いといえます。
しかし、侍エンジニアでは
- 現役エンジニア講師によるマンツーマンレッスン
- 現役エンジニアに質問できるオンラインでのQ&Aサービス
といったサポート体制を整えているため、学習中に出てきたわからないことや不明点をいつでも相談可能です。「受講生の学習完了率98%」「転職成功率99%」という実績からも、侍エンジニアなら挫折しづらい環境で学習を進められるといえます。
また、侍エンジニアではカウンセリングにて受講生一人ひとりの目的をヒアリングしたうえでカリキュラムを作成するため、限られた受講期間でもITエンジニアへの転職や副業での収入獲得に必要なスキルだけを効率的に習得可能です。
最短距離で目的を実現できるようカリキュラムが組まれているため、勉強する順番や内容を誤り非効率に時間や手間を費やす心配もありません。
なお、侍エンジニアでは最大80%OFFで受講可能な「給付金コース」を提供中。金銭面での支援を受けつつ、理想のキャリア実現に向けたスキルの習得から、転職活動・就業後のフォローアップ(※1)までを一貫してサポートしてもらえます。
学習と金銭面をどちらもサポートしてくれる侍エンジニアなら、未経験からでも安心してITエンジニアへの転職や副業での収入獲得などの目的が実現できますよ。
公式サイトで詳細を見るまとめ
本記事では、UNIXコマンドの基礎知識から、具体的なコマンドの使い方、コマンドを調べる方法などを紹介しました。
UNIXコマンドはWeb開発におけるサーバーサイドの操作や、大規模システムの管理などでよく使われます。そのため、UNIXコマンドに精通している人材は重宝されるでしょう。
しかしながら、コマンドの種類も多くなかなか学習が進まない人もいるのではないでしょうか。
独学では不安が残る人は、的確なサポートを受けられるプログラミングスクールを活用し、効率よく学習していくのもおすすめですよ。
関連記事
また、Linuxについては、こちらの記事で詳しく解説しているので、あわせてご覧ください。
→ 【初心者必見】Linux勉強するならコレ!学習サイト、方法、コツまとめ
本記事の解説内容に関する補足事項
本記事はプログラミングやWebデザインなど、100種類以上の教材を制作・提供する「侍テラコヤ」、4万5,000名以上の累計指導実績を持つプログラミングスクール「侍エンジニア」を運営する株式会社SAMURAIが制作しています。
また、当メディア「侍エンジニアブログ」を運営する株式会社SAMURAIは「DX認定取得事業者」に、提供コースは「教育訓練給付制度の指定講座」に選定されており、プログラミングを中心としたITに関する正確な情報提供に努めております。
記事制作の詳しい流れは「SAMURAI ENGINEER Blogのコンテンツ制作フロー」をご確認ください。
この記事の監修者
フルスタックエンジニア
音楽大学卒業後、15年間中高一貫進学校の音楽教師として勤務。40才のときからIT、WEB系の企業に勤務。livedoor(スーパーバイザー)、楽天株式会社(ディレクター)、アスキーソリューションズ(PM)などを経験。50歳の時より、専門学校でWEB・デザイン系の学科長として勤務の傍ら、副業としてフリーランス活動を開始。 2016年、株式会社SAMURAIのインストラクターを始め、その後フリーランスコースを創設。現在までに100名以上の指導を行い、未経験から活躍できるエンジニアを輩出している。また、フリーランスのノウハウを伝えるセミナーにも多数、登壇している。