2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 1/54
その 1 rev. 4
武山 文信
日本 openSUSE ユーザ会
CC BY-SA 4.0
p. 16, 17 の引用した画像を除く
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 2/54
今日の内容
●
openSUSE について簡単に紹介
●
コマンドラインツールテクニック 1〜12
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 3/54
みなさん
って何かご存知ですか?
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 4/54
正しいのはどれ?
●
1. サーバールームでモフモフできるカメレオン型ガジェット
●
2. Ruby で簡単に Web アプリを作れるフレームワーク
●
3. 昨年20周年だったドイツ生まれの
Linux ディストリビューション
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 5/54
正解
●
3. 昨年20周年だったドイツ生まれの
Linux ディストリビューション
– S.u.S.E Linux 4.2 で独自のディストリビューションになってから
●
Q: RedHat 系ですか? Debian 系ですか?
A: どちらでもありません!
●
Q: OpenSUSE ですか?openSUSE ですか?
A: o は小文字です。IPhone ではなく、iPhone なのと同じです
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 6/54
デスクトップはこんな感じ
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 7/54
YaST でかんたん設定
SSH からもアクセスできる TUI 版→
●
ソフトウェアのインストール
ハードディスクとファイルシステムの設定
●
ネットワークの設定
●
Samba サーバーの設定
●
ユーザの追加…
詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 8/54
インドネシア ジョグジャカルタ特別州の小中学校のPCに
openSUSE を採用
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 9/54
2つの openSUSE
Tumbleweed
常に最新 安定
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 10/54
openSUSE Tumbleweed
●
ローリング・リリース
– 週に3回程度新しいバージョンがリリース
●
常に最新バージョンのカーネルやアプリケーション、
ライブラリを使いたい人向け
– アプリケーション開発時に、新しいコンパイラやライブラリでも
動くかをいち早く確認できる
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 11/54
openSUSE Leap
●
SUSE Linux Enterprise ベースの安定志向
ディストリビューション
– 年に1回のマイナーアップデート(サービスパック)
– 3年に1度程度のメジャーアップデート
●
エンタープライズ版に openSUSE 独自のパッケージを追加
– デスクトップ環境:
Plasma 5, GNOME 3, XFCE, MATE, LXQt, etc.
– 合計: 約 9000 パッケージ
●
有償サポートが不要なサービス運用や、
常用のデスクトップ環境に最適
CentOS + Fedora
のような感じ
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 12/54
今さら聞けない
コマンドラインツールテクニック
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 13/54
昨今のイケイケな ICT 業界
圧倒的な圧倒的な MacMac 率!率!
私も学生のとき使っていました私も学生のとき使っていました
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 14/54
だって
●
bash, zsh, …
●
grep, find, diff, patch, sed, ...
●
Python, Ruby, ...
●
Git, Subversion, …
今では必須のコマンドラインツールたち!
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 15/54
Windows あるある
●
MinGW (GCC) + MSYS をインストールして
●
Python をインストールして
●
Ruby をインストールして
●
Git for Windows (+ Git Bash) をインストールして
●
Tortoise SVN をインストールして
●
やっぱり Cygwin もインストールして
●
MSYS2 もインストールして
●
Haskell Stack もインストールして
●
Vagrant もインストールして
…
Bash
Bash
Bash
Bash
Bash
Bash
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 16/54
Microsoft も動いた!
http://japanese.engadget.com/2016/03/30/windows-10-bash-ubuntu-linux/
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 17/54
Windows Store にも来た
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 18/54
システムに 7 つくらい Bash が
入っていたりしますよね?
.bashrc が全然同期されていなかったり…
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 19/54
Linux ならコマンドツールがすぐに使えます!
Cygwin とか Homebrew とか Mac Ports とかは不要!
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 20/54
今日ちょっと伝えたいこと
Linux デスクトップを開発環境に使うと便利!
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 21/54
コマンドラインツールテクニック
●
もっと効率よく作業できるのに
– コマンドラインツールを使いこなせていない人を見ていて
●
新しいツール・変わってしまったツール
●
もっと良い方法がある!という場合は教えてください
– 資料の作成過程でいろいろと教えてもらいました
40分のセミナーで収めるには…
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 22/54
今日のコマンドラインツールテクニック
1. よいターミナルアプリケーションを使う
2. 圧縮された tar を展開する
3. カーソルの移動はショートカットを
4. 入力補完と履歴を使う
5. 関連付けられたアプリケーションで開く
6. 色付きコマンド
7. Human readable!
8. ホームディレクトリに戻る
9. 前にいたディレクトリに戻る
10.{,} でファイル名の繰り返し入力を防ぐ
11.tree 系コマンド
12.環境変数を指定して実行
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 23/54
1. よいターミナルアプリケーションを使う
コマンドプロンプトはダメ
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 24/54
1. よいターミナルアプリケーションを使う
●
コマンドを入力するアプリケーション
– Konsole, GNOME Terminal, ...
●
ショートカットによるコピー&ペースト
– Ctrl+Shift+C
– Ctrl+Shift+V
●
画面のタブ分割
Windows の人は mintty や、
よい SSH クライアントを使ってください
ウェブページのサンプルも
簡単コピペ!
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 25/54
2. 圧縮された tar を展開する
意外と知られていない、最近のオプション
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 26/54
2. 圧縮された tar を展開する
$ tar xvf hoge.tar.xz
$ tar xvf fuga.tar.gz
●
昔は圧縮アルゴリズムを指定する z や j が必要だった
– では xz のときは?
●
今の GNU tar は、圧縮アルゴリズムの指定不要!
– x: extract
– v: verbose (展開中にメッセージがたくさん出る)
– f: この後ろにファイル名
イマドキ xz!
と言っても10年くらい前から
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 27/54
3. カーソルの移動と削除はショートカットを!
矢印キーを連打していませんか?
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 28/54
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 にすると使いやすい
パスワードを打ち間違えた
ときに便利
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 29/54
4. 入力補完と履歴を使う
毎回コマンドを最初から最後まで入力していませんか?
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 30/54
4. 入力補完と履歴を使う 1/3
●
入力補完
– ファイル名やコマンド名を途中まで入力して Tab キーで
続き補完してくれる
$ lv pen
$ lv pen-pineapple-apple-pen.txt
Tab キー
日本語のテキストファイルを見るコマンド
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 31/54
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
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 32/54
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
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 33/54
5. 関連付けられたアプリケーションで開く
GUI アプリを使いたい
やっぱり GUI でも操作したい
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 34/54
5. 関連付けられたアプリケーションで開く
●
カレントディレクトリをファイルブラウザで開きたい
– 選択してファイルを動かしたいとき…など
●
関連付けられたアプリケーション
でファイルを開く
$ xdg-open .
$ xdg-open geeko.jpg
フォルダ名
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 35/54
6. 色付きコマンドの活用
コマンドの出力結果を見やすく
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 36/54
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
…
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 37/54
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"
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 38/54
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 変更前のファイル 変更後のファイル
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 39/54
7. Human readable
ちょうどよい単位系で大きさを表示
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 40/54
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% /
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 41/54
おまけ
●
毎回 -F とか -h とか --color とかめんどくさい
●
ls と打ったときに ls -Fh --color と入力したことにする
– .bashrc に次の内容を記述
alias ls='ls -Fh --color'
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 42/54
8. ホームディレクトリに戻る
さっと戻るには?
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 43/54
8. ホームディレクトリに戻る
●
パラメータを指定しない
●
他の方法(長い)
$ cd
$ cd ~
$ cd $HOME
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 44/54
9. 直前にいたディレクトリに戻る
間違えて cd してしまったときは?
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 45/54
9. 直前にいたディレクトリに戻る
$ cd -
~/Documents/Projects/myapp$ pwd
/home/geeko/Documents/Projects/myapp/
~/Documents/Projects/myapp$ cd
~/$ cd -
~/Documents/Projects/myapp$
間違えてホームに戻ってしまった
でも大丈夫
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 46/54
10. {,} でファイル名の繰り返し入力を防ぐ
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 47/54
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から戻す
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 48/54
11. tree 系コマンドの活用
親子関係を手っ取り早く見る
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 49/54
●
ディレクトリ構造: 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
ps axf でも同じようなことが可能
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 50/54
12. 環境変数を設定して実行する
~/.bashrc で設定しなくてもよい
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 51/54
12. 環境変数を設定して実行する
●
どんなときでも ~/.bashrc などに書きがち
– 解説記事などにそう書いてあるから
– 今後、ずっと設定したままにするなら OK
●
一時的に環境変数を設定して実行することも可能
– 変数名=値 コマンド 引数
$ HTTP_PROXY=http://proxy.example.com:8080 wget http://…/….tar.xz
$ LC_MESSAGES=C gcc xxx.c
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 52/54
次回予告
●
PATH ってなんでしたっけ?
●
大量の画像をまとめて変換
●
パイプとリダイレクト
●
出力を切り取る
●
chmod +
●
fb, bg, Ctrl + Z
●
SSH のデフォルトオプション
●
コマンド置換
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 53/54
openSUSE.Asia Summit 2017 Tokyo
●
openSUSE や Linux など周辺の OSS に関する国際イベント
●
今年は初日本開催!
– 北京→台北→ジョグジャカルタ(インドネシア)
●
日時: 10月21日(土)、22日(日)
●
会場: 電気通信大学(東京都調布市)
●
参加費: 無料
技術書展もやっています
週末はぜひ東京へ
2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 54/54
聞けそうなトピック ※イメージです
openSUSE Leap 15 Docker Single Sign
パフォーマンス分析 ファイルシステム暗号化
Ansible コミュニティ運営 Excel 方眼紙
リモートデスクトップ DevOps AppImage
LibreOffice 日本語入力 .NET Core
OpenStack Solr 翻訳 Active Directory
1つくらい興味があるトピックがありますよね?

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

  • 1.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 1/54 その 1 rev. 4 武山 文信 日本 openSUSE ユーザ会 CC BY-SA 4.0 p. 16, 17 の引用した画像を除く
  • 2.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 2/54 今日の内容 ● openSUSE について簡単に紹介 ● コマンドラインツールテクニック 1〜12
  • 3.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 3/54 みなさん って何かご存知ですか?
  • 4.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 4/54 正しいのはどれ? ● 1. サーバールームでモフモフできるカメレオン型ガジェット ● 2. Ruby で簡単に Web アプリを作れるフレームワーク ● 3. 昨年20周年だったドイツ生まれの Linux ディストリビューション
  • 5.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 5/54 正解 ● 3. 昨年20周年だったドイツ生まれの Linux ディストリビューション – S.u.S.E Linux 4.2 で独自のディストリビューションになってから ● Q: RedHat 系ですか? Debian 系ですか? A: どちらでもありません! ● Q: OpenSUSE ですか?openSUSE ですか? A: o は小文字です。IPhone ではなく、iPhone なのと同じです
  • 6.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 6/54 デスクトップはこんな感じ
  • 7.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 7/54 YaST でかんたん設定 SSH からもアクセスできる TUI 版→ ● ソフトウェアのインストール ハードディスクとファイルシステムの設定 ● ネットワークの設定 ● Samba サーバーの設定 ● ユーザの追加… 詳しくは OSC Kansai/Kyoto 2015の資料を参照: http://www.slideshare.net/ftake/ok-yastlinux
  • 8.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 8/54 インドネシア ジョグジャカルタ特別州の小中学校のPCに openSUSE を採用
  • 9.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 9/54 2つの openSUSE Tumbleweed 常に最新 安定
  • 10.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 10/54 openSUSE Tumbleweed ● ローリング・リリース – 週に3回程度新しいバージョンがリリース ● 常に最新バージョンのカーネルやアプリケーション、 ライブラリを使いたい人向け – アプリケーション開発時に、新しいコンパイラやライブラリでも 動くかをいち早く確認できる
  • 11.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 11/54 openSUSE Leap ● SUSE Linux Enterprise ベースの安定志向 ディストリビューション – 年に1回のマイナーアップデート(サービスパック) – 3年に1度程度のメジャーアップデート ● エンタープライズ版に openSUSE 独自のパッケージを追加 – デスクトップ環境: Plasma 5, GNOME 3, XFCE, MATE, LXQt, etc. – 合計: 約 9000 パッケージ ● 有償サポートが不要なサービス運用や、 常用のデスクトップ環境に最適 CentOS + Fedora のような感じ
  • 12.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 12/54 今さら聞けない コマンドラインツールテクニック
  • 13.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 13/54 昨今のイケイケな ICT 業界 圧倒的な圧倒的な MacMac 率!率! 私も学生のとき使っていました私も学生のとき使っていました
  • 14.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 14/54 だって ● bash, zsh, … ● grep, find, diff, patch, sed, ... ● Python, Ruby, ... ● Git, Subversion, … 今では必須のコマンドラインツールたち!
  • 15.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 15/54 Windows あるある ● MinGW (GCC) + MSYS をインストールして ● Python をインストールして ● Ruby をインストールして ● Git for Windows (+ Git Bash) をインストールして ● Tortoise SVN をインストールして ● やっぱり Cygwin もインストールして ● MSYS2 もインストールして ● Haskell Stack もインストールして ● Vagrant もインストールして … Bash Bash Bash Bash Bash Bash
  • 16.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 16/54 Microsoft も動いた! http://japanese.engadget.com/2016/03/30/windows-10-bash-ubuntu-linux/
  • 17.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 17/54 Windows Store にも来た
  • 18.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 18/54 システムに 7 つくらい Bash が 入っていたりしますよね? .bashrc が全然同期されていなかったり…
  • 19.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 19/54 Linux ならコマンドツールがすぐに使えます! Cygwin とか Homebrew とか Mac Ports とかは不要!
  • 20.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 20/54 今日ちょっと伝えたいこと Linux デスクトップを開発環境に使うと便利!
  • 21.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 21/54 コマンドラインツールテクニック ● もっと効率よく作業できるのに – コマンドラインツールを使いこなせていない人を見ていて ● 新しいツール・変わってしまったツール ● もっと良い方法がある!という場合は教えてください – 資料の作成過程でいろいろと教えてもらいました 40分のセミナーで収めるには…
  • 22.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 22/54 今日のコマンドラインツールテクニック 1. よいターミナルアプリケーションを使う 2. 圧縮された tar を展開する 3. カーソルの移動はショートカットを 4. 入力補完と履歴を使う 5. 関連付けられたアプリケーションで開く 6. 色付きコマンド 7. Human readable! 8. ホームディレクトリに戻る 9. 前にいたディレクトリに戻る 10.{,} でファイル名の繰り返し入力を防ぐ 11.tree 系コマンド 12.環境変数を指定して実行
  • 23.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 23/54 1. よいターミナルアプリケーションを使う コマンドプロンプトはダメ
  • 24.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 24/54 1. よいターミナルアプリケーションを使う ● コマンドを入力するアプリケーション – Konsole, GNOME Terminal, ... ● ショートカットによるコピー&ペースト – Ctrl+Shift+C – Ctrl+Shift+V ● 画面のタブ分割 Windows の人は mintty や、 よい SSH クライアントを使ってください ウェブページのサンプルも 簡単コピペ!
  • 25.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 25/54 2. 圧縮された tar を展開する 意外と知られていない、最近のオプション
  • 26.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 26/54 2. 圧縮された tar を展開する $ tar xvf hoge.tar.xz $ tar xvf fuga.tar.gz ● 昔は圧縮アルゴリズムを指定する z や j が必要だった – では xz のときは? ● 今の GNU tar は、圧縮アルゴリズムの指定不要! – x: extract – v: verbose (展開中にメッセージがたくさん出る) – f: この後ろにファイル名 イマドキ xz! と言っても10年くらい前から
  • 27.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 27/54 3. カーソルの移動と削除はショートカットを! 矢印キーを連打していませんか?
  • 28.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 28/54 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 にすると使いやすい パスワードを打ち間違えた ときに便利
  • 29.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 29/54 4. 入力補完と履歴を使う 毎回コマンドを最初から最後まで入力していませんか?
  • 30.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 30/54 4. 入力補完と履歴を使う 1/3 ● 入力補完 – ファイル名やコマンド名を途中まで入力して Tab キーで 続き補完してくれる $ lv pen $ lv pen-pineapple-apple-pen.txt Tab キー 日本語のテキストファイルを見るコマンド
  • 31.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 31/54 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
  • 32.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 32/54 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
  • 33.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 33/54 5. 関連付けられたアプリケーションで開く GUI アプリを使いたい やっぱり GUI でも操作したい
  • 34.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 34/54 5. 関連付けられたアプリケーションで開く ● カレントディレクトリをファイルブラウザで開きたい – 選択してファイルを動かしたいとき…など ● 関連付けられたアプリケーション でファイルを開く $ xdg-open . $ xdg-open geeko.jpg フォルダ名
  • 35.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 35/54 6. 色付きコマンドの活用 コマンドの出力結果を見やすく
  • 36.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 36/54 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 …
  • 37.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 37/54 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"
  • 38.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 38/54 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 変更前のファイル 変更後のファイル
  • 39.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 39/54 7. Human readable ちょうどよい単位系で大きさを表示
  • 40.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 40/54 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% /
  • 41.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 41/54 おまけ ● 毎回 -F とか -h とか --color とかめんどくさい ● ls と打ったときに ls -Fh --color と入力したことにする – .bashrc に次の内容を記述 alias ls='ls -Fh --color'
  • 42.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 42/54 8. ホームディレクトリに戻る さっと戻るには?
  • 43.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 43/54 8. ホームディレクトリに戻る ● パラメータを指定しない ● 他の方法(長い) $ cd $ cd ~ $ cd $HOME
  • 44.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 44/54 9. 直前にいたディレクトリに戻る 間違えて cd してしまったときは?
  • 45.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 45/54 9. 直前にいたディレクトリに戻る $ cd - ~/Documents/Projects/myapp$ pwd /home/geeko/Documents/Projects/myapp/ ~/Documents/Projects/myapp$ cd ~/$ cd - ~/Documents/Projects/myapp$ 間違えてホームに戻ってしまった でも大丈夫
  • 46.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 46/54 10. {,} でファイル名の繰り返し入力を防ぐ
  • 47.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 47/54 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から戻す
  • 48.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 48/54 11. tree 系コマンドの活用 親子関係を手っ取り早く見る
  • 49.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 49/54 ● ディレクトリ構造: 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 ps axf でも同じようなことが可能
  • 50.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 50/54 12. 環境変数を設定して実行する ~/.bashrc で設定しなくてもよい
  • 51.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 51/54 12. 環境変数を設定して実行する ● どんなときでも ~/.bashrc などに書きがち – 解説記事などにそう書いてあるから – 今後、ずっと設定したままにするなら OK ● 一時的に環境変数を設定して実行することも可能 – 変数名=値 コマンド 引数 $ HTTP_PROXY=http://proxy.example.com:8080 wget http://…/….tar.xz $ LC_MESSAGES=C gcc xxx.c
  • 52.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 52/54 次回予告 ● PATH ってなんでしたっけ? ● 大量の画像をまとめて変換 ● パイプとリダイレクト ● 出力を切り取る ● chmod + ● fb, bg, Ctrl + Z ● SSH のデフォルトオプション ● コマンド置換
  • 53.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 53/54 openSUSE.Asia Summit 2017 Tokyo ● openSUSE や Linux など周辺の OSS に関する国際イベント ● 今年は初日本開催! – 北京→台北→ジョグジャカルタ(インドネシア) ● 日時: 10月21日(土)、22日(日) ● 会場: 電気通信大学(東京都調布市) ● 参加費: 無料 技術書展もやっています 週末はぜひ東京へ
  • 54.
    2017/9/2, 3Linux コマンドラインツールテクニックその1 rev. 4 54/54 聞けそうなトピック ※イメージです openSUSE Leap 15 Docker Single Sign パフォーマンス分析 ファイルシステム暗号化 Ansible コミュニティ運営 Excel 方眼紙 リモートデスクトップ DevOps AppImage LibreOffice 日本語入力 .NET Core OpenStack Solr 翻訳 Active Directory 1つくらい興味があるトピックがありますよね?