20200814のLinuxに関する記事は8件です。

Windows ServerとフリーのLinuxと商用Linuxの比較

サーバーOSである「Windowsサーバー」、「フリーのLinux」、「商用Linux」の3つを比較してみた。

Windows Server 商用Linux フリーのLinux
初期費用 ×
運用の手間 ×
ネットでの情報の探しやすさ

初期費用について

  • Windows ServerはOSのライセンス料に加えて、クライアントまたはユーザー数分のCAL(Client Access Licenseの略で、クライアントからWindows Serverの利用を許可するためのライセンスのこと)の費用が重くのしかかってしまう。

  • 商用Linuxは、サーバーライセンスの料金が必要とはいえ、年間サポートの保守料金を加えてもWindowsほどではないことが多い。

  • フリーのLinuxは、初期投資は必要なく自分の力で始められることが魅力である。

運用の手間について

  • 初期費用とほぼ反比例する。

  • Windows Serverは使い慣れたWindowsベースで作業できるので、運用が比較的簡単であることが多い。

  • 商用Linuxは有償サポートの契約をしていれば、運用にそれほど困ることはない。

  • フリーのLinuxは自己責任で利用するOSなので、基本的には何が起きても自力で解決することが求められる。運用にはそれなりの手間やコストがかかる。

ネットでの情報の探しやすさについて

  • Windows ServerはMSDNやTech NETというドキュメントライブラリを参照できるので、フリーのLinuxほどではないが、それなりの情報量を確保できる。

  • 商用Linuxは、OSの提供元であるディストリビューターの情報がそれほど多くないので、フリーのLinuxユーザーの知見もある程度参考になることから、Windows Serverと同じ程度という評価である。

  • フリーのLinuxが強みを発揮する。無償で利用できるので様々なユーザーが活用しており、それぞれの知見を簡単に探し出せるというメリットがある。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【学習メモ】Linux標準教科書(第1章〜第6章)

はじめに

初学者が何より理解すべき、Linuxについて、『Linux標準教科書(PDF)』を読んだ要約をアウトプットします。今回は前半の第1章〜第6章まで。

第1章 Linuxとは

・基本ソフトウェア:コンピュータシステム全般を管理するソフトウェア
・応用ソフトウェア:特定の目的に応じて開発されたソフトウェアの総称(表計算ソフト、ワープロソフトなど)
・広義のLinux=[ハードウェア]+[カーネル]+[応用ソフトウェア]
・狭義のLinux=[カーネル]
・カーネル:OSの中核で、ハードウェアと直接やりとりする機能を持つ部分
・ユーザランド:OSが動作するのに必要なカーネル以外の部分
・シェル(殻):対話型のコマンド入力環境。入力されたコマンドを理解→実行
・応用ソフトウェア導入には、複数の応用ソフトウェアや、動作を補足するライブラリが必要な場合がある。依存するプログラムがさらに別のプログラムに依存しているとなると、正しい場所に正しい順序でインストールしないといけない。

第2章 Linuxのインストール

macOSでデフォルトでインストールされているので、省略

第3章 基本的なコマンド

・目的に応じた基本コマンドとオプションの紹介
※実際のコマンドは他Qiitaでたくさん出るため、オプション中心に紹介

一覧の確認

ls [オプション] [ファイル名]:一覧取得
-a:.で始まる隠しファイルも全て(All)出力
-l:長(Long)形式で出力
-t:最終更新時間(Time)でソートして出力
-r:逆順(Reverse)にソートして出力
# ソートとは、一定の基準で並べ替えること

・lsコマンドの結果からさらに絞り込む場合、ワイルドカード(=全てのパターンにマッチする文字列)を使用可能。例えば、.etcディレクトリ内の「conf」ファイルを絞り込んで表示させるにはこのように記述
・なお、文字数が明確である場合、「?」を使用

$ cd /etc
$ ls *.conf
Trolltech.conf
ntp.conf
(※あくまで一例です)
$ ls hosts.*
hosts.allow hosts.deny
$ ls hosts.????
hosts.deny

ファイルのコピー

cp [オプション] コピー元 コピー先
-i:処理を行う時に確認をする。コンピュータが確認のための問い合わせをする。誤って上書きコピーされるのを防ぐ目的で使用

-r:ディレクトリをコピー。基本cpはファイルをコピーする機能のみだが、-rをつけるとディレクトリ内の全てのファイル・ディレクトリに対してコピー可能

-p:元ファイルの情報を保存。古い情報を保持したままコピーを作成したい場合につける。

ファイルの移動

mv 移動元ファイル 移動先ファイル
-i:処理を行う時に確認をする。コンピュータが確認のための問い合わせをする。誤って移動されるのを防ぐ目的で使用
-f:強制的に実行。一部の処理では、確認の問い合わせがあるが、それを無視して実行するというもの
▶️チーム開発で無闇に処理しないよう注意

ファイルの削除

rm ファイル名
-i:確認の問い合わせ
▶️informationの略ですね?
-f:強制実行
-r:ディレクトリ+ディレクトリ内のファイルやディレクトリを対象に削除

ディレクトリの操作(pwd,cd,mkdir,rmdir)

pwd:現在どの位置にいるか表示する(Print Working Directoryの略)
cd [ディレクトリ名]:移動

mkdir [ディレクトリ名]:作成
オプション
-p:指定されたディレクトリの上位ディレクトリも作成
$ mkdir dir1/dir2/dir3

rmdir [ディレクトリ名]:削除
-p:指定された階層までのディレクトリを一括削除
(オプション付けなかった場合、最下層のディレクトリのみ削除)
**※対象とするディレクトリ内は空でないといけない**
$ rmdir directory/
rmdir: failed to remove 'directory/': ディレクトリは空ではありません
$ rmdir -r directory/
(rm -rを実行)で削除可能

特別なディレクトリ

名称 機能
カレントディレクトリ(.) 現在いるディレクトリ
親ディレクトリ(..) 1階層上のディレクトリ
ホームディレクトリ (~) ユーザの作業開始位置となるディレクトリ
ルートディレクトリ(/) ディレクトリ階層の最上位階層

絶対(パス)指定と相対(パス)指定

カレントディレクトリが/usr/localであるとする、この時、/usr/bin/xxxのファイルを指定するには2通りの方法がある。

  1. /usr/bin/xxx
  2. ../bin/xxx

1.は最上位のディレクトリ(/)からディレクトリ・ファイル名を指定している。この方法を絶対(パス)指定という
2.は「自分がいる位置から見て」指定。この方法を相対(パス)指定という

ファイルの内容を表示(cat)

cat [ファイル名]
-n:行番号を付加して表示

ページャを使った表示

catコマンドでファイルの中身を表示する際、行数がたくさんあると表示が流れてしまう。たくさんの行があっても画面制御を行いスクロールを途中で止めてくれる機能をページングといい、それを表現するのをページャという。

more [ファイル名]
less [ファイル名]

できることかなり多いのと、実務ではless多めならしいので参考記事のみ紹介。
参考記事:Linux コマンド2 (cat,grep)

その他知った方が良さそうなこと

find パス -name [ファイル名]:ファイルの検索
man [cpやlsなど]:[]内のコマンドに対するマニュアルを表示する

第4章 正規表現とパイプ

・標準入出力:Linuxのプログラム(=コマンド)には、「1つの入り口と2つの出口」がある・。それぞれ標準入力、標準出力・標準エラー出力という。特にコマンドを実行した結果が画面上に表示されることを「標準出力に出力された」と表現する。

ファイルの中からデータを検索(grep)

grep [オプション名] 検索条件 [指定ファイル]
オプション
-e:文字列を検索パターンとして扱う
-i:検索パターンと入力ファイルの双方で、英大文字と小文字の区別をしない
-v:検索パターンとマッチしなかった行を選択する
記号 意味
^ 行頭を表す
$ 行末を表す
. 任意の一字を意味する
* 直前文字の0回以上の繰り返し処理を意味する
[...] ..のなかの任意の一字を意味する
[^...] ..の文字が含まれないことを意味する
¥ 正規表現の記号をエスケープする

第5章 基本的なコマンド2(テキストファイルの処理で便利)

ファイルのタイムスタンプの変更(touch)&ファイルの作成

・タイムスタンプ:ある時刻にその電子データが存在していたことと、それ以降改ざんされていないことを証明する技術。タイムスタンプに記載されている情報とオリジナルの電子データから得られる情報を比較することで、タイムスタンプの付された時刻から改ざんされていないことを確実かつ簡単に確認できる。

$ ls -l
total 8
-rw-r--r--  1 user  staff  81  8 10 23:01 dockerfile
$ touch -t dockerfile
usage:touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
# -tオプションつけて、日付、時間、対象ファイルの順番でコマンド打ってね
$ touch -t 08142033 dockerfile 
$ ls -t
dockerfile
$ ls -l
total 8
-rw-r--r--  1 user  staff  81  8 14  2020 dockerfile
$ touch test.md
# 新規ファイルが作成される
$ ls
dockerfile  test.md

ファイルの一部を取得(head,tail)

head [オプション名] ファイル名
tail [オプション名] ファイル名
-n(行):先頭から指定した行を標準出力
-c(バイト):先頭から指定したバイト分を標準出力

テキストファイルのソート(sort)

sort [オプション] ファイル名
オプション名
-r:逆順でソートする
-k n:n列目のデータをソートする
-n:数値としてソートする

ファイルの比較(diff)

diff [オプション] ファイル1 ファイル2
オプション
-c:context diff形式で差分を出力
-u:unified diff形式で差分を出力

第6章 vi エディタ

・vi:ページャであり、エディタでもある。ファイルの開閉とファイルの保存と終了その他操作可能。

コマンド 処理内容
vi [ファイル名] ファイルを開く
:q ファイルを閉じる
ESC+:w 変更内容が書き込まれる
ESC+:wq 変更内容の書き込み+保存して終了
ESC+:q! 保存せず強制終了

イメージ

$ vi test.rb
ken ryu 80
keiko oka 40
hajime chan 100
~
~

インサートモードとコマンドモード

・viエディタを起動すると、コマンド入力するコマンドモードでファイルが開かれる。文字列を打ち込むには、iコマンドもしくはaコマンドなどでインサートモードに切り替える必要がある。

カーソル移動

行番号 指定した行番号へ移動
G ファイルの末尾
h 左へ1文字
j 下へ1文字
k 上へ1文字
l 右へ1文字
w 次の単語へ
0 行の先頭
$ 行の末尾

文字のカット・アンド・ペースト

x 1文字削除
dd 1行削除
yy 1行コピー
nyy n行コピー
p カーソルの文字の次または次の行にペースト
P カーソルの文字の前または前の行にペースト
u カット、ペーストを1回取り消し

置換と検索

/検索文字列 文字列の検索
n 下方向へ再検索
N 上方向へ再検索
:対象の行 s/検索文字列/置換文字列/オプション 文字列を置換する

文字列の置換

:ns/old/new n行目の最初のoldをnewに置換して終了
:ns/old/new/g n行目の全てのoldをnewに置換して終了
:%/old/new/g ファイル全体の検索語句を置換
:%/old/new/gc 置換の度に確認を求める

参考資料

Linux標準教科書
ブクマ必至!Linuxコマンド一覧表【全33種】
viコマンド
なぜ、IDEじゃなくてVimを使うか。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【読書メモ】Linux標準教科書(第1章〜第6章)

はじめに

初学者が何より理解すべき、Linuxについて、『Linux標準教科書(PDF)』を読んだ要約をアウトプットします。今回は前半の第1章〜第6章まで。

第1章 Linuxとは

・基本ソフトウェア:コンピュータシステム全般を管理するソフトウェア
・応用ソフトウェア:特定の目的に応じて開発されたソフトウェアの総称(表計算ソフト、ワープロソフトなど)
・広義のLinux=[ハードウェア]+[カーネル]+[応用ソフトウェア]
・狭義のLinux=[カーネル]
・カーネル:OSの中核で、ハードウェアと直接やりとりする機能を持つ部分
・ユーザランド:OSが動作するのに必要なカーネル以外の部分
・シェル(殻):対話型のコマンド入力環境。入力されたコマンドを理解→実行
・応用ソフトウェア導入には、複数の応用ソフトウェアや、動作を補足するライブラリが必要な場合がある。依存するプログラムがさらに別のプログラムに依存しているとなると、正しい場所に正しい順序でインストールしないといけない。

第2章 Linuxのインストール

macOSでデフォルトでインストールされているので、省略

第3章 基本的なコマンド

・目的に応じた基本コマンドとオプションの紹介
※実際のコマンドは他Qiitaでたくさん出るため、オプション中心に紹介

一覧の確認

ls [オプション] [ファイル名]:一覧取得
-a:.で始まる隠しファイルも全て(All)出力
-l:長(Long)形式で出力
-t:最終更新時間(Time)でソートして出力
-r:逆順(Reverse)にソートして出力
# ソートとは、一定の基準で並べ替えること

・lsコマンドの結果からさらに絞り込む場合、ワイルドカード(=全てのパターンにマッチする文字列)を使用可能。例えば、.etcディレクトリ内の「conf」ファイルを絞り込んで表示させるにはこのように記述
・なお、文字数が明確である場合、「?」を使用

$ cd /etc
$ ls *.conf
Trolltech.conf
ntp.conf
(※あくまで一例です)
$ ls hosts.*
hosts.allow hosts.deny
$ ls hosts.????
hosts.deny

ファイルのコピー

cp [オプション] コピー元 コピー先
-i:処理を行う時に確認をする。コンピュータが確認のための問い合わせをする。誤って上書きコピーされるのを防ぐ目的で使用

-r:ディレクトリをコピー。基本cpはファイルをコピーする機能のみだが、-rをつけるとディレクトリ内の全てのファイル・ディレクトリに対してコピー可能

-p:元ファイルの情報を保存。古い情報を保持したままコピーを作成したい場合につける。

ファイルの移動

mv 移動元ファイル 移動先ファイル
-i:処理を行う時に確認をする。コンピュータが確認のための問い合わせをする。誤って移動されるのを防ぐ目的で使用
-f:強制的に実行。一部の処理では、確認の問い合わせがあるが、それを無視して実行するというもの
▶️チーム開発で無闇に処理しないよう注意

ファイルの削除

rm ファイル名
-i:確認の問い合わせ
▶️informationの略ですね?
-f:強制実行
-r:ディレクトリ+ディレクトリ内のファイルやディレクトリを対象に削除

ディレクトリの操作(pwd,cd,mkdir,rmdir)

pwd:現在どの位置にいるか表示する(Print Working Directoryの略)
cd [ディレクトリ名]:移動

mkdir [ディレクトリ名]:作成
オプション
-p:指定されたディレクトリの上位ディレクトリも作成
$ mkdir dir1/dir2/dir3

rmdir [ディレクトリ名]:削除
-p:指定された階層までのディレクトリを一括削除
(オプション付けなかった場合、最下層のディレクトリのみ削除)
**※対象とするディレクトリ内は空でないといけない**
$ rmdir directory/
rmdir: failed to remove 'directory/': ディレクトリは空ではありません
$ rmdir -r directory/
(rm -rを実行)で削除可能

特別なディレクトリ

名称 機能
カレントディレクトリ(.) 現在いるディレクトリ
親ディレクトリ(..) 1階層上のディレクトリ
ホームディレクトリ (~) ユーザの作業開始位置となるディレクトリ
ルートディレクトリ(/) ディレクトリ階層の最上位階層

絶対(パス)指定と相対(パス)指定

カレントディレクトリが/usr/localであるとする、この時、/usr/bin/xxxのファイルを指定するには2通りの方法がある。

  1. /usr/bin/xxx
  2. ../bin/xxx

1.は最上位のディレクトリ(/)からディレクトリ・ファイル名を指定している。この方法を絶対(パス)指定という
2.は「自分がいる位置から見て」指定。この方法を相対(パス)指定という

ファイルの内容を表示(cat)

cat [ファイル名]
-n:行番号を付加して表示

ページャを使った表示

catコマンドでファイルの中身を表示する際、行数がたくさんあると表示が流れてしまう。たくさんの行があっても画面制御を行いスクロールを途中で止めてくれる機能をページングといい、それを表現するのをページャという。

more [ファイル名]
less [ファイル名]

できることかなり多いのと、実務ではless多めならしいので参考記事のみ紹介。
参考記事:Linux コマンド2 (cat,grep)

その他知った方が良さそうなこと

find パス -name [ファイル名]:ファイルの検索
man [cpやlsなど]:[]内のコマンドに対するマニュアルを表示する

第4章 正規表現とパイプ

・標準入出力:Linuxのプログラム(=コマンド)には、「1つの入り口と2つの出口」がある・。それぞれ標準入力、標準出力・標準エラー出力という。特にコマンドを実行した結果が画面上に表示されることを「標準出力に出力された」と表現する。

ファイルの中からデータを検索(grep)

grep [オプション名] 検索条件 [指定ファイル]
オプション
-e:文字列を検索パターンとして扱う
-i:検索パターンと入力ファイルの双方で、英大文字と小文字の区別をしない
-v:検索パターンとマッチしなかった行を選択する
記号 意味
^ 行頭を表す
$ 行末を表す
. 任意の一字を意味する
* 直前文字の0回以上の繰り返し処理を意味する
[...] ..のなかの任意の一字を意味する
[^...] ..の文字が含まれないことを意味する
¥ 正規表現の記号をエスケープする

第5章 基本的なコマンド2(テキストファイルの処理で便利)

ファイルのタイムスタンプの変更(touch)&ファイルの作成

・タイムスタンプ:ある時刻にその電子データが存在していたことと、それ以降改ざんされていないことを証明する技術。タイムスタンプに記載されている情報とオリジナルの電子データから得られる情報を比較することで、タイムスタンプの付された時刻から改ざんされていないことを確実かつ簡単に確認できる。

$ ls -l
total 8
-rw-r--r--  1 user  staff  81  8 10 23:01 dockerfile
$ touch -t dockerfile
usage:touch [-A [-][[hh]mm]SS] [-acfhm] [-r file] [-t [[CC]YY]MMDDhhmm[.SS]] file ...
# -tオプションつけて、日付、時間、対象ファイルの順番でコマンド打ってね
$ touch -t 08142033 dockerfile 
$ ls -t
dockerfile
$ ls -l
total 8
-rw-r--r--  1 user  staff  81  8 14  2020 dockerfile
$ touch test.md
# 新規ファイルが作成される
$ ls
dockerfile  test.md

ファイルの一部を取得(head,tail)

head [オプション名] ファイル名
tail [オプション名] ファイル名
-n(行):先頭から指定した行を標準出力
-c(バイト):先頭から指定したバイト分を標準出力

テキストファイルのソート(sort)

sort [オプション] ファイル名
オプション名
-r:逆順でソートする
-k n:n列目のデータをソートする
-n:数値としてソートする

ファイルの比較(diff)

diff [オプション] ファイル1 ファイル2
オプション
-c:context diff形式で差分を出力
-u:unified diff形式で差分を出力

第6章 vi エディタ

・vi:ページャであり、エディタでもある。ファイルの開閉とファイルの保存と終了その他操作可能。

コマンド 処理内容
vi [ファイル名] ファイルを開く
:q ファイルを閉じる
ESC+:w 変更内容が書き込まれる
ESC+:wq 変更内容の書き込み+保存して終了
ESC+:q! 保存せず強制終了

イメージ

$ vi test.rb
ken ryu 80
keiko oka 40
hajime chan 100
~
~

インサートモードとコマンドモード

・viエディタを起動すると、コマンド入力するコマンドモードでファイルが開かれる。文字列を打ち込むには、iコマンドもしくはaコマンドなどでインサートモードに切り替える必要がある。

カーソル移動

行番号 指定した行番号へ移動
G ファイルの末尾
h 左へ1文字
j 下へ1文字
k 上へ1文字
l 右へ1文字
w 次の単語へ
0 行の先頭
$ 行の末尾

文字のカット・アンド・ペースト

x 1文字削除
dd 1行削除
yy 1行コピー
nyy n行コピー
p カーソルの文字の次または次の行にペースト
P カーソルの文字の前または前の行にペースト
u カット、ペーストを1回取り消し

置換と検索

/検索文字列 文字列の検索
n 下方向へ再検索
N 上方向へ再検索
:対象の行 s/検索文字列/置換文字列/オプション 文字列を置換する

文字列の置換

:ns/old/new n行目の最初のoldをnewに置換して終了
:ns/old/new/g n行目の全てのoldをnewに置換して終了
:%/old/new/g ファイル全体の検索語句を置換
:%/old/new/gc 置換の度に確認を求める

参考資料

Linux標準教科書
ブクマ必至!Linuxコマンド一覧表【全33種】
viコマンド
なぜ、IDEじゃなくてVimを使うか。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

cronの使い方(自分用メモ)

仕事でサーバーにcronを設定した。
自分に必要だった情報を最小限に書く。

やりたいこと: Perlで作ったスクリプト/foo/bar/baz.plを毎朝5時に実行する
前提条件:OSはLinux、シェルはbash

やったことは以下の通り(試行錯誤は除く)。

EDITORの確認と設定

サーバー(Linux)にログインする。
EDITOR環境変数を確認する。

$ echo $EDITOR

空だった。
ここでcrontab編集をしようとするとviが起動してしまう。
ぼくはEmacsしか使い方が分からない。
Emacsを起動してみる。

$ emacs
そんなコマンドありません的なエラーメッセージ

ダメだった。
Emacsをインストールしてもいいが、ここはnanoを使うことにする。
nanoはたいていLinuxにインストールされてて、使い方が分からなくても何とかなるエディターなの。

$ EDITOR=nano
$ export EDITOR
$ echo $EDITOR
nano

無事nanoが設定できた。

タイムゾーンの確認

現在時刻を知るコマンドdateを使ってみる。

$ date
Fri Aug 14 08:43:43 UTC 2020

UTC(世界協定時、ロンドン時刻と同じ)であることが分かる。
時差を調べるサイトで日本の朝5時がUTCで何時か調べる。

https://www.jisakeisan.com/

20:00と分かった。

crontabの一覧表示

ようやくcrontabの設定。
-lオプションで現在設定されているcronの一覧表示(List)。

$ crontab -l

何も出なかったので誰も何も設定していないと分かった。

crontabの編集

編集は-eオプション(Edit)。
自分自身(ログインしたユーザー)で実行する場合は-uオプションは設定しなくて良い。

$ crontab -e

さっき$EDITORに設定したnanoが起動するなの。

crontabの設定

毎朝5時に/foo/bar/baz.plを実行するにはこうする。

0 20 * * * /foo/bar/baz.pl

nanoの使い方になるが、Ctrl+Oでファイルを書き出し(write Out)、Ctrl+Xでnanoを終了(eXit)する。
nanoの使い方は画面の下端に表示されるから覚えなくても平気なの。

以上。

参考資料

cronの設定方法
https://qiita.com/hikouki/items/e744b3a4d356d2af12cf

crontab ファイルの作成と編集
https://docs.oracle.com/cd/E19253-01/819-0379/sysrescron-24589/index.html

(この項終わり)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Linux mkdir コマンド

Linuxコマンド「mkdir」とは、どんな役割なのか?

「mkdir」=「make directory」を略したもの

image.png
「sample」中に新しくディレクトリ(フォルダ)を作ってみましょう。

image.png
このように、「sample」内に新たなデェレクトリ(フォルダ)を作ることができました。

また、「mkdir」には複数のオプションがありそれらは以下になります。スクリーンショット 2020-08-11 20.33.34.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

ChromeboxにLinuxをインストールする

準備物

  • +/-ドライバー
  • クリップ
  • 小袋
  • キーボード

手順[平均時間][待ち時間]

  • ネジを外す[146s][0m]
  • デベロッパモード有効化[0m][300s]
  • FWインストールスクリプト実行[51s][0m]
  • OSインストールスクリプト実行[0][558s]

  • 合計[17.5分][14.3分]

詳細手順

STEP1

ネジを外す
デベロッパーモードに入る
リセットスイッチを数秒押し続けながら電源ON
「復元用のUSBメモリまたはSDカードを挿入してください」の画面でCtrl+Dを押す。
「OSの確認機能をオフにするにはリカバリボタンを押してください」の画面で再度リセットスイッチを押す。
再起動し、「OSの確認機能はオフになっています」の画面が表示される。(Ctrl+Dでスキップ可)
「システムをデベロッパーモードに移行しています」の画面が表示される。
一定時間後、「ようこそ」の画面へ切り替わる
FWインストールスクリプト実行
「ようこそ」の画面でCtrl+Alt+F2を押す。
インターネットに繋がるようにする。
CUIログイン画面に切り替わるので、chronosでログインする。以下のコマンドを実行する。

sudo su
curl -O www.webproj.jp/chromescripts/CN60.sh;
bash CN60.sh
または
sudo su
curl -O www.webproj.jp/fw.sh;
bash fw.sh

SUCCESSと表示されたらOK
USBメモリを挿して再起動、次のステップへ

STEP2

USBからインストール用OS起動
起動時にEscを押して、起動デバイス一覧からUSBを選択
青い画面(grub)で一番上のエントリが選択されているので、Enterを押す
OSインストールスクリプト実行
起動後、[Give Root password for maintainance]と表示されたら、パスワードを入力してログイン、以下のコマンドを実行

中括弧内はデバイスに応じたものを選択してください

cd /clonescripts/
bash [CN60/62/65]copyos.sh

完了したら再起動します。次に座席番号を設定します。

sudo setup.sh

座席番号フォーマットは[A-Z][1-9]{0,1}-[0-9]{2}
ex. A-01

URL

ねじ位置
https://kodi.wiki/view/Chromebox
このページ
https://qiita.com/mitsuya99/private/b76bc02a2320f6ab2dae

Troble Shooting

デバイスの所有者がこのデバイスのデベロッパーモードを無効にしました

ねじ抜いてない

Hardware write-protect enabled. cannot set Boot Options / GBB Flags.

ねじ抜いてない場合は抜いて解決しますが、ねじを抜いているにかかわらず出ることがあります。
ねじの周りの接触の問題です。テスタがあれば、扇型の金属間でショートしているところがないか確かめてください。

Ctrl+Dが効かない?

キーボードをキーボード配列の異なるものに変えてみてください。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

自作マニュアルを作る。【linux】【man】

環境

  • ubuntu20.04 LTS

やろう

Ctrl+Alt+tで端末を起動します。
以下のコマンドを入力してください。(manlは何でもいい)

$ mkdir man 
$ cd man 
$ mkdir manl 
$ cd manl

そうしたらテキストエディターでmanの中身を書きます。qiitaのマークダウンみたいに書式があります。

自作コマンドの作り方

自作のコマンドを作成した - qiita

自作コマンドのmanを書きます。

自作コマンドの中身:

lock.sh
#!/bin/sh
#chmod=アクセス権限を変更する
#a-rwx=すべての人に読み込み・書き込み・実行の権限を削除する
#$1=引数の取得(引数=a-rwxするファイル名)
chmod a-rwx $1
lock.l
.\"この行はコメントです。
.TH lOCK
.SH 名前
.\"名前と一言で言う説明を書きます。
lock \- ファイルの読み込み・書き込みのアクセス権を削除する
.SH 書式
.B lock 
[ ファイル名 ]
.SH 説明
.\"説明を書きます。
lockはテキストファイルや画像ファイル,などのアクセス権限を削除します。

.\"作者と著作権を書きます。
.SH 作者
作者 ichiri sato.
.SH 著作権
(c) 2020 ichiri sato. 

-M引数を使って自作manを表示します。

$ man -M ~/man lock.l
表示結果
lOCK()                                                                 lOCK()

名前
       lock - ファイルの読み込み・書き込みのアクセス権を削除する

書式
       lock [ ファイル名 ]

説明
       lockはテキストファイルや画像ファイル,などのアクセス権限を削除します。

作者
       作者 ichiri sato.

著作権
       (c) 2020 ichiri sato.
                                                                       lOCK()

~
~
~
~
~
(省略)

参考記事

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

tcコマンドでNetworkの帯域と遅延を制御してみてみた

■ 目的

tcコマンド(Traffic Control)は、Networkの遅延(Latency)と帯域(Throughput)を制御することができます。
コンピューターの距離により遅延、帯域が変わり、データ転送などの時間がかわることがあります。
ということで、tcコマンドで、遅延、帯域が制御できるか確認してみてみます。

■ 構成

構成-non.png
Oracle Cloud上にComputeインスタンスを2台設置して、その間のNetworkパフォーマンスをTCコマンドで制御してみてみます

■ 現環境確認

Client --> Server へのレイテンシ、スループット、TPSを確認

● 遅延(RTT)確認

pingを実行してRTT確認
今回は、平均0.166msであることを確認

[opc@client-inst01 ~]$ sudo ping 10.0.0.2 -c 5
    PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
    64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.178 ms
    64 bytes from 10.0.0.2: icmp_seq=2 ttl=64 time=0.182 ms
    64 bytes from 10.0.0.2: icmp_seq=3 ttl=64 time=0.135 ms
    64 bytes from 10.0.0.2: icmp_seq=4 ttl=64 time=0.177 ms
    64 bytes from 10.0.0.2: icmp_seq=5 ttl=64 time=0.160 ms

    --- 10.0.0.2 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4110ms
    rtt min/avg/max/mdev = 0.135/0.166/0.182/0.020 ms

● 帯域確認

iperf3を実行してスループット確認
今回は、約2 Gbits/secであることを確認

[opc@client-inst01 ~]$ sudo iperf3 -c 10.0.0.2
    Connecting to host 10.0.0.2, port 5201
    [  4] local 10.0.0.5 port 33750 connected to 10.0.0.2 port 5201
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec   377 MBytes  3.17 Gbits/sec  1165   2.06 MBytes
    [  4]   1.00-2.00   sec   254 MBytes  2.13 Gbits/sec  2338    323 KBytes
    [  4]   2.00-3.00   sec   231 MBytes  1.94 Gbits/sec  1480   1.31 MBytes
    [  4]   3.00-4.00   sec   244 MBytes  2.04 Gbits/sec  2127   61.2 KBytes
    [  4]   4.00-5.00   sec   229 MBytes  1.92 Gbits/sec  953    166 KBytes
    [  4]   5.00-6.00   sec   239 MBytes  2.00 Gbits/sec  2055    629 KBytes
    [  4]   6.00-7.00   sec   205 MBytes  1.72 Gbits/sec  1336   1.77 MBytes
    [  4]   7.00-8.00   sec   274 MBytes  2.30 Gbits/sec  2216   96.1 KBytes
    [  4]   8.00-9.00   sec   238 MBytes  1.99 Gbits/sec  1198    891 KBytes
    [  4]   9.00-10.00  sec   232 MBytes  1.95 Gbits/sec  1486    638 KBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  2.46 GBytes  2.12 Gbits/sec  16354             sender
    [  4]   0.00-10.00  sec  2.46 GBytes  2.11 Gbits/sec                  receiver

    iperf Done.

■ tcコマンドで遅延と帯域制御

Client側からパケットを送信するので、clientコンピューターで遅延と帯域を制御してみてみます

① 設定するNetwork Interface確認

ClientでServerへ接続するNetwork Interfece名確認
今回 Interface名はens3であることを確認

[root@client-inst01 ~]# ifconfig
    ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 9000
            inet 10.0.0.5  netmask 255.255.255.0  broadcast 10.0.0.255
            ether 02:00:23:17:3a  txqueuelen 1000  (Ethernet)
            RX packets 454466  bytes 165785003 (158.1 MiB)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 503382  bytes 277089862 (264.2 MiB)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

② 100ms 遅延制御 tcコマンド実行

今回、100msへ制御してみてみます
100msは、だいたい日本から米国程度の距離です

[opc@client-inst01 ~]$ sudo tc qdisc add dev ens3 root handle 1:0 netem delay 100ms

③ 50Mbps 帯域制御 tcコマンド実行

今回、50Mbpsへ制御してみてみます
その時、以下値を使用してみます

・rate = 50mbit
・CONFIG_HZ = 1000
・burst = rate/CONFIG_HZ = 50kb
・limit = burst x 10 = 500kb

※CONFIG_HZ値確認

[opc@client-inst01 ~]$ sudo cat /boot/config-`uname -r` | grep CONFIG_HZ=
    CONFIG_HZ=1000

・50Mbps 帯域制御 tcコマンド実行

[opc@client-inst01 ~]$ sudo tc qdisc add dev ens3 parent 1:1 handle 10:0 tbf rate 50mbit burst 50kb limit 500kb

④ tcコマンド設定確認

[opc@client-inst01 ~]$ sudo tc -s qdisc show dev ens3
    qdisc netem 1: root refcnt 17 limit 1000 delay 100.0ms
    Sent 288635914 bytes 38521 pkt (dropped 0, overlimits 0 requeues 14)
    backlog 102b 1p requeues 14
    qdisc tbf 10: parent 1:1 rate 50Mbit burst 25Kb lat 36.9ms
    Sent 35582 bytes 73 pkt (dropped 0, overlimits 0 requeues 0)
    backlog 0b 0p requeues 0

⑤ 遅延(RTT)確認

pingを実行してRTT確認
平均100 msへ制御できていることを確認

[opc@client-inst01 ~]$ ping 10.0.0.2 -c 5
    PING 10.0.0.101 (10.0.0.101) 56(84) bytes of data.
    64 bytes from 10.0.0.101: icmp_seq=1 ttl=64 time=100 ms
    64 bytes from 10.0.0.101: icmp_seq=2 ttl=64 time=100 ms
    64 bytes from 10.0.0.101: icmp_seq=3 ttl=64 time=100 ms
    64 bytes from 10.0.0.101: icmp_seq=4 ttl=64 time=100 ms
    64 bytes from 10.0.0.101: icmp_seq=5 ttl=64 time=100 ms

    --- 10.0.0.101 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4004ms
    rtt min/avg/max/mdev = 100.160/100.192/100.218/0.283 ms

⑥ 帯域確認

iperf3を実行してRTT確認
50Mbits/secへ制御できていることを確認

[opc@client-inst01 ~]$ sudo iperf3 -c 10.0.0.2
    Connecting to host 10.0.0.2, port 5201
    [  4] local 10.0.0.5 port 44108 connected to 10.0.0.2 port 5201
    [ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
    [  4]   0.00-1.00   sec  6.18 MBytes  51.8 Mbits/sec   44    743 KBytes
    [  4]   1.00-2.00   sec  6.25 MBytes  52.4 Mbits/sec    5    638 KBytes
    [  4]   2.00-3.00   sec  5.00 MBytes  41.9 Mbits/sec    0    725 KBytes
    [  4]   3.00-4.00   sec  6.25 MBytes  52.4 Mbits/sec    0    751 KBytes
    [  4]   4.00-5.00   sec  6.25 MBytes  52.4 Mbits/sec    0    751 KBytes
    [  4]   5.00-6.00   sec  6.25 MBytes  52.4 Mbits/sec    0    778 KBytes
    [  4]   6.00-7.00   sec  5.00 MBytes  41.9 Mbits/sec    0    813 KBytes
    [  4]   7.00-8.00   sec  6.25 MBytes  52.4 Mbits/sec    0    848 KBytes
    [  4]   8.00-9.00   sec  6.25 MBytes  52.4 Mbits/sec    3    664 KBytes
    [  4]   9.00-10.00  sec  6.25 MBytes  52.4 Mbits/sec    0    786 KBytes
    - - - - - - - - - - - - - - - - - - - - - - - - -
    [ ID] Interval           Transfer     Bandwidth       Retr
    [  4]   0.00-10.00  sec  59.9 MBytes  50.3 Mbits/sec   52             sender
    [  4]   0.00-10.00  sec  56.9 MBytes  47.7 Mbits/sec                  receiver

    iperf Done.



    --- 10.0.0.2 ping statistics ---
    5 packets transmitted, 5 received, 0% packet loss, time 4004ms
    rtt min/avg/max/mdev = 100.160/100.192/100.218/0.283 ms

⑦ tcコマンド設定解除

[opc@tokyo-inst01 ~]$ sudo tc qdisc del dev ens3 root
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む