curluneの日記

日々試行錯誤。雑多に、気ままに、てきとーに。HoloLens/Oculus Rift,Touchと戯れる日々。

bashのjob機能を使う ぷちアドベントカレンダー2017 25日目

CUI環境での実行切替、bashのjob機能についてのお話です。

CUIでも実行切替

GUIではウィンドウを選んで操作対象を切り替えるように、CUIでも捜査対象を切り替えることができます。そんなときに出てくるのがjob機能です。

マウスの代わりに、ショートカットキーやコマンドを使って操作します。

ざっくり

  • jobs
    • プログラムの一覧と対応番号を表示
  • Ctrl+z
    • いまのプログラムを一時停止(してbashへ戻る)
  • fg
    • プログラムを操作状態に戻す
  • bg
    • プログラムを操作無しで実行(バックグラウンド)
  • (コマンド実行時、最後に)&
    • 最初から操作無しで実行

fgbg は数字を渡せます。渡した場合は対応番号のプログラムを対象にします。渡さなかった場合は最近操作し他物が選ばれます。

Ctrl+zで一時停止、fgの2つだけで、中断と再開ができます。

&を付け忘れて実行したとき、Ctrl+zで一旦止めてbgで裏で実行。実質的に&を付けて実行した酔うな状態にできます。

3つの状態

プログラムの状態はこんな感じです。

  • GUI
    • アクティブ
    • 非アクティブ
    • 最小化
  • CUI
    • フォアグラウンド
    • バックグラウンド
    • 一時停止
  • 説明
    • 操作中
    • 操作していないけど動いている
    • 動いていない

本当は最小化は動いてるけど、簡易的に...。

終わりに

なんだかんだで多用しているありがたい機能です。sshな環境でDB操作や、ファイル編集へ行ったり来たり。どんな環境でも使えるものは良い物です。

curlを使う時に覚えておくと良いと思うオプション ぷちアドベントカレンダー2017 24日目

curl便利!というとこで、個人的に覚えておきたいオプションの紹介です。

覚えておくと便利

たまにあれ?っと思った時にはこの辺りを覚えていると便利です。

-k
 証明書無視、仮環境とかでたまに掛かるやつ。
-L
 リダイレクト処理してくれる、ブラウザは自動でやってくれるから忘れがち。
-u ユーザ名
 ベーシック認証、後に :パスワード 付けると入力省ける
-I
 うまく行かないときその1、大文字のアイ。ヘッダだけ出してくれる。
-v
 うまくいかないときその2。いろいろ出してくれる。コンソールに出すとごちゃごちゃするのでファイルへ出力したほうがいい。

bashで実行する時は記号に注意

bashで実行する場合は、urlによく入っている記号&などに注意が必要です。 curlの問題ではないけれど、よく引っかかるやつです。

クオートで囲むなり、個別にエスケープするなりの対処が必要です。

終わりに

他にも便利な機能はありますが、トラブル対処としては今回の物を覚えておくと良いかと思っています。

私のvimのタブ入力切替マッピング ひとりぷちアドベントカレンダー2017 23日目

個人的に利用しているvimのタブ入力切替のマッピングについてのお話です。

タブ切替マッピング

最近は次のような設定で落ち着いています。

nnoremap <Space>t2 :<C-u>setlocal softtabstop=2 shiftwidth=2   expandtab<CR>
nnoremap <Space>t4 :<C-u>setlocal softtabstop=4 shiftwidth=4   expandtab<CR>
nnoremap <Space>t8 :<C-u>setlocal softtabstop=8 shiftwidth=8 noexpandtab<CR>

スペース周りの設定値の意味はこんな感じです。

  • softtabstop:
    • タブ文字スペースいくつ分と同じように扱うか。
    • 編集の際にスペースN個の纏まりをタブ文字1個かのように追加/削除したい時に設定します。
  • shiftwidth:
    • インデントしたい、という時にいくつ分のスペースを使うか。
    • 内部の機能等で自動インデントする際にどれぐらいずらして欲しいかを設定します。
  • expandtab:
    • タブ文字を入力した時に、代わりにスペースに換えるかどうか。
    • ファイルにタブ文字をファイルに残したくない時に設定します。
  • tabstop:
    • タブ文字をスペースいくつ分として表示するか。
    • 既にファイルにあるタブ文字をどのようなサイズの見た目にしたいかを設定します。
    • ファイル内のインデントがタブ文字の場合だけ(t8相当)、好みで設定しても大丈夫です。

終わりに

簡単なショートカットで使えるようにしておくと便利です。

ひとつのGmailの受け取れるメールアドレス表記のお話 ひとりぷちアドベントカレンダー2017 22日目

gmailはひとつのアカウントでいくつかの表記のメールを受け取れるよ、というお話です。

ただし、たまーに悲しい事になる場合もあります。

受け取れるもの

実在するアドレスをつかうのもあれなので、@gmail.comの代わりに@example.comで表記します。

gmailではアカウント名そのもの以外に、.(ピリオド)を含むものと+(プラス)を含む物を受け取る事ができます。事前に設定等は必要ありません。

ピリオドを含むもの

アカウント名の好きな場所に好きな数の.を含んでいても同じアカウントで受け取ることができます。最初と最後、連続はNGです。

例: curlune2というアカウントの場合

curl.une2@example.com
curl.une.2@example.com
c.u.r.l.u.n.e.2@example.com

プラスを含むもの

アカウント名の最後に+とすきな文字列を含むメールも同じく受け取る事ができます。 @はだめ、など多少制限はあります。アカウント名部分は先ほどのように.を含むことができます。

例:

curlune2+abc123@example.com
curl.une2+nospam@example.com

たまにある悲しい事

そんなもの受け付けない

意図的な制限の場合や考慮していない場合、+を含むアドレスは正しいメールアドレスと認識してもらえない事があります。

受け付けたけど扱えない

登録できないだけなら良いのですが、稀に登録できるけれど扱えない部分があるというところがあるので注意が必要です。

先日の記事もそんな例のひとつです。

curlune.hatenablog.com

受信だけでなく送信もできる

別表現のアドレスは受信だけでなく送信にも使えます。

受信は何もせず行えますが、送信の場合は個別に設定が必要です。

別表現から送信できるようにする

gmailの設定画面から送信元を登録する事ができます。

他のメールアドレスを追加 を選択すると 名前とメールアドレスの入力画面が出てきます。

f:id:curlune:20171222234158p:plain

メールアドレスの部分に.+を含むアドレスを入力する事で送信に使えるようになります。

f:id:curlune:20171222234647p:plain

以降、メールを送信する際にFrom欄を選択するとプルダウンにて先ほど追加したアドレスを選べるようになっています。

終わりに

+を含むような特殊なメールアドレスを受け付けない、というのは構わないと思います。けれども、半端に動作するのは勘弁してほしい......。

chromeでUserAgentを変えてアクセスする ひとりぷちアドベントカレンダー2017 21日目

ChromeUser-Agentを変える方法についてのお話です。

本体の設定のみで行けます。

設定ページ

ディベロッパーツールのSettingsから設定を行えます。

  • Ctrl+Shit+Iディベロッパツールを表示します。
  • その後、F1を押すとSttingsの画面が出てきます。
  • Devicesのページを選ぶと、User-Agemt等を追加/変更する事ができます。

f:id:curlune:20171221233750p:plain

今回設定した値はこちらから取ってきました。 www.nttdocomo.co.jp

使い方

f:id:curlune:20171221234926p:plain

ディベロッパーツール左上のスマホ/タブレット?のアイコンから利用できます。

f:id:curlune:20171221234953p:plain

上部のプルダウンから先ほどの設定を利用できます。

正しく反映させるためには、一旦リロードが必要な場合があります。

終わりに

久々にUser-Agent依存なページを見かけました。アクセスほとんどないだろうけれど、まだ生きているのだなあ。

最近は画面サイズ等で振り分けが多い?ので懐かしいです。 通信速度等も弄らないとモバイル等の判定をしてくれない事があります。

vimでテキストをソートする ひとりぷちアドベントカレンダー2017 20日目

vim内蔵のソートコマンド:sortについてのお話です。

ソート対象

次のテキストをいろいろ並び替えてみます。

bb,100
ccc,03
a,2
ccc,03

ふつうに

しんぷる。

:sort
a,2
bb,100
ccc,03
ccc,03

逆順

!を付けると逆順になります。

:sort!
ccc,03
ccc,03
bb,100
a,2

カンマの後項目で

ソートする際に無視する文字を正規表現で指定できます。 最初の,までを無視する場合はこちら。

:sort /[^,]*,/
ccc,03
ccc,03
bb,100
a,2

文字列としてソートされるのでちょっと残念な結果に...。

数字として見る

先ほどのものにnを追加すると、数字として見て並び替えてくれます。

:sort n /[^,]*,/
a,2
ccc,03
ccc,03
bb,100

そのほか、16進数や、少数を指定する方法もあります。

カンマの後の項目でその2

正規表現の利用としては、無視する、ではなく、該当部分でソート、もできます。rをつけるだけです。

:sort n r /\d\+/
a,2
ccc,03
ccc,03
bb,100

終わりに

内蔵なのでいつでも使えるのがよいですね。 正規表現を頑張るといろいろできます。

vimのdigraphsで遊ぶ ひとりぷちアドベントカレンダー2017 19日目

簡易なIME的機能、digraphsで遊んでみようというお話です。

入力と出力結果の関係性が面白いです。

digraphs

digraphs(ダイグラフ)は、キーボードに無い文字を入力する仕組みのひとつです。 簡易なIME的なものです。

2つのキー入力で、ひとつの文字を入力します。

日本の環境では立派なIMEが常備されているので、お目にかかる事はあまり無いかもしれません。

詳細が知りたい時はこちらをどうぞ。

:help digraph

使い方

入力状態のとき、Ctrl+kを押すと受付状態になり、?が表示されます。 その後に入力した2つキーから1つの文字を入力する事ができます。

f:id:curlune:20171219222513p:plain

一例

入力と出力結果の関係性は様々です。 多くは外見から来るもの、名称由来なものですが、謎な物も多いです。

一覧は:digraphsで確認できます。

外見

  • a:ä
  • -:÷
  • o/ø

名称

  • Co©
  • Ye¥
  • OK

日本語

  • tu
  • Tu
  • tU

終わりに

一覧を見るとなんだかワクワクしますね。

日本語50音そろっているので、頑張ると日本語フォントやIMEが無い環境でも日本語文章をつくれます!直接確認できないのでつらいけれども。

コード登録で少し面倒ですが、自分でオリジナルの組み合わせも利用できます。気になったらぜひヘルプ:help digraphを眺めてみてください。