howto/その他tips

一行メモ


Ubuntu18, CentOS7 でスクリーンショットをとる

スクリーンショットを撮るウィンドウをアクティブにしておいて、Alt+PrintScreenを押す。画像ファイルは ~/Picturesに保存される。

bash

IFSをデフォルトにもどす

$ IFS=$' \t\n'

プロセス置換; <(command) , >(command)

$ cat <(ls -1)
    <(command)の結果をファイルとして catが読み込む感じ
$ ls -1 > >(wc)
    >(command)のファイルに lsがリダイレクションで書き込む感じ。
$ a.out >(wc)
    ファイルに出力する a.outが、直接、出力を別のコマンドに渡すことができる。
    a.out thefile ; cat thefile | wc と同じだろう

設定した方がよい shopt(シェルオプション)

shopt [-p] #with no options or -p, a list options is displayed
# -sはon -uはoff
shopt -s histappend   # append to the history file
shopt -s checkwinsize # checks the window size after each command

shopt -u huponexit  #デフォルト, send SIGHUP to all jobs by logout

Parameter Expansion

変数variableの値について、部分的な削除や置換をする場合、次のようにできる。

${variable#pattern}     先頭からもっとも短く一致した部分を削除
${variable##pattern}    先頭からもっとも長く一致した部分を削除

${variable%pattern}     末尾からもっとも短く一致した部分を削除
${variable%%pattern}    末尾からもっとも長く一致した部分を削除

${variable/pattern/string}   もっとも長く一致した部分をstringに置換(最初のひとつだけを置換)
${variable//pattern/string}  もっとも長く一致した部分をstringに置換(一致したすべてを置換)

コマンド履歴の検索

Ctrl-rを押したのち、検索文字をタイプするとインクリメントサーチが行われる。
次のものを検索したい場合は、文字をタイプせずに、Ctrl-rを押す。
Ctrl-rを押しすぎて、前にもどる場合には、Ctrl-sでもどれる。
(emacsの操作法と同じである)

なお、通常、端末はCtrl-sでスクロールロックが掛かる(解除はCtrl-q)。
スクロールロックを無効にするために、
$ stty stop undef
を一度しておく。もしくは、.bash_profileに記載しておく。

ふたつの .bash_historyを結合させる

あらかじめ .bashrcに例えばデフォルトで
HISTSIZE=1000
HISTFILESIZE=2000
とあったらコメントアウトするか(後方で再設定している場合)、両方とも200000くらいにする。
(後方で、HISTSIZE,HISTFILESIZEを大きく再設定していても、この段階で履歴数が切り詰められるようなので)

ログイン後、
cat .bash_history1  .bash_history2  > temphis
history -a
history -c
history -r temphis           #memo: cat ... > temphis や history -a が含まれない、完ぺきではない。なぜ?
history -w .bash_history1+2  #確認
history -w
ログアウト
(うまくいかなかたらログアウト後に .bash_history1+2を WinSCPなどで .bash_historyにファイル変更するなどする)

シグナル

キャッチしたときの挙動は、プログラムの実装次第と思われる

              # man 7 signal から。数字はシグナル番号
INT (ctrl+C)  #  2, interrupt, キーボードからの割り込み
QUIT          #  3, quit, キーボードによる中止
TERM          # 15, termmination, 終了
KILL          #  9, kill(キャッチされなく、問答無用で終了)

winscp

ドットファイルを表示する

表示→環境設定→パネル→隠しファイルを表示する、をチェックする

ファイル名を文字化けさせない設定 (windows7)

WinSCPを立ち上げて最初の画面で、保存したセッション→選んで、編集ボタン→環境→
ファイル名をUTF-8でエンコード、を自動はダメで、オンにする。
(接続先がUTF-8やSJISでもちゃんと表示されるようになる)

拡大鏡(windows7)

すべてのプログラム→アクセサリ→コンピュータの簡単操作→拡大鏡
又は、
Windowsロゴキー+プラス(+) 

Windowsロゴキー+ESC で終了する。

画面キャプチャによる動画記録

AGDRecを利用した動画の作成方法

Windowsで、AGDRec.exeを起動(コーデック:ここでは設定を変更しない、コンコードモード:バッファリング
を選ぶ。後で変更可)
→ インディケータのアイコンを右クリックし、
   1) 領域指定録画 で、キャプチャ領域を指定する
   2) 設定 で、コーデックを無圧縮、オーディオ入力デバイスを使用しない、を選択しておく。
      バッファリングエンコーディングを選ぶ(カクカクしないように)。
   3) 録画開始・録画停止
→ Adobe Premiere elementsで mp4に変換する(縦横の画面サイズ比で不足分は黒背景になり、クロップ
   できないようだ。特に縦長の動画はそのまま編集できなく(Premiere Proなら可能らしい)、左右に黒帯が
   できる。これらの黒帯は AviUtlでクリッピングして削除できる。)
   # 単にファイルを読み込む → 右上の書き出し・配信 → 携帯電話・携帯プレイヤ
   # → 種類はApple TV,iPad,iPhone4の720p 29.97で良い

動画16分のAviutlによるクリッピングは Core i5で約40分かかる。
動画16分のPremiereによる変換は Core i5で約90分かかる。

AviUtlでのクリッピングの仕方

aviutl.exeを立ち上げる。ファイル→開く→動画ファイルを選択する。
そして、
表示→ツールウインドウの表示→クリッピング&リサイズ、にチェック
→設定ボタンで、クリッピングをする(偶数サイズにしなければならないらしい)→ウィンドウは閉じてよい
(注) クリッピングの情報は次回aviutl起動時にも引き継がれている。
つぎに、
ファイル→プラグイン出力→拡張x264出力(GUI)Ex→ビデオ圧縮ボタン
→プロファイルでyoutubeを選ぶなど(iphone4sがよさげ)
→OK→ファイル名を入れて、保存

(クリッピングの仕方) http://chie.exp.jp/140731test1.htm
(プロファイルを若干参考) https://rigaya34589.blog.fc2.com/blog-entry-256.html

(AviUtlとは) https://aviutl.info/
(いろいろなクリッピング・マスクの方法) https://aviutl.info/toriminngu-efekuto/
(基本的なこと )https://aviutl.info/intro/
(AviUtlのお部屋) http://spring-fragrance.mints.ne.jp/aviutl/

Adobe Premiere elementsの操作

なんとも印刷できないwebページ(背景黒で白文字)の印刷方法

1) chromeの拡張機能 GoFullPage (Full Page Screen Capture) で、webページの画像を保存する。

2) photoshop elementsで、
   レイヤ->新規調整レイヤ->階調の反転->OK
   ファイル->別名で保存->png画像などで保存

3) excelで
   空白のブック->挿入->画像->このデバイスから、保存したpng画像を貼り付ける。
   いったん、ファイル->印字->戻る(「←」)をし、ページ境界を表示させる。
   貼り付けた画像を、適当に拡大等して、印刷する。

ファイルサイズを調べる

du -s -SG ディレクトリ名  #Gbyte単位でディレクトリ階層の合計サイズが得られる

dateコマンドの出力を使った引き算をしたい。

Youtubeプレーヤーのショートカット

HP Pavilion 15s-du1008tuに関すること

Acer ASPIRE5750に関すること

重送していないのに重送エラーが発生するときの解決法(Canon ImageFORMULA DR-150 )

スキャナの電源を切る、PCを再起動する。(他の手段もあり。) キャノンのQ&A

ASUS U24Eに関すること

ノートPCなどLi Ionバッテリに関すること

windowsのzipをlinuxで解凍するとエラーになる場合に、修復して解凍できる

windowsで作られたzip(おそらく)が、次のエラーでlinuxで解凍できないとき。
$ unzip hoge.zip
Archive:  hoge.zip
warning [hoge.zip]:  zipfile claims to be last disk of a multi-part archive;
  attempting to process anyway, assuming all parts have been concatenated
  together in order.  Expect "errors" and warnings...true multi-part support
  doesn't exist yet (coming soon).
error [hoge.zip]:  missing xxxxx bytes in zipfile
  (attempting to process anyway)
error [hoge.zip]:  attempt to seek before beginning of zipfile
  (please check that you have transferred or created the zipfile in the
  appropriate BINARY mode and that you have compiled UnZip properly)
以下の修復を試すと解凍できるようだ。zipのバージョンはなるべく新しいものを使う。
$ zip -F hoge.zip --out hoge_mod.zip
$ unzip hoge_mod.zip

RPMパッケージから特定のファイルを取り出す

$ rpm2cpio パッケージファイル名 | cpio -im 取り出したいファイル名

mailコマンドの使い方(mailxもコマンドの実体は同じ)

.htpasswdのパスワードを作る

$ htpasswd -nb username hogehogepassword

ssh接続が2時間程度操作していないと切断されることの回避法

/etc/ssh/ssh_config で、
Host *
のところに
  ServerAliveInterval  600  #デフォルト0(しない)から 600秒毎にheartbeatを送る。
  ServerAliveCountMax    3  #デフォルトの値(600*3=10minサーバーから応答が無いと切断する)
を追加する。

sshのX11転送で .Xauthority does not existと出たときの対処法

cygwin$ ssh user@host.eit.hirosaki-u.ac.jp -Y
Warning: No xauth data; using fake authentication data for X11 forwarding.
/usr/bin/xauth:  file /home/user/.Xauthority does not exist
host$ logout
cygwin$ xauth add :0 . `mcookie`  #←これをする
xauth:  file /home/user/.Xauthority does not exist  #気にしない
cygwin$ xauth list
cygwin/unix:0  MIT-MAGIC-COOKIE-1  edf222c5df4c5c2ae777776555a7382c
cygwin$ ssh user@host.eit.hirosaki-u.ac.jp -Y
hoge$

ubuntu12上の pukiwiki 1.4.7 (EUC版) -> ubuntu18上の 1.5.1 (UTF-8) へのコンテンツの変換

コンテンツとしてのページは、ページ名がEUCエンコードされた ファイル名.txt となって
wikiディレクトリに保存されている。ファイル名をUTF-8エンコードのファイル名に変換する。
ツールencls.phpを使用( https://pukiwiki.osdn.jp/dev/?BugTrack/2186 で説明されている
https://ja.osdn.net/cvs/view/pukiwiki/devel/encls.php?view=log からダウンロードする。
実行には php7.2-mbstring のパッケージが必要なのでインストールしておく。)

(注) attachディレクトリの添付ファイルは、数が少なく、英語のファイル名だったものは
そのまま利用可能である。日本語のファイル名だったものは、文字化けするがページ上の
ファイルアイコンをクリックしてダウンロードができる。そのため、手動で適宜復旧すること
とした。その他 backup, cache, counter, diffディレクトリは初期状態のまま(リセット
されたような状態)としすることとした。
なお、ダウンロードするとattachの .logファイルが更新される。日付が新しくなるので、
ファイルしたファイルが、attach上のどのファイルなのかの対応がわかる。

以下、手順

$ cd wiki  #1.4.7のwikiディレクトリ

EUCエンコードされたファイル名をUTF-8エンコードのものに変更する。
なお、encls.phpによって出力されるファイル名の先頭には UTF-8 が付く。
$ for f in *.txt; do mv $f `./encls.php $f`; done

ファイルの中身をEUCからUTF8に変更
$ for f in UTF-8*.txt ; do nkf -Ew $f > EUC$f; done

オリジナルのファイルを別ディレクトリtmpに移動、あとで削除する。
作業途中のファイルリストをtempファイルに作成する。
$ mkdir tmp; mv [0-9A-F]*.txt tmp
$ ls -1 EUCUTF-8*.txt > temp

ファイル名とファイルの中身をUTF-8に変換したファイルについて、ファイル名の先頭に
付いている EUCUTF-8 を削除する。
$ for f in `cat temp` ; do echo $f | sed 's/EUCUTF-8//'; done          #事前確認
$ for f in `cat temp` ; do mv $f `echo $f | sed 's/EUCUTF-8//'`; done  #削除

以上のように作った wikiディレクトリを、1.5.1のwikiディレクトリとする。

pukiwiki 1.5.1で KaTexを動かす

katex.inc.phpファイルを puluginフォルダに置く。 filekatex.inc.php (ver 0.13.0)

skin/pukiwiki.css.php と skin/tdiary.css.php にある span.size[1-7]内の、font-size:hogehoge; を font-size:hogehoge :not(.katex); に変更する。

利用方法

KaTexを使うページに、#katex をいちどだけ書いておき、$と$ または $$と$$ の間に式を書く。

#katex
$y=ax^2+bx+c$
や
$$
y=ax^2+bx+c ~(センタリングされる)
$$
別の例、$ \int_0^\infty \bigl\{rR_n{}^l(r)\bigr\}^*\bigl\{rR_{n'}{}^l(r)\bigr\}\,dr=\delta_{nn'}
$

とすると、

$y=ax^2+bx+c$ や $$ y=ax^2+bx+c ~(センタリングされる) $$ 別の例、$ \int_0^\infty \bigl\{rR_n{}^l(r)\bigr\}^*\bigl\{rR_{n'}{}^l(r)\bigr\}\,dr=\delta_{nn'} $

となる。

なお、式にエラーがあると、整形されないまま表示される。

リンク

サーバー証明書の確認方法(ブラウザで表示できないとき)

https://ssltools.digicert.com/checker/views/checkInstallation.jsp にURLを入れる。 証明書のタイプは、EV, OV, DV の種類がある。

gccのオプション

以下の情報に関する gccのバージョン

allium$ cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
allium$ gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gccで何のオプションがつくか

allium$ echo | gcc -O3 -E -v - 2>&1 | grep cc1
 /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1 -E -quiet -v - -mtune=generic -march=x86-64 -O3

allium$ echo | gcc -Ofast -E -v - 2>&1 | grep cc1
 /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1 -E -quiet -v - -mtune=generic -march=x86-64 -Ofast

allium$ echo | gcc -Ofast -march=native -E -v - 2>&1 | grep cc1
 /usr/libexec/gcc/x86_64-redhat-linux/4.8.5/cc1 -E -quiet -v - -march=core-avx2 -mcx16 -msahf -mmovbe -maes
 -mpclmul -mpopcnt -mabm -mno-lwp -mfma -mno-fma4 -mno-xop -mbmi -mbmi2 -mno-tbm -mavx -mavx2 -msse4.2 -msse4.1
 -mlzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt
 -mno-pku --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=3072 -mtune=core-avx2 -Ofast

man gcc, man gfortran から

-Ofast
    Disregard strict standards compliance.  -Ofast enables all -O3 optimizations.  It also enables optimizations
    that are not valid for all standard-compliant programs.  It turns on -ffast-math and the Fortran-specific
    -fno-protect-parens and -fstack-arrays.


    -ffast-math
        Sets -fno-math-errno, -funsafe-math-optimizations, -ffinite-math-only, -fno-rounding-math,
        -fno-signaling-nans and -fcx-limited-range.

        This option causes the preprocessor macro "__FAST_MATH__" to be defined.

        This option is not turned on by any -O option besides -Ofast since it can result in incorrect output for
        programs that depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It
        may, however, yield faster code for programs that do not require the guarantees of these specifications.

        -fno-math-errno
             Do not set "errno" after calling math functions that are executed with a single instruction, e.g., "sqrt".  A
             program that relies on IEEE exceptions for math error handling may want to use this flag for speed while
             maintaining IEEE arithmetic compatibility.

             This option is not turned on by any -O option since it can result in incorrect output for programs that
             depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however,
             yield faster code for programs that do not require the guarantees of these specifications.

             The default is -fmath-errno.

             On Darwin systems, the math library never sets "errno".  There is therefore no reason for the compiler to
             consider the possibility that it might, and -fno-math-errno is the default.

        -funsafe-math-optimizations
             Allow optimizations for floating-point arithmetic that (a) assume that arguments and results are valid and
             (b) may violate IEEE or ANSI standards.  When used at link-time, it may include libraries or startup files
             that change the default FPU control word or other similar optimizations.

             This option is not turned on by any -O option since it can result in incorrect output for programs that
             depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however,
             yield faster code for programs that do not require the guarantees of these specifications.  Enables
             -fno-signed-zeros, -fno-trapping-math, -fassociative-math and -freciprocal-math.

             The default is -fno-unsafe-math-optimizations.

         -ffinite-math-only
             Allow optimizations for floating-point arithmetic that assume that arguments and results are not NaNs or
             +-Infs.

             This option is not turned on by any -O option since it can result in incorrect output for programs that
             depend on an exact implementation of IEEE or ISO rules/specifications for math functions. It may, however,
             yield faster code for programs that do not require the guarantees of these specifications.

             The default is -fno-finite-math-only.

        -frounding-math
             Disable transformations and optimizations that assume default floating-point rounding behavior.  This is
             round-to-zero for all floating point to integer conversions, and round-to-nearest for all other arithmetic
             truncations.  This option should be specified for programs that change the FP rounding mode dynamically, or
             that may be executed with a non-default rounding mode.  This option disables constant folding of floating-
             point expressions at compile time (which may be affected by rounding mode) and arithmetic transformations
             that are unsafe in the presence of sign-dependent rounding modes.

             The default is -fno-rounding-math.

             This option is experimental and does not currently guarantee to disable all GCC optimizations that are
             affected by rounding mode.  Future versions of GCC may provide finer control of this setting using C99's
             "FENV_ACCESS" pragma.  This command-line option will be used to specify the default state for "FENV_ACCESS".

         -fsignaling-nans
             Compile code assuming that IEEE signaling NaNs may generate user-visible traps during floating-point
             operations.  Setting this option disables optimizations that may change the number of exceptions visible with
             signaling NaNs.  This option implies -ftrapping-math.

             This option causes the preprocessor macro "__SUPPORT_SNAN__" to be defined.

             The default is -fno-signaling-nans.

             This option is experimental and does not currently guarantee to disable all GCC optimizations that affect
             signaling NaN behavior.

         -fcx-limited-range
             When enabled, this option states that a range reduction step is not needed when performing complex division.
             Also, there is no checking whether the result of a complex multiplication or division is "NaN + I*NaN", with
             an attempt to rescue the situation in that case.  The default is -fno-cx-limited-range, but is enabled by
             -ffast-math.

             This option controls the default setting of the ISO C99 "CX_LIMITED_RANGE" pragma.  Nevertheless, the option
             applies to all languages.

    -fno-protect-parens
        By default the parentheses in expression are honored for all optimization levels such that the compiler does
        not do any re-association. Using -fno-protect-parens allows the compiler to reorder "REAL" and "COMPLEX"
        expressions to produce faster code. Note that for the re-association optimization -fno-signed-zeros and
        -fno-trapping-math need to be in effect. The parentheses protection is enabled by default, unless -Ofast is

    -fstack-arrays
        Adding this option will make the Fortran compiler put all local arrays, even those of unknown size onto stack
        memory.  If your program uses very large local arrays it is possible that you will have to extend your
        runtime limits for stack memory on some operating systems. This flag is enabled by default at optimization
        level -Ofast.

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS