ASi

unix

logrotate は 圧縮後ファイルに元のファイルの mtime を設定するっぽいな

というより、gzip の動作だな。 https://manpages.ubuntu.com/manpages/xenial/ja/man1/zcat.1.html

find で grep

(for file in $(find [dir] -type f); do cat $file | grep "search word"; if test $? == 0 ;then echo found in $file; fi; done;)

bash shell script で連想配列、関数に配列の引数、子プロセス起動とwait、子プロセスで起動した関数内の$$の内容

shell script で連想配列が使えるとは今日知った… マルチプロセスの起動と待ちも簡単。multiprocess.sh #!/bin/sh # $1 # 子プロセスで呼び出される関数の名前。$1に下記の配列の要素が個々に渡る。 # # $2 # 配列のgrobal変数の名前。引数として解釈する。 …

Cygwinのlessで日本語

export LESSCHARSET=dos

diff / patch

diff -cr original/source modified/source > diff.txt patch --binary -p1 -c -i diff.txt diff -ur なら patch -u にする。 --binary は Cygwin 環境下で改行コード設定に依っては付けないと 改行コードが変わってしまう。 -p<n> は patch 時に無視する親ディ</n>…

シェルスクリプトの変数IFS

これを変えるとリストのセパレータを変えられるんだが、実際これを使って、例えば find のオプションのセットをリストにして変数代入し、for で回したりすると、 find: unknown predicate `-name "brabra" -type d' などと言われてしまう。 うーむ。

シェルスクリプトで関数を作る

function(){ echo $1 $2 } function arg1 arg2

sed の コマンドの区切り文字

s/aaa/bbb/ と書くあれ。 s*aaa*bbb* などと、s(コマンド)の直後の文字は何でもいいらしい。知らなかったわ…

シェルスクリプトのログとエラー処理

( ( // 処理 ) && echo success. || echo fail. ) 2>&1 | tee log.txt

findで検索したファイル個々にコマンドを実行する

例えばカレント下の .svn をすべて消したい場合は find ./ -name ".svn" -exec rm -rf {} \; 特定のパスのファイルを除外したい場合は -prune -or を使う。 find \ -path ./aaa -prune -or \ -path ./bbb -prune -or \ -name overview.html -type f \ -exec …

Linuxでログイン時に"You are required to change your password immediately (root enforced)"と毎回パスワードの変更を要求される時

RTCを設定する。U-Bootなら >> date 0907182210 <--- 2010/09/07 18:22 (MMDDhhmm[[CC]YY][.ss])Linux上なら date 0907182210 hwclock --systohchwclock でハードにアクセスできない環境では U-Boot で設定しないと記憶されないかもしれない。

apt-get install で Segmentation fault

# rm /var/cache/apt/pkgcache.bin # rm /var/cache/apt/srcpkgcache.bin # apt-get update これで、pkgcache.bin と srcpkgcache.bin が新たに生成され、Segfaultしなくなった。

netcat

こんな事をしたい時、 nc -q 10 www.somewhere.com 80 "-q 10" のようにウェイトを入れないと、リモートからの受信が完了する前に終了してしまう。なかなかこれについて語っているサイトが見つからず苦労した。結局 man nc してちゃんと読んで解決。

他のログインユーザーのプロセスの強制終了

下記の例では強制的にログアウトさせている $ who user1 pts/0 2010-09-07 15:57 (xxxx.net) user2 pts/1 2010-09-07 16:02 (yyyy.net) $ ps ax | grep pts/0 2103 pts/0 Ss 0:00 login -h xxxx.co.jp -p 2179 pts/0 S+ 0:00 -bash ...snip... $ sudo kill 2…

Cygwin/X と Ubuntu10 と gnome

Cygwin/X で Linux等unix系os に繋ぎ、root window を隠して使うと非常に便利である。リモートの Linuxマシンで Eclipse を走らせ GCCでクロスコンパイルを、などの作業が Windowsネイティブのアプリと遜色ない描画速度で使える。その時、さらに gnome のメ…

Ubuntu10.04でEclipseのツールチップの色が

黒の背景に黒の文字になってしまい、見えない。で、同じことに困った人の記事を発見。 http://blog.goo.ne.jp/atlanto/e/c1a433dda8443fd4844eda92b25ea4d1 Ubuntuの設定を変えて対処。 Ubuntuの設定では、黒背景には白文字になっているのだが、Eclipseが背…

シェルスクリプトで子プロセスもkillする方法

http://www.koba206.com/dev-wiki/2008/12/kill.html

シェルスクリプトの特殊変数

http://www.k4.dion.ne.jp/~mms/unix/shellscript/shell_para.html

Linuxの設定ファイル

ログインスクリプト /etc/bash.bashrc /home//.bash.bashrc 反映は source /etc/bash.bashrc 起動時の最後(ログインプロンプトの直前)に呼ばれる /etc/rc.local (/etc/rc.d/rc.local) ネットワークの設定、IPなど /etc/network/interfaces iface eth0-0 inet…

シェルスクリプトでCTRL-Cをトラップする方法

http://nanabit.net/blog/2010/01/25/bash-confirm-quit-sigint/

scpコマンド

scp file user@machinename_or_ip:file

LinuxでWave LAN

最近はWiFiと言う事の方が多い。 デバイスが既に認識されていれば、ssidとWEP keyをセットし、 > iwconfig wlan0 essid 000AAA key s:012ABC DHCPならIPを要求すれば、 > dhclient -d wlan0繋がる。 アクセスポイントの検索は、 > iwlist wlan0 scan

ftpd のアカウント

Ubuntuでは、 /etc/ftpusers にftpのアクセス制限の設定ファイルがある。 ここにLinuxのユーザーアカウントを並べると、ftpでログオンできなくなる。

ubuntuのrootアカウントを有効化

ubuntu はデフォルトではrootが無効化してある。 Q/Aにあった。rootユーザのパスワードを設定/変更/有効化するにはどうすればいいですか? # sudo passwd rootrootのユーザアカウントを無効化するにはどうすればいいですか? # sudo passwd -l rootまぁubuntu…

Centosでifconfigを実行する方法

[someone@centos nano]$ su - パスワード: [root@centos ~]# ifconfig と、"su -" として "-" を付けないと使えない。"-" は "--login" と同意らしいので、おそらくパスの関係なのだろう