Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

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

※本セミナーは OSC 2016 Tokyo/Fall, 2017 Tokyo/Spring と同内容です

Linux ベースの OS 上には、様々なコマンドラインツールがそろっています。
bash や zsh をはじめとする強力なシェルインタプリタはもちろん、
今となっては開発者には必須の Git や、Python、Ruby といったスクリプト
言語が標準搭載されています。

今や Windows 上で bash が動くようになることが騒がれるような時代です。

一方でこれまでずっと GUI 環境で生きてきた人の中には、基本的なコマンド
を知っていても、なかなか手早くシェルを操作できない(コマンドを打てない)
という方もいるのではないでしょうか?

本セミナーでは、誰が教えてくれるわけでもない、コマンドラインツールの
テクニックを紹介します。

コマンドライン初心者を脱して中級者を目指しませんか?

内容の例:
- 手早くシェルを操作するテクニック
- 端末アプリケーションとLinux デスクトップとの合わせ技
- 昔はなかった便利なコマンド

Ähnliche Bücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen

Ähnliche Hörbücher

Kostenlos mit einer 30-tägigen Testversion von Scribd

Alle anzeigen
  • Als Erste(r) kommentieren

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

  1. 1. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 1/54 その 1 rev. 4 武山 文信 日本 openSUSE ユーザ会 CC BY-SA 4.0 p. 16, 17 の引用した画像を除く
  2. 2. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 2/54 今日の内容 ● openSUSE について簡単に紹介 ● コマンドラインツールテクニック 1〜12
  3. 3. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 3/54 みなさん って何かご存知ですか?
  4. 4. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 4/54 正しいのはどれ? ● 1. サーバールームでモフモフできるカメレオン型ガジェット ● 2. Ruby で簡単に Web アプリを作れるフレームワーク ● 3. 昨年20周年だったドイツ生まれの Linux ディストリビューション
  5. 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. 6. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 6/54 デスクトップはこんな感じ
  7. 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. 8. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 8/54 インドネシア ジョグジャカルタ特別州の小中学校のPCに openSUSE を採用
  9. 9. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 9/54 2つの openSUSE Tumbleweed 常に最新 安定
  10. 10. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 10/54 openSUSE Tumbleweed ● ローリング・リリース – 週に3回程度新しいバージョンがリリース ● 常に最新バージョンのカーネルやアプリケーション、 ライブラリを使いたい人向け – アプリケーション開発時に、新しいコンパイラやライブラリでも 動くかをいち早く確認できる
  11. 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. 12. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 12/54 今さら聞けない コマンドラインツールテクニック
  13. 13. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 13/54 昨今のイケイケな ICT 業界 圧倒的な圧倒的な MacMac 率!率! 私も学生のとき使っていました私も学生のとき使っていました
  14. 14. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 14/54 だって ● bash, zsh, … ● grep, find, diff, patch, sed, ... ● Python, Ruby, ... ● Git, Subversion, … 今では必須のコマンドラインツールたち!
  15. 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. 16. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 16/54 Microsoft も動いた! http://japanese.engadget.com/2016/03/30/windows-10-bash-ubuntu-linux/
  17. 17. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 17/54 Windows Store にも来た
  18. 18. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 18/54 システムに 7 つくらい Bash が 入っていたりしますよね? .bashrc が全然同期されていなかったり…
  19. 19. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 19/54 Linux ならコマンドツールがすぐに使えます! Cygwin とか Homebrew とか Mac Ports とかは不要!
  20. 20. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 20/54 今日ちょっと伝えたいこと Linux デスクトップを開発環境に使うと便利!
  21. 21. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 21/54 コマンドラインツールテクニック ● もっと効率よく作業できるのに – コマンドラインツールを使いこなせていない人を見ていて ● 新しいツール・変わってしまったツール ● もっと良い方法がある!という場合は教えてください – 資料の作成過程でいろいろと教えてもらいました 40分のセミナーで収めるには…
  22. 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. 23. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 23/54 1. よいターミナルアプリケーションを使う コマンドプロンプトはダメ
  24. 24. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 24/54 1. よいターミナルアプリケーションを使う ● コマンドを入力するアプリケーション – Konsole, GNOME Terminal, ... ● ショートカットによるコピー&ペースト – Ctrl+Shift+C – Ctrl+Shift+V ● 画面のタブ分割 Windows の人は mintty や、 よい SSH クライアントを使ってください ウェブページのサンプルも 簡単コピペ!
  25. 25. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 25/54 2. 圧縮された tar を展開する 意外と知られていない、最近のオプション
  26. 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. 27. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 27/54 3. カーソルの移動と削除はショートカットを! 矢印キーを連打していませんか?
  28. 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. 29. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 29/54 4. 入力補完と履歴を使う 毎回コマンドを最初から最後まで入力していませんか?
  30. 30. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 30/54 4. 入力補完と履歴を使う 1/3 ● 入力補完 – ファイル名やコマンド名を途中まで入力して Tab キーで 続き補完してくれる $ lv pen $ lv pen-pineapple-apple-pen.txt Tab キー 日本語のテキストファイルを見るコマンド
  31. 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. 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. 33. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 33/54 5. 関連付けられたアプリケーションで開く GUI アプリを使いたい やっぱり GUI でも操作したい
  34. 34. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 34/54 5. 関連付けられたアプリケーションで開く ● カレントディレクトリをファイルブラウザで開きたい – 選択してファイルを動かしたいとき…など ● 関連付けられたアプリケーション でファイルを開く $ xdg-open . $ xdg-open geeko.jpg フォルダ名
  35. 35. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 35/54 6. 色付きコマンドの活用 コマンドの出力結果を見やすく
  36. 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. 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. 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. 39. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 39/54 7. Human readable ちょうどよい単位系で大きさを表示
  40. 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. 41. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 41/54 おまけ ● 毎回 -F とか -h とか --color とかめんどくさい ● ls と打ったときに ls -Fh --color と入力したことにする – .bashrc に次の内容を記述 alias ls='ls -Fh --color'
  42. 42. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 42/54 8. ホームディレクトリに戻る さっと戻るには?
  43. 43. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 43/54 8. ホームディレクトリに戻る ● パラメータを指定しない ● 他の方法(長い) $ cd $ cd ~ $ cd $HOME
  44. 44. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 44/54 9. 直前にいたディレクトリに戻る 間違えて cd してしまったときは?
  45. 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. 46. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 46/54 10. {,} でファイル名の繰り返し入力を防ぐ
  47. 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. 48. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 48/54 11. tree 系コマンドの活用 親子関係を手っ取り早く見る
  49. 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. 50. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 50/54 12. 環境変数を設定して実行する ~/.bashrc で設定しなくてもよい
  51. 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. 52. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 52/54 次回予告 ● PATH ってなんでしたっけ? ● 大量の画像をまとめて変換 ● パイプとリダイレクト ● 出力を切り取る ● chmod + ● fb, bg, Ctrl + Z ● SSH のデフォルトオプション ● コマンド置換
  53. 53. 2017/9/2, 3Linux コマンドラインツールテクニック その1 rev. 4 53/54 openSUSE.Asia Summit 2017 Tokyo ● openSUSE や Linux など周辺の OSS に関する国際イベント ● 今年は初日本開催! – 北京→台北→ジョグジャカルタ(インドネシア) ● 日時: 10月21日(土)、22日(日) ● 会場: 電気通信大学(東京都調布市) ● 参加費: 無料 技術書展もやっています 週末はぜひ東京へ
  54. 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つくらい興味があるトピックがありますよね?

×