お世話になります。
linux上のファイルを編集したいのですが方法がわかりません。
通常は win環境でSSHでwinサーバーのサイト制作・管理をしておるのですが
linuxは編集不可?怒られてしまいまして書き込み不可なのか
su -でroot権限に切り替えて作業を行う、ということに今気がついた、
というほどのお恥ずかしいスキルなのですが、やらねばなりません。
PCにTeratermが入っているのですが普段は既存のパッチ当てたりサーバーをopen/closeしたり
ぐらいでしか使いません。

調べますとviなどのエディタを入れれば編集可能?と漠然と知りました。
すいません、すごく基本的なことを伺います。
逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。
あまりに基本的なこと過ぎるのか調べてもよくわかりませんでした。

社内環境的に、あまりぼんぼこソフトはインストールでき無いのです。

どなたかご教授くださいませ。

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

A 回答 (5件)

みなさんが、概要を記載してくれたので、根本的な歴史などを、、、



>逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか

逆に言っちゃー、おしめーよー

たぶん、人に聞いたとか、本などの文献や、ブログ等の設置記録などの管理者のぼやきをみたのでしょう。

なぜラインエディターを使うのか? 

(つかわないとだめ! なんて絶対にだれもいっていないはず必要にせまれて、そこにあるからが主な理由なはず)

これは長い長い苦難の歴史があったとさ。

もともとUNIXをベースにしているLinux。カーネル部分はUNIX系の仕組みなどを引き継ぎ、デストリビューションがいろいろ変化し、枝分かれしてきた(もちろんカーネル部分も)。

このカーネル部は、CUIを中心とした、コマンドベースの物が中心。なぜか? 昔の映画で(1990年よりも前、特に70年代)コンピューターと言うと、黒の画面に白の文字が上から下へ流れている所を映し出されていましたよね。そうです、GUIなんかなかったから、みんなコマンドうちで作業していました(刑事コロンボなんかみるとおもしろいよ)。

その時代からUNIXはあったわけす。そのうちに処理能力が上がり、複雑で大規模な、ライブラリー(オブジェクトの塊)を処理できるようになり、ペンで画面にプロットできるようになって初めてGUIと言うものが、コンピュータの発展につながるとわかり、それを競争で作るようになった。それが80年代の後半です。そう、あのマックも、その時代です。

て、事は昔はシステムの設定は全部プレーンテキストファイルで、そこを変更する事で、コンフィギュレーション(makeなどでコンパイル)してきたわけです。だから、ラインエディターこそ、その唯一のソフトだったわけです。

そのうちにワークステーションなるものが発展し、それがそもそもネットワーク環境での業務使用を基本としていたのでリモート管理を実現させたわけです。

UNIX系だと、

telnet
rlogin

でリモートにログインして、DISPLAY環境変数を変えるだけで、リモートのGUIツールを目の前のディスクトップに表示できるになっていました。そのディスクトップは、サーバーの自分のホームをマウントしています。

最近は、クラウドとか呼ばれているが、実はそうとう昔から、同じような仕組みはあったわけです。その血をうけついだのがLinuxであり、MacOS X(ちょっと違うか)ですね。

よく私なんか自分の席のNT4.0のコンソールから、サーバールームのUNIX系、Linux系のサーバーをメンテナンスしています。サーバールームは歩いて15分のところにあります。

反応がないとか、エラーが出るとか、苦情を受付け、さらっとメンテするのに、自席からやるわけですが、アーキテクチャーが違うから当然GUIは無理ですよね。今なら、仮想OSにLinux, Solarisなどを入れればいいですが。

しかもログみて、変なとこあれば改善し、その改善が、全部テキストファイル(Oracleとか)、1、2単語かえるのにツール立ち上げて、同じくデーモン操作するツール立ち上げて、なんてやってると時間がかかる。ラインエディターなら5秒くらいでできる(ほんまかいな?)。

大抵メンテなんて、片手間にやるのがどこの業界でも通例です。そこに時間をかけるわけにはいかない。2年もやれば、あなたみたいに言っていた人が、今度は入った新入社員に、したり顔で、

Vi、覚えていたほうがいいよ

なんて、ベテランぶって先輩風吹かせます。その程度の物です。自分はGUIでやるんだといえば、それでいいしょう。でも他の人と、仕事の質、変わってしまいますよ。いつのまにかおいてかれてしまいますよ。

VIの環境に関しては他の方が指摘しているので、そうでしょう。VI はスポーツで言えば、ランニングによるトレーニングと一緒です(ランニングしないスポーツなんてあったけ?)。ほとんど、使い方は(ショートカットキーとか)同じなので、どれか一つラインエディターを覚えれば、仕事の幅が広がります。

難しいこといわないで、先人たちの体験を生かしてみてはどうですか? サーバー管理はコマンドうちが基本です。
    • good
    • 0
この回答へのお礼

詳しい歴史まで、ありがとうございます!
知識を惜しみなく共有いただき感謝しております。
結論から、解決しました。(詳細は他の他へのお礼を参照ください・・)

>>VIはスポーツで言えば、ランニングによるトレーニングと一緒です

ええ~そうなんですか。
何回も読んで、うっすらと理解しました。

しかしながら、スイマセン・・・私の仕事はサーバー管理者というよりも、
デザイナよりのweb制作に従事するものでして、諸事情からシステム部隊が作ったファイルを
編集しなければならない羽目になり・・普段はWinscpを使ってwindowsのwebサイトを作っていて、そして、そこからでもLinuxのファイルは開けるのになぜ同じように編集できないんだ~~~!!
と今回の質問をしました、というほどのスキルなのです。

長文頂いてごめんなさいごめんなさい・・
頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。

ありがとうございました!

お礼日時:2011/04/13 23:43

じゃ、WindowsだとSSHで入ったユーザーが


なんでも自由に編集できるのか?そこ確認してみましょう :-)

実際は知りません。MS-DOS時代のEDLINはもう忘却の彼方ですが
TCP/IP接続上のsshや、無手順接続のシリアルコンソールやパソコン通信では
キーボードから入力される文字のほとんどが送られるだけで
また表示されるのも、すべての文字コードではありませんし…
ましてや、グラフィカルな表示手段も操作方法もありません。

つまり、Windowsでもsshで入ってファイル編集するなら
基本的には、コンソール上で動くCUIのツールでしか編集できません。
CUIのスクリーンエディターを、GUIのsshクライアントで
GUIエディターにみせかけることはできる気がしますけどね。


パソコンの歴史よりも深く、また健在であるviは
sshログインでしか作業ができないコンピューター相手に
有効な管理手段として、UNIX系OSで現在でも使われ続けています。

実際にはviとして使われるテキストエディターには
vimのほかいくつもの実装があり、alias機能によって
viとして呼び出され、使用者が識別を意識しない場合も多いと言えます。


仮にsshでのCUI上のテキストエディターという手段に難を感じるなら
VNCやリモートデスクトップのようなGUIの遠隔操作ツールを使う手もあります。
あるいは、CIFSによるファイル共有を介してファイルを操作する手もあります。

でも、そういった手段は、サーバー側の管理権限が必須で
社内のセキュリティルールによって導入不能の場合があります。
またファイアウォールの設定によって不可という場合もあります。
遠隔地のサーバーが相手なら、通信速度の問題でGUIは無理の場合もあります。

そういう障壁を越えられる手段が、mssh上のviとも言えるわけです。
個人の自宅LAN上なら、選択肢はいくらでもありますけどね。


なお、Linux to Linuxでのssh接続であれば、sshに-Xオプションをつけて
X転送を使うという手もあります。
これはGUIが導入されているLinuxサーバーとLinuxクライアントの間で
ごく手軽に、sshのポートを利用して遠隔GUIが実現できます。
これがUNIX系OSの主流であるGUI環境、X Window Systemの特徴です。

設定次第で、MacOSXやSolarisやFreeBSD上のX Window System…
あるいはWindows上のX Window Systemを利用すれば
相互に、異なるOS上にインストールされたX用ソフトが
ローカルに表示され操作できます。

もっとも、Win32APIなどによるWindows用ソフトや
MacOSXのCocoaやCarbonなどによるソフトが
X転送で利用できるわけでは無いんですけどね。
彼らのGUIは不便な設計だからしかたがない。

そういう意味では、Linuxサーバーの文書をGUIで編集するなら
Linuxクライアントからssh -Xで入って
geditやkeditなどを使うほうが手軽な気はします。
WindowsにXを導入するのも面倒だし、VNCやSambaの設定も面倒ですし。


なお、ファイルの編集権限のあるなしは
ファイルの所有ユーザーやグループやユーザー単位で設定される
読み出し,変更,削除などの権限設定の問題です。

そういう制限は、Windowsでもあたりまえに備わっていますが
だらしない大衆のために、うやむやになっていることも多いようです。
UNIX系OSでは1970年代からそのルールは厳格に継承されてきています。

これはサーバーの利用者と管理者の間で…
また侵入してきたクラッカーやワームなどに対しての
セキュリティリスクに関わるものなので
正しい設定と対処方法を、理解しておく必要があると言えます。

でなければ、サーバーの管理者としての資格が問われるとこです。


質問文の状況は、いまひとつわかりませんが…
WindowsによるサーバーにWindowsからsshでログインした場合と
同じサーバーにLinuxからsshでログインした場合とで
権限が同じくならないとしたら…

Windowsに便利にするために、制限を緩和するしくみがあるか
単純にログインIDが違うために、もともとかけられている制限が違うと考えられます。
    • good
    • 0
この回答へのお礼

詳しくありがとうございます!
お時間頂きすいませんです。

結論から、コマンドでvi起動し解決しました。
(詳細は、もしご興味とお時間ありましたら、
他の方へのお礼を参照いただければ・・)

>>じゃ、WindowsだとSSHで入ったユーザーが
なんでも自由に編集できるのか?そこ確認してみましょう :-)

スイマセン、私の説明(と、認識?)が悪かったです。
通常は直接サーバーとつなげた同じwinマシーンでWinscpを用い、winサーバーのファイルを
それこそ、なんでも自由に編集しているので、同じように編集できてもよかろう・・
という私の妄想でした。

>>つまり、Windowsでもsshで入ってファイル編集するなら
基本的には、コンソール上で動くCUIのツールでしか編集できません。

もしかして私、SSHの概念を理解していないぽいです。
WinSCPも=SSHではないのですか?

頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。

ありがとうございました!

お礼日時:2011/04/14 00:16

>逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。


一般にはエディタでファイルを編集すると思いますが、このように質問されると、
エディタが無くてもファイルは編集はできますというのが答えです。
"echo"、"sed"、"PERL"などなどを使えばできますが、
知識がないとエディタを使ったほうが早いということになります。
他回答にもありますがLinuxには最低でも一つのエディタがインストールされているはずです。
Viがなければnanoとかemacsとかないですか?
    • good
    • 0
この回答へのお礼

回答ありがとうございました。
結論から、解決しました。
お恥ずかしながらコマンドでviを起動し編集する、という発想がなかったです・・
ありがとうございました。

お礼日時:2011/04/13 23:47

Linuxは何を使われていますか。


vi/vimエディタ、gedit等が有名です。
特に、geditは、Windowsで言う「メモ帳」感覚で使用できます。

> 調べますとviなどのエディタを入れれば編集可能?と漠然と知りました。
Linuxによっては、vi/vimエディタは、最初のインストールでは、入っていない場合があります。
入っていないときは、インストールコマンドでインストールします。
Linuxにより以下の切り分けが必要です。
yum -y install vi
apt-get install vi
でインストールすれば使えるようになるでしよう。
現在は、viの改良型のvimがほとんどだと思われます。
vimもviも同じように取り扱われるようになっていると思われるので気にしなくてよいと思います。

root権限で編集しないといけない場合は、
su -
と入れ、root権限を得た後、
gedit
と入力すれば、root権限で編集できると思います。
    • good
    • 0
この回答へのお礼

具体的な回答ありがとうございました。
お返事遅くなりました。
結論から、解決しました。
Linuxは何を使ってるのかよくわかりませんが、vi起動でき、編集できました。

お恥ずかしながらコマンドでviを起動しそのまま編集する、という発想がなく
別途ソフトをインストールし(コマンドではなくそれこそメモ帳のように)
編集するのかと思ってました・・

gedit、というのも機会があれば試して見ますね。

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

お礼日時:2011/04/13 21:56

よほど特殊な用途のものでない限り、Linuxマシンにはviもしくはvi互換のエディタがインストールされているかと思います。


下記の様なコマンドでvi系のエディタが起動しませんか?

vi
vim

> 逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。

Linux に限らず、Windows だろうと Mac だろうとファイルを編集するにはそれ用のソフトウェアが必要となります。そしてその様なファイルを編集するソフトウェアのことをエディタと呼びます。
Windows のメモ帳もエディタの一種ですし、Outlook Express などのメーラーもテキストエディタを内蔵しています。

参考URL:http://www.atmarkit.co.jp/flinux/rensai/theory05 …
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
お返事遅くなりました。
結論から、解決しました。
お恥ずかしながらコマンドでviを起動する、という発想がなく
別途ソフトをインストールし(コマンドではなくそれこそメモ帳のように)
編集するのかと思ってました・・

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

お礼日時:2011/04/13 21:51

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

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

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

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

Qコマンドプロンプトでネットワークドライブ名の変更

コマンドプロンプト画面でコマンドを使用して、ネットワークドライブ名を任意の名前に変更することは出来ますか?
宜しくお願いします。

Aベストアンサー

 こんばんは ^^
 ネットワークドライブ名とは,ドライブ文字のことでしょうか?
 もしそうでしたら,net useコマンドで可能かと思います.

参考URL:http://support.microsoft.com/kb/308582/ja

QLinuxから別PCのLinux上のファイル参照

LinuxマシンからWindowsマシンのファイルを参照する時は、
smbmountというコマンドを使っているのですが、
Linuxマシンから別のLinuxマシンのファイルを参照する時に使えるようなコマンドはあるのでしょうか?

Aベストアンサー

smbclient //NetBIOS名/共有名 -U ユーザ名
具体的にはhostname コマンドでの表示がtktk1228.net.com
smb.confでtmpディレクトリを設定し、user01がsmbpasswdで登録してあれば以下のようにアクセスします
smbclient //tktk1228/tmp -U user01

QEIGRPコマンド「network」で使えるのはクラスフルネットワークアドレスのみ?

シスコのルーティングプロトコル、EIGRPコマンド「network」で使えるのはクラスフルネットワークアドレスのみなんでしょうか?EIGRPはRIPやIGRPとは違ってクラスレスなルーティングプロトコルと聞いたんですが・・
もしかして、「network」コマンドが同一AS内のネイバーへのアップデートなのでクラスフルなネットワークアドレスを使用するんでしょうか???

Aベストアンサー

こんばんは
hdddvdさんは勉強熱心ですね。

私の嫌いなEIGRP ですが、もちろん『クラスレス・ルーティング・プロトコル』です。
ネイバーへアップデートするルーティング情報には、きちんと『サブネットマスク』の情報が含まれています。

EIGRP の『network』コマンドは、どのNW がEIGRP のAS に参加するかを定義するパラメータです。
EIGRP ルータの、「どのインターフェースがEIGRP に参加するか」と「どのネットワークにアドバタイズするか」を定義します。

参考URL:http://www.cisco.com/japanese/warp/public/3/jp/service/tac/103/eigrp-toc-j.html

QWindows上で作成した、2バイト文字、半角スペース入りのファイルやフォルダは、Linux上で扱えるのでしょうか・・・

初歩的な質問です... 。

一週間前に、以下の質問をしました。

Vine Linux を使いたいのですが・・・(初歩的な質問です)
http://okwave.jp/qa2958373.html

ANo.3の回答者様から、

>>フォルダ名・ファイル名が英数字(および一部記号)のみであれば問題ありません。いわゆる全角文字が含まれている場合、フォルダ名・ファイル名が文字化けしたり、読めなかったり、アクセスできなかったりします。

という回答をいただきました。

現在、Windows XP入りのマシンを使用しています。このマシン上には、NTFSでフォーマットした、データファイル(txt,doc,mht,htmその他)を入れるためのNTFSパーティション(D:)があります... 。
NTFSパーティション(D:)には、半角スペースの入ったファイル、フォルダや、2バイト文字を使用したファイル、フォルダもあります。

例えば、このマシンにVine4.1(またはFedora Core 6)を未使用領域にインストールしてデュアルブートさせた場合、Vine4.1(またはFedora Core 6)から、上記のNTFSパーティション(D:)にマシン上にアクセスすると、ファイルやフォルダは、『通常』、文字化けなどせずに、正常に認識されて、読み書きができるようになるのでしょうか?。
(Vine4.1(またはFedora Core 6)は、NTFS上の、半角スペースの入ったファイル、フォルダや、2バイト文字を使用したファイル、フォルダを扱うことができるのでしょうか?。)

NTFSパーティション(D:)には、[.mht]で保存したWebページのスクラップファイルも沢山あります。ほとんどは、2バイトのファイル名です... 。[.txt]も同様です... 。
ほとんどのフォルダは、半角名ですが、半角スペースが付いてしまっています... 。

知識が乏しく、Web検索してもなかなか解決できません... 。
お願いいたします... 。

初歩的な質問です... 。

一週間前に、以下の質問をしました。

Vine Linux を使いたいのですが・・・(初歩的な質問です)
http://okwave.jp/qa2958373.html

ANo.3の回答者様から、

>>フォルダ名・ファイル名が英数字(および一部記号)のみであれば問題ありません。いわゆる全角文字が含まれている場合、フォルダ名・ファイル名が文字化けしたり、読めなかったり、アクセスできなかったりします。

という回答をいただきました。

現在、Windows XP入りのマシンを使用しています。このマシン上には...続きを読む

Aベストアンサー

>Windows上で作成した(集めた)Mozilla Firefoxの[ブックマーク]なども、文字コードを変換して保存し直せば、Linux上にインストールしたFirefoxにインポートできるのでしょうか?。

設定が適切にできていれば、単にブックマークをコピーするだけです。

メールデータに関しては、デュアルブートということであれば、shylpheedのデータを
fat32でフォーマットした共用ドライブに置いて、Windows及びLinuxの双方から同じデータを見るように設定すれば
どちらで受信したメールも同じように扱えます。ご一考を。

おそらく雷鳥も同じだと思いますが。

QコマンドでPCのネットワークドライブの書き換え

こんにちは

PC1からコマンドでPC2のネットワークドライブの書き換えが出来るか知りたいです。

同ネットワーク上のPCをshutdownコマンドで落とせるようなので、もしかしたら他のPCのネットワークドライブの書き換えも出来るのではないか?と勝手に思っていますが、知識が乏しい為、出来るか出来ないかすらわかりません。
もし出来るのであれば方法など教えていただければ嬉しいです。
出来ない場合は理由なども教えて下さい。

ネットワーク上のマシンのOSはWindowsXPです。

すみませんがよろしくお願いします。

Aベストアンサー

『ネットワークドライブの書き換え』というのは、具体的にどのような作業を指しているのでしょうか?

QLINUX上のすべてのファイルに対し文字検索する方法

LINUX上のすべてのファイルに対し文字検索する方法ってありますでしょうか?
GREPは絶対パスを指定しなくてはいけないので、どうしたらよいか分かりません。
どなたがご存知のかたがいらっしゃったら教えてください。よろしくお願い致します。

Aベストアンサー

grep -R 文字列 *
ではだめ?

あとは
find . -name \* -print | xargs grep 文字列
とか

Qコマンドプロンプトからネットワーク切断

お世話になっております。王次郎です。

さて、今回の質問は、
windows7で、ネットワークへの接続と切断を簡単に切り替えたく、
コマンドか、C++関数での 方法を探しています。


(詳細)
当方、パソコンでローカルな作業をする際に、インタネットにつながっていると
不都合な場合がございます。ただし、普段はネットワークに接続して
メール送受信やインタネット接続を行う必要があります。
という訳で、ネットワーク接続のオン・オフを簡単に行いたいと考えてます。
例えば、コマンドプロンプトのコマンドを使って、batファイルにしておく事を考えてます。
もしくは、C++も使えるので、C++関数で簡単にネットワーク接続状態を変えられる関数が
あるとうれしいです。

よろしくお願いします。

Aベストアンサー

下記に具体的な方法が載っています。
http://l.inolv.jp/2013/02/27/disable-and-enable-network-by-comman/
ただし、文字列の区切りが違っています(半角のダブルクオートです)。
無効化(disabled)
netsh interface set interface "ローカル エリア接続" disabled
有効化(enabled)
netsh interface set interface "ローカル エリア接続" enabled
「ローカルエリア接続」の箇所は、「ipconfig /all」で「イーサネット アダプター」の後にかかれています。例えば「イーサネット アダプター イーサネット:」であれば「イーサネット」です。

QWindows上で改行コードCR+LFで保存したファイルをLinux上にバイナリモードで転送した場合

Linux上に転送されたファイルを開くと
特に問題ないようです。
因みに、Solalis上に行うと、
改行部分が^M
となっていました。
何故なのでしょうか?

Aベストアンサー

これまでの回答のとおり、Linuxで使用したエディタ(?)がCR+LFの改行コードに対応していただけです。「開いた」とき何を使って開いたかがポイントです。
 ^M は CRコード(0x0d) のことです。CRコードに対応していないので、親切にバイナリの0x0d(10進数で13)であることを表示したのです。キー入力では Ctrl+'A'で0x01, Ctrl+'B'で0x02 を入力できます。 0x0d は Ctrl+'M'なので ^Mと表示しているのです。

Qコマンドプロンプトを使ってネットワークの一覧を表示

コマンドプロンプトを使ってネットワークの一覧を表示する方法
LAN内のPCやプリンタ、ネットワーク機器のIPアドレスを
調べて一覧にするコマンドプロンプトのコマンドはありませんか?
固定IPかDHCPから割り振られたIPか、わかると更に嬉しいです。

なければそういった機能があるソフトでもいいので
ご紹介頂けると幸いです。

Aベストアンサー

こちら参考に
★lan内のpcをipアドレスで一覧表示したい | OKWave
http://oshiete.goo.ne.jp/qa/5829669.html

Q同一ネットワーク上にあるLinuxからWindows上のMS-ACCE

同一ネットワーク上にあるLinuxからWindows上のMS-ACCESSに接続したいのですが、どのようにすればよろしいのでしょうか?(Linux用のODBCドライバ(MSAcess)見たいのがある?)

Aベストアンサー

MS-ACCESSに限定した話しではなくて、
「Linux PCの画面から、Windows PCで動作しているアプリケーションを遠隔操作したい」
ということならVNC機能を使えば、無償で簡単に実現できます。
VNCについてはネットで検索すれば多くの説明や事例があります。

> (Linux用のODBCドライバ(MSAcess)見たいのがある?)
質問の意味もよく解りませんが、
Linuxマシン上でMS-ACCESSを動作させるわけではないので、
Linux用ODBCドライバは関係ないでしょう。


人気Q&Aランキング

おすすめ情報