文書の過去の版を表示しています。


= コマンド / LM: [2024-08-08 21:17:27]

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

以下の部分をコメントアウトすれば字下げされるようになる.

\IfFileExists{parskip.sty}{%
\usepackage{parskip}
}{% else
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
}

ファイルを自分のホームディレクトリなど好きな場所に置き,–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 行目あたりに以下の設定を追記し,余白を狭くした.

\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}

1.2.8 タイトルなどを入れる [2023-09-13]

LaTeX のタイトルや著者などの情報は,markdown の最初の方に以下のように書いておけば設定される.

--- 
title: タイトルだよ
author: skk 
date: \today 
figureTitle: "図"
tableTitle: "表"
listingTitle: "コード"
figPrefix: "図"
eqnPrefix: "式"
tblPrefix: "表"
lstPrefix: "コード"
--- 

参考ページ:https://yurkth.hateblo.jp/entry/pandoc-markdown

1.2.9 定義の記述 [2023-09-14]

LaTeX における \begin{description} \item[] を利用した定義は,MarkDown で以下のように記述する.

何かのアイテム
:   
: * 定義1
: * 定義2

一行目の : の後ろには,全角の空白を置いている.これを置くことで,定義の文章を次の行に改行できる.改行がいらなければ,削除したら良い.

二行目三行目は実際の定義の文章を書いている.* を置くことで箇条書きになる.

もし,アイテム部分がすごく長くなる場合,enumitem という LaTeX パッケージが利用できるがまだ試していない為,そのうち試したい.参考

2. imapfilter

imap コマンド経由で,lua 言語でフィルタリングを行うコマンド.

imapfilter

3. nkf

  • unix/mac/windows の改行コード変換
    • –unix, –mac, –windows オプション
  • 上書きしたいとき
    • –overwrite オプション
      % nkf -w --overwrite hoge.txt 

4. zip コマンド

4.1 (基本)zip ファイルを作成する

% zip hoge.zip foo/*.jpg 

4.2 ディレクトリ情報は無視して,ファイルのみアーカイブする

% zip -j hoge.zip *.jpg

4.3 zip ファイルの中身を表示する

% zip -sf hoge.zip 

5. rsync

6. dhclient

  • dhclient が勝手に、resolv.conf を書き換えるのをやめたいができない。
  • しょうがないので、以下を加えて回避。
# vi /etc/dhcp/resolv.conf 
prepend domain-name-servers 192.168.1.1;

7. subversion

subversion 参照

8. convmv

  • ファイル名の文字コード変更コマンド
convmv -r -f 元のエンコーディング -t 変更先エンコーディング --notest 

9. ffmpeg

10. latex2rtf

11. ssh port forward

  • localhost:1234 → 192.168.1.22:5901
$ ssh -L 1234:192.168.1.22:5901 192.168.1.22 -l skk
  • VNC の場合,ポート番号は 5900 + VNC サーバのディスプレイ番号.よって,5900+1 とか.

12. unison

2 つのマシン間でファイルの同期をとるためのコマンド.

13. nslookup 使い方

  • 指定ドメインの mx を探す
> set type=mx 
> tsukune.org
  • 指定ドメインの ns を探す
> set type=ns
> tsukune.org

14. iso 取り扱いツール

14.1 isomaster

  • GUI ベース.

15. cab file 取り扱いツール

15.1 cabextract

15.2 lcab

  • .cab ファイル作成

16. find

16.1 find で空白ファイル名の空白を削除 [2023-10-12]

中身は理解してない.

% find . -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;
% **find / -type f -name "* *.txt" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

引用元:

16.2 find でファイル削除

linux, freebsd ともに,'{}' が指定したファイル名と置換される部分なので,別の引数は必要に応じて'{}'の前とか後とかにつける.

16.2.1 linux

% find . -inode 11111 -ok rm '{}'\;

16.2.2 freebsd

% find . -inum 1111 -exec ls '{}' \; 
% mv `find . -inum 1111 -print` hoge.exe

17. for を使っての複数ファイル処理

[2024-08-08] for を使って複数のファイルに対して,一括処理をしたい場合は,僕は以下のように書くことが多い.

% for HOGE in `ls`
> do
> zip $HOGE.zip $HOGE
> done

ただしこの方法は,ls の出力する空白が区切り文字として扱われるため,ファイル名に空白が入っていると上手く処理できない.

ここを参考に,以下のように区切り文字を改行にしてみたら,問題なく動作するようになった.

% IFS=$'\n'; for HOGE in `ls`
> do
> zip $HOGE.zip $HOGE
> done

18. gnuplot


このページへのアクセス 今日: 5 / 昨日: 3 総計: 889

コマンド.1723119456.txt.gz · 最終更新: 2024/08/08 21:17 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0