私はひとり鯖(Mastodon)を持っていますが、Linuxの前提知識なしで建ててしまったため、何かあるとすぐパニックを起こしていました。検索をかけ出てきたコマンドを実行して事態を悪化させる、なんてことも……。
さすがにそれではマズいので「基礎から学ぼう」となり、今回のブログ記事を書いて理解を深めることにしました。
- Linuxってなに?というかUbuntuってやが入ってるけど、どう違うの?
- 雰囲気でサイトに載ってるコマンドをコピペしてた(よく理解してない)
- コマンドを打つたびにヒヤヒヤしてる
こういう人が私以外にも結構いるんじゃないかなと思い、メモを公開します。
## そもそもLinux・Ubuntuって何?
### Linuxって何?
一言でいうなら、コンピューターを動かす土台(OS)のソフトウェアの「核」です。他の製品で言うなら「Windows」や「Mac」に近いものです。
ただ、LinuxはあくまでOSの「核」なので、少し定義から外れますが……。
### ディストリビューションとUbuntu
Linuxはあくまで「核」なため、エディターやデータベースなど、コンピューターを使う上で必須なソフトウェアを別途インストールする必要があります。しかし、ソフトウェアやそれを制御するプログラムの相性を考えなければならず、相性を解決するには専門的な知識を必要とするのです。
そこで専門的な知識を持った企業や個人が、製品として使えるように全部組み合わせ、パッケージにして配布するようにしました。(ディストリビューション)その配布されているパッケージの1つが「Ubuntu」です。なので、Linuxを核にしてパッケージにして、みんなが使えるようにしたものが「Ubuntu」ということになります。
## コマンドはこわくない
UbuntuやLinuxは黒い窓でカタカタ入力していくイメージがあり「プロっぽい」「ちょっと怖い」と思ってしまいがちです。しかし、コマンドの大まかな意味を覚えておけば、自分が何をやってるか把握でき、敷居の高さも少しは緩和されると思います。
### コマンド入力画面・左側の謎の呪文(プロンプト)
```
[email protected]:~ $
```
左側の謎の呪文を1つずつ分解します。
#### hogehoge:ユーザー名
今どのユーザーでログインしているのか表示しています。
#### 192.0.2.1:ホスト名
接続しているパソコンorサーバーの名前やIPアドレスが表示されています。ちなみにこのIPアドレスはテスト用です。詳しくは下記の記事を参照してください。
- [IPアドレスの例示について](https://zenn.dev/yicr/articles/e05c7745ac0e21)
#### ~:ディレクトリ名
今自分がいる場所(フォルダーの住所、Linuxではディレクトリという)を指しています。`~`はルートディレクトリを表しています。(Windowsでいう`C:\Users\ユーザー名`)
#### $:ユーザーの権限
- `
:一般ユーザー
- `#`:管理者
この箇所でユーザーの権限を見分けます。rootユーザーはすべての権限が与えられているので、'#'で表示されます。
### 右側の呪文は何してるんだろう(コマンド)
```
sudo useradd -g saru
```
ブログなどで出てくるこのコマンドも、1つ1つ分解していくとそんなに複雑なことをしていません。
#### sudo:一時的に管理者権限になる
一般ユーザーだと権限が無くて実行できないコマンドがあります、そのため、一時的に管理者権限者として実行するようにします。
#### useradd:コマンド
コマンドのメインである命令文です。こいつを変えることで実行する命令を変えることができます。
#### -g:オプション
コマンドの動きを追加・変化させるスイッチです。オプションが無くても動きますが、これを追加することで命令をより細かくするという感覚で覚えておけばOK。
### saru:引数
コマンドに操作対象や文字列を教えるためのものです。
例として「どのディレクトリーにいくのか?」「何を入力すればいいのか?」などをここで設定し、コマンドに返します。
## 参考書籍・サイト
- [IPアドレスの例示について](https://zenn.dev/yicr/articles/e05c7745ac0e21)
- [そろそろ常識? マンガでわかる「Linuxコマンド」](https://www01.hanmoto.com/bd/isbn/9784863543461)
- [コマンドラインの黒い画面が怖いんです。](https://www01.hanmoto.com/bd/isbn/9784798182292)
- [Linuxコマンドポケットリファレンス](https://www01.hanmoto.com/bd/isbn/9784774174044)
個人的には「マンガでわかるLinux→コマンドラインの黒い画面が怖いんです→コマンドリファレンス」の順番で読むことをおススメします。最初に漫画でざっと理解し、その次に「コマンドラインの黒い画面(以下略)」を読んで実験環境の構築を行い、Linuxコマンドリファレンスを片手にコマンドを打つ形です。
ネットで出てきたコマンドの意味を調べるだけでも、自分が何をしようとしているのか把握できるので常備しておくと吉。これで黒い画面も怖くなくなる……はず。