ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

LINUX初心者です。お願いいたします。

windows上からTeratermでLINUX上のファイルをviで開き、開いたファイルの内容をコピーして、WINDOWS上のテキストファイルにペーストしたいと考えています。
困っていますのは、コピーしたい内容がTERATERM上でスクロールをしなければならない程多いため、単純に、TERATERM上で通常のWINDOWSで行うように、マウスのカーソルでコピーしたい内容を選択して、コピー&ペーストができません。
viのヤンク(nyy)しても、viで開いているファイル上ではペーストできますが、WINDOWS上のテキストファイルにはペーストできません。
どうすれば、TERATERM上でスクロールするほど多いテキスト内容をWINDOWS上のテキストファイルにコピーできるのでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (5件)

>ファイルを開いた後、検索して対象部分を決めてから、



検索ですが決まったキーワードがあれば、grep/egrepコマンドを使用すれば一致した行が出力されますが、ギガバイト単位のファイルだとどうしても結構時間は掛かりますね。

-------8<-------8<-------8<-------8<-------
>TeraTermのスクロールバーを動かしてコピーしたい部分の最初まで戻り、その部分にマウスカーソルを持って行き、左ボタンを押しながら選択して下まで持っていく
-------8<-------8<-------8<-------8<-------

と自分で書いておきながら良く考えたら、質問でお書きになっている「通常のWINDOWSで行うように、マウスのカーソルでコピーしたい内容を選択して、コピー&ペースト」が出来るという事ですね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

とりあえず、こんな感じで試して見ます。

cat /home/hoge/app/debug.log | grep -A 300 ERROR | more

> 自分で書いておきながら良く考えたら、質問でお書きになっている「通常のWINDOWSで行うように、マウスのカーソルでコピーしたい内容を選択して、コピー&ペースト」が出来るという事ですね。

そのとおりです。

お礼日時:2005/04/23 22:31

#1の者です。



ファイルのサイズがあまりにも巨大ですね。
先の回答にもあった通り、e?grep、tail等のテキスト処理フィルタ、awk、perl等のスクリプト言語を用いて必要な条件の内容を抽出してしまうのも方法のひとつかと思います。

しかし、GBものテキストファイルであれば、gzipやbzip2で圧縮後、FTPすれば多少は転送効率も高くなるかもしれません。

そもそも、TeraTermでcatしてること自身、FTPしてるのと替わりないのではないでしょうか?
    • good
    • 0
この回答へのお礼

御回答ありがとうございました。

>しかし、GBものテキストファイルであれば、gzipやbzip2で圧縮後、FTPすれば多少は転送効率も高くなるかもしれません。

基本的なことがわかっていないのですが、gzipのファイルはWindows上でも開けるのでしょうか。gzipはLINUX特有のものかと思っていました・・・明日、試してみます。

>そもそも、TeraTermでcatしてること自身、FTPしてるのと替わりないのではないでしょうか?

たしかに、フィルタを何もせずに、catすると、ものすごく遅かったので、FTPでコピーするのと、あまり変わらないかも知れません。フィルタをかけてcatしてどのくらい速くなるかがポイントと思っています。あまり変わらなければ、検討し直しです。

お礼日時:2005/04/24 16:55

TERATERMのメニュー、ファイルでログを取るようにしておいて、catすればいいのでは?

    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

>TERATERMのメニュー、ファイルでログを取るようにしておいて

TERATERMのログについては、初めて知りました、試してみたいと思います。ただし、ファイルがGバイト単位の膨大なため、catコマンドを投げても、すぐに返ってきますでしょうか。

質問ばかりで申し訳ございません。

お礼日時:2005/04/23 17:36

TeraTerm(scroll buffer指定で大きめの行数を設定)上でcatコマンドでファイルを表示し、TeraTermのスクロールバーを動かしてコピーしたい部分の最初まで戻り、その部分にマウスカーソルを持って行き、左ボタンを押しながら選択して下まで持っていくとスクロールしながら選択されていくのでコピーしたい最後部分までマウスカーソルを持って行き左ボタンを離すと反転されて選択されていると思います。



その状態でテキストエディタでペースト(貼り付け)するとTeraTermで選択した部分をペースト出来ると思います。

文章で書いちゃうと分かり難いかもしれませんが、感じは伝わりましたかね?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

ファイルがGバイト単位であるため、catコマンドで開くと、すごく遅くて結局開けませんでした。

ファイルを開いた後、検索して対象部分を決めてから、そこから、

>TeraTermのスクロールバーを動かしてコピーしたい部分の最初まで戻り、その部分にマウスカーソルを持って行き、左ボタンを押しながら選択して下まで持っていく

としたいのですが、どうすればよろしいのでしょうか。

>文章で書いちゃうと分かり難いかもしれませんが、感じは伝わりましたかね?

伝わりました。

お礼日時:2005/04/23 17:30

ネットワークでつながっているコンピュータのテキストデータであれば、Windowsのエディタで直接読み込んだほうが効率いいのではないでしょうか?


または、FTP等でファイル転送してしまうとか、わざわざコピー&ペーストするのにこだわらなくても済むと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

>ネットワークでつながっているコンピュータのテキストデータであれば、Windowsのエディタで直接読み込んだほうが効率いいのではないでしょうか?

たしかに、ファイルサイズが小さい場合は、WINSCP、もしくは、FFTP等でlinuxから直接ファイルを読み込む方がいいと思います。実際、今までそうしておりました。しかし、ファイルサイズがGバイト単位になってきますと、開くのが遅くなり効率が悪いため、方法を変える必要があります。そこで今回の質問をさせていただきました。

お礼日時:2005/04/23 17:18

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QTeraTermでファイルの中身をコピーする

TeraTermでtelnetしてlinuxにログインし、viエディタであるファイルを開き、その中身を全部(部分)コピーしたいのですが、やはり選択するという形でしかコピーできないのでしょうか?ファイルの中身がでかすぎるとずっと上や下に選択し続けなければならないので時間がかかってしまいます。何か良い方法はありませんでしょうか?ご存知の方、宜しくお願いします。

Aベストアンサー

TeraTermでtelnetしてlinuxにログインしたのち、
メニューの File->Logを選択してください。
その後、目的のファイルをcat コマンドなどで画面に表示してください。
その内容が、(Terataermを起動したPCの)ログファイルに書き込まれます。
後は、そのログファイルをカット&ペーストしてください。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

Qgrepで検索文字列が完全一致した行だけ取り出す方法

grepの文字列検索で検索文字列が単語として、完全一致した行だけ取り出す方法はないでしょうか?

通常は
grep hoge hoge.txt

と打つと、hogeが含まれる行が出力されますが、今回は含まれる行ではなくて完全に文字列が一致した行だけ取り出したいのです。

例えばhoge.txtの中に
cc ghoge
kkl hogem
jjll hoge
という3行があったとしたら最後の行でhogeという文字が空白で区切られた行だけ取り出したいのです。

何かよい方法があれば教えてください

Aベストアンサー

-w オプションじゃだめですか?

参考URL:http://www.linux.or.jp/JM/html/GNU_grep/man1/grep.1.html

Qsedの置換文字に変数を使用したいのですが・・・

あるファイルの特定の文字を変換し、上書きをする処理を行いたいのですが、sedの置換文字に変数が渡せなくて困っています。

例:
X="a"
Y="b"
echo test.txt | sed 's/${X}/${Y/g}' >test.txt

sedでは置換文字に${X}といった変数を使用することはできないのでしょうか?

Aベストアンサー

' ・・・' で囲まれた中の$はそのままドルマークです。変数展開をするなら、'・・・'で囲んではいけません。

何も囲まないか、"・・・"で囲むかです。

Q~以外を削除する場合(rmコマンド)

linuxのコマンドで
~以外のファイル、ディレクトリを全て削除したい時は
どのような記述をすれば良いのでしょうか?
シェルスクリプトではなくrmコマンド1つで削除したのいですが…

例: tar以外のファイル・ディレクトリを
   すべて削除したい場合など

どなたかご存知の方がいらっしゃったら
教えてください。よろしくお願い致します。

Aベストアンサー

rm コマンドのみという訳にはいきませんが基本的なコマンドを組み合わせると実現可能と思います。

「名前が tar で終わるもの以外のファイル・ディレクトリを削除する」場合だと

ls | grep -v -E 'tar$' | xargs rm -r

となります。

ファイルの一覧を取得し ( ls )
'tar'で終わるもの以外を抽出し ( grep )
その結果を rm -r の引数に指定して実行 ( xargs )

という流れです。

ファイルを削除するような操作については失敗するとダメージが大きいので、事前にテストして動作を確認すると良いとおもいます。また rm -r -i としてそれぞれのファイルについて、削除の問い合わせをするのも有効です。

QLinuxでツリー状にディレクトリィを表示するコマンドってありますか?

プロセスをツリー状に表示されるコマンドにpstreeというものがありますが、ディレクトリィをツリー状に表示されるコマンドはあるでしょうか?
ご存知あれば教えていただければ幸いです。

Aベストアンサー

> treeというコマンドを打っても「bash: tree: command not found」と表示されます。manコマンドで確認しましたけどコマンドが存在しませんでした。

tree commandがinstallされていないだけですね。
ftp://mama.indstate.edu/linux/tree/tree-1.5.0.tgz
からとって、makeするか、debianなら、
apt-get install tree
で入ります。

Q2つの項目が重複するレコードを抽出する方法はありますか?

MySQL4.1で既存データに対し複合キーを新しく設定したいのですが、

ALTER TABLE `test` ADD PRIMARY KEY (`a`,`b`)

としても重複データが存在する為、作成できませんでした。

10万件あるテーブルから重複するレコードを手動で削除したいのですが、aとbが重複しているレコードだけ抽出するSQL文はありますでしょうか?

Aベストアンサー

select * from `test`
where (a,b) in(
select a,b from `test`
group by a,b
having count(*)>1)

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。

QNTPで同期が始まらない

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntpq -pの結果は下記となります。

remote refid st t when poll reach delay offset jitter
==============================================================================
133.100.9.2 .INIT. 16 u - 64 0 0.000 0.000 4000.00
130.69.251.23 .GPS. 1 u 27 64 377 8.015 -99970. 17262.6

同期ができれば「remote」列に「*」が表示されると思っています。
何か設定が足りないでしょうか?。
尚、「/vat/log/message」をtailしてますが特にエラーは無さそうです。

よろしくお願いします。

こんにちは。
度々すみません、NTPの設定をしましたがどうも同期が始まりません。

「ntpdate 130.69.251.23」と手動同期は成功します。
しかしntpデーモンを起動し1時間以上放置しても同期されません。
※外部タイムサーバー参照としてます

ntp.confは下記のとおりです。
---------------------------------------------------
server 133.100.9.2 # clock.nc.fukuoka-u.ac.jp
server 130.69.251.23
driftfile /var/lib/ntp/drift
---------------------------------------------------

でntp...続きを読む

Aベストアンサー

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハードウエアclockを合わせます。
http://www.linux.or.jp/JM/html/util-linux/man8/hwclock.8.html

○ntpdの動作
ntpによる時刻調整は、調整幅が通常128mSと小さいので、1時間は様子をましょう。
2時間程度経過しても、時刻修正の兆候が見られない場合ハードウェアの不良も考えられます。

時刻調整の兆候としては、
・logファイルに 一時間毎に調整したメッセージが書かれる。
Jan 7 21:57:40 ntpd[91145]: offset 0.000994 sec freq -190.802 ppm error 0.000076 poll 8
・ntpq -p の出力の最初の桁に"*,+"が付く。また、reach が377になる。
% ntpq -np
remote refid st t when poll reach delay offset jitter
+192.168.0.102 GPS_NMEA(0) 2 u 3 32 377 0.926 -0.330 0.023
*192.168.0.192 GPS_NMEA(1) 2 u 10 32 377 0.747 -0.336 0.023
192.168.0.9 PPS(1) 2 u 3 32 377 0.757 6.559 0.161


○その他
・PC起動時には、システムクロックを計測してその後の動作の基準にしていますが、
CMOSバッテリ不足やハードウェアに何らかの異常があるととんでもない時刻を示すことがあります。(要修理です)
・BIOSの時計も起動時の初期時刻として使われてしまうので、ある程度合わせておいた方がいいです。

#4のqaaqです。

○ntp.conf 関連
server 行に "iburst" を付けておきましょう。
server ntp.nict.jp iburst <--こんな感じになります。

ntp サーバ起動時の時刻調整の収束時間が早くなります。
http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=ntp.conf&dir=jpman-5.4.0%2Fman&sect=0

○ntpdate での時刻調整
ntpdate -b -u [サーバ名] を複数回実行して、"offset の値が0.1以下"になるまで、強制的に時刻調整して下さい。

○ハードウエアclockの修正
hwclock -w コマンドでハ...続きを読む

Qシェルスクリプトの実行、「source」と「.」の違いについて

bashのシェルスクリプトを書いています。
当方、Mac Snow Leopard を使っているため、seq コマンドがデフォルトでは使えません。
そこで、.bashrc 内に、seq 関数をあらかじめ自分で定義して、他で使い回したいと思っています。
.bashrc の中に、
function seq() {
i=$1
while [ $i -le $2 ] ; do
echo $i
let i=$i+1
done
}
と、関数を定義しました。
seq 関数をターミナル上で実行すると、
>seq 0 2
0
1
2
と正しく、表示されます。次に、

#!/bin/sh
seq 0 2

と記述したシェルスクリプト(temp.sh)を「source」で実行すると、
>source temp.sh
0
1
2
と正しく、表示されますが、「.」で実行すると、
>./temp.sh
./temp.sh: line 2: seq: command not found
と言われます。
どのような理由によってこの違いが出るのでしょうか??

bashのシェルスクリプトを書いています。
当方、Mac Snow Leopard を使っているため、seq コマンドがデフォルトでは使えません。
そこで、.bashrc 内に、seq 関数をあらかじめ自分で定義して、他で使い回したいと思っています。
.bashrc の中に、
function seq() {
i=$1
while [ $i -le $2 ] ; do
echo $i
let i=$i+1
done
}
と、関数を定義しました。
seq 関数をターミナル上で実行すると、
>seq 0 2
0
1
2
と正しく、表示されます。次に、

#!/bin/sh
seq 0 2

...続きを読む

Aベストアンサー

追記

source は現在のシェルで実行し、結果がそのまま現在のシェルに適応されます。
今回の temp.sh なら
> source temp.sh

> seq 0 2
と入力したのと同等ということになります。

> ./temp.sh
この . はコマンドではなく、 temp.shへのパスを指定するものです。
実行ファイル名だけでコマンドとして実行できるのは、環境変数PATHで指定したディレクトリにあるものだけです。それ以外は、その実行ファイルへの絶対パス、または相対パスが必要となります。
これは、カレントディレクトリにある実行ファイルも例外ではありません。
環境変数PATHに . が無い場合は、 ./ファイル名 と相対パスを指定する必要があります。
(この点は、常に . がPATHにあるように振る舞うMS-DOSやコマンドプロンプトとは違います)
逆に、PATH上にあれば(例えば、 PATH=$HOME/bin:(以下略)となっている時の $HOME/bin )、 temp.sh とファイル名だけで実行できます。

また、こうしたコマンドは新規プロセスで実行されますので、環境変数を除いて、現在の設定は継承されません。
対話的ではないbashや、 shとして起動された bash は .bashrcを読まないので、そこに書いてあることは無効となります。

追記

source は現在のシェルで実行し、結果がそのまま現在のシェルに適応されます。
今回の temp.sh なら
> source temp.sh

> seq 0 2
と入力したのと同等ということになります。

> ./temp.sh
この . はコマンドではなく、 temp.shへのパスを指定するものです。
実行ファイル名だけでコマンドとして実行できるのは、環境変数PATHで指定したディレクトリにあるものだけです。それ以外は、その実行ファイルへの絶対パス、または相対パスが必要となります。
これは、カレントディレクトリにある実行...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング