iPadに開発環境を構築してみるテスト

はじめに

必要なもの

AWSインスタンスへの接続

pemファイルをスマホに送る
インスタンスを作るときにpemファイルをダウンロードしたと思います
(してなかったら、pemファイルは一回しかダウンロードさせてくれないのでインスタンスを作り直しましょう)
このpemファイルをPCのエディターで開き、内容をテキストファイルにペーストします。
このファイルをLINEなりメールなりGoogleドライブなりでスマホに送ります。

pemファイルをTermiusで読み込みます

アカウントの作成

rootでの作業でも良いのですが、一般論としてここではアカウントの作成から説明します。

まずは、サーバーに接続します。

centos$ 

いわゆるrootでログインした訳です。
ここでユーザー名 suzuki を追加します。

centos$ useradd suzuki

さらに suzuki のパスワードも設定します。

centos$ passwd suzuki

パスワードは2回同じ入力を求められます
では rootからsuzukiにアカウントを切り換えます。
ユーザーの切り替えは su コマンドを使います。

centos$ su suzuki
パスワード:
suzuki$ 

suzukiに切り替わりました。
自分自身がどこにいるのかを確認します。
カレントディレクトリの確認は pwd コマンドを使います。
ディレクトリの移動は cd コマンド
ホームディレクトリは ~ で表します。
ホームディレクトリへの移動は cd ~ となります。

centos$ pwd
/home/centos
$ cd ~ 
$ pwd 
$ /home/suzuki
$

~/.bashrc の修正

ここでは ~/.basrcファイルを修正します。
まず、~/.basrc ファイルのバックアップをとります。
ここではファイル名先頭のピリオドを落として ls コマンドで見えるようにしておきます。

$ cp ~/.bashrc ~/bashrc.bak

では、~/.bashrc を vimで開いて編集します。

$ vim ~/.bashrc
# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# ターミナルの表示
export PS1="bash-\v$ " ;
# 基本言語フォーマットをUTF-8へ
export LANG="ja_JP.UTF-8" ;

# User specific environment and startup programs
alias rm='rm -i' ;
alias cp='cp -i' ;
alias mv='mv -i' ;
# grepとls のカラー表示
alias grep='grep --color=auto' ;
alias ls='ls --color=auto' ;
# screen
alias s='screen -RR' ;
# Github ディレクトリへ移動
alias g='cd ~/GitHub' ;

編集が終わったら ~/.bashrc を再読込します。
Linux での再読込は . です

$ . ~/.bashrc
$ 

では GitHub にある様々なディレクトリを格納する Githubディレクトリを作成します。

$ mkdir GitHub
$ 

以降の github プロジェクトは今作成した GitHub ディレクトリ以下に作成します。

ターミナルの入力で大文字と小文字を区別せずに補完する


# 大文字小文字を区別しない
set completion-ignore-case on
# 以下日本語入力の必要がある場合に必要(なくてもよい)
set input-meta on
set output-meta on
set convert-meta off
set meta-flag on

編集が終わったら ~/.inputrc を再読込します。
Linux での再読込は . です

$ . ~/.inputrc
$ cd ~
$ pwd
/home/suzuki
$ g
$ pwd
/home/suzuki/GitHub
$
ヒント
~/.inputrc を root ユーザーになって /etc/inputrc に追記するとすべてのユーザーが大文字小文字を区別することなくターミナルで補完することができます。

screen のインストール

screen はターミナル内で複数の仮想ターミナルを起動して使うことができる画面管理ソフトです。
メリットは、

  • ターミナルウインドウのタブを複数作成し、ここのタブでサーバーにログインする必要がないので、不要なセッションを作らなくてすむ。
  • 開いていた端末の状態を保持しておける。
  • 回線が切れる、スタンバイなどのセッション切れでもレジュームされる。
  • 一つの画面をさらに分割できるので、複数端末でログ監視したいときなどに超便利。

まずはscreen がインストールされているのかの確認します。

$ screen -v
Screen version 4.08.00 (GNU) 05-Feb-20
$

インストールされていれば以下の作業はする必要がありません。
インストールされていなければ、yum コマンドでインストールして下さい。

$ sudo  <sudo で rootになります>
#       <rootになると # になります>
# yum -y install screen
読み込んだプラグイン:fastestmirror
base                                                                                                                           | 3.6 kB  00:00:00
extras                                                                                                                         | 3.4 kB  00:00:00
updates                                                                                                                        | 3.4 kB  00:00:00
(1/2): extras/7/x86_64/primary_db                                                                                              | 115 kB  00:00:00
(2/2): updates/7/x86_64/primary_db                                                                                             | 2.2 MB  00:00:00
Loading mirror speeds from cached hostfile
 * base: ftp.iij.ad.jp
 * extras: ftp.iij.ad.jp
 * updates: www.ftp.ne.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

======================================================================================================================================================
 Package                      アーキテクチャー             バージョン                                                リポジトリー                容量
======================================================================================================================================================
インストール中:
 screen                       x86_64                       4.1.0-0.23.20120314git3c2946.el7_2                        base                       552 k

トランザクションの要約
======================================================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 552 k
インストール容量: 914 k
Downloading packages:
screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64.rpm                                                                           | 552 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64                                                                      1/1
  検証中                  : screen-4.1.0-0.23.20120314git3c2946.el7_2.x86_64                                                                      1/1

インストール:
  screen.x86_64 0:4.1.0-0.23.20120314git3c2946.el7_2

完了しました!
$
# rootからsuzukiにアカウントを切り換えます
$ su suzuki
# screenコマンドがどこにインストールされているのかを確認します。
$ which screen
/usr/bin/screen
$

screenrc の修正

screenコマンドをさらに便利にするために screenrc ファイルを修正します。

# ユーザーをroot から suzuki に変えます。
$ su suzuki
$

以下を ~/.screenrc として作成して保存します。


# Ctrl + z で screenの操作モードへの切り換え
escape ^Zz
# スクロールバッファを大きくする
defscrollback 10000
# ステータスバーをカスタマイズ
hardstatus on
hardstatus alwayslastline '%{= kw}%02c:%s %{= .y}%H %L=%{= .b}%-w%46>%{= .r}%n %t*%{= .b}%+w%-16=%{= .y}[%l]'
# スタートメッセージを表示させない
startup_message off
# ビープを鳴らさない
vbell off
#termの設定
term ansi
bind r
bind ^r
#

上記 ~/.bashrc の修正で、screenコマンドの呼び出しを s にしています。


# screen
alias s='screen -RR' ;

ですので、ターミナルからは s だけで screen -RR コマンドを実行したことと同じになります。

# screenの起動
$ screen 
# screenの終了
$ exit
$
# screenの起動
$ s
# screenの終了
$ exit

~/.bashrc にエイリアスを作成していなければ screen で起動しますし、~/.bashrcにエイリアスを作成していれば(ここでは「s」) $ s で一発起動します。screenを抜けるときは「exit」です。

screen を使ってみます

  • screen の起動(screen)
    まず screen を起動しなくては始まりません。 ログインしたターミナルで「screen」と打てば screen が起動します。 screen から抜けるには普通にログアウトするように 「exit」 や [Ctrl+d]で抜けられます。

  • 新しいウィンドウを開始する([Ctrl+c])
    「[Ctrl+c]」で新しいウィンドウを開始できます。 幾つでも作れます。 不要になったウィンドウは 「exit」 や [Ctrl+d] で消せます。

  • 次のウィンドウに移動する([Ctrl+n])
    開いている隣のウインドウに移動します。カスタマイズした~/.screenrcを使っている人はステータスバーで確認できて便利です。

  • 詳しくはこちら
    Linux screenコマンド使い方

ヒント
screen は王者のコマンドです。プログラマーの多くはローカルのターミナルでタブを作成します。screen はサーバー上で仮想端末を作成します。screenはvim同様、プログラマーを選びます。Linuxを語るなら vim と screen そして bash の習熟が必須なのです。

sudoユーザーを追加する方法

sudoユーザーに追加していないユーザーでsudoコマンドを実行すると、

$ sudo less /etc/passwd
[sudo] password for suzuki: 
suzuki is not in the sudoers file.  This incident will be reported.

こんな事を言われます。
ということで、ここでは特定のユーザー(ここでは「suzuki」)がsudoコマンドを実行できるようにします。

/etc/sudoers ファイルにユーザーを追加します。

まずはrootユーザーになります。

ユーザーsuzuki をぬけてrootになります。

$ exit

現在のグループを確認します。

# sudo vim /etc/sudoers

以下の記述があれば wheelグループに suzukiを追加すればよいです。


## Allow members of group sudo to execute any command
%wheel   ALL=(ALL:ALL) ALL

ではまず現状を確認します。

# cat /etc/group | grep suzuki

sudoのグループ(centosなら wheel) に suzuki を追加します。

# sudo usermod -G wheel suzuki

確認します。

# cat /etc/group | grep suzuki
wheel:x:10:suzuki
suzuki:x:1001:
#

これで、ローカルアカウント suzuki で、必要に応じて sudoコマンドをつかって安全に作業することができるようになりました。

ヒント
当たり前の話ではありますが、root で作業するのはやめましょう。必要に応じて $ su すればよいのです。Linux/Unixとはそういうものなのです。

書籍の紹介

パソコンは不要。スマホ、タブレットでできるブログ投稿

パソコンは不要。スマホ、タブレットでできるブログ投稿

第1回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(1)

第1回 pythonでNQueen(エイトクイーン)ブルートフォース 力任せ探索(1)