スキップしてメイン コンテンツに移動

投稿

4月, 2019の投稿を表示しています

Vim に 取り込んだプラグイン

Vim にプラグインを導入した。 プラグインマネージャは Vundle を用いている。 下は .vimrc の内容     set nocompatible     filetype off     set rtp+=~/.vim/bundle/Vundle.vim     call vundle#begin()     Plugin 'VundleVim/Vundle.vim'     Plugin 'w0rp/ale'     Plugin 'dhruvasagar/vim-table-mode'     Plugin 'thinca/vim-quickrun'     Plugin 'alvan/vim-closetag'     Plugin 'scrooloose/nerdtree'     Plugin 'nathanaelkane/vim-indent-guides'     Plugin 'vim-scripts/AnsiEsc.vim'     Plugin 'vim-perl/vim-perl'     Plugin 'hotchpotch/perldoc-vim'     Plugin 'lervag/vimtex'     Plugin 'tomasr/molokai'     Plugin 'Shougo/deoplete.nvim'     Plugin 'roxma/nvim-yarp'     Plugin 'roxma/vim-hug-neovim-rpc'     call vundle#end()     filetype plugin indent on     colorscheme molokai     let g:deoplete#enable_at_startup = 1     " vimを立ち上げたときに、自動的にvim-indent-guidesをオンにする     let g

Perl で簡単なプログラムを書いてみる。

Perl で簡単なプログラムを書いてみる。 最初に書くプログラムといえば「Hello, world.」なので、書いてみる。 $ perl -e '_____'  <= 下線部にプログラムを書く。 または、 $ perl -e "_____"  <= 下線部にプログラムを書く。 文字を表示するのは、次のようなプログラムである。 print "Hello, world."  または  print 'Hello, world.' この場合どちらも同じ結果を得る。 その為、  $ perl -e 'print "Hello, world."'  または  $ perl -e "print 'Hello, world.'" と書いて実行すればいい。  ' ' (シングルクォート) と " " (ダブルクォート) の違いは、 エスケープシーケンスを置き換えるかどうかである。 $ perl -e 'print "Hello, world.\n\n\n"' と $ perl -e "print 'Hello, world.\n\n\n'" の実行結果を比べてみるといい。  \n は改行を表すのでそれと置き換えるかどうかが異なる。 $ perl -e 'print "Hello, world.\n\n\n"' Hello, world. $ と $ perl -e "print 'Hello, world.\n\n\n'" Hello, world.\n\n\n$ となる。

Vim の基本操作

Vim の操作は直感的にわからないのである程度トレーニングが必要。 基本的な移動の練習に次のようなゲームがある。 Snake Vim Trainer http://www.vimsnake.com/ VIM adventures https://vim-adventures.com/ コマンドラインよりチュートリアルが実行できる。 $ vimtutor レッスンを順番にこなしていけば、操作方法が分かるようになる。 操作方法をまとめたものを公開している人もいる。 [参考] Vim チートシート - ise0615 blog http://ise0615.blogspot.com/2012/11/vim.html

Vim のオプションを設定しカスタマイズをしてみる

Vimのオプションを設定してみる。 次のサイトから設定を拾ってきた。 [参考] 何も考えず~/.vimrcにこれを書くんだ! ~vim初心者によるvim初心者のためのvim入門~ https://qiita.com/morikooooo/items/9fd41bcd8d1ce9170301 オプションについて調べるときは次のサイトを利用した。 [参考] options - Vim日本語ドキュメント https://vim-jp.org/vimdoc-ja/options.html 以下の内容を ~/.vimrc に記述する。 " setting " コマンドの補完 set wildmenu " 補完のリストを表示し、候補の先頭を入力 set wildmode=list:full " 画面右下にカーソルの位置を表示 set ruler " 入力中のコマンドをステータスに表示する set showcmd " 行番号を表示 set number " 現在の行を強調表示 set cursorline " 現在の行を強調表示(縦) set cursorcolumn " 行末の1文字先までカーソルを移動できるように set virtualedit=onemore " インデントはスマートインデント set smartindent " ビープ音を可視化 set visualbell " 括弧入力時の対応する括弧を表示 set showmatch " ステータスラインを常に表示 set laststatus=2 " コマンドラインの補完 set wildmode=list:longest " 折り返し時に表示行単位での移動できるようにする nnoremap j gj nnoremap k gk " シンタックスハイライトの有効化 syntax enable " 不可視文字を可視化(タブが「?-」と表示される) set list listchars=tab:\?\- " Tab文字を半角スペースに

Vim のバージョン等の確認

Vim とは多くの Unix系OS に最初から導入されているテキストエディタである。 Vim は通常のバージョンの他にいくつかの種類がある。 この種類は5種類あり、 Vim を起動し :help version と入力すると表示される。 機能が少ない順に 次のようになっている。 tiny < small < nomal < big < huge これは Vim のバージョンを表示すると確認できる。 次の例は Huge版 となっている。 $ vi --version VIM - Vi IMproved 8.0 (2016 Sep 12, compiled Apr 10 2018 21:31:58) 適用済パッチ: 1-1453 Modified by pkg-vim-maintainers@lists.alioth.debian.org Compiled by pkg-vim-maintainers@lists.alioth.debian.org Huge 版 without GUI. 機能の一覧 有効(+)/無効(-) ・・ ・

Vim の 環境構築

多くの Linux には Vim がインストールされている。 この Vim をカスタマイズし、Plugin を導入する方法をここで書いておく。 Vim にはプラグインを導入できる。 基本的な導入方法は次のように行う。 プラグインをダウンロードしてきて、 Vim の runtimepath に指定されているディレクトリ(~/.vim/ 等)に配置する。 Vim を起動し、プラグインを実行する。 実行方法はプラグインの README に書いてある。 runtimepath は次のように確認できる。 Vim のコマンドモードで :set runtimepath  または  :set rtp を入力すると表示される。 個人用のファイルは ~/.vim/ に配置するのが一般的である。 プラグイン導入を補助するプラグインマネージャを入れるのが一般的である。 プラグインマネージャはいくつかあるようだが、 Vundle https://github.com/VundleVim/Vundle.Vim がよく使われているようだ。 導入についてはここを参照した。 https://github.com/VundleVim/Vundle.Vim#quick-start Vundle は git コマンドを用いて導入する。 $ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 上記コマンドにより ~/.vim/bundle/Vundle.vim/ ディレクトリが作成され、 このディレクトリ内に Vundle が配置される。 なお、git コマンドはインターネットに接続された環境から実行しないとファイルを拾ってこれないので注意。 git コマンドが無事に終了したら、~/.vimrc ファイルを作成し次の内容を書き込む。 set nocompatible filetype off set rtp+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'VundleVim/Vundle.vim' Plugin 'tpope/vi

Windows10 の Microsoftフォト の タイルパネル の 表示消去

Windows10 のスタートメニューの中に Microsoftフォト の タイルパネル がある場合、 履歴にある画像が表示される。 この表示される画像は次のディレクトリに保存されているようである。 C:\Users\ユーザ名\AppData\Local\Packages\Microsoft.Windows.Photos_[文字列]\LocalState\PhotosAppTile 個々にある画像を削除し、 フォトのタイルパネルのサイズを変更したり再起動したりすると 読み直しを行い表示されなくなる。 [参考] 「 フォト 」 でライブタイル上に削除した写真が表示される場合の対処方法 ( Windows 10 ) - Dospara http://faq3.dospara.co.jp/faq/show/6279?category_id=185&site_domain=default

ローカルに接続している他のコンピュータのIPアドレスを調べる方法

ローカルネットワークに接続するサーバが部屋の中から出てきた。 具体的には以前使っていたワンセグ全録サーバ ArecX6 が出てきた。 これにはモニタが付いておらず、モニタに繋ぐこともできない。 簡単に言うとNAS みたいなものである。 使っていた時にIPアドレスを固定していたのだが、これがわからない。 ということで、この機器に設定されているIPアドレスを調べることにした。 IPv4 の クラスC のプライベートIPアドレスを設定していたことは覚えていた。 つまりこのアドレスは 192.168.0.0/16 のアドレスである。 以前設定したアドレスは、 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.10.0/24、192.168.11.0/24、192.168.100.0/24 のあたりだと思うが全く覚えていない。 とりあえず、LANに接続し片っ端からIPアドレスを調べる事をした。 下のサイトを参考にLinuxから調べようとしたが、 結局、 Windows 上から ExPing で設定してそうなアドレスを順番に試すことにした。 192.168.0.0/24 の中にすぐ見つかった。めでたしめでたし [参考] 【 ip 】コマンド(基礎編)――ネットワークデバイスのIPアドレスを表示する - @IT https://www.atmarkit.co.jp/ait/articles/1709/22/news019.html LAN内で使われているIPアドレスを調べる6つの方法(Linux/Windows) - 俺的備忘録 ~なんかいろいろ~ https://orebibou.com/2015/05/lan%E5%86%85%E3%81%A7%E4%BD%BF%E3%82%8F%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8Bip%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%AA%BF%E3%81%B9%E3%82%8B6%E3%81%A4%E3%81%AE%E6%96%B9%E6%B3%95linuxwindows/ ExPing - WoodyBells http://www.woodybells

Raspbian に VNC で接続できない

Raspbian に VNC で接続しようとしたが繋がらなかった。 VNCの有効化は次のように出来る。 CUI であれば、次のコマンドでVNCを有効にできる。 # sudo raspi-config GUI であれば、 [メインメニュー] - [設定] - [Raspberry Pi の設定] でウィンドウを開き [インタフェース]タブ を開くと VNC を有効にするチェックボックスがある。 この状態であれば、Paspberry Pi のIPアドレス にポート5900 へ接続できるはず。 しかし、クライアントをWindows10上のUltraVNC Viewer で接続しようとしたが、 接続できなかった。 RealVNC viewer であれば、接続が出来るようだが、 次の設定を行うと他のクライアントでも接続が出来る。 ということで、Raspberry Pi の VNC サーバーの設定を変更する必要がある。 具体的にはセキュリティ の設定を Authentication=VncAuth に変えればいい。 CUI であれば、 設定ファイル /root/.vnc/config.d/vncserver-x11 に書かれている Authentication=SystemAuth を Authentication=VncAuth に変更し、 # vncpasswd -service でパスワードを設定すれば接続が出来るようになる。 GUI であれば、 デスクトップ の メニューバーにある VNC アイコンを右クリックし [Option] を開く。 Security にある Authentication が UNIX password になっているのを VNC password に変更し Apply を押すとパスワードをきいてくるので入力する。 以上の設定で接続が出来るようになるが、 HDMI を接続せずに VNC につなぐと 狭い画面になってしまうため、 予め解像度を変更しておく必要があるので注意。 [参考] Raspbian (2016/09/23以降)とVNC接続 - 今日も微速転進 https://a244.hateblo.jp/entry/2016/10/10/003248 VNC (

IT機器の消費電力

ラズベリーパイの電源は何を用意するべきかを考えている時、 USB経由の充電をするIT機器の消費電力を知りたくなったので、 これから少しづつ記入していくことにする。 あくまでもこの数値は目安である。 Amazon Fire 8 HD アイドル時  電流 0.43A 電圧 4.89V Raspberry Pi zero WH Stretch Lite インストール直後 起動時  電流 0.30A 電圧 4.92V アイドル時  電流 0.08A 電圧 4.92V Stretch Full インストール直後 OS起動時  電流 0.30A 電圧 4.82V OSアイドル時  電流 0.10A 電圧 4.83V LibreOffice起動時  電流 0.24A 電圧 4.54V OS+LibreOfficeアイドル時  電流 0.12A 電圧 4.73V Raspberry Pi 3B ( GUI ) 起動時  電流 0.5A 電圧 5V アイドル時  電流 0.26A 電圧 4.96V

Raspberry Pi Zero WH に Raspbian をセットアップ

Raspberry Pi Zero WH を買ったので、Raspbian のセットアップをしてみた。 まず、次のものを準備した。  Raspberry Pi Zero WH 本体  HDMI-miniHDMI ケーブル  マイクロUSBオス - USBメス ケーブル  USBハブ、USBマウス、USBキーボード  マイクロUSBオス - USBオス ケーブル と USB電源アダプタ  マイクロSDカード 1 は、当然必要。 2 は、Raspberry Pi Zero の映像出力用端子は miniHDMI なのでそのために必要。 今回はTVに出力していたのでHDMI用のケーブルだが、 出力先の端子がminiHDMIであれば、miniHDMI-miniHDMIのケーブルが必要。 3 は、Raspberry Pi Zero のUSB端子はマイクロUSB端子が1つのみなので、 ここにUSB機器を接続するためには、マイクロUSBをUSBに変換する物が必要。 4 は、Raspberry Pi Zero を操作するためマウスをキーボードをつなげた。 今回インストールした Raspbian は CUI だったので、キーボードだけでよかった。 5 は、マイクロUSBより電源供給するために必要。 6 は、OSインストール用。 公式サイトより Raspbian Stretch Lite (2019-04-08) をダウンロードした。 https://www.raspberrypi.org/downloads/raspbian/ ※ インストール方法は下記に示す方法の他にNOOBSを利用する方法がある。 NOOBSを用いる場合は上記ファイルではなく、 次のアドレスからファイルを持ってくる必要がある。 https://www.raspberrypi.org/downloads/noobs/ この方法は手続きは簡単だが時間がかかるらしい。 Raspbian Stretch Lite を Linux 上でマイクロSDカードに書き込む。 #dd if=./2019-04-08-raspbian-stretch-lite.img of=/dev/sdb bs=1M ※ windows上で書き込むならソフトが必要。例 W

Windows10 の 自動アップデート

Windows10 の アップデートがかかり、自動的に再起動された。 このとき、2TBのハードディスクのデータ完全消去中で、 処理開始より2日ほど経過しており、 あと3日程度で終了予定だったのに再起動されてしまった。 Windows10 では、アップデート自体を延期させることが出来るのだが、 別にアップデートがかけられても困るわけではないので特に対処していない。 こちらの希望は、 「アップデートは自動でも構わないが再起動はこちらの都合で決めたい」 のだが、Microsoftとしてはそうもいかないのだろう。 世界中で可動しているWindowsのバージョンを できるだけ統一しておいたほうがセキュリティ上都合がいいのだろう。 これは「ITスキルの高い人」や「ITスキルの低い人」がいる状況で 自力でアップデートをかけられない人がいるため 自動アップデートという強行手段を選択したのだろうが、 こちらとしてはとても都合が悪い。 何日もかかるような処理を実行するには Windowsのアップデートスケジュールに合わせる必要があり余計な作業である。 そもそも同じ商品を「スキルの高い人」と「スキルの低い人」の 両方に使わせていることに問題がある。 「スキルの低い人」から見ればWindowsは色々してくれて助かると思うかもしれないが、 「スキルの高い人」から見れば余計なことをしてくれていると感じているのではないだろうか。 日本の商品の多くもそうであるが、 「能力の高い人」「能力の低い人」の2種類の人に同じ商品を使ってもらうためには 「能力の低い人」に合わせて商品を作る必要がある。 結果、「能力の高い人」からしてみれば使いづらい商品を使わなければならず、 使いづらいから他の商品へと乗り換えが進んでいくことになる。 というわけで、いよいよ本気で他のOSをメインにしWindowsはサブということに置き換えていくことにしよう。  そもそもWindowsを使わなければならない理由はないので、 Windowsがいつかは全く使わないのかもしれないが。 Windows批判になってしまったが、WindowsはGUIは最もよくできていると思うので、 GUIで日本語を扱ったり、大きなファイルの変更や画像、動画などを扱うのなら、Win

HDD などストレージのデータ消去方法

ハードディスクを処分するにあたり、データの消去をする必要がある。 Windows では、コマンドラインから diskpart を実行し、 clean all を実行するとディスク上のデータは 0 を書き込まれる [参考] diskpart によるディスク全体の消去 https://qiita.com/aoi70/items/75f61ec679c1c1b71f8e cipher コマンドで消去する方法もあるが、 この場合は空きスペースのデータを0で書き込みしているようなので、 ディスク全体を消去はできないようである。 Unix系OSでは、shred コマンドが用意されている事がある。 # shred /dev/sdb これを実行すると、ディスク( /dev/sdb )にランダムな数を計3回書き込みが行われる。 これは、次のコマンドを3回実行していることと同じ意味を持つ。 # dd if=/dev/random of=/dev/sdb なお、/dev/random は /dev/urandom とほぼ同じであるが、 細かい挙動については次を参照。 [参考] /dev/random https://ja.wikipedia.org/wiki//dev/random Windows の方法は、Unixでは次と同じである。 # dd if=/dev/zero of=/dev/sdb Unix系の shred コマンドは -n オプションを使えば書き込み回数を変更できる。 初期設定が3回なのは、 アメリカ国防省などが定めたデータ削除基準に準じてなのだと思われる。 [参考] データの完全消去 https://ja.wikipedia.org/wiki/%E3%83%87%E3%83%BC%E3%82%BF%E3%81%AE%E5%AE%8C%E5%85%A8%E6%B6%88%E5%8E%BB

ボールペンを買おう

ボールペンはたくさん持っているが、 3色ボールペン( JETSTREAM SXE3-400-07 )が本体のつなぎ目にヒビが入ったため、 インクが残っているのに使い物にならなくなってしまった。 カバンに挿しておいたら力がかかって割れてしまったみたいだった。 そこで本体が丈夫なボールペンを使っていた。 使っていたのは JETSTREAM SXE3-3000-07 である。 替芯が高いのでランニングコストを調べてみたら良いサイトがあった。 [参考] ボールペンManiax https://ballpointpens.wiki.fc2.com/wiki/%E7%AD%86%E8%A8%98%E8%B7%9D%E9%9B%A2 JETSTREAM SXE3-400 の替芯は SXR-80 で80円。 JETSTREAM SXE3-3000 の替芯は SXR-200 で200円。 この2つの替芯は書ける量が同じくらい。筆記距離は250m~300m ぐらい。 SXR-600 は600円で筆記距離は1500mぐらい。 SXR-200 という替芯は 4C規格リフィル であり、他社のボールペンでも利用が可能。 よくネットで見かけるのは、LAMY2000 に SXR-200 を入れて使うというものだが、 LAMY2000 は 定価1万円以上、実売価格5000円以上する高価なボールペンである。 SXR-600 は G2規格のリフィルとして使える模様。いわゆるパーカー互換替芯。 ということで、 SXR-600 が使える本体の丈夫なボールペンを探すことにした。 ネットで調べてみると、 カランダッシュのゴリアット芯の代わりにSXR-600が使えるみたい。 カランダッシュの替芯は高いのでSXR-600が使えるのはちょうどいい。 とりあえず、カランダッシュ 849 が2000円を切って買えるので、これを入手してみることにした。

Webサーバ に Let's Encrypt を導入し https で接続できるようにした

稼働中の Webサーバ に Let's Encrypt を導入してみた。 環境は、CentOS 6 に Nginx でWebサービスを可動済み。 次の順に手続きをおこなう。 Let's Encrypt のインストール Nginx の設定 証明書の更新 Let's Encrypt のインストール 次のコマンドでダウンロードする。 $ git clone https://github.com/certbot/certbot 次のコマンドでインストールが始まる。 このコマンドの実行時点でWebが外からつながるようになっていることと、443ポートがアクセスできるようにしておく必要がある。 # ./certbot/certbot-auto --debug このコマンドの中でyumが起動し必要なプログラムをインストールし、 その後、Let's Encrypt の設定をきいてくるので入力する。 この時に設定ファイルからドメイン名を拾ってくるので、 どのドメイン名のアクセスを https で繋げる必要があるか答える。 また、この設定の中で Nginx の設定を自動で変更するかきいてくる。 ここで自動変更を選ぶと Nginx の設定ファイルが書き換えられる。 Nginx の設定 インストール時に設定変更しなかったのなら手動で変更する必要がある。 ここまでで https での接続が出来るはずなので確認する。 証明書の更新 Let's Encrypt の証明書は有効期限が 90日なので、cronで更新できるようにする。 # certbot-auto renew このコマンドで証明書の更新がされる。 ただし、有効期限まで30日を切らないと更新されない模様。 強制的に更新するなら次のようにするとよい。 # certbot-auto renew --force-renew [参考] Let's Encrypt+NginxでSSL証明書発行、自動更新の設定方法 https://qiita.com/yudsuzuk/items/83115236e9ca184326d2