Linuxとは?/Linuxのディレクトリ管理/viエディタの使い方【復習メモ】

Linuxは、想像していたよりも奥が深い。特に次々と登場するコマンドにはかなり苦戦している。

今日はLinuxについてのまとめ。

Linuxとは?

Linuxは、POSIX(OSの規格)に準挺したUnix互換のOS。

無料で使えるオープンソースのソフトウェアで、自由に開発することができる。

Unixを元に開発されているので、ほぼ同じ機能を持っている。

Linuxは非常に低コストで使うことができるがその分構築や管理の責任も伴うため、通用はOS本体(カーネル)とコードやツール(シェル)がセットになったディストリビューションというパッケージで販売、配布されている。

ディストリビューションには、RedHat系、Slackware系、Debian系などがある。

Linuxの資格試験であるLPICでは、RedHat系やDebian系に関する出題がある。

UnixはWindowsOSの上位互換で、費用が300万円以上掛かる(Linuxは0円)ため、現在ではほとんど使われていない。

UnixがLinuxの開発者、リーナス・トーバルズを訴えて裁判になったことがあるが、1行も真似をしていなかったためにリーナス側が勝訴し、Linuxの開発が進んだ。

シェル

シェルにはさまざまな種類がある。

たとえば、

csh(シーシェル) C言語系

tcsh(ティーシェル) cshの拡張版

zsh(ゼットシェル) 最近開発された良いとこどりのシェル

sh(ボーンシェル) ボーン氏が開発 

bash(バッシュ)現在主流のシェル

ksh(ケーシェル) IBM系

ユーザーインターフェイス

Linuxでは、CUI(Character User Interface:キーボードを使って文字入力で操作するインターフェイス)とGUI(Graphical User Interface:マウスなどを使ってウィンドウやポインタなどグラフィカルな操作をするインターフェイス)を使い分けることができる。

開発現場では、効率化のためGUIを使わずにGUIのみを使うことが多い。

ログイン

Linuxは、遠隔操作による同時使用を前提に作られているため、起動時には必ずログインが必要になる。

デフォルトのログイン名はroot。

ディレクトリと階層構造

Windowsではファイルはフォルダに格納されるが、Linuxhではディレクトリに格納される。

ディレクトリの最上位を / (ルート)である。(WindowsのCドライブやDドライブにあたる)

たとえば、

/data/test.txt

はルートディレクトリの下のdataディレクトリにtest.txtというファイルが入っていることを表す。

/ の読み方は一番左のみルート、以降はスラッシュ。(スラと略すこともある)

. (ドット)はテンと読むことがある。

今回は、ルート データ スラ テキスト テン テキスト

ホームディレクトリ

各ユーザーには、あらかじめ1つずつホームディレクトリが与えられている。

/home/ユーザー名

ユーザー

ユーザーには管理者権限を持つスーパーユーザーと、それ以外の一般ユーザーがある。

スーパーユーザーのデフォルトのユーザー名は root 、ホームディレクトリは /root

一般ユーザーのホームディレクトリは /home/ユーザー名

ディレクトリ構造

Linuxのディレクトリは / を最上位とした逆ツリー形式になっている。

ファイルとディレクトリを関連付けることをマウント、関連付けるポイントをマウントポイントと呼ぶ。

パス(Path)

パスは、ファイルやディレクトリの場所を表す道順のこと。

絶対パス:ルートディレクトリを起点。
相対パス:カレントディレクトリを起点。

■カレントディレクトリ(current directory) =今いるディレクトリ 
 ./ (ドットスラッシュ 末尾のスラッシュは省略可)

■親ディレクトリ =カレントディレクトリの1つ上の階層のディレクトリ
../ (/ドットドットスラッシュ)

■子ディレクトリ =カレントディレクトリの1つ下
ディレクトリ名/

■兄弟ディレクトリ =同じ親を持つディレクトリ
../ディレクトリ名/

■ホームディレクトリ =各ユーザーのディレクトリ
~/ (チルダスラッシュ)
※ ~ (チルダ)ホームディレクトリのこと

プロンプト

プロンプトはCUIの画面で表示されるコマンド入力を促す記号のこと。

[ユーザー名@ホスト名 (半角スペース)カレントディレクトリ]#

# (シャープ)スーパーユーザーの権限を表す記号
$ (ドル)一般ユーザーの権限を表す記号
※権限によって使える機能の範囲が異なる。

コマンド

コマンドは、ユーザーがコンピュータに与える命令。プロンプトの表示中に入力できる。

構文

コマンド オプション 値 引数

コマンド:どんな処理をするのか
オプション:詳しい指示 -(ハイフン)+アルファベット1文字(大・小別)で表す。
値:オプションの値
引数:処理の対象
※値や引数が複数ある場合は半角スペースをあけて入力する。

Linuxを終了するコマンド

構文

logout ログアウト
exit ログアウト、プロセスの終了
shutdown システムのシャットダウン、再起動

shutdown [-h|-r]

オプション

-h シャットダウン
-r 再起動(reboot)

[] (ブランケット)なくてもよい
| または

コマンドの例

shutdown  シャットダウンか再起動
shutdown -h シャットダウン
shutdown -r now 今すぐ再起動

※引数で処理のタイミングとメッセージを指定できる。たとえば now なら今すぐ実行する。

ファイル/ディレクトリ管理のコマンド

pwd (print working directory) 

機能

カレントディレクトリの絶対パスを表示する

ls (list)

機能

ディレクトリやファイルの情報を表示する

構文

ls [オプション] ディレクトリ(ファイル)のパス

オプション

-a ドットファイル(隠しファイル)を含むすべえのファイルを表示する
-l ファイルの詳細を表示する
※白文字→ファイル 青文字→ディレクトリ

cd (change)

機能

カレントディレクトリを移動する

#### 構文
cd ディレクトリのパス

注意

cdで移動したらpwdでカレントディレクトリを確認する

mkdir(make directory)

機能

ディレクトリを作成する

構文

mkdir [オプション] 作成ディレクトリ

オプション

-m モード ディレクトリのモードを指定して作成
-p 親ディレクトリも含めて作成

注意

mkdirでディレクトリを作成したら、作成できたことをlsでチェックする

touch

機能

ファイルのタイムスタンプの更新(既存ファイル)、新規ファイルの作成(ファイルなし)。

構文

touch ファイルパス

オプション

-t タイムスタンプの指定

注意

lsでチェック

mv(move)

機能

ファイルの移動(ディレクトリ→ディレクトリ)、ファイル名の変更

構文

mv [オプション] 移動元パス 移動先パス

オプション

-f 上書きの確認をしない

注意

lsでチェック

cp(copy)

機能

ファイルやディレクトリのコピー

構文

cp [オプション] コピー元パス コピー先パス

オプション

-f 上書き確認しない
-i デフォルト
-r ディレクトリをコピー

注意

lsでチェック

rm(remove)

機能

ファイル、ディレクトリの削除

構文

rm [オプション] ファイル(ディレクトリ)のパス

オプション

-f 削除の確認しない
-i デフォルト
-r ディレクトリの削除 

注意

ディレクトリを削除すると中のファイル1つ1つを確認されるので、-rは-fとセット(-rf)で使う
lsでチェック

テキストフィルタのコマンド

cat

機能

ファイルの中身を表示する

構文

cat [オプション] ファイルパス

オプション

-n 行番号をつける

less / more

機能

ファイル内容をページ単位で表示する

構文

less ファイルパス

注意

lessやmoreはプログラムを実行するので、使用中は実行できるコマンドが限られる。
Enterキーで1行分、Spaceキーで1ページ分移動する
終了は q

head

機能

ファイルの先頭を表示

構文

head [オプション] ファイルパス

オプション

-☆ 上から☆行目まで表示 ※☆には数字を代入

tail

機能

ファイルの末尾を表示

構文

tail [オプション] ファイルパス

オプション

-☆ 下から☆行目まで表示

注意

ファイルの末尾に最新情報があるため、よく使うコマンド。

その他のコマンド

date

機能

現在日時を表示する

cal

機能

カレンダーを表示する

echo

機能

指定した文字列を表示する

構文

echo “文字列”

注意

echo単体では使わない。
シェルスクリプトを作るときメッセージを表示する。
“”(ダブルクオーテーション)はコンピュータ的には同じ記号。

man

機能

マニュアルドキュメントを表示する

構文

man [コマンド|サービス|デーモン]

vi

viはLinuxのCUIで使うテキストエディタのこと。

viの起動

構文

vi ファイルパス

注意

入力したファイルがあれば既存ファイルを開く。最下部に、ファイル名、行数、文字数が表示される。
入力したファイルがなければ新規ファイルを作成する。最下部にNew fileと表示される。

viの終了

「:」、「w」(保存)、「q」(終了)、「!」(強制)の4つのキーを組み合わて使う

:w 保存
:w! 強制保存
:q 終了
:q! 強制終了
:wq 保存して終了
:wq! 保存して強制終了

モード

viには2つのモードが存在する。

コマンドモードではコピーや削除などの編集操作を、挿入モードでは文字入力を行うことができる。

■挿入モード→コマンドモード
Escキー

■コマンドモード→挿入モード
i カーソルの場所から文字を挿入
a カーソルの場所の1つ右から文字を挿入
o カーソルの場所の次の行から文字を挿入
I カーソルのある行の行頭から文字を挿入
A カーソルのある行の行末の1つ右側から文字を挿入
O カーソルのある行の1つ前の行から文字を挿入

カーソル移動

UNIXやLinuxは、まだコンピュータにカーソルキーが搭載される前から存在していたので、viのカーソル移動には別のキーを使う。

h 上
l 下
j 左
k 右

0(ゼロ) 行頭へ
$ 行末へ
G 最終行へ
☆G ☆行目へ
:☆ ☆行目へ

編集コマンド

コピペ

yy コピー
☆yy ☆行コピー
p カーソルの下の行にペースト
P カーソルの上の行にペースト

削除

x 削除
☆x ☆文字削除
dw 単語ごと削除
dd 1行削除
☆dd ☆行削除
D カーソルから行末まで削除
d^ カーソルから行頭まで削除 ※ ^ =ハット

繰り返し・取り消し

. コマンド繰り返し
u = ctrl+Z
U 行全体を取り消し

その他

:set number 行番号を表示
:set nonumber 行番号を非表示

————————–
ニシムラ・ケイイチの詳しいプロフィールとお問い合わせはこちらからお願い致します。
お問い合わせ

ブログ更新はTwitterにてお知らせしております。ぜひフォローしてください!
@nissy421