てぃーだブログ › ノウハウ祭り

【PR】

  

Posted by TI-DA at

2017年10月01日

Linux trapコマンド

trapコマンド

31までのシグナルの意味を下記に掲示します。

シグナル名 シグナル番号 機能
EXIT 0 シェルプログラムが正常に終了
SIGHUP 1 ハングアップ
SIGINT 2 割り込み(ユーザーが割り込みキーを押したとき)
SIGQUIT 3* 中止
SIGILL 4* 不法な命令
SIGTRAP 5* トレーストラップ
SIGIOT 6* IOT 命令
SIGEMT 7* EMT 命令
SIGFPE 8* 浮動小数点の例外
SIGKILL 9 強制終了(キャッチすることも無視することもできない)
SIGBUS 10* バスエラー
SIGSEGV 11* セグメンテーション違反
SIGSYS 12* システムコールに対する無効な引数
SIGPIPE 13 読み取りが行われていないパイプへ書き込んだ
SIGALRM 14 アラームクロック
SIGTERM 15 ソフトウェア終了シグナル(killによる強制終了)
SIGURG 16@ ソケット上に緊急事態が存在する
SIGSTOP 17+ 中断 (キャッチすることも無視することもできない)
SIGTSTP 18+ キーボードから発生した中断シグナル
SIGCONT 19@ 中断後の継続
SIGCHLD 20@ 子プロセスのステータスが変化した
SIGTTIN 21+ 制御端末からバックグラウンド入力がされた
SIGTTOU 22+ 制御端末からバックグラウンド出力がされた
SIGIO 23@ ディスクリプタ上での入出力が可能 (fcntl(2) 参照)

SIGXCPU 24 CPU タイムの制限を超過した (setrlimit(2)参照)
SIGXFSZ 25 ファイルサイズの制限を超過した (setrlimit(2) 参照)
SIGVTALRM 26 仮想タイムアラーム (setitimer(2) 参照)
SIGPROF 27 プロファイリングタイマアラーム (setitimer(2) 参照)
SIGWINCH 28@ ウィンドウサイズの変更
SIGUSR1 30 ユーザ定義シグナル 1
SIGUSR2 31 ユーザ定義シグナル 2

上記のリストでアスタリスク (*) が付けられているシグナルは、
キャッチも無視もされない場合には、コアイメージを生成します
  
タグ :trapLinux


Posted by kumix at 14:59Comments(0)シェル

2017年08月27日

SSHでbashコマンド解禁にする

■SSHでbashコマンド解禁にする
1. chshコマンド実行

$ chsh
user のシェルを変更します。
Password: ←パスワードを入力


Enter the new value, or press returen for the default.
Login Shell [/bin/rbash]: /bin/bash ←「/bin/bash」を入力

Shell changed. ←と出てくれば、変更OK

2. bashコマンド実行

$ bash
  


Posted by kumix at 20:21Comments(0)シェル

2013年02月13日

2013年02月11日

2012年09月07日

シェルの区切り文字を改行コードのみにする

参考サイト: http://d.hatena.ne.jp/n9d/20090313/1236912316
-----------------------------------------------------------------------
$ cat a
foo bar buzz
foo bar buzz
foo bar buzz

$ (for i in `cat a`;do echo ${i}; done)
foo
bar
buzz
foo
bar
buzz
foo
bar
buzz

$ (IFS=$'\n';for i in `cat a`;do echo ${i}; done)
foo bar buzz
foo bar buzz
foo bar buzz

$ for i in `cat a`;do echo ${i}bbb; done
foobbb
barbbb
bbbz
foobbb
barbbb
bbbz
foobbb
barbbb
bbbz

-----------------------------------------------------------------------
デフォルト(改行、タブ、空白)に戻すには
IFS="$'\n'$'\t' "  


Posted by kumix at 23:32Comments(0)シェル

2012年09月07日

dateコマンドでX日前の年月日を出す

参考サイト: http://shellscript.sunone.me/date.html
-----------------------------------------------------------------------
1日前の日付データを出力
$ date -d '1 days ago'
2012年 9月 6日 木曜日 23:10:09 JST
-----------------------------------------------------------------------
1か月の日付データを出力
$ date -d '1 months ago'
2012年 8月 7日 火曜日 23:10:30 JST
-----------------------------------------------------------------------
2012年3月31日から1日前の日付データを出力
$ date -d '2012-03-31 1 days ago'
2012年 3月 30日 金曜日 00:00:00 JST

$ date -d '2012-3-31 1 days ago'
2012年 3月 30日 金曜日 00:00:00 JST
-----------------------------------------------------------------------

-----------------------------------------------------------------------
前月が31日ない月は出力が変になるので注意。
$ date -d '2012-3-31 1 months ago'
2012年 3月 2日 金曜日 00:00:00 JST

$ date -d '2012-5-31 1 months ago'
2012年 5月 1日 火曜日 00:00:00 JST
-----------------------------------------------------------------------
これだとエラーになるけど
$ date -d '1 day ago'
-bash: $: コマンドが見つかりません

こっちはsがなくても動くのね
$ date -d '2012-3-31 1 month ago'
2012年 3月 2日 金曜日 00:00:00 JST
-----------------------------------------------------------------------
月の2桁出力方法
$ date -d '2012-05-31 1 months ago' '+%m'
05

月の1桁出力方法
$ date -d '2012-05-31 1 months ago' '+%-m'
5
  


Posted by kumix at 23:18Comments(0)シェル

2012年09月07日

lsでdateコマンドで使えるタイムスタンプを出力する

参考先: man lsのマニュアル
-------------------------------------------------------------------------
$ ls --full-time
-rwxr-xr-x 1 user None 27150 2012-02-06 22:59:45.000000000 +0900 [.exe
-rwxr-xr-x 1 user None 18958 2012-04-24 23:22:08.000000000 +0900 addftinfo.exe
-rwxr-xr-x 1 user None 165866 2012-04-24 23:22:06.000000000 +0900 afmtodit
-rwxr-xr-x 1 user None 1786 2011-11-15 10:01:09.000000000 +0900 apropos
-rwxr-xr-x 1 user None 18446 2012-02-06 22:59:05.000000000 +0900 arch.exe
-rwxr-xr-x 2 user None 90126 2011-12-04 07:26:03.000000000 +0900 ash.exe
lrwxrwxrwx 1 user None 8 2012-08-28 14:42:01.579520000 +0900 awk -> gawk.exe
-rwxr-xr-x 1 user None 9742 2012-04-14 10:50:16.000000000 +0900 banner.exe
-rwxr-xr-x 1 user None 26126 2012-02-06 22:59:05.000000000 +0900 base64.exe
-rwxr-xr-x 1 user None 17422 2012-02-06 22:59:05.000000000 +0900 basename.exe
-rwxr-xr-x 1 user None 536078 2011-02-26 08:01:28.000000000 +0900 bash.exe

-------------------------------------------------------------------------
日付の形式がそのままdateコマンドに使える状態になっているので
cutや、awkで日付だけ区切って渡せばよい。

  


Posted by kumix at 23:05Comments(0)シェル

2012年08月28日

JavaでCSVファイルを読み込む

参考サイト: http://www.atmarkit.co.jp/fjava/javatips/063java003.html
-------------------------------------------------------------------------

package javatips;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.StringTokenizer;

public class ReadCSV {
public static void main(String[] args) {
try {
File csv = new File("writers.csv"); // CSVデータファイル

BufferedReader br = new BufferedReader(new FileReader(csv));

// 最終行まで読み込む
String line = "";
while ((line = br.readLine()) != null) {

// 1行をデータの要素に分割
StringTokenizer st = new StringTokenizer(line, ",");

while (st.hasMoreTokens()) {
// 1行の各要素をタブ区切りで表示
System.out.print(st.nextToken() + "\t");
}
System.out.println();
}
br.close();
} catch (FileNotFoundException e) {
// Fileオブジェクト生成時の例外捕捉
e.printStackTrace();
} catch (IOException e) {
// BufferedReaderオブジェクトのクローズ時の例外捕捉
e.printStackTrace();
}
}
}
  


Posted by kumix at 15:00Comments(0)Java

2012年08月28日

Javaでコマンドプロンプトのコマンド実行

参考サイト: http://allabout.co.jp/gm/gc/80624/2/
------------------------------------------------------------------------------------------------

public static void main(String[] args) {
String result;
try {
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("CMD.EXE /C DIR c:\\windows\\");
InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
while ((result = br.readLine()) != null) {
System.out.println(result);
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
  


Posted by kumix at 14:46Comments(0)Java

2012年08月25日

Apache Commons Net

公式サイト: http://commons.apache.org/net/
参考サイト: http://www.syboos.jp/java/doc/jakarta-commons-net-ftpclient.html

------------------------------------------------------------------------------------------------

package com.test.ftp;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;

public class FtpClientHelper {
    private static final int FTP_PORT = 21;

public static void main(String[] args) {
    try {
        //ファイルアップロード
        FileInputStream fis = new FileInputStream("c:\testftp.txt");

        FtpClientHelper.sendFile("localhost", FTP_PORT, "testuser", "testpassword",
                "remoteFilename", fis);

        //ファイルダウンロード
        FileOutputStream fos = new FileOutputStream("localfile");
        FtpClientHelper.retrieveFile("localhost", FTP_PORT, "testuser", "testpassword",
                "remoteFilename", fos);

    } catch (Exception e) {
        e.printStackTrace();
    }
}

//ファイルアップロード
public static void sendFile (String host,
        int port,
        String user,
        String password,
        String remoteFilename,
        InputStream is
        ) throws Exception {
    FTPClient ftpclient = new FTPClient();

    try {
        //指定するホスト、ポートに接続します
        ftpclient.connect(host, port);
        int reply = ftpclient.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            //接続エラー時処理
            Exception ee = new Exception("Can't Connect to :" + host);
            throw ee;
        }

        //ログイン
        if (ftpclient.login(user, password) == false) {
            // invalid user/password
            Exception ee = new Exception("Invalid user/password");
            throw ee;
        }

        //ファイル転送モード設定
        ftpclient.setFileType(FTP.BINARY_FILE_TYPE);
        //ftpclient.cwd("filetype=pdf");

        //ファイル転送
        ftpclient.storeFile(remoteFilename, is);
        //"ファイル転送完了

        // ファイル受信
        FileOutputStream fos = new FileOutputStream("localfile");
        ftpclient.retrieveFile("remotefile", fos);

    } catch (IOException e) {
        //TODO エラー処理
        throw e;
    } finally {
        try {
            ftpclient.disconnect(); //接続解除
        } catch (IOException e) {
        }
    }

}

//ファイルダウンロード
public static void retrieveFile(String host,
        int port,
        String user,
        String password,
        String remoteFilename,
        OutputStream os) throws Exception {
    FTPClient ftpclient = new FTPClient();

    try {
        //指定するホスト、ポートに接続します
        ftpclient.connect(host, port);
        int reply = ftpclient.getReplyCode();
        if (!FTPReply.isPositiveCompletion(reply)) {
            //接続エラー時処理
            Exception ee = new Exception("Can't Connect to :" + host);
            throw ee;
        }

        //ログイン
        if (ftpclient.login(user, password) == false) {
            // invalid user/password
            Exception ee = new Exception("Invalid user/password");
            throw ee;
        }

        //ファイル転送モード設定
        ftpclient.setFileType(FTP.BINARY_FILE_TYPE);
        //ftpclient.cwd("filetype=pdf");

        // ファイル受信
        ftpclient.retrieveFile(remoteFilename, os);

    } catch (IOException e) {
        //TODO エラー処理
        throw e;
    } finally {
        try {
            ftpclient.disconnect(); //接続解除
        } catch (IOException e) {
        }
    }
}
}
  


Posted by kumix at 02:39Comments(0)Java

2005年08月17日

メモリ

【FROM】
EEPROM(Electric Erasable Programmable Memory)
電気的に消去(書き換え)できるROM。電源を切ってもデータは消えない。データの消去には5Vより高い電圧が必要だが、最近のEEPROMは内部で電源電圧の5Vを昇圧しているため、基板に実装したままデータを消去して書き換えるのが容易になった。そのためシステムの動作中にデータを書き換えることができる。ただEEPROMには、およそ数十万~百万回までしか、消去/書き換えができないという欠点がある。さらにEEPROMはそのデータを1bitだけ書き換えるときにも、すべてのbitをいったん消去して書き換えなければならないため、RAMのようにランダムな読み書きは困難。この欠点を改良したのがフラッシュメモリである。

構造上、メモリセルがビット線に対して並列に接続されるNOR型、
直列に接続されるNAND型に分けられ、NOR型は高速に向き、NAND型は高集積に向くとされている。

【フラッシュメモリ】
電気的に消去(書き換え)できるROM。電源を切ってもデータは消えない。EEPROMを改良したメモリで、ブロック単位で消去/書き込みができるようになっている。
EEPROMと同様に消去/書き込み回数には上限があるため、特定のブロックに書き込みが集中しないよう、ハードウェアまたはソフトウェアで対処する必要がある。

構造上、メモリセルがビット線に対して並列に接続されるNOR型、
直列に接続されるNAND型に分けられ、NOR型は高速に向き、NAND型は高集積に向くとされている。

【SRAM】
SRAM(Static Random Access Memory)
電源を切れば消えてしまう半導体メモリ。
擬似SRAMは、電源OFFでも、メモリに対して電源供給しつづけている。(はず)
このため、移動機の電池が完全になくなると、データが消去されてしまうことがある。
(マニュアルにもそう書かれているはず)

4~6個のトランジスタで構成されたメモリセルでbitの情報を記憶するRAM。DRAMのようなリフレッシュの必要はない。DRAMに比べると、SRAMはアクセスタイムを大幅に高速化できるので、PC互換機では外部キャッシュによく使われる。また消費電力についても、速度さえ落とせばDRAMよりはるかに小さくできるため、バッテリバックアップの必要なRAMにも利用される。  
タグ :メモリROMRAM


Posted by kumix at 13:52Comments(0)組み込み系