Linuxの基本コマンド - はじめてのLinux入門
Linuxとは
Linux(リナックス)は、コンピュータを動かすための基本的なソフトウェア(オペレーティングシステム、略してOS)の一つです。
WindowsやMacOSと同じように、コンピュータを操作するための基本的なソフトウェアですが、特にサーバーや業務用のコンピュータでよく使われています。
主要なディストリビューション
Linuxには「ディストリビューション」という、それぞれ特徴のある種類があります。
これは、Linuxの基本部分に、便利な機能やツールを追加したパッケージのようなものです。
主なディストリビューションは2つのグループに分かれています。
-
Debian(デビアン)、Ubuntu(ウブントゥ)タイプ
- 初心者にも使いやすい
- 多くのソフトウェアが簡単にインストールできる
- コミュニティのサポートが充実している
-
RedHat(レッドハット)、CentOS(セントオーエス)、Amazon Linux2タイプ
- 企業での使用に適している
- 安定性が高い
- セキュリティの更新が定期的に行われる
Linuxシステムの3つのレベル
Linuxシステムは、大きく分けて3つの層(レベル)で構成されています。
1. ユーザープロセス(最上階)
- 私たちが直接触れる部分
- コマンドを入力したり、プログラムを実行したりする場所
- 例:ブラウザやテキストエディタなど
2. カーネル(中間階)
- Linuxの「心臓」とも言える重要な部分
- コンピュータのメモリ上で常に動いている
- 例:
- プログラムの実行を管理
- メモリの割り当て
- ハードウェアとの通信
- セキュリティの管理
3. ハードウェア(最下階)
- コンピュータの物理的な部品
- 例:
- メモリ(データを一時的に保存する場所)
- CPU(計算を行う部分)
- ハードディスク(データを永続的に保存する場所)
- ネットワークカード(インターネット接続用)
Linuxにおけるユーザー
Linuxでは、複数の人が同じコンピュータを使うことができます。
それぞれの「ユーザー」として登録され、自分のファイルやプログラムを持つことができます。
ユーザーの種類
-
一般ユーザー
- 普通のユーザー
- 自分のファイルやフォルダを管理できる
- システムの重要な部分は触れない(安全のため)
-
ルートユーザー(スーパーユーザー)
- 管理者としての特別な権限を持つ
- システムのどの部分でも操作可能
- パスワードは厳重に管理する必要がある
- 普段は一般ユーザーとして使用し、必要な時だけルートユーザーになる
シェルとは
ユーザーとコンピューターのオペレーティングシステム(OS)をつなぐプログラムです。
ユーザーの操作をOSに伝えて実行するためのインターフェースとして機能します。
シェルの役割
- 私たちが入力したコマンドをコンピュータに伝える
- コンピュータからの結果を私たちに表示する
- プログラムの実行を管理する
主なシェルの種類
-
bash(バッシュ)
- 最も一般的なシェル
- 多くのLinuxシステムのデフォルト
-
zsh(ズィーシェル)
- bashの改良版
- より便利な機能が追加されている
- MacOSのデフォルトシェル
基本的なLinuxコマンド
コマンドは、コンピュータに何かをさせるための「命令」です。
下記ではよく使う基本的なコマンドを説明します。
ls
ファイルやフォルダの一覧を表示するコマンドです。
ls # 基本的な一覧表示
ls -l # 詳細情報付きで表示(日付、サイズ、権限など)
ls -l hello.cs # 特定のファイルの詳細を表示
表示例:
drwxr-xr-x 5 username staff 160 Mar 8 15:30 Documents
-rw-r--r-- 1 username staff 6725 Mar 8 15:10 Makefile
lrwxrwxrwx 1 username staff 10 Mar 8 14:45 link-to-file -> Makefile
cat
ファイルの中身を表示するコマンドです。
cat hello.c # ファイルの中身を表示
cat -n hello.c # 行番号付きで表示
clear
画面をきれいにするコマンドです。
- 画面上の文字をすべて消去
- 新しい行から始められる
cp
ファイルをコピーするコマンドです。
cp 元のファイル コピー先のファイル名
cp hello.c hello.c.2 # hello.cをhello.c.2としてコピー
mv
ファイルの移動や名前の変更を行うコマンドです。
# ファイル名の変更
mv 古い名前 新しい名前
mv hello.c hello.c.3 # hello.cをhello.c.3に名前変更
# ファイルの移動
mv ファイル名 移動先のパス
mv hello.c.3 ../ # 1つ上のフォルダに移動
cd
フォルダ(ディレクトリ)を移動するコマンドです。
cd フォルダ名 # 指定したフォルダに移動
cd ../ # 1つ上のフォルダに移動
cd - # 前回いたフォルダに戻る
cd ~ # ホームフォルダに移動
touch
新しい空のファイルを作成するコマンドです。
touch ファイル名 # 1つのファイルを作成
touch file1 file2 file3 # 複数のファイルを一度に作成
rm
ファイルを削除するコマンドです。
rm ファイル名 # ファイルを削除
rm -r フォルダ名 # フォルダとその中身をすべて削除
echo
文字を画面に表示するコマンドです。
echo "こんにちは" # 文字列を表示
echo $HOME # 環境変数の値を表示
mkdir
新しいフォルダを作成するコマンドです。
mkdir フォルダ名 # 新しいフォルダを作成
mkdir -p a/b/c # 必要な親フォルダも一緒に作成
rmdir
空のフォルダを削除するコマンドです。
rmdir フォルダ名 # 空のフォルダを削除
grep
ファイルの中から特定の文字列を検索するコマンドです。
grep 検索文字列 ファイル名 # ファイル内を検索
grep -i 検索文字列 ファイル名 # 大文字小文字を区別せずに検索
grep -v 検索文字列 ファイル名 # 検索文字列を含まない行を表示
less
ファイルの内容を少しずつ表示するコマンドです。
- 長いファイルを読むのに便利
- 上下キーでスクロール可能
- 'q'キーで終了
less ファイル名 # ファイルの内容を表示
sudo
管理者権限でコマンドを実行するコマンドです。
sudo コマンド # 管理者権限でコマンドを実行
sudo su - # 管理者ユーザーに切り替え
特殊文字とリダイレクト
> (大なり)
コマンドの結果をファイルに保存するときに使います。
echo "こんにちは" > text.txt # ファイルに上書き
echo "さようなら" >> text.txt # ファイルに追加
| (パイプ)
コマンドの結果を別のコマンドに渡すときに使います。
ls | grep test # lsの結果から"test"を含むものだけを表示
~ (チルダ)
ホームフォルダを表す記号です。
- 例:
~/Documents
は「ホームフォルダの中のDocumentsフォルダ」を意味します
` (バッククォーテーション)
コマンドを実行して、その結果を文字列として使います。
echo "現在の時刻は `date` です"
# 出力例:現在の時刻は 2024年3月8日 15:30:45 JST です
" (ダブルクォーテーション)
文字列を囲むときに使います。変数や特殊文字の解釈が行われます。
name="太郎"
echo "私の名前は $name です"
# 出力:私の名前は 太郎 です
viエディタ
UNIX系のOS(Linuxなど)で利用できるテキストエディタです。
基本的な操作
- ファイルを開く
vi ファイル名 # ファイルを開く(存在しない場合は新規作成)
- 編集モードの切り替え
-
i
キー:編集モードに入る(文字を入力できる) -
ESC
キー:編集モードを終了
- ファイルの保存と終了
-
:w
:ファイルを保存 -
:q
:viを終了 -
:wq
:保存して終了 -
:q!
:変更を破棄して終了
パスについて
パスは、ファイルやフォルダの場所を表す道順のようなものです。
絶対パス
- ルート(/)から始まる完全な道順
- 例:
/home/user/Documents/file.txt
- どこからでも同じ場所を指す
相対パス
- 現在の場所からの道順
- 例:
./file.txt
(現在のフォルダ内のfile.txt) - 例:
../folder/file.txt
(1つ上のフォルダの中のfolderフォルダ内のfile.txt)
パーミッション
パーミッションは、ファイルやフォルダに対するアクセス権限を表します。
権限の種類
-
読み取り権限(r)
- 値:4
- ファイルの内容を読むことができる
- フォルダの内容を一覧表示できる
-
書き込み権限(w)
- 値:2
- ファイルを編集できる
- フォルダに新しいファイルを作成できる
-
実行権限(x)
- 値:1
- プログラムを実行できる
- フォルダに入ることができる
権限の変更
chmod 755 ファイル名 # 所有者は全ての権限、他は読み取りと実行のみ
chmod +x ファイル名 # 実行権限を追加
シェル変数と環境変数
シェル変数
- 現在のシェルでのみ有効な変数
- シェルを終了すると消える
name="太郎" # 変数の設定
echo $name # 変数の値を表示
環境変数
- すべてのシェルで有効な変数
- システム全体で使える
export PATH=$PATH:/新しいパス # 環境変数の設定
echo $PATH # 環境変数の値を表示
パス環境変数
コマンドの場所
which コマンド名 # コマンドの場所を表示
# 例:which ls
# 出力:/usr/bin/ls
パスの設定
- PATHは、コマンドを探す場所のリスト
- 複数の場所を:(コロン)で区切って指定
echo $PATH # 現在のパスを表示
# 例:/usr/local/bin:/usr/bin:/bin
PATH=$PATH:/新しいパス # 新しい場所を追加
パッケージ管理
Linuxでは、ソフトウェアを簡単にインストールできる仕組みがあります。
yumとdnf
- ソフトウェアのインストールや更新を簡単に行えるツール
- 必要なソフトウェアを自動的にダウンロードしてインストール
- 依存関係(必要な他のソフトウェア)も自動的に解決
Discussion