[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#menu(howto/MenuBar)
* howto/linuxコマンド [#j9ccaf2f]
#contents
** 一行メモ [#mda41b41]
- 他のところにもpsあり。まとめる -- &new{2018-12-05 (水)...
- grep 'method_poisson ' tmpRC0chs/*.inp |sort -t ' ' -k ...
-- 区切りスペースはデフォルト
-- -t ' ' をつけると、数値の並び替えがバグる? -- &new{2...
- ハッシュ値の計算 -- &new{2019-12-02 (月) 16:24:30};
-- md5sum ファイル名
-- sha256sum ファイル名
-- など
- grep や emacs での正規表現での検索で、 | ( ) にエスケー...
GNU grep 2.25 で、pat1またはpat2の検索
$ grep '¥(pat1¥|pat2¥)' file
.frcmodで終わる検索
$ grep '¥.frcmod$' file
GNU emacs24.5.1 で、pat1またはpat2の検索
M-x query-replace-regexp や M-x occur で、条件は
¥(pat1¥|pat2¥)
- ls出力のファイル名の並び順: LANG=en_US.UTF-8 のときは...
- sortで -t ' ' をつけると、数値の並び替えがバグる? -- ...
- grep --color=never #色を付けなくする -- &new{2021-0...
- grep --color=always string file | less -R #色付けでパイ...
- 正規表現(J.E.F.Friedl著,オライリーから. 表6-1抜粋) --...
|CENTER: |CENTER:|CENTER:|CENTER:|CENTER...
| |grep |egrep |emacs |python...
|[...], ^, $ |v |v |v |v |
|\<...\>, \b, \B |v |v |v |v |
|グループ化 |\(...\)|(...) |\(...\)|\(...\)|
|(...)* |v |v |v |v |
|+ or \+ |\+ |+ |+ |+ |
|? or \? |\? |? |? |? |
|{...} or \{...\} 反復回数|\{...\}|{...} |・ |・ |
|\ or \| |\| || |\| |\| |
||||||
||||||
-- 例) 拡張子c,h,l,yのファイルのうち grid~coordを含む行...
ここで ~は任意の1文字以上の文字列。
$ grep 'grid.\+coord' *.[chly]
- moduleコマンド -- &new{2021-12-17 (金) 20:45:46};
ソフトウェアを利用するための環境や、同じソフトウェアでも...
用意したり、削除したりするツールである。それぞれのソフト...
モジュール名(モジュールファイル)で指定された、変数や環境...
module load モジュール名 #モジュールのロード(読み込み)
module unload モジュール名 #モジュールをアンロード
module list #ロードしているモジュールの一覧を表示
module avail #利用可能なモジュールを表示
シェルスクリプト内でこのツールを利用するときには、
source /etc/profile.d/modules.sh などを予め読み込んでお...
[ref] https://qiita.com/Ag_smith/items/f268ad27165a60aecd...
- windows改行コードをlinux改行コードに変換: tr -d '\r' <...
- touch -r reffile hogefile # hogefileの日付を reffileと...
- touch -t 202303071830.00 day202303071830.txt #2023/03/...
- locate 検索文字列 #検索文字列が絶対パスに部分的に一致...
- ふたつのファイル内の数値の違いを調べる。 -- &new{2022-...
ファイルhoge1.outとhoge2.outの中に以下のような数値が出力...
hoge1.out
...
Frequencies -- -500.7208 -500.7202 ...
...
Frequencies -- 70.2251 104.3229 ...
...
Frequencies -- 172.1303 241.4551 ...
...
hoge2.out
...
Frequencies -- -500.4196 -500.4196 ...
...
Frequencies -- 70.1453 104.2697 ...
...
Frequencies -- 173.3204 241.3123 ...
...
$ paste <(grep "Frequencies" hoge1.out | awk '{print $3,...
<(grep "Frequencies" hoge2.out | awk '{print $3,...
| sed 's/\t/\t-\t/' > temp
$ paste temp <(bc < temp)
とすると、
-500.7208 - -500.4196 -.3012
-500.7202 - -500.4196 -.3006
58.3287 - 58.2761 .0526
70.2251 - 70.1453 .0798
104.3229 - 104.2697 .0532
172.1244 - 173.3204 -1.1960
172.1303 - 173.3204 -1.1901
241.4551 - 241.3123 .1428
248.0223 - 248.0306 -.0083
...
と計算できる。各行は、hoge1.outの値、マイナス、hoge2.out...
- 横にも書式付で並んでいる数字を、各数値を一行にして出力...
hoge1.outがあったとする。
...
Frequencies -- -500.7208 -500.7202 ...
...
Frequencies -- 70.2251 104.3229 ...
...
Frequencies -- 172.1303 241.4551 ...
...
次のように " Frequencies --"から始まる行にマッチしたら、...
ひとつずつprintするとよい(NFはその行のフィールド数)
$ awk '/^ Frequencies --/ {for(i=3;i<=NF;i++) print $i}'...
-500.7208
-500.7202
58.3287
...
- cut -d \, -f 19 hogehoge.csv-UTF8N | uniq | sort | uniq...
-- 改行コードはdosでもlinuxでもよい。
- ファイル中の 〇〇GBの数字の和を求める。 -- &new{2022-0...
$ grep GB$ hoge.out | sed 's/^.*://' | sed 's/GB//' | se...
hoge.outとして次のような出力が含まれるとき、上のワンライ...
...
item1: 1.1GB
...
item2: 0.1GB
...
itemN: 1.1GB
...
[補足]
最後の sedの -zオプションは行分割を NULLにし、\nを検索対...
gも必要である(行分割をNULLにしたので1行はデータの末尾ま...
- ファイル中の 〇〇GBの数字の和を求める。こちらのほうがス...
cat hoge.out | sed -n '/GB$/{s/^.*: *//; s/ *GB//; H;}; ...
GB$の行を見つけたら行頭の "itemn: "のところを削除し、" *...
最後の行の処理を終えたら ホールドスペースの内容をパター...
改行を+に置き換えて、出力し、bcで計算する。
- Linux 関連の日本語マニュアル https://linuxjm.osdn.jp/ ...
- grep '^\(//xng[01234]\| xng[01234]\)' vFDMr1pk.out -- ...
- grepではほとんどのメタ文字(\tなど)は使えない -- &new...
- duコマンド
du -a #カレントディレクトリ以下のファイルが表示される
du -al #ハードリンクのファイルは通常ひとつしか表示されな...
find -path '.*' #du -alと同様の表示
- cat -n nameless.c | grep --color=auto '\bdx\b' | grep -...
- grep '% *wt' *.[ch] #正規表現、%とwtの間にスペースが...
- for (( i=0; i<5; i++ )); do echo $i; done #b...
- pukiwiki整形ルールで (( ... )) は注釈になるた...
- echo $PATH | sed 's/:/\n/g' -- &new{2024-09-28 (土) 12...
- watch -n 1 ps ux --forest #psの結果を1秒毎に実行する...
- du --si -sm * #1000単位のMBでサイズを表示 -- &new{202...
- 画像表示のコマンド(pngに限らず) -- &new{2024-10-14 (月...
$ display hoge.png #ImageMagick
$ eog hoge.png #GNOME Image Viewer
- aclocal, autoconf, automake, configureの例 -- &new{202...
$ cat hello.c
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
$ cat configure.ac
AC_INIT([myproject], [1.0], [example@example.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
$ cat Makefile.am
bin_PROGRAMS = hello.x
hello_x_SOURCES = hello.c
以上を作る。次に、
$ aclocal #gives aclocal.m4
$ autoconf #gives configure
$ automake -a -c #gives Makefile.in, compile, depcomp, ...
$ tar cvf myproject-1.0.tar hello.c configure.ac Makefi...
configure Makefile.in acloc...
$ ./configure
$ make
$ ./hello.x
#comment
//-------------------------------------------------------...
* sed [#wb9246ae]
入力は行ごとにパターンスペースに入れられ(末尾の改行は削...
出力される(改行は追加される)。一時的な保存場所であるホ...
利用できる。-nオプション付きの場合、下記のpコマンドで出力...
コマンド
s/検索文字列/置換後文字列/オプション 文字列の置換(...
オプション
g 置換を最後まで行う(g無いときは1回だ...
検索文字列
. 任意の文字
* 直前の文字の0個以上の繰り返し(.*で...
^ 行頭
$ 行末
\(...\) 括弧でくくった部分は、置換後文字列と...
\| または
d 削除(パターンスーペース内)
p 出力する(パターンスペース内)、sed -n で実行した...
G ホールドスペースの内容をパターンスペースに追加(...
h パターンスペースの内容をホールドスペースにコピー
g ホールドスペースの内容をパターンスペースにコピー
H パターンスペースの内容をホールドスペースに追加(...
N 次の入力行をパターンスペースに追加
b [label] labelに分岐する。labelが無ければ末尾に分...
= 行番号を出力する(改行つき)
上記コマンドの前には対象を指定できる
/検索文字列/[!] 検索文字列を含む行を対象、!があ...
行番号[,行番号][!] 入力の行番号(から行番号)の行を...
$は最終行の行番号
;で区切ってコマンドを複数書ける。
{}でコマンドをくくって複数書ける。
例)
sed '1,/^$/d' hogefile #1行目から、2行目以降の空行ま...
sed -n '/GB/p' hogefile #これは grep GB hogefile と同じ...
sed -n '1,2p; /GB/{s/pot/Pot/; s/:/=\t/; p}'
sed -n '1,2{=; p}; /GB/{s/0/a/; N; N; =; p}'
E表現の数値を小数点以下4桁に切り捨てる例)
sed 's/\(-\?[0-9]\.\|-\?\.\)\([0-9]\{4\}\)\([0-9]*\)\...
sed -r 's/(-?[0-9]\.|-?\.)([0-9]{4})([0-9]*)([eEdD][+-]?...
filename内の継続行(バックスラッシュ'\'とこれに続く改行'\...
sed ':a;N;$!ba;s/\\\n//g' filename
(説明)
:a で aというラベルを定義しておく。
N で次の行をパターンスペースに追加し、
$! で最後の行以外の行に対して、次のコマンド(ba)を実行...
最後の行のときにパターンスペース(全ての行が含まれる)に...
[ref] https://qiita.com/gin_135/items/773fec1343a69c9f90d...
man sed も見よ
*** 拡張正規表現 ( sed -r ) [#q456fe3b]
\(, \), \{, \}, \? などは (, ), {, }, ? などと表記する。
その他に使える表現が増える。
//-------------------------------------------------------...
* tree [#ue734189]
リンク・マニュアル
- http://yuusuke1988.hatenablog.jp/entry/2014/01/20/223602
- $ info tree #infoマニュアル(manマニュアルに情報は少な...
例
$ tree --charset=C -I '*.pdb|*.gro|OUT.*|chignolin.*|gen...
| less > temp
$ tree --charset=C -P '*.inp' #-Pは表示するもの。-Iは除...
//-------------------------------------------------------...
* X Window System (Linuxでウィンドウが出る仕組み) [#z9d8d...
X11, X, X Window System, 環境変数DISPLAY, ssh -Y などに関...
- https://qiita.com/pinecode1/items/85590ac7e438781acfe1
- https://www.atmarkit.co.jp/ait/articles/1602/19/news025...
- http://e-words.jp/w/X_Window_System.html
- https://ja.wikipedia.org/wiki/X_Window_System
- https://www.astec-x.com/DOC/CATALOGUE/ASTECX-catalogue1...
** xmodmapの説明 [#na9719e6]
- https://bearmini.hatenablog.com/entry/2013/07/12/161637...
- https://wiki.archlinux.jp/index.php/Xmodmap
コマンド
xen : keycodeなどがわかる
xmodmap : 設定されている modifyer keyがわかる
xmodmap -pke : キー設定のリスト表示
//-------------------------------------------------------...
* sftp [#le5befab]
ローカルコンピュータとリモートコンピュータの間でのファイ...
(ローカルからリモートに転送したいファイルがある場合、
転送したいファイルがあるディレクトリをカレントディレクト...
$ sftp userid@hostname
sftpで使えるコマンド
ls #リモート側のカレントディレクトリのls
lls #ローカル側のカレントディレクトリのls
cd #リモート側のディレクトリを移動
lcd #ローカル側のディレクトリを移動
put file #ローカルからリモート側へファイルを転送する
get file #リモートからローカル側へファイルを転送する
quit #sftpコマンドの終了
pwd #リモート側のpwd
lpwd #ローカル側のpwd
など
//-------------------------------------------------------...
* ssh関係 [#r41c045d]
** X11転送を利用するオプション(ssh接続先で、ウィンドウを...
$ ssh userid@hostname -Y
-YC を指定した場合、通信データが圧縮される。例えば、自宅...
そこそこ速くなる。大学内のコンピュータ間ではほとんど...
-Y オプション使用しなかった場合、環境変数DISPLAYを使用す...
** 接続先のホストキーが変った時 [#m20fae32]
$ ssh hostname として
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
になったとき、いったん
$ ssh-keygen -R hostname
としてから、もしくはsshがサジェストしたコマンドを実行し...
IPアドレスについても同様に削除するとよい。
//-------------------------------------------------------...
* diff [#j6d7e693]
** ふたつのディレクトリ以下の階層を比較する [#m4c5d4bb]
$ diff -r hogehoge1 hogehoge2
使用例)
$ diff -r /save /backup/save | tee output-diffr.log
異なるファイルがわかる。テキストファイルの差分が多量に出...
^Binary
^diff No such file or directory$は除く(シンボリ...
^Only
を検索するとよさそうである。
このように、
$ grep '^Binary\|^diff\|^Only' output-diff.log | grep -v...
| grep -v '\.Plo$\|\.pc$\|\.[oxa]\|\.\(la\|lai\|Po\|mo...
//-------------------------------------------------------...
* find [#r39d7a51]
** ファイルhogehogeよりも新しいファイルをカレントディレク...
$ find . -newer hogehoge -print
** ファイルのリストと、サイズを調べる [#s4a0762c]
(HOGEDIRの部分は . など)
*** $HOGEDIRディレクトリの階層以下で、ファイルの末尾が .t...
(参考) find $HOGEDIR -path '*\.trj'
(参考) find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n"...
find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n" | awk ...
(参考) find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n"...
*** $HOGEDIRディレクトリの階層以下で、ファイルの末尾が ....
find $HOGEDIR -path '*\.trj' -delete
例えば、いくつかの拡張子のファイルを一気に削除する場合
find $HOGEDIR -path '*\.trj' -delete; find $HOGEDIR ...
find $HOGEDIR -path '*\.vti' -delete;
*** execオプションの例 [#be97ee56]
$HOGEDIRディレクトリの階層以下で、ファイルの末尾が .trj...
# {}はヒットしたパス名に置き換わる、\;は -execオプション...
(参考) find $HOGEDIR -path '*\.trj' -exec ls -1 {} \;
** カレントディレクトリ以下の階層で、ファイル名にcmakeが...
http://stackoverflow.com/questions/9680420/looking-for-a-...
# Find and then delete all files under current directory...
# 1. contains cmake (case-&insensitive) in it's path (w...
# 2. name is not CMakeLists.txt
find . -iwholename '*cmake*' -not -name CMakeLists.txt -...
** 複雑な例1 [#pb518002]
find Adir -maxdepth 1 ! -regex '.*ABC.*' -type f -exec...
Adirディレクトリにある、ABC文字列を含むファイル名以外を、...
なお、ディレクトリ名にABCが入っていてはダメ。。。?
** AppleDoubleなどを削除する [#m299ce3b]
削除は確認後にすべし。
find . -path '*/\._*' -delete
find . -path '*/\.AppleDouble' -exec /bin/rm -rf {} \;
find . -path '*/\.DS_Store' -delete
//-------------------------------------------------------...
* dig [#e74ed414]
** ホスト名を逆引きして調べる [#h69301ad]
- -xは逆引き(IPからホスト名)を調べるとき付けるオプション
$ dig -x 133.60.113.208 +short #ホスト名だけ出力
orange.eit.hirosaki-u.ac.jp.
$ dig +noall +answer -x 133.60.113.208 #タイトル無しで...
208.113.60.133.in-addr.arpa. 3600 IN PTR orange.e...
//-------------------------------------------------------...
* gdb [#v174f41a]
** 使い方 [#g0475a40]
プログラムは -g つきでコンパイルしておく。
gdb a.out
> run #走らせる
gdb a.out
> break file.c:216 #ブレークポイントを設置
> run -text input.rst input.rst-text #走らせる(a.outに...
https://www.ois-yokohama.co.jp/oisblog2018/archives/3195 ~
http://www.fos.kuis.kyoto-u.ac.jp/le2soft/siryo-html/node...
https://www.tohoho-web.com/ex/draft/gdb.htm ~
などを見よ
//-------------------------------------------------------...
* awk [#pfbb611a]
** 統計屋のためのAWK入門 [#kd282268]
http://antibayesian.hateblo.jp/entry/2014/09/15/162605
1ライナーで統計処理あり。なお、Linux上ではbashのメタキャ...
awkインタプリタなので、実行はすごく遅い。
(例) 度数分布。binは幅
awk 'BEGIN{ bin=1.0 } { f[ int($1/bin) ]++ } END{ for( i...
//-------------------------------------------------------...
* bc [#jb058769]
** lとsオプションはつけた方がよい [#c6f3585d]
bc -ls とする
- -lで数学関数が使えるようになるし、割り算で小数点以下を...
- -sはPOSIX準拠、移植性のため。
- πを使いたい時は 4*a(1) とする。
** 数学関数の利用方法 [#i84c8f9c]
bc -l とすること(オプション -l)で、標準的な数学関数が使え...
s (x) The sine of x, x is in radians.
c (x) The cosine of x, x is in radians.
a (x) The arctangent of x, arctangent returns rad...
l (x) The natural logarithm of x.
e (x) The exponential function of raising e to t...
j (n,x) The bessel function of integer order n of x.
** 独自の関数を定義 [#re257a36]
例1) log_2 (x)
define lg(x) {
return (l(x) / l(2));
}
例2) 二点間の距離
define dist (x,y,z,u,v,w) {
return sqrt((x-u)*(x-u)+(y-v)*(y-v)+(z-w)*(z-w));
}
例3) 羃乗
define pow (x,y) {
auto k, ans;
ans=1;
for ( k=0; k<y; k++ ) {
ans = ans*x;
}
return ans;
}
その他は man bc を参照のこと
平方根は sqrt( )
1.23e-4 とかの表現できない。 1.23*10^-4 とする。
A,B,C,D,E,Fは16進数の数字であり10,11,12,13,14,15を意味する
(基数が何に設定されてても使えるようだ。入力、出力の基数...
6.62*10^-34 のような値を扱うと、0になってしまう。scale=20...
結果が200桁出て、指数表現できなく、不便 ---> bcではなく、...
//-------------------------------------------------------...
* top [#td1d6d6d]
** リンク [#oe6bc7fc]
[[topコマンドで覚えておきたい使い方14個>https://orebibou....
** バッチモードを使った例 [#kabe732f]
while true; do
for i in 1 2 3 4; do
ssh compute-0-$i "hostname; top -b -n 1 | sed '2,6d'...
done
echo -------------------------------------------------...
sleep 5
done
//-------------------------------------------------------...
* ps [#m52bd359]
** よく使うパターン [#md4df247]
ps uxa --forest
ps ux --forest
ps u $$
ps u -C cmd
オプション・引数
u ユーザ指向のフォーマットで表示
x 自分の全てのプロセス
xa 全てのプロセス
-C cmd コマンド名で指定
--forest ASCIIアートで階層表示
$$ シェル自身のPIDを指定してそれだけ表示
** 出力の見方 [#rd824fa1]
<defunct>マーク~
プロセスはゾンビであることを示す。親プロセスによって正し...
プロセスの状態コード~
D 割り込み不可能なスリープ状態(通常I/O中)
R 実行中又は実行可能状態
S 割り込み可能なスリープ状態
T ジョブ制御シグナルまたはトレースされているために停止...
Z ゾンビプロセス
Fカラム(プロセスフラグ)~
次の値の合計
1 fork された(execは含まず)
4 スーパーユーザー権限を使っている
VSZとRSS
VSZ: プロセスの仮想メモリサイズ(未割当の領域を含むサイ...
RSS: プロセスの常駐メモリサイズ(他のプロセスと共有して...
サイズはいずれも KiB (2014-byte units)
[補足] 未割当の領域=プロセスが確保したがまだ使用されてい...
その後、使用されると物理的に確保される(このときシステム...
** その他 [#b7cfda77]
man ps を参照のこと
//-------------------------------------------------------...
* rsync [#o52103bf]
** 基本的な使い方 [#w4efe1e4]
$ rsync -av -e ssh --delete EPG username@machine:/disk1
EPGディレクトリを、/disk1ディレクトリ内にrsyncする。
(危険注意) EPG ではなく、EPG/ とすると、disk1の中にEPGデ...
元のdisk1が丸ごと削除(disk1に他のファイル・ディレクトリが...
disk1の内容がEPGになるので非常に危ない。
各オプションの意味
-a equivalent to -rlptgoD
-v increase verbosity
-e specify the remote shell to use
--delete delete files that don't exist on the sending s...
-r recurse into directories
-l copy symlinks as symlinks
-p preserve permissions
-t preserve times
-g preserve group
-o preserve owner (root only)
-D preserve devices (root only)
//-------------------------------------------------------...
* cpio [#q42e2894]
** アーカイブに保存するとき [#b1e15e07]
rootで作業する(ファイルのパーミッションを保つため。一般...
# find DIRECTORY | cpio -vo > FILE.cpio #コピーアウト...
-v は表示
** アーカイブから展開するとき [#a13b0ab9]
rootで作業する(アーカイブFILE.cpioにファイルが絶対パスで...
相対パスならカレントディレクトリから相対的に書き込まれる...
# cpio -vidmu < FILE.cpio #コピーインモードと呼ばれる
-v は表示
-d はディレクトリが無ければ作る
-m は日付を保つ
-u は上書きをする(付けない方が無難か)
** アーカイブの中身を見るとき [#u16da6a4]
$ cpio -tv < FILE.cpio
//-------------------------------------------------------...
終了行:
#menu(howto/MenuBar)
* howto/linuxコマンド [#j9ccaf2f]
#contents
** 一行メモ [#mda41b41]
- 他のところにもpsあり。まとめる -- &new{2018-12-05 (水)...
- grep 'method_poisson ' tmpRC0chs/*.inp |sort -t ' ' -k ...
-- 区切りスペースはデフォルト
-- -t ' ' をつけると、数値の並び替えがバグる? -- &new{2...
- ハッシュ値の計算 -- &new{2019-12-02 (月) 16:24:30};
-- md5sum ファイル名
-- sha256sum ファイル名
-- など
- grep や emacs での正規表現での検索で、 | ( ) にエスケー...
GNU grep 2.25 で、pat1またはpat2の検索
$ grep '¥(pat1¥|pat2¥)' file
.frcmodで終わる検索
$ grep '¥.frcmod$' file
GNU emacs24.5.1 で、pat1またはpat2の検索
M-x query-replace-regexp や M-x occur で、条件は
¥(pat1¥|pat2¥)
- ls出力のファイル名の並び順: LANG=en_US.UTF-8 のときは...
- sortで -t ' ' をつけると、数値の並び替えがバグる? -- ...
- grep --color=never #色を付けなくする -- &new{2021-0...
- grep --color=always string file | less -R #色付けでパイ...
- 正規表現(J.E.F.Friedl著,オライリーから. 表6-1抜粋) --...
|CENTER: |CENTER:|CENTER:|CENTER:|CENTER...
| |grep |egrep |emacs |python...
|[...], ^, $ |v |v |v |v |
|\<...\>, \b, \B |v |v |v |v |
|グループ化 |\(...\)|(...) |\(...\)|\(...\)|
|(...)* |v |v |v |v |
|+ or \+ |\+ |+ |+ |+ |
|? or \? |\? |? |? |? |
|{...} or \{...\} 反復回数|\{...\}|{...} |・ |・ |
|\ or \| |\| || |\| |\| |
||||||
||||||
-- 例) 拡張子c,h,l,yのファイルのうち grid~coordを含む行...
ここで ~は任意の1文字以上の文字列。
$ grep 'grid.\+coord' *.[chly]
- moduleコマンド -- &new{2021-12-17 (金) 20:45:46};
ソフトウェアを利用するための環境や、同じソフトウェアでも...
用意したり、削除したりするツールである。それぞれのソフト...
モジュール名(モジュールファイル)で指定された、変数や環境...
module load モジュール名 #モジュールのロード(読み込み)
module unload モジュール名 #モジュールをアンロード
module list #ロードしているモジュールの一覧を表示
module avail #利用可能なモジュールを表示
シェルスクリプト内でこのツールを利用するときには、
source /etc/profile.d/modules.sh などを予め読み込んでお...
[ref] https://qiita.com/Ag_smith/items/f268ad27165a60aecd...
- windows改行コードをlinux改行コードに変換: tr -d '\r' <...
- touch -r reffile hogefile # hogefileの日付を reffileと...
- touch -t 202303071830.00 day202303071830.txt #2023/03/...
- locate 検索文字列 #検索文字列が絶対パスに部分的に一致...
- ふたつのファイル内の数値の違いを調べる。 -- &new{2022-...
ファイルhoge1.outとhoge2.outの中に以下のような数値が出力...
hoge1.out
...
Frequencies -- -500.7208 -500.7202 ...
...
Frequencies -- 70.2251 104.3229 ...
...
Frequencies -- 172.1303 241.4551 ...
...
hoge2.out
...
Frequencies -- -500.4196 -500.4196 ...
...
Frequencies -- 70.1453 104.2697 ...
...
Frequencies -- 173.3204 241.3123 ...
...
$ paste <(grep "Frequencies" hoge1.out | awk '{print $3,...
<(grep "Frequencies" hoge2.out | awk '{print $3,...
| sed 's/\t/\t-\t/' > temp
$ paste temp <(bc < temp)
とすると、
-500.7208 - -500.4196 -.3012
-500.7202 - -500.4196 -.3006
58.3287 - 58.2761 .0526
70.2251 - 70.1453 .0798
104.3229 - 104.2697 .0532
172.1244 - 173.3204 -1.1960
172.1303 - 173.3204 -1.1901
241.4551 - 241.3123 .1428
248.0223 - 248.0306 -.0083
...
と計算できる。各行は、hoge1.outの値、マイナス、hoge2.out...
- 横にも書式付で並んでいる数字を、各数値を一行にして出力...
hoge1.outがあったとする。
...
Frequencies -- -500.7208 -500.7202 ...
...
Frequencies -- 70.2251 104.3229 ...
...
Frequencies -- 172.1303 241.4551 ...
...
次のように " Frequencies --"から始まる行にマッチしたら、...
ひとつずつprintするとよい(NFはその行のフィールド数)
$ awk '/^ Frequencies --/ {for(i=3;i<=NF;i++) print $i}'...
-500.7208
-500.7202
58.3287
...
- cut -d \, -f 19 hogehoge.csv-UTF8N | uniq | sort | uniq...
-- 改行コードはdosでもlinuxでもよい。
- ファイル中の 〇〇GBの数字の和を求める。 -- &new{2022-0...
$ grep GB$ hoge.out | sed 's/^.*://' | sed 's/GB//' | se...
hoge.outとして次のような出力が含まれるとき、上のワンライ...
...
item1: 1.1GB
...
item2: 0.1GB
...
itemN: 1.1GB
...
[補足]
最後の sedの -zオプションは行分割を NULLにし、\nを検索対...
gも必要である(行分割をNULLにしたので1行はデータの末尾ま...
- ファイル中の 〇〇GBの数字の和を求める。こちらのほうがス...
cat hoge.out | sed -n '/GB$/{s/^.*: *//; s/ *GB//; H;}; ...
GB$の行を見つけたら行頭の "itemn: "のところを削除し、" *...
最後の行の処理を終えたら ホールドスペースの内容をパター...
改行を+に置き換えて、出力し、bcで計算する。
- Linux 関連の日本語マニュアル https://linuxjm.osdn.jp/ ...
- grep '^\(//xng[01234]\| xng[01234]\)' vFDMr1pk.out -- ...
- grepではほとんどのメタ文字(\tなど)は使えない -- &new...
- duコマンド
du -a #カレントディレクトリ以下のファイルが表示される
du -al #ハードリンクのファイルは通常ひとつしか表示されな...
find -path '.*' #du -alと同様の表示
- cat -n nameless.c | grep --color=auto '\bdx\b' | grep -...
- grep '% *wt' *.[ch] #正規表現、%とwtの間にスペースが...
- for (( i=0; i<5; i++ )); do echo $i; done #b...
- pukiwiki整形ルールで (( ... )) は注釈になるた...
- echo $PATH | sed 's/:/\n/g' -- &new{2024-09-28 (土) 12...
- watch -n 1 ps ux --forest #psの結果を1秒毎に実行する...
- du --si -sm * #1000単位のMBでサイズを表示 -- &new{202...
- 画像表示のコマンド(pngに限らず) -- &new{2024-10-14 (月...
$ display hoge.png #ImageMagick
$ eog hoge.png #GNOME Image Viewer
- aclocal, autoconf, automake, configureの例 -- &new{202...
$ cat hello.c
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
$ cat configure.ac
AC_INIT([myproject], [1.0], [example@example.com])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
$ cat Makefile.am
bin_PROGRAMS = hello.x
hello_x_SOURCES = hello.c
以上を作る。次に、
$ aclocal #gives aclocal.m4
$ autoconf #gives configure
$ automake -a -c #gives Makefile.in, compile, depcomp, ...
$ tar cvf myproject-1.0.tar hello.c configure.ac Makefi...
configure Makefile.in acloc...
$ ./configure
$ make
$ ./hello.x
#comment
//-------------------------------------------------------...
* sed [#wb9246ae]
入力は行ごとにパターンスペースに入れられ(末尾の改行は削...
出力される(改行は追加される)。一時的な保存場所であるホ...
利用できる。-nオプション付きの場合、下記のpコマンドで出力...
コマンド
s/検索文字列/置換後文字列/オプション 文字列の置換(...
オプション
g 置換を最後まで行う(g無いときは1回だ...
検索文字列
. 任意の文字
* 直前の文字の0個以上の繰り返し(.*で...
^ 行頭
$ 行末
\(...\) 括弧でくくった部分は、置換後文字列と...
\| または
d 削除(パターンスーペース内)
p 出力する(パターンスペース内)、sed -n で実行した...
G ホールドスペースの内容をパターンスペースに追加(...
h パターンスペースの内容をホールドスペースにコピー
g ホールドスペースの内容をパターンスペースにコピー
H パターンスペースの内容をホールドスペースに追加(...
N 次の入力行をパターンスペースに追加
b [label] labelに分岐する。labelが無ければ末尾に分...
= 行番号を出力する(改行つき)
上記コマンドの前には対象を指定できる
/検索文字列/[!] 検索文字列を含む行を対象、!があ...
行番号[,行番号][!] 入力の行番号(から行番号)の行を...
$は最終行の行番号
;で区切ってコマンドを複数書ける。
{}でコマンドをくくって複数書ける。
例)
sed '1,/^$/d' hogefile #1行目から、2行目以降の空行ま...
sed -n '/GB/p' hogefile #これは grep GB hogefile と同じ...
sed -n '1,2p; /GB/{s/pot/Pot/; s/:/=\t/; p}'
sed -n '1,2{=; p}; /GB/{s/0/a/; N; N; =; p}'
E表現の数値を小数点以下4桁に切り捨てる例)
sed 's/\(-\?[0-9]\.\|-\?\.\)\([0-9]\{4\}\)\([0-9]*\)\...
sed -r 's/(-?[0-9]\.|-?\.)([0-9]{4})([0-9]*)([eEdD][+-]?...
filename内の継続行(バックスラッシュ'\'とこれに続く改行'\...
sed ':a;N;$!ba;s/\\\n//g' filename
(説明)
:a で aというラベルを定義しておく。
N で次の行をパターンスペースに追加し、
$! で最後の行以外の行に対して、次のコマンド(ba)を実行...
最後の行のときにパターンスペース(全ての行が含まれる)に...
[ref] https://qiita.com/gin_135/items/773fec1343a69c9f90d...
man sed も見よ
*** 拡張正規表現 ( sed -r ) [#q456fe3b]
\(, \), \{, \}, \? などは (, ), {, }, ? などと表記する。
その他に使える表現が増える。
//-------------------------------------------------------...
* tree [#ue734189]
リンク・マニュアル
- http://yuusuke1988.hatenablog.jp/entry/2014/01/20/223602
- $ info tree #infoマニュアル(manマニュアルに情報は少な...
例
$ tree --charset=C -I '*.pdb|*.gro|OUT.*|chignolin.*|gen...
| less > temp
$ tree --charset=C -P '*.inp' #-Pは表示するもの。-Iは除...
//-------------------------------------------------------...
* X Window System (Linuxでウィンドウが出る仕組み) [#z9d8d...
X11, X, X Window System, 環境変数DISPLAY, ssh -Y などに関...
- https://qiita.com/pinecode1/items/85590ac7e438781acfe1
- https://www.atmarkit.co.jp/ait/articles/1602/19/news025...
- http://e-words.jp/w/X_Window_System.html
- https://ja.wikipedia.org/wiki/X_Window_System
- https://www.astec-x.com/DOC/CATALOGUE/ASTECX-catalogue1...
** xmodmapの説明 [#na9719e6]
- https://bearmini.hatenablog.com/entry/2013/07/12/161637...
- https://wiki.archlinux.jp/index.php/Xmodmap
コマンド
xen : keycodeなどがわかる
xmodmap : 設定されている modifyer keyがわかる
xmodmap -pke : キー設定のリスト表示
//-------------------------------------------------------...
* sftp [#le5befab]
ローカルコンピュータとリモートコンピュータの間でのファイ...
(ローカルからリモートに転送したいファイルがある場合、
転送したいファイルがあるディレクトリをカレントディレクト...
$ sftp userid@hostname
sftpで使えるコマンド
ls #リモート側のカレントディレクトリのls
lls #ローカル側のカレントディレクトリのls
cd #リモート側のディレクトリを移動
lcd #ローカル側のディレクトリを移動
put file #ローカルからリモート側へファイルを転送する
get file #リモートからローカル側へファイルを転送する
quit #sftpコマンドの終了
pwd #リモート側のpwd
lpwd #ローカル側のpwd
など
//-------------------------------------------------------...
* ssh関係 [#r41c045d]
** X11転送を利用するオプション(ssh接続先で、ウィンドウを...
$ ssh userid@hostname -Y
-YC を指定した場合、通信データが圧縮される。例えば、自宅...
そこそこ速くなる。大学内のコンピュータ間ではほとんど...
-Y オプション使用しなかった場合、環境変数DISPLAYを使用す...
** 接続先のホストキーが変った時 [#m20fae32]
$ ssh hostname として
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! ...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@...
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
になったとき、いったん
$ ssh-keygen -R hostname
としてから、もしくはsshがサジェストしたコマンドを実行し...
IPアドレスについても同様に削除するとよい。
//-------------------------------------------------------...
* diff [#j6d7e693]
** ふたつのディレクトリ以下の階層を比較する [#m4c5d4bb]
$ diff -r hogehoge1 hogehoge2
使用例)
$ diff -r /save /backup/save | tee output-diffr.log
異なるファイルがわかる。テキストファイルの差分が多量に出...
^Binary
^diff No such file or directory$は除く(シンボリ...
^Only
を検索するとよさそうである。
このように、
$ grep '^Binary\|^diff\|^Only' output-diff.log | grep -v...
| grep -v '\.Plo$\|\.pc$\|\.[oxa]\|\.\(la\|lai\|Po\|mo...
//-------------------------------------------------------...
* find [#r39d7a51]
** ファイルhogehogeよりも新しいファイルをカレントディレク...
$ find . -newer hogehoge -print
** ファイルのリストと、サイズを調べる [#s4a0762c]
(HOGEDIRの部分は . など)
*** $HOGEDIRディレクトリの階層以下で、ファイルの末尾が .t...
(参考) find $HOGEDIR -path '*\.trj'
(参考) find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n"...
find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n" | awk ...
(参考) find $HOGEDIR -path '*\.trj' -printf "%p\t%s\n"...
*** $HOGEDIRディレクトリの階層以下で、ファイルの末尾が ....
find $HOGEDIR -path '*\.trj' -delete
例えば、いくつかの拡張子のファイルを一気に削除する場合
find $HOGEDIR -path '*\.trj' -delete; find $HOGEDIR ...
find $HOGEDIR -path '*\.vti' -delete;
*** execオプションの例 [#be97ee56]
$HOGEDIRディレクトリの階層以下で、ファイルの末尾が .trj...
# {}はヒットしたパス名に置き換わる、\;は -execオプション...
(参考) find $HOGEDIR -path '*\.trj' -exec ls -1 {} \;
** カレントディレクトリ以下の階層で、ファイル名にcmakeが...
http://stackoverflow.com/questions/9680420/looking-for-a-...
# Find and then delete all files under current directory...
# 1. contains cmake (case-&insensitive) in it's path (w...
# 2. name is not CMakeLists.txt
find . -iwholename '*cmake*' -not -name CMakeLists.txt -...
** 複雑な例1 [#pb518002]
find Adir -maxdepth 1 ! -regex '.*ABC.*' -type f -exec...
Adirディレクトリにある、ABC文字列を含むファイル名以外を、...
なお、ディレクトリ名にABCが入っていてはダメ。。。?
** AppleDoubleなどを削除する [#m299ce3b]
削除は確認後にすべし。
find . -path '*/\._*' -delete
find . -path '*/\.AppleDouble' -exec /bin/rm -rf {} \;
find . -path '*/\.DS_Store' -delete
//-------------------------------------------------------...
* dig [#e74ed414]
** ホスト名を逆引きして調べる [#h69301ad]
- -xは逆引き(IPからホスト名)を調べるとき付けるオプション
$ dig -x 133.60.113.208 +short #ホスト名だけ出力
orange.eit.hirosaki-u.ac.jp.
$ dig +noall +answer -x 133.60.113.208 #タイトル無しで...
208.113.60.133.in-addr.arpa. 3600 IN PTR orange.e...
//-------------------------------------------------------...
* gdb [#v174f41a]
** 使い方 [#g0475a40]
プログラムは -g つきでコンパイルしておく。
gdb a.out
> run #走らせる
gdb a.out
> break file.c:216 #ブレークポイントを設置
> run -text input.rst input.rst-text #走らせる(a.outに...
https://www.ois-yokohama.co.jp/oisblog2018/archives/3195 ~
http://www.fos.kuis.kyoto-u.ac.jp/le2soft/siryo-html/node...
https://www.tohoho-web.com/ex/draft/gdb.htm ~
などを見よ
//-------------------------------------------------------...
* awk [#pfbb611a]
** 統計屋のためのAWK入門 [#kd282268]
http://antibayesian.hateblo.jp/entry/2014/09/15/162605
1ライナーで統計処理あり。なお、Linux上ではbashのメタキャ...
awkインタプリタなので、実行はすごく遅い。
(例) 度数分布。binは幅
awk 'BEGIN{ bin=1.0 } { f[ int($1/bin) ]++ } END{ for( i...
//-------------------------------------------------------...
* bc [#jb058769]
** lとsオプションはつけた方がよい [#c6f3585d]
bc -ls とする
- -lで数学関数が使えるようになるし、割り算で小数点以下を...
- -sはPOSIX準拠、移植性のため。
- πを使いたい時は 4*a(1) とする。
** 数学関数の利用方法 [#i84c8f9c]
bc -l とすること(オプション -l)で、標準的な数学関数が使え...
s (x) The sine of x, x is in radians.
c (x) The cosine of x, x is in radians.
a (x) The arctangent of x, arctangent returns rad...
l (x) The natural logarithm of x.
e (x) The exponential function of raising e to t...
j (n,x) The bessel function of integer order n of x.
** 独自の関数を定義 [#re257a36]
例1) log_2 (x)
define lg(x) {
return (l(x) / l(2));
}
例2) 二点間の距離
define dist (x,y,z,u,v,w) {
return sqrt((x-u)*(x-u)+(y-v)*(y-v)+(z-w)*(z-w));
}
例3) 羃乗
define pow (x,y) {
auto k, ans;
ans=1;
for ( k=0; k<y; k++ ) {
ans = ans*x;
}
return ans;
}
その他は man bc を参照のこと
平方根は sqrt( )
1.23e-4 とかの表現できない。 1.23*10^-4 とする。
A,B,C,D,E,Fは16進数の数字であり10,11,12,13,14,15を意味する
(基数が何に設定されてても使えるようだ。入力、出力の基数...
6.62*10^-34 のような値を扱うと、0になってしまう。scale=20...
結果が200桁出て、指数表現できなく、不便 ---> bcではなく、...
//-------------------------------------------------------...
* top [#td1d6d6d]
** リンク [#oe6bc7fc]
[[topコマンドで覚えておきたい使い方14個>https://orebibou....
** バッチモードを使った例 [#kabe732f]
while true; do
for i in 1 2 3 4; do
ssh compute-0-$i "hostname; top -b -n 1 | sed '2,6d'...
done
echo -------------------------------------------------...
sleep 5
done
//-------------------------------------------------------...
* ps [#m52bd359]
** よく使うパターン [#md4df247]
ps uxa --forest
ps ux --forest
ps u $$
ps u -C cmd
オプション・引数
u ユーザ指向のフォーマットで表示
x 自分の全てのプロセス
xa 全てのプロセス
-C cmd コマンド名で指定
--forest ASCIIアートで階層表示
$$ シェル自身のPIDを指定してそれだけ表示
** 出力の見方 [#rd824fa1]
<defunct>マーク~
プロセスはゾンビであることを示す。親プロセスによって正し...
プロセスの状態コード~
D 割り込み不可能なスリープ状態(通常I/O中)
R 実行中又は実行可能状態
S 割り込み可能なスリープ状態
T ジョブ制御シグナルまたはトレースされているために停止...
Z ゾンビプロセス
Fカラム(プロセスフラグ)~
次の値の合計
1 fork された(execは含まず)
4 スーパーユーザー権限を使っている
VSZとRSS
VSZ: プロセスの仮想メモリサイズ(未割当の領域を含むサイ...
RSS: プロセスの常駐メモリサイズ(他のプロセスと共有して...
サイズはいずれも KiB (2014-byte units)
[補足] 未割当の領域=プロセスが確保したがまだ使用されてい...
その後、使用されると物理的に確保される(このときシステム...
** その他 [#b7cfda77]
man ps を参照のこと
//-------------------------------------------------------...
* rsync [#o52103bf]
** 基本的な使い方 [#w4efe1e4]
$ rsync -av -e ssh --delete EPG username@machine:/disk1
EPGディレクトリを、/disk1ディレクトリ内にrsyncする。
(危険注意) EPG ではなく、EPG/ とすると、disk1の中にEPGデ...
元のdisk1が丸ごと削除(disk1に他のファイル・ディレクトリが...
disk1の内容がEPGになるので非常に危ない。
各オプションの意味
-a equivalent to -rlptgoD
-v increase verbosity
-e specify the remote shell to use
--delete delete files that don't exist on the sending s...
-r recurse into directories
-l copy symlinks as symlinks
-p preserve permissions
-t preserve times
-g preserve group
-o preserve owner (root only)
-D preserve devices (root only)
//-------------------------------------------------------...
* cpio [#q42e2894]
** アーカイブに保存するとき [#b1e15e07]
rootで作業する(ファイルのパーミッションを保つため。一般...
# find DIRECTORY | cpio -vo > FILE.cpio #コピーアウト...
-v は表示
** アーカイブから展開するとき [#a13b0ab9]
rootで作業する(アーカイブFILE.cpioにファイルが絶対パスで...
相対パスならカレントディレクトリから相対的に書き込まれる...
# cpio -vidmu < FILE.cpio #コピーインモードと呼ばれる
-v は表示
-d はディレクトリが無ければ作る
-m は日付を保つ
-u は上書きをする(付けない方が無難か)
** アーカイブの中身を見るとき [#u16da6a4]
$ cpio -tv < FILE.cpio
//-------------------------------------------------------...
ページ名: