LoginSignup
5
1

docker(48) One liner program記録帳

Last updated at Posted at 2019-02-05

背景

#one liner program
Wikiによれば、
https://en.wikipedia.org/wiki/One-liner_program

1960年代にAPLで始まったとのこと。APLは仕事で1行たりとも読んだことも、書いたことがなく、今後調査していこうと思う。

1970年代に、BASIC, AWK(Unix command)で発展してきたとのこと。この頃は記憶にある。

1行のコマンドラインしか表示しない1行画面で接続している時をはじめ、
エディタを立ち上げるのが面倒な場合に、1行で済ませられる命令は、すごく重宝した。

現状ではどうだろうか。

dockerのubuntuの基本システムはviが入っていない。
素のubuntuで作業しているとき、

$ apt update; apt install -y vim

とするより、vimの入ったimageでdockerhubからrunした方が作業が速いときがある。
one liner programであることが最速とは限らない。

現代でもone liner programは貴重。

環境に依存しないワンライナーを書くならsedよりperlの方がいい
https://qiita.com/takc923/items/8654d69008e921c9c9fb

を拝見して考察。

  1. shell
    お世話にはなっている。
    もともとMS-DOSのbatファイルの方が多かった。
  2. sed
    文字置換の一括処理するのに利用することがあった。
  3. awk
    用語頻度一覧を作るのによく用いてきた。
  4. perl
    自分では作ったことがない。引数を変更する程度。
  5. python
    ツール類のコマンドとして採用されているものを意識せずに利用。
  6. ruby
    brewでrubyが採用されていることを知る。変更する程度の利用。

One liner on Qiita

各言語処理系でワンライナーを走らせる方法カンペ
https://qiita.com/hakatashi/items/f3a05a03ded861af6e44

知っておくとちょっと便利。コマンドラインでワンライナーするためのオプションたち
https://qiita.com/cyross4vocaloid/items/f130f35ebf4a723015a8

素数一覧を求めるワンライナー各言語まとめ
https://qiita.com/ytaki0801/items/19059b35efe85519cfad

続・素数一覧を求めるワンライナー各言語まとめ
https://qiita.com/ytaki0801/items/dd9a4b90e405c120efc0

フィボナッチ数列を求めるワンライナー各言語まとめ
https://qiita.com/ytaki0801/items/dc6392dbce6d2b9bb483

shell

おまえは今まで打ったコマンドの回数をおぼえているのか
https://qiita.com/ymkjp/items/2fc3ae74432234fa4850

便利系ワンライナー
https://qiita.com/masachika/items/3e20ec05451e76c85dfe

ワンライナー仕事術: 日常業務におけるシェルコマンド活用法
https://qiita.com/515hikaru/items/6c9005818113c0ff5da4

よく使うワンライナー
https://qiita.com/kimikimi714/items/ed3dfb698a6ae6269c00

よく使うワンライナー
https://qiita.com/ryotaro76/items/139ed17f65f2581f8de9

ワンライナー個人メモ
https://qiita.com/kei2100/items/bf522faee1bd759c029b

いつの間にか追加してた長いワンライナーとその時のテク
https://qiita.com/benridane/items/40335fd02418bfbf1a92

バッシュ ワンライナー テンプレート
https://qiita.com/hnishi/items/a15ca0b3e5eed1d01545

居眠りしたいときに使えるワンライナー
https://qiita.com/koyapig/items/83f924e4dadf0514c519

ワンライナーで色相を変えた画像をたくさん作る
https://qiita.com/ir-yk/items/18395cc44f0d1123965d

Gitサーバーを 1行で構築する (GitBucket)
https://qiita.com/msrks/items/23bbb9ec47e81beba8f7

すべてのscreenを消す One liner
https://qiita.com/giwa/items/57f4e64a0c66a65c34e4

今日は何の日?カレンダーのデータ部分を取得するワンライナー
https://qiita.com/clown0082/items/690227814b2781141cc4

Kerasのログからグラフを作成するワンライナー
https://qiita.com/amanoese/items/5f65910f90a483f071ff

複数のファイルをワンライナーでCloudantのAttachmentsへ一括登録する
https://qiita.com/amanoese/items/525e4b9139577315e857

シェルでよく使う日付の連番をワンライナーで
https://qiita.com/amanoese/items/c5450b54b2a8e0293849

祝日をWebAPIから取得するシェルスクリプトをワンライナーで
https://qiita.com/amanoese/items/7db079377d6ebc215f60

特定ディレクトリ以下のプログラムの行数を調べたい
https://qiita.com/zoe302/items/93d2445f69e2c2307a17

one-linerでデータを集計した話https://qiita.com/Nedward/items/741559914ca7649c8d84

PowerShell

今すぐalias登録すべきPowerShellワンライナー
https://qiita.com/mu_sette/items/3954759daee8ae9ad26f

なぜPowerShellはテキストではなくオブジェクトを出力するのか
https://qiita.com/e_do_kiriko/items/ac59f32e0d6b280870fe

PowerShell CheetSheet One-Linerで片づけろ!
https://qiita.com/AnarchyInvestor/items/b281d9e8239ac21a461b

1行野郎 Bash ShellScript で URLエンコードとデコードをする
https://qiita.com/robozushi10/items/550e7c3c54d7ce01a737

csv を json に変換する PowerShell ワンライナー
https://qiita.com/hidao/items/940dce912a80f6fc19fa

sed

Amazonの長い長いURLを短縮するワンライナー(正規表現を勉強してみた)
https://qiita.com/hann-solo/items/eba0bb27b5639eeca093

awk

実用 awk ワンライナー
https://qiita.com/b4b4r07/items/45d34a434f05aa896d69

awkワンライナー集
https://qiita.com/yusukew62/items/f9502a3ddd6087a496ce

awkによるマッチング(ワンライナー)
https://qiita.com/akira_kikaku/items/1e74aeb8746ca316ee1a

AWK One Liner(一行野郎)
https://qiita.com/fkym/items/9c1a5b6760887826c0c2

n行ごとに処理をするワンライナー
https://qiita.com/dll7/items/95440b17ea8397231607

ls + awk + xargs + mvの複合コマンド
https://qiita.com/dongxinanbei/items/13528b9a0a9d78b5aa81

Qiitaでフォロー中のタグを全部指定した検索結果画面のURLを作るワンライナー
https://qiita.com/hidezzz/items/dd0a94f843c023918860

ファイル名からスペースとシングルクォートを取り除いてリネームするワンライナー
https://qiita.com/emergent/items/07fe612db727ef2c928c

curl

curlでChatworkの投稿を削除するワンライナー
https://qiita.com/hidao/items/92e9b672420124a19f58

##perl

Perlワンライナー ブをスペース4に変換
https://qiita.com/oinume/items/01cb087adf246b0a8f42

Perlワンライナー
https://qiita.com/kuritayu/items/9936ca21fad64192a49f

はじめてのperlワンライナー
https://qiita.com/facel/items/c253735899da3092734a

実用 perl ワンライナー
https://qiita.com/ohtsuka1317/items/92c339a65533e1e6c6fc

Perlワンライナー覚書
https://qiita.com/tossh/items/f8d448c0c039f68c0ea3

log調査なんかでワンライナーPerlつかうとき用忘備録(正規表現 置換)
https://qiita.com/YOKO-Chance/items/52bb121b406bd11cbd35

Perl ワンライナーとその仲間たち
https://qiita.com/teckl/items/98de382787401d2392c3

C

gcc で pre-defined なマクロを調べるワンライナー
https://qiita.com/monamour555/items/79f7fa0dd12a50929fa6

python

コードをもっとPythonic(ニシキヘビ的)に!任意のPythonコードをアンダースコアでワンライナー化
https://qiita.com/Syuparn/items/1afa97e8dd731923f1ad

Pythonで九九を出力するワンライナー
https://qiita.com/gm_kou/items/0c8f3569980b36c672ef

pythonのone-liner
https://qiita.com/jack-low/items/ab3023ff67829ff42aa0

python で one liner webServer(with CGI)
https://qiita.com/shigenobu_c/items/9fc9a0c97a7acd5a51f7

言語処理100本ノック 第1章をpythonのワンライナーで解く
https://qiita.com/tsumugi02/items/644f76372a7a0af31021

【Python】再帰なしでワンライナーフィボナッチ数列【ネタ】
https://qiita.com/Cartelet/items/f055e1e33564b4697848

Python3一行書きの手法まとめ
https://qiita.com/Mikaner/items/edd1d55ab239c189137b

javascript

HTMLで最も短い湯婆婆(記事内で試せます)
https://qiita.com/TD12734/items/743e90fb867fee8c562e

コンソールを用いたワンライナー TIPS(IE11)
https://qiita.com/juner/items/d64c4e2cad1c9c2674bc

Javascriptでワンライナー湯婆婆
https://qiita.com/Poteto143/items/8a406cca7d511acb40ff

【時短テク】再生速度を指定できない動画を倍速で見るためのワンライナー
https://qiita.com/t15/items/9cf11354a4e6c5ef0616

JavaScriptワンライナー #1 任意長のランダムな文字列を作る
https://qiita.com/IsamuSugi/items/4a7483c340428e6ac081

node

Nodeでワンライナー
https://qiita.com/_mk2/items/cda64628faab29de74d4

ruby

ROS用ワンライナー
https://qiita.com/raucha/items/2397534c58760bbf676d

シンボルハッシュを文字列ハッシュに変換するワンライナー
https://qiita.com/color_box/items/01dac020f441b4789d99

簡単にパスワードを作るRubyワンライナー
https://qiita.com/wai-doi/items/cec97cc38642df26b28e

WEB/browser

One Liner Web Server
https://qiita.com/ichi00/items/99326da08aa110cfa6ac

alias登録すべきワンライナーを探すワンライナー
https://qiita.com/M_Ishikawa/items/4b70b96b371613e2790a

##aws

ELBのローカル側IP、パブリック側を取得するワンライナー
https://qiita.com/nouphet/items/e81006b32edd722f34ca

php

UTCタイムスタンプ(UNIX時間)をJSTに変換して表示するワンライナー
https://qiita.com/jun_ya/items/a74f05c7132609f2665d

docker

いろいろなコマンドを実行する上で、環境を書き換えるものがあると、後で戻すの大変になることがある。
ひとまずdockerで one liner programの動作確認をしてから、実際の環境で利用するかどうかを決めるためのdocker利用。
dockerでの複数ファイルのダウンロードはwgetコマンドを使う。

$ docker run -it ubuntu /bin/bash

# apt update; apt install -y vim wget sudo apt-utils
# apt install -y curl jq perl gawk rails

Please select the geographic area in which you live. Subsequent configuration questions will narrow this down by presenting a list of
cities, representing the time zones in which they are located.

  1. Africa   3. Antarctica  5. Arctic  7. Atlantic  9. Indian    11. SystemV  13. Etc
  2. America  4. Australia   6. Asia    8. Europe    10. Pacific  12. US
Geographic area: 6

Please select the city or region corresponding to your time zone.

  1. Aden      14. Beirut      27. Gaza         40. Karachi       53. Muscat        66. Riyadh         79. Tokyo
  2. Almaty    15. Bishkek     28. Harbin       41. Kashgar       54. Nicosia       67. Sakhalin       80. Tomsk
  3. Amman     16. Brunei      29. Hebron       42. Kathmandu     55. Novokuznetsk  68. Samarkand      81. Ujung_Pandang
  4. Anadyr    17. Chita       30. Ho_Chi_Minh  43. Khandyga      56. Novosibirsk   69. Seoul          82. Ulaanbaatar
  5. Aqtau     18. Choibalsan  31. Hong_Kong    44. Kolkata       57. Omsk          70. Shanghai       83. Urumqi
  6. Aqtobe    19. Chongqing   32. Hovd         45. Krasnoyarsk   58. Oral          71. Singapore      84. Ust-Nera
  7. Ashgabat  20. Colombo     33. Irkutsk      46. Kuala_Lumpur  59. Phnom_Penh    72. Srednekolymsk  85. Vientiane
  8. Atyrau    21. Damascus    34. Istanbul     47. Kuching       60. Pontianak     73. Taipei         86. Vladivostok
  9. Baghdad   22. Dhaka       35. Jakarta      48. Kuwait        61. Pyongyang     74. Tashkent       87. Yakutsk
  10. Bahrain  23. Dili        36. Jayapura     49. Macau         62. Qatar         75. Tbilisi        88. Yangon
  11. Baku     24. Dubai       37. Jerusalem    50. Magadan       63. Qostanay      76. Tehran         89. Yekaterinburg
  12. Bangkok  25. Dushanbe    38. Kabul        51. Makassar      64. Qyzylorda     77. Tel_Aviv       90. Yerevan
  13. Barnaul  26. Famagusta   39. Kamchatka    52. Manila        65. Rangoon       78. Thimphu
Time zone: 79

##docker hub

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d48bcf70b686        ubuntu              "/bin/bash"         4 hours ago         Up 4 hours                              practical_wozniak
$ docker commit d48bcf70b686 kaizenjapan/oneliner
sha256:df0bc8e57e698da6027fb2716401bc58658e09845faf06add9b5476249ff45b5
$ docker push kaizenjapan/oneliner
The push refers to repository [docker.io/kaizenjapan/oneliner]
ee392bf0795e: Pushed 
27a216ffe825: Mounted from kaizenjapan/jq 
9e9d3c3a7458: Mounted from kaizenjapan/jq 
7604c8714555: Mounted from kaizenjapan/jq 
adcb570ae9ac: Mounted from kaizenjapan/jq 
latest: digest: sha256:1dd469ce7a70291598cb7b24c1b55b684452cd8f0adbdda59052403bd299b188 size: 1362
$

DockerでJupyter立ち上げるワンライナー
https://qiita.com/bboobbaa/items/0324925f1137bef07f40

参考資料(reference)

jqインストールワンライナー
https://qiita.com/FumiyaShibusawa/items/a0be39d28139a044157d

docker で jq
https://qiita.com/kaizen_nagoya/items/8b35775c354cac36093b

docker利用を勧める256の理由(現在12)
https://qiita.com/kaizen_nagoya/items/c4e5075142bf5e11ddbe

文書履歴(document history)

ver. 0.01 初稿 20190205
ver. 0.02 docker, ap-get install 登録 20190205
ver. 0.03 docker hub登録 20190205
ver. 0.04 参考資料追記 20190212
ver. 0.05 ワンライナー 追記 20190225
ver. 0.06 javascript追記 20190305 午前
ver. 0.07 C追記 20190305 午後
ver. 0.08 jupyter追記 20190429
ver. 0.09 色 追記 20190503 午前
ver. 0.10 git 追記 20190503 午後
ver. 0.11 python追記 20190505
ver. 0.12 keras追記 20190508
ver. 0.13 追記 20190511
ver. 0.14 追記 20190520
ver. 0.15 追記 20190522
ver. 0.16 はじめに加筆 20190525
ver. 0.17 追記 20190609
ver. 0.18 標題追記 20190813
ver. 0.19 項目追記 20210723

最後までおよみいただきありがとうございました。

いいね 💚、フォローをお願いします。

Thank you very much for reading to the last sentence.

Please press the like icon 💚 and follow me for your happy life.

このエントリーをはてなブックマークに追加
http://b.hatena.ne.jp/guide/bbutton

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1