emacsでシンタックスチェック
flycheckがオススメ. checkerは,言語によっていくつか選べる. python3の場合,私はとりあえずflake8を利用している.
$ sudo pip install flake8
でflake8モジュールをインストール
line too longのwarning等がうざいので, ↓を参考にして諸々の厳しすぎるerrorとwarningを非表示にする. www.reddit.com
↑の記事で書かれていたエラーコードの一覧は
Introduction — pycodestyle 2.4.0 documentation
にある.
flake8の設定ファイルの書き方については
Configuring Flake8 — flake8 3.5.0 documentation
が参考になる.
見えないディスクをマウントしよう
$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 489.1G 0 disk ├─sda1 8:1 0 425.4G 0 part / ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 63.7G 0 part [SWAP] sdb 8:16 0 2.7T 0 disk
list blockすると2.7TiBあるHDDに対応する,sdbが見える.
$ df -hT Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 32G 0 32G 0% /dev tmpfs tmpfs 6.3G 106M 6.2G 2% /run /dev/sda1 ext4 419G 382G 16G 97% / tmpfs tmpfs 32G 264M 32G 1% /dev/shm tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup tmpfs tmpfs 6.3G 108K 6.3G 1% /run/user/1004
だけど,マウントされていないので使えないねっていう状態.
まず,sdbのフォーマットが必要.これがないとエラー吐かれる.
既にフォーマット済みならしなくて良い.してしまうとデータ全部消えますね.
# mkfs -t ext4 /dev/sdb mke2fs 1.42.13 (17-May-2015) Creating filesystem with 732566646 4k blocks and 183148544 inodes Filesystem UUID: c0a5a533-7ec2-4068-bcc6-276187e7bf24 Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 102400000, 214990848, 512000000, 550731776, 644972544 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done
次に,マウントする.
# mount /dev/sdb /mnt/sdb
これで確認してみると
$ df -hT Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 32G 0 32G 0% /dev tmpfs tmpfs 6.3G 106M 6.2G 2% /run /dev/sda1 ext4 419G 382G 16G 97% / tmpfs tmpfs 32G 267M 32G 1% /dev/shm tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs tmpfs 32G 0 32G 0% /sys/fs/cgroup tmpfs tmpfs 6.3G 108K 6.3G 1% /run/user/1004 /dev/sr0 iso9660 1.5G 1.5G 0 100% /media/yoneda/TOEFL iBT /dev/sdd1 vfat 15G 1.8G 13G 13% /media/yoneda/5340-CDEA /dev/sdb ext4 2.7T 73M 2.6T 1% /mnt/sdb
ちゃんと/dev/sdbがマウントされてる. めでたし
iTerm2にpowerline導入
powerlineって何?
iTerm2 使ってる人がぶつかる壁
何もせずにpowerlineのテーマとか適用すると, "▶"に対応する文字が化けてしまい,残念な感じになる.
解決策
"▶"のような,powerlineで使われる特殊なフォントを導入する必要がある.
フォントの導入は,Homebrew-Caskでやると楽
physick.hatenablog.com
$ brew cask search fonts-powerline
で結構引っかかる.
選んでも良いが,めんどくさければ全部入れておけば良い.
再ログインしてから,入れたフォントが一覧にあることをFontBook appで確認する.
その後,iTermの設定でprofile内のフォントを変更する.
プロファイル -> Text -> フォントの変更
で,power-lineと名前のついたフォントに変更する.
これに関しては
Installing powerline on Mac OSX. The following was done in version Version 10.8.2 · GitHub
が参考になる.
注意点
"▶"等をフォントで代用しているため, iTermの設定でコンソールの背景を
透明度が0% かつ コントラストが最小
の設定にしていないと,powerlineの色ズレが発生する. ("▶"部分とその左側とで色が異なっていることが分かる)
Homebrew関連
Homebrew+Caskについて
homebrew - What is the difference between `brew` and `brew cask`? - Ask Different
要約: Homebrew-CaskはHomebrewの拡張.
"brew cask": GUIアプリ, "brew": CUIアプリを主に扱う.
"brew cask install foo" は "brew install caskroom/cask/foo" のエイリアスになってるらしい.
公式サイト(https://caskroom.github.io/)
に書いてある導入方法も
$ brew tap caskroom/cask
ってするだけだから,リポジトリ追加してるだけ.
できること
Macで使うGUI, CUIアプリケーションを一元管理できる. ファイルがバラバラに配置されないので,削除とかもしやすい.
フォントの導入
フォントのインストールも可能. qiita.com どうやら,
/Users/[username]/Library/Fonts
の中に突っ込んでくれるらしい. 再ログインすればFont Book などでも見れるようになる. (再ログインすることが全く頭になくてここでハマった) 因みに,macOSのフォントファイルの配置については
Mac OS X: Font locations and their purposes - Apple Support
が参考になる.
wgetで複数階層に渡るファイルをダウンロードする
wgetってなに?
wgetはlinuxのコマンドで、非対話型のダウンローダーです。
最低限の使い方
例えばダウンロードしたいzipファイルが http://hostname/hoge.zip にある場合、
$ wget http://hostname/hoge.zip
とすることで、ローカルにhoge.zipが保存されます。
必要十分(?)な使い方
サイト上にファイル一覧のダウンロードリンクがおいてある場合、
例えば、 http://hostname/directory1/ 内にダウンロードリンクがおいてある場合、
$ wget http://hostname/directory1/
としてしまうと、index.htmlがDLされるだけで終わってしまいます。
$ wget http://hostname/directory1/file0.zip
などとすればDLできますが、ダウンロードリンクが大量にある場合はこんなことやっていられません。
ここで、wgetのオプションを使って以下のようにDLします
$ wget -rH -l 1 -A txt,zip --random-wait http://hostname/directory1/
各オプションについて:
- -r: 再帰的にDLします。このとき,wgetは兄弟ディレクトリの中身まですべてDLしてしまうことがあるようです。(これを防ぐためにlオプションをつけています。)
- -l: 再帰的にDLする最大深さを指定します.
- -H: 異なるドメインのファイルはダウンロードしません。(lオプションを1にしていれば関係ないかと思われますが)
-A: ダウンロードするファイルを限定します。カンマ区切りで拡張子を指定できるほか、ダブルクオートで囲めば、正規表現でファイルを絞ることもできます。
--random-wait: これは必須ではありませんが、ファイルをDLするためにあまりに大量のリクエストを投げてしまうと相手サーバーに負荷がかかり、攻撃してるみたいになるので、ランダムにwaitを入れます(マナーですね)
ターミナルで日本語が文字化けするとき
まずlocaleについて勉強しておく↓ eng-entrance.com
あとは, どこで読んだか忘れたけど,とりあえず ~/.bashrcに(fishなら~/.config/fish)
export LANG=ja_JP.UTF-8 export LC_CTYPE=ja_JP.UTF-8
って書いておけば,
$ locale LANG="ja_JP.UTF-8" LC_COLLATE="ja_JP.UTF-8" LC_CTYPE="ja_JP.UTF-8" LC_MESSAGES="ja_JP.UTF-8" LC_MONETARY="ja_JP.UTF-8" LC_NUMERIC="ja_JP.UTF-8" LC_TIME="ja_JP.UTF-8" LC_ALL=
となって,日本語が化けなくなる.
JavaとおさらばしてJuniper SSLVPNをLinuxから快適に利用
うちの大学はネットワークが学内で閉じており、学外からの接続手段としてJuniper Networksのsslvpnを採用しているので、これを使わねばならない。
Chromeでsslvpnサービスを提供してるサイトへ飛んで、「ネットワークコネクト」を実行するとJRE がインストールされていないか、Java が無効です。
って表示される。色々インストールしてもうまくいかないので、調べていると、
Chrome
(https://java.com/ja/download/help/enable_browser.xml)
モダンなブラウザではJavaが標準で無効どころか、そもそも有効化する手段がないという感じ。
FlashがHTML5に取って代わったみたいな、パラダイムシフトかな。
とにかく、このままではSSLVPNに接続できないので困ってしまう。
いろいろ調べていたら、どうやらLinuxのコマンド一発でJuniper NetworkのSSLVPNに接続できる方法があるらしい。Javaも必要ない。(筆者はLinuxのノートPCを使っている)
https://www.scc.kit.edu/scc/net/juniper-vpn/linux/
このサイトに、パーフェクトな説明があった。
configurationファイルは、説明にあるとおり
~/.juniper_networks/network_connect/config
に作成し、このディレクトリ内に
somename.conf (デフォルトの構成なら "default.conf")
という形で記述する。
confファイルの中身は
host=foo.bar.com user=username password=secret realm=very long realm with spaces cafile=/etc/ssl/bar-chain.pem certfile=
こんな感じにする必要がある。
cafileは、".pem"の拡張子を持つファイルが/etc/ssl/certsに転がってるので、対応するものを探して記入する。
もしくは、サーバー証明書を落としてきて、certfileにパス追加する。
正直、あまりにも簡単にできたので拍子抜け。
これができたら好きなときに
$ jnc --nox
で接続開始
$ jnc stop
で接続終了!
また1つ幸せになりましたね〜