🔰 はじめに
こんにちは。情報系を学び始めた大学生です。
Webアプリケーション自力で開発することを目指に日々学習を進めています。勉強記録なので、温かい目で見てください。
また、この記事では、Linuxディストリビューションとして Ubuntu(Debian系)を使用しています。
🛠 開発環境について
現在、以下のような環境で学習・開発を進めています。
- 💻 ホストOS:Windows 11
- 🐧 開発用OS(仮想環境):Ubuntu 24.04.1 LTS(WSL2経由で使用)
→ WSL(Windows Subsystem for Linux)を使うことで、Windows上でUbuntuを利用しています。 - 🔧 エディタ:Visual Studio Code(VS Code)
- 💬 ターミナル:Ubuntuターミナル / Windows Terminal
開発は Ubuntu 上で Linux コマンドを使いながら進めています。
🖥 Linuxついて
【Linux】の概要
世の中には「windows」や「MacOS」などの様々なOSがあり、Linuxはその一部です。また、だれでも無償で利用することができるため、多くのITシステムで利用されています。
Linuxが使用されている例
💻webサーバーやスーパーコンピュータ、 📱スマートフォンやスマート家電など【Linuxのシステム】
Linuxの構成要素は、大きく分けて以下の3つです:
- 👤 ユーザー:Linuxを利用する人。ファイルを作ったり、プログラムを実行する
- 💻 シェル:ユーザーとカーネルの仲介役を担うソフトウェア
- 🧠 カーネル:Linuxの中核。ハードウェアの制御や複数プログラムの管理を行う
これら三つを、身近な例に置き換えてわかりやすくすると次のようになります。
-
自分(ユーザー):アクセルを踏む
-
ペダル・制御コンピュータ(シェル):踏んだ信号を読み取り、エンジンに伝える
-
エンジンや制御装置(カーネル):車を実際に動かす
【rootユーザーと一般ユーザー】
🔑 rootユーザー(システム管理者)
-
Linuxの最高権限ユーザー
-
すべてのファイル・設定にアクセス可能
-
システムのあらゆる操作を自由に実行できる
👥 一般ユーザー(通常ユーザー)
-
root以外のユーザー
-
自分のホームディレクトリ以下の操作が主
-
一部の管理系コマンドは使用に制限がある
💻 学んだLinux・コマンドラインの基礎
コマンド | 概要 |
---|---|
ls |
ファイル一覧を表示する |
history |
コマンド履歴を表示する (-cオプションで履歴削除) |
man |
マニュアルの表示 |
touch |
ファイルの更新時刻を更新する |
cp |
ファイルをコピーする |
mv |
ファイルを移動、名前の変更ができる |
rm |
ファイルを削除する |
mkdir |
ディレクトリを作成する |
rmdir |
空ディレクトリの削除 |
tar |
アーカイブファイルの作成 |
gzip |
gzip形式でファイルを圧縮する |
gunzip |
gzip形式でファイルを解凍する |
bzip2 |
bzip2形式でファイルを圧縮する |
bunzip2 |
bzip2形式でファイルを解凍する |
xz |
xz形式でファイルを圧縮する |
unxz |
xz形式でファイルを解凍する |
実際にターミナルで打ちながら、どんな操作が起きるのか確認しました。
🧪 実際にコマンドを使ってみた!
アプトプットするためにも、手を動かしてコマンド操作を行ってみました!
▶️ 各コマンドを実行したスクリーンショットを表示。
ls
コマンド実行結果:
それぞれディレクトリ(フォルダのこと)、ファイルによって表示の方法に違いがみられます。
history
コマンド実行結果:
コマンド履歴だけではなく、オプション -cも加えて履歴を削除してみました。
man
コマンド実行結果:
ls
コマンドについてのマニュアルを開きました。実行した直後に別の画面に飛ばされましたが、 qキー を入力したら、無事に元の画面に戻れました。調べてみたところ、このスクリーンショットの画面は、 「less画面」 と呼ばれているものらしいです。
touch
コマンド実行結果:
もともとディレクトリ内に存在していた赤線のsample.txtは更新時刻が現在になり、sub.pyは新しくファイルが作られました。
cp
コマンド実行結果:
Linux2ディレクトリ内にある"testa.txt"をLinuxディレクトリにコピーするために、cp testa.txt Linux
とコマンドを入力したところ、
cp: cannot stat 'testa.txt': No such file or directory
と表示されました。原因は testa.txt が カレントディレクトリ に存在していなかったことによるエラーだと判明しました。そのため、相対パス表記で、 Linux2/testa.txt
とコピー元を変えたら無事に解決しました!
mv
コマンド実行結果:
cd
コマンドを使い、カレントディレクトリを Linux に移しました。Linuxディレクトリ内には test ディレクトリと test.txt ファイルを作りました。 mv
コマンドを使って、 test.txt ファイルを test ディレクトリ内に移動した際の画像になります。
そして2枚目のスクリーンショットは、先ほど移動させた test.txt ファイルを、 sample.txt という名前に変えたものです。
rm
コマンド実行結果:
1枚目のスクリーンショットは、先ほどの Linux ディレクトリ内にある、sample.txt ファイルを rm
コマンドを用いて削除したものです。実際に カレントディレクトリ内には、 sample.txt ファイルしか無かたっため、 ls
コマンドで確認しても何も表示されません。
2枚目のスクリーンショットは、 -r オプションを使用して、ディレクトリを削除したものです。
mkdir
コマンド実行結果:
1枚目は、 Linux3 というディレクトリを新規作成しました。棒赤線部から、新しく作られていることが分かります。
2枚目は、 -p オプションをつけて、 sample という名前の親ディレクトリと sample2 という名前の子ディレクトリを作成しました。 ls sample
で確認してみてもちゃんと作られていることが確認できます。
rmdir
コマンド実行結果:
1枚目は、空のディレクトリである Linux3 を削除してみました。赤線から若通りに、無事に消えていることが分かります。
2枚目は、空のディレクトリではない sample1ディレクトリを削除しました。オプションで -p をつけて、sample1 ディレクトリを指定しました。
tar
コマンド実行結果:
このコマンドは"アーカイブを作成"するという意味ですが、アーカイブの意味自体があやふやだったので調べてみました。基本的な意味は「複数のファイルやディレクトリを1つのファイルにまとめること」です。
なぜアーカイブをする必要があるのか
-
管理しやすくなる(まとめて移動・コピー・送信できる)
-
バックアップを取りやすくなる
-
ファイル構造(階層)を保ったまま保存できる
tar
コマンドはオプションを組み合わせて使うことが前提なので、まとめました。
オプション | 概要 |
---|---|
c |
アーカイブファイルの作成 |
x |
アーカイブファイルの展開 |
t |
アーカイブファイルの内容を参照する |
v |
処理したファイルの一覧を表示 |
f |
ファイルの指定 |
z |
gzip形式で圧縮、解凍を行う |
j |
bzip2形式で圧縮、解凍を行う |
J |
xz形式で圧縮、解凍を行う |
⚠「-(ハイフン)」をオプション名の前に付けないようにする
それを踏まえたうえで、 tar
コマンドを使ってみました。
1枚目は、 Linux3 ディレクトリ内にある test ディレクトリをアーカイブファイルにして、 testa、 testb 、 testc ファイルを格納するために、
tar cf test.tar test*
コマンドを実行しました。
2枚目は、 test アーカイブの中身を参照するために、
tar tf test.tar
コマンドを使用しました。無事にtesta.txt、 testb.txt、 testc.txt が格納されていることが分かります。
3枚目は、test アーカイブの中身を test ディレクトリに展開するため、
tar xf ../test.tar
コマンドを使用しました。 cd
コマンドでカントリディレクトリを、 test ディレクトリに変更して、 ls
コマンドでファイルの中身を表示しました。結果、無事にアーカイブしたものを展開できたことが確認できます。
xz
コマンド実行結果:
コマンド一覧の方にの載せたとおりに、三種類の圧縮形式がありますが、今回はxz形式で圧縮しました。
1枚目は、 Linux3 ディレクトリ内にある test1 から test6 までのテキストファイルを test.tar という名前でアーカイブを作成しました。 ls -l
コマンドで、ファイルの容量を確認しました。赤線がxz形式で圧縮する前の容量で、青線が圧縮した後の容量です。約50分の1も容量を小さくできていることが確認できます。
2枚目は file
コマンドを使用して、本当にxz形式に圧縮できたのかを確認しました。
最初はfile test.tar
と入力してしまい、エラーが起きてしまいました。この原因は、既に test.tarはxz形式に変換されてしまったためそのようなファイル名は存在しないために起こったエラーです。
そのため、file test.tar.xz
と入力したら、無事に解決できました。
✅ まとめ・今後の予定
-
今回は16個のコマンドを覚えました。
-
コマンド実行結果を見る限り難なく実行できているように見えますが、実際は慣れない処理ばかりで、AIやほかの方の記事を参考にして進めました。インプットとアウトプットを繰り返して定着させていきたいです。
🔜 次回はLinuxファイル操作入門の後編になります。
ここまで長く読んでいただきありがとうございました。