20161106 osc-tokyo-command-line

52
2016/11/06 今さら聞けない―Linux コマンドラインツールテクニック 1/52 今さら聞けない Linux コマンドラインツールテクニック 武山 文信 日本 openSUSE ユーザ会

Upload: fuminobu-takeyama

Post on 15-Jan-2017

649 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 1/52

今さら聞けないLinux コマンドラインツールテクニック

武山 文信日本 openSUSE ユーザ会

Page 2: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 2/52

みなさん

って何かご存知ですか?

Page 3: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 3/52

正しいのはどれ?

● 1. サーバールームでモフモフできるカメレオン型ガジェット

● 2. Ruby で簡単に Web アプリを作れるフレームワーク

● 3. 今年で20周年のドイツ生まれの Linux ディストリビューション

Page 4: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 4/52

正解

● 3. 今年で20周年のドイツ生まれの Linux ディストリビューション– S.u.S.E Linux 4.2 で独自のディストリビューションになってから

● Q: RedHat 系ですか? Debian 系ですか?A: どちらでもありません!

● Q: OpenSUSE ですか?openSUSE ですか?A: o は小文字です。IPhone ではなく、iPhone なのと同じです

Page 5: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 5/52

デスクトップはこんな感じ

Page 6: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 6/52

YaST でかんたん設定

SSH からもアクセスできる TUI 版→

● ソフトウェアのインストールハードディスクとファイルシステムの設定

● ネットワークの設定● Samba サーバーの設定● ユーザの追加…

詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux

Page 7: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 7/52

インドネシア ジョグジャカルタ特別州の小中学校のPCにopenSUSE を採用

Page 8: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 8/52

2つの openSUSE

Tumbleweed常に最新 安定

最新を求めたい人にアプリケーション開発・テスト環境に

商用サポートが不要なサービス運用に常用の開発環境として

Page 9: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 9/52

openSUSE Tumbleweed

● ローリング・リリース– 週に3回程度新しいバージョンがリリース

● 常に最新バージョンのカーネルやアプリケーション、ライブラリを使いたい人向け– アプリケーションやライブラリの開発者

● 新しい環境でも動くかをいち早く確認

Page 10: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 10/52

openSUSE Leap

● SUSE Linux Enterprise ベースの安定志向ディストリビューション– 年に1回のマイナーアップデート(サービスパック)– 3年に1度程度のメジャーアップデート

● エンタープライズ版に openSUSE 独自のパッケージを追加– デスクトップ環境:

Plasma 5, GNOME 3, XFCE, MATE, LXQt, etc.– 合計: 約 9000 パッケージ

CentOS + Fedoraのような感じ

Page 11: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 11/52

openSUSE Leap 42.2

● openSUSE Leap 42.x の最初のマイナーアップデート● 11月16日リリース● openSUSE Leap の各プラットフォームをアップデート

– SUSE Linux Enterprise 12 SP2 がベース– Kernel 4.4– KDE Plasma 5.8 LTS– GNOME 3.20

● 半年間のアップデート期間– 42.1 の利用者は半年の間に 42.2 へアップデートする

● ARM 版のリリース

New!

Page 12: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 12/52

コマンドラインツールテクニック

Page 13: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 13/52

昨今のイケイケな ICT 業界

圧倒的な 圧倒的な Mac Mac 率!率!私も学生のとき使っていました私も学生のとき使っていました

Page 14: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 14/52

だって

● bash, zsh, …● grep, find, diff, patch, sed, ...● Python, Ruby, ...● Git, Subversion, …

今では必須のコマンドラインツールたち!

Page 15: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 15/52

Windows あるある

● MinGW (GCC) + MSYS をインストールして● Python をインストールして● Ruby をインストールして● Git for Windows (+ Git Bash) をインストールして● Tortoise SVN をインストールして● やっぱり Cygwin もインストールして● MSYS2 もインストールして● …

Bash

Bash

Bash

Bash

Page 16: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 16/52

Microsoft も動いた!

http://japanese.engadget.com/2016/03/30/windows-10-bash-ubuntu-linux/

Page 17: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 17/52

システムに 5 つくらい Bash が入っていたりしますよね?

.bashrc が全然同期されていなかったり…

Page 18: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 18/52

Linux ならコマンドツールがすぐに使えます!Cygwin とか Homebrew とか Mac Ports とかは不要!

Page 19: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 19/52

今日ちょっと伝えたいこと

Linux デスクトップを開発環境に使う!

Page 20: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 20/52

コマンドラインツールテクニック

● もっと効率よく作業できるのに– コマンドラインツールを使いこなせていない人を見ていて

● 新しいツール・変わってしまったツール

● もっと良い方法がある!という場合は教えてください– 資料の作成過程でいろいろと教えてもらいました

40分のセミナーで収めるには…

Page 21: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 21/52

今日のコマンドラインツールテクニック

1. よいターミナルアプリケーションを使う

2. 圧縮された tar を展開する

3. カーソルの移動はショートカットを

4. 入力補完と履歴を使う

5. 関連付けられたアプリケーションで開く

6. 色付きコマンド

7. Human readable!

8. ホームディレクトリに戻る

9. 前にいたディレクトリに戻る

10.{,} でファイル名の繰り返し入力を防ぐ

11.tree 系コマンド

12.環境変数を指定して実行

Page 22: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 22/52

1. よいターミナルアプリケーションを使うコマンドプロンプトはダメ

Page 23: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 23/52

1. よいターミナルアプリケーションを使う

● コマンドを入力するアプリケーション– Konsole, GNOME Terminal, ...

● ショートカットによるコピー&ペースト– Ctrl+Shift+C– Ctrl+Shift+V

● 画面のタブ分割

Windows の人は mintty や、よい SSH クライアントを使ってください

ウェブページのサンプルも簡単コピペ!

Page 24: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 24/52

2. 圧縮された tar を展開する意外と知られていない、最近のオプション

Page 25: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 25/52

2. 圧縮された tar を展開する

$ tar xvf hoge.tar.xz$ tar xvf fuga.tar.gz

● 昔は圧縮アルゴリズムを指定する z や j が必要だった– xz のときは?

● 昨今の GNU tar は、圧縮アルゴリズムの指定不要!– x: extract– v: verbose (展開中にメッセージがたくさん出る)– f: この後ろにファイル名

イマドキ xz!

Page 26: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 26/52

3. カーソルの移動はショートカットを!矢印キーを連打していませんか?

Page 27: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 27/52

3. カーソルの移動はショートカットを

● カーソル移動系: ホームポジションから指が動かない!– Ctrl + P ↑ previous – Ctrl + N ↓ next– Ctrl + F → forward– Ctrl + B ← backward– Ctrl + A Home (行の先頭へ移動)– Ctrl + E End (行の最後へ移動)

● 削除移動系– Ctrl+U カーソル位置から左側を削除

(パスワードを間違えたときに便利)

※設定で Caps Lock キーをCtrl にすると使いやすい

Page 28: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 28/52

4. 入力補完と履歴を使う毎回コマンドを最後まで入力していませんか?

Page 29: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 29/52

4. 入力補完と履歴を使う 1/3

● 入力補完– ファイル名やコマンド名を途中まで入力して Tab キーで

続き補完してくれる

$ lv pen

$ lv pen-pineapple-apple-pen.txt

Tab キー

日本語のテキストファイルを見るコマンド

Page 30: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 30/52

4. 入力補完と履歴を使う 2/3

● 直近のコマンドを繰り返し入力– 1つ前のコマンドなら ↑ か Ctrl + P– 2つ前のコマンドならもう1回 ↑か Ctrl + P

● コマンドの一部修正はカーソル移動ショートカットと合わせ技

$ chmod 700 directory1 testd2 folder3$

$ chmod 700 directory1 testd2 folder3

$ chmod 700 directory1 testd2 folder3

$ chmod -R 700 directory1 testd2 folder3

-R 忘れた

Ctrl + P

Ctrl + A

Page 31: 20161106 osc-tokyo-command-line

2016/05/14Linux コマンドラインツールテクニック(導入編) 31/52

4. 入力補完と履歴を使う 3/3

● 履歴から検索– Ctrl + R を押してから、過去に打ったコマンドの一部を入力

● さらに Ctrl + R でマッチするものでさらに1つ古いものを表示

– Ctrl + S で行き過ぎたときに戻る● 事前に stty コマンドでXON を無効にする必要あり

$ bundle exec rake db:seed bck-i-search: seed_

$ bck-i-search: _

$ stty -ixon

Page 32: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 32/52

5. 関連付けられたアプリケーションで開くGUI アプリを使いたい

やっぱり GUI でも操作したい

Page 33: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 33/52

5. 関連付けられたアプリケーションで開く

● カレントディレクトリをファイルブラウザで開きたい– 選択してファイルを動かしたいとき…など

● 関連付けられたアプリケーションでファイルを開く

$ xdg-open .

$ xdg-open geeko.jpg

フォルダ名

Page 34: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 34/52

6. 色付きコマンドの活用コマンドの出力結果を見やすく

Page 35: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 35/52

6. 色付きコマンドの活用 1/3

● $ ls --color– フォルダ名やシンボリックリンクに色がつき、区別しやすい– -F オプションもおすすめ

● ディレクトリ名の後に /● シンボリックリンク名の後に @

$ ls -f --color /etcConsoleKit/ gssapi_mech.conf pki/DIR_COLORS gtk-2.0/ plymouth/HOSTNAME@ gtk-3.0/ polkit-1/HOSTNAME.rpmsave host.conf polkit-default-privs.local…

Page 36: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 36/52

6. 色付きコマンドの活用 2/3

● $ grep --color– マッチした部分に色がつく

$ grep --color intel /var/log/Xorg.0.log[ 48102.004] (II) LoadModule: "intel"[ 48102.004] (II) Loading /usr/lib64/xorg/modules/drivers/intel_drv.so[ 48102.014] (II) Module intel: vendor="X.Org Foundation"

Page 37: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 37/52

6. 色付きコマンドの活用 3/3

● $ colordiff– 削除された部分が「赤」、追加された部分が「青」になる– -u: + 記号と – 記号で追加と削除を表現する universal フォーマット

--- scribus-1.4.4.mod/scribus/pageitem_textframe.cpp 2014-12-06 02:13:59.599941139 +0900+++ scribus-1.4.4.mod/scribus/pageitem_textframe.cpp.mod 2014-12-08 22:56:23.540099486 +0900@@ -846,7 +847,7 @@ } static int checkCJKBreakAfter(QChar ch) {- unsigned int code[] = {0x201C, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62, 0xFF0D, 0};+ unsigned int code[] = {0x201C, 0x300C, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62, 0xFF0D, 0}; for (int i = 0; code[i]; ++i) if (code[i] == ch.unicode()) Return 0;

$ colordiff -u 変更前のファイル 変更後のファイル

Page 38: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 38/52

7. Human readableちょうどよい単位系で大きさを表示

Page 39: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 39/52

7. Human readable

● ちょうどよい単位 (KB, MB, ...) で容量を表示してくれるhuman readable (-h) オプションを持つコマンドがある– ls, df, du など

$ ls -lh合計 602M-rw-r--r-- 1 geeko users 602M 10月 26 23:54 jumanpp-1.01.tar.xz-rw-r--r-- 1 geeko users 2.1K 10月 24 23:09 vlc.ymp

$ df -hファイルシス サイズ 使用 残り 使用% マウント位置… 中略 …tmpfs 933M 0 933M 0% /sys/fs/cgroup/dev/sda2 61G 8.4G 52G 15% /

Page 40: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 40/52

おまけ

● ls と打ったときに ls -Fh --color と入力したことにする– .bashrc に次の内容を記述

alias ls='ls -Fh --color'

Page 41: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 41/52

8. ホームディレクトリに戻るさっと戻るには?

Page 42: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 42/52

8. ホームディレクトリに戻る

● パラメータを指定しない

● 他の方法(長い)

$ cd

$ cd ~

$ cd $HOME

Page 43: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 43/52

9. 直前にいたディレクトリに戻る間違えて cd してしまったときは?

Page 44: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 44/52

9. 直前にいたディレクトリに戻る

$ cd -

~/Documents/Projects/myapp$ pwd/home/geeko/Documents/Projects/myapp/

~/Documents/Projects/myapp$ cd

~/$ cd -~/Documents/Projects/myapp$

間違えてホームに戻ってしまった

でも大丈夫

Page 45: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 45/52

10. {,}でファイル名の繰り返し入力を防ぐ

Page 46: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 46/52

10. {,}でファイル名の繰り返し入力を防ぐ

● ファイル名の最後に「.back」をつけてリネーム、コピーしたい

● 「XXX{左側,右側}YYY」は「XXX左側YYY XXX右側YYY」に置換される

$ cp pen-pineapple-apple-pen.txt pen-pineapple-apple-pen.txt.back

$ cp pen-pineapple-apple-pen.txt{,.back}

$ cp pen-pineapple-apple-pen.txt pen-pineapple-apple-pen.txt.back

Before

After

$ cp pen-pineapple-apple-pen{,-back}.txt

$ cp pen-pineapple-apple-pen.txt{.back,}

拡張子の前

.backから戻す

Page 47: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 47/52

11. tree 系コマンドの活用親子関係を手っ取り早く見る

Page 48: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 48/52

● ディレクトリ構造: tree

11. tree 系コマンドの活用

● プロセスの親子関係: pstree

$ tree /etc/X11 /etc/X11├── Xmodmap├── Xmodmap.remote├── Xresources├── xdm│   ├── GiveDevices│   ├── Keyboard.map│   ├── README.SUSE│   ├── README.security│   ├── RunChooser│   ├── SUSEconfig.xdm

$ pstreesystemd─┬─ModemManager─┬─{gdbus} │ └─{gmain} ├─NetworkManager─┬─dhclient │ ├─{gdbus} │ └─{gmain} ├─agetty ├─at-spi-bus-laun─┬─dbus-daemon │ ├─{dconf worker} │ ├─{gdbus} │ └─{gmain} ├─at-spi2-registr─┬─{gdbus} │ └─{gmain} ├─auditd───{auditd} ├─avahi-daemon ├─bluetoothd ├─cron ├─cupsd

Page 49: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 49/52

12. 環境変数を設定して実行する~/.bashrc で設定しなくてもよい

Page 50: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 50/52

12. 環境変数を設定して実行する

● どんなときでも ~/.bashrc に書きがち– 解説記事などにそう書いてあるから– 今後、ずっと設定したままにするなら OK

● 一時的に環境変数を設定して実行することも可能– 変数名=値 コマンド 引数

$ HTTP_PROXY=http://proxy.example.com:8080 wget http://…/….tar.xz

Page 51: 20161106 osc-tokyo-command-line

2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 51/52

次回予告

● 大量の画像をまとめて変換● パイプとリダイレクト● 出力を切り取る● chmod +● fb, bg, Ctrl + Z● SSH のデフォルトオプション● コマンド置換

Page 52: 20161106 osc-tokyo-command-line

2015/10/25YaST を使って Linux をらくらく設定 52/52

Geeko Magazine Sp 2016 夏

● コミックマーケットC90で頒布● 内容

– AutoYaST は使えるのか?– Web 開発環境を作ってみよう– 自分用パケットキャプチャとか

作ってみます?– Raspberry Pi 2 に Tumbleweed

をインストールして秋月の IGZO 液晶を接続してみた

– 4コマ漫画・小説● openSUSE ブースで販売中

New!