20161106 osc-tokyo-command-line
TRANSCRIPT
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 業界
圧倒的な 圧倒的な Mac Mac 率!率!私も学生のとき使っていました私も学生のとき使っていました
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 /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…
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
$ 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
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!