【ラズパイ4】LXTerminal(端末)の基本コマンド一覧・設定

この記事は約12分で読めます。

前回はラズパイ4のOS「bullseye」の作成・インストールから日本語入力環境の設定まで行いました。

本記事では、Linux コマンド入力経験がゼロの方も、

  • 「基本的には最低限のコピー&貼り付けで済ませるサーバ構築」

という方向性の下、

を目指しているので、
その範囲内で使うLXTerminalコマンドに絞って一覧にしています。

私自身、その程度しかサーバ構築に求めていないため、
サーバ構築しながら確認のために本記事に訪れて頂ければ、
という趣旨で書いております。

Linuxコマンドを知るために有益なページ

プログラムやシステムのプロでもない私が申すのもおこがましいのですが、
ラズパイOSはDebianベースなので、GNOMEやDebian公式サイトが1次情報になると思っています。
以下のページにてTerminal端末)入門が始まります。

ラズパイはDebianで使われるコマンドのほとんどが使えるので[1]Linux ディストリビューションによっては、modifiedされたコマンドに遭遇することがあります。
Google検索などでラズパイコマンドを探し回るよりは、上記リンク先のドキュメント内で検索するほうが、
目的のコマンドを早く見つけられ、検索疲れも軽減できると思います。

なぜターミナルが必要なのか?

Terminal(端末)を使う意義とは?

私は25年以上、Microsoft WindowsのGUIだけを使ってきました。コマンドプロンプトは一番遠い存在でした。
コマンド入力に縁遠い人間からすればラズパイを含むLinux操作は、

「なんで肩の凝るタイピングばかりをしなくてはならないのか?GUIではダメなのか?[2]厳密には、TerminalもGUI上で動くソフトなので、GUIの一部となります。完全なCLI(Command Line Interface)とは言えず、Terminal Emulators … Continue reading

当初はそんな疑問を抱きました。

ところが、見様見真似で、Sambaサーバ・ローカルWordPress専用Webサーバを構築できるようになり、
ターミナルでファイル操作する重要さが私なりに理解できるようになってきました。

サーバはクライアントPCからのアクセス要求に対応するために、ファイルへのアクセス権限を明確に決定する必要があります。

  • どのDocumentRootを開いて目的のファイルまでのアクセスを許可するのか?
  • どの範囲のユーザー・グループを許可するのか?
  • どの範囲のファイルアクセス権限(例:読み取り(r)・書き込み(w)・実行(x))を許可するのか?

など、許可する範囲を細かく限定する設定作業が必要となります。
この設定作業がGUI環境のデスクトップから安易に操作可能なら、誰でも書き換えが出来てしまいます。

  • 特権を有したrootアカウントやsudoコマンド能力を有した一般ユーザーのみ、Terminalというインターフェースを介して設定変更出来るシステム

これを実現するためにターミナル(端末)が存在している、と私は理解しています。

Linuxではファイルアクセスへの権限が厳格

Linuxでの権限とユーザー種類

Linuxではファイルアクセスへの権限を恒常的に意識して、操作していきます。
Windowsにも各ユーザーが有する権限がありますが、通常の使用ではあまり意識することは無いと思います。

この点の違いがWindowsユーザーにとって、面倒に感じ、Linuxへの理解の最初の敷居になっていると思います。

Linuxでの権限

  • read: 読み取り(Read)
  • write: 書き込み(Write)
  • execute: 実行(eXecute)

ユーザー種類

  • root: 上の権限を全て有し、全ての操作を実行できる最も強力な特権アカウント。詳細はDebian Wikiをどうぞ。
  • 一般ユーザー:
    • sudo権限を有する非rootユーザー:sudo権限を持つ一般ユーザー
    • sudo権限を有さない非rootユーザー:sudo権限を持たない一般ユーザー

※ラズパイの場合は、OSインストール時に作成したユーザー(例: pi)は自動的にsudo権限を有しています。

rootとsudo権限を有した一般ユーザーを分ける理由は、
普段のラズパイ操作において、rootアカウントで長時間作業している間に乗っ取られると、あらゆる権限を奪われる危険性があるからです。
そのため、

「普段の作業は一般ユーザーとして行い、必要な場合に限って一般ユーザーがsudoコマンドを使ってラズパイを操作する。」

というセキュリティ面が考慮されています。

権限が無いとエラーが表示される実例

以下のように、
デスクトップ上でsudo能力のあるユーザーがラズパイGUIアプリから設定ファイルを編集しても、保存の際に、

「ディスク上のファイルは破損しているかもしれません!」

なんてエラーで脅しをかけられ、保存できない事態に頻繁に遭遇します。

error-message

しかし実際はファイル破損しておらず、
ターミナルからファイルを開くと、編集・保存できます。
ターミナルからこのファイルを操作するのが正攻法です。

エラーが表示された理由は「ファイルを変更する(書き込み・保存)権限はrootしか持っていないから」です。

GUIの場合、ファイルのプロパティから権限(パーミッション)を確認できます。

property-boot-config.txt

上画像のように、

  • 所有者:root
  • 内容の変更:所有者のみ

となっているので、rootユーザー以外はファイルに変更を加える権限を許可されていません。
そのため、sudo権限を持つ非rootユーザー(例:pi)として、
ターミナルでファイル変更を行う必要があります。

Disable-Bluetooth-WiFi-Terminal
sudo権限で /boot/config.txt ファイルを開く
Disable-Bluetooth-WiFi-Terminal-2
sudo権限で /boot/config.txt ファイルに追記・保存できる

このように、ファイルへ変更を加えるために権限が細かく厳格に定められています。
そして、GUIで普段使いしていても、恒常的に権限と関わりを持つことを強いられます。
(権限の壁がありふれている点で、Windowsとは大きく異なります)

しかし、逆にいえば、

  • Linuxはファイルアクセスをそれだけ慎重に考え、セキュリティ度を高めている

と、良いルールとして私は受け止めています[3]「Linuxはサーバ用途が多いOSなので複数ユーザーでの使用を前提としているため、ユーザー権限を厳格化している」、と目にしたことがあります。

ターミナルを使わなくても

  • Gimpで画像編集・加工
  • Web閲覧
  • Office系アプリを使う

など、ラズパイを操作できますが、
権限の概念はGUIにおいても付いて回ってくるので、

「そういうものがあるんだぁ」

という程度でも心に留めておくと、
エラーに対処しやすくなると思います。

sudo 権限とは?

sudo: Super-user do の略とされています。rootユーザーが実行可能なコマンドを非rootユーザーも使用可能にするため権限を限定的に許可を付与するプログラム、コマンド。

下のように、行の先頭でsudo宣言します。

First-update-raspi-bullseye-5
行の先頭で、sudo を付け加える

sudo 権限の基本思想

上のリンク先の意訳になりますが、

rootのまま作業するのは危険なので、
一般ユーザーが実務できる範囲内で特権を付与します。
但し、セキュリティ面から特権を少なくするのが基本的な思想です。

sudo 権限ユーザーの作成方法

ラズパイユーザーの方には直接的には関係ないのですが、私自身の備忘録も兼ねて、やり方を書き残します。

一般ユーザーをsudoグループに属すようにすると、sudo権限を有したユーザーを作成出来ます。
rootユーザーになってから行います。

# rootになる
su
# ユーザー pi をグループsudoに追加
gpasswd -a pi sudo
# sudoグループに追加された確認
groups pi

実体験としては、Debianを別PCにインストール直後に一般ユーザーはsudo権限を有していないのを知り、
上のコマンドを実行しました。

LXTerminalの起動方法

LXTerminalを起動するには、ランチャー(赤枠)をクリックします。

LXTerminal-on-Raspi

LXTerminalとの付き合いはサーバ構築までの1〜3日間までなので、
ほぼデフォルトのまま進めることにします[4]Terminalにも数多く種類があります。ラズパイはLXDEというデスクトップ環境なのでLXTerminalが採用されています。その他のTerminalはこちら

文字サイズや色の設定変更は後述しています

LXTerminalの基本コマンド一覧

LXTerminalのコマンド入力方法

コマンドを1行入力後、Enterキーを叩くと実行されます[5]参照: GNOME HELP

First-update-raspi-bullseye-5
(例)コマンド入力後、Enter。

上矢印カーソルキーを叩くと、一つ前に入力したコマンドが表示されます。
異なる文字列のみ変更して、タイピング文字数を少なくする際に重宝します。

Up cursor key

例: enableをstatusに変更するだけの場合

sudo systemctl enable ssh

とEnter入力後、上矢印カーソルキーを1回叩いて同じコマンドを表示させます。その後、enableをstatusに変更してEnter入力します。

sudo systemctl enable ssh
sudo systemctl status ssh

1行全てを入力せずに済むので、タイピング文字数を減らせます。

一番最初に覚えるコマンド

PC使用において、いつの時代でも電源OFFは最初に覚えるべき大事な操作、と個人的に思っております。

# 電源OFF
sudo shutdown -h now
# 再起動
sudo reboot

以下のコマンドはシングルユーザーモードからのシャットダウン[6]参照: GNU/Linux チュートリアル
使っている例をあまり見かけないので、上述コマンドで十分だと思います(一人使用の範囲内では)。

sudo poweroff -i -f

システムのアップデート&アップグレードのコマンド

ラズパイOSセットアップ直後に行うコマンドです。
Linuxを使用する上で、毎日ほど頻繁に使います。

apt: Advanced Package Toolの略。

# アップデート
sudo apt update
# アップグレード
sudo apt upgrade

サーバ構築時によく使うコマンド

root化する

su: substitute user(代わりのユーザーの意)の略のようです。

# root化する前の現在ディレクトリを引き継ぐ
su
# ディレクトリを引き継かず、root home directory から始まる
su -

ラズパイで上のコマンドを使えない場合、

sudo su

と入力すると、root化できます。

インストール・アンインストール

サーバ構築するにあたり、容量は大きくないですが、6点ほどパッケージをインストールします[7]ufw, Samba, Apache2, MariaDB, PHP, WordPress, など。

# インストール
sudo apt install パッケージ名
# アンインストール
sudo apt remove パッケージ名
# アンインストール(パッケージの設定ファイルも一緒に)
sudo apt purge パッケージ名

パッケージの正式な名称を知るには以下のコマンドで検索します。

apt search パッケージ名

ディレクトリを移動・配下の内容確認

cd: Change Directory.
ls: List.

# ディレクトリを移動
cd /ディレクトリ
# ディレクトリの内容をリスト化して表示
ls -la

ファイルを編集

エディタ nano を起動するコマンド。後ろに開きたいファイル名。

# ファイルの編集
sudo nano /ディレクトリ/ファイル名

ディレクトリを作成

mkdir: Make directory.

# ディレクトリ作成
sudo mkdir /ディレクトリ

ファイルやディレクトリを削除

rm: remove.

# ファイル削除
sudo rm /ディレクトリ/ファイル名
# ディレクトリ削除(配下のファイルも一緒に)
sudo rm -rf /ディレクトリ

ファイルやディレクトリの権限変更

chmod: Change mode.
chown: Change ownership.

# ファイルの権限変更
sudo chmod
# ファイルやディレクトリの所有権を変更
sudo chown

知っておいたほうが良いコマンド

pwd: Print working directory.
cat: Concatenate and write files. 推測ですが、黄色マーカー部分の略でしょうか?

# ターミナル画面が文字でいっぱいになったときに文字を一掃する
clear
# 現在のディレクトリを表示
pwd
# ターミナルを閉じる
exit
# ファイルの中身を表示する(編集はできない)
sudo cat /ディレクトリ

LXTerminal の設定

フォントサイズを変更

1.編集>設定

2.端末のフォントをクリック。

3.サイズを変更。

フォント色を変更

1.編集>設定

2.前景色をクリック。

3.真っ白を選択すると、ターミナルの文字が読みやすくなります。

本記事内のコマンドはケース・バイ・ケースで、追加・更新する可能性があります。
サーバ構築を進めながら、不明時の確認目的で閲覧ください。

本記事がお役に立てれば嬉しく思います。

脚注

脚注
1 Linux ディストリビューションによっては、modifiedされたコマンドに遭遇することがあります。
2 厳密には、TerminalもGUI上で動くソフトなので、GUIの一部となります。完全なCLI(Command Line Interface)とは言えず、Terminal Emulators が広義の呼称となります。参考:GNOME HELP
3 「Linuxはサーバ用途が多いOSなので複数ユーザーでの使用を前提としているため、ユーザー権限を厳格化している」、と目にしたことがあります。
4 Terminalにも数多く種類があります。ラズパイはLXDEというデスクトップ環境なのでLXTerminalが採用されています。その他のTerminalはこちら
5 参照: GNOME HELP
6 参照: GNU/Linux チュートリアル
7 ufw, Samba, Apache2, MariaDB, PHP, WordPress, など。

コメント