なぜLinuxか
Linuxはとても沢山の企業で使用されているサーバーOSです。
サーバーサイドのエンジニアをしていてLinuxの設定をする局面はとても多いです。
Linuxの技術を身につけることでサーバーサイドエンジニアをして活躍できる場面が増えます。
Linuxのディストリビューションは何を選ぶか?
LinuxにはLinuxカーネルということばがあります。LinuxカーネルはLinuxOSのコアな部分です。
ただしLinuxカーネルだけでは機能がすくなすぎるため、開発者がそれぞれのソフトウェアを組み合わせてLinuxOSを作っています。これをLinuxディストリビューションと言います。
Linuxディストリビューションは沢山の種類がたくさんあります。
WindowsやMacOSのように一種類ではなくディストリビューションという様々な種類が出ています。
- Red Hat
- Rocky Linux
- Alma Linux
- Ubuntu
- Linux mint
- MX Linux
- KALI
今回は数あるなかからとても一般的なUbuntuを使用していきます。
私は使用していないノートパソコン1台にUbuntuデスクトップ20.04をインストールしました。
Linuxの勉強用にしたいと思います。
*WindowsやMacご利用の方はUbuntuをVirtual Boxなどにインストールしてご利用ください
まずはアプリケーションのアップデート
Ubuntuの使用を開始したらまずはアプリケーションのアップデートを実施していきます。
ターミナルを開くショートカットは「ctrl」+「alt」+「t」です。
ターミナルを開いたら以下のコマンドを実行します。
sudo apt update
実行後にログインパスワードを求められるので入力します。
ちなみに「sudo」とはroot権限(管理者権限のようなもの)です。
sudo apt full-upgrade
Terminatorインストール
Ubuntuの初期のターミナルはBashが入っています。
CUIでの操作が欠かせませんが、ここでTerminatorというより便利な機能がついたターミナルをインストールして使います。
sudo apt update && sudo apt install terminator
Terminatorのインストールが完了したら起動します。
ターミナル上で右クリックから設定を選択することで様々な変更ができます。
「プロファイル」から「色」を選択することで色の設定をすることなどができます。
ターミナル上で右クリックをして分割を選択することで同時に2つのターミナルを表示させることもできます。
Pingをうってみる
windowsなどのようにpingを実行したいと思います。
GoogleのDNSサーバーである「8.8.8.8」へpingを飛ばしてみます。
ping -c 1 8.8.8.8
「-c 1」はpingを飛ばす回数を定義しています。
-c はオプションでもし「-c 1」を設定しないで以下の様なコマンドを実行すると中止するまでずっとpingを飛ばし続けます。
ping 8.8.8.8
cはcountの略称で、あらかじめpingを実行する回数を決めることができます。
オプションて覚えないとだめ??
Linuxには沢山のコマンドがあり、また多くのオプションがあります。そのすべてのオプションを覚えるのは不可能です。
Linuxではオプションを調べる方法があります。
それは「man」コマンドです。manualのmanです。
manの後にオプションを調べたいコマンド名を入力することでオプションを調べることができます。
man ping
コマンドを実行すると、指定したコマンドのマニュアルが表示されます。
マニュアルが長いと一部しか表示がされないため、スペースを押して表示範囲を広げていきます。
manコマンドでキーワードを検索したい
以下のようにスラッシュとキーワードを入力することでマニュアルの中からキーワード検索をすることができます。
以下のコマンドでは「sort」に一致する文字を探してくれます。
/sort
次の検索一致文字へ進むには「n」を押して、一つ前に戻るには「shift」+「n」を押します。
最も使用される検索は、、、
「このオプションコマンドは何に使用しているだろう?」と思い、調べたいことが多いと思います。
たとえば「ping -c 3 8.8.8.8」という表示があれば「-c」は何かということを調べたい。
その場合はmanコマンドを開き、「shift」+「g」で一番最後まで飛びます。
そして以下のように検索します。
?-c
すると「-c」オプションの説明を見ることができます。
コマンドには様々なtypeがある
以下の3つのコマンド結果はそれぞれ異なるものです。
type cd
▶︎cdはシェル組み込み関数です
type ls
▶︎lsは〜〜のエイリアスです
type ping
▶︎pingはハッシュされています(usr/bin/ping)
cdのように「シェル組み込み関数です」と表示されたものはhelpコマンドでマニュアルがみれます。
help cd
そして代わりに「man cd」というコマンドでマニュアルは表示できません。
--helpコマンドならいずれにも使える
cd --help
ping --help
--helpオプションはいずれのコマンドのマニュアル表示にも使用することができます。
ifconfigでネットワーク情報を確認しよう
windowsでipconfigを使用している人は多いと思います。Ubuntuでは「ifconfig」でネットワーク上を見ることができます。
ただし、使用するには専用のソフトウェアのインストールが必要です。
sudo apt install net-tools
インストールが完了したから以下のコマンドを実行します。
ifconfig
これでネットワーク情報を見ることができます。
やりたいことからコマンドを見つける
やりたいことからコマンドを逆引きしましょう。
例えば以下の例ではファイルを削除するコマンドが見つかります。
man -k "remove file"
やりたいことを"(ダブルクオーテーション)で囲むことでコマンド検索をすることができます。
ターミナルの入力はTABキーでミスを減らそう!
TABはターミナルの入力を補完してくれる重要な機能です。
例えば「ifconfig」を入力する際に「ifc」まで入力してTABを押すと入力を補完してくれます。
複数ある場合は候補を表示してくれます。
catコマンドでファイルの中身をみよう
catコマンドはファイルの中身を表示してくれるコマンドです。
catを利用してファイルの中身を見てみたいと思います。
このファイル名を入力するときもTABで入力補完をしながら入力することでミスを減らせます。
cat /etc/passwd
lsコマンドでは -alオプションを一緒に使おう!
ディレクトリ内のファイルおよびディレクトリ一覧を表示するlsコマンド。
便利でとてもよく使いますが、-alオプションをつけると隠しファイルやファイルの所有者や権限が見れるのでとても便利です。
絶対覚えたいLinuxショートカットキー
ターミナルの一覧を綺麗にしたいとき、「clear」を入力するのも手ですが以下のショートカットキーが便利です。
ctrl+l
ターミナルを閉じるときは「exit」も良いですが以下のショートカットキーをぜひ使いましょう。
ctrl+d
カーソルを一番左に持っていくショートカットキー。以前入力した内容を引用したいときに便利!
ctrl+a
逆にカーソルを一番右に持っていくショートカットキーはこちら
ctrl+e
処理を中断させるのはこちら
ctrl+c
現在のラインを消すのはこちら
ctrl+u
コマンドの履歴を見よう
コマンドの履歴を見るには以下のコマンドを使用します。
history
historyコマンドを実行するとそれぞれのコマンドに番号がついて表示されます。
この番号を引用してコマンドを実行することができます。
例えば10番目のコマンドを実行する場合には以下の様にコマンドを実行します。
!10
前回のコマンドを実行したいときには以下の様に入力して実行することができます。
!!
履歴に残したくないコマンドはスペースからはじめる!
頭にスペースを入れてコマンドを実行すると履歴には表示されなくなります。
履歴で重複を表示しなくないとき
履歴を見るときにきれいなデータであってほしいものです。
重複で使用したコマンドを表示しないようにすることができます。
HISTCONTROL=ignoredups
このコマンドを実行することで重複を表示しなくなります。
しかしこの設定は再起動をすると消えてしまいます。
消えないように設定をファイルに保存します。
echo "HISTCONTROL=ignoredups" >> .bashrc
historyに時間を追加しよう
historyでコマンド履歴を見たときにそのコマンドをいつ実行したのかがわかればより便利になります。時間を設定する方法を見ていきます。
以下の設定をすることでhistoryコマンドを実行したときにコマンドの左に日時が表示されるようになります。
HISTTIMEFORMAT="%y/%m/%d %T "
この設定も再起動したら消えてしまわないように設定ファイルに保存をしておきます。
echo 'HISTTIMEFORMAT="%y/%m/%d %T "' >> .bashrc
記録されたことを確認するには以下のコマンドを実行します。
cat .bashrc