15
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者がdoasの設定をしようとしたら、環境構築に大苦戦【FreeBSD】

15
Last updated at Posted at 2026-07-17

目次

1.はじめに
2.VirtualBoxで仮想PC作成
3.FreeBSDのダウンロード
4.freeBSD ISOイメージを読み込む
5.FreeBSDインストール
6.インストール後の設定
    6-1 パッケージの更新
    6-2 コマンドのインストール
    6-3 マニュアル確認
    6-4 viを操作して設定する
    6-5 設定の確認
    6-6 環境変数の設定
    6-7 ログを確認
7.おわりに
8.参考

おまけ eeを使ってみる

1.はじめに

ゴリゴリ文系初心者の私がVirtualBoxの設定FreeBSDのインストールコマンドのインストール・設定をおこなった際の事をまとめました。
自己学習として、雑誌の中から興味があるものをピックアップし、それを試してみるということを行いました。

SoftwareDesign2020年1月号
[特別企画]身近なセキュリティ sudoからdoasへ―――インストール、make一発、設定例までUnixスキル一挙解説 民田雅人
参考にさせていただいた記事はこちらです

しかし、参考にさせていただいた記事にすらたどり着かないところで苦戦していました。
というのも、Unix?やってみたい!コマンドのインストール?やってみたい!と思ったのはいいものの、まずは環境を作らないといけなかったからです。
そこで調べてみると、どうやらVirtualBoxなるものを用意して、そこにFreeBSDというOSをインストールする必要があるみたいです。(どっちもよく知らない)

「こんなこともわからないの」というようなポイントが大いにあると思いますが、初心者はほんとに何も知らないんだなという視点で読んでいただければと思います。ちょっとしたことでも分からなかったことはほぼ書いたので、私のようにばっちり初心者の方に少しでも参考になる部分があればいいなと思います。:blush:

2.VirtualBoxで仮想PC作成

めちゃくちゃ文系の私、もちろんはじめてVirtualBoxに触ります。
幸いなことに使用していたPCには元々VirtualBoxが入っていました。
まずは、新規を選択して、自分の使いたいように設定していきます。
……と言ってもどう設定したらいいのかも良く分かってないので調べながら設定してみました。

スクリーンショット 2026-07-09 164120.png

項目 ざっくり説明
VM名 virtual Machineの名前という意味。自分で分かりやすい名前を付けます。
OS インストールするOSを事前に教えるところです。今回はFreeBSDを使いたかったのでBSDを選び、バージョン選択のところでFreeBSDを選びました。
仮想ハードウェア 仮想のPCの性能を決めます。迷ったらデフォルトのままで問題ないと思います。私は前使っていた方のが残っていたのでそれを参考にメモリを20048MBに、CPUを2で設定してみました。
仮想ハードディスク FreeBSDというファイルの中をHDDとして使う、という事みたいです。こちらも困ったらデフォルトのままでいいと思います。これも前の人のものを参考にして16GBにしてみました。また、可変サイズの方を選ぶと必要な分だけ増えて無駄がないみたいなので、可変サイズの方を選択しました。

:bulb:設定が全部終わる前に間違ってOK押してしまったんですが、後から設定の変更ができました。便利!

これで仮想PCが作れました!

3.FreeBSDのダウンロード

仮想PCが出来たので、次はOSをインストールします。…ところで一体どうやって入れるんでしょう?
FreeBSDの公式ページに GetFreeBSDのページがあり、そこからダウンロードすることができます。
↓公式のGetFreeBSDページです。

スクリーンショット 2026-07-02 154811.png

一体どれをダウンロードしたらいいんだろう…。
ざっくり、Installerというやつが標準でOSをインストールする用、VMは仮想環境用、SDcardはSDカード用、Documentationは説明書の事みたいです。VMのほうはすぐインストールしたい人用のものです。Installerイメージを使う方が一般的なようなので、今回はInstallerの方をダウンロードしてみました。
Installerの方をダウンロードしようと決めたはいいものの、なんだかたくさん種類があります。
これらはCPUのアーキテクチャです。

アーキテクチャ
建築(物)、建築術、建築様式、構造、構成などの意味を持つ英単語。もとは建築における建築様式や工法、構造などを表す言葉だが、ITの分野では、コンピュータやソフトウェア、システム、あるいはそれらの構成要素な度における、基本設計や共通仕様、設計思想などを指すことが多い。
IT用語辞典より

つまりどれを選べばいいのか、ざっくり書きたいと思います。

アーキテクチャ ざっくり用途
amd64 一般的WindowsPC、IntelやAMD製CPUを搭載した機器
aarch64 AppleSilicon搭載Macやモバイル端末など
armv7 昔のスマホや機器に使われてた32bit版
powerpc64 PowerPC搭載機器
powerpc64le Linux系のPowerPC搭載機器
riscv64 RISC-V搭載機器、比較的新しい

今回はamd64を選択しました。

スクリーンショット 2026-07-02 162936.png

選んだ後にまた選ぶ画面が出てきました。ここではどのファイルをダウンロードするのかを選択します。
それぞれ簡単に説明します。

  • -bootonly.iso
    インストーラだけの最小のファイル。必要に応じてダウンロードをするためにネットワーク接続が必要。
  • -disc1.iso
    インストールに必要なすべてのファイルが含まれている。
  • -dvd1.iso
    インストールに必要なすべてのファイルが含まれているのに加え、インターネット接続せずにインストールできるよう、よく使われるアプリやウィンドウマネージャなどの追加ソフトウェアも含まれている。
  • -memstick.img
    USB用でインストールに必要なすべてのファイルが含まれている。
  • -mini-memstick.img
    USB用でbootonly.isoと同じくインストールファイルが含まれておらず、必要に応じてダウンロードがいる。

今回はインストールに必要なファイルが予め含まれているdiscとdvdが候補でした。
discとdvdの違いとして、dvdにはdiscの内容に加えて多くのファイルが含まれており、ファイルサイズが大きいです。
今回は追加ソフトウェアを最初から使用する予定がなかったためdiscを選択しました。
xzが付いているものは圧縮ファイルなので、今回はFreeBSD-15.1-RELEASE-amd64-disc1.iso(執筆時の最新版)をダウンロードしました。

4.FreeBSD ISOイメージを読み込む

無事にFreeBSDのページからISOイメージをダウンロードすることが出来ました。
次は、いまダウンロードしたISOイメージをVirtualBoxに読み込ませます。
VirtualBoxに戻って先ほど作成した仮想PCを選択し、設定ボタンを押します。

そうすると
スクリーンショット 2026-07-06 163450.png
こんな画面が出てきます。

ここでストレージの空のディスクを選択すると属性と情報が出てきます。
属性にある光学ドライブのところの円盤マーク:cd:を押すと、ダウンロードしたFreeBSDのISOイメージが選択できるようになっているので、これを選択してOKを押します。
これでISOイメージの読み込みは完了です!

5.FreeBSDインストール

ISOイメージが読み込めたところで、さっそくOSのインストールをしていこうと思います。
起動ボタンで起動!

VirtualBox_test20260706_06_07_一番最初の青画面.png
ようこそ~

起動をするとこのような選択画面が表示されます。
Live Systemではインストールせずに試すこともできますが、今回はインストールを選択しました。

もちろんインストール!と思ってマウスでクリックしようとしても、ここではマウスが使えません。矢印キーで移動、OKだったらエンターキーを押します。

:speech_balloon:普通にクリックしたらマウスカーソルが消えて大パニックになりました。ホストキー(右ctrl)を押すと戻るんですが、それを知らずに序盤は「PCこわれちゃった:sob:」と思いながらスマホで調べつつ進めていました。

インストールを選択すると、次はこんな画面が出ます。
VirtualBox_test20260706_06_07_青画面2.png
キーボードレイアウトを選ぶ画面です。普段使用しているキーボードに合わせて選択します。

:speech_balloon:ここで私はデフォルトでいいでしょ!と思ってデフォルトを選択しました。
しかし、どうやらデフォルトのキーボードはUS配列(英語配列。まあFreeBSDってアメリカ産らしいから当たり前か…)らしく、この後viを使った時にコロンが打てずにエディターから出られなくなるということがありました。

:bulb: 普段JIS配列(日本語配列)のキーボードを使っている場合は、ここでJapaneseを選ぶのがおすすめです。
矢印キーで上下に移動し、使いたい配列を選んでエンターキーを押します。

VirtualBox_test20260706_06_07_青画面3.png
キーボードを決めたらホストネームを決める画面に移ります。自分が分かったら何でもいいと思います。

VirtualBox_test20260706_06_07_青画面4.png
ここはインストールの方法を選ぶ画面です。
Distribution Setsの方は従来の方法で、FreeBSD16で廃止予定みたいですが15では継続して使えるので問題なさそうです。もう一つのPackagesの方は新しい方式で、FreeBSD15現在では技術プレビューとして提供されているみたいです。詳しくは公式のお知らせを見てみると良いと思います。
今回は従来の方のDistributionを選択しました。

↓公式のお知らせ

VirtualBox_test20260706_06_07_青画面5.png
ここでは追加機能(コンポーネント)を選択できます。今回はデフォルトのまま進めました。
そうすると、「ネットワークを設定して不足しているファイルをインターネットからダウンロードします」という画面が表示されます。これは、選択したコンポーネントがISOに含まれていない場合に出てくる画面です。OKを押します。

VirtualBox_test20260706_06_07_青画面8.png
ネットワークインターフェースの設定です。
Manualを選ぶと、実際にIPアドレスなどのネットワークの設定を手入力していくことになります。今回は自動で選択してくれるAutoを選択しました。

VirtualBox_test20260706_06_07_青画面9.png
次はディスク領域の割り当てです。
選択肢はそれぞれ

  • Auto(ZFS):高性能な構成を自動で設定してくれる
  • Auto(UFS):シンプルな構成を自動で設定してくれる
  • Manual:メニューからパーティションを自分でカスタマイズできる(上級者向け)
  • Shell:シェルを開いてコマンドでパーティションを自分でカスタマイズできる(上級者向け)
    今回は学習目的だったのでシンプルなUFSを選択しました。

VirtualBox_test20260706_06_07_青画面11.png
Entire Diskは「ディスク全体を使用する」という意味です。
VirtualBoxで作った仮想ハードディスクはこの学習専用で空っぽのため、Entire Diskを選択します。

VirtualBox_test202607_07_07_パーティション方式png.png
ここでは利用可能なパーティション方式を選びます。
一般的な64ビットPC(amd64)であればGPTを選んで問題ないと思います。ただ、古いコンピューターなどのGPTに対応していない環境の場合はMBRを使います。

VirtualBox_test20260706_06_07_青画面14.png
パーティション確認の画面です。
ここではパーティションの作成や削除といった設定を変更することができます。
特に変更したいところがなければ、そのままFinishを押しましょう。

VirtualBox_test20260706_06_07_青画面15.png
最終確認の画面です。変更したかったらBackで戻れます。大丈夫だったらCommitで設定を確定します。

VirtualBox_test20260706_06_07_青画面17.png
次はミラーサイトを選択します。
今いる地域と同じ地域を選ぶとダウンロードが速く終わります。矢印キーで他の地域を選択できます。
今回はJapanを選択しました。

VirtualBox_test20260706_06_07_青画面18.png
次はルートパスワードを設定します。
設定したパスワードは、rootで直接ログインする場合や、管理者権限の設定を行う際に使います。しっかりメモして忘れないようにしましょう。
上の段にパスワードを入力したら、下矢印キーで下の段を選択してもう一度同じパスワードを入力します。

VirtualBox_test20260706_06_07_青画面19.png
次はタイムゾーンを選択します。
現在自分のいる地域と同じところを選択しましょう。

Asiaを選択すると
VirtualBox_test20260706_06_07_青画面20.png
アジア地域の国一覧が沢山表示されます。
日本にいるので日本を選びます。

VirtualBox_test20260706_06_07_青画面21.png
タイムゾーンの確認画面です。
大丈夫だったらYesを選択します。大丈夫じゃないときはNoを選択しましょう。一つ前の画面に戻れます。

VirtualBox_test20260706_06_07_青画面22.png
次は日付の設定です。
矢印キーで正しい日付を選択したら、Set Dateをおします。
日付の後は時刻の設定も同じように出てきます。設定が完了したらSet Timeをおします。
別に設定しなくてもいい時はSkipでとばすことができます。

:bulb:ログを確認するときに時間が正しく設定されていないとわかりにくくなってしまうので、設定するのがおすすめです。

VirtualBox_test20260706_06_07青画面23.png
この画面ではシステムを起動したときに起動するシステムサービスを設定できます。
今回はデフォルトのままで進めました。

VirtualBox_test20260706_06_07青画面24.png
次はセキュリティオプションの設定です。
今回は自己学習目的だったので設定は変更せず、そのまま進めました。
実際に運用する環境では、用途に応じて有効にすることを検討しましょう。

VirtualBox_test202607_07_07_ユーザー追加しますか.png
次は一般のユーザーを追加するか選択する画面です。
今回はユーザーを作成するのでYesを選びます。

VirtualBox_test20260706_06_07_ロックアウトするか.png
この画面でユーザーの設定を行っていきます。ほとんどはデフォルトで問題ないです。

項目 説明・設定
Username ログインする時のユーザー名をいれます。今回は自分の名前を入力しました。
Fullname ユーザーのフルネームをいれるところです。
UID 空欄のままです。自動で設定されます。
Login group 今回はwheelにしました。空欄だとデフォルトに割り振られます。
Invite ユーザー into other groups? 他のグループに追加したいときに入力します。(例えば、管理者としてのアクセスが必要な場合、ここでwheelを入力します。)
Login class 空欄にしました。(デフォルト)
Shell デフォルトのshを選択しました。
Home directory デフォルトのまま。
Home directory permissions デフォルトのまま。
Use password-based authentication? YesのままEnter(パスワードでログインします)。
Use an empty password? NoのままEnter(空のパスワードは使用しません)。
Use a random password? NoのままEnter(自分でパスワードを設定します)。
Enter password パスワードを入力します。
Enter password again 確認のためにもう一度パスワードを入力します。
Lock out the account after creation? NoのままEnter。

:book:wheelグループについて
wheelグループに所属するとdoasやsuなどの管理者権限を利用した設定などがしやすくなります。今回doasを使用する予定があったため、wheelグループを選択しました。

:book:UIDについて
UIDはユーザーを識別する番号です。空欄にすると自動で割り当てられるので、特に理由がなければ空欄で問題ないです。

:book:shellについて
shはデフォルトのシェルですが、選択肢の中に使用したいものがあればそれを選択します。

ユーザー情報を入力すると、入力内容の確認画面が出てきます。問題がなければYesを入力して新しいユーザーを作成します。
次にAdd another user? と表示されます。ユーザーを追加する場合はYesを選びます。今回は作成しないのでNoを選びました。

VirtualBox_test20260706_06_07_最終確認の青い画面.png
最終確認の画面です。変更がある場合はここで変更できます。問題なければFinishを選択します。

VirtualBox_test20260706_06_07_最終確認青画面2.png
特に追加の設定はないのでNoです。追加の設定がある場合はYesを選択します。

VirtualBox_test20260706_06_07_リブートする?.png
これでインストールできました。インストールが終わったから Rebootで コンピュータを再起動します。
しかし、まだISOイメージを入れたままなので、再起動するたびにインストーラー画面が出てきてしまいます。
VirtualBoxの円盤マーク:cd:に設定したFreeBSDのISOイメージをはずしてから、再起動です!

:speech_balloon:何度再起動してもインストーラーが出てきてしまい悩んでいました。調べることでISOイメージを外すことは分かったのですが、その頃はマウスカーソルをホストキー(右ctrl)で復活させられることを知らなかったので、余計苦戦しました。

今回は、初めてインストールする方が「結局何を選んだらいいの...」とならないように、実際に選択した内容を中心にして書きました。
より詳しい説明などは公式の手順書にかいてあるので、そちらも参考にしてください。:smiling_imp:

6.インストール後の設定

ようやく環境が整いました!
これからログインをしてコマンドのインストール、設定を行っていきたいと思います。

6-1 パッケージの更新

早速コマンドのインストールを行います。
まずはパッケージの一覧を最新のものにします。この操作はrootで行います。

pkg update

初回実行時にはpkg自体まだインストールされていないので、インストールしていいのか聞かれます。
VirtualBox_Qiita-article-20260702_06_07パッケージアップデートトリミングライン追加.png

インストールをするかどうかの確認です。yを入力してEnterを押します。

VirtualBox_Qiita-article-20260702_06_07doasインストールトリミングライン追加1.png

Installing pkg-2.6.2_1... Extracting pkg-2.6.2_1: 100% →インストールが完了しました。
All repositories are up to date. →リポジトリ情報が最新の状態になりました。

6-2 コマンドのインストール

では次にコマンドdoasをインストールしていきます。

pkg install doas

VirtualBox_Qiita-article-20260702_06_07doasインストール2トリミングライン追加.png
Proceed with this action?→このままインストールを進めますか?と聞かれてるのでyを選びます。

VirtualBox_Qiita-article-20260702_06_07doasインストール完了ライン追加.png

インストールが完了すると次のようなメッセージが表示されます。
Checking integrity...done →完全性のチェック(破損がないかとか)をおこなっています。
(0 conflicting)→競合はありませんでした。
Installing doas-6.4... Extracting doas-6.4: 100% →インストール完了しました。
Message from doas-6.4:→doas-6.4からの、使用する際の注意点などについてのメッセージ(doasの開発者からのメッセージ的な感じ)。
To use doas,→doasを使うための注意事項のようなものが書いてあります。

これでコマンドのインストール自体は完了です!

6-3 マニュアル確認

次はmanコマンドを使ってマニュアルを確認してみます。

man doas.conf

manはmanualの略で、コマンドの使い方や設定方法を確認することができます。

VirtualBox_Qiita-article-20260702_06_07マニュアル画面ライン追加.png

こういった画面が出てきます。

項目 説明
NAME コマンドやファイルの名前です。
SYNOPSIS 設定ファイルがどこにあるか書いてあります。
DESCRIPTION 機能や動作の説明があります。

スクロールしていくとオプションを見ることができます。

VirtualBox_Qiita-article-20260702_06_07_オプション確認トリミングライン追加.png

オプション 説明
nopass パスワードを入力せずにコマンドを実行できます。
nolog 実行したログ(記録)を残しません。
persist 一度パスワード入力したら一定時間パスワードを聞かれなくなります。
keepenv 環境変数を引き継ぎます。

6-4 viを操作して設定する

マニュアルの確認が終わったところで、コマンドの設定をしていきます。
今回は、以前使ったことのあるviを使って設定をしました。
ただ、使えるテキストエディターとして、viのほかにvimやemacs、eeがあります。使い慣れたものがある場合、それを使うと良さそうです。

:speech_balloon:試しにeeも試してみましたが、個人的にはviより分かりやすかったです。特に慣れたものがなければ、eeを使用するのもいいかもしれません。(→eeを使ってみる

↓FreeBSDハンドブック

さっそくviに入ります。

vi /usr/local/etc/doas.conf

/usr/local/etc/doas.conf は、先ほどman doas.confのSYNOPSISに書かれていた設定ファイルです。

VirtualBox_Qiita-article-20260702_06_07_viの中身.png
viの中にはいれました!

:speech_balloon:viではiを押すことで--INSERT--と出ると研修で習っていたのでiを押したのですが、一向に出てこないためパニックになっていました:pensive:
しかし、INSERTの表示が出ていなくてもそのまま書き込めるようで、普通に下に追記しました。むずかしい!

doas.confに次の内容を追記します。

permit persist yukidaruma as root

(yukidarumaの部分はユーザー名に置き換えてください。)

  • permit:実行することを許可します
  • persist:一度パスワードを認証したら一定時間パスワードの再入力を省略します
  • as root:root権限で実行します

この設定ではyukidarumaがdoasを使ってroot権限コマンドで実行することが出来るようになります。また、一度認証したら一定期間はパスワードの再入力は不要になります。

設定が完了したらviを抜けましょう。:wqをすると保存&終了で抜けることができます。

:speech_balloon:私はここでキーボードをデフォルトにしていたのでコロンが打てずviに閉じ込められてしまいました。同じ境遇になってしまった方はshift + ;でコロンを入力できることがあります。

6-5 設定の確認

ちゃんとviで設定できたのか、確認してみたいと思います。

doas whoami

もし設定が上手く行っていればdoasを付けて実行したwhoamiがrootで実行されるので、rootと表示されるはずです!
パスワードを聞かれるので、ユーザーのパスワードを入力してください。

:speech_balloon:私はここでrootのパスワードを入力して失敗してしまいました。気を付けましょう…

VirtualBox_Qiita-article-20260702_06_07_whoami成功トリミングライン追加.png

ちゃんとrootが返ってきました!

idコマンドも試してみます。

doas id

VirtualBox_Qiita-article-20260702_06_07_idコマンド確認線引いた.png
uid=0(root)と表示されていることから、doasによってroot権限でコマンドが実行されているのが分かります。

6-6 環境変数の設定

次は、doasのオプションで出てきたkeepenvを試してみます。
keepenvは、現在ログインしているユーザーの環境変数を引き継ぐオプションです。
環境変数は、簡単に言うとプログラムが動くときに使う設定情報の事です。

たとえば、

  • LANG:文字コードの設定
  • PATH:コマンドを探す場所
  • USER:ユーザー名

などがあります。

まずは現在ログインしているユーザーの環境変数を確認してみました。
VirtualBox_Qiita-article-20260702_09_07_2026_11_26_30.環境についてトリミングpng.png
こうやって設定が出てきます。これはUTF-8という文字コードを使うという設定です。
これはユーザーに設定してある内容です。

doasではどうなっているのか試してみます。
VirtualBox_Qiita-article-20260702_09_07_2026_11_33_29doasの環境設定なしトリミング.png
特に何も出てきませんでした。

環境変数の設定をしてみます。
VirtualBox_Qiita-article-20260702_09_07_2026_11_40_52環境引き継ぎ入力トリミング.png
ちなみに、この環境変数だけ変えたい!の時はkeepenvの下にあるようにsetenvを使うと良いです。

ちゃんと設定できたのかもう一度同じコマンドで確認しましょう。
VirtualBox_Qiita-article-20260702_09_07_2026_11_41_43実験結果トリミング.png
ちゃんとユーザーと同じC.UTF-8が出てきました!

このように、keepenvを指定するとユーザーの環境変数を引き継いでコマンドを実行できます。

6-7 ログを確認

今までおこなってきた作業の記録がログです。
doasを使用した記録が残っているか確認するために、認証ログを見てみます。
認証ログには、ログインやdoasなど認証に関する記録が保存されています。

doas tail -10 /var/log/auth.log

これで認証ログを見ることができます。tail -10は末尾の10行見せて、という意味です。
VirtualBox_Qiita-article-20260702_09_07_2026_13_32_39ログ作成トリミング.png
ログを表示できました。
5行目ではログインの認証に失敗しているのがうつっています(入れるパスワードを間違えました)。
また、最初はtail -15で確認していたこともログに残っています。

:speech_balloon:時刻表示が20時になっていますが、実際に作業をしたのは昼頃です。インストールの際に時刻設定をスキップしたため、このような表示になってしまっています。時刻設定はちゃんとしておきましょう…。:tired_face:

7.おわりに

これでやりたかったことが一通りできました。:tada:

今回の記事では私が実際に設定した内容や、つまずいたポイントなどをまとめています。
私のようにVirtualBoxやFreeBSDに初めて触れる方の参考になれば嬉しいです!

想定よりも記事が長くなってしまいました。ここまで読んでくださって、ありがとうございました。:smile:

8.参考

SoftwareDesign2020年1月号

IT用語辞典

FreeBSDリリースアナウンス

FreeBSDのインストール

FreeBSDハンドブック テキストエディタ

おまけ

eeを使ってみる

eeのファイルを作って、編集してみます。

ee /usr/local/etc/memo.txt

VirtualBox_Qiita-article-20260702_06_07_eeお試し画面めも1.png
上に操作方法が書かれてる…!親切ですね。

メニューからヘルプ画面が開けます。
VirtualBox_Qiita-article-20260702_06_07_ヘルプページ.png
とりあえずなんか書いてみましょう。

VirtualBox_Qiita-article-20260702_06_07_eeの中に文字書く.png
出るときはescをおしてメニュー画面を開くと、一番上にleave editorがあるのでそれを選択してエンターキーを押します。そうすると、次に保存するかどうか聞かれるので、保存する場合はsave changes、しない場合はno saveを選びましょう。
ちゃんと保存されたか見てみます。
VirtualBox_Qiita-article-20260702_06_07_cat確認トリミング.png
ちゃんと保存されていました!個人的にはviよりもeeの操作の方が簡単な気がしました。

15
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?