SlideShare a Scribd company logo
Unix For Non-Programmers
nanapi.inc
Chief Technology Officer / Shuichi Wada
自己紹介
•

株式会社nanapi CTO 和田修一 / @wadap

•

楽天でインフラ4年、nanapiでCTOを4年

•

サーバ/インフラ〜サーバサイド開発が得意
本日のゴール
•

黒い画面でやっていることが何かを正しく理解する

•

基本的な操作を自分でも学べる状態になる

•

もう黒い画面なんて怖くない!
黒い画面を使っことある人は
どれくらいいますか?
Yes / No
どんな職種の人がいるのでしょうか?

デザイナー / コーダー / ディレクター
フロントエンドエンジニア / サーバサイドエンジニア
サポートOS
•

Mac OS 10.9 Mavericksを講義では利用します

•

たぶん他のMacOSでも大丈夫だとは思います

•

Windowsの方はちょっと動作かわりますがコレで

http://bellard.org/jslinux/
nanapiでの会話…
•

Designer「●●ってどうやればいいの?」

•

Engineer「ああ、ターミナルでやればいいよ」

•

Designer「」
タ、ターミナル・・・てアレ・・・?
黒い画面
本当は怖くない黒い画面
•

黒い画面は一体なんなのか?ということからしっか
りと理解すれば難しくありません!

•

最初は座学中心ですが、重要なのでちゃんと理解し
ましょう!
ターミナルって何?
ターミナルって何?
•

ターミナルはあくまで操作するためのインターフェ
イスを提供しているだけ

•

文字列を入力して、文字列を表示することだけ

•

黒い画面=ターミナル、という認識でOK
コマンドは何?
MacOSへのコマンド

ターミナル

Windowsへのコマンド
操作法が違うワケ
•

MacOSで操作するターミナルと、Windowsのコマ
ンドプロンプトでは操作方法が違う

•

それはターミナルによる差ではなく、OSによる差
MacはUnix環境
•

MacOSはUnixというOSの種類

•

Unix環境にはプログラマ向けのツールが充実

•

サーバの環境に似ている環境
Unixって聞いたことありますか?

Yes / No
Unixという考え方
•

Unix設計思想など根本的な部
分が書いてある話

•

小難しい技術の話ではなく設
計哲学

•

UXの話にもつながるのでぜひ
本で欲しい一冊
Unixにおけるコンセプト
•

ユーザーは、自分が何をしているのかを分かってい
る

•

何をしているのか分からないのなら、ここにいるべ
きではない
どのようにして学ぶか
•

基本思想にしたがって学べば良い

•

ただコマンドをコピペするのではなく、しっかりと
意味を理解しながらコマンドを打っていく

•

基本がわかれば、自分でどんどん学べる
座学終了!
ここで一度質問タイムをいれます
ターミナルを使おう
ターミナルの起動方法
•

アプリケーション

•

ユーティリティー

•

ターミナル.app
デザイナー・コーダーのための黒い画面入門
最初は白いです

•

MacOSのターミナルはデフォルトでは白いです

•

雰囲気だすためにも、黒いスタイルに変更します
カラーの変更方法
黒い画面になりましたか?
Unixをさわろう!
コマンドの打つ上での注意
•

半角英数字で入力する

•

アルファベットは全部小文字で

•

スペースも半角スペースで
ファイルの一覧
ファイル一覧
wadap@macbookpro:~$ ls
AndroidStudioProjects
Desktop

Sites
Documents

Applications
Downloads
lsコマンド
•

いろいろ表示されましたね。lsはファイル一覧を取
得するためのコマンドです

•

listの省略形とおぼえておきましょう

•

Unixコマンドは何らかの省略形になっていること
が多いです。それを紐付けて覚えましょう。
これがFinderのどこに対応するか
考えてみましょう
ファイル一覧詳細
wadap@macbookpro:~$ ls
drwxr-xr-x
5 shwada
drwxr-xr-x
2 shwada
drwx------+ 12 shwada
drwx------+ 19 shwada
drwx------+ 61 shwada
drwx------@ 14 shwada
drwx------@ 70 shwada
drwx------+ 3 shwada
drwx------+ 6 shwada
drwx------+ 6 shwada
drwx---r-x+ 4 shwada
drwxr-xr-x+ 3 shwada

-l
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff

170
68
408
646
2074
476
2380
102
204
204
136
102

8
11
11
11
11
11
11
4
4
7
4
4

27
19
21
22
22
21
19
12
23
4
12
12

18:38
12:01
18:19
12:53
15:59
20:21
11:00
2013
2013
22:06
2013
2013

AndroidStudioProjects
Applications
Desktop
Documents
Downloads
Dropbox
Library
Movies
Music
Pictures
Public
Sites
ファイル一覧詳細
wadap@macbookpro:~$ ls
drwxr-xr-x
5 shwada
drwxr-xr-x
2 shwada
drwx------+ 12 shwada
drwx------+ 19 shwada
drwx------+ 61 shwada
drwx------@ 14 shwada
drwx------@ 70 shwada
drwx------+ 3 shwada
drwx------+ 6 shwada
drwx------+ 6 shwada
drwx---r-x+ 4 shwada
drwxr-xr-x+ 3 shwada

-l
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff

170
68
408
646
2074
476
2380
102
204
204
136
102

8
11
11
11
11
11
11
4
4
7
4
4

27
19
21
22
22
21
19
12
23
4
12
12

18:38
12:01
18:19
12:53
15:59
20:21
11:00
2013
2013
22:06
2013
2013

日時

AndroidStudioProjects
Applications
Desktop
Documents
Downloads
Dropbox
Library
Movies
Music
Pictures
Public
Sites

ファイル名
ls -l
•

さっきとは表示が変わりました。

•

このようにしてコマンドはオプションを渡すことで
挙動を変えることができます。

•

Unixでは、-(ハイフン)の後ろに英数字をつなげ
ることでオプションとして解釈されます
ファイル一覧詳細
wadap@macbookpro:~$ ls
drwxr-xr-x
5 shwada
drwxr-xr-x
2 shwada
drwx------+ 12 shwada
drwx------+ 19 shwada
drwx------+ 61 shwada
drwx------@ 14 shwada
drwx------@ 70 shwada
drwx------+ 3 shwada
drwx------+ 6 shwada
-rwxr-xr-x
1 shwada
-rwxr-xr-x
1 shwada
drwxr-xr-x
1 shwada

-la
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff

170
68
408
646
2074
476
2380
102
204
17
17
17

8
11
11
11
11
11
11
4
4
5
5
5

27
19
21
22
22
21
19
12
23
8
8
8

18:38
12:01
18:19
12:53
15:59
20:21
11:00
2013
2013
2013
2013
2013

AndroidStudioProjects
Applications
Desktop
Documents
Downloads
Dropbox
Library
Movies
Music
.vimrc
.bash_profile
.emacs.d
ディレクトリ作成
ディレクトリ作成
wadap@macbookpro:~$ mkdir study20131126
mkdir
•

ディレクトリを作成するコマンドです

•

lsコマンドでディレクトリができたか確認

•

コマンドの後ろに、作りたいディレクトリ名をハイフン
を入れずに入力します。

•

このように「状態を変更する」コマンドの場合、成功し
た場合は何も行ってきません。寡黙。

•

MaKe DIRctoryの略称です
なぜ何も返さないのか
•

ユーザーは、自分が何をしているのかを分かってい
る

•

だから、うまくいったら別に何も言わなくていいで
しょという考え方

•

Unixのコマンドで、「状態を変更するコマンド」
はうまく行った場合ほとんど何も返しません!
移動
移動
wadap@macbookpro:~$ cd study20131126
cd
•

自分のいる場所を変更するためのコマンド

•

Finderとかで階層たどっていきますね、あれとやっ
てることは似たようなもの

•

Change Directoryの略称です
自分の場所確認
自分の場所確認
wadap@macbookpro:~$ pwd
/Users/wadap/study20131126
pwd
•

自分のいる場所を確認するためのコマンド

•

Finderの下に出てるアレ

•

Print Working Directoryの略称です
ホームディレクトリ
ホームディレクトリとは

•

自分専用に用意されたディレクトリです

•

ターミナルをたちあげた直後にいる場所です
ホームディレクトリへ
wadap@macbookpro:~$ cd
cd(引数なし)
•

cdコマンドに引数を渡さないと、ホームディレク
トリへ移動します

•

cdでいろいろ移動してわからなくなったら一旦
ホームディレクトリに移動するのもアリです
ファイルの作成とコピー
ファイル作成
wadap@macbookpro:~$ touch study_20131126.txt
touch
•

touchコマンドに引数を渡すことで、空ファイルを
作成することができます

•

本来はファイル作成用ではありませんが、今回は
touchコマンドでファイルを作成しました

•

これは略称ではなくそのままの意味です
ファイルコピー
wadap@macbookpro:~$ cp study_20131126.txt study_20131126.txt.copy
cp
•

cpコマンドに、元ファイル・コピー後ファイルと
引数を渡すことでファイルコピーをできます

•

-r オプションを使うと、ディレクトリごとコピー
することもできます

•

さて、何の略称でしょうか?
ファイルの削除
wadap@macbookpro:~$ rm study_20131126.txt.copy
rm
•

rmコマンドは、ファイルを削除するコマンドです

•

-rコマンドをつけることでディレクトリごと削除で
きます。

•

rmコマンドを打つときはすごく注意!

•

ReMoveの略です
このあたりがささっとでてくるようになれば、
最低限のファイル操作ができるはず!
コマンドを使う必要があるの?

•

そこまで必要になるケースは多くないかも

•

コマンドを知っていると圧倒的に便利になることや、
裏技的なことはたくさんある
ここまでで質問ありますか?
Unixにおけるユーザー
このなかでパーミッションを
777にしたことがある人!
Yes / No
権限がない場合
wadap@macbookpro:~$ mkdir /foo
mkdir: /foo: Permission denied
Permission Denied
•

コマンドを実行する対象に対して、権限をもってい
ないときにでるエラー

•

こういうエラーがあるときは極力シンプルにメッセー
ジを返してくれます
Unixにおけるユーザー
•

Unixは1台のマシンを複数ユーザーで使用すること
を想定して作られています

•

Aさんがつくったファイルを、Bさんが勝手に削除
できないような設計です
ファイル一覧詳細
wadap@macbookpro:~$ ls
drwxr-xr-x
5 shwada
drwxr-xr-x
2 shwada
drwx------+ 12 shwada
drwx------+ 19 shwada
drwx------+ 61 shwada
drwx------@ 14 shwada
drwx------@ 70 shwada
drwx------+ 3 shwada
drwx------+ 6 shwada
drwx------+ 6 shwada
drwx---r-x+ 4 shwada
drwxr-xr-x+ 3 shwada

-l
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff

170
68
408
646
2074
476
2380
102
204
204
136
102

所有者 グループ

8
11
11
11
11
11
11
4
4
7
4
4

27
19
21
22
22
21
19
12
23
4
12
12

18:38
12:01
18:19
12:53
15:59
20:21
11:00
2013
2013
22:06
2013
2013

AndroidStudioProjects
Applications
Desktop
Documents
Downloads
Dropbox
Library
Movies
Music
Pictures
Public
Sites
グループとは?
•

複数人いるユーザーをまとめて権限管理するための
ものです

•

エンジニア用のグループ、デザイナー用のグループ
みたいな感じです

•

Macみたいに1人で管理してるマシンではあまり意
識しませんが…
Permissionを理解する
•

Permissionを777に設定する、とだけ聞くことはよ
くあると思います

•

777はなんか全部OKみたいな意味くらいまでは理
解してる人は多いでしょう

•

このあたりをしっかりと理解しましょう
3種類の権限と数値
•

読み込み権限:4(Read)

•

書き込み権限:2(Write)

•

実行する権限:1(eXec)
Permissionの計算
•

読み込み+権限:4

•

読み込み+書き込み+権限:4+2=6

•

読み込み+書き込み+実行権限:4+2+1=7

•

何もできない:0
Permissionを読む
wadap@macbookpro:~$ ls
drwxr-xr-x
5 shwada
drwxr-xr-x
2 shwada
drwx------+ 12 shwada
drwx------+ 19 shwada
drwx------+ 61 shwada
drwx------@ 14 shwada
drwx------@ 70 shwada
drwx------+ 3 shwada
drwx------+ 6 shwada
drwx------+ 6 shwada
drwx---r-x+ 4 shwada
drwxr-xr-x+ 3 shwada

-l
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff
staff

170
68
408
646
2074
476
2380
102
204
204
136
102

8
11
11
11
11
11
11
4
4
7
4
4

27
19
21
22
22
21
19
12
23
4
12
12

18:38
12:01
18:19
12:53
15:59
20:21
11:00
2013
2013
22:06
2013
2013

AndroidStudioProjects
Applications
Desktop
Documents
Downloads
Dropbox
Library
Movies
Music
Pictures
Public
Sites
Permissionの読み方

d rwx r-x r-x
種別

所有者

グループ

その他

7

5

5
Permissionの読み方

d rwx rwx rwx
種別

所有者

グループ

その他

7

7

7
使う場所はちゃんと考えないといけません
とくに共用のマシンだと危険です!
rootユーザー
sudoってコマンドうったことりますか?

Yes / No
ユーザーの確認
wadap@macbookpro:~$ whoami
wadap
whoami

•

現時点での自分のユーザーを確認するコマンド

•

意味はコマンドの意味のまま
rootユーザーになる
wadap@macbookpro:~$ sudo su
Password:
wadap@macbookpro:~$ whoami
root
sudo
•

sudoコマンドは別ユーザーになるためのコマンド

•

sudo su xxxx ってうつと、 xxxxユーザになること
もできる

•

Substitute User DOの略称
rootユーザーの注意
•

不用意にrootユーザーになってはいけません

•

rootとは全てを司るアカウント

•

一発でシステムを壊せます。超注意!
rootから抜ける
wadap@macbookpro:~$ exit
wadap@macbookpro:~$ whoami
wadap
sudoの使い方
wadap@macbookpro:~$ sudo ls
sudo
•

sudoの後ろにコマンドを続けることもできます

•

この場合は、rootユーザーとしてlsを打つという意
味
本当に怖いsudo
•

よくターミナルの手順のなかで、sudoする手順が
ありますが注意してください!

•

悪意のある人の手順だったら、一発でシステムを壊
すことができます

•

sudoが頭にある場合は注意!超注意!
もうちょっと便利なコ
マンド達
ファイル検索
wadap@macbookpro:~$ find .
findコマンド
•

指定したディレクトリよりも下のファイルを検索す
る

•

オプションがなにもないと全てのファイルを表示す
る

•

コマンドを中止したいときは、Ctrl + C で中断
いろいろなオプション
wadap@macbookpro:~$ man find
manコマンド
•

manは引数にとったコマンドのマニュアルを表示す
る

•

カーソルの上下キーで操作で、小文字のqで抜ける

•

MANualの略称
ファイル内検索
wadap@macbookpro:~$ grep div index.html
grep
•

grepは指定した文字列が、ファイル内にあればそ
れを返すコマンドです。

•

最初に渡した引数が検索文字列、2つめの引数がファ
イル名です。

•

ワイルドカードでファイル名を指定することもでき
ます
複数の処理の連結
wadap@macbookpro:~$ ls -l | grep *txt
|(パイプ)
•

|(パイプ)を使うことで、複数のコマンドを連結
できる

•

これにより、小さな機能しか持っていないコマンド
を組み合わせて様々な処理を実現できる

•

コマンドラインにおける操作の一番のメリットはこ
れをつかった処理
さいごに
•

Unixコマンドの意味をわかった上でウチましょう。
それさえわかればあとは慣れだけです

•

ファイル操作の基本的なコマンドさえでてくるよう
になれば、あとは調べながらなんとかなります

•

意味わからずコピペだけはしないように!
宿題

•

少しでも黒い画面に抵抗はなくなりましたか?

•

率直な感想をお聞かせください!
デザイナー・コーダーのための黒い画面入門

More Related Content

デザイナー・コーダーのための黒い画面入門