Ubuntu laptop の初期設定

はじめに

windows laptop が余っていたので Ubuntu をクリーンインストールして開発マシンとして使っている。その際に行った初期セットアップとしてやったことやその手順を自分用の備忘録としてメモしておく。

OS のインストール

予めブートメディアを用意しておく必要がある。僕の場合は USB メモリを準備したので、その際の記事も貼っておく。

Ubuntu のブータブル USB を作る
Ubuntu のクリーンインストールに向けてやったことを自分用の備忘録として残しておく
Ubuntu のブータブル USB を作る favicon egashira.dev
Ubuntu のブータブル USB を作る

一般設定

ロケール、タイムゾーン

マシンをデフォルトの英語で使用しているのでロケールはそのままで良いがタイムゾーンを日本に変える。

# ロケールの確認
$ localectl status | head -n 1
System Locale: LANG=en_US.UTF-8

# タイムゾーンを日本に変更
$ timedatectl set-timezone Asia/Tokyo

日本語入力

mozc を導入した。

$ sudo apt update
$ sudo apt install -y ibus-mozc
$ sudo reboot

再起動したら右上から日本語入力を設定できるか確認する。

詳細設定ツールのインストール

$ sudo apt update
$ sudo apt install -y gnome-tweaks

ファイアウォールの有効化

$ sudo ufw enable

# ログを確認
$ tail -f /var/log/ufw.log

キーバインド設定

Caps Lock を Ctrl にした。

sudo vim /etc/default/keyboard

以下のようにして再起動すれば設定が読み込まれる。

XKBOPTIONS="ctrl:nocaps"

dotfiles を使ったセットアップ

こちらが基本的には初期セットアップの大半を占める。シェルの設定ファイルだったり、コマンドラインツールだったりを一気にインストールしてくれる。今後もゆるく育てていきたい。

$ /bin/bash -c "$(wget -qO - https://raw.githubusercontent.com/ega4432/dotfiles/main/install.sh)"

ソフトウェアのインストール

dotfiles 化できていない、かつ普段から使用するソフトウェアを手動でインストールしていく。

Google Chrome

以下よりダウンロードする。

Google Chrome - Google の高速で安全なブラウザをダウンロード
新しい Google Chrome で毎日をもっと快適に。Google の最先端技術を搭載し、さらにシンプル、安全、高速になった Chrome をダウンロードしてご活用ください。
Google Chrome - Google の高速で安全なブラウザをダウンロード favicon www.google.com
Google Chrome - Google の高速で安全なブラウザをダウンロード

1Password

アプリは以下よりダウンロードする。

Linuxに最適なパスワードマネージャーをダウンロード | 1Password
Ubuntuおよびその他のLinuxディストリビューションを実行しているマシンにLinux用の1Passwordをダウンロードします。Linuxユーザー向けの最高のパスワードマネージャーで、強力なパスワードを作成して使用できます。
Linuxに最適なパスワードマネージャーをダウンロード | 1Password favicon 1password.com
Linuxに最適なパスワードマネージャーをダウンロード | 1Password

CLI もよく使うので、apt より op CLI を インストールした。

# インストール
$ sudo apt install -y 1password-cli

# CLI でアカウント追加、サインインする
$ op account add --signin

Slack

以下から deb パッケージをダウンロードしてインストールした。

Linux | ダウンロード
モバイル機器やデスクトップで使える Slack を無料でダウンロードしましょう。iOS、Android、Mac、Windows、Linux 版の Slack アプリで常に同期させれば、どこでも最新の情報を確認できます。
Linux | ダウンロード favicon slack.com
Linux | ダウンロード
$ sudo apt install ~/Downloads/slack-desktop-{VERSION}-amd64.deb

ターミナル設定

選択肢は色々あると思うが Ubuntu のデフォルトのターミナルを使っている。

プロンプトの設定については starship を使っているので starship 用の font ファイルをダウンロードする。以下より Hack Nerd Font をダウンロードして、~/.fonts に配置する。

Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher
Iconic font aggregator, collection, & patcher: 9,000+ glyph/icons, 60+ patched fonts: Hack, Source Code Pro, more. Popular glyph collections: Font Awesome, Octicons, Material Design Icons, and more
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher favicon www.nerdfonts.com
Nerd Fonts - Iconic font aggregator, glyphs/icons collection, & fonts patcher

シェルは Bash を利用していて、dotfiles で bashrc, bash_profile を設定している。

GitHub 接続設定

ここでは GitHub に push できるようにしておく。

SSH key の設定はこちらを参考にした。

俺たちはもう GitHub のために ssh-keygen しなくていい
俺たちはもう GitHub のために ssh-keygen しなくていい favicon zenn.dev
俺たちはもう GitHub のために ssh-keygen しなくていい

~/.ssh/config を以下の内容で作成する。

Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/id_git_rsa
  User git

疎通確認する。

ssh -T github
Hi ega4432! You've successfully authenticated, but GitHub does not provide shell access.

ローカル用 config ファイル ~/.gitconfig.local を作成

[user]
		name = "ega4432"
			email = "[email protected]"

このファイルは、~/.gitconfig から以下のような形で読み込むようにしている。

[include]
    path = ~/.gitconfig.local

参考

Ubuntu 20.04 LTS をインストールした後やること13選 - Qiita
Ubuntu 20.04 LTS インストール後の、おすすめの基本設定をまとめてみました (19.10 の時とは若干内容が異なります)。 フォルダ名を英語に変更する Ubuntu に限らず Linux を日本語でインストールすると、ホーム内のフォルダ名が日本語になっていて...
Ubuntu 20.04 LTS をインストールした後やること13選 - Qiita favicon qiita.com
Ubuntu 20.04 LTS をインストールした後やること13選 - Qiita
Ubuntu 22.04 をインストールしたら設定すること 10 ヶ条
Ubuntu 22.04 をインストールしたら設定すること 10 ヶ条 favicon zenn.dev
Ubuntu 22.04 をインストールしたら設定すること 10 ヶ条
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】
こちらの書籍は 2024/05/24 紙版の4刷に対応するため更新をおこないました。 (概要) ITシステムやソフトウェアの基盤OSとして幅広く使われているLinux。エンジニアとしてLinuxに関する知識はいまや必須とも言えますが、あなたはそのしくみや動作を具体的にイメージすることができるでしょうか。 本書では、Linux OS における、プロセス管理、プロセススケジューラ、メモリ管理、記憶階層、ファイルシステム、記憶階層、そして仮想化機能、コンテナなど、OS とハードウェアに関するしくみがどのように動くのか、実験とその結果を示す豊富なグラフや図解を用いてわかりやすく解説します。 改訂に際しては全面フルカラー化。グラフや図解がさらにわかりやすくなり、ソースコードはC言語から、Go言語とPythonにアップデートしています。さらに仮想化、コンテナなどの章が加わりました。今どきのLinuxのしくみを本書でしっかり理解しておきましょう。 (こんな方におすすめ) ・Linuxの動作や仕組みに興味があるエンジニア ・OSや仮想マシン、コンテナのしくみを手軽に学びたいと考えているエンジニア (目次) 序章 はじめに 第1章 Linuxの概要   プログラムとプロセス   カーネル   システムコール   ライブラリ 第2章 プロセス管理(基礎編)   プロセスの生成   プロセスの親子関係   プロセスの状態   プロセスの終了   ゾンビプロセスと孤児プロセス   シグナル   シェルのジョブ管理の実現   デーモン 第3章 プロセススケジューラ   前提知識:経過時間と使用時間   1つの論理CPUだけを使う場合   複数の論理CPUを使う場合   realよりもuser+sysが大きくなるケース   タイムスライス   コンテキストスイッチ   性能について   プログラムの並列実行の重要性 第4章 メモリ管理システム   メモリ関連情報の取得   メモリの回収処理   仮想記憶   プロセスへの新規メモリの割り当て   ページテーブルの階層化 第5章 プロセス管理(応用編)   プロセス作成処理の高速化   プロセス間通信   排他制御   排他制御の堂々巡り   マルチプロセスとマルチスレッド 第6章 デバイスアクセス   デバイスファイル   デバイスドライバ   デバイスファイル名は変わりうる 第7章 ファイルシステム   ファイルへのアクセス方法   メモリマップトファイル   一般的なファイルシステム   容量制限(クォータ)   ファイルシステムの整合性保持   Btrfsが提供するファイルシステムの高度な機能   データ破壊の検知/修復   その他のファイルシステム 第8章 記憶階層   キャッシュメモリ   Simultaneous Multi Threading(SMT)   ページキャッシュ   バッファキャッシュ   書き込みのタイミング   direct I/O   スワップ   統計情報 第9章 ブロック層   HDDの特徴   ブロック層の基本機能   ブロックデバイスの性能指標と測定方法   ブロック層がHDDの性能に与える影響   ブロック層がNVMe SSDの性能に与える影響 第10章 仮想化機能   仮想化機能とは何か   仮想化ソフトウェア   本章で使う仮想化ソフトウェア   仮想化を支援するCPUの機能   仮想マシンは、ホストOSからどう見えているか?   仮想化環境のプロセススケジューリング   仮想マシンとメモリ管理   仮想マシンとストレージデバイス   virtio-blkの仕組み 第11章 コンテナ   仮想マシンとの違い   コンテナの種類   namespace   セキュリティリスク 第12章 cgroup   cgroupが制御できるリソース   使用例:CPU使用時間の制御   応用例 終章 本書で学んだことと今後への生かし方 続きを読む
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】  favicon amazon.co.jp
[試して理解]Linuxのしくみ ―実験と図解で学ぶOS、仮想マシン、コンテナの基礎知識【増補改訂版】
ゼロからわかるLinuxサーバー超入門 Ubuntu対応版 かんたんIT基礎講座
(概要) ※この商品は固定レイアウトで作成されており,タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また,文字列のハイライトや検索,辞書の参照,引用などの機能が使用できません。 ※PDF版をご希望の方は Gihyo Digital Publishing ( https://gihyo.jp/mk/dp/ebook/2023/978-4-297-13428-0 )も合わせてご覧ください。 Linuxサーバーのやさしい入門書です。人気のディストリビューション(OS)、Ubuntuを用いて、導入やコマンド、Apache HTTP ServerによるWebサーバー、PHPの実行やSSHなどLinuxサーバーの使い方が学べます。 サーバーに興味がある、はじめて触るという方でもわかりやすい、初歩的な内容から解説します。 (こんな方におすすめ) ・Linuxの使い方を手を動かして学びたい方 ・サーバーを使ってみたい方 ・初めてWebサーバーを学習する方 (目次) CHAPTER 1 サーバーをはじめよう   1-1 サーバーの仕事と役割を知ろう   1-2 サーバー構築に必要なものを知ろう   1-3 サーバーOSについて知ろう   1-4 サーバーの基本を知ろう   1-5 自分のパソコンにサーバーを作ろう CHAPTER 2 サーバーを構築しよう   2-1 サーバーをつくるための流れ   2-2 VirtualBoxをインストールしよう   2-3 Ubuntu Serverをインストールしよう   2-4 仮想マシンの停止と開始 CHAPTER 3 Ubuntuを操作しよう   3-1 サーバーの操作を身につけよう   3-2 ファイル操作を理解しよう   3-3 終了の方法を理解しよう   3-4 ユーザーとグループを理解しよう   3-5 ソフトウェアのインストールと更新 CHAPTER 4 Webサーバーを利用しよう   4-1 サーバーとソフトウェア   4-2 Webサーバーを立てる   4-3 Apacheをインストールする   4-4 Apacheを起動しよう   4-5 IPアドレスを確認しよう   4-6 ブラウザから接続してみよう CHAPTER 5 リモートから操作できるようにしよう   5-1 SSHでリモートから操作する   5-2 サーバー側のSSHの準備   5-3 クライアント側のSSHの準備   5-4 SSHで接続する   5-5 コンテンツを配置する   5-6 Tera TermやWinSCPでファイル転送する   5-7 ファイアウォールの設定を確認する   5-8 SSHのポートを変更する CHAPTER 6 Webサーバーの設定を変更しよう   6-1 Apacheの設定ファイルを編集する   6-2 エラーページをカスタマイズしてみよう   6-3 Webサイトへのアクセスを制限する CHAPTER 7 Webサーバーでプログラムを実行させよう   7-1 Webサーバーでプログラムを動かす   7-2 PHPの環境を整える   7-3 PHPのプログラムを作ってみよう   7-4 ページにリンクを張ったり画像を表示したりしてみよう CHAPTER 8 Webサーバーを公開・管理しよう   8-1 Webサーバーを公開するために必要なこと   8-2 レンタルサーバーを借りてログインしよう   8-3 ログを確認しよう   8-4 サーバーは正常に動いているのか確認しよう   8-5 バックアップをとろう   8-6 セキュリティに注意しよう   8-7 サーバーに関わる仕事 続きを読む
ゼロからわかるLinuxサーバー超入門 Ubuntu対応版 かんたんIT基礎講座  favicon amazon.co.jp
ゼロからわかるLinuxサーバー超入門 Ubuntu対応版 かんたんIT基礎講座

関連記事