ガクセイハッカソン#1の開催レポート
2023-11-15 公開
Unixコマンドは、多くのIT技術者が利用しているツールで、活用することでファイル管理、システム操作、プログラミングなどのタスクを効率的に進めるのに役立ちます。
Unixコマンドは、テキストベースのインターフェース、すなわちCUI(Character User Interface)で利用されます。CUIを用いると、グラフィカルな要素を使用せず、テキストコマンドの入力でコンピュータと対話することができます。これは特に、Unix系のオペレーティングシステム(OS)であるLinuxで一般的です。Linuxは、Unixに類似した構造を持つフリーかつオープンソースのOSで、特にサーバー用途で広く利用されています。
Linuxについてもっと知りたい人は、こちらの解説動画もぜひご視聴ください。
実際の開発の現場でも、多くのIT技術者が業務でUnixコマンドを使用しており、またUnixコマンドが前提となっているタスクの自動化ツールや開発ツールも数多くあります。
今回は、Unixコマンドの基本的な使い方を解説していきます。
Unixコマンドは以下のような場面で使用されます。
マウスなどで操作するGUI(Graphica User Interface)アプリケーションは直感的で視覚的ですが、コマンドを使うメリットもあります。例えば、GUIアプリケーションでは、ファイルをドラッグ&ドロップして移動することができますが、コマンドでは、ファイルをコピーする際にも同じコマンドを使うことができます。また、コマンドは、複数のファイルを一度に処理することができます。これは、GUIアプリケーションでは、ファイルを一つずつ処理する必要があるため、非常に効率的です。
他にも、コマンドの使用はGUIアプリケーションよりも、軽量で高速です。また、コマンドの連続実行や定期実行など、自動化も可能です。これらの特性は、システム管理やプログラミングなど、多くの場面で有用です。
Unixコマンドは、一般的にターミナルと呼ばれるアプリケーションから利用します。
Unix系OSのLinuxやMacOSでは、デフォルトでターミナルがインストールされています。またサードパーティのターミナルを追加でインストールこともできます。
Windowsの場合は、CygwinやWSL(Windows Subsystem for Linux)といったツールを使うことで、Unixコマンドが利用できます。どちらが良いかはユースケースと好みに依りますが、Web開発では完全に近いLinux環境を構築できるWSLが人気です。
WSLの環境構築方法は、こちらの記事で解説しています。
(Windowsユーザー向け)WSL環境構築
次にUnixコマンドをはじめCUIを利用する際によく使われる用語を説明します。
$
や >
がプロンプトとして用いられます。ls
コマンドは、現在のディレクトリの内容を表示します。-
に続いて一文字、または二重ハイフン--
に続いて複数の文字で表記されます。例:ls -l
、ls --all
cd Documents
コマンドでは、Documents
が引数で、cd
コマンドによってDocuments
ディレクトリに移動します。最も基本的で頻繁に使用されるUnixコマンドの一部を紹介します。($
マークはプロンプトを表すため、入力する必要はありません。)
pwd
(Print Working Directory)
現在のディレクトリのフルパスを表示します。
例:
$ pwd
/home/username
ls
(List)
ディレクトリの内容を一覧表示します。
例:
$ ls
Documents Downloads Music Pictures
オプション-l
を使用すると、詳細なフォーマットで表示します。
$ ls -l
drwxr-xr-x 2 username username 4096 Sep 26 18:32 Documents
drwxr-xr-x 2 username username 4096 Sep 26 18:32 Downloads
drwxr-xr-x 2 username username 4096 Sep 26 18:32 Music
drwxr-xr-x 2 username username 4096 Sep 26 18:32 Pictures
cd
(Change Directory)
現在のディレクトリを変更します。
例:
cd Documents
mkdir
(Make Directory)
新しいディレクトリを作成します。
例:
mkdir NewFolder
touch
新しい空のファイルを作成します。
例:
touch newfile.txt
rm
(Remove)
ファイルまたはディレクトリを削除します。
例:
rm newfile.txt
cp
(Copy)
ファイルまたはディレクトリをコピーします。
例:
cp oldfile.txt newfile.txt
mv
(Move)
ファイルまたはディレクトリを移動、または名前を変更します。
例:
mv oldname.txt newname.txt
cat
(Concatenate and Display)
ファイルの内容を表示します。
例:
$ cat filename.txt
This is the content of the file.
echo
引数として与えられた文字列を出力します。
例:
$ echo "Hello, World!"
Hello, World!
man
(Manual)
コマンドのマニュアルを表示します。ここではls
コマンドのマニュアルを表示する例です。
例:
man ls
これらのコマンドとその使用例を理解することで、Unixベースのシステムで基本的な作業を行うことができます。
UNIXコマンドの応用を知りたい人向けに、トピック別で参考サイトを紹介します。
Unixコマンドの応用であるシェルスクリプトを学ぶことで、複数のコマンドを一つのファイルにまとめて実行することができ、作業の自動化が可能となります。例えば、バックアップの取得や、ログファイルの分析など、繰り返し行う作業を自動化する際に役立ちます。
【Bash】シェルスクリプト入門【初心者】
テキスト処理コマンドの中で、awk
、sed
、grep
などは、テキストデータの処理や分析に利用されます。これらのコマンドは、ログの分析や、特定のパターンを含む行の抽出など、テキストファイルの内容を解析する場面で重宝します。
【sed / awk / grep】文字列の置換・抽出・検索と正規表現 | Linux Cheat Sheet - Qiita
ファイルやディレクトリのパーミッションやオーナーシップの管理を学ぶことで、システムのセキュリティを向上させることができます。正しいパーミッションの設定によって、不正アクセスやデータ漏洩のリスクを減少させることができます。
chmod? chown? よくわからんって人のための、ファイル権限系まとめ - Qiita
システム管理コマンドには、top、ps、dfなどがあり、これらを利用することで、システムの状態やリソースの使用状況を確認できます。これらのコマンドは、システムのパフォーマンスモニタリングや、問題の診断に役立ちます。
Linux | プロセス, CPU/メモリー利用率, ディスク容量確認(ps, free, vmstat, df, du) - わくわくBank
システム管理コマンドには、top、ps、dfなどがあり、これらを利用することで、システムの状態やリソースの使用状況を確認できます。これらのコマンドは、システムのパフォーマンスモニタリングや、問題の診断に役立ちます。
Linux | ネットワークの状態確認(ping, ifconfig, netstatなど) - わくわくBank