Engineer of the lawyer

I was able to pass the Network Specialist. Next target is the Project Manager.

第3章 GNU&UNIXコマンド

【コマンドライン操作】

システムにログインした直後に起動されるシェルはログインシェルと呼ばれる。ユーザごとのログインシェルは/etc/passwdファイルに記述されている。

一般ユーザの場合はシェルは$を表示してユーザからの指示を待つ。

スーパーユーザの場合は#を表示してユーザからの指示を待つ。

 

カーソルの移動

Ctrlキーを押しながらA → 行頭

Ctrlキーを押しながらE → 行末

 

コマンドラインの編集

Ctrlキーを押しながらD → カーソル部分の一文字を削除

Ctrlキーを押しながらH → カーソル部分の左の一文字を削除

Ctrlキーを押しながらL → いったん画面をクリアしてから再表示する

 

実効制御

Ctrlキーを押しながらC → 処理を中断させる

Ctrlキーを押しながらZ → 処理を一時停止状態に

Ctrlキーを押しながらS → 画面をロック

Ctrlキーを押しながらQ → 画面ロックを解除

 

変数の定義

#変数名=値

=の前後にスペースを入れないこと

先頭の文字に数字を入れないこと

大文字と小文字は区別される

値にスペースなどが入る場合は ” 、’ で囲むこと

定義された変数はechoコマンドを使って参照できる→変数を参照する場合は、変数名の先頭に$をつけること

 

(例)

$ test=hogehoge

$ echo $test

hogehoge

 

変数を削除

#unset 変数名

このとき変数名の前に$はつけない

 

 

環境変数PATH

コマンドには外部コマンドと内部コマンドの二種類がある。

内部コマンド → シェル自体に組み込まれているもの

外部コマンド → 独立したプログラムとして存在するもの

外部コマンドの場合、シェルはそのコマンドがどこに置かれているのかを環境変数PATHに指定されたディレクトリを順に調べて見つけ出す。コマンドがおかれたディレクトリを環境変数PATHに追加することを「パスを通す」という。

環境変数PATHにパスを追加するには、.bash_profileなどの環境設定ファイルのPATH設定を修正するか、次のコマンドを実行する。

 

#PATH=$PATH:追加するディレクトリ名

 

 

コマンドの実行

; で区切ると最初のコマンドが正常に終了してもしなくても次のコマンドが実行される。

$$ で区切ると最初のコマンドが正常に終了した場合に次のコマンドが実行される

 

|| で区切ると最初のコマンドが正常に終了しなかった場合に次のコマンドが実行される

(例)

 

 

hogehoge;ls

bash: hogehoge: コマンドが見つかりません

ダウンロード  テンプレート  デスクトップ  ドキュメント  ビデオ  音楽  画像  公開

 

hogehoge&&ls

bash: hogehoge: コマンドが見つかりません

 

hogehoge||ls

bash: hogehoge: コマンドが見つかりません

ダウンロード  テンプレート  デスクトップ  ドキュメント  ビデオ  音楽  画像  公開

 

 

 

’ シングルクォーテーションで囲まれた文字は変数でも文字列として扱う

” ダブルクォーテーションで囲まれた文字は文字列として扱うが、変数がある場合は文字列としてではなく変数として扱う

\  ダブルクォーテーションで囲いながらも文字列として扱いたい変数の直前に追記することで変数として扱われる

(例)

 

echo "今日の日時は→$test"

今日の日時は→11.11

 

 

echo "今日の日時は→\$test"

今日の日時は→$test

 

 

↑キー または Ctrl+P → 最近実行したコマンドが表示される

↓キー または Ctrl+N → 逆順に実行したコマンドが表示される

!! 直前に実行したコマンドを再実行する

 

マニュアルの参照

#man

man man → man自身のマニュアルを参照する

man --a passwd  → すべてのpasswdマニュアルページを表示する

 

 

ファイル操作コマンド

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

#ls 

ls  [オプション] [ファイル名またはディレクトリ名]

オプション

-a [.]から始まるファイルも表示する

-A [.]から始まるファイルも表示するが、カレントディレクトリと親ディレクトリは表示しない

-d ディレクトリ自身の情報を表示

-F ファイルの種類も表示

-i iノード番号を表示する

-I ファイルの詳細な情報を表示する

-t 日付順に表示する

-h 単位つきで表示する

 

ディレクトリやファイルをコピーする

#cp

cp [オプション] コピー元ファイル名 コピー先ファイル名

cp [オプション] コピー元ファイル名 コピー先ディレクトリ

オプション

-f コピー先に同名のファイルがあれば上書きする

-i コピー先に同名のファイルがあれば上書きするかどうか確認する

ーp コピー元ファイルの属性(所有者、所有グループ、アクセス権、タイムスタンプ)を保持したままコピーする

-r,-R ディレクトリ内を再帰的にコピーする(ディレクトリをコピーする)

-d シンボリックリンクシンボリックリンクとしてコピーする

-a できる限りもとファイルの構成と属性をコピー先でも保持する(-dpRと同じ)

※ディレクトリをコピーするときは必ず -r をつけること

 

指定した場所にファイルやディレクトリを移動させる(名前の変更にも用いられる)

#mv

オプション

-f 移動先に同名のファイルがあれば上書きする

-i 移動先に同名のファイルがあれば上書きするかどうか確認する

 ※同一のディレクトリ内でファイルを移動するとファイル名を変更することができる

(例)

 $ ls

oldtest.txt

$ mv oldtest.txt newtest.txt

$ ls

newtest.txt

 

空のディレクトリを作成する

#mkdir

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

オプション

-m 指定したアクセス権でディレクトリを作成する

-p 必要なら親ディレクトリも同時に作成する

 

ファイルやディレクトリを削除する

#rm

rm [オプション] ディレクトリ名

オプション

-f ユーザへの確認なしに削除する

-i 削除する前にユーザに確認する

-r,-R サブディレクトリも含め、再帰的にディレクトリ全体を削除する

 

空のディレクトリを削除する

※ディレクトリ内にファイルやサブディレクトリが存在する場合削除できない

#rmdir 

rmdir [オプション] ディレクトリ名

オプション

-p 複数階層の~ディレクトリを削除する

 

ファイルのタイムスタンプ(アクセス時刻と修正時刻)を、現在時刻か、指定した日時に変更する。

#touch

touch [オプション] ディレクトリ名

オプション

-t タイムスタンプを変更する

-a アクセス時刻だけ変更する

-m 修正時刻だけ変更する

 

ファイルの種別を表示

#file

file ファイル名

 (例)

 

[hogehoge@localhost ~]$ file /etc/hosts

/etc/hosts: ASCII text