はじめまして。Linaxはじめたばかりで躓いています。
viで、 etc/dhcpd.conf や etc/samba/smb.confに書き込もうとすると、
画面の一番下の行に一瞬警告文のようなものが出て、すぐに消えます。
そのご、書き込みをして、上書き保存しようとすると、「読み込みのみで、
保存できない」と言うような感じの内容の文章が出てきます。
esc後、:qで、一度viを終了しようとしても、vi自体を終われません。
 ログインはrootでしてるので、編集できると思っていたのですが・・・。
恐れ入りますが、分かる方よろしくお願いいたします。

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

A 回答 (4件)

書きこみ権限がないんでしょう。


# ls -l etc/dhcpd.conf
で見てみれば、
-r--r--r--
のようになっているのだと思います。ただ、ここで
「なんで書きこめないんだろ?直しておこう」なんて
chmodで書きこみ権限を与えてしまうのは良くありません。
大抵理由あってそうなっている(セキュリティ上の問題など)
のでしょうから、それはそのままにしておいたほうが良いでしょう。

viでそのようなファイルを編集する場合、最後に
:w!
で強制書きこみができます。その後、
:q
で終了できます。

なお、:qで終われないのは「編集中だよ」という意味の
メッセージが出るためで、
:q!
とすれば、編集中であろうがそれをキャンセルして抜ける
ことができます。
    • good
    • 0

基本的な確認で申し訳ないのですが、


viコマンドでviを起動していますよね?
/etc/samba/smb.confを編集する場合は、
# vi /etc/samba/smb.conf
としてますよね?
# view /etc/samba/smb.conf
では編集できないですね。
終了する場合は、:q! で強制終了です。
    • good
    • 1

root権限でやられているのであれば、


恐らく、書き込み権限が無いのだと思います。

#間違いなくrootですよね?

ls -l で確認してください。
    • good
    • 0

とりあえず強制上書き終了したいのならば


!wq
コマンドで出来ると思うのですが。
    • good
    • 0

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

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

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

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

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

Qコマンドプロンプトのdelと削除ソフトについて

ファイルを強制的に削除するソフトがありますが、それはコマンドプロンプトで「del」コマンドを打ったものと同じ操作をするのでしょうか?
それと、ファイルを右クリックして「削除」するのと、コマンドプロンプト上から「del」コマンドにより削除するのは同じ動作でしょうか?
コマンドプロンプトからなら削除できないファイルが削除できると聞くので違うと思うのでですが?
ご存知あれば教えていただければ幸いです。

Aベストアンサー

全く自信なくて、私が勝手に思い込んでることだけど。
なので、回答と呼べるものとは言えないと思うけど、一応ね。(^.^)

>コマンドプロンプトからなら削除できないファイルが削除できると聞くので違うと思うのでですが?
これはほとんどが動画ファイルの付属情報の破損からだったと思う。
以前調べたものだと、エクスプローラーで対象のフォルダを開いたとき、動画ファイルの属性(だったかな?)の情報を取りにいって、そのままの状態を保持してしまい、ファイルを掴んじゃって削除できないってものだったと思う。
これは、そのフォルダを開くたびに掴みにいくから、エクスプローラーでは削除できない(だったとおもう)
つまり、エクスプローラーを介さずに、コマンドプロンプトから削除すれば、エクスプローラーがその破損情報を掴みにいかないので、ファイルがフリー状態になり削除が可能になる。(のかなぁ?)
ただ、上書きは可能なこと多いんだよなぁ~・・・。

とすると、最終的にOSへの削除命令伝達における命令が通る系統が違うんじゃないかなぁ~と個人的には思う。
つまり、エクスプローラーというシェルを使うのか使わないのかの違いじゃないかな?
もっとも、コマンドプロンプトで削除命令をエクスプローラー経由でOSに伝えてるかもしれないけど・・・ね。(^_^;)

全く自信なくて、私が勝手に思い込んでることだけど。
なので、回答と呼べるものとは言えないと思うけど、一応ね。(^.^)

>コマンドプロンプトからなら削除できないファイルが削除できると聞くので違うと思うのでですが?
これはほとんどが動画ファイルの付属情報の破損からだったと思う。
以前調べたものだと、エクスプローラーで対象のフォルダを開いたとき、動画ファイルの属性(だったかな?)の情報を取りにいって、そのままの状態を保持してしまい、ファイルを掴んじゃって削除できないってものだった...続きを読む

QRedhat8.0で/etc/modules.confにアクセスできない

Redhat8.0でLANカードが上手く認識されないいようで困っています。
メーカー側では、
----------------------------------------------
kudzuにて自動認識します。
手動で設定する場合は、[/etc/modules.conf]に
[alias eth0 via-rtl8139too]を登録して下さい。
----------------------------------------------
となっているのですが、
システムツール→ターミナルから、/etc/modules.confとしても
「許可がありません」とのメッセージになります。
初心者ですので、根本的な間違いをしてるのかも知れませんが、
よろしくお願いします。

Aベストアンサー

vi にはぜひ慣れることをお勧めしますが、とりあえずは

# echo "alias eth0 via-rtl8139too" >> /etc/modules.conf

でも目的を達することはできます。
マニュアルは man 5 module.conf で見てください。

No.1 の方の言われた vi エディタについて簡単に説明します。
vi は起動直後はコマンドモードですので、i を押して挿入モードに入ります。
この挿入モードでは文字を入力できますが、カーソル移動などはできず、
コマンドモードに戻る必要があります。

コマンドモードへはエスケープキーを押します。
以下のコマンドはすべてこのモードで実行してください。
エスケープを2回押せば必ずコマンドモードに戻ります。
h, j, k, l でそれぞれ左、下、上、右にカーソルが動き、文字を削除するのは x です。
保存終了するには ZZ または :qw、保存せず終了するのは :q! を入力してください。

これも詳しくは man vi してください。

参考URL:http://www.linux.or.jp/JM/html/modutils/man5/modules.conf.5.html

vi にはぜひ慣れることをお勧めしますが、とりあえずは

# echo "alias eth0 via-rtl8139too" >> /etc/modules.conf

でも目的を達することはできます。
マニュアルは man 5 module.conf で見てください。

No.1 の方の言われた vi エディタについて簡単に説明します。
vi は起動直後はコマンドモードですので、i を押して挿入モードに入ります。
この挿入モードでは文字を入力できますが、カーソル移動などはできず、
コマンドモードに戻る必要があります。

コマンドモードへはエスケープキーを押し...続きを読む

Qコマンドプロンプトで、特定の文字を削除したい。

お世話になります。

コマンドプロンプトで、ファイル内の特定の文字を削除したいのですが、どのようにすればよいでしょうか。

deleteコマンドなど、ファイル自体を削除するものは見つけられたのですが、ファイル内の文字を消すコマンドが見つけることができませんでした。。。

Aベストアンサー

ファイルの中にコマンドプロンプトの特殊記号が含まれていないとすると、

del outfile.txt 2>NUL
for /f "usebackq delims=" %%A in (somefile.txt) do call :sub "%%A"
元のファイルを置き換えるなら move outfile.txt somefile.txt
goto :EOF
:sub
set A=%~1
>>outfile.txt echo %A:keshitaimojiretsu=%

元のファイルの中に含まれている内容が把握できる場合でないと危険です。
そうでないとすると、VBScript等できちんとやらないといけない。

Qviを使ってyum.confを

編集しようとしていたのですが
クリップボード内のデータの
ペーストが使えないので
すべて手打ちで入力しないといけないので
困っています
てっきりpコマンドでコピーできると思っていたのですが
アプリケーション間では無効のようです
どうしたらいいのでしょうか?

Aベストアンサー

挿入モードにしてから中クリック
でできるんじゃないでしょうか。

Qscpコマンドでリモートサーバのファイルを削除したい

winscpでリモートサーバのファイル削除が出来るので、てっきりscpコマンドでオプションがあるのかと思ったのですが、見当たりません。scpコマンドでリモートファイルの削除は可能でしょうか?誰か教えて!

Aベストアンサー

1番の方と同じ意見ですが、
ssh ホスト名 コマンド
でリモートサーバ上でコマンドが実行できますので

ssh SSH_SERVER "rm testfile"

のように実行するの一般的かと。

QDNSサーバを構築しています。/etc/rc.d/init.d/named reloadのところでエラーになってしまいます。

RedHat Linux 9 でサーバを構築しています。
DNSサーバを作成しているところでつまづいてしまいました。

vi /etc/named.conf のところで正引き、逆引きのゾーンを追記し、
vi /var/named/**.jp.db の正引きゾーンデータベースを作成し、
逆引きの方もゾーンデータベースを作成しました。

あとは、etc/rc.d/init.d/named start とやって起動させ、
namedが自動起動するように chkconfig named on と実行しました。

しかし、設定を反映しようと、
/etc/rc.d/init.d/named reload としたのですが、
何度やっても失敗と出てしまいます。
画面には、一部を書きに記述すると、

Reloading named: usage : killall [OPTION] [--] name ・・・
   killall -l, --list
killall -V --version

-l,--list list all know signal name
-V,--version display version infomation

となっていました。
とりあえず、shutdown -r now で再起動しましたが、
設定が反映されていないようで、次の
vi /etc/resolv.conf でIPアドレスを記述したあと、
nslookup コマンドを実行してDNSサーバのテストでやってもエラーになってしまいます。
何が原因でしょうか?
長々と書いてすみません。分かる方、どうかよろしくお願いします。

RedHat Linux 9 でサーバを構築しています。
DNSサーバを作成しているところでつまづいてしまいました。

vi /etc/named.conf のところで正引き、逆引きのゾーンを追記し、
vi /var/named/**.jp.db の正引きゾーンデータベースを作成し、
逆引きの方もゾーンデータベースを作成しました。

あとは、etc/rc.d/init.d/named start とやって起動させ、
namedが自動起動するように chkconfig named on と実行しました。

しかし、設定を反映しようと、
/etc/rc.d/init.d/named reload としたのですが、
...続きを読む

Aベストアンサー

/etc/rc.d/init.d/named 内のkillallコマンドでエラーが出ています。
reloadですから、killallで一旦namedを止めて再起動するわけですが、
止めるべきnamedがもともと動いていない、と言う事では?

Qコマンドプロンプトで完全削除

パソコンの中身を完全削除したいと思い、以前コマンドプロンプトでのやり方を教えてもらったのですが、「cipherは内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルファイルとして認識されていません。」とメッセージが出ます。

どの様に削除すればいいのでしょうか?
詳しい方宜しくお願いします。

Aベストアンサー

エラー表示になります?。まず最初に再起動後、C・Dドライブのエラーチェックしてデフラグを実行して下さい。
それからコマンド入力します。それでもエラーが表示されれば、/の後ろのwを入れないで、/cで実行して下さい。
もし、それでも同じ症状なら、何らかのファイルが壊れていると思われますので、このやり方では削除は無理と考えて下さい。
フリーソフトでの削除をお願いします。

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/file/del/

Qbindインストール後、/etc/named.confが生成されない。

RHL7.3,bind-9.2.2rc1を次のようにインストールしましたが/etc/named.confが生成されません。findコマンドで探すと/etc/log.d/conf/services/named.confというのがあるんですがどうも目的のファイルではなさそうです。一体何がおかしいのでしょうか。

tar xvzf bind-9.2.2rc1.tar.gz
cd bind-9.2.2rc1
LANG=C
./configure - - exec-prefix=/usr
make
make install

Aベストアンサー

例えばですが。

$ gtar zxvf bind-9.x.x.tar.gz
$ cd bind-9.x.x
$ ./configure --prefix=/usr/local/bind --sysconfdir=/etc
$ make
$ su
# make install

システムや環境によってはコマンドラインを実行しても、 named.conf が生成されないかもしれません。
その場合、自分で作成すれば宜しいかと。

ご存じかとは思いますが。

> BIND Version 9.2.2rc1

はベータ版で、最新版は
「BIND Version 9.2.1」かと。

ご参考です。

参考URL:http://www.linux.or.jp/JF/JFdocs/DNS-HOWTO.txt

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 としてそれぞれのファイルについて、削除の問い合わせをするのも有効です。

Qviを使おうとするとunknown terminal type

 Red Hat Linux 6.2Jを使っています。telnetでSolaris 8にログインし、viを使おうとすると、unknown terminal typeと出て、ラインエディタのようになってしまいます。どう対処すればいいでしょうか。

Aベストアンサー

二つの原因が複合しているのだと思います。
1.TERM変数が設定されていない。
 端末(仮想端末)の種類は、環境変数$TERMに設定されますが、
 telnet等でリモートログインした場合、これがunknownとなっている
 場合があります。ローカル側のTERM変数の値を調べておいて、
 ログイン後にsetenv等で設定します。
2.termcapが合わない。
 端末(仮想端末)の制御情報は/etc/termcapに記録されていますが、
 LINUX側の情報がSolaris側に書かれていないことが考えられます。
 LINUX側のファイル内容をSolaris側に付け加えればこの問題は解消
 します。

OSの種類により、ファイル名等微妙に違うかもしれませんが、その場合は
ご容赦を。


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

人気Q&Aランキング