2026-04-08

AIとベテランの組み合わせが、ソフトウェア開発を変える


2025年6月に個人事業主として独立し、2026年1月に初めて確定申告(青色申告)を提出した。

組織を離れてつくづく感じるのは、サラリーマン時代には見えていなかったものが、独立するとよく見えてくるということだ。


会社はエンジニアの給料の「倍」を払っている

個人事業主になると、社会保険料を全額自分で払うことになる。健康保険、年金、それに消費税の申告まで。組織にいたときはほとんど意識していなかったが、これが想像以上に重い負担だ。

一般に、会社は社員に支払う給料の倍近くをさまざまなかたちで負担しているといわれる。月給50万円のエンジニアがいれば、会社の実質的な人件費は100万円前後になる計算だ。健康保険・厚生年金の会社負担分、交通費、福利厚生、オフィスコスト……それらをすべて合算すれば、社員一人を雇うコストがいかに大きいかがわかる。

ソフトウェア開発プロジェクトにエンジニアが10人いれば、それだけで月1,000万円が飛んでいく。1年続ければ1億2,000万円だ。

サラリーマンエンジニアはこの現実をほとんど知らない。自分の給与明細しか見えていないからだ。しかし経営者や独立した事業主の目線で見れば、人件費はプロジェクトコストの大部分を占める最大の変動費である。この非対称な認識が、後述する「なぜ組織はAI活用に遅れるのか」という問題の根っこにある。


ソフトハウスの利益構造はなぜ脆いのか

製造業と比較するとわかりやすい。

製造業は、設計・開発の投資を一度やり切ってしまえば、あとは設計図通りに量産するだけで利益が積み上がる。売れれば売れるほど一製品あたりのコストは下がり、利益率は上がっていく。もちろん、商品に魅力がなければ売れないし、営業も必要だ。しかし「仕組みが動いていれば利益が出る」という構造が製造業には存在する。

ところがソフトハウスは根本的に違う。利益を生み出す源泉はエンジニアそのものであり、エンジニアが手を動かさない限り、何も生まれない。受注が増えれば人を増やすしかなく、人が増えればコミュニケーションコストが増え、むしろ効率が落ちる。製造業のように「黙っていても利益が出る仕組み」が、ソフトハウスには存在しない。

メーカーはこれまで、製品を売ることで得た利益の一部を、新製品の開発費としてソフトハウスに支払うかたちで産業を回してきた。そのほとんどが人件費だ。ソフトハウスにとっても、エンジニアの稼働率こそが売上の源泉であり、人を増やすことが成長の唯一の手段だった。

この構造は長らく変わらなかった。しかしAIの登場によって、その前提が崩れ始めている。


大規模プロジェクトを、今やり直したら

前職では、大規模なクラウドサービスの開発を数年間にわたってPMとしてマネジメントした経験がある。プロジェクトの規模は相当なものであり、外注費の大半がソフトハウスへの人件費だった。

プロジェクトが大きくなるほど、打合せ・仕様確認・修正依頼のラウンドトリップが増える。関わるエンジニアやステークホルダが増えれば増えるほど、コミュニケーションコストが膨らみ、開発効率はどんどん落ちていった。これはソフトウェア開発の構造的な問題であり、当時はそれ以外の選択肢がなかった。

そのプロジェクトを、今のAIを使ってやり直せたなら——開発費は10分の1以下、期間は半分以下にできたと確信している。

これは感覚的な数字ではない。PMとして全工程を見てきたからこそ言える数字だ。もちろん、プロジェクトの規模や性質、ドメインの複雑さによって結果は大きく異なる。しかし少なくとも、コミュニケーションコストが支配的だった開発においては、この肌感覚には根拠がある。

実際、最近、個人事業として、データベース・バックエンド・フロントエンドを連携するWebサービスをClaudeを使って開発した。開発期間は約3週間、Claudeに使った費用は約300ドルだ。想定していた機能はほぼすべて実装できた。

このサービスを外部の開発会社に委託した場合の見積もりをAIに試算させると、「エンジニア1名体制で3〜5ヶ月、費用は約500万円」という答えが返ってきた。コミュニケーションコスト——打合せ・仕様確認・修正依頼のラウンドトリップ——が大きな時間的オーバーヘッドになるからだ。これが外注の現実だ。

ちなみに、WEBシステムのモックアップを作るのに、エンジニア数人で一ヶ月かかっていたものが、今ではAIに何を作りたいかをきちんと説明できれば1時間もかからずに出来上がる。これを実際に体験したとき、「この変化に対応できない組織は10年後に競争に負ける」と直感した。


AIを使いこなすのは「誰でも」ではない

ただし、誤解してほしくない点がある。

AIにコードを書かせるだけなら、確かに誰でもできる。しかしそれだけでは、システムはじわじわとデグレードしていく。修正指示を闇雲に出し続けると、AIは整合性を失い、コードは壊れていく。どれだけ優秀なAIであっても、的確な指示がなければデグレードは避けられない。

AIを使いこなすには、ソフトウェアエンジニアリングの基礎と、プロジェクト成功の経験が必要だ。要求仕様の定義、各種設計書の作成とアップデート、テスト計画、構成管理、チェンジコントロール——これらを的確に指示できなければ、AIは力を発揮しない。それどころか、指示の仕方次第でシステムを壊す存在になる。

デグレードを防ぐためには、設計書を作成し、常にアップデートしておき、AIに指示を出す前に「まずこれを読め、そのうえで進めろ」と釘を刺す必要がある。成功したソフトウェア開発のアプローチや、過去の失敗から得た教訓をAIにあらかじめ伝えておくことが、品質を守る唯一の方法だ。

つまり、人間のソフトウェアプロジェクトにおける成功と失敗の経験を持っていない人間には、AIへの的確な指示は出せない。AIは道具であり、使い手の経験値がそのまま出力品質に直結する。

逆に言えば、それがきちんとできていれば、開発効率は圧倒的に上がり、品質の高い設計ができる。AIは経験ある人間の思考を増幅させる道具として、これ以上ないポテンシャルを持っている。

ここで言う「経験」とは、単に年数ではない。ソフトウェア工学という、過去数十年にわたるエンジニアたちの叡智の結集を、どれだけ自分のものにしているかだ。

要求分析、アーキテクチャ設計、品質保証、リスク管理——これらはソフトウェア工学が長い試行錯誤の末に体系化してきた知識だ。AIはその膨大な知識を学習データとして取り込んでいる。しかし、AIが持つ知識を引き出し、正しい方向に使うためには、人間側がその体系を理解していなければならない。ソフトウェア工学を知らない人間がAIに指示を出しても、AIの能力の表面しか使えない。

筆者自身、30年以上にわたって組織の外のコミュニティで一流のエンジニアたちと交流を続けてきた。そこで培ったのは、特定の技術や言語の知識ではなく、「ソフトウェア開発とはどうあるべきか」という考え方の軸だ。その軸があるからこそ、AIへの指示が的確になる。AIは膨大なソフトウェア工学の知識を取り込んでいる。それを引き出せるかどうかは、指示する人間の側にかかっている。


AIと付き合う上での「失敗談」

AIを使った開発は順調なことばかりではない。実際に経験した落とし穴を一つ紹介しておく。

AIのコンテキストウィンドウ(一回のチャットで扱える情報量)は年々拡大しており、最新モデルでは数十万トークン規模になっている。しかし、開発が長期化するにつれて、膨大なやり取りの中から何が重要かをAIが適切に判断し続けることには、現時点では限界がある。不必要な情報が混在すると、肝心の指示への集中が乱れ、整合性の取れないコードを生成したり、すでに決まっていたはずの仕様を無視した実装をしてきたりする。

これを防ぐには、新しいチャットを適切なタイミングで始めることが重要だ。そのためには、これまでやってきたことのエッセンスを仕様書や作業ログとして記録しておき、新しいチャットの冒頭でそれを読み込ませるという習慣が必要になる。

これはソフトウェア開発における構成管理やドキュメント管理の重要性と、本質的に同じ話だ。人間のチームでも、引き継ぎ資料がなければ新しいメンバーはゼロから学び直すことになる。AIも同じだ。記録を残す習慣がないエンジニアは、AIを使っても同じ失敗を繰り返すことになる。


AIを過信してはいけない

AIの可能性を語ってきたが、同時にリスクについても触れておかなければならない。

AIはもっともらしい嘘をつく。これは比喩ではなく、LLM(大規模言語モデル)の構造的な特性だ。ハルシネーションと呼ばれるこの現象では、AIが存在しない関数を平然と使ったコードを生成したり、古いバージョンのAPIを正しいものとして提示したり、文脈を取り違えたまま実装を進めたりする。そしてその出力は、表面上は非常に「それらしく」見える。

経験のないエンジニアがAIのアウトプットをそのまま信じてしまうのは、この「それらしさ」に騙されるからだ。AIの出力を鵜呑みにせず、自分の経験と知識でクリティカルに検証できる能力が、AI使いには不可欠だ。

AIはあくまで道具であり、最終的な判断と責任は人間にある。この原則を忘れたとき、AIは強力な助っ人から危険な存在に変わる。


最強の組み合わせは「経験者×AI」である

では、誰がAIを使いこなせるのか。

それは、製品開発や事業開発の成功体験と失敗体験を持つ経験者だ。顧客ニーズを把握し、事業計画を立て、開発プロジェクト全体を俯瞰できる人間が1人と、AIおよびAIを扱えるエンジニアが1人いれば、かつての大人数チームを凌駕する開発が可能になる。その2役を1人が兼ねられれば、さらに強い。

ここで注目したいのが、リタイアしたベテランの価値が急上昇するだろうという点だ。

特定ドメインでの製品開発・事業開発を長年経験してきた人材は、もはやソースコードを書く必要がない。AIやAI使いのエンジニアに対して的確な指示を出せればいい。かつては「現役を退いた」とみなされていた経験者が、AI時代の最重要リソースになりうる。経験と知識こそが、AIを正しい方向に導く羅針盤だからだ。

そういった人材をうまく確保し、組織内のAI使いエンジニアをプロジェクトに参加させて経験を積ませることができる組織が、次の競争を生き残る。


AIにできないこと

ここまでAIの可能性を語ってきたが、AIにできないことも明確にしておきたい。

AIは、コードを書き、設計を考え、文書を作ることはできる。しかし、人と人をつなぎ、組織をまたいで合意を形成し、実行可能な提案を引き出すことは、AIには代替できない。

定年退職前の5年間、筆者が心血を注いだのはまさにそこだった。開発部門と品質部門、事業部門と技術部門、社内と社外——それぞれの立場と論理を持つ人間の間に入り、横串を刺して、「それぞれが納得でき、かつ実現可能な提案」を形にする仕事だ。これは、どれだけAIが賢くなっても、人間にしかできない。

AIは「答え」を出すことが得意だ。しかし組織の中での意思決定は、正しい答えを出すことよりも、関係者を動かすことのほうがはるかに難しい。その現場の政治、感情、組織の力学を読みながら動ける人間が、AI時代にもっとも価値を持つ人材の一つだと思っている。

ベテランの価値は、知識やスキルだけではない。人と組織を動かしてきた経験そのものが、AIには持てない固有の資産なのだ。


ゼロから新人を育てている場合ではない

日本ではいまだに新卒一括採用が主流だ。プログラミング経験ゼロの新人を数年かけてOJTで育て、一人前になるまで何年、場合によっては何十年もかかる。

一方、過去のソフトウェア開発の叡智を集積したAIエキスパートを、月数万円のサブスクで使える時代が来ている。

この非対称性は致命的だ。

スキルゼロの新人を何年もかけて育成しているコストと時間を、AIとベテランの組み合わせに投資した競合他社が先行すれば、価格でも開発スピードでも太刀打ちできなくなる。

ただし、AI使いとなるエンジニアもまた育成が必要だという点は忘れてはならない。AIの特性を把握したうえで、AIのアウトプットに対して的確に修正指示を出せるスキルは、一朝一夕では身につかない。

そのための育成方法として、筆者が有効だと考えるのはPBL(Project Based Learning)だ。無茶だと思っても、実際の製品やサービス開発を新人エンジニア複数人とAIの組み合わせでやりきらせる。途中でベテランが定期的にレビューを入れ、方向を修正する。教科書で学ぶのではなく、実際のプロジェクトで成功と失敗を経験させることで初めて、AIへの的確な指示が出せるエンジニアが育つ。

試行錯誤しながらもゴールを目指す自立したエンジニアでなければ、良いAI使いにはなれない。残念ながら、日本の教育環境はこの点で不利だ。知識詰め込みの画一教育では、創造性や自立した思考は育ちにくい。学校でそれができないのならば、企業側で育てるしかない。そのコストと時間を惜しむ組織は、AI時代の競争から脱落していくだろう。


エンジニア自身が損をしないために

このブログで一貫して言いたいのは、エンジニアがやり甲斐のある仕事をし、高いスキルを持って正当に評価される世界を目指してほしいということだ。

AI時代において、その実現を阻む最大のリスクは「AIに使われるエンジニア」になってしまうことだ。AIが出してくるアウトプットを検証もせずに右から左に流すだけの存在になれば、エンジニアとしての価値は急速に失われる。

逆に、AIを使いこなし、ソフトウェア工学の知識をAIへの指示に変換し、プロジェクト全体を俯瞰できるエンジニアの価値は、AI時代にこそ上がる。単純な実装作業はAIに任せ、自分はより高度な判断と設計に集中できるからだ。

AIを道具として使いこなすエンジニアになるか、AIに代替される存在になるか——その分岐点は、ソフトウェア工学の基礎を学び、実プロジェクトで経験を積む努力を続けるかどうかにかかっている。

AI時代は、スキルの高いエンジニアにとってむしろ追い風だ。問題は、その追い風に乗れる準備ができているかどうかだ。


ソフトウェア開発のサイクルが変わる

AIの活用が進むと、開発サイクルそのものが変わる。

これまで1つの機能を追加・修正・検証・バリデーションするまでに半年かかっていたものが、AIを活用することで1ヶ月程度に短縮できる感覚がある。ソフトウェアのアップデートサイクルが年1回から四半期に1回になれば、それだけで競合他社との明確な差別化になる。営業が顧客にアピールできる材料も増える。

開発費の削減よりも、むしろこの開発スピードへのインパクトのほうが、競争優位に与える影響は大きいかもしれない。製品開発には多くの人間が関わるため、コミュニケーションコストが劇的に減るわけではない。しかし、ソフトウェア開発の部分だけでも大幅に短縮できれば、製品全体の競争力は根本から変わる。


経営層が気づくかどうかが、生死を分ける

技術の話をしているようで、これは本質的には経営の話だ。

AI時代に対応できない組織は、10年後には競争に敗れ始める。問題は技術でも予算でもなく、経営層がこの変化に気づき、組織再編に踏み出せるかどうかだ。

少数精鋭+AI+ベテランの知見という組み合わせに再編できた組織が生き残り、旧来の大人数・長期育成モデルから抜けられなかった組織が淘汰される——そういう時代が、静かに、しかし確実に始まっている。

組織は永遠にベテランエンジニアをキープし続けることはできない。だからこそ、今この瞬間に、経験者の知見とAIを組み合わせる仕組みを作り始めた組織が、次の10年を制するのだと思う。


2026-02-26

RaspberryPi5を使ったリアル波形描画(3) Googleカレンダーを表示してみる


10.1インチ Raspberry Pi用 IPS タッチモニターとRaspberry Pi5 を購入したのは、リアル波形描画を Qt で作成し直すことだけでなく、仕事机の脇において Googleカレンダー を表示させる目的もあった。

仕事用に34インチのLCDディスプレイを使っているので、GoogleカレンダーはLCDディスプレイのどこかに表示させておけばいいのだが、大抵、いろいろなファイルを広げているので、カレンダーを見るにはいちいち再表示させないといけない。

そのため、机の脇に10インチのディスプレイでGoogleカレンダーが常時表示されている状態にしたかった。そういう商品も売っているようだが、ラズパイで自分用にカスタマイズしたものが欲しかった。

そこで、今回、Raspberry Pi5で10インチのモニターに google カレンダーを表示させるアプリを作ってみた。

Googleカレンダーを表示させた様子(完成系)

作ってみたといっても、自分では一行もコードを書いていない。最近、流行りのコード生成に優れているといわれている Anthropic 社の Claude を使った。

ChatGPTでもできたかもしれないが、この動画を見て Claudeの実力が見てみたくなった。


プロジェクトの概要

本プロジェクトでは、Raspberry Pi 5 上にGoogleカレンダーとGoogle Tasksを表示するウォールダッシュボードを構築した。ダッシュボードはGoogleカレンダーのUIに近いデザインで、月間カレンダービューにイベントをリアルタイム表示する。 

システム構成

項目

内容

ハードウェア

Raspberry Pi 5

OS

Raspberry Pi OS (Debian 12, Linux 6.12.62)

リモートアクセス

RealVNC Viewer (Windows PC から接続)

バックエンド

Python 3.13 + FastAPI + Uvicorn

フロントエンド

HTML/CSS/JavaScript (シングルページ)

認証

Google OAuth2 (デスクトップアプリ)

API

Google Calendar API + Google Tasks API

 大まかな仕組みとしては、Google OAuth で 仕事用の Googleアカウントを認証し、バックエンドのソフトウェアで Googleカレンダー情報を取得する。取得した情報を html でカレンダーとして表示する。これが可能なのは、Google が Google Calendar API と  Google Tasks API を提供しているからだ。

最近のアプリは、このようにクラウドサービスが提供するAPIとエンドポイント側のPCや組み込み機器が連携して価値を生み出すものが多い。これまでスタンドアロンで動いていた組み込み機器もネット接続して、このようなクラウド上のAPIと連携して新しい価値を提供するサービスが増えてきている。そううった傾向もあり、サイバーセキュリティも重要度が増している。

ChatGPTで医療機器ソフトウェア規制にこたえるチャットボットを作ったときは、壁打ちしながら約1週間かかった。

MSC Chat(医療機器ソフトウェアQ&A)

Claude での Googleカレンダーアプリ作成は約5時間。
Claude がすごいと思ったのは、問題が起こったときのリカバリーの良さだ。今回のサービスでは、ラズパイにPython のインストールが必要で、Python 3.13 のインストール作業の過程でつまずいた。Python 3.13 と pydantic==2.7.1 の互換性問題が発生した。

pydantic:**Pydantic(パイダンティック)**は、Pythonで「データの型チェック」と「データ検証」を簡単・安全に行うためのライブラリです。特に、API開発(FastAPIなど)や設定ファイル、JSONデータの扱いで広く使われています。「Pythonの型ヒントを使って、データの正しさを自動で検証・変換してくれるライブラリ」

pydantic-core のビルドにRustコンパイラが必要なためインストールに失敗した。pydantic==2.11.0 にバージョンを変更することで解決した。
 

パッケージ

バージョン

用途

FastAPI

0.111.0

WebAPIフレームワーク

Uvicorn

0.29.0

ASGIサーバー

pydantic

2.11.0

データバリデーション

google-auth

2.29.0

Google認証

google-auth-oauthlib

1.2.0

OAuth2フロー

google-api-python-client

2.127.0

Google API クライアント

こういう互換性の問題は、スクラッチで作っているときに発生すると原因がわからず 、暗い気持ちになりストレスが溜まる。ヒントをインターネット検索で探すのだが、解決した経験を誰かがアップしてくれていればラッキーで、そこにたどり着くまでにはそれなりの時間がかかる。

しかし、Claude は問題の状況をスクリーンショットで伝えると一発で原因を分析し、代替え手段を提示してくる。こんな感じで Claudeと壁打ちしながら、試行錯誤を繰り返していって、Googleカレンダーをラズパイで表示することができた。

完成した機能

機能

詳細

Googleカレンダー表示

月間カレンダービューでイベントをリアルタイム表示

カレンダー色分け

カレンダーごとの色でイベントを色分け表示

今日のハイライト

今日のセルを水色背景で強調表示

日時表示

右上に現在日時をリアルタイム表示

自動更新

5分ごとに自動リフレッシュ

Pi起動時自動起動

電源投入後に自動でダッシュボードが表示される

全画面キオスクモード

ブラウザのUI非表示で純粋なダッシュボード表示

ちなみに、ChatGPTは Pro の契約をしており、ChatBotを一週間かけて作ったときは、追加料金はかからなかったが、Claude はインプット、アウトプット量に対して、えげつないほどの従量課金になっており、結局 Googleカレンダーアプリ作成に6481円かかった。
使用料は毎日リセットされるので、一日の使用量まで達したら、翌日続きを行うようにすれば、月額使用料の中で完結できたのだが、一日で仕上げたいとなると、追加請求される。

前述の動画でも解説されているが、ChatGPTはオールラウンドプレイヤーで Claudeはビジネス用途の実績主義に特化しているとのこと。確かに判断が的確で試行錯誤が少ないが、効率がよいぶん、費用の請求もえげつない。

AIを使ったコード生成の感想

多くの識者が語っているように、今後ソフトウェアのコーディングは劇的に変わっていくことを実感した。経験の少ないソフトウェアエンジニアを一から教育する投資がもったいないというか、そこに疑問を持たずに続けていく企業はいずれ滅びてしまうのではないかという感覚がある。

現実に米国ではすでにソフトウェアエンジニアのリストラが始まっていると聞く。AIに置き換えられた分の人件費をカットする判断を経営層が下ししている。日本では簡単に社員をクビにはできないが、ソフトウェアエンジニアの採用が徐々に減っていく予感さえある。

何を作りたいか、何を提供すれば顧客に価値をもたらすことができるかさえ想定できれば、AIがアプリを作ってくれるところまで来ている。仮に作ったサービスが期待通りの実績を上げられなくても、ユーザーの使用状況のデータなどを収集してAIに分析させることで、どう改変すればよいのかも教えてくれる。

もちろんそのための費用もかかるが圧倒的に人件費より安い。

今後、生身のエンジニアに求めらるのは、コーディング力ではなく、価値創造の企画力や、人間同士のコミュニケーション能力ではないだろうか。それと、AIが出してきたアウトプットの是非を判断できる経験。

今回、Raspberry Pi 5 Google カレンダーダッシュボード プロジェクトが完成したところで、Claude に詳細なレポートを作ってもらった。

これをしっかり読み込むことで、AIが何を考え試行錯誤したのかがよく分かった。昔ならベテランの先輩に年単位で教えてもらっていたことが、数日で学習できる。

今後の技術者教育は、自分で企画してAIに作ってもらい、その開発過程をAIに説明してもらうことで、自分の経験として取り込むという教育が有効な感じがした。

どっちにしても、従来と同じようなソフトウェアエンジニアの採用や教育を行っていると、グローバルな競争に負けていく予感がしている。

便利だけど、生身のソフトウェアエンジニアには受難の時代になってきたかもしれない。



2026-01-20

RaspberryPi5を使ったリアル波形描画(2) Linux を使ってみる

 



RaspberryPiの OS は Linux である。RaspberryPi でアプリ制作をするにあたっては、Linux でコマンドを打つシーンが多くなる。コマンドを打ちやすくするために、VNC Viewer をセッティングする。

【VNC とは】

VNC(Virtual Network Computing)は、離れた場所にあるパソコンの画面を手元の端末に表示し、キーボードやマウス操作をそのまま遠隔のパソコンに送るためのリモートデスクトップソフト。

Real VNC Viewer(RealVNC Viewer)は、RealVNC 社が提供しているリモートデスクトップ用のビューアソフトで、離れた場所にある PC やサーバーの画面を表示して操作できるツールで、無償で使える。Home(無料)ライセンスでは、個人用途向けに台数制限付き(例:最大 5 台まで)でリモート接続が可能。

現在、RaspberryPi5 は Wi-Fi に繋がっているので、デスクトップPCに VNC Viewer をインストールして、RaspberryPi5 の画面を PC上に表示させる。こうすると、デスクトップPCのキーボードやマウスを使って、RaspberryPi5 をリモートで操作することができる。

(1) PCに「VNC Viewer」をインストールして起動。(こちらの note記事を参照)



これがRaspberryPi5のスクリーンをVPNでディスクトップPCに表示させた様子だ。下側に出ているのはタッチスクリーンのキーボード。RaspberryPi5にキーボードが接続されていないときにタッチスクリーンを使ってキーボード入力できる、親切な設計だ。ただ、VNCでは使わないので、左上のラズベリーメニュー→ Preferences→Control Centre→Display→On-screen Keyboard を Disabled にしておく


コマンドプロンプト画面は、左上のアイコンをクリックすると表示される。最初はかなり小さい画面になっているので、Edit → Style でフォントの大きさや画面サイズを変更した。

【RaspberryPiに登録されているユーザを確認する】

まず最初に、RaspberryPi5 に登録されているユーザーを確認しておく。

コマンドは cat /etc/passwd。結果は次のようになった。

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
 :
colord:x:107:111:colord colour management daemon:/var/lib/colord:/usr/sbin/nologin
hplip:x:108:7:HPLIP system user:/run/hplip:/bin/false
vnc:x:985:985:vnc:/nonexistent:/usr/sbin/nologin
xxsakai:x:1000:1000::/home/xxsakai:/bin/bash

前半はすべて Linux のシステムが使うユーザーで最初から設定されているものだ。vnc はVNCを使うために追加されたユーザーで、xxsakai は Linux のインストールイメージを作ったときに設定したユーザー(自分自身)である。

これで、システム以外のユーザーは 自分だけだということがわかった。

ちなみに、root ユーザーはすべての権限を持った特権ユーザーで、昔は、root ユーザーのパスワードを設定して、root ユーザーになることができたが、Raspberry Pi 5(Raspberry Pi OS)では root ユーザーのパスワードは「最初から設定されていいない」。

なぜ root のパスワードがないのかといえば、Raspberry Pi OS(Debian系)は、root での直接ログインを禁止し、通常ユーザーでログインして、必要なときだけ sudo で管理者権限を使うという設計になっているからである。

Linux のイメージを作ったときに、ユーザーを設定するので、そのユーザーは sudo を使えるようになっている。コマンドラインで確かめてみる。


sudo グループに入っており、sudo コマンドが使えることが確認できた。

【Linux のアップデートについて】

Linux をアップデートするには、次のコマンドを実行する。

sudo apt update
sudo apt upgrade

update:最新情報を取りに行く(変更なし)
upgrade:実際に更新する(変更あり)


update はリポジトリから最新のパッケージ一覧を取得する。update は何も書き換えない。upgrade コマンドで、最新のパッケージをインストールすることになる。

では、upgrade はどれくらいの頻度でやるべきか。推奨は、月1回程度で、何かの作業が終わった後がよい。避けるべきなのは、作業の途中や動作の確認中だ。

Linux は Windows Update のように定期的にパッチを当てるような仕組みがないので、脆弱性が発見されたときなど、手動で upgradeする必要があるが、upgrade することで、今動いていた機能が動かなくなるリスクもまったくないとは言えないので、頻繁にやることはない。

RaspberryPi5 を設置した直後に upgrage を行ったが、かなりの量の更新があった。アップグレードは節目節目、月イチ程度で行った方がよいだろう。

【Linux でよく使うコマンド】

📌 ファイル・ディレクトリ操作(最重要)

コマンド説明
lsファイル一覧表示
ls -l詳細表示
ls -a隠しファイル含め表示
pwd今いるディレクトリ
cdディレクトリ移動
mkdirフォルダ作成
rmdir空フォルダ削除
cpコピー
mv移動・名前変更
rm削除(注意)
rm -rフォルダ削除(注意)
fileファイル種別確認

📌 ファイル内容の確認・編集

コマンド説明
cat内容を全部表示
lessページ送りで表示
head先頭表示
tail末尾表示
tail -f追記をリアルタイム表示
nano簡易エディタ
vi / vim高機能エディタ
wc行数・文字数カウント

📌 検索・抽出(慣れると超便利)

コマンド説明
grep文字列検索
findファイル検索
locate高速検索(事前DB)
awk列処理
sed文字置換
sort並び替え
uniq重複除去

📌 システム・状態確認

コマンド説明
topプロセス監視
htop見やすい top
psプロセス表示
df -hディスク空き
du -h使用量
free -hメモリ
uptime稼働時間
uname -aカーネル情報
lsblkストレージ構成

📌 ネットワーク

コマンド説明
ip aIPアドレス
ip rルーティング
ping通信確認
ss -lntupポート確認
curlHTTP取得
wgetファイル取得
nmcliNetworkManager操作

📌 ユーザー・権限

コマンド説明
whoami自分
idUID/GID
groups所属グループ
sudo管理者権限
passwdパスワード変更
suユーザー切替
chmod権限変更
chown所有者変更

📌 パッケージ管理(Debian系)

コマンド説明
apt update更新情報取得
apt upgrade更新
apt installインストール
apt remove削除
apt autoremove不要削除
apt search検索
apt show詳細

📌 圧縮・展開

コマンド説明
tarアーカイブ
gzip / gunzipgzip圧縮
zip / unzipzip
xz高圧縮

📌 便利・覚えておくと楽

コマンド説明
history実行履歴
clear画面消去
alias別名
watch定期実行
time実行時間
which実体確認
manマニュアル

今回は、これくらいにしておく。