Linuxファイル編集方法についての質問

このQ&Aのポイント
  • Linux上のファイルを編集する方法について教えてください。
  • Linux環境でファイルを編集するためにはどのエディタが必要ですか?
  • 社内環境では制限があるため、どのソフトをインストールすべきか教えてください。
回答を見る
  • ベストアンサー

linux上にあるファイル編集

お世話になります。 linux上のファイルを編集したいのですが方法がわかりません。 通常は win環境でSSHでwinサーバーのサイト制作・管理をしておるのですが linuxは編集不可?怒られてしまいまして書き込み不可なのか su -でroot権限に切り替えて作業を行う、ということに今気がついた、 というほどのお恥ずかしいスキルなのですが、やらねばなりません。 PCにTeratermが入っているのですが普段は既存のパッチ当てたりサーバーをopen/closeしたり ぐらいでしか使いません。 調べますとviなどのエディタを入れれば編集可能?と漠然と知りました。 すいません、すごく基本的なことを伺います。 逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。 あまりに基本的なこと過ぎるのか調べてもよくわかりませんでした。 社内環境的に、あまりぼんぼこソフトはインストールでき無いのです。 どなたかご教授くださいませ。

  • anoyo
  • お礼率66% (169/256)

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

  • ベストアンサー
  • 0909union
  • ベストアンサー率39% (325/818)
回答No.4

みなさんが、概要を記載してくれたので、根本的な歴史などを、、、 >逆に言うと、エディタが無いと、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 はスポーツで言えば、ランニングによるトレーニングと一緒です(ランニングしないスポーツなんてあったけ?)。ほとんど、使い方は(ショートカットキーとか)同じなので、どれか一つラインエディターを覚えれば、仕事の幅が広がります。 難しいこといわないで、先人たちの体験を生かしてみてはどうですか? サーバー管理はコマンドうちが基本です。

anoyo
質問者

お礼

詳しい歴史まで、ありがとうございます! 知識を惜しみなく共有いただき感謝しております。 結論から、解決しました。(詳細は他の他へのお礼を参照ください・・) >>VIはスポーツで言えば、ランニングによるトレーニングと一緒です ええ~そうなんですか。 何回も読んで、うっすらと理解しました。 しかしながら、スイマセン・・・私の仕事はサーバー管理者というよりも、 デザイナよりのweb制作に従事するものでして、諸事情からシステム部隊が作ったファイルを 編集しなければならない羽目になり・・普段はWinscpを使ってwindowsのwebサイトを作っていて、そして、そこからでもLinuxのファイルは開けるのになぜ同じように編集できないんだ~~~!! と今回の質問をしました、というほどのスキルなのです。 長文頂いてごめんなさいごめんなさい・・ 頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。 ありがとうございました!

その他の回答 (4)

  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.5

じゃ、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が違うために、もともとかけられている制限が違うと考えられます。

anoyo
質問者

お礼

詳しくありがとうございます! お時間頂きすいませんです。 結論から、コマンドでvi起動し解決しました。 (詳細は、もしご興味とお時間ありましたら、 他の方へのお礼を参照いただければ・・) >>じゃ、WindowsだとSSHで入ったユーザーが なんでも自由に編集できるのか?そこ確認してみましょう :-) スイマセン、私の説明(と、認識?)が悪かったです。 通常は直接サーバーとつなげた同じwinマシーンでWinscpを用い、winサーバーのファイルを それこそ、なんでも自由に編集しているので、同じように編集できてもよかろう・・ という私の妄想でした。 >>つまり、Windowsでもsshで入ってファイル編集するなら 基本的には、コンソール上で動くCUIのツールでしか編集できません。 もしかして私、SSHの概念を理解していないぽいです。 WinSCPも=SSHではないのですか? 頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。 ありがとうございました!

  • mimzy
  • ベストアンサー率33% (32/96)
回答No.3

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

anoyo
質問者

お礼

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

  • yakan9
  • ベストアンサー率54% (2202/4052)
回答No.2

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権限で編集できると思います。

anoyo
質問者

お礼

具体的な回答ありがとうございました。 お返事遅くなりました。 結論から、解決しました。 Linuxは何を使ってるのかよくわかりませんが、vi起動でき、編集できました。 お恥ずかしながらコマンドでviを起動しそのまま編集する、という発想がなく 別途ソフトをインストールし(コマンドではなくそれこそメモ帳のように) 編集するのかと思ってました・・ gedit、というのも機会があれば試して見ますね。 ありがとうございました。

  • root139
  • ベストアンサー率60% (488/809)
回答No.1

よほど特殊な用途のものでない限り、Linuxマシンにはviもしくはvi互換のエディタがインストールされているかと思います。 下記の様なコマンドでvi系のエディタが起動しませんか? vi vim > 逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。 Linux に限らず、Windows だろうと Mac だろうとファイルを編集するにはそれ用のソフトウェアが必要となります。そしてその様なファイルを編集するソフトウェアのことをエディタと呼びます。 Windows のメモ帳もエディタの一種ですし、Outlook Express などのメーラーもテキストエディタを内蔵しています。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/theory05/theory05a.html
anoyo
質問者

お礼

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

関連するQ&A

  • linuxでの使いやすいテキストエディタを教えてください

    私はサーバールームにあるlinuxサーバーにwindowsのsshクライアントでリモートログインして仕事をすることが多いのですが、そのような環境でみなさんはテキストの編集にそのようなエディターをお使いでしょうか? 標準だとviが使えますが、私はwindowsにどっぷりと使っているせいか、viにはどうしても慣れることができません。ですから、小さな設定ファイルのようなもの以外は、一旦ダウンロードして、windows上のエディターで編集してからアップロードすることが多いです。でも、これはこれで手順が面倒です。FreeBSDだとeeが使えて、これは昔のPC-9801のMIFESに似た使いかってでけっこう使えました。linuxでeeを使うにはどうしたらいいでしょうか? あるいは、他にwindowsに体が毒されてしまった人間でも使いやすいエディターは無いでしょうか?

  • 通常上書き出来ないconfファイル等の編集について

    私はwindowsからcentOSでlinuxを初めて一ヶ月くらいの初心者なのですが、 多分皆さんは、confファイル等の編集はviエディタを使って居らっしゃると 思うのですが、初心者の私にはどうにも使いづらくて、geditなどを使って その場をしのいでいたのですが、上書きが出来ないファイル(confファイル等) はviエディタくらいしか上書きしてくれなくて、やりづらいです。 ネットで調べたのですが、やはりviは鬼門だが慣れろ的な事が書いてあり、 やはり、上書きできるテキストエディタはviエディタくらいしかないのでしょうか。 非常に使いづらいです(汗)

  • Linux上のJenkinsに

    Linux上のJenkinsに、 ブラウザを利用せずにTeraTermなどの CUIコマンドやviからユーザの追加や、 セキュリティ設定、SSH設定などを することは可能でしょうか? よろしくお願いいたし ます。

  • viエディタを使う理由

    linuxでサーバを建てよう、みたいなサイトで、 confファイル等の設定で、必ず、クライアント機のwindowsから、sshで viエディタを使う様に指示されているようですが、 viエディタて、癖があって嫌いなんですが、 それでも、サーバ等を建てる時はCUIでクライアント機のwindowsで 操作しなければならない理由って何なんでしょうか? 基本、GUIの方が解りやすいと思っているし、 海外のサイトだと、linuxの設定で普通にgeditを使っている方法を 掲載されているパターンを見かけるのですが、 そこまでしてViエディタを使わなければならないのでしょうか?   一度linuxでnvidiaのグラフィックドライバをいれる時大変やりずらかったです。 理由を教えてください。 因みに、サーバ構築は趣味の範囲内ですが、 やはり、プロのサーバ管理者とかはviエディタ、CUIでの作業が主なんでしょうか?

  • linuxファイルの編集

    どうも、お世話になります。 さて、当方の環境ですがwindows2000とturbolinux server6.5のデュアルブートとなっています。さて、質問なのですが、windows上からlinuxファイルの編集は行えるのでしょうか? フォーマットが違うので、そのままでは無理だと思いますので、ツールなどがあれば教えてください。

  • SSH接続時のスーパーユーザー(su?)について

    Linuxは完全な初心者です。 サーバ内のにある、SSHで保護されたデータベースにアクセスしようとしております。 手順として、 (1)SSHでサーバに接続 (2)スーパユーザーになる (3).設定ファイルを編集 /etc/httpd/conf.d/phpmyadmin.conf (4)Allow from (自分の使用しているIP) という一行を追加 (5)Apache(HTTP)の再起動 /etc/rc.d/init.d/httpd reload という事を教えて頂けました。 見よう見まねでなんとかTeraTermでSSH接続するところまで出来ましたが、 (2)のスーパーユーザーになる、という段階で止まっております。 調べたところ【su】【su -】【su - root】あたりのコマンドで、root権限は持てているようなんですが、 (3)のコマンドを打つと【許可がありません】と出てしまいます。 何が間違っているのでしょうか? どなたかご教授頂けましたら幸いです。 宜しくお願いします。

  • linuxサーバにファイルをアップロードする方法

    FFFTPを使わずに、TeraTermでlinuxサーバにファイルをアップロードするには どうすればいいのでしょうか? よろしくお願いします。

  • linux viエディタについて

    linuxのviエディタについて解決できない問題があるので質問させていただきます。 sortコマンドやcutコマンドを実行する時にviエディタで編集したファイルが摘要されず、 実行はできるのですが、何も表示されません。 逆にechoコマンドでファイルにテキストを追加したときは、通常どおりコマンドが実行され表示もされます。 また、echoコマンドでテキストを追加したファイルをviコマンドで開くと、NEWFILE扱いにあり最初っから編集する状態になってしまいます。 touchコマンドで作成し、echoコマンドでテキストを追加したファイルとviエディタで作成したファイルは互換性?がないのでしょうか? どうかご教授いただければと思います。 よろしくお願いいたします。

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

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

  • Vine Linux の viエディターについて

    Linux超初心者です。 フリーPHPソフトの動作確認のため、自宅にLinuxサーバー環境を構築しようとしています。 端末(GNOME-terminal)を使ってファイルを編集しようとして、 # vi /etc/my.cnf  で設定ファイル編集を行ったのですが、変更を保存して元のコマンドラインに戻す方法が分かりません。どなたか方法をお教え下さい。