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

More Related Content

PDF
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
PDF
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
PDF
20161106 osc-tokyo-command-line
PDF
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
PDF
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
PDF
今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4
PDF
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
PDF
Linux Namespaces
サーバーだけじゃない!Linux デスクトップを使い倒そう その3 ― 今話題の Kotlin から Ruby、C++ 1x…の開発環境を整える
今さら聞けない― Linuxコマンドラインツールテクニック (導入編)
20161106 osc-tokyo-command-line
今さら聞けない Linux コマンドラインツールテクニック その1 rev. 2
バグ報告・翻訳・パッケージング・コード修正・広報活動などなど―OSS に貢献してみるには?
今さら聞けない -Linux コマンドラインツールテクニック その1 rev. 4
YaST を使って Linux をらくらく設定―Btrfs を活用したファイルサーバー構築 & OS インストールの自動化
Linux Namespaces

What's hot (20)

PPTX
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
PPTX
Linux kernelのbspとupstream
PDF
Docker volume基礎/Project Longhorn紹介
PPTX
LinAction Theme LPICの問題を解いてみる~システムアーキテクチャ編~
ODP
FreeBSDのブートプロセス
PDF
近頃のDockerネットワーク
ODP
シグナル
PDF
Linux Namespace
PDF
どっかのしたのほう
ODP
シェルスクリプトを極める
PPTX
15分で分か(った気になれ)るDocker
PPTX
パッチを投稿してみた話
PDF
Rubyで実はwritev(2) が使われているはなし
PDF
MINCS – containers in the shell script
PPTX
ラズパイ2で動く Docker PaaSを作ってみたよ
PDF
LibreOfficeコミュニティに不具合修正パッチを送ってみた
PPTX
第一回コンテナ情報交換会@関西
PDF
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
PPTX
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
PPTX
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
Docker入門~word press環境を作ってみる ハンズオン編 ver1.4~ pulic
Linux kernelのbspとupstream
Docker volume基礎/Project Longhorn紹介
LinAction Theme LPICの問題を解いてみる~システムアーキテクチャ編~
FreeBSDのブートプロセス
近頃のDockerネットワーク
シグナル
Linux Namespace
どっかのしたのほう
シェルスクリプトを極める
15分で分か(った気になれ)るDocker
パッチを投稿してみた話
Rubyで実はwritev(2) が使われているはなし
MINCS – containers in the shell script
ラズパイ2で動く Docker PaaSを作ってみたよ
LibreOfficeコミュニティに不具合修正パッチを送ってみた
第一回コンテナ情報交換会@関西
オープンソースカンファレンス大分参加報告 & 勉強会向けサーバを作ってみる
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
VMwareユーザのためのdocker入門 ~Re:Virtualization Night #1~
Ad

Similar to 今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3 (20)

PPTX
ロボットシステム学2015年第5回
PDF
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
PPTX
20170527 inside .NET Core on Linux
PDF
第二回 クラウドサーバー管理者若葉の会
PDF
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
PDF
LPICレベル1技術解説セミナー(2012/11/11)
PDF
20170124 linux basic_1
PDF
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
PPTX
20230128.pptx
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
PDF
OpenSolaris Printing Environment
PDF
How to build LibreOffice on your desktop (日本語版)
PDF
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
PPTX
Ossで作成するチーム開発環境
PDF
20141004 ゼウス・ラーニングパワーlinuxサーバ構築セミナー
PDF
Kibanaでsysstatを可視化する
PPTX
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
PDF
「文書管理システム-作成用キット」の紹介, Introduction of "Document management system-Creation Kit"
PDF
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
ロボットシステム学2015年第5回
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
20170527 inside .NET Core on Linux
第二回 クラウドサーバー管理者若葉の会
サーバーだけじゃない!Linux デスクトップを使い倒そう!その2
LPICレベル1技術解説セミナー(2012/11/11)
20170124 linux basic_1
Ubuntuとコンテナ技術 What is LXD? and Why? 2015-12-08
20230128.pptx
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
OpenSolaris Printing Environment
How to build LibreOffice on your desktop (日本語版)
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
Ossで作成するチーム開発環境
20141004 ゼウス・ラーニングパワーlinuxサーバ構築セミナー
Kibanaでsysstatを可視化する
JAWS-UG HPC #2 LT 並列処理・MPIの第一歩
「文書管理システム-作成用キット」の紹介, Introduction of "Document management system-Creation Kit"
RTミドルウェアによるロボットプログラミング技術 2.プログラミングの基礎
Ad

More from Fuminobu Takeyama (20)

PDF
Btrfs + Snapper + Samba で作る「以前のバージョン」に戻せるファイルサーバー
PDF
Geeko Magazine: A Technical Magazine on openSUSE, edited on openSUSE―openSUSE...
PDF
SUSE Studio Express を使ってみた
PDF
Geeko Magazine: A Technical Magazine on openSUSE, editied on openSUSE
PDF
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
PDF
Ruby でできていると言っても過言ではない Linux ディストリビューション―openSUSE
PDF
ここが違う! OSC Tokyo と台湾の COSCUP
PDF
トランザクショナルアップデート ― Btrfsを活用したパッケージ更新方法
PDF
What is necessary for the next input method framework?
PDF
Leap の初のメジャーアップデート! openSUSE Leap 15.0 リリース
PDF
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
PDF
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
PDF
Welcome to openSUSE.Asia Summit 2017
PDF
告知LT最終回! openSUSE.Asia Summit 2017 注目セッションのご紹介
PDF
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
PDF
20161106 osc-tokyo-lt-asia-summit
PDF
Proposal of openSUSE.Asia Summit 2017
PDF
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
PDF
Redesigning Input-Method Launcher and Management System
PDF
openSUSE Leap 42.1 とは?
Btrfs + Snapper + Samba で作る「以前のバージョン」に戻せるファイルサーバー
Geeko Magazine: A Technical Magazine on openSUSE, edited on openSUSE―openSUSE...
SUSE Studio Express を使ってみた
Geeko Magazine: A Technical Magazine on openSUSE, editied on openSUSE
最近良く聞く Kubernetes を体験してみた イントロ + 活用編
Ruby でできていると言っても過言ではない Linux ディストリビューション―openSUSE
ここが違う! OSC Tokyo と台湾の COSCUP
トランザクショナルアップデート ― Btrfsを活用したパッケージ更新方法
What is necessary for the next input method framework?
Leap の初のメジャーアップデート! openSUSE Leap 15.0 リリース
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Welcome to openSUSE.Asia Summit 2017
告知LT最終回! openSUSE.Asia Summit 2017 注目セッションのご紹介
【openSUSEの最新動向のみ】Solrで日本語全文検索システムの構築と応用
20161106 osc-tokyo-lt-asia-summit
Proposal of openSUSE.Asia Summit 2017
LTS & ローリングリリース! ― ランキング4位のLinuxディストリビューション openSUSE を Azure で使ってみる
Redesigning Input-Method Launcher and Management System
openSUSE Leap 42.1 とは?

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

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