Linuxとは
- 無料で使えるオープンソースのUnix系OS
設計思想
- 「すべてはファイルである」
- HDDもキーボードもすべてディレクトリ下のファイルとして存在している
kernelとは
- ハードウェアとソフト間でやり取りをするツール
シェルとは
- 人間とカーネルの間で通訳を行っているインターフェース
- コマンドを解釈→プログラムを起動→入出力の制御などを行っている。
- ターミナルはただの入力画面
種類
- sh
- 最初期のシェル
- Unix標準の基礎的な機能
- bash
- バランスの取れたシェル
- shの拡張版
- スクリプトも書ける
- zsh
- 快適性重視
- bashのさらに拡張版
- 補完機能が充実
- プラグインが豊富
windowsよりも優れている点
- 高速に動作する
- セキュリティ面が厳密
- 権限分離の思想に基づいている
- sudoなどで管理者権限を明示的に呼び出さない限り全体に影響を及ぼす操作は制限される
- ライセンス費用がゼロ
- 自由度が高い
- windows、macは「ユーザーに最高の体験を一貫して提供する」ことが目的であり、そのためのGUI、カーネルなどがそろっている
- Linuxはすべて交換可能な部品であり、気に入らなければ捨てることもできる
- windows、macは「ユーザーに最高の体験を一貫して提供する」ことが目的であり、そのためのGUI、カーネルなどがそろっている
Linuxのファイル構造について
- すべてが一本のファイルツリーで管理されている
- 「/」:ルートディレクトリ・すべてがここにつながっている
- Windowsで言う「C」:これはハードウェア上のドライブを意味する
↓ ディレクトリ構成イメージ図
- Windowsで言う「C」:これはハードウェア上のドライブを意味する
/ (ルート)
├── bin (基本コマンド)
├── etc (設定ファイル)
├── home (ユーザーディレクトリ)
│ └── name (あなたの場所)
└── var (ログなど可変データ)
権限回りについて
- 3つの基本権限
- r:読む
- w:書く
- x:実行する
- 対象となるユーザー
- ユーザー(u):所有者
- グループ(g):同じチーム
- その他(o):それ以外
- 実際の権限表示の見方
- rwx r-x r-- ↑ ↑ ↑ u g o - 権限表示の数値化
- r:4 w:2 x:1 のように数字を振り各ユーザーごとにその和で権限を管理する
-
chmod 755 filenameのように8進数表現で権限を操作する
管理者権限
-
sudoから始まるコマンドは管理者権限で実行するという意味 - システムを守るために権限を分割している
Unixとは
- Linuxのもとになった設計思想を持つ1969年に誕生したOS
- ライセンス関係が厳しくなりLinuxが誕生した。
- 設計思想自体はLinuxに引き継がれているが中身は全くの別物
ディストリビューションとは
- Linux(カーネル)にシェル・コマンド・GUI・パッケージ管理をセットにして使えるようにしたもの
- 例:Ubuntu
WSLとは
- Windows Subsystem for Linux
- Windows上でそのままLinuxを使えるシステム
VScodeを用いたWSLへのインストール方法
- wsl2の有効化とバックエンドの確認
- powershell上で
wsl -l -vを実行しversionが2になっていることを確認 - 1であった場合は
wsl --set-version Ubuntu 2を実行する
- powershell上で
- WSLのシェルに入る
-
wslを実行 -
$が表示されれば成功
-
- パッケージマネージャの更新
- インストール直後のOSは古い情報の場合があるので、パッケージを最新にする
- 以下コマンドの前半でパッケージリストの更新・後半で実際のプログラムの更新を行う
-
sudo apt update && sudo apt upgrade -yを実行する
- 開発基本ツールの導入
- コンパイラやビルドツールを導入する
-
sudo apt install build-essential git -yを実行する
- VScodeでLinuxを開く方法
-
cd ~を実行しホームディレクトリに移動する -
mkdir <フォルダ名>を実行し作業用フォルダを作成する -
cd <フォルダ名>を実行しそのフォルダに入る -
code .を実行すると新しいVScodeが開く
-
- ツールチェーンの構築
- 開発効率を向上するための作業
- 以下を実行することで
git cloneやpushを実行する際に毎回パスワードを打つ必要がなくなる - 鍵ペアの作成
-
ssh-keygen -t ed25519 -C "your_email@example.com"を実行しメールアドレスを登録 -
cat ~/.ssh/id_ed25519.pubを実行し表示された文字列をGithub等の設定に追加
-
- 接続確認
-
ssh -T git@github.comを実行し接続確認を行う -
Hi [ユーザー名]! You've successfully authenticated...のように表示されれば接続できている
-
仮想環境の構築
- システム環境を汚さないために仮想環境を構築し、その中で操作を行うことが推奨される
- 仮想環境の構築方法を以下に示す
目的のディレクトリ上で以下コマンドを実行する
// venv のインストール sudo apt update sudo apt install python3-venv -yこれによって(.venv)とターミナル上に表示されれば成功python3 -m venv .venv source .venv/bin/activate
ちなみに.venvは隠しフォルダだから見れないがls -aを実行すると表示される
仮想環境から出るときはdeactivate
まとめ
Linuxを導入することで高速で自由度の高い環境を利用することができます。
しかし、自由度が高いということはユーザー側に何を導入するかなどの責任が伴うということです。
その都度、必要な情報を調べながら楽しく開発を進めていきましょう。