それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

ipythonの入力履歴を見る

ipython の入力履歴をみたい ipythonの入力のヒストリファイルはどこにあるのか調べたのでメモ ~/.ipython に ipython のファイルがある。 しらべたら次のところにファイルがあった *1 ~/.ipython 最近のLinuxなら ~/.config にファイルを集める傾向があるの…

Xpathで隣り合う前後要素を取得/ 兄弟・姉妹要素を取る

xpath で隣り合う要素を取得するには 妹(弟)ノードを取りに行く。 id("gaika_k")/following-sibling::div あるノードの弟ノードをとるには、あるノードを指定してから following-sibling::タグ名とすれば取ることができる。 姉(兄)ノード 姉を取りに行くなら…

xpath で要素をRange(範囲)指定する。( index で範囲指定 )

Xpathで要素を範囲指定するには position() 関数と組み合わせて戦える。 //tr[ position() > 0 ] これは指定番目を1つ取り出す次の書式の発展系と考えればわかりやすい 1番目のtrを取り出す。 //tr[ 1 ] 1番目より後ろの trを取り出す。 //tr[ position() >…

lsでファイルを拡張子ごとに並べる

ファイルを種類順に並べたい。 デスクトップの整理でよく見る「ファイルを種類別」に整理と同じ、ファイルを種類順にまとめて結果に表示を ls コマンドでもできることがわかった。 -X で拡張子でまとめて表示 ls -lX こうすると、ext 順にまとめて表示してく…

lsで日付ファイル名の逆順に並べる並べ方

ls で日付・ファイル名・ファイルサイズなどを昇順・降順に並べたい ファイルを並べて結果をだすときに、新しいものから処理したいとか、古いものから処理したいことがあるよね。 ls でファイルの日付順に並べる 新しいものが先になるように並べるには ls -l…

cygwinのインストールでUAC(Admin昇格)を不要にする

Cygwin のインストールにオプションがつかえた。 今更知った。もっと早く知っていれば。 ./setup-x86-64.exe --no-admin これをつけることでインストール時に、Admin権限を要求されないので、UACの権限がなくてもインストールが可能になる。 たぶんデスクト…

sysd の管理単位-ユニット

systemd の管理単位 systemd は起動のすべてを 「ユニット」という単位で管理する。 ユニットは「Service」が代表例で、/etc/init.d/ に記述するようなサービスDaemonはすべて「Service unit」 として管理される。 ユニットには、service の他に、 target mo…

systemd のファイルについて

systemd のファイルについて debian での systemd の構成について調べた systemd のユニットファイルが置かれている場所 /lib/systemd/ /usr/lib/systemd/ /etc/systemd/ など locate で探すと結構たくさんあってどうなってるのか面食らう。なので役割分担と…

systemdでsysVinit/Upstart系のコマンドはどうなるの?

upstart 系のものはどうなるの? takuya@:systemd$ ls -l /sbin/{start,reload,stop,restart,status} ls: /sbin/start にアクセスできません: そのようなファイルやディレクトリはありません ls: /sbin/reload にアクセスできません: そのようなファイルやデ…

systemdの起動プロセスとinitについて

systemd の起動について /sbin/init (rootプロセス) として systemd が起動する。 此のときに systemd はdefaut.target というユニットをトリガーとしてシステムの起動が始まる。 以前は、sysV init と呼ばた機能がinit からコールされてたがそれが systemd …

bashのシェルスクリプトで拡張子を取得して利用するときのまとめ

特定の拡張子に○○する的なことはよくある シェルスクリプトを書いていると拡張子で判別したいことはよくある。 bashで拡張子を取得するには bashのブレース展開が一番ラクです。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 特定のディレ…

rubyで実行中のユーザー名(id)を取得したい

ruby でスクリプトを実行したのは誰? スクリプトの実行ユーザーを知りたい。root以外で動かされるとパーミッションがあとで面倒なので、root 以外が起動しようとすると拒否したいってことが、わりとあるわけで。 実行ユーザーIDを知るには Process.euid #=>…

pbcopy で標準出力の内容をecho表示を維持しつつコピーしたい

pbcopy コマンドはクリップボードのコピーが出来て便利。 pbcopy コマンドを使うと、ターミナルの出力内容をコピーが出来る。便利なコマンド でも困ったことが有る。クリップボードにコピーされた内容を見れない。 takuya@~$ ls / Applications Network User…

mac で使えそうなQuickLookプラグイン

QuickLookプラグインを使う Quicklookはないと困る存在で、使い始めるといろいろなファイルをプレビューしたくなる。 インストール・インストール済みのプラグインはここで観れる。 インストールするには、このフォルダに突っ込めばいい。 /Users/takuya/Lib…

インストールされてるJDKバージョンを確認し一覧するコマンド

あれ?java どこに入れたっけ java 本体やコマンド なんてめったに使わないので、ついつい油断しますよね。 java_home という便利なコマンドが有る。 /usr/libexec/java_home Debian にはコマンドが見当たらなかったのでたぶん、MacOS用だと思うのですが。調…

XPathで目的の要素を持つ親ノードから辿ることをする。

Xpath が便利なのがこれ HTMLやテーブルで <a> を狙って取り出したいときに、複数取り出しちゃう。nth-child を使えば良いんだろうけど、Xpathの方がもうすこし柔軟に書けるので便利なんですよね。 <ul> <li><a></a> <li><a></a> <li><span><a></a></span> <li> <ul> これだと、2個めの a を狙うのは //li[2]/a になるんだ</ul></li></li></li></li></ul></a>…

Javaの対話型コンソール(repl)を使って楽をする

ちょっと動作調べるのに main 書くのめんどくさそう java を REPL つまり、対話型インターフェイスでCLIで実行したい。 go や node でお世話になるあれ。swhift にすら搭載されて。php にすら搭載されてるあれ. ruby なら pry / irb 、 python なら ipython …

curlコマンドで速度制限(スピードリミッタ)をつける

curl でファイルを次々と取得してて curl でパッケージを取得したり、転送したりしてて他の作業に支障がでることがあります。 curl 万能なので使いすぎます。 speed limit をつけることで curl を速度制限出来ます。 速度上限をつけることで、穏やかに、急が…

tailf でログをgrep して確認する確実な方法

tailf の結果をgrep してxargs したい場合 grep するだけなら問題ない。これは期待どおりに動く tail -f a.log | grep name grep が pipeの間に入ると厄介だ tail -f a.log | grep name | grep type この場合は正しく動作しない、中間に挟まったgrepがIOをバ…

もしかして、Amazon って oAuth できるの?

ドメイン登録しようとしてて、ふと見たら・・・ あれ?認証連携アカウントがAmazon???? もしかしてAmazonってOAuthの連携ができるのではないか? もし、アカウント連携できるなら強い だってクレカ登録率高いもん。ショッピングサイトで使うなら絶対に強…

script コマンドで作業内容をリモートで伝える

script コマンドで作業内容をリモートで伝える screen コマンドの共有でも出来るけどね。script コマンドだけでも出来るよね。 screen の共有とかと同じです。 見せたい側で script -f -a sample.log みたい側で tail -F sample.log としておけばずっと見て…

MySQL/MariaDBのSQLとテーブル名を補完する mycli が便利

mycli が便利でやばい SELECT / INSERT などを補完してくれて、テーブル名やカラム名を補完してくれて、SQLを色付けしてくれる。 インストール python で出来てるのでpip でインストール pip install mycli pip がないときは pyenv を pyenv から準備すれば…

pyenvをインストールしてpython環境を使う。

pyenv をインストールする。 python 3.6 を使いたいなと思ってインストールをはじめました。 ユーザー空間にvirtualenv 作るより楽ちんだし pyenv 使おうぜ インストール git clone git://github.com/yyuu/pyenv.git ~/.pyenv macOS なひとは brew install p…

twitterの検索方法:自分の過去のツイート検索したり、リツイート検索したり。トレンドを見たり

あのツイートどこだっけ? あーあの retweet したやつ何処だっけ あのときにTweetしたやつなんだけど などと過去のリツイートやツイートを検索したいことが多々有りますよね。 検索方法が有ります。 引用元 たとえば自分の過去のツイートをRT含めて掘り出し…

tailコマンドで複数のログをまとめて表示する

同時に2つのログを見たい tail -f を2つ起動して、ターミナル並べておくのも邪魔くさいと思ってました。 tail -f /path/to/log2 /path/to/log1 こうすれば、複数のログファイルを同時に tail でウオッチできる。 いままでは watch と cat を組合せてたので…

tail コマンドがファイルの削除、作成時でも動くようにする

tail -f コマンドを使うとファイルの削除で動作が止まる。 tail -f /path/to/log で ログファイルを見ているときに、別のプロセスでファイルが消えたら ファイルが消えたら、動作が止まる。 mv /path/to/log /dev/null rm /path/to/log echo hello > /path/t…

tail -f コマンドがログ監視てるプログラムが死んだら一緒に自動的に終了する

pid を指定すると tail コマンドが自動的に終了する tail -f --pid=$PID /path/to/log PIDを指定したときに ローカルホスト開発ツールのログ監視してるときとかに便利ですね。 man tail --pid=PID with -f, terminate after process ID, PID dies 参考資料 h…

ChromeのDeveloper tools(開発ツール)のコンソール(コマンドライン)で出てくる記号と関数

chrome の dev tools に出てくる関数 $ と $$ の違い $ = document.querySelector $$ = document.querySelectorAll $x は Xpath $x('//a') xpath は組み立てと呼び出しが面倒なので、とても嬉しい。 その他の関数をマトメておくと クエリ系 $ $$ $x 直前のも…

右クリックでEvernoteに送信する

右クリックでEvernoteにファイルを送りたい Finderで右クリックでファイルをEvernoteに送るにはどうするか。 「このアプリケーションで開く」→「Evernote」とすればいいし、項目にEvernoteがなければ、その他から選べばいいいのですが。。。 最初から用意さ…

Evernoteにファイルを投入するコマンド

Evernoteにファイルをまとめて放り込みたい。 コマンドでまとめてEvernoteに放り込みたい。APIを経由すると毎年〜キーを更新しなくちゃいけないので面倒くさい なので、Apple Script ( の JavaScript ) でやろうと思う ( Windows な人は同じ目的で enscript.…

JXAのJavaScript AutomationとObjc Cocoaのオブジェクト呼び出し例

JXA で NSString を使ってPATHの変換をしてみたのでメモ objcのCocoa から NSString と FileManager を使ったので、いろいろ知見を得られたのでメモ。 Javascriptで、NSString を使うには、次のようにする。 ObjC.import('Cocoa') NSStringを init して allo…

Selenium で フォーム送信

Selenium で フォーム送信 するには。 若干のWaitを入れてあげるとうまく動くと思う。 driver.goto 'https://example.com/login' wait = Selenium::WebDriver::Wait.new(:timeout => 3) # second ## ページロードを待つ wait.until { driver.xpath('//*[@id=…

Selenium使おうとしたらchromedriverが古くてエラーになった。

selenium 使おうとしたらエラーになった。 >> require 'selenium-webdriver' => true >> driver = Selenium::WebDriver.for :chrome , :desired_capabilities => caps NameError: undefined local variable or method `caps' for main:Object from (pry):2:i…

tailf と grep を組合せて Slackにログを通知する。パイプでワンライナー

ログファイルを監視して、slack などに通知したい。 ログを監視して Slackに投げる方法で、かんたんなのを考えた。 ログファイルに何か変更があって、それが特定のときに メールや slack のチャンネルに通知を出したら便利だと思う。 あれこれログ監視や通知…

google chrome が google アカウントのパスワードを補完(入力しない問題

Google Chrome がパスワードを利用させてくれない ChromeにGoogleアカウントでログインしてる場合、そのアカウントのパスワードは補完されない。 そのために、Chromeでパスワードを何度も入力することになり面倒くさい。 原因と理由 ちょっと実験してみた。 …

素因数分解をしてくれるコマンド factor

prime numbers ( 素数 ) に分解してくれるコマンドがあった。 takuya@Desktop$ factor 123456 123456: 2 2 2 2 2 2 3 643 factor とは 要因の意味で数学的に因数で、factor コマンドは 素数を使って因数を表現してくれるコマンド 何に使うのか。 特に何に使…

シェルスクリプトの改行コードを修正する

改行コードが原因でエラーになる。 改行コードを \r\n が原因でエラーになった。 takuya@:~$ bash -n apt apt: 行 2: 予期しないトークン `$'\r'' 周辺に構文エラーがあります 'pt: 行 2: `_apt() 一瞬何のエラーかわからなかったけどよく見るとエラーに改行…

標準出力と標準エラーのリダイレクト(コピー)について

標準出力と標準エラー出力を扱うときに たまに間違って 1 というファイルが出来てしまって悲しいことになる。 takuya@Desktop$ ll 1 -rw-r--r-- 1 takuya staff 20 2017-04-27 14:51 1 これを防ぐためにちょっと標準出力と標準エラーの扱いをまとめておこう…

github issue のラベルを編集する

github issue のラベルを編集してフレンドリーにする github のIssueのラベルを編集して名前をつけたら楽しい https://github.com/$(repo_name)/labels 編集した結果 ラベルをアレコレつけると感情が伝わってフレンドリーになる。 ただし、ラベルも使いすぎ…

Bashでシンボリックリンクのディレクトリの補完(上位ディレクトリが辿れない

シンボリックリンクされたディレクトリから上位が辿れない・・・ シンボリックリンクされたディレクトリがあって、その内部から、補完を試みても、ディレクトリがうまく補完されない。 takuya@vim$ ll -d /usr/local/opt/vim lrwxr-xr-x 1 takuya admin 26 2…

google drive にsync してディレクトリをバックアップを取る

google drive にファイルをバックアップする インストールと使い方の基本 google drive を コマンドから使うgdrive が早くて便利 - それマグで! バックアップを取る。 複製を取るには、幾つかのポイントを気にする。 Google Driveどのフォルダ(ディレクト…

Mac のアプリケーションの識別文字列 CFBundleIdentifierを探す

CFBundleIdentifierを探す Karabiner の設定をするのに、UTI文字列が必要なのでね。com.vivaldi.Vivaldi のような文字列が必要になるので。 plutil -extract CFBundleIdentifier xml1 path/to/Info.plist -o - | xmllint - --xpath "//string/text()" CFBund…

vim の置換で改行をいれる

vim

改行を入れるのをどうするのか悩んだ 改行コードを書き込んだら、あとはファイルの改行方式に従ってうまくやってくれる %s/^name/name^M/ ^M は Ctrl-V, Ctrl- M で入力する。もしくは Ctrl - V , Enter と入力する 直接指定する場合 ^M で出来るんだから、…

Chromeのヘッドレスモードで快適生活

chrome のヘッドレスモードで起動して遊ぶ Chromeのヘッドレスモードは便利ですよね。 macOS にも Chrome のヘッドレスモードがやってきます。 MacOSだと長らく動かなかったので、あれこれトリックを使っててめんどくさかったんです。ようやく陽の光が! 準…

pdf で逆向きの画像をまとめて回転させる(qpdf編

pdf

スキャンして、上下逆さに入れちゃったPDFをまとめて回転させる スキャンした画像が上下逆の場合にどうするんだろうか。1ページずつ切出して jpeg 取り出して、pdftk 回転させたけど、すごく時間がかかってi7 6700 でも400ページ処理するのが辛かった。qpdf…

逆順に保存されたPDFのページを反対の順番にする。qpdf編

pdf

スキャンしたら、ページが逆!? スキャンしたら、ページが逆になったことありませんか?わたしは適当にスキャンするのでよくあります。 ページが逆順になったPDFを、1ぺーじから順に反対順に印刷し、正順化するには、どうするのか。 PDFプリンタを使います…

PDFを各ページに分割(切出)するコマンド pdfseparate

pdf

PDF から 指定ページを切出・分割したい。 スキャンしたPDFや、配布されたPDFを扱いたい。数百ページのPDFを1ページ毎に分割したい。指定ページだけのPDFを作成したい。 Nページ目からMページ目までのPDFを作りたい、NページをNファイルのPDFにしたいときに…

github.comでサブディレクトリをダウンロードする。

git archive が通らない。 git レポジトリなら git archive で取り出せるのですが、github.com は現在(2017-04-07) のところ、git archive コマンドをサポートしてない模様 Invalid command: 'git-upload-archive 'takuya/sample.git'' You appear to be usi…

which じゃなくて which brew が欲しい。

このコマンドは、どの brew ? which brew package contains this command ? な疑問文に答えてほしい。 なんとかした。 function which-brew () { ! type $@ &>> /dev/null && { echo $@ not found.; return 1 ; } [[ $(realpath $( which $@) ) =~ Cellar/(…

which コマンドを見直してみる。which コマンドの活用法

which コマンド which コマンド which コマンドについて そもそも which コマンドって? which コマンドを更に追求する このls はなに? which コマンドで 検索に alias も含める。 which コマンドの検索に function も含める。 alias も function もどちら…