Katsuo Pages

Katsuoのサイト

View My GitHub Profile

Linuxやプログラミングのエラー|普通に分からないことにメモを活用する

例えば、Linuxでvimをビルドしようとしてエラーになったときにエラーを解決する 方法としていつも同じように何一つ解決に向けて進まないので、いい加減これでは やばい、進歩なさすぎると思ったので改善します。


メモをとるためのメモっていっぱいあるけど、例えば物理ノートであったり、

メモ帳アプリであったり。notionのように高機能なものもあったり。

メモって誰にも見せず、自分さえ見れればいいものだけど、noteなどである程度メモ記事を

作成してきた僕から見ると、コンテンツ化してインターネット上にアップしないと

せっかくメモをとった労力がもったいない感じがする。


そこで考えたのが、github pagesをそのままメモがわりに使っていくということ

#github pagesをメモのかわりに使うことのメリット

ということで、メモのかわりにgithub pagesを使うことにします。


github pagesの導入

//公開するgithub pagesは1GB以内という制限がある

1GBってデータ量的にめっちゃ少なく感じたので、調べてみたら

ウェブページ1ページあたりの容量はだいたい1から2MBらしいので、

500〜1000ページは公開できることになるので、1GBでも充分すぎるので

容量に対する制限は気にせず使えます。


github pagesの作成



サイトのテンプレートを設定する


github pagesにはjekyllというテンプレートのテーマが準備されているので便利。 これを利用します。



jekyllによって生成されたindex.mdをもとにして実際にはindex.htmlが作られてサイトが描画される。

リポジトリ上にindex.htmlとindex.mdの2つが存在する状態だと、index.htmlの方が優先されてテーマが あたらないので、index.htmlの方は削除しておく。

config.ymlファイルに直接jekyllのテーマ名を書くこと(テーマ名変更すること)でテーマを変更することが できる。


theme: xxx
title: foo 
description: hello


また、titleとdescriptionを変えることで、サイト名やサイトがどんなサイトなのかを表示する サイトのヘッダー部分を変更することができる。


configyml


ページの追加方法


index.mdの中にページのリンクを記載して追加したページに遷移 “Create new file”をクリックしファイル名(filename.md)を作成 好きな内容を書く


これでページが追加されます。

あとはマークダウンでメモを作成していくだけ。 これでメモがコンテンツにもなり、ウェブブラウザで媒体を問わず編集、閲覧ができます。


linuxやプログラミングでエラーが出た時のメモの活用方法


まだ試行錯誤だけど、僕の中で最善と思われるアイデアを出します。


エラー出たら行き当たりばったりに行動してたので、とるべき行動を

ある程度決めておいてその通りに作業したほうがいいと考えました。


linuxやmacのターミナルを使っていてエラーでたとき


ターミナルのエラー内容をとりあえず保存しておく

エラー出たら再度同じことを実行して、エラー内容をログファイルに保存していつでも閲覧できるようにする。

方法として考えられるのが、コマンドの出力結果をリダイレクトでファイルに保存すること。


標準出力と標準エラー出力

ターミナルで実行したコマンドの処理の結果は画面に出力されている。

その出力には標準出力と標準エラー出力があり、

正常に処理が終了した結果は標準出力として出力され、エラーで処理が終了したときは標準エラー出力として

出力され、画面の見た目ではわからないけど標準出力と区別して出力されている。


自分で実行したコマンドのエラーメッセージを保存するために”logfile”というディレクトリを作成し、

ログファイルを保存するようにする。


新規では”&>”を使って保存する。 2回め以降、ファイルに追記するには”&»“を使ってファイルの末尾に追加で保存する。


//ターミナル
$ mkdir logfile
$ cat test &> logfile/log.txt
$ cat logfile/log.txt
cat: test: そのようなファイルやディレクトリはありません


内容をファイルに保存しておくことで、あとで見ることができるので便利。

ただ、どういったコマンドを実行した結果なのかが分からなくなってくるので、


下記コマンドのように、実施するコマンドの文字列をechoでファイルに保存してから

再度コマンドを実行する形でやっていこうと思います。

$ echo "cat test.txt" | tee logfile/log.txt; cat test.txt &>> logfile/log.txt
cat test.txt
$ cat logfile/log.txt
cat test.txt
cat: test.txt: そのようなファイルやディレクトリはありません


以上で、ターミナルで実行したコマンドと実行内容をファイルに保存できるようになりました。


あとは、エラーを解決するための作業を行います。

ログに保存した内容からエラーの原因を考えたり、googleにコピペしたりキーワードを

入力することで調べます。


エラー内容をネットで検索

エラーメッセージの一部をコピペしてgoogleにペーストして検索しても、ノイズな関係ない記事が多くヒットすることが多い。

とりあえず検索結果をスクロールして流して見て、解決法と関係ありそうなのがあったら閲覧する。

なさそうだったら、記事探しの深入りはせず、エラーメッセージから他の検索キーワードを考えて、キーワードを入力して検索。

github pagesに作業ログを残す感じで下記のようにメモをとりつつ進める。

例)

github pagesにログファイルの内容をコピペし、補足を書く。

# github pages
//作業内容
thinkpad x41 debianでvimをビルドしてもpython3interpができなかった。

//コマンドとエラーメッセージ
...

//解決のための作業
エラーメッセージのコピペでは見つからなかった。
このキーワードでも出てこなかった。


上記のようにgithub pagesに記録してそのままコンテンツとして残しておけば、

自分であとから確認できるし、自分だけでなく同じようなエラーを

解決したいひとが見れる状態になる。