GUIよりもコマンドラインを好むのはなぜですか?

他の記事を確認すると、この小さな質問に出くわしてとても楽しかったです。他のシステム(FreeBSDを除く)のユーザーが最初に直面することのXNUMXつは、GUIを使用しないことです。 実を言うと、GNU / Linuxの旅を始めた当初は、非常に興味深かったようです。 時間が経つにつれて、私は他のどのGUIプログラムよりもはるかに多くのコマンドラインを使用するようになり、まばゆいばかりのGUIを備えたより複雑なプログラムよりもコマンドラインプログラムを好むことがよくあります。

神話

実際、これは都市の神話にすぎません。名前がここで言及されていない他のシステムとは異なり、GNU / Linuxで実際に使用されているからです。 自由 選択の。 他のシステムにも、ここに存在する多様性があったことを願っています。 しかし、この問題をさらに詳しく見てみましょう。そうしないと、多くのことが明確になりません。

サーバー

私たちは皆、その言葉を聞いたことがあります サーバ、 一部の人は、GoogleやAmazon、または社内のスーパーコンピューターを強化していると信じています。 しかし、現実は サーバ に応答します 作業モデル。 この用語は、ユーザーが利用できるプログラムがあるという事実を指すために使用します(お客さま)そしてそれらに何かを渡します。 基本的な例は アパッチ、に使用されます サーブ インターネット上のWebページ。 このプログラムはhtmlをに配信します お客さま それを要求する人。

イメージサーバー

しかし、サーバーは、Googleや他の多くの企業が可能にするスーパーコンピューター上にあるだけでなく、「最も古い」ラップトップでさえも可能です。 サーバ、特に画像について話すとき。 私たちは皆、 サーバ 機能的な画面を持つために私たちのラップトップの画像の、この場合は サーバ Y·エル 顧客 彼らは同じ人です。 最も一般的な例は X (として知られている xorg-server 多くのディストリビューションで)とその新しい代替品 Wayland。 組織の理由、Waylandの仕組み、またはこれらの優れたプロジェクトの背後にある哲学について詳しく説明するつもりはありませんが、Webブラウザーで信頼できるのは彼らのおかげであることを明確にします。 FirefoxやChrome、または他の多くのプログラムのように。

ウィンドウマネージャー

ウィンドウマネージャーはイメージサーバーと直接連携します。ウィンドウの作成、変更、クローズの方法を管理(冗長性を許容)するため、その作業は「下位」レベルです。 それらは通常非常に単純であり、デスクトップ環境はこれらに基づいて構築されています。 リストは大きいですが、私はここに彼らがいるという考えだけを残します ミニマリストソフトウェア、 これにより、イメージサーバーをかなり基本的に制御できます。

デスクトップ環境

イメージサーバーの操作を可能にするだけでなく、カスタマイズ機能も提供する、より特殊なソフトウェアのセット。 これらの中で最も古くて重いのはKDEとGNOMEですが、LXDEやMate、Cinnamonなどのより軽い環境もあります。

CLI(コマンドラインインターフェイス)

イメージサーバーの世界を簡単に見てから、もう一度トピックに移ります。 CLI、コマンドラインによって実行されるプログラムを意味します。 git, vim, weechat、またはまあ、他に頭に浮かぶものは何でも。 コマンドラインで実行されますが、次のような一種の「グラフィカルインターフェイス」を表示するプログラムについて話していることがわかります。 weechat o vim。 それらを試したことがないすべての人に、私はそれらをお勧めします、それらは基本的に私が一日中使用するものです。

CLIがGUIより優れている理由

かなりシンプルなものを試してみましょう🙂先日、パッチを作成したいと思いました Portage(Gentooのパッケージマネージャー)。 他の優れた共同プロジェクトと同様に、コードの行数は70kを超えます。 NinjaIDE(PortageはPythonで書かれています)のようなIDEでそれを開いてみてください。画面が読み込まれ始めると、マシンが非常に遅くなることに気付くのにそれほど時間はかかりません(少なくとも私のi7はそうしました)。コードを開き、デフォルトの色である«ヘルプ»に変更します。

今同じことをしてみてください vimそれはほんの数ミリ秒で私をロードし、同時に「きれいな」色と他のすべてを入れました。

CLIはずっと前から

ここのいくつかはそれらのプログラムが antiguos、私はそれらを呼びます 壮健。 構築に費やされた時間数を見ることができれば emacs, vim, gdb、および他の何百ものコンソールプログラムでは、コードと機能の量が非常に多いため、解決する必要のあるすべてのものを実質的にすでに解決していることに気付くかもしれません。 たくさんの GUI CLIですでに堅牢なプログラムの場合、同じ量の機能を持つことはありません。これは、たとえば、使用可能なサブコマンドごとにタブを作成した場合などです。 git、私たちは選択肢の間で自分自身を失い、それは仕事を難しくするので、逆効果になります。

CLIの方が速い

魔法は鍵から始まります Tab、これは端末のデスクトップを閲覧するときの親友であるだけでなく、適切に構成されている場合は、長い文を2文字とタブ、3文字とタブ、または文字とタブ。

しかし、これが唯一の利点ではありません。時間をかけて学んだ私たちの利点です。 vim o emacs 最近のIDEよりも学習曲線は少し高くなっていますが、最終的には生産性の結果は驚くべきものであり、マウスを動かしたときに失われる可能性のある時間を想像することはできません。 90%の時間、キーボードに手を置くことは集中力を教えるだけでなく、キーボードで多くのことを入力するという事実はあなたを非常に機敏で生産的にします。 そして今、私たちは前のポイントに戻り、長い間私たちと一緒にいましたが、これらのようなプログラムはすでに誰かが考えることができるすべての機能を備えています、vimを使用する私たちの人々にとってかなり一般的なことわざが思い浮かびます:

4つ以上のキーを使用する場合は、より良い方法があるかもしれません。

シンプルでありながら強力なvimを使用すると、多数のキーと可能な組み合わせですべてを実行できます。学習を停止することはありませんが、それを使用するためにすべてを知る必要はなく、約10または15で開始できます。より生産的になります。

CLIで完全に制御できます

マウスまたはイメージサーバーからのプログラムを使用して操作を実行する場合、クリックした瞬間に実行されるすべての追加構成が常に存在するとは限りません。これは端末では発生しません。ここでは、何の絶対的な力があります。実行されるかどうか、どのオプションまたはどの程度で実行されるか。 時間が経つにつれて、あなたはあなたが思っているよりも必要なものが少ないことに気づき、それはあなたがより集中的な方法で物事を行うのを助けます。

GUIにも独自のものがあります

常にCLIを使用する必要があると言うつもりはありません。これも理想的ではありません。私自身、ほぼ常にGUIを使用し、Chromeを使用してこの投稿を作成し、Evolutionを使用しているメールを確認しています(ただし、Evolutionも使用しています)。 mutt ごく最近)。 そして、これはすべての中で最大の神話だと思います...人々はGNU / Linuxがちょうどそれらを終了していると思っています、私は私のデスクトップ環境が好きです、それは非常にミニマリストです、しかし私はそれが好きです🙂そして私は通常XNUMXつかXNUMXつしか持っていません実行中のプログラム、Chrome、Evolution、ターミナル🙂

これらは、私がCLIをとても気に入っている理由のいくつかであり、試してみるように勧める理由のいくつかです。後で、GUIよりも多くのCLIを使用するようになる可能性があります😉ご挨拶


記事の内容は、次の原則に準拠しています。 編集倫理。 エラーを報告するには、 ここで.

17コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   匿名の

    «他の優れた共同プロジェクトと同様に、コードの行数は70kを超えています。 この部分は私をうるさくしました。 コードを同じファイルに圧縮する必要がある理由は技術的に不可能ですか? 異なるエンティティ(ファイル/クラス/モジュール)で動作を分離する方が良いのではないでしょうか?
    開発の形が不足しているために提案する利点を脇に置いて、ある技術を別の技術に押し付けることは正当な理由ではないようです。 いずれにせよ、私はそれがどの特定のプロジェクトを指しているのかわからずに話している、その働き方を強制するより大きな原因があります

    1.    クリスADR

      こんにちは、

      これには少し説明が必要かもしれませんが、私が「良いプロジェクト」と呼んでいるのは、行数が、それが成長し続ける健全なコミュニティであることを表していることを意味します。 行数がはるかに少ないプロジェクトもありますが、開発は非常に健全です。 実を言うと、Portageはできるだけ多くのファイルに分割されていますが、ライブラリや他の多くの機能につながるスイッチのように、部分をグループ化しておく必要があります。 しかし、今日、プロジェクトを多くのIDEにインポートする場合、それは、プロジェクト内のすべてのファイルを読み取り、正しい「ビジュアル」形式を設定しようとすることを意味します。

      もう少し明確にしたいと思います🙂そしてコメントしてくれてありがとう。
      よろしく

  2.   匿名の

    コマンドラインを使用していますか? はい。ただし、該当する場合に限ります。 つまり、より快適で高速な場合です。 たとえば、特定のプログラムをインストールする場合は、ソフトウェアマネージャーを開いて検索し、インストールのマークを付けて[インストール]を押すよりも、sudo apt installprogramnameと入力する方が便利です。 しかし、一般的にはそうではありません。 たとえば、最も気に入った20曲をあるディレクトリから別のディレクトリにコピーする場合は、ファイルマネージャから膨大なリストを静かに確認しながら、Ctrlキーを押しながらクリックしてドラッグアンドドロップするのが非常に快適です。 別の例:ディスクをパーティション分割する場合は、手動で行うよりも、gparted(ディスクがどのようになるかをグラフィカルに表示しながら多数のコマンドを実行するプログラム)を使用して行う方がはるかに優れています。 リストは無限である可能性があります。 GUIは、特定のcliアプリケーションでは不可能な機能を追加することに加えて、(実際には通常)作業をはるかに簡単にすることができます。

    1.    クリスADR

      それは、コマンドラインの使いやすさに依存します...例:

      find dir/musica -name "archivo" -exec grep cp {} dir/nuevo \;

      バッシュにちょっとした魔法をかけるだけで、曲の名前を入力するだけで同じように実行する関数を作成することもできます。

      何かのようなもの

      mover(){
      find dir/musica -name $1 -exec grep cp {} dir/nuevo \;
      }

      そして準備ができました! シンプルですべての曲を動かすことができます

      mover cancion1.mp3

      🙂XNUMXつ目については、GUIはコマンドの記憶や繰り返しを回避することでジョブを「シンプル」にしますが、これは一般的なフレームワークでのみ役立ちます。特殊なものが必要な場合、gparted、またはその他のGUIが短い場合があります🙂追加の機能を追加しないでください。CLIに存在する機能(すべてではない)のみを取得してグループ化しますが、作成はしません。

      よろしく

      1.    匿名の

        プロセスがどれだけ自動化されていても、次のようになります。
        song1.mp3を移動します

        次に、必然的に、次のようになります。
        song2.mp3を移動します
        song3.mp3を移動します
        .
        .
        .
        song20.mp3を移動します
        感動的な曲がたくさんあります...
        どのファイルマネージャーでも..20回のクリックとドラッグアンドドロップのジェスチャだけで済みます。 わかりませんが、少なくとも私のマネージャー(Dolphin)は、5曲のリストを名前、日付、サイズ、タグ、ランキング、アルバム、アーティスト、期間などで簡単かつ超高速(100秒未満)で並べ替えることができます。私にとってそれは生産性であり、コマンドラインに機能を追加しています。

        他の例については..GParted:OK ..フォーマット時にinodeあたりのバイト数のデフォルト値を変更するなど、非常に特殊なものが必要な場合は、コンソールに移動する必要があります..しかし、それはそうではありませんその正常。 99%の時間、GPartedは非常にシンプルで非常に高速な方法で私たちのニーズを完全に満たし、少なくとも私にとっては、それは生産性でもあります

        よろしく

        1.    クリスADR

          これは、最も単純な形式の自動化の例です。「最も気に入った20曲をあるディレクトリから別のディレクトリにコピーしたい場合」とおっしゃったように、これらはすべて、「落ち着いて」移動するのにかかる時間とともにカウントされます。あなたの目とマウスがそれを克服することができれば、それを注文し、またクリックするなどしてリストを確認してください、ターミナルはそれとはるかに多くを0.1行で許可します、おそらくあなたのプロセッサで約XNUMX秒の実行(それが古い場合でも) 、まあ、私はGUIに行きます🙂そして私がそれらを使用しないと言ったわけではありません、それらは多くの有用なものを持っています、私はそれを否定しません、しかし私は少なくともターミナルではるかに大きな多様性を見つけました仕事を自動化するとき、私が毎日少しのプログラミングを練習するのを手伝うことに加えて。 SysAdminsの間でよくあることわざは、「同じことをXNUMX日にXNUMX回以上行う場合は自動化し、XNUMX日にXNUMX回XNUMX日以上行う場合は自動化し、月にXNUMX回でも行う場合は自動化する」というものです。 。」

          でもねえ、味と色の点では、それぞれが独自のものを持っています、私は自分が好きなものを共有することに制限しています🙂そして多分emacs、vim、または同じ端末のようなものを「恐れている」人がたくさんいます、これらの投稿で、私はあなたに少しの自信と好奇心を与えて、あなたが試して決定できるようにしようとしています🙂

          よろしく

          PS:GUIが日常生活で必要な複雑さのために物事を解決しない多くの開発者を知っています。おそらく「一般的な」ユーザーには決して見えませんが、それはより多くの「一般的な」ことを意味するものではありません。 「これらのツールを使用して、同じより用途の広いメリットを得ることができます。

          1.    匿名の

            私はまだこのタスク(およびそれ以上)では、コマンドラインよりもファイルマネージャーを使用する方がはるかに短い時間で済むと思います...しかし、あなたが言うように、誰にとっても好みと色があります。

            私は端末を否定も恐れもしていませんが、それをほぼ必須の判決とは見なしていないので、「コマンドラインはい、ただし適切な場合」と言うことから始めました。

            開発者に関しては、すべてがありますが、スケールは明らかに一方の側にヒントを与えます:私はあなたに見てみることを勧めます:

            https://pypl.github.io/IDE.html

            「一般的な」開発者は、「テキストのみ」のエディターでの作業に賭ける開発者と比較した場合、機能が豊富なグラフィック環境で作業することの利点を理解しているようです。

    2.    あなたは燃える

      たとえば、最も気に入った20曲をあるディレクトリから別のディレクトリにコピーする場合は、ファイルマネージャから膨大なリストを静かに確認しながら、Ctrlキーを押しながらクリックしてドラッグアンドドロップするのが非常に快適です。

      VifmやRangerなど、グラフィックと同じかそれ以上の実用的なコマンドラインファイルマネージャーがあります。 また、ディスクを分割するために、encursesインターフェイスを備えたcgdiskのようなコマンドラインアプリケーションがあります。

      1.    クリスADR

        まあ、それは本当です🙂なぜそんなに多くの人がターミナルを恐れているのか私は本当に知りません、それは実際には非常に堅牢で用途の広いツールであり、誰もが少なくとも一度は深く試してみる必要があります。

        共有と挨拶をありがとう。

      2.    匿名の

        はい、ターミナルファイルマネージャーはグラフィックスの前に存在します。 実用性に関しては、それはあなたが望むものに依存します。 すべてのグラフィックファイルマネージャーには、タブ、お気に入り、表示モード、プレビュー、1000通りの方法で注文できる、端末を接続する、プラグインをインストールするなどの機能が備わっています。 これにより、どのテキストファイルマネージャーよりもはるかに用途が広くなります。

        善は必ずしも醜い必要はありません

    3.    ちゅっぴ35

      それはあなたがcliで行うことを学ぶことだけであり、私はそれがより簡単になることを保証します、あなたが言うことはあなたがrsyncで行うことは非常に簡単であり、あなたはそれを簡単にスクリプトにすることができます。

      私はあなたが言及するすべてを持っているレンジャーと呼ばれるcliファイルマネージャーをお勧めします。

  3.   アルベルトカルドナ

    素晴らしい!!
    Gentooをインストールすることをまだ決めることができません🙁(私はBunsenLabsにいます)現在openboxを使用しており、Bashスクリプトにnanoを使用しています
    しかし、それは私がVimまたはEmacsに挑戦したくなります!
    よろしく
    私はあなたの投稿を読むのを楽しんでいます

    1.    クリスADR

      アルベルトさん、ありがとうございました🙂私の記事が気に入ってくれてとてもうれしいです。投稿を書くのを楽しんでいます。
      私はあなたが元気を出してくれることを願っています、そしてもちろんあなたはそうします、事は常に何か新しいことを試みることです🙂

  4.   クリスADR

    さて、これで私は最後のXNUMXつのコメントに答え終えました、そしてモデレーターがそれについてもっと受け入れないことを感謝します、これはどこにも行きません、そしてアイデアは賛成または賛成の一連の議論でコメントのリストを埋めることではありませんどちらかに対して。

    「多様性」に関しては、おそらくGUIだけがプラグインを持っていると考える人は誰でも、実際には、ターミナルプラグインはそれらを使用する人々と同じくらい多様で機能的であり、最も明確な例は

    https://vimawesome.com/

    多くのIDEよりも用途が広いvimのプラグインのほぼ無限のリスト…そしてそれについて言えば、そのリストにはWindowsとMacでIDEを使用する人々が含まれていることは言及されていません。これは、Vimが話していることを実際によく話します。 Eclipseは、4つのプラットフォームでEclipseを使用している人の数を比較すると、VimがXNUMX位にふさわしいことを恥じることはありません。

    しかし、もう少し進んで...「普通の」人々が何かを使用するということは、これが必ずしも良いとは言えませんが、おそらくWindowsは他のシステムよりもはるかに優れているでしょう🙂おそらく、彼らが何かを使用することを学ぶことを好まないというだけです簡単なオプションを好む...またはあなたの会社が標準を実装することを決定したため(Eclipseは多くの企業の標準であり、AndroidやVisualStudioのように多くのユーザーを説明します...唯一の手段ですそれぞれの言語で作業する... Vimはそれを使用する人の自由な選択です)

    。 「醜い」は非常に主観的な用語です。Qt、WebKit、さらにはMac OSインターフェイスのデザインを「醜い」と見なすことができます...しかし、それは他の誰かがそれをそのように見ているという意味ではありません。習慣のウンブリ

    よろしく

    1.    匿名の

      返信する権利を与えたくないという願望を尊重します。

      情報提供のみ:
      https://vim.sourceforge.io/download.php

  5.   クラウディオ

    私はAnonimoに完全に同意しますが、私の場合、私は単純なユーザーであり、アナリストやプログラマーの深い知識はありません。 そのため、Linuxの多くの宝物を失敗させるには、GUIが必要です。たとえば、今日と2017年であるため、Linuxネットワークでフォルダを簡単に共有できるGUIアプリケーションはありません。また、Linuxと言いますが、取得できません。 SambaとWindowsで、私はネットLinuxネットワークについて話します。 Linuxネットワークで共有できるようにするには、特定のNFSを構成する必要があり、コマンドラインからのみ、時間が無駄になります。また、Windowsのように簡単にGUIを使用することが難しい理由についても説明しません。
    ChrisADRによると、「私は若いソフトウェア開発者です」ということで、このテーマについてよく知っていると思いますが、今説明したことを容易にするGUIアプリケーションを開発する必要がありますか、それとも純粋なタイトルで自慢できますか? それは、医師が手術をしたことがなくても、どのように手術を行うのが良いかについて意見を述べたのと同じです。 「法廷でピンゴが見える」「ソフトウェア開発者」の立場から意見を述べる前にGUIアプリケーションを開発し、端末を使わない方がいいのなら、使う人の代わりに身を置く必要があります。 Linuxとそれを使用する人。 Linuxネットワークでのファイル共有について、GUIアプリケーションを紹介および共有しているChrisADRの記事をご覧いただければ幸いです。 現時点では、Windows共有のためだけにSambaを使用している場合を除いて、何もありません。

    1.    ビル

      プログラムの作成は、ある午後には簡単なことではありません。少なくとも数週間の労力が必要です。さらに悪いことに、エラーを修正し、以前に使用したものを廃止する新しい関数ライブラリと一緒に更新するために、何年もの努力が必要です。 。、さまざまなディストリビューションのパッケージ、..。
      しかし、Windowsを必要とせずにXNUMXつのGNU / Linux間でも使用できるSAMBAがすでにある場合、なぜNFSソリューションを使用したいのですか?
      オンラインで表示されるマニュアルではLinuxとWindowsについて説明していますが、指示に従ってLinuxからフォルダーを共有してから、Linuxから別のネットワークフォルダーに接続するだけです。
      Ubuntu 16.04には、まだこのテーマの簡単な実装があるようです。 http://www.hernanprograma.es/ubuntu/como-compartir-una-carpeta-desde-ubuntu-16-04-a-traves-de-samba/