Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2914

個人的なbash terminalの備忘録

$
0
0

環境

$ lsb_release -a 
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04 LTS
Release:    20.04
Codename:   focal
$ bash --version
GNU bash, version 5.0.16(1)-release (x86_64-pc-linux-gnu)

鶏頭なので,思い立ったらちょこちょこ加筆すると思う.

manuals

man - an interface to the on-line reference manuals
apropos - search the manual page names and descriptions
whatis - display one-line manual page descriptions

build-in commandsのmanual

cd,bg, evalなどのbuild-in commandsのいくつかは

$ man eval
No manual entry for eval

となるが

$ man builtins

もしくは

$ help eval

からマニュアルを参照可能.

manualの日本語

$ sudo apt-get install manpages-ja

を入れておけば日本語のmanualを参照できるが,terminalのlocal をen_US.UTF-8にしているので

$ alias man="env LANG=ja_JP.UTF-8 man"

としえおけば翻訳されたmanualを参照できる.日本語manualが無い場合は英語のmanualが参照される.original(英語)のmanualを参照したいときは

$ \man 

のようにスラッシュを先頭につければ,aliasを無視して実行できる.

設定(~/.bashrc or ~/.bash_profile)

デフォルトのterminalだと

username@hostname:<path>$

のように表示されるがディレクトリ階層が深くなると冗長的なので

PROMPT_DIRTRIM=1

とすれば,current directory 以下は省略される. また,user名は自明なので省略する.

export PS1="[@\h \w]\\$ "

詳細は@IT > Linux & OSS > Linux Tips Index > bashのプロンプトを変更するには

apt-clone

$ sudo apt install apt-clone

からapt-cloneをinstallして

$ sudo apt-clone clone .

とすれば,current directory に apt-clone-state-<hostname>.tar.gzができるので新環境で

$ sudo apt-clone restore apt-clone-state-<hostname>.tar.gz

を実行すればapt環境をcloneできる.なおWolframEnginは

not installable: wolframscript

となったので,手動で設定する必要がありそう.

cd

$ cd -

で一つ前にいたディレクトリに戻れる.深いディレクトリで誤ってcdしてしまった場合等に対応できる.

ln

ln -s で作成したシンボリックリンクの解除は

$ unlink

type

を使えば,alias しているものの詳細やパスが取得できる

$ type gnuplot
gnuplot is aliased to `rlwrap -a -c -b"\"\"\\'\\'" gnuplot'

gnuplotをこのようにaliasしているのはtab保管(readline)がdefaultだとうまく機能しないので.

pdf編集

qpdfはaptでinstallでき,マニュアルが充実しているが,日本語の解説も詳しい.

ページの回転

$ qpdf in.pdf out.pdf --rotate=90:1,3,5

とすればp1, p3, p5のページが時計回りに90度回転することができる.マニュアルにはページ番号を省けば全ページ回転するとあるが,私の環境ではできなかったので最初と最後のページを明示的に示せば

$ qpdf in.pdf out.pdf --rotate=90:1-48

前ページ回転する.なお,seqと組み合わせて

$ qpdf in.pdf out.pdf --rotate=90:`seq-s',' 1 2 48`

とすれば奇数ページだけ回転させることが出来る.総ページ数をコマンドラインで取得するには

$ qpdf in.pdf --show-npages
48

で取得できる.

結合,抽出

結合

$ qpdf --empty --pages in-A.pdf 1-3 in-B.pdf 2-3 -- out.pdf

ページ数をはしょれば,in-A.pdfの後に in-Bがマージされる

$ qpdf --empty --pages in-A.pdf in-B.pdf -- out.pdf

特定ページの抽出は

$ qpdf --empty --pages in.pdf 1-3 -- out.pdf

のようにすればよい.


Viewing all articles
Browse latest Browse all 2914

Trending Articles