Linux入門講習会
九州大学情報基盤研究開発センター

本資料は以下のURLで閲覧できます.
https://www.cc.kyushu-u.ac.jp/scp/users/lectures/linux1/
1

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

2

ＵＮＩＸ とは OS（Operating System）の一種
 OS:

計算機の管理を行う基本ソフトウェア

 キーボードからの入力、ディスプレイへの出力､ファイルの読み書き、プロセスの管理など
 代表的な OS：
UNIX、Windows、DOS、macOS 等
ディスプレイ

計算機

OS
CPU
周辺機器
（ハードディスク､プリンタ等）

キーボード

3

プロセス

Linuxとは
 UNIX風のOS 厳密にはUNIXではないが、UNIXとの互換性を意識

 Linuxの構成要素の多くはフリーのソフトウェア
 誰でもソースコードの殆どを参照できる．

 Linuxと呼ばれるOSにも多くの種類がある
 RedHat， Debian， SUSE等の系統がある．
 有料で販売されているものもある．
4

情報基盤研究開発センターの研究者用計算機システム
スーパーコンピュータシステムITO
 サブシステムA (2000ノード)
 Intel Xeon (Skylake) 3.0GHz, 18core × 2 / node 192GiB サブシステムB (128ノード)

 Intel Xeon (Skylake) 2.3GHz, 18core × 2 / node
 384GiB NVIDIA Tesla P100 × 4 / node

 基本フロントエンド (160ノード)

 Intel Xeon (Skylake) 2.3GHz, 18core × 2 / node
 384GiB

 大容量フロントエンド (4ノード)

 Intel Xeon (Broadwell) 2.2GHz, 22core × 16 / node 12TiB

5

情報基盤研究開発センターへの利用登録
 アカウント

情報基盤研究開発センターの研究用計算機の利用権
 以下の Webページで「利用申請書」を入手し記入・押印後提出

https://www.cc.kyushu-u.ac.jp/scp/service/guidance/application/
 １～２週間程度で「利用承認書」送付



利用承認書：アカウントに関する情報
 登録番号（アカウント名、ユーザー ID）
 初期パスワード

6

情報基盤研究開発センターの問い合わせ窓口
 ホームページ： https://www.cc.kyushu-u.ac.jp/scp/
 計算機の利用方法等の資料
 利用申請書、利用負担金表
 運用情報（保守、障害）等

 電子メール：

request@iii.kyushu-u.ac.jp

7

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

8

計算機への接続 中～大規模の計算機は通常複数の利用者で共同利用するので，ネットワークを介した遠隔利用が主体
UNIX等はネットワーク経由の共同利用が得意

TeraTerm
ito $ ■

ito.cc.kyushu-u.ac.jp

hpc-lecture.cc.kyushu-u.ac.jp
TeraTerm
hpc-lecture $ ■9PCからの接続
ログイン Windowsより:


PuTTY, TeraTerm等の接続ソフトウェアを利用

 UNIX, macOSより:

sshコマンド

ファイル転送 Windowsより：

WinSCP等のソフトウェアを利用

 UNIX, macOSより：

scpコマンド
sftpコマンド10

接続用ソフトウェアの入手
 TeraTerm
http://sourceforge.jp/projects/ttssh2/

 WinSCP
http://winscp.net/eng/docs/lang:jp

11

インストール手順 TeraTerm
https://www.cc.kyushuu.ac.jp/scp/system/ITO/02_login/9-1.html

 WinSCP
https://www.cc.kyushu-u.ac.jp/scp/
system/manual/etc/WinSCP/WinSCP_install.html

12

セッション：
Linux の利用開始から終了まで
 Linuxへの接続
 Linuxへのログイン パスワードによる認証後、セッション開始

 作業
 ファイル操作等

 Linuxからのログアウト
 セッション終了

13

接続
 Windowsの場合
 TeraTermを起動
 Tera Term New Connection

ウィンドウで Hostにホスト名（hpc-lecture.cc.kyushu-u.ac.jp）を入力
 Service の

SSH にチェックして [OK]
 SECURITY WARNINGウィンドウがでたらAdd this machine ... をチェックして [Continue] エラーが出ても、慌てず [OK] macOSの場合
 ターミナルを起動
 出てきた画面で以下のように入力し、改行
ssh ‐l ユーザID

hpc‐lecture.cc.kyushu‐u.ac.jp

14

ログイン
 Windowsから TeraTermで接続している場合
 ユーザＩＤ，パスワードを入力
 Use plain password to log inをチェックして[OK] macOSから接続している場合
 パスワードを入力

15パスワードの重要性
 ユーザの認証に利用
 他人に知られた場合の危険 ファイルの破壊
 そのユーザになりすまして悪用される
 etc.

 パスワードの管理
 他人に知られないようにする

passwd コマンド
→ 定期的に変更することを推奨 メモ等、他人が読める形で残さない
 類推が容易なパスワードは避ける(自分の名前や誕生日等)→ 大文字・小文字・数字・記号を含めると強度が上がる パスワードの変更：

16サーバからのログアウト
 exit コマンドによりセッション終了(ログアウト)
 Windowsのログオフやシャットダウンをする前に必ずLinux からログアウト

 正常にログアウトしないと実行中のプログラムがそのまま残る可能性あり 「ログアウト」と「シャットダウン」の違い
 シャットダウン・・・コンピュータの電源を切ること
 ログアウト・・・・・・コンピュータの使用をやめること（電源は切らない）
17

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

18

シェル
 ファイルの操作やプログラムの実行を行うためのインターフェイス
 Windowsではexplorer，mac OSではFinderに相当
 基本的な操作は全てシェル上で行う

 Linuxでは複数のシェルが利用可能

19

シェル - bash RedHat系やSUSE系で既定のシェルとして採用されているシェル．

 様々な機能が利用可能で比較的高機能.
 補完機能コマンドやファイル名を途中まで入力し,TABキーを押すと残りを補完する.
 コマンド履歴の呼び出し機能
今まで入力したコマンドを矢印キーの上下で呼び出す.
 コマンド行編集機能
入力中のコマンドの書き換え、
カットアンドペースト等.
20bashの利用法
 通常のコマンドに加え,以下の機能を利用可能
キー操作

機能

→

カーソルを一つ右に移動←

カーソルを一つ左に移動

C-a, Home 左端に移動
C-e, End

右端に移動

C-u

全部削除

C-k

カーソルから右側を切り取り

C-y

直前に切り取った部分を貼り付け↑実行したコマンド履歴の古い方へ↓実行したコマンド履歴の新しい方へ

TABキー

コマンドやファイルの補完※ C-a… Ctrl キーを押しながら a を押す．

21

Linux のコマンド入力= コマンド入力待ち[ユーザ名@hpc-lecture]$ ■ プロンプト 基本的なコマンドの形式

コマンド名 オプション 引数
pwd
cd
test
ls
-l
test
 半角スペースで区切る

 打ち間違えたら BackSpace(後退), C-u (クリア) で訂正
 改行キーを押して実行
22

Linux のコマンド入力
 オプションが複数ある場合
 Linuxの基本的なコマンドで、「ハイフン1つ＋アルファベット1文字」のオプションが複数ある場合，ハイフンの後にアルファベット部分を連続して書いても同じ結果が得られる．
 例）$ ls -a -l⇓ 同じ操作$ ls -al23

ユーザ・グループ
 Linuxではアカウント(ユーザ)の管理のためグループというものが存在する。
 所属しているグループはidコマンド(後述)で確認できる。

 グループの用途例
 グループ内でファイルを共有
 ディスク使用量の上限をグループ毎に設定

24ユーザ情報の確認
id コマンド 使い方：

id [ユーザ名]（引数なし：実行したユーザについて表示） 実行結果：% id
uid=501(user01) gid=501(user01) 所属グループ=501(user01),500(users)

①

②

③

 ①

現在のユーザ ② プライマリグループ
 ③ 所属しているグループ
25

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

26

Linuxにおけるファイルの整理
 ファイルの数が多くなると目的のファイルを探すのが面倒 新しく作るファイルの名前を考えるのが面倒 ディレクトリ（＝ファイル分類用の箱）を利用して整理ファイルを目的別に分類して格納することにより,管理（探索,再利用,削除等）を容易にする.
 Windows のフォルダと同じ働き.
fortranpascaljikken27

ファイルの分類法
 自分が管理しやすいように.
 例えば

１．研究に関連するファイルはwork ディレクトリの中に置くことにする.
２．さらに, workディレクトリの中にプロジェクト毎のディレクトリを用意し分類する.

proj3

proj1

proj4

proj2

work
28

ファイルとディレクトリの構造 準備：

ディレクトリにファイルが入っている状態をこのように表すことにする.
1つのディレクトリに
1つのファイルが入っている状態

複数のファイルが入っている状態
test1.f90

fortrantest2.f90

test3.f90

fortrantest.f90

ディレクトリとファイルが混在している状態
april

may

fortrantest.f90
29

test.f90

test.f90

サーバ全体のファイル構造
 逆さにした木のような構造


一番上にルート（根）ディレクトリ
ルートディレクトリ- 階層構造の起点

/
etc

usr0

home

usr1

usr9

usr
ホームディレクトリ- ログイン時のカレントディレクトリ
- ユーザー毎に用意

a99999aa00009awork
proj1
test.f90

tmp

カレントディレクトリ
-作業対象となるディレクトリ
- cd コマンドで適宜変更可- 最初（ログイン直後）はホームディレクトリ
30

ホームディレクトリとカレントディレクトリ
 カレントディレクトリ（＝現在“いる”ディレクトリ）を基準としてファイルやディレクトリの場所を指定する. (⇒相対パス：後述)
 ログイン直後はホームディレクトリ

（＝自分専用のディレクトリ）に ”いる”.


例1： カレントディレクトリに ディレクトリ作成$ mkdir work

例2： カレントディレクトリの test.f90 を
カレントディレクトリの下の work ディレクトリに移動$ mv test.f90 work31

カレントディレクトリの確認
pwd コマンド 使い方：

pwd
 使用のタイミング：
 cdコマンドで移動した後の確認.
 重要な操作（ファイルの削除や移動等）を行う前の確認.

32

ファイルの一覧表示
ls コマンド 使い方：ls[オプション] [ファイル名またはディレクトリ名]

例1： カレントディレクトリのファイル,ディレクトリを表示$ ls

例2： workディレクトリの下のファイル,ディレクトリを表示$ ls work

例3： カレントディレクトリの下のファイル,ディレクトリの詳細情報を表示 ※詳細情報の見方については後述$ ls -l

例4： カレントディレクトリの下のファイル、サブディレクトリの下のファイルを表示$ ls -R33

ドットファイル(隠しファイル) 普通にlsコマンドを実行した際には表示されないファイルがある．
 ファイル名の先頭が . （ドット）になっているファイル
 主に設定ファイル等がこの形式のファイルになっている．

 lsコマンドで表示するには-aオプションを追加する．
 例：カレントディレクトリの下の隠しファイルを含めた全ファイル，ディレクトリの詳細情報を表示$ ls -al34

ディレクトリの作成
mkdir コマンド
 使い方：

mkdir 作成したいディレクトリ名
空白（スペース)を忘れない 例： workディレクトリの作成$ mkdir work

work

35

別のディレクトリに移る
cd コマンド 使い方：

cd[移動先ディレクトリ]

別のディレクトリに移る ＝ カレントディレクトリの変更
 移動先ディレクトリを指定しない場合,
ホームディレクトリに移る.


例１： workディレクトリに移る.

カレントディレクトリ

a99999a$ cd work
work

例２： ホームディレクトリに移る.

$ cd

test.f90

36

別のディレクトリに移って作業 作業対象のファイルやディレクトリがある

ディレクトリに移って作業する.


例： work ディレクトリに移って,各プロジェクトのディレクトリを作成する.
$ cd work$ mkdir proj1 proj2 proj3 proj4

a99999a

カレントディレクトリ

work
test.f90

proj1 proj2

proj3 proj4

ディレクトリを移らない場合,キー入力が大変：$ mkdir work/proj1 work/proj2 work/proj3 work/proj437

パス： ファイルやディレクトリの場所
 目的のファイルやディレクトリまでたどる際の経路（path）にあるディレクトリを列挙
二通りの記述方法（どちらでも良い） 相対パス：カレントディレクトリからたどるパス/ 絶対パス：ルートディレクトリからたどるパス

home

絶対パス

user9

カレントディレクトリ

a99999awork

相対パス

test.f90
38

パスの記述方法:「ディレクトリの下」 を / で記述/ 例：(今ホームディレクトリにいる状態で)workディレクトリの下の test.f90 を指定

相対パス（カレントディレクトリの下の)workの下のtest.f90
work/test.f90

home
user9
a99999aworkカレントディレクトリ
絶対パス
test.f90
ルートディレクトリの下の home の下のusr9 の下の a9999a の下の work の下の test.f90/home/usr9/a99999a/work/test.f90


ルートディレクトリも / で記述する.

39

パスの記述に用いる特殊な記号
 一つ上のディレクトリ
..

（ピリオド二つ）例： カレントディレクトリの一つ上に移る
te199999$ cd ..
fortran カレントディレクトリ
.

カレントディレクトリ

（ピリオド一つ）

例： 一つ上のディレクトリの test.f90
をカレントディレクトリに移動する.

$ mv ../test.f90 .
 ホームディレクトリ
~

例： ホームディレクトリの work ディレクトリに移る.

$ cd ~/work40

ファイルの移動
mv コマンド 使い方：

mv


移動元

移動先

例１： test.f90 を workディレクトリに移動$ mv test.f90 work

test.f90
test.f90

work

例２：test.f90 の名前を test2.f90 に変更$ mv test.f90 test2.f90



例３：test1.f90, test2.f90, test3.f90 を
test1.f90
test ディレクトリに移動$ mv test1.f90 test2.f90 test3.f90 test

test.f90

test2.f90

test1.f90

fortrantest

41

ファイルの複製
cp コマンド 使い方：

cp [オプション] 複製元 複製先

例1： test.f90 を test2.f90 という名前で複製$ cp test.f90 test2.f90



例2： test.f90 と test2.f90 を work ディレクトリにコピー$ cp test.f90 test2.f90 work

例3： （backupディレクトリがまだ存在しなければ）work ディレクトリ全体を backupという名前で複製$ cp -r work backup

例4： （backupディレクトリが既に存在すれば）work ディレクトリ全体をbackupディレクトリの下に複製$ cp -r work backup

42

ファイルの削除
rm コマンド 使い方：rm[オプション]

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

例1： test.f90 と hello.f90 を削除$ rm test.f90 hello.f90


例2： workディレクトリとその下の全てのファイルを削除$ rm -r work

例3： 削除の前に確認$ rm -ir work43

ファイル名の補完 ＊ ファイル名の一部だけを入力して操作できる
 例： ファイル名の最初が test で，末尾が f90であるファイル全てを testディレクトリに移$ mv test*f90 test

 便利で危険な機能 思いもよらないファイルまで操作してしまうことがあるので注意．

$ rm *← カレントディレクトリ内の全ファイルを削除してしまう
44

Linuxのファイルに関する注意 削除したら（原則として）復元不可能
「ごみ箱」 は存在しない.

 コピーや移動で既に存在するファイルがコピー先や移動先になっている場合上書きされる.


この場合も復元不可能

 各ファイルについて削除や上書きの前に確認する -i オプ

ションを利用する.
rm –i –r ディレクトリ
mv –i ファイル１ ファイル２ ファイル３ ディレクトリ
cp –i ファイル１ ファイル２ ファイル３ ディレクトリ
45

ファイルの内容表示
less コマンド 使用法：

less ファイル名

 ファイルの内容を１ページずつ表示
 閲覧中は以下のキーを利用 次のページへ：

SPACE もしくは f
 前のページへ： b １行下へ： Enter もしくは j もしくは ↓ １行上へ： k もしくは ↑ 閲覧終了： q

46

ファイルのアーカイブ
tar コマンド 使用法：
 圧縮

tar zcf 書庫ファイル名 圧縮するファイル（複数可）
 展開
tar zxf 書庫ファイル名
 例１：testディレクトリとtest2ディレクトリを

test.tar.gzに圧縮$ tar zcf test.tar.gz test test2
 例２：test.tar.gzを展開$ tar zxf test.tar.gz
47

実習1

実習１： ログインとファイル操作 ログイン ファイル操作
 ログアウト48

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

49

Emacs(イーマックス）
 UNIXにおける標準的なエディタ
 プログラムや設定ファイルなどの編集に利用.
 実は,メールの読み書きやWebページの閲覧も可能.

50

Emacs
 使い方

emacs


ファイル名

例： hello.c の編集$ emacs hello.c
 指定したファイルがまだ存在しない場合は新規作成．
 既に存在する場合は読み込んで修正．


修正後保存すると，修正前のファイルがファイル名～という名前で残る．
51

Emacs の画面
 起動後

テキストウィンドウ:[--]E_:----Emacs: hello.c (C)--L1--All---

文書の編集を行う

モード行: Emacs の状態を表示
ミニバッファ: コマンドの入力､Emacs からのメッセージ表示

ファイル名

現在のカーソル位置の行
52

Emacsのコマンド
キー操作
C-a

意味
行の先頭に移動

C-e
C-k
C-y

行の末尾に移動
カーソルから右を切り取り直前に切り取った部分を貼り付け

C-g

取り消し（画面が乱れた時に使用）
ファイルにセーブ
Emacs の終了

C-x C-sC-x C-c※ C-x… Ctrl キーを押しながら x を押す．

その他コマンドの詳細は「Emacsコマンド一覧」を参照

53

連続行のコピー 連続行の切り取り：

C-k を連続して押すと連続行を切り取り可 C-k 以外の操作を行うと連続行の切り取り終了
 C-y を押すとその時点で切り取られた連続行を全て貼り付け C-k 以外の操作を行った後再び C-k を押すと,それまでの切り取り分はクリアされる.

54

Emacsで変な画面になったときは
 何かのコマンドを誤って入力した場合,

そのコマンドに関するメッセージが表示される.
 まず,


C-g （取り消し） を数回押してみる.

元に戻ったら, 入力を続ける.

一旦 C-x C-c でEmacs を終了する.

 元に戻らなければ,Save file .... ? には ｙ を入力.
 その後,あらためて$ emacs さっき編集していたファイルの名前でEmacsを起動.


55

実習2

実習2： テキストの編集
 Emacsを使ったテキストファイルの編集

56

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

57

ファイルの一覧表示
ls コマンド（詳細）$ ls –ldrwx------ 14 user1 user
drwxr-xr-x 3 user1 user
-rwxr--r-- 1 user1 user

4096
4096
18

①

⑤

②

③

④

3月
3月
3月

1 11:16 2013 .
1 11:16 2013 ..
1 11:16 2013 a.txt⑥

 ① ”d”であればディレクトリ、”-”であればファイル
 ② アクセス許可(後述) ③ 所有ユーザー
 ④ 所有グループ
 ⑤ ファイルサイズ (ディレクトリの場合は特殊な数字)
 ⑥ 更新日時58

ファイルの所有権
 Linuxではファイル等に対して所有者情報が2種類あり、それぞれ記録されている。
 所有ユーザー
 所有グループ 自分が所有ユーザーであればアクセス許可の変更

を行える。

59

アクセス許可(パーミッション)
 各ファイルおよびディレクトリには、それぞれアクセスできるユーザを管理するための情報が付加されている。
 一つのサーバを複数のユーザが共有利用するシステム

ではアクセスの管理が必要。
 各ファイル・ディレクトリのアクセス許可は、lsコマン

ドを-lオプション付きで実行すると確認できる。
 各行の一番左側に表示される「-rw-rw-r--」等の文字列

60アクセス許可(パーミッション) Linuxのファイルシステムでは基本的に、「所有ユーザ」・「所有グループ」・「その他」の3つのユーザ区分に対して、それぞれアクセスの許可を設定できる。
 各ユーザがどの区分に該当するかは次のプロセスで決まる。
ファイルを操作しようとするユーザ(またはグループ)が、
 「所有ユーザ」と一致していれば「所有ユーザ」
 「所有グループ」と一致していれば「所有グループ」
 上記のいずれでもない場合「その他」
61

アクセス許可（パーミッション） アクセス許可の種類は3種類
 R: 読み取り(Read) W: 書き込み(Write) X: 実行(eXecute) ファイルの場合は字句通りの操作を行えるが、ディレクトリが持つアクセス許可は少し意味が異なる。
 R: ディレクトリ内のファイル一覧の読込
 W: ディレクトリ内の構造の書込(変更) ディレクトリ内にあるファイルの作成・削除・リネーム等

 X: ディレクトリ内への移動

62

アクセス許可の変更
chmod コマンド
 使い方：

chmod [オプション] モード ファイル
 例：

a.txtを所有グループのメンバーが読書できるようにする$ chmod g+rw test.txt
test(ディレクトリ)と、その下にある全てのものを、所有ユーザー以外は読書できなくする$ chmod –R go-rw test.txt
63chmod コマンドの”モード”
 “モード”の部分は次の3つの要素から構成される。
 アクセス許可の変更を行いたい区分(複数可) u: 所有ユーザ

g: 所有グループ o: その他
 もしくは、 a: 全ての区分
 権限の付与・剥奪・指定値への変更の指定
 +: 許可を追加-: 許可を取り上げる =: 指定値に変更する

 変更を行いたいアクセス許可の種類(複数可) r: 読込

w: 書込 x: 実行 この3要素を目的によって組み合わせる。
64

オンラインマニュアルの利用
 使い方：man

調べたいコマンド

例： コマンド ls のマニュアルを表示$ man lsLS(1)ls (fileutils) 4.1 (April 2001)

LS(1)

NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory bydefault). Sort entries alphabetically if none of -cftuSUX
nor --sort.
-a, --alldo not hide entries starting with .
-A, --almost-all
do not list implied . and ..
-b, --escapeprint octal escapes for nongraphic characters← q で終了

65

漢字コード変換
 使い方

nkf

オプション ファイル

計算機内部では文字が番号（コード）で扱われる．
 日本語（漢字，ひらがな，カタカナ）が扱える文字コード
EUC
主に UNIX で利用されていたShift-JIS 主にPC（Windows, Macintosh）で利用
UTF8
近年普及している多言語対応コード
 例： 文字化けファイルを表示してみる$ cat char-bug.txt← /tmp/char-bug.txt
 例： 文字コードをUNIX 向け(UTF8)に変換$ nkf -w char-bug.txt > char-bug_utf.txt
 例： ファイルの文字コードを判別
$ nkf
$ nkf

-g
-g

char-bug.txt
char-bug_utf.txt

66

サーバ間のファイル転送 使い方

scp オプション 転送元ファイル 転送先
 例： サーバから手元のPCへファイル転送$ scp

ユーザ名@hpc-lecture(略).jp:~/test.txt./※ 手元のPC上で操作~/はホームディレクトリを意味./ は手元PCでのカレントディレクトリを意味
 例： 手元のPCからサーバへファイル(ディレクトリ)転送$ scp-r ./testdir

ユーザ名@hpc-lecture(略).jp:~/※ 手元のPC上で操作
testdirはディレクトリ
-r はディレクトリを転送する際に必要なオプション67

ファイルの検索 使い方

find 検索場所 -name 検索ファイル名
 指定したディレクトリ配下で指定したファイル名に該当するファイルを検索する
 例： ホームディレクトリ配下で名前に test を含むものを検索$ find ~/ -name "*test*"

68ファイル内の文字列検索
 使い方

grep 検索文字列 対象ファイル
 指定したファイル内で検索文字列に該当する行を検索する
 例： test.c 内で文字列 abcdef を含む行を検索$ grep "abcdef" test.c 例： カレントディレクトリ内の全ファイル内で文字列 abcdef を含む行を検索$ grep "abcdef" ./*69

出力結果をファイルに出力

リダイレクション> 左側のコマンドからの出力を画面に表示せず右側のファイルに出力>> 左側のコマンドからの出力を画面に表示せず右側のファイルに追記< 左側のコマンドに対する入力として右側のファイルの内容を利用例) ls コマンドの結果を dirs.txt に出力
更にその内容を整列して rdirs.txt に保存$ ls > dirs.txt$ sort -r < dirs.txt > rdirs.txt
hello.c
hello2.c
work/

work/
hello2.chello.c70

標準出力と標準エラー出力（１）

画面に表示される出力は実は2種類ある
標準出力・・・通常の出力。 「1>」 で指定 ( 「>」のみでも可)
標準エラー出力・・・エラーメッセージ等の出力。 「2>」 で指定

例) ls コマンドの結果を標準出力とエラー出力に分けてファイルに出力する[bash]$ ls –lR /tmp/lecture 1>file1 2>file2(参考)→ [tcsh]$ (ls –lR /tmp/lecture > fileA) >& fileB

file1 に ls の通常の実行結果が出力される/tmp/lecture下には他ユーザのディレクトリがあり、それらの情報は表示できずエラーとなるため、そのエラーはfile2に出力される
71

標準出力と標準エラー出力（２）

標準出力と標準エラー出力は、通常入り混じって画面に表示される
画面に表示されるものと同じように標準出力と標準エラー出力が混ざった状態の出力を保存するには下記のように指定する例) lsコマンド実行結果の標準出力とエラー出力をつなげて
file に出力する(参考)→[bash]$ ls –lR /tmp/lecture >file 2>&1
[tcsh]$ ls –lR /tmp/lecture >& fileC72

出力結果を他のコマンドの入力に利用 パイプライン｜

左側のコマンドからの出力を画面に表示せず右側のコマンドの入力として利用

例１) ls コマンドの結果を整列して rdirs.txt に保存$ ls | sort -r > rdirs.txt

work/
hello2.chello.c例２) ls コマンドの結果を less で 1ページずつ表示$ ls -l | less73

ファイルの比較
 使い方

diff 対象ファイル名1 対象ファイル名2
 指定された2つのファイルを行ごとに比較する。
$ diff file1 file2
2c2< 2◆file1の2行目は”2”だがfile2の2行目は”0”
--> 0
5a6
◆file2の6行目の”6”はfile1にない 6<file1>12
3
4
5<file2>
1
0
3
4
5
6

74

ファイルの確認
 使い方

wc オプション 対象ファイル名
 指定されたファイルの行数、空白で区切られた単語数、文字(バイト)数を確認する。
 例： ファイルの行数を確認する$ wc –l text.txt
 例： ファイル内の単語数を確認する$ wc –w text.txt
 例： ファイル内の文字数を確認する$ wc –c text.txt

75パスワードの変更
 使い方

passwd 自分のパスワードを変更する。
 例： パスワードを変更する$ passwd
ユーザー instruct01 のパスワードを変更。
Changing password for instruct01◆ 現在のパスワードを入力(current) NT password: XXXX
◆ 新しいパスワードを入力
Enter new NT password: XXXX
◆ 新しいパスワードを再入力
Retype new NT password: XXXX
passwd: 全ての認証トークンが正しく更新できました。
76

ファイル・ディレクトリのサイズ表示
 使い方

du オプション 対象ファイル(ディレクトリ)名 指定されたファイル・ディレクトリのサイズを表示する
 例： カレントディレクトリ配下の全ファイルサイズを表示$ du ./
 例： 対象内のディレクトリ配下のサイズを集計して表示$ du –s ./ 例： 上記例の表示を、単位をMバイトとして表示$ du –sm ./77

HDDのデータ使用量を表示
 使い方

df オプション
 例： HDDのデータ使用量を表示$ df

 例： 使用量を適切な単位に変換して表示$ df -h78

実習3

実習3：その他のコマンド findの利用
 grepの利用 リダイレクションの利用
 パイプラインの利用 標準エラーと標準出力の保存79

スケジュール
 Linuxの概要
 計算機への接続,

ログイン, ログアウト

 Linuxの操作
 ファイル操作
 テキストファイルの編集
 その他のコマンド ssh公開鍵認証

80

ssh公開鍵認証
 パスワードの代わりに鍵ファイルでログイン認証を行う
 あらかじめ鍵ファイルのペア(公開鍵・秘密鍵)を作成しておき、秘密鍵を手元のPCに、公開鍵をサーバに置く ログイン時にクライアント(手元PC)とサーバの鍵
ファイルペアを検証し、正しい組み合せならログインを許可する パスワード認証に比べて、強固で安全な認証方式
81ssh公開鍵認証のイメージ
クライアント端末

サーバ①Win,Macで鍵ペアを作成
秘密鍵

公開鍵②公開鍵をサーバへ配置

公開鍵

配置後
秘密鍵

公開鍵
鍵ファイルを使用することで接続できるようになる。

秘密鍵・パスフレーズ自体の情報が公共ネットワーク上を流れていないためセキュアな認証が可能
82

ssh公開鍵認証のイメージ
 セキュアな認証とは「秘密鍵を持ってる人しか解読できない”問題”を出すから、接続したい場合は”答え”を送って」というように、パスワードやパスフレーズ、秘密鍵のやり取りは発生しない。

クライアント端末

サーバ※厳密には…
秘密鍵

公開鍵①接続の要求“問題”⑤復号化
パスフレーズ④暗号値を送信

乱数
ハッシュ値

乱数
③暗号化
⑦一致するかを確認⑥ハッシュ値を送信“答え”②乱数の生成ハッシュ値⑧接続の許可（認証完了）

83

実習4

実習4：ssh公開鍵認証の設定
 鍵ファイルペア(公開/秘密)の作成
 サーバへ公開鍵を転送
 公開鍵の登録
 鍵認証でのログイン
84お疲れ様でした 不明な点等はrequest@iii.kyushu-u.ac.jp

まで.

85

おまけ知識：プロセスとは？
 計算機上で実行されるプログラムの単位

例：ユーザが1人sshログインしている場合、sshのプロセスが1つ実行されている
 計算機はただ起動しているだけで、ユーザには見えない形で無数のプロセスが動作している↑ “バックグラウンドで実行”されている状態

 処理の重いプロセスを実行してしまうと、計算機全体の反応が鈍くなり、他ユーザのプロセスに影響
86おまけ知識：プロセスとは？
 計算機全体で動作しているプロセスを表示

top コマンド

計算機全体のCPU/Mem使用量

各プロセスごとの使用量87

おまけ知識：プロセスとは？
 不要なプロセスや重すぎて計算機を不安定にさせているプロセスは終了することを推奨 中には動作がおかしく、通常の処理では終了できないプロセスも ← kill コマンドで強制終了$ kill 12345

プロセスＩＤ88