viの保存終了方法とは?

このQ&Aのポイント
  • viの保存終了方法について調査した結果、以下の4つの方法があることがわかりました。
  • ZZ: 作業中のファイルを保存して終了
  • :q!: 未保存の変更を破棄して終了
回答を見る
  • ベストアンサー

viの保存終了の方法。

いつも教えて頂きありがとうございます。 標記の件。 書籍を調べましたが解かりません。 書籍に依りますと ZZ  作業中のファイルを保存して終了 :q    作業中のファイルを保存しないで終了(未変更のとき) :q!   未保存の変更を破棄して終了 :w file ファイル名(file) とありました。 下記を実行しました。           記 //named.conf for Red Hat caching-nameserver // options { version "unknown"; directory "/var/named"; allow-query { localhot; localnets; }; allow-recursion { localhot; localnets; }; allow-transfer { localhot; localnets; }; forwarders {192.168.51;192.168.52; }; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; logging { category lame-servers { null; }; }; view "internal"{ match-clients { localnets; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.rpa"; }; zone "centos.orz" { type master; file "centos.org.local"; }; }; include "/etc/rndc.key"; ZZ -- INSERT -- これで「ZZ」を入れても保存終了にならないようです。 どうぞご教示ください。 宜しくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

viは編集モードから抜けるには、必ず「:」を押すことが必要。 保存して終了は、 :wq[enter] こころは、write after quit viコマンド一覧表 http://yamabito.main.jp/linux/vi_commands.htm

offikou
質問者

お礼

ご回答ありがとうございます。 なるほど write after quit ですね。 勉強になります。 今後共、宜しくお願い申し上げます。

その他の回答 (5)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.6

「挿入モード」という考え方もあるけど, もう 1つ ・i や a などは「ESC まで」が 1つのコマンド という考え方もある.

offikou
質問者

お礼

ご回答誠にありがとうございます。 そう考えると理解しやすいという事ですね。 慣れれば自分の理解しやすいやり方で できそうな気が致します。 今後とも宜しくお願い申し上げます。 ありがとうございました。

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.5

ESCを押してから、ZZ。 この操作の意味は、お読みになれた書籍に書かれているかと。

参考URL:
http://www.google.co.jp/search?hl=ja&q=vi+mode+input+esc&lr=lang_ja
offikou
質問者

お礼

ご回答誠にありがとうございます。 「ESCを押してから、ZZ。」 そう書いて頂ければ簡単明瞭です。 書籍には余計な事が書かれていて 要点が解かりにくいのです。 本当にありがとうございます。 また、どうぞ宜しくお願い申し上げます。

  • notnot
  • ベストアンサー率47% (4848/10261)
回答No.4

viには、インサートモード(打った文字がファイルに順に入っていく)と、コマンドモードがあります。 ZZ や :w :q :q! などはコマンドモードで打ちます。 インサートモードからコマンドモードに変えるのはESCキーです。

offikou
質問者

お礼

ご回答誠にありがとうございます。 私の書籍に依りますと 1.画面モード 2.画面挿入モード 3.コマンドモード 4.テキスト入力モード があると書いてありました。 あまり書籍は解かり易いとは思えません。 やはり経験者から自分の状況の打開策を聞くと よく解かります。 ただ、理屈抜きにインサートモードと コマンドモードだけを覚えておけばOKという 気が致します。 幸い、5名の方からご回答を頂きました。 皆様のアドバイスを参考にして 私のやり易いリズムを見つけようと思います。 どうぞまた宜しくお願い申し上げます。 ありがとうございました。

  • adbarg
  • ベストアンサー率53% (1134/2108)
回答No.2

エディターモードではダメで、コマンドモードでZZなのでは? つまり、ESCキーを押してから ZZでは? ちなみに私は、:wq ですけど… ZZって使ったことがありません。

offikou
質問者

お礼

ご回答誠にありがとうございます。 幸い、5名の方からご回答を頂きました。 皆様のアドバイスを参考にして 私のやり易いリズムを見つけようと思います。 どうぞまた宜しくお願い申し上げます。 ありがとうございました。

回答No.1

wq

offikou
質問者

お礼

ご回答誠にありがとうございます。 どうぞまた宜しくお願い申し上げます。

関連するQ&A

  • DNSが起動できない

    /etc/rndc.keyがあることは確認済みです。 -rw-------. 1 named root 77 5月 31 07:33 2013 rndc.key vi /var/named/chroot/etc/named.conf // // named.conf for Red Hat caching-nameserver // options { version "unknown"; directory "/var/named"; allow-query { localhost; localnets; }; allow-recursion { localhost; localnets; }; allow-transfer { localhost; localnets; }; forwarders { }; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; logging { category lame-servers { null; }; }; view "internal"{ match-clients { localnets; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa"; }; zone "11.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa"; }; zone "centos.orz" { type master; file "centos.orz.local"; }; }; include "/etc/rndc.key"; エラーメッセージError in named configuration: /etc/named.conf:18: unknown key 'rndckey' よろしくお願いします。

  • # vi /var/named/chroot/・・

    いつも教えて頂きありがとうございます。 標記の件。 [root@localhost ~]# vi /var/named/chroot/etc/named.conf を実行致しました。 先ほど // // named.conf for Red Hat caching-nameserver // options { version "unknown"; directory "/var/named"; allow-query { localhost; localnets; }; allow-recursion { localhost; localnets; }; allow-transfer { localhost; localnets; }; forwarders { xxx.xxx.xxx.xx1; xxx.xxx.xxx.xx2; }; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; logging { category lame-servers { null; }; }; view "internal"{ match-clients { localnets; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa"; }; zone "centos.orz" { type master; file "centos.orz.local"; }; }; include "/etc/rndc.key"; を書く途中でzzで終了したつもりでした。 やはりviを知らないためおかしなメッセージが出ました。 下記です           記 E325: ATTENTION Found a swap file by the name "/var/named/chroot/etc/.named.conf.swp" owned by: root dated: Sat Feb 5 20:13:50 2011 file name: /var/named/chroot/etc/named.conf modified: YES user name: root host name: localhost.localdomain process ID: 5133 While opening file "/var/named/chroot/etc/named.conf" (1) Another program may be editing the same file. If this is the case, be careful not to end up with two different instances of the same file when making changes. Quit, or continue with caution. (2) An edit session for this file crashed. If this is the case, use ":recover" or "vim -r /var/named/chroot/etc/named.c onf" to recover the changes (see ":help recovery"). If you did this already, delete the swap file "/var/named/chroot/etc/.named. conf.swp" to avoid this message. "/var/named/chroot/etc/named.conf" [New File] Press ENTER or type command to continue どう対処すればいいでしょうか? ご回答の程、宜しくお願い申し上げます。

  • IPアドレスが一つの時のnamed.confの設定

    Bindの参考書を見ると、named.confにおける逆引きの ゾーンファイルの設定が zone "0.168.192.in-addr.arpa" IN { type master; file "0.168.192.in-addr.arpa.db"; }; 等となっていますが、私の場合サーバのIPアドレスが一つ(DNS,WWW,MAIL全て共通)しかありません。その場合、上記ゾーンファイルの設定は zone "1.0.168.192.in-addr.arpa" IN { type master; file "1.0.168.192.in-addr.arpa.db"; }; のようにするべきでしょうか?違うところは、 0.168.192 を 1.0.168.192 としただけです。 よろしくお願いします

  • BIND 複数ドメインでのDNS設定法

    現在固定IP1つサーバー(WEB・Mail・DNS・FTP)1台で複数ドメインを取得しDNS設定をしたいと思っています。 ------------------- ネームサーバー名は一つで(例:ns.foo.com)全てのドメインで取り扱いたいのですが、どのようにしたら良いか分かりません。 named.confに各ドメインを登録して、zoneファイルを追加してみたのですが、うまくいきません。 #name.conf zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; allow-update { none; }; }; zone "foo.com" IN { type master; file "foo.com.zone"; allow-update { none; }; }; zone "*.*.*.219.in-addr.arpa" IN { type master; file "*.*.*.219.in-addr.arpa"; allow-update { none; }; }; zone "aaa.com" IN { type master; file "aaa.com.zone"; }; #--- aaa.com.zone----------------------- $ttl 38400 aaa.com. IN SOA ns.foo.com. info.aaa.com. ( 1114172395 10800 3600 864000 38400 ) aaa.com. IN NS ns.foo.com. www.aaa.com. IN A 127.0.0.1 #------------------------------------------ こんな感じで設定してみました。 素人で申し訳ございません。 宜しくお願いします。

  • DNSがstatus: SERVFAILになります。

    どうしてもこちらの http://www.cman.jp/network/support/nslookup.html サイトでdig(nslookup)テストすると status: SERVFAIL,と出てしまいます。 何か設定に問題があるのでしょうか。 *****.jpをドメイン検索するとプライマリ、セカンダリともに変更済みになっています。 が、ホスト名、IPアドレスともに取得できませんでした。 iptable、firewallともにポート53 TCP,UDP開放済みです。 サーバOS CentOS5.1 以下、named.confの設定です。 // // named.conf for Red Hat caching-nameserver // acl internal{ 127.0.0.1; 192.168.100.0/24; }; options { version "unknown"; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; query-source port 53; query-source-v6 port 53; allow-query { internal; }; allow-recursion { internal; }; allow-transfer { xxx.xxx.xxx.x; }; forwarders{ 192.168.100.1; aaa.aaa.aa.aaa; aaa.aaa.a.a; }; }; // // a caching only nameserver config // controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; logging { category lame-servers { null; }; }; view "internal" { match-clients { internal; }; recursion yes; zone "." IN { type hint; file "named.ca"; }; zone "0.0.127.in-addr.arpa" { type master; file "0.0.127.in-addr.arpa"; allow-transfer { xxx.xxx.xxx.x; }; }; zone "100.168.192.in-addr.arpa" { type master; file "100.168.192.in-addr.arpa"; allow-transfer { xxx.xxx.xxx.x; }; }; zone "*****.jp" { type master; file "*****.jp.local"; allow-transfer { xxx.xxx.xxx.x; }; }; }; view "external" { match-clients { any; }; recursion no; zone "*****.jp" { type master; file "*****.jp.zone"; allow-transfer { xxx.xxx.xxx.x; }; }; }; include "/etc/rndc.key"; 以下、各ゾーンファイルの設定です。 ■ファイル名:0.0.127.in-addr.arpa $TTL 86400 @ IN SOA ns1.*****.jp. root.*****.jp. ( 2008052702 ;Serial 28800 ;Reflesh 7200 ;Retry 604800 ;Expire 86400 ;Minimum ) IN NS ns1.*****.jp. 1 IN PTR localhost. ■ファイル名:100.168.192.in-addr.arpa $TTL 86400 @ IN SOA ns1.*****.jp. root.*****.jp. ( 2008052702 ;Serial 28800 ;Reflesh 7200 ;Retry 604800 ;Expire 86400 ;Minimum ) IN NS *****.jp. 2 IN PTR *****.jp. ■ファイル名:*****.jp.local $TTL 86400 @ IN SOA ns1.*****.jp. root.*****.jp. ( 2008052702 ;Serial 28800 ;Reflesh 7200 ;Retry 604800 ;Expire 86400 ;Minimum ) IN NS ns1.*****.jp. IN MX 10 mail.*****.jp. @ IN A 192.168.100.2 * IN A 192.168.100.2 mail IN A 192.168.100.2 ■ファイル名:*****.jp.zone $TTL 86400 @ IN SOA ns1.*****.jp. root.*****.jp. ( 2008053005 ;Serial 28800 ;Reflesh 7200 ;Retry 604800 ;Expire 86400 ;Minimum ) IN NS ns1.*****.jp. IN MX 10 mail.*****.jp. @ IN A oo.ooo.ooo.oo * IN A oo.ooo.ooo.oo www IN A oo.ooo.ooo.oo mail IN A oo.ooo.ooo.oo @ IN A qqq.qqq.qq.qqq * IN A qqq.qqq.qq.qqq www IN A qqq.qqq.qq.qqq *****.jp. IN TXT "v=spfi a mx ~all" ※oo.ooo.ooo.ooとqqq.qqq.qq.qqqは固定IPアドレスです。 初心者な私ですが、どうかご教授宜しくお願いいたします。

  • 名前解決について

    Vine3.2なのですが、resolv.conf が無くても bindを起動すると、同サーバが名前解決ができる ことに気がつきました。 なぜでしょうか? 上記とは関係ないとは思いますが、 キャッシュサーバとして動くように named.conf は zone "." IN { type hint; file "named.ca"; }; zone "localhost" IN { type master; file "localhost"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" IN { type master; file "local.rev"; allow-update { none; }; }; としています。 以上、よろしくおねがいいたします。

  • BIND設定(長文)

    /etc/named.confの設定が下記のようになっています。 options { directory "/var/named"; allow-query{ 172.0.0.1; 192.168.24.0/24; }; }; controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; }; }; acl local{ { 192.168.24.0/24; 127.0.0.1; }; }; logging{ channel all_log { file "alllog.text"; severity dynamic; print-time yes; }; category default{ default_syslog; all_log; }; }; //view "local" { // match-clients { // local; // }; //zone "." IN { // type hint; // file "named.ca"; //}; //zone "localhost" IN { // type master; // file "localhost.zone"; // allow-update { none; }; //}; //zone "0.0.127.in-addr.arpa" IN { // type master; // file "named.local"; // allow-update { none; }; //}; zone "abc" IN { type master; file "kuma"; }; zone "24.168.192.in-addr.arpa" IN { type master; file "gyaku"; }; include "/etc/rndc.key"; このような状態で別のPCよりこのDNSへyahoo等問い合わせ(NSLOOKUP)すると答えが返ってきます。 別のサーバを参照しているのかな?って電源を切るとエラーが当然、返ってきます。 zoneファイル「kuma」にはプライベートが記載されていますが、abcを問い合わせると外部IPが返ってきます。 何故?「.」「localhost」を//でコメントアウトしているのに回答が返ってくるのでしょうか? ご教授いただけますか?

  • CentOS 5.4

    CentOS 5.4 Bind 9.3.6-4 bindの設定に挑戦しておりまして、わからない所があり質問させていただきます。 現在、会社で1つドメインを取り、レンタルサーバー(xrea.com)でHPを公開し、そのレンタルサーバーで社員分のメールアカウントを発行し使用しています。 仮にドメインをaaa.comとするとします。 公開しているサイトのURLは、http://www.aaa.comおよびhttp://aaa.comで閲覧できるようになっています。 やりたい事はを列挙します。 ・HP公開はレンタルサーバーでそのまま外部公開する。 ・メールアカウントはレンタルサーバーのメールサーバーでそのまま使用する。 ・内部のローカルネットに接続している各社員にaaa.comドメインでホスト名を割り振りたい。 ・内部で活用するためlinuxサーバー(192.168.24.5)を立てて、そのサーバーのホスト名もaaa.comドメインで解決できるようにしたい。 この希望を満たしつつ各社員のPCのインターネットおよび内部ホストの名前解決を正しくできるようにbindの設定を行っていますが、 行き詰ってしまいました。 以下にnamed.confとzoneファイルを記します。 ////////////////////////////////////////////////////////////////named.confここから acl localnet { 192.168.24.0/24; 127.0.0.1; }; options { listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; allow-query-cache { localhost; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; view "local" { match-clients { localnet; }; recursion yes; zone "." { type hint; file "named.ca"; }; zone "aaa.com" { type master; file "named.aaa.local"; }; zone "0.0.127.in-addr.arpa" { type master; file "named.0.0.127.in-addr.arpa"; }; zone "24.168.192.in-addr.arpa" { type master; file "named.24.168.192.in-addr.arpa"; }; }; view "world" { match-clients { any; }; allow-query { any; }; recursion no; zone "aaa.com" { type master; file "named.aaa"; }; }; //named.confここまで どこがいけないのかご指導いただけないでしょうか?

  • BINDで異なるドメインの問合せ

    お世話になっております。 BIND9.9.2で試験用にDNSを構築しようとしています。 Windows系のPC2台を使って、 pc1.example pc2.example というドメインを作りました。 各PCの中で、自分自身の名前解決はできているようなのでが、 相互に名前解決させることができません。 例えば、 pc1から dig @127.0.0.1 pc1.exampleと打てば、 ;; AUTHORITY SECTION: pc1.example. 3600 IN NS pc1.example. と返ってくるのですが、 dig @127.0.0.1 pc2.exampleとやっても、 ;; ANSWER SECTION:以降が出てきません。 Windowsファイアウォールでは、TCP/UDPの53は開けてあります。 解決のヒントなどをいただけるとありがたいです。 named.confの設定は以下のとおりです。 options { directory "C:\windows\SysWOW64\dns\etc"; allow-query{ 127.0.0.1; 192.168.95.11;←pc1のアドレス 192.168.98.12;←pc2のアドレス }; recursion yes; forwarders{ 192.168.98.12; ←pc2のアドレス }; }; zone "." { type hint; file "named.root"; }; //include "named.special.zones"; zone "localhost" { type master; file "localhost/fwd"; allow-update { none; }; }; zone "0.0.127.in-addr.arpa" { type master; file "localhost/rev"; allow-update { none; }; }; zone "pc1.example" { type master; file "pc1/fwd"; allow-update { none; }; }; zone "11.95.168.192.in-addr.arpa" { type master; file "pc1/rev"; allow-update { none; }; }; よろしくお願いします。

  • BIND 9での内部のみのDNSで、ホスト名が引けません

    BIND9での開発をしなければいけない状況で、現在WindowsServer2003にてDNSをBIND9で立ち上げようとして、タイトルのように完全修飾ドメイン名(ホスト名.ドメイン名)ではnslookup host digコマンドなどでの結果が得られるのですがホスト名では結果を得ることができません。(タイムアウトエラーが出てしまいます。) 逆引きでも問題なく参照することができ、問題はホスト名のみなのですが・・・ インターネットで検索など試してみたのですがそれらしき答えを得ることができなかったので質問させて頂きます。 --------named.conf----------- options { directory "C:\WINDOWS\system32\dns\etc"; allow-query { 127.0.0.1; 192.168.100.0/24; }; allow-recursion{ 192.168.100.0/24; }; pid-file "named.pid"; recursion yes; }; zone "." IN{ type hint; file "named.root"; }; zone "localhost" IN { type master; file "localhost.zone"; }; zone "0.0.127.in-addr.arpa" IN { type master; file "named.local"; }; zone "hoge.local" IN { type master; file "hoge.zone"; }; zone "100.168.192.in-addr.arpa" IN { type master; file "100.168.192.in-addr.arpa"; }; -----------正引きゾーン内容--------------- $TTL 86400 ; 1 day @ IN 86400 SOA DNS.hoge.local. mail.hoge.local. ( 2001060134 ; serial 10800 ; refresh (3 hours) 3600 ; retry (1 hour) 604800 ; expire (1 week) 86400 ; minimum (1 day) ); ; IN NS DNS.hoge.local. IN MX 10 buf1.hoge.local. ; DNS IN A 192.168.100.11 buf1 IN A 192.168.100.10 buf2 IN A 192.168.100.12 buf3 IN A 192.168.100.15 www IN CNAME DNS.hoge.local. ftp IN CNAME DNS.hoge.local. mail IN CNAME buf1.hoge.local. 後、補足でもう一つ疑問なのですが、ipconfig/flushdnsを行った際に、関数内でエラーが出て処理を完了できません。といった内容のようなものが出てキャッシュを削除することができません。 自分でも調べてみますが、どうかご教授願います。 宜しくお願いします。