今さら聞けない linux コマンドラインツールテクニック その1 rev. 2

53
2017/01/28 Linux コマンドラインツールテクニック その1 rev. 2 1/53 今さら聞けない Linux コマンドラインツールテクニック その 1 rev. 2 武山 文信 日本 openSUSE ユーザ会

Upload: fuminobu-takeyama

Post on 21-Mar-2017

459 views

Category:

Technology


8 download

TRANSCRIPT

Page 1: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 1/53

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

その 1 rev. 2

武山 文信日本 openSUSE ユーザ会

Page 2: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 2/53

みなさん

って何かご存知ですか?

Page 3: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 3/53

正しいのはどれ?

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

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

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

Page 4: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 4/53

正解

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

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

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

Page 5: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 5/53

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

Page 6: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 6/53

YaST でかんたん設定

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

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

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

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

Page 7: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 7/53

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

Page 8: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 8/53

2つの openSUSE

Tumbleweed常に最新 安定

Page 9: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 9/53

openSUSE Tumbleweed

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

● 常に最新バージョンのカーネルやアプリケーション、ライブラリを使いたい人向け– アプリケーション時に、新しいコンパイラやライブラリでも

動くかをいち早く確認できる

Page 10: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 10/53

openSUSE Leap

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

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

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

● 有償サポートが不要なサービス運用や、常用のデスクトップ環境に最適

CentOS + Fedoraのような感じ

Page 11: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 11/53

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、Cinnamon 3.07 など

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

● ARM 版のリリース

New!

Page 12: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 12/53

最近のトピック

● openSUSE Leap 42.3 は早めにリリース予定– SUSE Linux Enterprise SP3 ベース

● 開発環境としての openSUSE– コンパイラや開発ツールを充実させる– Go, Rust, Haskell, …

● openSUSE.Asia Summit 2017 の日本開催に向けて– openSUSE を中心としたアジア地域の OSS コミュニティが

一堂に会するイベント

Page 13: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 13/53

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

Page 14: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 14/53

昨今のイケイケな ICT 業界

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

Page 15: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 15/53

だって

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

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

Page 16: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 16/53

Windows あるある

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

Bash

Bash

Bash

BashBash

Page 17: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 17/53

Microsoft も動いた!

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

openSUSE も動く!

Page 18: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 18/53

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

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

Page 19: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 19/53

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

Page 20: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 20/53

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

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

Page 21: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 21/53

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

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

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

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

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

Page 22: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 22/53

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

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

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

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

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

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

6. 色付きコマンド

7. Human readable!

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

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

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

11.tree 系コマンド

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

Page 23: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 23/53

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

Page 24: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 24/53

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

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

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

● 画面のタブ分割

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

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

Page 25: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 25/53

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

Page 26: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 26/53

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

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

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

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

イマドキ xz!

と言っても10年くらい前から

Page 27: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 27/53

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

Page 28: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 28/53

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

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

● 削除系– Ctrl + H Backspace– Ctrl + D Delete– Ctrl + K カーソルから右側を切り取り– Ctrl + U カーソルから左側を切り取り

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

パスワードを打ち間違えたときに便利

Page 29: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 29/53

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

Page 30: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 30/53

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

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

続き補完してくれる

$ lv pen

$ lv pen-pineapple-apple-pen.txt

Tab キー

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

Page 31: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 31/53

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 32: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 32/53

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 33: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 33/53

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

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

Page 34: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 34/53

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

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

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

$ xdg-open .

$ xdg-open geeko.jpg

フォルダ名

Page 35: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 35/53

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

Page 36: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 36/53

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 37: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 37/53

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 38: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 38/53

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 39: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 39/53

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

Page 40: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 40/53

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 41: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 41/53

おまけ

● 毎回 -F とか -h とか --color とかめんどくさい● ls と打ったときに ls -Fh --color と入力したことにする

– .bashrc に次の内容を記述

alias ls='ls -Fh --color'

Page 42: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 42/53

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

Page 43: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 43/53

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

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

● 他の方法(長い)

$ cd

$ cd ~

$ cd $HOME

Page 44: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 44/53

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

Page 45: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 45/53

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

$ cd -

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

~/Documents/Projects/myapp$ cd

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

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

でも大丈夫

Page 46: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 46/53

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

Page 47: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 47/53

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 48: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 48/53

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

Page 49: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 49/53

● ディレクトリ構造: 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 50: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 50/53

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

Page 51: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 51/53

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

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

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

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

Page 52: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 52/53

次回予告

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

Page 53: 今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2

2017/01/28Linux コマンドラインツールテクニック その1 rev. 2 53/53

Geeko Magazine Sp 2016 夏

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

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

– Ambiguous Character Width問題– openSUSE Leap 42.2 と

SoftEther VPN で作る VPN 環境– SiLK を使った巨大パケット解析

● 本日の販売はありません– 明日のイベントかくじ引きで

New!