読者です 読者をやめる 読者になる 読者になる

1週間でLPICの基礎が学べる本〈3日目〉

 

3日目

・ファイルコピー

[cp コピー元ファイル コピー先ファイルorディレクトリ]

・ファイル移動(ファイル名変更)

[mv 移動先ファイル名 移動先ディレクトリorファイル名]

・ファイル名削除

[rm ファイル名]

⇒ゴミ箱に移動されるのではなく永久に失われる。
オプションに[-i]いれると、消される前に確認メッセージでてくる。

ディレクトリ作成

[mkdir ディレクトリ名]

⇒複数階層のディレクトリを手っ取り早く作成するにはオプションに[-p]

ディレクトリコピー

[cp -r コピー元ディレクトリ名 コピー先ディレクトリ名]

⇒オプション[-r]は必要。

ディレクトリ削除

[rm -r ディレクトリ名]

⇒オプション[-r]は必要。

[rmdir ディレクトリ名]

⇒このコマンドはディレクトリ名の中身が空じゃないとできない。

 


ファイルの圧縮、解凍

ファイルの圧縮で最も利用されているのがGNU Zip(gzip)形式
ファイルの末尾が「.gz」になっているもの。

gzip形式でファイルを圧縮するには[gzip]コマンド。

[gzip ファイル名]

圧縮したファイルを解凍するには[gunzip]コマンド。

[gunzip 圧縮ファイル名]

ディレクトリの圧縮、解凍

[guzip]コマンドはディレクトリには対応していない。

ディレクトリの内のファイルやサブディレクトリをディレクトリごと圧縮するにはまず[tar]コマンドを使って1つのファイルにまとめる。
こうして複数のファイルをまとめたファイルをアーカイブという。

アーカイブを作成するには、

[tar cvf アーカイブファイル名 ディレクトリ名]

このファイルを圧縮すればディレクトリが圧縮されたことになるのだ。

オプションには[-]をつけなくてもよい。

 

〈tarコマンドの主なオプション〉

オプション 説明
アーカイブを作成する
アーカイブを展開する
詳細を表示する
アーカイブファイルを指定する
gzip圧縮を利用する

 

ユーザーには、管理者ユーザー、システムユーザー、一般ユーザーがある。

一時的にユーザーを切り替えるコマンドがある。

[su (-) (ユーザー名) ]

root権限が必要な作業のときとか使う。
root権限が必要な作業が終わったら必ず[exit]コマンドでログアウトし元のユーザーに戻る。

Ubuntuでは[su]コマンドでrootユーザーになることができない。
かわりに[sudo]コマンドを使って管理者コマンドを実行する。
(前の本でやった。)

 

ユーザーをまとめて管理するグループ。
グループ単位でアクセス権を管理できる。

Linuxではすべてのユーザーがなんらかのグループに属さなければならない。
ユーザーがなんのグループに属しているかは[groups]コマンドで確認。

[groups (ユーザー名)]

⇒[id]コマンドでも調べられる。

 

ユーザーにとって最も基本となるデフォルトグループをプライマリグループ(基本グループ)という。
プライマリグループ以外に参加しているグループがあるとするとサブグループ(参加グループ)という。

・ユーザー作成

[useradd ユーザー名]

⇒ユーザー作成できるのはもちろんrootのみ。

作成されたばかりのユーザーにはパス設定されていない。
・パス設定

[passwd (ユーザー名)]

ユーザー情報は1ユーザーにつき1行のエントリとして「/etc/passwd」ファイルに格納されている。
パスワードは「/etc/shadow」ファイルに格納されている。

・ユーザーの削除

[userdel ユーザー名]

⇒もちろんrootユーザーのみ実行可能。

ユーザーエントリが削除されたあと、「/home」以下のホームディレクトリは残る。
ホームディレクトリが不要であれば、[rm]で消す。
それか、[userdel]コマンドにオプション[-r]つける。

・グループ作成

[groupadd グループ名]

・グループにユーザーを参加させる

[usermod -G グループ名 ユーザー名]

[usermod]は作成済みのユーザー情報を変更する)コマンドでもある。

・グループ削除

[groupdel グループ名]

⇒プライマリグループとするユーザーが存在する場合、グループは消せない。

1週間でLPICの基礎が学べる本 〈1日目・2日目〉

 

新しく得た知識だけメモします。

1日目

ディストリビューションは大きく分けると3種類ある。

Red Hatディストリビューション...Fedora,RedHatEnterpriseLinux,CentOS
Debianディストリビューション...Ubuntu
・その他のディストリビューション...Slackware,OpenSUSE


オープンソースを推進しているOSI(open souce initiative)。

OSIオープンソースの定義を提唱している。
OSIの定義に則ったライセンス(使用許諾)を取得しているソフトウェアがオープンンソフトウェアとよばれる。

有名なオープンソースライセンスはGNU GPL
LinuxGPLを採用している。

オープンソースウェアには開発者や利用者たちでつくられたコミュニティがある。


2日目

Windowsの作業はGUIが多い。
Linuxの作業はCUIが多い。

CUIは慣れればGUIより早くなる。
自動化しやすく、ネットワーク経由で操作しやすい。

LinuxGUIを利用するときはX Windows Systemというソフトウェアが使われる。
デスクトップを実現するのをウィンドウマネージャっていう。
Linuxカーネルは同じでも、GUIの見栄えや操作体系はウィンドウマネージャによってちがう。


〈ファイルの種類〉
・通常ファイル...データやプログラムが格納されたファイル(テキストファイル、バイナリファイル)
ディレクトリ...フォルダ
・リンクファイル...ファイル名と実体をひもづける(シンボリックリンク、ハードリンク)
・特殊ファイル...ファイルを通してデバイスを扱えるようにする(デバイスファイル)

ファイルサイズや最終更新日時、アクセス権、ディスク上のどの場所にファイルの内容が書き込まれているかといった情報が記録されているものをi ノードという。

i ノードには連番がつけられている。
i モード番号を確認するに「ls」コマンドにオプション「-i」つける。

このi ノード番号とファイル名の対応付けをリンクという。

Linuxでは1つのi ノードに複数ファイル名をリンクさせられる。
これをハードリンクという。

ハードリンク作成は、

[ln 元のファイル 作成するリンクファイル]

そんで、ファイルに別名をつける仕組みをシンボリックリンクという。
ファイルの別名を使いたい場合、ハードリンンクよりシンボリックリンクを使用する。

シンボリックリンンク作成は、

[ln -s 元のファイル 作成するファイル]

ハードリンクは元のファイルと同じi ノード番号をもつ。
シンボリックリンクはあくまでファイルの参照先を格納しているにすぎない。

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つのプログラムのように仕立て上げることができる。

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