2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 1/52
今さら聞けない
Linux コマンドラインツールテクニック
武山 文信
日本 openSUSE ユーザ会
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 2/52
みなさん
って何かご存知ですか?
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 3/52
正しいのはどれ?
● 1. サーバールームでモフモフできるカメレオン型ガジェット
● 2. Ruby で簡単に Web アプリを作れるフレームワーク
● 3. 今年で20周年のドイツ生まれの Linux ディストリビューション
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 なのと同じです
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 5/52
デスクトップはこんな感じ
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 6/52
YaST でかんたん設定
SSH からもアクセスできる TUI 版→
●
ソフトウェアのインストール
ハードディスクとファイルシステムの設定
●
ネットワークの設定
●
Samba サーバーの設定
●
ユーザの追加…
詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 7/52
インドネシア ジョグジャカルタ特別州の小中学校のPCに
openSUSE を採用
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 8/52
2つの openSUSE
Tumbleweed
常に最新 安定
最新を求めたい人に
アプリケーション開発・テスト環境に
商用サポートが不要なサービス運用に
常用の開発環境として
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 9/52
openSUSE Tumbleweed
● ローリング・リリース
– 週に3回程度新しいバージョンがリリース
● 常に最新バージョンのカーネルやアプリケーション、
ライブラリを使いたい人向け
– アプリケーションやライブラリの開発者
●
新しい環境でも動くかをいち早く確認
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
のような感じ
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!
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 12/52
コマンドラインツールテクニック
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 13/52
昨今のイケイケな ICT 業界
圧倒的な圧倒的な MacMac 率!率!
私も学生のとき使っていました私も学生のとき使っていました
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 14/52
だって
● bash, zsh, …
● grep, find, diff, patch, sed, ...
● Python, Ruby, ...
● Git, Subversion, …
今では必須のコマンドラインツールたち!
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
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 16/52
Microsoft も動いた!
http://japanese.engadget.com/2016/03/30/windows-10-bash-ubuntu-linux/
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 17/52
システムに 5 つくらい Bash が
入っていたりしますよね?
.bashrc が全然同期されていなかったり…
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 18/52
Linux ならコマンドツールがすぐに使えます!
Cygwin とか Homebrew とか Mac Ports とかは不要!
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 19/52
今日ちょっと伝えたいこと
Linux デスクトップを開発環境に使う!
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 20/52
コマンドラインツールテクニック
● もっと効率よく作業できるのに
– コマンドラインツールを使いこなせていない人を見ていて
● 新しいツール・変わってしまったツール
● もっと良い方法がある!という場合は教えてください
– 資料の作成過程でいろいろと教えてもらいました
40分のセミナーで収めるには…
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 21/52
今日のコマンドラインツールテクニック
1. よいターミナルアプリケーションを使う
2. 圧縮された tar を展開する
3. カーソルの移動はショートカットを
4. 入力補完と履歴を使う
5. 関連付けられたアプリケーションで開く
6. 色付きコマンド
7. Human readable!
8. ホームディレクトリに戻る
9. 前にいたディレクトリに戻る
10.{,} でファイル名の繰り返し入力を防ぐ
11.tree 系コマンド
12.環境変数を指定して実行
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 22/52
1. よいターミナルアプリケーションを使う
コマンドプロンプトはダメ
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 23/52
1. よいターミナルアプリケーションを使う
● コマンドを入力するアプリケーション
– Konsole, GNOME Terminal, ...
● ショートカットによるコピー&ペースト
– Ctrl+Shift+C
– Ctrl+Shift+V
● 画面のタブ分割
Windows の人は mintty や、
よい SSH クライアントを使ってください
ウェブページのサンプルも
簡単コピペ!
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 24/52
2. 圧縮された tar を展開する
意外と知られていない、最近のオプション
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!
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 26/52
3. カーソルの移動はショートカットを!
矢印キーを連打していませんか?
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 にすると使いやすい
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 28/52
4. 入力補完と履歴を使う
毎回コマンドを最後まで入力していませんか?
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 29/52
4. 入力補完と履歴を使う 1/3
● 入力補完
– ファイル名やコマンド名を途中まで入力して Tab キーで
続き補完してくれる
$ lv pen
$ lv pen-pineapple-apple-pen.txt
Tab キー
日本語のテキストファイルを見るコマンド
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
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
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 32/52
5. 関連付けられたアプリケーションで開く
GUI アプリを使いたい
やっぱり GUI でも操作したい
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 33/52
5. 関連付けられたアプリケーションで開く
● カレントディレクトリをファイルブラウザで開きたい
– 選択してファイルを動かしたいとき…など
● 関連付けられたアプリケーション
でファイルを開く
$ xdg-open .
$ xdg-open geeko.jpg
フォルダ名
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 34/52
6. 色付きコマンドの活用
コマンドの出力結果を見やすく
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 35/52
6. 色付きコマンドの活用 1/3
● $ ls --color
– フォルダ名やシンボリックリンクに色がつき、区別しやすい
– -F オプションもおすすめ
●
ディレクトリ名の後に /
●
シンボリックリンク名の後に @
$ ls -f --color /etc
ConsoleKit/ gssapi_mech.conf pki/
DIR_COLORS gtk-2.0/ plymouth/
HOSTNAME@ gtk-3.0/ polkit-1/
HOSTNAME.rpmsave host.conf polkit-default-privs.local
…
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"
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 変更前のファイル 変更後のファイル
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 38/52
7. Human readable
ちょうどよい単位系で大きさを表示
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% /
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 40/52
おまけ
● ls と打ったときに ls -Fh --color と入力したことにする
– .bashrc に次の内容を記述
alias ls='ls -Fh --color'
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 41/52
8. ホームディレクトリに戻る
さっと戻るには?
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 42/52
8. ホームディレクトリに戻る
● パラメータを指定しない
● 他の方法(長い)
$ cd
$ cd ~
$ cd $HOME
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 43/52
9. 直前にいたディレクトリに戻る
間違えて cd してしまったときは?
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$
間違えてホームに戻ってしまった
でも大丈夫
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 45/52
10. {,} でファイル名の繰り返し入力を防ぐ
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から戻す
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 47/52
11. tree 系コマンドの活用
親子関係を手っ取り早く見る
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
$ pstree
systemd─┬─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
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 49/52
12. 環境変数を設定して実行する
~/.bashrc で設定しなくてもよい
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 50/52
12. 環境変数を設定して実行する
● どんなときでも ~/.bashrc に書きがち
– 解説記事などにそう書いてあるから
– 今後、ずっと設定したままにするなら OK
● 一時的に環境変数を設定して実行することも可能
– 変数名=値 コマンド 引数
$ HTTP_PROXY=http://proxy.example.com:8080 wget http://…/….tar.xz
2016/11/06今さら聞けない―Linux コマンドラインツールテクニック 51/52
次回予告
● 大量の画像をまとめて変換
● パイプとリダイレクト
● 出力を切り取る
● chmod +
● fb, bg, Ctrl + Z
● SSH のデフォルトオプション
● コマンド置換
2015/10/25YaST を使って Linux をらくらく設定 52/52
Geeko Magazine Sp 2016 夏
● コミックマーケットC90で頒布
● 内容
– AutoYaST は使えるのか?
– Web 開発環境を作ってみよう
– 自分用パケットキャプチャとか
作ってみます?
– Raspberry Pi 2 に Tumbleweed
をインストールして秋月の IGZO
液晶を接続してみた
– 4コマ漫画・小説
● openSUSE ブースで販売中
New!

20161106 osc-tokyo-command-line