- ベストアンサー
Linuxファイル編集方法についての質問
- Linux上のファイルを編集する方法について教えてください。
- Linux環境でファイルを編集するためにはどのエディタが必要ですか?
- 社内環境では制限があるため、どのソフトをインストールすべきか教えてください。
- みんなの回答 (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 はスポーツで言えば、ランニングによるトレーニングと一緒です(ランニングしないスポーツなんてあったけ?)。ほとんど、使い方は(ショートカットキーとか)同じなので、どれか一つラインエディターを覚えれば、仕事の幅が広がります。 難しいこといわないで、先人たちの体験を生かしてみてはどうですか? サーバー管理はコマンドうちが基本です。
その他の回答 (4)
- vaidurya
- ベストアンサー率45% (2714/5983)
じゃ、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が違うために、もともとかけられている制限が違うと考えられます。
お礼
詳しくありがとうございます! お時間頂きすいませんです。 結論から、コマンドでvi起動し解決しました。 (詳細は、もしご興味とお時間ありましたら、 他の方へのお礼を参照いただければ・・) >>じゃ、WindowsだとSSHで入ったユーザーが なんでも自由に編集できるのか?そこ確認してみましょう :-) スイマセン、私の説明(と、認識?)が悪かったです。 通常は直接サーバーとつなげた同じwinマシーンでWinscpを用い、winサーバーのファイルを それこそ、なんでも自由に編集しているので、同じように編集できてもよかろう・・ という私の妄想でした。 >>つまり、Windowsでもsshで入ってファイル編集するなら 基本的には、コンソール上で動くCUIのツールでしか編集できません。 もしかして私、SSHの概念を理解していないぽいです。 WinSCPも=SSHではないのですか? 頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。 ありがとうございました!
- mimzy
- ベストアンサー率33% (32/96)
>逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。 一般にはエディタでファイルを編集すると思いますが、このように質問されると、 エディタが無くてもファイルは編集はできますというのが答えです。 "echo"、"sed"、"PERL"などなどを使えばできますが、 知識がないとエディタを使ったほうが早いということになります。 他回答にもありますがLinuxには最低でも一つのエディタがインストールされているはずです。 Viがなければnanoとかemacsとかないですか?
お礼
回答ありがとうございました。 結論から、解決しました。 お恥ずかしながらコマンドでviを起動し編集する、という発想がなかったです・・ ありがとうございました。
- yakan9
- ベストアンサー率54% (2245/4126)
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権限で編集できると思います。
お礼
具体的な回答ありがとうございました。 お返事遅くなりました。 結論から、解決しました。 Linuxは何を使ってるのかよくわかりませんが、vi起動でき、編集できました。 お恥ずかしながらコマンドでviを起動しそのまま編集する、という発想がなく 別途ソフトをインストールし(コマンドではなくそれこそメモ帳のように) 編集するのかと思ってました・・ gedit、というのも機会があれば試して見ますね。 ありがとうございました。
- root139
- ベストアンサー率60% (488/809)
よほど特殊な用途のものでない限り、Linuxマシンにはviもしくはvi互換のエディタがインストールされているかと思います。 下記の様なコマンドでvi系のエディタが起動しませんか? vi vim > 逆に言うと、エディタが無いと、linux環境のファイルは編集できないのでしょうか。 Linux に限らず、Windows だろうと Mac だろうとファイルを編集するにはそれ用のソフトウェアが必要となります。そしてその様なファイルを編集するソフトウェアのことをエディタと呼びます。 Windows のメモ帳もエディタの一種ですし、Outlook Express などのメーラーもテキストエディタを内蔵しています。
お礼
早速の回答ありがとうございました。 お返事遅くなりました。 結論から、解決しました。 お恥ずかしながらコマンドでviを起動する、という発想がなく 別途ソフトをインストールし(コマンドではなくそれこそメモ帳のように) 編集するのかと思ってました・・ ありがとうございました。
お礼
詳しい歴史まで、ありがとうございます! 知識を惜しみなく共有いただき感謝しております。 結論から、解決しました。(詳細は他の他へのお礼を参照ください・・) >>VIはスポーツで言えば、ランニングによるトレーニングと一緒です ええ~そうなんですか。 何回も読んで、うっすらと理解しました。 しかしながら、スイマセン・・・私の仕事はサーバー管理者というよりも、 デザイナよりのweb制作に従事するものでして、諸事情からシステム部隊が作ったファイルを 編集しなければならない羽目になり・・普段はWinscpを使ってwindowsのwebサイトを作っていて、そして、そこからでもLinuxのファイルは開けるのになぜ同じように編集できないんだ~~~!! と今回の質問をしました、というほどのスキルなのです。 長文頂いてごめんなさいごめんなさい・・ 頂いた内容は自分の立場でも、もちろん無駄ではないわけで、勉強になりました。 ありがとうございました!