🐧

Linuxの基本コマンド - はじめてのLinux入門

に公開

Linuxとは

Linux(リナックス)は、コンピュータを動かすための基本的なソフトウェア(オペレーティングシステム、略してOS)の一つです。
WindowsやMacOSと同じように、コンピュータを操作するための基本的なソフトウェアですが、特にサーバーや業務用のコンピュータでよく使われています。

主要なディストリビューション

Linuxには「ディストリビューション」という、それぞれ特徴のある種類があります。
これは、Linuxの基本部分に、便利な機能やツールを追加したパッケージのようなものです。

主なディストリビューションは2つのグループに分かれています。

  1. Debian(デビアン)、Ubuntu(ウブントゥ)タイプ

    • 初心者にも使いやすい
    • 多くのソフトウェアが簡単にインストールできる
    • コミュニティのサポートが充実している
  2. RedHat(レッドハット)、CentOS(セントオーエス)、Amazon Linux2タイプ

    • 企業での使用に適している
    • 安定性が高い
    • セキュリティの更新が定期的に行われる

Linuxシステムの3つのレベル

Linuxシステムは、大きく分けて3つの層(レベル)で構成されています。

1. ユーザープロセス(最上階)

  • 私たちが直接触れる部分
  • コマンドを入力したり、プログラムを実行したりする場所
  • 例:ブラウザやテキストエディタなど

2. カーネル(中間階)

  • Linuxの「心臓」とも言える重要な部分
  • コンピュータのメモリ上で常に動いている
  • 例:
    • プログラムの実行を管理
    • メモリの割り当て
    • ハードウェアとの通信
    • セキュリティの管理

3. ハードウェア(最下階)

  • コンピュータの物理的な部品
  • 例:
    • メモリ(データを一時的に保存する場所)
    • CPU(計算を行う部分)
    • ハードディスク(データを永続的に保存する場所)
    • ネットワークカード(インターネット接続用)

Linuxにおけるユーザー

Linuxでは、複数の人が同じコンピュータを使うことができます。
それぞれの「ユーザー」として登録され、自分のファイルやプログラムを持つことができます。

ユーザーの種類

  1. 一般ユーザー

    • 普通のユーザー
    • 自分のファイルやフォルダを管理できる
    • システムの重要な部分は触れない(安全のため)
  2. ルートユーザー(スーパーユーザー)

    • 管理者としての特別な権限を持つ
    • システムのどの部分でも操作可能
    • パスワードは厳重に管理する必要がある
    • 普段は一般ユーザーとして使用し、必要な時だけルートユーザーになる

シェルとは

ユーザーとコンピューターのオペレーティングシステム(OS)をつなぐプログラムです。
ユーザーの操作をOSに伝えて実行するためのインターフェースとして機能します。

シェルの役割

  • 私たちが入力したコマンドをコンピュータに伝える
  • コンピュータからの結果を私たちに表示する
  • プログラムの実行を管理する

主なシェルの種類

  1. bash(バッシュ)

    • 最も一般的なシェル
    • 多くのLinuxシステムのデフォルト
  2. 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など)で利用できるテキストエディタです。

基本的な操作

  1. ファイルを開く
vi ファイル名    # ファイルを開く(存在しない場合は新規作成)
  1. 編集モードの切り替え
  • iキー:編集モードに入る(文字を入力できる)
  • ESCキー:編集モードを終了
  1. ファイルの保存と終了
  • :w:ファイルを保存
  • :q:viを終了
  • :wq:保存して終了
  • :q!:変更を破棄して終了

パスについて

パスは、ファイルやフォルダの場所を表す道順のようなものです。

絶対パス

  • ルート(/)から始まる完全な道順
  • 例:/home/user/Documents/file.txt
  • どこからでも同じ場所を指す

相対パス

  • 現在の場所からの道順
  • 例:./file.txt(現在のフォルダ内のfile.txt)
  • 例:../folder/file.txt(1つ上のフォルダの中のfolderフォルダ内のfile.txt)

パーミッション

パーミッションは、ファイルやフォルダに対するアクセス権限を表します。

権限の種類

  1. 読み取り権限(r)

    • 値:4
    • ファイルの内容を読むことができる
    • フォルダの内容を一覧表示できる
  2. 書き込み権限(w)

    • 値:2
    • ファイルを編集できる
    • フォルダに新しいファイルを作成できる
  3. 実行権限(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

  • ソフトウェアのインストールや更新を簡単に行えるツール
  • 必要なソフトウェアを自動的にダウンロードしてインストール
  • 依存関係(必要な他のソフトウェア)も自動的に解決
GitHubで編集を提案

Discussion