まるもの勉強日記。

実はSE目指してます。

Virtual Box(Windows)にCentOSをインストールする方法

VirtualBox(Windows)にCentOSをインストールする方法。
VirtualBoxのインストール方法はこちら

CentOS インストール準備

まずは、公式ページからIOSファイルをダウンロードする。
(IOSファイルとは、CDやDVDなどの中身を1つにまとめたファイルのこと。)

【Get CentOS Now】ボタンをクリックする。

【DVDISO】をダウンロードする。
⇒ネットワーク回線が狭い環境の場合【MinimalISO】を選ぶと良いらしい。

ダウンロードするURLがたくさんでてくる。

「Actual Country」の下が日本のサーバーなのでそこから選択する。

選択したらダウンロード終わるまで待つ。

仮想マシン作成〉

終わったら、VirtualBox開く。仮想マシン作成します。

【新規(N)】クリック。

仮想マシンの名前とオペレーティングシステムのタイプ選択。

タイプはUbuntu同様、Linux。バージョンはRed Hat

次に、メモリーやハードディスクのサイズなどの設定。
メモリは最低でも512Mib必要らしい。
ハードドライブのファイルタイプはVID
物理ハードドライブにあるストレージは固定サイズを。
仮想ドライブの容量を指定。
私は、10.00GBにしたかな、たしか。

ここまできたら、作成した仮想マシンが左側の仮想マシン一覧に追加されます。
仮想マシンを選択し、左上の【設定】をクリック。

設定ダイアログが表示されたら、左側にある【ストレージ】を選択。

コントローラー:IDEの下にある【空】をクリックし、右側にある【光学ドライブ】のさらに右側にあるディスクのマークをクリック。
「仮想光学ディスクファイルを選択」をおし、ダウンロードしたファイルを選択。

Ubuntuと同じやね。

ここまできたらインストールする準備は完了。

インストール手順

仮想マシン一覧から作成した仮想マシンを選択し、【起動】を選択。

CentOSインストーラーが起動するので、そのまま【Enter】キー

次に言語を選択する。
日本語を選択。

次にインストールの概要を決めます。

・「ソフトウェアの選択」しベース環境からサーバー(GUI使用)を選択して【完了】。
・「インストール先」を選択し何もせずに【完了】。
・「ネットワークとホスト名」を選択し設定画面の右側上にあるスイッチをオンにして【完了】。

次にユーザーの設定をします。
その際に記号や暗号化方式の互換性に目を通しておくこと。

・「rootパスワード」を選択し任意のrootパスワードを入力して【完了】。
・「ユーザーの作成」を選択して任意のフルネーム、ユーザー名、パスワードを入力する。[sudo]と[sudoedit]コマンドを有効にするため、「このユーザーを管理者にする」にチェックをいれて【完了】。

CentOSのインストールが完了するのを待つ。
終わったら、設定画面左下の【再起動】をクリック。

再起動後、初期セットアップ画面が表示される。
「ライセンス情報」を選択し、同意できるならライセンス契約に同意する。
チェックいれて【完了】し【設定の完了】。

ログイン画面い切り替えるので、ユーザーを選択しログインする。

日本語が選択されているのでそのまま【次へ】。

入力ソースもそのまま【次へ】。

オンラインアカウントもそのまま【次へ】。

「Start using CentOS Linux」をクリックしてセットアップを完了。


〈参考〉
VirtualBox (Windows) 上に CentOS 7 をインストールする
【初心者でもわかる】Linux CentOSのインストール方法まとめ

 

「入門者のLinux」終章

 

終章「『Linux力』をつけるには?」

 

うまくいかないときややり方が分からないとき、思いつく方法をどんどん試す。
試行錯誤することが大事!

一見無駄なように見えるけど、それに費やした時間や労力は無駄じゃない。
力がつく。

また、情報の鮮度には気をつけること!

 


 

「入門者のLinux」ついに最終章まできました。

目標より時間がかかってしまった、、。

これを読んでみて「Linux」を少しつかめた気がする。
純粋に分かりやすくて面白かった。

ここからがスタートじゃああ。
LPIC取得を目指します!!

「入門者のLinux」第十三章

 

第十三章「応用!」

<コマンド>

[sed]...文字を置き換える
[tr A-Z a-z]...大文字、小文字の変換で使う
[sort]...辞書順に並べ替える
[uniq -c]...それぞれ数える
[sort -n -r]...出現回数多い順に並べる

[-n]...辞書順ではなく数字の小さい順に並べる
[-r]...順序をひっくり返す

[wget]...CUIでネット上のファイルをダウンロードする
[avconv]...動画を作成する

コマンドを定期的に実行する仕組みのことを「cron」という。
決められたコマンドを決められてたスケジュールでユーザーの代わりに自動的に実行してくれる仕組み。

UnixCUIが有用なのは、「cron」による自動処理。
やるべきことがワンライナーシェルスクリプトに整理されることは繰り返しや自動処理と相性が良い。


 

実践、実戦。
おもしろかったなぁ。

容量足りないっていわれてできないとこあったけど、、(笑)

あ~切実に時間が欲しいです。

「入門者のLinux」第十二章

 

第十二章「プロセスの管理と操作」

Linuxはたくさんの処理を同時に行っている。

その仕組みをマルチタスクという。

現在進行中の仕事を確認するには、

[ps au]

というコマンド。

そうすると、処理している仕事を1行に1つという単位で示す。
この個々の行で示されている仕事をプロセスという。

 


[sleep 10 &]

[sleep 10]は10秒間待つコマンド。

[&]はコマンドをシェル以外のところで走らせることができる。
これをバックグラウンドという。

バックグラウンドで走らせることで、そのシェルに他のコマンドが打つことが出来る。

バックグラウンドで走らせているコマンドを元の画面に戻したくなることがある。
その場合には「fg」というコマンドを打つ。

 

バックグラウンドの対義語はフォアグラウンド
つまり、目の前のシェルの画面で実行することを指す。

フォアグラウンドで実行したあと、「ああ、バックグラウンドですればよかった!」って時がある。

そういう時はコマンドを実行したあと、

[CTRL]キー+[z]キー...一時停止

いったんコマンドを停止させてから

[bg]

を打って完了。

 


 

3つのコマンドがパイプでつながっているとき、

[コマンド1 | コマンド2 | コマンド3]

これら全体が1つのジョブとみなされる。
ジョブっていうのはまとめて実行されるプロセスの集まり。

つまり、これは3つのプロセスの集まりってこと。

 


 

Linuxは安定したOSですが、ときにフリーズすることもある。
強制終了したくなりますねぇ。

シェル上で動いているコマンドなら、[CTRL]+[c]で強制終了できることが多い。

しかしそれでも終わってくれないときがあるし、一見終わったように見えてもまだ動いているときがある。

そういう場合は「kill」コマンド!
「kill」コマンドはプロセスを直接的に強制終了してくれる。

「kill」コマンドを使う場合はプロセスIDが必要になるので、別のターミナルを立ち上げ「ps au」コマンドでプロセスIDを調べる。

[kill プロセスID]...強制終了

 

画面全体がフリーズして別のターミナルすら立ち上げることが出来ない場合の方法が2つある。

[CTRL]+[Alt]+[F1]...GUIウィンドウ全体が停止する。
          画面全体が1つのCUIのターミナルになる。
       [CTRL]+[Alt]+[F7]で元のGUIに戻る。

・別のコンピュータからSSHというやり方でログインし「ps au」して「kill」する。

「kill」コマンドを使っても終了できないときは、「kill」コマンドに「-kill」というオプションをつける。

[kill -kill プロセスID]

「入門者のLinux」第十一章

 

第十一章「シェルをもっと知ろう」

<コマンドの実体>

シェル上で走るコマンドは多くの場合それぞれが独立したプログラム(ソフトウェア)。

1つのコマンドに対してディレクトリツリーのどこかにプログラムを格納した実行可能ファイルが1つ存在する。

コマンドの実体を調べるには、

[whici ls]...「ls」コマンドの実体はどこにあるのか

[/bin/ls]

「/bin」というディレクトリの中に「ls」ファイルがあるとわかる。

 

「/bin/ls」ファイルのパーミッションを見てみると、

[-rwxr-xr-x]

こんな感じで出てくる。

所有者、グループ、その他ユーザーすべてに「x」パーミッションが与えられている。つまり、実行許可がでている。

パーミッションに実行許可が与えられているファイルを実行可能ファイルという。

つまり、「ls」コマンドを打つたびに「/bin/ls」という実行可能ファイルが実行されていたということ。

 

ほとんどのコマンドの実体は、「/bin」「/usr/bin」「/sbin」「/usr/sbin」のどれかの中にある。
「/bin」と「/sbin」は基本的なコマンドが入っている。
「/usr/bin」と「/usr/sbin」はシステム管理に関わるコマンドが入っている。

 


<シェルの実体>

シェルはLinux上の仕組みである。
それを動かしているプログラム(ソフトウェア、コマンド)があるはず。

それを探すには、

[echo &SHELL]...「SHELL」という名前のシェル変数の内容を表示

[/bin/bash]
この実行可能ファイルが実際に使っているシェルの実体なのです。

 

「/bin/bash」はbash(バッシュ)」という有名なシェルの一種。

その他のシェルだと、「zsh」や「tcsh」などがある。
シェルが違うとコマンドや機能がちょっと違うことがある。

そのため、ネットで調べたコマンドがうまく走らないとか、古めのUnixのテキストに書いてあることがうまく動かないみたいな問題の原因はシェルの違いであることが多いんだとか。

 


 

シェルで走るコマンドには2種類ある!

1つは前述したような、独立したコマンド。

もう1つはシェルの「組み込みコマンド」
コマンドを走らせるためのコマンドが存在しない。
代わりに「bash」とかが自分の中にコマンドを持っている。
いわゆる、シェルの付属品。

bash」の組み込みコマンドを見るには、

[help]

 

特殊なタイプのシェル変数がある。

例えば、シェルは様々な言語で提供できるようになっている。
それを担うのが環境変数といわれるもの。

環境変数にはシェル設定などに関する情報を格納している。

どのようなシェル変数があるかは、「set」コマンドで見れる。

[set | less]

「less」コマンドを終わらせるには「q」キー。

いくつかシェル変数紹介。

・COLUMNS...今開いてる端末の横幅
・HOME...ホームディレクトリの絶対パス
・LANG...どの言語を選択しているか
PWD...カレントディレクトリの絶対パス
・SHELL...シェル実行のファイル
・USER...ユーザー名

このようなシェル変数や環境変数な内容を表示させるには「echo」コマンドを使用する。
中身を見るときは「$」を頭に付けて指定すること。

 


 

シェルはコマンドの実体が入っている可能性の高いディレクトリに関する情報をあらかじめ把握している。
実行可能ファイルをすぐ見つけ出せる裏にはそんな事情があったんですね。

そのような情報のことをコマンドサーチパスという。

コマンドサーチパスは「PATH」という環境変数に格納されている。

例えば、もし「PATH」が破壊(空白に)されても、実行可能ファイルの場所(パス)を明示的にシェルい教えるとコマンドは動く。

シェルの付属品組み込みコマンドはコマンドサーチパスとは無関係に動くので心配なし。

 


 

複数のコマンドをテキストファイルにまとめて実行することができる。
⇒複数のコマンドを順に組み合わせ、一連のまとまりのある処理として1つのプログラムのように仕立て上げることができる。

それをシェルスクリプトという。

 

 

「入門者のLinux」第十章

 

第十章「定番のテキストエディターvi」

 

UnixLinuxでは情報はなるべくテキストファイル(文字の羅列)で管理している。

バイナリファイルは、情報を直接的に数値に対応させて表現されているもの。
それには読み解くのに特別なソフトウェアが必要。
それが面倒だからテキストファイル使おうって話。

故に、テキストファイルを手際よく扱うことが大事なんだな。

 

大きなテキストファイルから特定の情報を抽出したり整形したり定型化された処理を繰り返すにはワンラインーや「awk」が便利。

しかし、テキストファイルに中身を見ながら修正を加えたり、新たなテキストファイルをゼロから作ったりするときは、画面上のテキストをキーボードでいじれるソフトのほうが便利。

そういうソフトのことをテキストエディタという。

テキストエディターはちっちゃいワープロって感じらしい。
文書を「文字の集まり」として認識して、文字を消したり追加したりテキストファイルを編集できる。

 


 

UnixLinuxの定番テキストエディターは「vi(ヴイアイ)」

「vi」には昔からある使いにくい「vi」と、昔からあるやつを拡張して使いやすくした「vi」がある。

 

Ubuntu Linuxでは前者は「vim-tiny」、後者を「vim」とそれぞれ呼ぶ。
Ubuntu Linuxをインストール後は、「vi」は「vim-tiny」になってることが多いので「vim」をインストールする。

[sudo apt-get install vim]

[vi 編集したいファイル名]...「vi」の世界に入る=「vi」起動

「vi」を起動すると、まずコマンドモードに入る。
コマンドモードとは、テキストの一部を削除したりコピペしたりファイルを保存したり「vi」を終了したりするモードのこと。

コマンドモード以外に挿入モードがある。
挿入モードに入るには[i]キーをおす。

挿入モードはテキスト内容をキーボードで直接打ち込んだり書き換えたりする。

「vi」のコツ

・操作に行き詰まったら[Esc]キーをおしてコマンドモードに戻る。
・1文字削除は[x] 、1行削除は[dd]
・誤操作は[u]で元に戻せる。
・不要な部分を消し去ったら、書き換えたいところまでカーソルを移動し、[i]キーをおして挿入モードに入り挿入したい内容を打ち込む。

 

 

「入門者のLinux」第九章

 

第九章「awkを使ってみよう!」

 

ワンライナーでの強力な武器awk

awk」はテキストデータを色々加工したり処理したりするコマンド。
それ自体がプログラミング言語としての機能を備えている。

 

[echo 100 200 | awk '{print $1}']

awk」では、「`」バッククォートではなく、「'」シングルクォートを使う。

[print]...「awk」のコマンド、データを表示する。
[$1]...「awk」の標準入力に流れ込んでくるデータの中の左から1番目の項目

 

awk」はデータの切れ目を空白文字やタブで勝手に判断する。

 


[echo 100 200 | awk '{print $1+$2}'] = 300

awk」は計算できる。


 

awk」にも変数がある。

[echo 100 200 | awk '{x=$1+$2; print x}'] = 300

いったん「x」という変数に「x=$1+$2」を保持し、そのあとprintコマンドで「x」の内容を表示する。

awk」の中で複数のコマンドを順に実行するにはコマンド同士を「;(セミコロン)」で分かち書きする。

 


 

「|(パイプ)」はコマンドの標準出力を別のコマンドの標準入力に流しこむ。
awk」は標準出力に流れ込んできたデータを処理する。
⇒どんなコマンドであろうが標準出力にテキストデータを吐き出すコマンドなら流し込める。

 

awk」は流れてきたテキストデータをすべての行のそれぞれについて処理する。
⇒行ごとに処理を繰り返す。

またUnixには、データはテキスト文化で1行につき1件のデータを表現するという文化がある。

 


1から100までの整数を全部足したらどうなる?

[seq 1 100 | awk '{s=s+$1; print $1, s}']

[$1 ... 1から100まで順に入る]

[s=s+$1 ... 変数sに$1を足した結果をsを格納せよ]

[print $1, s ... $1とsを画面に出せ]

数学の等号とは違って、「=」は右辺の計算結果を左辺に代入せよって意味。

こうすることで、1から100までの整数を足した数が表示される。

 


カレンダー問題

前章でやった2015年から2024年までの各年での13日の金曜の求め方が、

[for y in `seq 2015 2024`; do for m in `seq 1 12`; do date -d $y/$m/13 +"%Y %a"; done | grep Fri; done | uniq -c]

う~ん長いねぇ(笑)

 

この中で、13日の金曜日3日あった年は何回かを求めるには、

[for y in `seq 2015 2024`; do for m in `seq 1 12`; do date -d $y/$m/13 +"%Y %a"; done | grep Fri; done | uniq -c | awk '{$1==3{print}']
[$1==3] ... 1項目が3だったら表示=13日の金曜日が3日あった年を表示

例えば、4以上とかの時には、

[$1>3] 

みたいになる。

こんな感じでawk」は「{ }」の前に条件判定を置くことができる。

 


・「awk」は標準入出力で流れてくるデータを柔軟に選別、加工するのが得意。
・「awk」はUnixの標準入出力の中に手軽に埋め込める。
・「awk」はバグが出にくい。


 

難しくなってきましたな。

 

明日から学校お休みだぞーん。

お勉強するんだぞーん。