N予備校「プログラミング入門 Webアプリ」を受講しています。
今回は第2章7節~9節の内容になります。
通信
コマンド
tcpdump : TCPやUDPで行われる通信のパケット内容を見る
curl : 第一引数に指定されたURLにアクセスしコンテンツを取得する
ping : ネットワーク疎通を確認したいホストに対して、パケットが届くかどうか、またはその応答時間を調査する
通信方法
回線交換方式 : 相手との通信を始める前に回線の占有を行う。
パケット交換方式 : 情報を細かくパケット単位に分割して送信する。
電話は回線交換方式、インターネットはパケット交換方式。
プロトコル
TCP : 確実に送信するために通信コストがかかる。
UDP : 転送効率を重視。
プロトコルに関しては別の講座があるみたいなのでそっちで勉強しようかな。
tmux
仮想端末ソフト。複数のウインドウを開くことでコンソールを操作できる。特にインストールは必要なくtmuxと打てば使える。
tmux a : アタッチ 再接続する
tmux ls : 現在開いてるtmuxを確認する
tmuxコマンド
[ctrl + b] + d : デタッチ 元の画面に戻る
[ctrl + b] + c : 新しいウインドウを作成
[ctrl + b] + ページ番号 : 指定したウインドウを表示
[ctrl + b] + x : ウインドウを閉じる
[ctrl + b] + ? : tmux ヘルプ
慣れるまで大変かも。
その他コマンド
ncコマンド : NetCat。TCPやUDPの読み書きを行う。
telnetコマンド : リモートのコンピューターにアクセスしてターミナルのセッションを開始する。
bash シェル
シェル : LinuxOSのカーネルを包み込み、OSと対話する機能
touch my-first.sh でshファイルを作成
touch : 引数で渡された名前のファイルが存在しなかった場合には、空ファイルを作成。存在した場合には、そのファイルやディレクトリの更新日時を更新する。
#!/bin/bash
ls
date
echo メッセージを入力してください。
read message
echo 入力されたメッセージ: $message
改行コードは「LF」にすること
シバン(shebang)
#!/bin/bash
このシェルスクリプトを /bin/bash にある bash シェルで実行してほしい、という記述
権限
chmod a+x
a: すべてのユーザーに
+: 指定した権限を付与する
x: 実行
コマンド
echo : 第一引数で与えられた文字列をそのまま標準出力に出力。
read : 第一引数で与えられた名前の変数に、標準入力で与えられた文字を代入する。
read コマンドは、 -p "表示したい文字列" というオプションをつけることで文字を表示しながら入力を変数に受け取る。
shファイルの実行
実行するためには、./を含んだ相対パスで実行する必要がある。
./ を付けずに実行できるのは、どのディレクトリにいる時にも共通して使えるように設定した、特定のディレクトリ内にある実行ファイルのみ。たとえば /bin ディレクトリにある実行ファイルは、コマンドとして使うことができる。
if文
#!/bin/bash
read -p "日本で二番目に高い山は槍ヶ岳でしょうか? [y/n]" yn
if [ $yn = "n" ]; then
echo 正解です。日本で二番目に高い山は北岳です。
else
echo 不正解です。日本で二番目に高い山は北岳です。
fi
[] と変数、演算子 の間には必ず半角スペースを入れること
for文
#!/bin/bash
read -p "テンプレートディレクトリのディレクトリ名を入力してください" dirname
mkdir $dirname
#mkdir ./$dirname/1
#mkdir ./$dirname/2
#mkdir ./$dirname/3
for ((i=1 ; i<4 ; i++))
do
mkdir ./$dirname/$i
done
for文の記述は自分で調べました。
参考
シェル変数はすべて文字列扱いであるため、数値計算のためには専用のコマンドを用いる必要がある。
まとめ
ネットワークに関しては別で本を読んだほうがいいかもしれない。何かお勧めがあれば教えてください。
bashシェルはもっといろんなことができそうでわくわくします。
↧