これだけは覚えておきたい!基本的なUNIXコマンド20【初心者向け】
初心者でもこれだけは覚えておきたい【UNIXコマンド】を一覧で20紹介。UNIXコマンドとは何なのか?から解説。Macのターミナルで入力した例もあるので、記事を見ながらディレクトリやファイル操作などがすぐに実践できます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
今回は、プログラミング初心者でも覚えておきたいUNIXコマンドを紹介します。
プログラミングを学んでWeb開発する際に、WebサーバのOSとしてLinuxやUNIX系を利用することがあります。
そのため、Web開発をするためにUNIXコマンドの知識が必要です。
Amazonが運営するAWSといったサービスやCloud9といったサービスでも、UbuntuやLinuxが利用されています。
そのため、特定のOSで利用可能なコマンドです。
また、Macのターミナルを扱う時も使用しますので、覚えておくと便利です。
WindowsでUNIXコマンドを利用できるので、コマンド操作に慣れることは実務においても技術的なレベルが上がります。
そこでこの記事では、プログラミング初心者でも覚えておきたいUNIXコマンドを初心者向けに紹介します。
目次
UNIXコマンドとは
UNIXコマンドとは、LinuxやUNIX系OSのWeb開発で利用するコマンドです。
ウィンドウやボタン、アイコンといった視覚的なオブジェクトをマウスで操作するインターフェイスをGUI(Graphical User Interface)と呼びます。
一方、文字入力によってコンピュータに命令を与えて操作するインターフェイスをCLI(Command Line Interface)、あるいはCUI(Character User Interface)と呼びます。
「コマンド」とはコンピュータに指示する命令であり、CLI上で用いるプログラム/アプリケーションのことを指します。
UNIXに由来するコマンドを「UNIXコマンド」と呼称します。
現在ではGUIがコンピュータを操作する手法として主流ですが、ある操作の結果を別の操作に用いたり、自動的に複数の操作を行ったりする場合など、CLIの方が適している作業が多く存在します。
Windows10でUNIXコマンドを利用する方法
2021年3月現在の最新バージョンのWindows10では、WSL(Windows Subsystem for Linux)を有効化することでUNIXコマンドを利用できます。
- コントロールパネル
- プログラム
- プログラムと機能
- Windowsの機能の有効化または無効化
上記の順に選択をして、「Linux用 Windows サブシステム」をチェックしてください。
コントロールパネルを開いてプログラムを選択する画面
プログラムを選択してWindowsの機能の有効化または無効化を選択する画面
Linux用Windowsサブシステムを選択してOKを押してください。
Microsoft StoreでUbuntuをインストール
Microsoft StoreをWindowsで起動します。
Ubuntuを検索して出てきた表示の入手をクリックしてUbuntuをインストールします。
インストールにはしばらく時間が必要です。
インストールが完了したら起動ボタンを押してください。
Windows上で初期設定を行うための起動が始まります。
初回のみ起動時間が必要です。
ユーザー名とパスワードを設定すると完了です。
パスワードは設定用と入力用に同じものを2回入力する必要があります。
設定が完了したら、UNIXコマンドの入力が可能になります。
覚えておきたいUNIXコマンド20
ここからは主要なUNIXコマンド20選を紹介します。
いずれもMacのターミナルで入力した例を画像で表示しているので、ぜひ自分のPCでも試してみてください。
ディレクトリとファイルの確認、移動に使うコマンド
pwd
現在の作業ディレクトリの絶対パスを表示します。
なお絶対パスとは、最上位階層から目的のファイルやフォルダまでの道筋を省略なく記述する方式のことです。
一方の相対パスは、起点となる現在位置から目的のファイルやフォルダまでの道筋を記述する方式です。
入力例:
pwd
現在どのディレクトリにいるのかを確認するときに使います。
cd
作業ディレクトリを変更するコマンドです(ディレクトリを移動します)。
入力例:
cd (ディレクトリ名)
cdだけで実行するとホームディレクトリへ移動します。
「cd -」とすると、直前にいたディレクトリへ移動します。「cd ..」とすると親ディレクトリへ移動します。
ls
ディレクトリの内容をリスト表示するコマンドです。
入力例:
ls (ディレクトリ名)
lsだけで実行すると、現在のディレクトリに含まれるファイル名をリスト表示します。
ディレクトリを指定すると、そのディレクトリに含まれるファイル名をリスト表示します。
また、「ls -l」でパーミッションや所有者などの関連情報を付加して表示、「ls -a」で隠しファイル・隠しフォルダを含めて表示することが可能です。
ディレクトリとファイルの操作で使うコマンド
cp
ファイルをコピーするコマンドです。
入力例:
cp (ファイルA) (ファイルB)
この場合ファイルAをファイルBにコピーします。
また「-f」オプションをつけた場合、コピー先に同名のファイルがあった場合上書きされます。
「-i」オプションをつけた場合は上書きするかどうかをファイルごとに確認します。
なおディレクトリを内容ごと(再帰的に)コピーするときは、「-R」オプションをつけます。
mv
ファイルの移動およびリネームを行うコマンドです。
入力例:
mv (ファイルA) (ディレクトリB)
mv (ファイルA) (ファイルB)
1つめの例では、ファイルAをディレクトリBに移動します。
2つめの例では、ファイルAからファイルBに名前を変えることができます。
cpコマンドと同じように、「-f」オプションをつけた場合、移動先に同名のファイルがあった場合は上書きされます。
「-i」オプションをつけた場合は、上書きするかどうかを確認します。
rm
ファイルを削除するコマンドです。
入力例:
rm (ファイル名)
ディレクトリを削除する場合は「-d」オプションを指定しますが、削除できるのは空のディレクトリだけです。
ディレクトリに内容物がある場合は「-r」オプションを指定することで、中に入っているファイルを含めてディレクトリを削除します。
ゴミ箱へ入れるのではなく、即座に削除されることに注意してください。
mkdir
ディレクトリを作成するコマンドです。
入力例:
mkdir (ディレクトリ名)
通常、指定したパスの途中のディレクトリが存在しない場合はエラーになります。
「-p」オプションをつけると、途中のディレクトリが存在しない場合、それらを含めてディレクトリを作成することが可能です。
touch
ファイルの変更日を更新するコマンドです。
入力例:
touch (ファイル名)
「touch file1.txt」とすると、「file1.txt」の変更日時が更新されます。
存在しないファイル名を指定した場合、その名前で空のファイルが作成されます。
ln
リンクを作成するコマンドです。
入力例:
ln -s (ファイル名) (リンク名)
「-s」オプションを付けることで、シンボリックリンクを作成します。
シンボリックリンクは、ディレクトリやファイルのショートカットとして用いられます。
chmod
ファイルのパーミッション(所有権)を変更します。
入力例:
chmod 750 (ファイル名)
この入力例は、ファイル所有者にすべての権限を与え、グループに読み込みと実行権、その他のユーザーは権限なしにするコマンドです。
パーミッションは「mode」引数に8進数字あるいは記号で指定します。
上記の入力例は8進数字の指定です。
8進数字指定する場合は、3桁の値で指定します。
1桁目が「ファイル所有者」のアクセス権、2桁目が「グループ」のアクセス権、3桁目が「その他のユーザー」のアクセス権です。
各桁の値は、読み込み権を表す4と、書き込み権を表す2と、実行権を表す1の和を指定します。
例えば、読み込み権と実行権のみを与える場合には、4と1の和である「5」を指定します。
それぞれの権限の組み合わせと値は、下記の表をご覧ください。
アクセス権 | 値 |
0 | 権限なし |
1 | 実行権 |
2 | 書き込み権 |
3 | 書き込み権と実行権 |
4 | 読み込み権 |
5 | 読み込み権と実行権 |
6 | 読み込み権と書き込み権 |
7 | すべての権限 |
また、記号で指定する場合は、以下の記号を組み合わせてパーミッションを指定します。
chmod a+w (ファイル名)
この入力例の場合、すべてのユーザーに書き込み権限を付加します。
記号 | 誰に |
a | すべてのユーザ |
u | 所有者 |
g | グループ |
o | 他のユーザ |
記号 | 付加・除去 |
+ | 付加 |
– | 除去 |
= | 全クリア |
記号 | 権限の種類 |
r | 読み |
w | 書き |
x | 実行 |
chown
ファイル・ディレクトリの所有者とグループを変更します。
入力例:
chown (ユーザー名) (ファイル名)
この例では、指定したファイルの所有者を指定したユーザーに変更します。
なお、ファイルの所有者とグループはファイルのパーミッション範囲に関係してきます(あるユーザーのみアクセス可能など)。
所有者の変更はスーパーユーザーのみ可能です。
chgrp
ファイルのグループを変更します。
入力例:
chgrp (グループ名) (ファイル名)
この例では、指定したファイルの所属グループを変更します。
chownと同じく、グループはファイルのパーミッション範囲に関係してきます(あるグループに属しているユーザーのみアクセス可能など)。
ファイル内容の表示、閲覧するときに使うコマンド
cat
ファイルの内容を結合し、表示するコマンドです。
入力例:
cat (ファイルA) (ファイルB)
複数ファイルの内容を結合して表示します。
ファイルを1つだけ指定して、単にその内容を表示する場合にも使用可能です。
less
ファイルの内容をスクロール可能な状態で表示するコマンドです。
入力例:
less (ファイル名)
ファイル内容を一画面しか見ることができない(スクロールできない)catコマンドとは異なり、スクロール可能な状態で表示するコマンドです。
qを入力すると表示が終了します。
ファイルの検索で使うコマンド
find
ファイルを検索するコマンドです。
入力例:
find (ディレクトリ名)
find (ディレクトリ名) -name (文字列)
1つめの入力例では、ディレクトリ内にあるファイルを表示します。
-nameを付けることで、ディレクトリ内にある文字列を指定して検索できます。
また「find . -ctime -1h」とすると、現在のディレクトリ以下で1時間以内に変更のあったファイルを検索します。
grep
指定パターンの文字列を検索するコマンドです。
入力例:
grep (検索文字列) (ファイル名)
例えばgrep ba text.txt
とすると、「text.txt」ファイルから「ba」が含まれる行を検索し、表示します。
他にもgrep ba *
とすることで、ディレクトリ内のファイルの中で「ba」の文字列が入ってるファイルを探すことでも使います。
リモートへの接続で使うコマンド
ssh
リモートマシンにSSHでログインし、リモートマシン上でコマンドを実行できるコマンドです。
入力例:
ssh (ホスト名) (コマンド名)
ネットワーク越しにリモートのマシンにログインします。
IPアドレスやユーザー名を指定してコマンドを実行できます。
「-p」オプションでポート番号を指定することも可能です。
ssh -p 56789 username@hostname
プロセス関連のコマンド
ps
実行中のプロセス一覧を表示するコマンドです。
入力例:
ps
ps a
「ps a」では全ユーザーのプロセスの状態を一覧で表示します。
また「ps aux」とすると、実行中のすべてのプロセスをCPU使用率などの詳細な情報つきで表示します。
kill
プロセスを終了、あるいはシグナルを送信するコマンドです。
入力例:
kill (プロセスID)
終了させるプロセスのプロセスID(PID)を指定します。
PIDは前項の「ps」コマンドで調べましょう。
exit
シェルを終了するコマンドです。
入力例:
exit
コマンドライン操作を終了するときに「exit」します。
今回の記事は以上です。
ぜひこの記事を参考に使いこなしてみてください。
執筆してくれたメンター
中本賢吾(なかもとけんご) アジマッチ有限会社 代表取締役社長開発実績:PHPフレームワークによるフランチャイズ企業向け会員制SNS。Shopifyによる海外進出用大規模ネットショップ構築。Vue.jsによる金融機関向け内部アプリ。AWSやLinuxハウジングサーバでの環境構築。人工知能を利用した画像判別システム。小売チェーン店舗用スマホアプリ。WordPressによる不動産チェーン店向け賃貸・売買仲介システム。基幹システム移管用データコンバートシステム。小学生がUnityでオリジナルAndroidアプリをGoogle Playでリリース、NHK Whyプログラミング入賞、全国Programing Festival入賞、中学生がノーコードでSNS型PWAアプリリリースなど、ボランティアプログラミング教育活動行っている。 |
プログラミングを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、未経験でもWebページ制作、Webアプリケーション開発、スマホアプリ開発などを学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!