それマグで!

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

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

ファイル名を指定して実行で使える便利なコマンド:ショートカットの一覧

ファイル名を指定して実行でいろいろやりたい。

f:id:takuya_1st:20160205234423j:plain:w200

shell:XXXでいろいろと呼び出せる

shell:AppData

で AppDataをぱぱっと開ける。便利ですね。てか、%APPDATA%で開けたような・・・

shell:Desktop

でデスクトップをぱぱっと開ける。。。。てかエクスプローラーをクリックすれば良いような。。。

まぁ、普段つかわなくても、たまに使うやつで便利かも。

とおもってメモをとり始めたんだけど、ほとんど環境変数%XXXX% でいけちゃうよね・・・

Path通ってるから、直接指定できるやつ

%PATH%に指定されてたら、「ファイル名を指定して実行」で直接起動できて便利だよね。

calc 

とか便利だよね。

cmd

なんて使わない日がないくらい。

magnify

だって、プロジェクターでデモやってると絶対使う。

参考資料からパクってきた。

名前 使えるもの
shell:Administrative Tools 現在ログオンしているユーザーの[管理ツール]フォルダ
shell:AppData 現在ログオンしているユーザーの[Application Data]フォルダ
shell:Cookies 現在ログオンしているユーザーの[Cookies]フォルダ
shell:DesktopFolder 現在ログオンしているユーザーの[デスクトップ]フォルダ
shell:Favorites 現在ログオンしているユーザーの[お気に入り]フォルダ
shell:History 現在ログオンしているユーザーの[History]フォルダ
shell:Local AppData 現在ログオンしているユーザーの「Local Settings?Application Data」フォルダ
shell:My Pictures 現在ログオンしているユーザーの[マイピクチャ]フォルダ
shell:NetHood 現在ログオンしているユーザーの[NetHood]フォルダ
shell:Personal 現在ログオンしているユーザーの[マイドキュメント]フォルダ
shell:PrintHood 現在ログオンしているユーザーの[PrintHood]フォルダ
shell:Profile 現在ログオンしているユーザーのプロファイルフォルダ
shell:Programs 現在ログオンしているユーザーの[プログラム]フォルダ
shell:Recent 現在ログオンしているユーザーの[最近使ったファイル]のフォルダ
shell:SendTo 現在ログオンしているユーザーの[SendTo]フォルダ
shell:Startup 現在ログオンしているユーザーの[スタートアップ]フォルダ
shell:Templates 現在ログオンしているユーザーの[Templates]フォルダ
shell:Common Administrative Tools All Usersの[管理ツール]フォルダ
shell:Common AppData All Usersの[Application Data]フォルダ
shell:Common Desktop All Usersの[デスクトップ]フォルダ
shell:Common Documents All Usersの[Documents]フォルダ
shell:Common Favorites All Usersの[お気に入り]フォルダ
shell:Common Programs All Usersの[プログラム]フォルダ
shell:Common Startup All Usersの[スタートアップ]フォルダ
shell:Common Templates All Usersの[Templates]フォルダ
shell:CommonProgramFiles 「Program Files?Common Files」フォルダ
shell:ConnectionsFolder [ネットワーク接続](または[ネットワークとダイヤルアップ接続])フォルダ
shell:ControlPanelFolder [コントロールパネル]
shell:DriveFolder マイコンピュータ]
shell:Fonts [Fonts]フォルダ
shell:InternetFolder Internet Explorerの起動
shell:NetworkFolder [マイネットワーク]フォルダ
shell:PrintersFolder [プリンタとFAX](または[プリンタ])フォルダ
shell:ProgramFiles [Program Files]フォルダ
shell:RecycleBinFolder [ごみ箱]フォルダ
shell:System [System32]フォルダ
shell:SystemX86 [System32]フォルダ
shell:Windows 「%systemroot%」フォルダ

実行できるプログラム

コマンド名 実行されるプログラム
accwiz ユーザー補助の設定ウィザード
calc 電卓
charmap 文字コード
clipbrd クリップブック
cmd コマンドプロンプト
control コントロールパネル
dxdiag DirectX診断ツール
eventvwr イベントビューア
explorer エクスプローラ
freecell フリーセル
fxscover 送付状エディタ
magnify 大鏡
mplay32 Media Player
msconfig システム構成ユーティリティ
mshearts ハーツ
mspaint ペイント
narrator ナレータ
notepad メモ帳
odbcad32 ODBCデータソースアドミニストレータ
osk スクリーンキーボード
regedit レジストリエディタ
shrpubw 共有フォルダの作成
sndrec32 サウンドレコーダー
sndvol32 ボリュームコントロール
sol ソリティア
spider スパイダ
taskmgr タスクマネージャ
telnet テルネット
utilman ユーティリティマネージャ
winchat チャット
winmine マインスイーパ
write ワードパッド
wscript Windows Script Hostの設定
wupdmgr Windows Update
appwiz.cpl プログラムの追加と削除
desk.cpl 画面のプロパティ
hdwwiz.cpl ハードウェアの追加ウィザード
inetcpl.cpl インターネットのプロパティ
intl.cpl 地域と言語のオプション
joy.cpl ゲームコントローラ
main.cpl マウスのプロパティ
mmsys.cpl サウンドとオーディオデバイスのプロパティ
ncpa.cpl ネットワーク接続
nusrmgr.cpl ユーザーアカウント
odbccp32.cpl ODBCデータソースアドミニストレータ
powercfg.cpl 電源オプションのプロパティ
sysdm.cpl システムのプロパティ
telephon.cpl 電話とモデムのオプション
timedate.cpl 日付と時刻のプロパティ
certmgr.msc 証明書
ciadv.msc インデックスサービス
compmgmt.msc コンピュータの管理
devmgmt.msc バイスマネージャ
dfrg.msc ディスクデフラグツール
diskmgmt.msc ディスクの管理
eventvwr.msc イベントビューア
fsmgmt.msc 共有フォルダ
lusrmgr.msc ローカルユーザとグループ
ntmsmgr.msc リムーバブル記憶域
ntmsoprq.msc リムーバブル記憶域の操作要求
perfmon.msc パフォーマンス
services.msc サービス
wmimgmt.msc WMIコントロール

コントールパネルが使いにくくなったので活躍する

サービス を mmc で開けたい時などに

> services.msc

これだけでmmcの管理コンソールが開いて、コンピュータの管理から行かなくていい楽。

引用元

Windowsシェル - Global Wiki

引用元の「エクスプローラの右クリックメニュー(コンテキストメニュー)にコマンドを追加する」とかも、すごく便利で重宝する。

sudoers で、特定ユーザーにコマンドの許可を与える

sudoers でコマンドの許可を与える

そういえば、昔sudoers の記事書いてたけど、コマンドの許可を与える具体例書いてなかったよね。と思いだしたので、メモを書いておく。

### 
Cmnd_Alias USER_MANAGEMENT  = /usr/sbin/adduser,  /usr/sbin/useradd , /usr/sbin/usermod , /usr/bin/passwd

User_Alias MANAGER = takuya,  takahiro , yuzuru 

MANAGER USER_MANAGEMENT

逆に、◯◯以外のコマンドの許可を与える

べつに何しても良いんだけど、reboot はやめてね!とか

### 
Cmnd_Alias REBOOT = /sbin/reboot, /sbin/halt, /sbin/shutdown

naoya ALL=ALL(ALL), !REBOOT # 再起動関連はやらせない
%devops REBOOT ## 再起動だけ許可する。

これだけではカンペンきではなく、そりゃ、sudoers を変更すればできちゃうんだけど、そこまでしてreboot したら「確信犯」ということでボツに出来るよね。

root 権限を付与するユーザー

root 以外の名前で、root 権限のユーザー作るには、こうする。

root ALL=ALL(ALL)
takuya  ALL=ALL(ALL) 

ただし、root の uid で制御される部分や実行権限で制御されるファイルがあるので、完璧な root 代替には成り得ないが、殆ど全てのことが出来る。

root 権限を付与するグループ

root ALL=ALL(ALL)
%admin ALL=ALL(ALL) 

admin グループにはsudo を許可してすべてのコマンドを実行できるようにする。もちろんuidやパーミッションが設定されたファイルはその限りではないが、chown / chmod ができるので、まぁなんでもアリになる。

わざわざ chown することも少ないだろうけど・

環境変数

sudo や su のときに、まぁオプションを付ければ、環境変数をリセットできるんだけどね。

## 環境変数はリセットを基本とする
Defaults    env_reset

sudoers に記述しておけば、環境変数はリセットされて便利ですね。(むしろ、個人用途のOSなら不便なんだけどさ)

関連資料

sudoersを変更する、よく使う設定例 - それマグで!

su/sudo したときの環境変数が気になったので調べた。 - それマグで!

sudo した時に、指定の環境変数を引き継ぎ - それマグで!

参考資料

https://www.sudo.ws/man/sudoers.man.html#sudoers_options

ユーザの実行権限を柔軟に割り当てるsudoのリスクとメリット 2ページ | OSDN Magazine

あれこれ

sudoers についてまとめてあるサイトのURLをみつけたので、そこをもとにまとめ直しておいた。

ユーザーごとの権限管理とか流行遅れですか。そうですか。残念です。

係員ごとにLXCの1コンテナを割り当てて処理しちゃえばいいですもんね。わかりやす。

でもさー、LXCとか仮想化って結局はプロセスを「ユーザー毎」ではなく「コンテナ毎」に分けてるわけで、結局は似たようなもんじゃん?OpenVZがそうだったようにVZのコンセプトが生きてるものはそうだよね。プロセスをわけられるなら、ユーザーも1つの「分離単位」として十分なわけですし。

だったら、ユーザーごとの管理ってやっぱり便利だと思うんだよね。

OSX の /etc/resolv.conf が消えてぶっ飛んでた。→ファイル作って解決

公衆無線LANに繋がらない・・・繋がらないのはなんでかなぁと思って調べてた。

au_wifi や startbucks_wifi とか Wi2 系には繋がるんですが、 docomo Wifisoftbank 系が全く繋がらなくなった。ちょっと困る。

resolv.conf が消えてるんですよね

takuya@~/Desktop$ ls -l /etc/resolv.conf
lrwxr-xr-x 1 root wheel 22 10  4 16:20 /etc/resolv.conf -> ../var/run/resolv.conf ## ブログだとわからないけど、実際は赤色でリンク切れ表記

あれ?リンク切れ???えええ?

リンク先も調べてみる。

takuya@~/Desktop$ sudo ls -l  /private/var/run/resolv.conf
ls: cannot access /private/var/run/resolv.conf: No such file or directory

やっぱり、resolv.conf がない・・・なんでかなぁと。最近したことといえば、アップデートだけど、、、

なんか変なファイルに感染したかなぁ。

とりあえずtouch しておく

takuya@~/Desktop$ sudo touch /private/var/run/resolv.conf

あれこれ、原因考えるのも面倒だし、とりあえずtouchしておく。

2016/04/22 追記 ln -s で作り直す方がいいかも

sudo ln -s   /var/run/resolv.conf /etc/resolv.conf

touch で作ると、digコマンドなどPOSIXコマンドが、/etc/resolve.conf(手動作成)になり、SafariなどOSXのアプリが /var/run/resolv.confを参照していて、整合性が取れなくなった。

まぁ切り離されていたほうが便利なこともあるんだろうけど、結果が異なる(問い合わせ先DNSサーバーが異なる)のはいろいろ不都合が多かったので、リンクにした

再接続する

takuya@~/Desktop$ sudo ls -l /private/var/run/resolv.conf
-rw-r--r-- 1 root daemon 289  2  5 22:47 /private/var/run/resolv.conf
takuya@~/Desktop$

ファイル更新されて、なんとか繋がるようになった。

理由はまだ調べてない。

なぜresolv.conf が消えてたのか。なぜその状態で、公衆無線LAN以外の、普段良く使う無線LANはつながってたのか。

追調査が必要。。。OSXのNetwork周りになにかへんこうあったのかな?

気持ち悪い現象です。 自宅や友人宅、学校職場公民館など通常の無線LANはつながり、さらいに wi2 はつながって、 docomo/softbank が接続不可だった点

なんでだ・・・

AppleScript で PPTxをPDFに変換する。

たくさんある、PPTをPDFに変換したいと思った。

まぁ、PPT→PPTXでもインだけど、PDFにしちゃう方がポータビリティがいいんですよね。

どうせ、PPTXを編集することなんてないんだし。

PDFの方が、Evernoteに放り込んだり、検索可能にしたり、Explorer/Finderのプレビューでパパッと見られて色々便利なんだよね。

keynote を使う場合。

開いているファイルを、PDFに変換して保存する

var app = Application("Keynote")
var doc  = app.Document()
//doc.text = "test"
//app.documents.push(doc)
app.documents[0].save({
in : Path("/Users/takuya/Desktop/sample2.key")
})

console.log(app.documents[0].name())
app.documents.at(0).export
app.documents.at(0).export({
as : "PDF",
 to : Path("/Users/takuya/Desktop/sample2.pdf")
})

これで、pptx を keynotes 形式に変換したり、keynotes 形式をPDFに変換したりできる。

楽チンですが・・・MicrosoftのOfficeで変換したときと若干異なるんですよね。

PowerPoint だと動かない

同じように やったけど動かないんだ。

var app = Application("Microsoft PowerPoint")
var doc = app.presentations.at(0)

console.log(doc.name())

doc.save({
as : "PDF",
in : "/Users/takuya/Desktop/sample2.pdf"
})

AppleScript だと辛うじてうごく

set out to POSIX file "/Users/takuya/Desktop/test.pdf"
tell application "Microsoft PowerPoint"
save active presentation in out as save as PDF
end tell

ダイアログが出てくるのだが、動いてるとは思えない。

f:id:takuya_1st:20160129202811p:plain:w200

もう半年くらい、この原因とたかってて

ある日、ひらめいた。Sandbox 化が原因だったんじゃ?

とりあえずサンドボックス領域を調べてみた。

ファイルができてるではないか

f:id:takuya_1st:20160129202739p:plain:w400

ということで、AutomatorApplescriptPowerpointで変換したら、次のパスに作られる。

~/Library/Containers/com.microsoft.Powerpoint/Data.pdf

該当資料を探した。

http://answers.microsoft.com/en-us/mac/forum/macoffice2016-macexcel/applescript-save-as-pdf-fails/bccc7a27-0263-44be-9506-deb7d3de387e?auth=1

After studying the Document "App Sandbox in Depth" it seems just consequent for me what Microsoft did with Office 2016 and AppleScript. Regarding this document sandboxed apps can just write automatically (triggered by AppleScript) within the path ~/Library/Containers/com.microsoft.excel/. So doing something like this
tell application "Microsoft Excel"
    tell active sheet
        save in path to temporary items from user domain as PDF file format
    end tell
end tell
should work. Files can afterwards be found in ~/Library/Containers/com.microsoft.excel/Data/Library/Caches/TemporaryItems/

ほかにも

http://eyeballonly.com/blog/2014/02/20/macosx-sandbox/

http://piyocast.com/as/archives/category/applescriptobjc/nshomedirectory/

などで、散見された。

Sanbox 化されたアプリケーションへのAutomator・ScriptEditorについて

https://developer.apple.com/library/mac/qa/qa1888/_index.html

Sandboxで、アクセス可能なディレクトリにDesktopがない。アプリ側でパーミッションを要求する感じ。でも動いてないんだよなぁ

しかしながら「テキストエディット」のような、Apple謹製のAppは、Sandboxされているが、Desktopへファイル保存が可能である。

ということは、Microsoftのプログラム側にバグがある。マイクロソフトPowerPointのプログラムでSandboxを正しく扱えていないということしか考えられない。

Apple Script でファイル保存(osascript/osjscript)

osascript でファイルを保存するサンプル

ファイルを保存するという基本的なところをUI Elementsではなく、Standard Suiteで行うことにした。

tell application ("TextEdit")
activate
make new document
set text of document 1 to "test from apple script"
 save document 1 in POSIX file ("/Users/takuya/Desktop/sample.txt")
end tell

同じことをJavascript for Automation で

var app = Application("TextEdit")
app . activate()
var doc  = app.Document()
doc.text = "test"
app.documents.push(doc)

app.documents[0].save({
in : Path("/Users/takuya/Desktop/sample2.txt")
})

こんなもん。簡単でした。

保存については、マニュアル飲み方

f:id:takuya_1st:20160129200405j:plain:w400

ポイント

関数の引数の渡し方

JavaScriptで書くときには、ちょっとくせがる。

引数なしの時

doc.save() //

引数があるとき

doc.save({ as : 'Text' }) //

引数は、不定個数ではなく、「一つ」で渡す。その一つはJSONであり、引数の名前が、キー名になる。

引数を複数入れるとき

doc.save({ as : 'Text' in: Path("/Path/to/Write") }) //

オブジェクトで複数いれます。ファイル・パスはPath()オブジェクトを使ってUNIXパス文字列を扱います。

理屈がわかると簡単

JavaScriptでもAppleScriptでもドキュメントさえ押さえれば、簡単に自動化処理を作ることができる。

minecraft AtLauncher で スクリーンショットの場所

スクショの場所がわからない。。。。

調べたら、通常のMinecraftの位置ではなく、インスタンスごとに保存される模様。

場所は、AtLauncherの中。

$PATH_TO_AtLancher/$INSTANCE_NAME/screenshots/

Mac OSX なら、次の場所にあった。

/Applications/ATLauncher.app/Contents/Resources/Java/Instances/BevosTechPack/screenshots

とりあえず、ショートカットでも作っておけば便利なんでしょうか。

参考資料

https://www.reddit.com/r/ATLauncher/comments/32y6zn/screenshots/

アプリがMac OSXのサンドボックについて確認

OSXサンドボックスで動いてると。。。

AppleScriptAutomatorで、動作が「期待通り」にならない。サンドボックスの中でアクセス可能なフォルダが制限される。。。

本当に由々しき問題だと思う。アプリ側の実装バグなのか、サンドボックスに由来するものかちょっと調べるには。アプリがsandboxing されているか調べる必要があった。

アクティビティ・モニタでサンドボックスされているか確認できる

f:id:takuya_1st:20160129190859p:plain

参考資料

http://yuzuhara.hatenablog.jp/entry/2011/12/27/235521

http://eyeballonly.com/blog/2014/02/20/macosx-sandbox/

samba の公開フォルダにguest でアクセス出来ない時

samba でguest アクセスフォルダを設定してた

設定は次の通り。

[share]
   comment = scanimage
   path = /var/www/share
   browseable = yes
   guest ok   = yes
   writable   = no
   force create mode = 777
   force directory mode = 777

   vfs object =  audit recycle
   recycle:repository = .trash
   recycle:keeptree = yes
   recycle:versions = yes

でもエラーになる

f:id:takuya_1st:20160120233126j:plain:w400

何故か?考えたたら単純なことだった。

Samba は、Windows からのguestユーザー を Linux の nobody にマッピングする。

Sambaは nobody としてアクセスできるファイルを提示する。

なので、Linux側で nobody が見れないフォルダは見られない。

ということで〜

chmod o+x  /var
chmod o+x  /var/www
chmod o+x  /var/www/share

これでOKだった。

単純な設定ミスですね。

近所のWifi状況を監視 - 周囲の無線LANの状態をairport で取得して電波の強さ順に並べ替え

周囲の公衆無線LANをアレコレ並べ替え

自宅やオフィス周辺のWiFiの電波状況や衝突状況を調べたい時

SSIDがどれくらい存在し チャンネルはどれくらい専有されていて また、同一SSIDで電波飛ばしてる公衆WiFiはいくつあって 電波の強度はどれくらいか

など、無線LANの状況をシリたいときは結構多いと思います。

Mac無線LANの状況を調べるコマンド

airport -s | sort オプション

よみいので電波の強さ順に並べ替え

数字として評価する -n を入れるのが味噌。公衆無線LANなどをつなぐときは、電波強度が強いやつを探すのが便利なので、ソートする。

チャンネルが必要なときは sort -k 4 とすればいい

 airport -s | sort -k 3 -n
                   303ZTa-C2ABC0 ee:1d:7f:c2:ab:c0 -84  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-BDF708 d2:5b:a8:bd:f7:08 -82  6       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C2EC9D ee:1d:7f:c2:ec:9d -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  aterm-2454d6-g a4:12:42:ab:01:e6 -77  3       Y  JP WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                   L09C_31A0A0DD 00:aa:70:d2:d6:b2 -76  1       Y  JP WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:22 -73  6       Y  -- NONE
                 Wi2premium_club 6c:f3:7f:a9:d8:21 -73  6       Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:f0 -69  100,+1  Y  -- NONE
                   303HWa-B1B674 b4:30:52:b1:b6:74 -69  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-46616E d6:37:d7:46:61:6e -69  8       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -69  100,+1  Y  -- NONE
                        WiFiarea 00:22:cf:ac:b8:44 -67  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -66  124,+1  Y  JP WPA2(PSK/AES/AES)
                       Localarea 00:22:cf:ac:b8:45 -66  6       N  -- WEP
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -66  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -66  124,+1  Y  JP NONE
                   303ZTa-C1821E ee:1d:7f:c1:82:1e -66  11      Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 84:18:3a:bd:b9:cc -66  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -65  124,+1  Y  JP NONE
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                      Wi2premium 84:18:3a:7d:b9:c8 -64  6       Y  -- NONE
                  GlocalMe_28060 30:89:d3:09:b8:c0 -64  11      Y  -- WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -63  6       Y  -- WPA2(802.1x/AES/AES)
                    tullys_Wi-Fi 84:18:3a:3d:b9:c9 -63  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:c8 -62  6       Y  -- WPA2(PSK/AES/AES)
                W01_587F66E604E0 58:7f:66:e6:04:e0 -62  1       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                          iPhone 32:f7:c5:2a:ae:46 -60  1       Y  -- WPA2(PSK/AES/AES)
                    0001softbank 6c:f3:7f:a9:d8:e2 -57  11      Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -57  11      Y  -- NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -56  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                         SWS1day 9c:2a:70:f3:41:48 -54  4       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -54  4       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -54  4       Y  JP NONE
                      0001docomo ac:f1:df:d7:3d:f9 -46  1       Y  JP WPA2(802.1x/AES/AES)
                      0000docomo ac:f1:df:d7:3d:fa -45  1       Y  JP WPA2(PSK/AES/AES)
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)

ssid で並べる

airport -s | sort -k 1
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                          iPhone 32:f7:c5:2a:ae:46 -61  1       Y  -- WPA2(PSK/AES/AES)
                         HS_Wifi 6c:f3:7f:a9:d8:e0 -57  11      Y  -- WPA2(PSK/AES/AES)
                         SWS1day 9c:2a:70:f3:41:48 -56  4       Y  JP NONE
                        NTT-SPOT 6c:f3:7f:89:92:c0 -80  11      N  -- WEP
                        WiFiarea 00:22:cf:ac:b8:44 -68  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -69  124,+1  Y  JP WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -67  6       Y  -- WPA2(802.1x/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -70  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      0000docomo 6c:f3:7f:89:92:c2 -80  11      Y  -- WPA2(PSK/AES/AES)
                      0001docomo 6c:f3:7f:89:92:c1 -80  11      Y  -- WPA2(802.1x/AES/AES)
                      0001docomo ac:f1:df:d7:3d:f9 -42  1       Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -69  124,+1  Y  JP NONE
                    0001softbank 6c:f3:7f:a9:d8:f0 -66  100,+1  Y  -- NONE
                    0001softbank 9c:2a:70:de:cf:c9 -89  9       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -57  4       Y  JP NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -77  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -70  124,+1  Y  JP NONE
                   303ZTa-88E29B 0e:12:62:88:e2:9b -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 6c:f3:7f:a9:d8:e1 -58  11      Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 84:18:3a:bd:b9:cc -69  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
              0000_Secured_Wi-Fi 6c:f3:7f:89:92:c3 -78  11      Y  -- WPA2(PSK/AES/AES)
              0001_Secured_Wi-Fi 6c:f3:7f:89:92:c4 -77  11      Y  -- WPA2(802.1x/AES/AES)
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:b0:6c:da -86  13      Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:de:cf:ca -90  9       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -58  4       Y  JP NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -58  11      Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -66  100,+1  Y  -- NONE

使用しているWifiのバンドのチャンネルで処理をする

airport -s | sort -k 4 -n
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                          iPhone 32:f7:c5:2a:ae:46 -60  1       Y  -- WPA2(PSK/AES/AES)
                      0000docomo ac:f1:df:d7:3d:fa -45  1       Y  JP WPA2(PSK/AES/AES)
                      0001docomo ac:f1:df:d7:3d:f9 -46  1       Y  JP WPA2(802.1x/AES/AES)
                   303ZTa-C2ABC0 ee:1d:7f:c2:ab:c0 -84  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C2EC9D ee:1d:7f:c2:ec:9d -77  1       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   L09C_31A0A0DD 00:aa:70:d2:d6:b2 -76  1       Y  JP WPA2(PSK/AES/AES)
                W01_587F66E604E0 58:7f:66:e6:04:e0 -62  1       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  aterm-2454d6-g a4:12:42:ab:01:e6 -77  3       Y  JP WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                         SWS1day 9c:2a:70:f3:41:48 -54  4       Y  JP NONE
                    0001softbank 9c:2a:70:f3:41:49 -54  4       Y  JP NONE
            .FREE_Wi-Fi_PASSPORT 9c:2a:70:f3:41:4a -54  4       Y  JP NONE
                        WiFiarea 00:22:cf:ac:b8:44 -67  6       Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:c8 -62  6       Y  -- WPA2(PSK/AES/AES)
                       Localarea 00:22:cf:ac:b8:45 -66  6       N  -- WEP
                       au_Wi-Fi2 84:18:3a:fd:b9:c8 -63  6       Y  -- WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:c8 -64  6       Y  -- NONE
                    0001softbank 6c:f3:7f:a9:d8:22 -73  6       Y  -- NONE
                    tullys_Wi-Fi 84:18:3a:3d:b9:c9 -63  6       Y  -- NONE
                   303ZTa-BDF708 d2:5b:a8:bd:f7:08 -82  6       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                 Wi2premium_club 6c:f3:7f:a9:d8:21 -73  6       Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                 Wi2premium_club 84:18:3a:bd:b9:c8 -65  6       Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-46616E d6:37:d7:46:61:6e -69  8       Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                    0001softbank 6c:f3:7f:a9:d8:e2 -57  11      Y  -- NONE
                    203Za-3A3FDD 0e:12:62:3a:3f:dd -56  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303HWa-B1B674 b4:30:52:b1:b6:74 -69  11      Y  -- WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                   303ZTa-C1821E ee:1d:7f:c1:82:1e -66  11      Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)
                  GlocalMe_28060 30:89:d3:09:b8:c0 -64  11      Y  -- WPA2(PSK/AES/AES)
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:e3 -57  11      Y  -- NONE
                    0001softbank 6c:f3:7f:a9:d8:f0 -69  100,+1  Y  -- NONE
    HANKYU-HANSHIN_WELCOME_Wi-Fi 6c:f3:7f:a9:d8:f1 -69  100,+1  Y  -- NONE
                        au_Wi-Fi 84:18:3a:3d:b9:cc -66  124,+1  Y  JP WPA2(PSK/AES/AES)
                       au_Wi-Fi2 84:18:3a:fd:b9:cc -66  124,+1  Y  JP WPA2(802.1x/AES/AES)
                      Wi2premium 84:18:3a:7d:b9:cc -66  124,+1  Y  JP NONE
                    tullys_Wi-Fi 84:18:3a:3d:b9:cd -65  124,+1  Y  JP NONE
                 Wi2premium_club 84:18:3a:bd:b9:cc -66  124,+1  Y  JP WPA(PSK/AES,TKIP/TKIP) WPA2(PSK/AES,TKIP/TKIP)

sort コマンド便利ですね。

2017-10-07

ざっくり書きすぎてて、自分でも記事を発見できなかったので記事の文章量を増やして、キーワード追加した。

関連資料

OSX で周囲の無線LAN(ssid)アクセスポイントの状況を一覧するコマンド - それマグで!

sortコマンドで列を指定、数順など指定する。 - それマグで!

LANケーブルの自作。欲しいサイズが無ければ作ればいい!

LANケーブルの自作は、歯磨きくらい当たり前。

LANケーブルが、長すぎてルーターの後ろでグルグル巻きになってたり、かといっても市販は1メートルからだったり。

ちょうどいい長さのLANケーブルって難しい

無ければ作ればいい

ちょっとした長さのものは作ればいいわけで。作ってしまおう。

作ったのがこちら

IMG_1473

用意するもの

  • 適当なLANケーブル
  • かしめ工具
  • コネクタ(差込)
  • カッターナイフ
  • LANケーブル配色表
  • テスター(重要)
  • テスターよう電池(9V)

必要なものは2000円くらいで買える。

Amazon で中華製の工具セットが2000円くらい

LAN ケーブル 作成 セット

LAN ケーブル 作成 セット

電池はない。

テスターは重要

LANケーブルテスタは、ケーブル作成に慣れないうちは、頼りになる存在。

テスターの電池が9Vタイプだったので、深夜に入手が面倒だったのではじめに買っておく。

コンビニで買うと無駄に高かった。

きしめんケーブルは作成が面倒

きしめんケーブルや、極細LANケーブルは、ケーブル作成初心者には向いてないのです。

必ず、作成に慣れてから、数十個かしめてからやったほうがいいです。ていうか慣れてきても面倒・・・・後述するけど、ローゼットで楽をした

LANケーブルのタイプ

いろいろあるけど、とりあえず、これさえできれば問題ない。

タイプB ー タイプB

両端がタイプBのストレートが一般的なので、これが作れれば大丈夫。

まぁ、うっかりクロスケーブル作っちゃっても最近のスイッチングハブが自動認識でなんとかしてくれるので、なんとかなる。

LAN ケーブルのタイプB

タイプBでは、次のようなカラーリングで作成します。

LANケーブルのコネクタヘッドを<出っ張り側>(表側?)から見て、次のように配色する


橙色

青色

緑色

茶色

<金具のある側>(裏側?)と<出っ張り側>(表側?)をよく間違えるので注意

まぁ、逆さになったら、反対側もさかさにすればいいんだろうけど・・・

覚え方は 茶色からみて色白+色白+色白+色白の4ペアになってる点と、青色を緑で挟む点、これだけ覚えておけばなんとかなる。

片側だけ作る時の注意点

多分、両端を作成することはあまりなくて、片側だけ作ることが多いんじゃないかと思う。

その際は、反対側がタイプA/Bのどちらかを必ず確認する。

ストレート結線でつくることが前提なので、反対側に合わせて作る

目標タイム:5分

とりあえず、両端を5分で作れるようになれば、大丈夫。

なんどかやってるうちに慣れる。

たぶん10個かしめれば作ればもう大丈夫

30cmくらいのものをいくつかつくっておけばいいかと

両端のむき方

カッターナイフの刃を当てて、コロコロ転がす。

ケーブルのほどきかた

ケーブルは、ねじれているので真っ直ぐに伸ばす。縮毛矯正するように。

ケーブルのコネクタへの差込方法

タイプBの色の順番に揃えたら、ケーブルを、ぐっと握って平らにする。

平らにしたら、カッターで真っ直ぐに切りそろえると楽。

差し込んだらかしめる。

ここでいよいよ、かしめ工具の出番。

ケーブルテスターに通す。

テスターが順番に、まんべんなく点灯すればOK.

ローゼットにするのも悪くない。

LANケーブルかしめ覚えると、すぐに両端をかしめたくなるけれど、片側をローゼットにしておくのも悪くない選択。

LANケーブルの片側をローゼットにしておくのも意外に使いやすいのでおすすめだよ。

ケーブルを途中まで引っ張っておいて使うところだけ足せばいい。

ローゼットからハブやルーターまで15cmほどのケーブルで足せばいい。

磁石が付いてて、机やメタルラックに張り付くのもナカナカに便利なんだよね。。

特に、きしめんケーブルは芯線が細くてコネクタでかしめるのが一苦労でした、ローゼットがはかどります。

でもローゼット高い。そんなときはLAN延長はダイソー

LAN延長は、Amazonで買うと500円もするんですよ!

百均 に大抵は置いてるので、セリアやダイソーをチェックしたほうがいいわ。

ローゼットつくると嵩張るので嫌だなと思ったら、LANケーブル延長コネクタがいい選択肢

TODO

そのうち写真を貼り付ける。

LANケーブルかしめコンテストとかやりたい

  • LANケーブルを制限時間内に指定本数作る
  • かしめの美しさ
  • 皮膜の美しさ

制限時間でどれだけたくさんのLANケーブルを美しく正確に作れるか競技LANケーブル・かしめコンテストやってみたい。

参考資料

Geekなぺーじ:Ethernetケーブルを作ろう!(2)

http://www.elecom.co.jp/support/manual/cable/lan/jisaku-ct/

LANケーブルの作り方-「カテゴリー5e」LANケーブル作成を写真(画像)つきで解説

京都プラスPitapaで定期が乗っかるのか

PiTaPaに定期は乗っかるのか?

ピタパにはIC定期が乗っかる。例えば、阪急スタシアカードで、阪神の定期券を乗せられたりする。

では京都plus ピタパに定期は乗せられるのか?

もし、定期が乗っかれば、阪急・京阪の定期と京都市営地下鉄の利用を1枚にまとめられて便利。

f:id:takuya_1st:20160120004211j:plain

電話して聞いてみた。

京都市交通局に電話して聞いてみた。京都市交通局でも把握してないらしい、折り返しで返答待ちになった。

定期をのせるのは無理

定期券を載せるのは無理、という悲しい回答をいただいた。

Osaka PiTaPaと同等のようだ

Osaka Pitapa大阪市交通局)の発行する、ピタパと同じになる。

つまり、IC定期券を利用したければ、PiTaPaは阪急・阪神スタシアカードくらいしか選択肢がない。

参考資料

京都ぷらすOSAKA PiTaPa ご入会方法|OSAKA PiTaPaとは|OSAKA PiTaPa

ssh の control master の接続を確認して削除する

control master は便利なんだけど、ちょっと不便な事情もある。

一例として、 usermod で自分のユーザーグループを変えた時、その反映には一旦ログアウトするのが手っ取り早い しかし、controlmaster があるとログアウトが起きずグループの変更が反映されない。

ControlPersist yes

なんてしてるともっと厄介だ。接続きれないんだもん。

まぁ、コントールしてるファイルを削除すればいいんだけどね。。。

いちお、check なんてものがある。

takuya@:~/Desktop$ ssh -O check MyHost
muxclient: master hello exchange failed
Master running (pid=90496)
takuya@:~/Desktop$

この状態はMaster起動してるやつ。

ちゃんと切断するには exit を使う

強制切断するには 、exit を使う。

コントール用のソケットファイルがバックグラウンドで残っている状態で切断をしたいときは

ssh -O exit HOSTNAME

check して exit して本当に切断されたか?

$ ssh -O exit MyHost Exit request sent. $ ssh -O check Host Control socket connect(/home/takuya/.ssh/masters/takuya@MyHost:22): No such file or directory $ lsof -i | grep ssh $

lsof で、ssh が残ってないことがわかる。

control master って便利なんだけど・・・

便利なんだけど、ログイン、ログアウトはそんなに時間のかかる処理じゃないので、わざわざ使う意味ってどこにあるんだろう。

Control Masterってメインで使うべきでじゃないのかもねぇ。結構混乱する。

参考資料

http://d.hatena.ne.jp/tmatsuu/20120707/1341677472

https://siguniang.wordpress.com/2013/11/30/notes-on-ssh-multiplexing/

http://stackoverflow.com/questions/4509624/how-to-limit-depth-for-recursive-file-list

OSX で visudo ミスってsudoers ぶっ壊しっちゃった。でも大丈夫!

またやらかした・・・

sudoers の設定ファイルをミスしてたまま勢いよく保存してしまった。。。。

まただよ。でも大丈夫

visudo でミスたけど、救われた。

ターミナルから編集できなくても、Finderからパーミッション変更できる。

f:id:takuya_1st:20160119231523p:plain:w200

こんな状態にすれば、テキストエディットで元に戻せる。

Finderからパーミッション修正して、なんとかなった。もし、完全にルート権限無くしたと思うと、まる数日分が再セットアップでつぶれるので、冷や汗が出る。

f:id:takuya_1st:20160119231517p:plain:w200

本当に、sudoers 触るときだけは、本当に注意しないと。

sudoers こわしたの何度目だろう・・・もう不注意多すぎ。

querySelectorAllを使うときは Array.from() でとっても楽

いままで

var list = document.querySelectorAll("div")
list = Array.apply(null, list)
list.forEach( function(e){console.log(e)})

最近のJS

var list = document.querySelectorAll("div")
list = Array.from(list)
list.forEach( (e)=>{console.log(e)})

随分と楽になった。

python で pry と同等にREPL をコードの途中から入れるデバッガ

python でも rubyのpry と同じことをしたい・・・・

require 'pry'

Thread.new{|t|
  do_something
  binding.pry
}

マルチスレッドの処理をするには、pry があるととても楽。

python で同じことをするには IPython

探してみたら、IPython.embed があった。

from IPython import embed

a=1
embed()

これでpryと同じように、好きな場所でデバッガ起動できる。楽チン

まぁ、スレッド起動してスレッド内で、eval 噛ませば、pry もIPythonなんてなくたって、デバッガ起動できるんだろうけど。

自作するより既存のものを使った方が楽だよねってことで。

急ぐときはコレ

急ぐときは、こっちを使うほうがインストールの手間がなくていい。

import pdb; pdb.set_trace()