文書の過去の版を表示しています。
−目次
= コマンド / LM: [2023-11-15 20:33:29]
OS に関係なく利用できるコマンドに関して.
1. pandoc
1.1 概要
pandoc はテキストフォーマットを ,別のフォーマットに変化する為のツール.markdown から HTML やら PDF やらに変更したり出来る.[2023-09-10] 時点で入力できるリストは以下の通り.
0:21 [0] skk@skk-T14% pandoc --list-input-formats commonmark creole docbook docx epub fb2 gfm haddock html jats json latex man markdown markdown_github markdown_mmd markdown_phpextra markdown_strict mediawiki muse native odt opml org rst t2t textile tikiwiki twiki vimwiki
1.2 MarkDown → PDF
1.2.1 概要
github などの影響で MarkDown が各所で使われているが,ある程度整形された状態で印刷しようと考えると,Windows 編集ツールは有料のものしか見つからなかった[2023-09-10].一時期 Typora を使っていたがいつの間にか有料になっていたけど,お金払うほどしょっちゅう印刷するわけではないので,pandoc で済ますことにする.
1.2.2 インストール
Linux なら apt で探す.FreeBSD なら pkg または ports でインストール.ports の場合,大きなソフトウェアなので少し時間がかかる.
1.2.3 MarkDown の亜種
[2023-11-15]
MarkDown の種類がどれくらいあるのか分からないが,少なくとも入力フォーマットとして,以下が存在しているらしい.
markdown markdown_github markdown_mmd markdown_phpextra markdown_strict
markdown_github は pandoc 2.0 以上だとあまり推奨されてなさそうで,gfm というのが使えるようだ.
標準の markdown だと水平線の表現が *
のようなのだが,redmine wiki と同様の
— にしたい場合,github markdown が良さそう.
pandoc -f markdown_github として入力フォーマットを指定すると良い.
1.2.4 LaTeX エンジンの選定
pandoc を使って MD → PDF と変換する際は,emacs の org-mode などと同様,一度 LaTeX に変換してから PDF を生成する.LaTeX エンジンは色々存在するが,man の –pdf-engine を見ると,以下のエンジンを指定できることが分かる.
pdflatex|lualatex|xelatex|wkhtmltopdf|weasyprint|prince|context|pdfroff
慣れているものを利用すれば良いと思うが,platex がないのでどれでも良かったので,取り急ぎ,今回は lualatex をインストールすることとした.
apt-get install texlive-luatex
1.2.5 変換コマンド
変換は以下:
pandoc hoge.md -o hoge.pdf –pdf-engine=lualatex -V documentclass=bxjsarticle -V classoption=pandoc
bxjsarticle が昔で言う jarticle のようなスタイルファイル.classoption は何を意味しているのか分かってない.
1.2.6 字下げされない
デフォルトのままだと,段落の行頭が字下げがされていない.[2023-09-10] 時点で,pandoc が提供する以下のテンプレートファイルにて行頭字下げしないように指定されている.
/usr/share/pandoc/data/templates/default.latex
以下の部分をコメントアウトすれば字下げされるようになる.
<code latex>
\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}
</code>
ファイルを自分のホームディレクトリなど好きな場所に置き,–template でファイルを指定.
pandoc hoge.md –template=default.latex -o hoge.pdf –pdf-engine=lualatex -V documentclass=bxjsarticle -V classoption=pandoc
1.2.7 ページの余白がでか過ぎる
デフォルトのままだと,余白が多き過ぎて印刷した際に紙がもったいない.default.latex 内の \begin{document} の前あたり,行数だと 350 行目あたりに以下の設定を追記し,余白を狭くした.
<code latex>
\setlength{\topmargin}{15mm}
\addtolength{\topmargin}{-1in}
\setlength{\oddsidemargin}{20mm}
\addtolength{\oddsidemargin}{-1in}
\setlength{\evensidemargin}{15mm}
\addtolength{\evensidemargin}{-1in}
\setlength{\textwidth}{170mm}
\setlength{\textheight}{254mm}
\setlength{\headsep}{0mm}
\setlength{\headheight}{0mm}
\setlength{\topskip}{0mm}
</code>
1.2.8 タイトルなどを入れる [2023-09-13]
LaTeX のタイトルや著者などの情報は,markdown の最初の方に以下のように書いておけば設定される.
<code markdown>
—
title: タイトルだよ
author: skk
date: \today
figureTitle: “図”
tableTitle: “表”
listingTitle: “コード”
figPrefix: “図”
eqnPrefix: “式”
tblPrefix: “表”
lstPrefix: “コード”
—
</code>
参考ページ:https://yurkth.hateblo.jp/entry/pandoc-markdown
1.2.9 定義の記述 [2023-09-14]
LaTeX における
\begin{description}
\item[] を利用した定義は,MarkDown で以下のように記述する.
<code>
何かのアイテム
:
: * 定義1
: * 定義2
</code>
一行目の
: の後ろには,全角の空白を置いている.これを置くことで,定義の文章を次の行に改行できる.改行がいらなければ,削除したら良い.
二行目三行目は実際の定義の文章を書いている.
*'' を置くことで箇条書きになる.
もし,アイテム部分がすごく長くなる場合,enumitem という LaTeX パッケージが利用できるがまだ試していない為,そのうち試したい.参考
2. imapfilter
imap コマンド経由で,lua 言語でフィルタリングを行うコマンド.
→ imapfilter
3. nkf
* unix/mac/windows の改行コード変換
* –unix, –mac, –windows オプション
* 上書きしたいとき
* –overwrite オプション<code>
% nkf -w –overwrite hoge.txt </code>
4. zip コマンド
4.1 (基本)zip ファイルを作成する
<code>
% zip hoge.zip foo/*.jpg
</code>
4.2 ディレクトリ情報は無視して,ファイルのみアーカイブする
<code>
% zip -j hoge.zip *.jpg
</code>
4.3 zip ファイルの中身を表示する
<code>
% zip -sf hoge.zip
</code>
5. rsync
6. dhclient
* dhclient が勝手に、resolv.conf を書き換えるのをやめたいができない。
* しょうがないので、以下を加えて回避。
<code>
# vi /etc/dhcp/resolv.conf
prepend domain-name-servers 192.168.1.1;
</code>
7. subversion
subversion 参照
8. convmv
* ファイル名の文字コード変更コマンド
<code>
convmv -r -f 元のエンコーディング -t 変更先エンコーディング –notest
</code>
* -f,-t: euc-jp, sjis, utf8 などを指定
* –notest: テストせずに,実行.
* 参考ページ
* http://www.geocities.jp/code_air_edge/HP/convmv.html
9. ffmpeg
* ffmpeg
10. latex2rtf
* freebsd, linux ともに,標準のコマンドでは日本語に対応していない.
* http://tauros.ams.eng.osaka-u.ac.jp/mt/jp/archives/2007_12.html ここに,日本語変換フィルタが公開されている.
* euc-jp のみの対応なので,utf などの文章は気をつけること.
11. ssh port forward
* localhost:1234 → 192.168.1.22:5901
<code>
$ ssh -L 1234:192.168.1.22:5901 192.168.1.22 -l skk
</code>
* VNC の場合,ポート番号は 5900 + VNC サーバのディスプレイ番号.よって,5900+1 とか.
12. unison
2 つのマシン間でファイルの同期をとるためのコマンド.
* unison
13. nslookup 使い方
* 指定ドメインの mx を探す
<code>
> set type=mx
> tsukune.org
</code>
* 指定ドメインの ns を探す
<code>
> set type=ns
> tsukune.org
</code>
14. iso 取り扱いツール
14.1 isomaster
* GUI ベース.
15. cab file 取り扱いツール
15.1 cabextract
15.2 lcab
* .cab ファイル作成
16. find
16.1 find で空白ファイル名の空白を削除 [2023-10-12]
中身は理解してない.
<code bash>
% find . -type f -name “* *.txt” -exec bash -c 'mv “$0” “${0 /_}”' {} \;
% **find / -type f -name “* *.txt” -exec bash -c 'mv “$0” “${0 /_}”' {} \;
</code>
引用元:
* https://www.linuxadictos.com/ja/como-eliminar-espacios-nombres-archivos.html
16.2 find でファイル削除
linux, freebsd ともに,'{}' が指定したファイル名と置換される部分なので,別の引数は必要に応じて'{}'の前とか後とかにつける.
16.2.1 linux
<code>
% find . -inode 11111 -ok rm '{}'\;
</code>
16.2.2 freebsd
<code>
% find . -inum 1111 -exec ls '{}' \;
% mv `find . -inum 1111 -print` hoge.exe
</code>
17. gnuplot
文書の先頭へ