• 締切済み

Linuxでキーボードに割り当てられたデバイスファイル(/dev/?)はありますか?

Linuxで、標準入力をファイルなどキーボードの他に割り当てたときに、別にキーボードから入力を取りたいです。 (エラー処理など) そのために、/dev/?でキーボードに割り当てられたないかと探しているのですが、ないでしょうか? もしあれば教えていただきたいです。 また、なにか他によい方法があれば教えていただきたいです。 よろしくお願いします。

みんなの回答

  • astronaut
  • ベストアンサー率58% (303/516)
回答No.2

訂正.手が滑った. 仮想コンソールの切り替えは Ctrl + Alt + F2 などです.

全文を見る
すると、全ての回答が全文表示されます。
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

仮想コンソールでは,標準入出力は /dev/tty* とか /dev/pty* とか,まあ使用する端末の種類によって変わりますが. プログラム実行中に他の仮想コンソールからキーボード 入力したい場合は,ctrl+F2, ctrl+F3 ... などで端末 を切り替えられます. まあ,こういう質問が出るということは,X は動かしていないんでしょうけど,ネットワークに接続されていればリモートからの操作もできますね. これ以上のことは,もちっと具体的に状況がわからないと…

hogehogeninja
質問者

補足

エラーログを解析するperlスクリプトを書いているのですが、標準入力にログファイルを入れて、標準出力に結果を吐き出すパイプ処理をする、フィルターのようなものを書いています。 その際、解析する範囲が膨大なときは警告を発してチェックするようにしたいのですが、標準入力以外で対話する方法がわかりません。(あるでしょうか?) なにかよい方法があればと探しているのですが。。 やはり、パイプ処理か、チェック機能のどちらかをとらないとることになるのでしょうか。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • /dev/stdin

    /dev/stdin/ の利用価値を教えてください。 いまいちありがたみがわからないのです。 cat /dev/stdin と入れてみて、「a」と入力すると同じ文字が次の行で表示されました。 #cat /dev/stdin a ←自分で入力 a ←自動で表示された。 ★実行プログラムが標準入力や標準出力に対応していなくでもファイル名を指定するときに これらのファイルを指定することで、標準入出力に対応できます。 パイプやヒアドキュメントをつかって便利に使えるようになりますよ。 というblog記事も見つかったのですが いまいち、ピンと来ないのです。 /dev/stdin を使うとどんなメリットがあるのでしょうか ご教授お願いします。

  • デバイスファイルに書き込むこと

    カテゴリに迷いましたが、 Linuxにおいて/dev以下のディレクトリにデバイスファイルがありますが、最近勉強しはじめたのですが、open()やwrite(),read()を使ってデバイスファイルに対して読み書きしているプログラムをよく見かけるのですが、 質問は デバイスファイルを 「1.開く」 「2.読み書きする」 ということは内部でどのような処理を行っているのでしょうか? この辺はなんとなくでしかわかっていないので質問させていただきました。よろしくお願いします。

  • Ubuntuでlibc6-devのインストールが出来ません

    Ubuntu 7.04を使用しています。 プログラム開発環境を整える為に、 libc6-devをインストールしようとしたのですが 行き詰まってしまいました。 ネットを見て最初はapt-getでやろうとしたのですが、 # apt-get install libc6-dev パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています Reading state information... 完了 パッケージ libc6-dev はデータベースには存在しますが、利用できません。 おそらく、そのパッケージが見つからないか、もう古くなっているか、 あるいは別のソースからのみしか利用できないという状況が考えられます E: パッケージ libc6-dev にはインストール候補がありません 上記のようなエラーが出ました。 なのでもう少し調べたところdebianからdebファイルを 落としてインストールした方がいたので、 公式よりファイルをダウンロードしてdpkgを実行したところ # dpkg -i libc6-dev_2.3.2.ds1-22sarge6_i386.deb 未選択パッケージ libc6-dev を選択しています。 (データベースを読み込んでいます ... 現在 114229 個のファイルとディレクトリがインストールされています。) (libc6-dev_2.3.2.ds1-22sarge6_i386.deb から) libc6-dev を展開しています... dpkg: 依存関係の問題により libc6-dev の設定ができません: libc6-dev は以下に依存 (depends) します: libc6 (= 2.3.2.ds1-22sarge6) ...しかし: システム上の libc6 のバージョン は 2.5-0ubuntu14 です。 libc6-dev は以下に依存 (depends) します: linux-kernel-headers ...しかし: パッケージ linux-kernel-headers はまだインストールされていません。 dpkg: libc6-dev の処理中にエラーが発生しました (--install): 依存関係の問題 - 設定を見送ります 以下のパッケージの処理中にエラーが発生しました: libc6-dev このようなエラーが出て行き詰まってしまいました。 この場合依存しているファイルをインストールしてから、 再度libc6-devをインストールすればよいのでしょうか?

  • /dev/nullを削除できない

    OS:Redhat Linux ES 5.0 /dev/nullファイルのパーミッションがcrw-rw-rw- からsrwxr-xr-xに 変わってしまい、mknodで作り直そうと思いましたが、どうしても /dev/nullファイルを削除できませんので作り直せない状態です。 # rm -rf /dev/null <-エラーメッセージはない #ls -l /dev/null -rw-r--r-- 1 root root 0 7月 17 11:36 /dev/null <-パーミッションが変わっている #mknod -m 666 /dev/null c 1 3 mknod: `/dev/null': ファイルが存在します # どのようにすれば/dev/nullを作り直せるのでしょうか?

  • awkで、キーボードからファイルを指定するには

    私は、awkプログラムを始めたばかりの初心者です。 データファイルがfile1、file2、file3とあって、どのファイルを実行させたいかをキーボードから入力させるには、どのようにすればよいのでしょうか。 次のようなプログラムを作ったのですが、うまくいきません。 { printf "ファイル名?" > "/dev/stderr"#画面表示 getline < "/dev/stdin" #数字入力 aaa = $0 #aaaに代入 } { getline < ("file"aaa".txt") #ファイル入力 print $0 #レコードを出力 } これを、バッジファイルで次のように実行をかけて、「結果.txt」に出力する。 jgawk -f prog.awk con > 結果.txt すると、コマンド画面が消えず、エラーとなってしまいます。 バッジファイルに問題があるのでしょうか。 「-f」の後には、プログラム名、データ名>出力ファイル名 とやるようですが、この場合、データ名が決まっていないわけで、キーボード入力したいのだから、「con」でいいのでしょうか。 プログラムを実行させるのに、ほかに良い方法があるのでしょうか。

  • /dev/nullについて

    社内で運用しているサーバにputtyからログインした時、 -bash: /dev/null: Permission denied というメッセージが表示されました。 サーバーのOSは、CentOS release 6.5 (Final)です。 /dev/nullがレギュラーファイルになっているのが原因らしく、以前にも同様の問題が発生しました。 それで、原因を特定するように依頼されたのですが、知識がなく困っております。 crontab 等でメッセージを表示させないようにするために、 「コマンド > /dev/null 2>&1」というような書き方をすることは知っていたのですが、 この方法はネットで紹介されていたりするため、これが原因になっているとは思えません。 恥ずかしいことにそれ以外にどこで使用されているのか分かりません。 他に/dev/nullに対して何か処理をさせるようなものをご存じないでしょうか? どんなものでも構いませんので、ご協力をお願いいたします。

  • /dev/hda と /dev/hda1

    /dev/hda と /dev/hda1 はそれぞれどのような位置を指しているのでしょうか? 例えば、grub-install /dev/hda (つまり、MBR にインストール) とやった場合と grub-install /dev/hda1 (Linux パーティションの最初のセクタ) とやった場合では、GRUB がインストールされる位置が異なるようです。 プライマリ・マスタ・ディスクの先頭にあるパーティションの最初のセクタ=MBR だと思っていたのですが、 # dd if=/dev/hda of=mbr.dat count=1 bs=512 # dd if=/dev/hda1 of=top.dat count=1 bs=512 # diff -c mbr.dat top.dat とやると、2つのファイルは異なっているようですので、/dev/hda の最初の 1 ブロックと /dev/hda1 の最初の 1 ブロックは異なっているようです。 例えば、/dev/hda の 1 ブロックの直後に /dev/hda1 の 1 ブロックが来ているなどの構造について教えていただけないでしょうか。(URL 参照でも構いません) また、ブートローダを /dev/hda1 にインストールしてしまった場合、/dev/hda1 が空っぽでなかったとすると、/dev/hda1 の最初のセクタにあったデータが壊れてしまう等の問題が発生する可能性はあるのでしょうか? よろしくお願いいたします。

  • Fedora18で/dev/ram0の作り方

     Fedora 18で意図せず、RAMディスクを作るためのデバイスファイル/dev/ram0を壊してしまいました。他の方法でRAMディスクを作ることはできましたが、この/dev/ram0を作り直す方法はあるのでしょうか。ご存知の方がいらっしゃいましたら、よろしくお願いします。

  • キーボード入力をテキストファイルにする方法

    NETBSDをappleコンピュータLC525で使っています。 MS-DOSでテキストファイルを作るときに、たとえばcopy con config.sysとしてキーボード入力をテキストファイルにしたり、copy con auxとしてプロッターにhp-glコマンドを送ったりする方法がありますが、unixではこれに相当するキーボード入力を処理する方法はありますか? 実は、/etc/fstabという設定ファイルを書き間違えて、次に起動したところviがテンポラリーファイルが作成できないというエラーメッセージを返してくるようになり、設定を直したくても直しようがありません。 よろしくお願いします。

  • /dev/ptyファイルはどうやって作るの

    FreeBSD初心者です(2ヶ月:FreeBSD 10.0-RELEASE)。 開発環境を構築しようと思い、dddをインストールしたのですがうまくいきません。 1.dddを起動すると: $> ddd gdb: cannot open master pty: そのようなファイルまたはディレクトリはありません gdb: communication setup failed メッセージが表示され、dddウインドウは表示されますが(gdb)プロンプトがいつまで経っても表示されません。 2.dddとgdbの通信を確立できないようで、ログファイルを参照しても: Running GDB (pid xxxx, tty /dev/ptyXX)... などのgdb起動完了のメッセージがありません。 3.デバッグ $> gdb ddd によりgdb上でdddを起動し、原因を調査すると: /dev/ptyXX ファイルをオープンしようとしているが失敗する、という現象のようです。 実際に/devディレクトリには"pty*"ファイルは存在しません。 4.webや「FreeBSDハンドブック」を参照すると、『MAKEDEVを使ってデバイスファイルを作成する』...『MAKEDEVスクリプトは削除された、代わりにmknodを使え』...『devfs......』.....等と書いてありますが、mknodあたりからどうしたらよいのか判らなくなりました。 デバイスファイル(/dev/pty)の作成方法をご教授ください。