開発ツール:コマンドライン


こんにちは再び!
このシリーズの次のポストへようこそ!今日はいくつかのコマンドラインとターミナルエミュレータの上に行くつもりです.再び、これはいくつかの良いオプションをチェックアウトするので、オペレーティングシステムの間にかなり多くのトピックが変更されます!右にジャンプしましょう!

ターミナルエミュレータ


記憶通路を旅しましょう.コンピュータの初期に戻って、誰もが自分のコンピュータを持っていた.その代わりに、機関は、そのスタッフが使うのを許すコンピュータを持っているかもしれません.このコンピュータにアクセスするには、基本的なモニタとキーボードのセットアップがあったかもしれませんVT100 . このセットアップは端末と呼ばれ、メインコンピュータで処理されたコマンドを入力できました.今日まで進んでください、そして、あなたは端末のような何かを使用しているかもしれません.アプリ、iterm、キティ、またはGNOME端末.これらはターミナルエミュレータと呼ばれています-彼らは古い学校の端末のように行動するように設計され、コンピュータからの入力と出力を許可するソフトウェアです.唯一の違いは、あなたが働いているコンピュータがあなたの目の前で、キャンパスの異なる建物ではないことです.
あなたはなぜ私たちは古い概念を模倣する何かを使用して疑問に思うかもしれない-私たちは今のGUIのツールを使用しないでください?いくつかの点で、あなたは正しいです-古いツールの多くは、よりグラフィカルな選択肢に置き換えられました.しかし、それがわかるように、テキストはまだコンピュータと対話するすばらしい方法です.我々はすべてのソフトウェアに組み込まれた偉大な音声コマンドがあるまで、テキストは多くのことを行うための最速の方法です.

シェル


今、我々はテキストを使用してコンピュータと対話するために使用できるプログラムの種類を知っている.シェルは、そのテキストを読み取り、何をすべきかを決定するプログラムです.文字列をとるgit commit -m 'Add the things!' そして、それはgit パラメータを渡す必要がありますcommit -m 'Add the things!' . プログラムを実行し、シェルのように実行をラップします.😉
さまざまなシェルプログラムの多くは、すべての独自の機能です.多くの場合は、シェルプログラムの実際の機能を非表示にするより生産的にするウィジェットと簡素化を追加します.いくつかのあなたの前のコマンドと対話するための空想的な方法があり、他のシェルに直接Pythonのようなプログラミング言語を統合します.また、これらのシェルの各々は、あなたがコマンドライン機能とプログラムを書くことができるプログラミング言語です.

バッシュ


Bash ( Bourne Again Shell )はほとんどのUnixオペレーティングシステムのデフォルトシェルです.タブ補完とエイリアスのような多くの素晴らしい機能を持っています.これは私が使用するシェルです-私はそれが好きなので、そこにたくさんの素晴らしいリソースがあるので、それはあまりしない.それは良いシェルのベースラインの一種であり、多くの他のbashによって設定されたアイデアに基づいています.bashはまた、現在のスイッチコンピュータ/OSのはるかに簡単にWindowsに統合されます.

ZSH


zsh ( z - shell )は基本的にbashのよりインタラクティブなバージョンです.タブ補完に加えて、先の検索とオートコンプリートタイプを備えています.ZSHを使用するほとんどの人ohmyzsh , これはあなたのシェルのいくつかの本当に良いデフォルトを与える.多くのユーザーフレンドリーな機能とそれのまわりの良いコミュニティがあるので、これはしばしば新しいDEVSのための良い選択です.


fish zshとよく似ています.それは多くの偉大なユーザーフレンドリーな機能を持っている.魚は良い構文が強調表示され、良いことができます!ジュリアエヴァンズは、利益の上で大きな記事を持っていますfish . 私は将来的にそれを再生するために将来的にこれに切り替えることを考えています.
トッドは魚が好きで、コメントを共有しました.

Todd Eidson

+ 1魚の場合.私は、ほぼ2年の間今それを使っていました.私は大ファンです.またoh my fish パッケージ管理と変更のために.


xonsh クロスプラットフォームとは、シェルの経験にPythonを統合しています.Pythonが好きでシェルスクリプトを書くのが好きでないなら、これは良いオプションかもしれません!

その他


シェルプログラムがたくさんあります.人々はこれらのことについて多くの意見を持っている.実験ビットとどのようなプログラムを参照してください最も.“bashの代替”を検索するいくつかの出発点を見つけるのに良い場所です.

コマンドプロンプト


端末エミュレータがどのように動作しているか、シェルがどのように動作しているかを知っているので、コマンドプロンプトについて話しましょう.コマンドプロンプトは、コマンドを入力する場所です.入力を促します.これはシェルに渡されます.ほとんどの場合、おそらく別の文字列またはグラフィカルなプログラムを開くの出力のいくつかの並べ替えを取得します.シェルと同じように、コマンドプロンプトで作業するときに多くの可能性があります.表示される方法は通常シェルで処理されますが、基本的な方法はPS 1という環境変数を設定することです.環境変数は、シェルがどのように動作するかを伝えるグローバル変数です.
あなたがこのすべての用語についてもう少し読むことに興味があるならば、this StackOverflow answer 本当に良いです.

基本コマンド

  • cd <directory> - チェンジ<directory> - 例:cd ~/Projects
  • ls <directory> - ファイルを一覧表示<directory> - 例:ls ~/Projects
  • cp <file> <location> - コピーする<file> to <location> - 例:cp ~/Projects/test.txt ~/textfile.txt
  • もっと勉強したいなら、チェックをおすすめしますthis tutorial アウト.

    あなたのシェル超大国を与える


    一度シェルを持って、あなたのワークフローに合わせてそれをアップグレードする必要があります!

    良いですね!


    まず、きれいなプロンプトを作ることによって始めましょう.ほとんどのシェルでは、これはPS 1環境変数を変更することによって行われます.あなたのホームフォルダでファイルを作り始めるにはcd ~ ). ファイルを作成しましょう.bash_prompt . あなたがVSコードをインストールしたならば、ちょうど実行してくださいcode .bash_prompt .
    そのファイルが開くと、これを先頭に置きます.
    #!/usr/bin/env bash
    
    # Shell prompt
    ## Based on wuz/.files (github.com/wuz/.files)
    
    bold="\[\e[1m\]"
    reset="\[\e[0m\]"
    black="\[\e[30m\]"
    blue="\[\e[34m\]"
    green="\[\e[32m\]"
    cyan="\[\e[36m\]"
    red="\[\e[31m\]"
    yellow="\[\e[33m\]"
    purple="\[\e[35m\]"
    brown="\[\e[33m\]"
    gray="\[\e[37m\]"
    dark_gray="\[\e[90m\]"
    light_blue="\[\e[94m\]"
    light_green="\[\e[92m\]"
    light_cyan="\[\e[96m\]"
    light_red="\[\e[91m\]"
    light_purple="\[\e[95m\]"
    light_yellow="\[\e[93m\]"
    white="\[\e[97m\]"
    
    
    これは私たちの仕事の色の束を与える.ちょうど記録のために、それらの色はANSI escape codes .
    いくつかの色が設定されたので、新しいプロンプトを作りましょう.あなたがそこにセットしたものの下に直接これを加えてください.
    
    # ^ rest of file ^
    
    dir_chomp() {
      if [ $PWD == $HOME ]; then
        echo "~";
      else
        local ns="${PWD//_/ }"
        local nh="${ns/#$HOME/\~}";
        local wd="${nh%/*}";
        local wdnhrd=`echo $wd | sed -e "s;\(/.\)[^/]*;\1;g"`
        echo "$wdnhrd/${ns##*/}";
      fi
    }
    
    # Set the terminal title and prompt.
    PS1="${bold}${light_green}\$(dir_chomp)${white}";
    PS1+="${blue}${bold}\n${reset}"
    export PS1;
    
    ここではdirdir - chompという関数を作成します.~/Projects/Work/app に変換し、~/P/W/app . そうしないなら、この行を置き換えてください.PS1="${bold}${light_green}$(dir_chomp)${white}"; with PS1="${bold}${light_green}\w${white}"; . これは完全なディレクトリパスを表示します.また、上記で定義した変数を使って色を設定します.これらの変数を使用すると、それらの後にそれらが到達するまで、それらはすべての文字をその色にするでしょう${reset} または別の色変数.
    私たちがそこにいる今、あなたはタイプすることができますsource ~/.bash_prompt そして、あなたはあなたの新しいプロンプトを見ることができるはずです!航行するcd を参照してください 文字.閉じるこの動画はお気に入りから削除されていますcode .bashrc ファイルの最後に追加します.
    # end of ~/.bashrc
    
    source ~/.bash_prompt
    
    今すぐあなたのエディタに固執する必要があります.

    エイリアス


    コマンドラインを使用する場合は、同じカップルコマンドを繰り返し実行して終了します.時々、それらのコマンドを短くするのを助けることができます、そして、これは別名が入るところです.これらを直接あなたの~/.bashrc ファイル.次のようになります.
    alias short='longer command --here'
    
    これが私のエイリアスからの例です.
    alias d='docker'
    alias di='docker images'
    alias da='docker ps -a'
    alias drma='docker rm -f $(docker ps -q)'
    
    alias ip="dig +short myip.opendns.com @resolver1.opendns.com"
    alias ipl="hostname -I | cut -d' ' -f1"
    alias ips="ifconfig -a | grep -o 'inet6\? \(addr:\)\?\s\?\(\(\([0-9]\+\.\)\{3\}[0-9]\+\)\|[a-fA-F0-9:]\+\)' | awk '{ sub(/inet6? (addr:)? ?/, \"\"); print }'"
    
    alias c="code ."
    
    alias be="bundle exec"
    
    今、あなたは良いとブートするあなたの生産性を見ている!あなたのコマンドプロンプトをカスタマイズするために行うことができますカスタマイズの多くがあります!私はいくつかのGitのステータスツールを持っています.詳細については、チェックアウトAwesome Bash リストまたは他のシェルのための他のリストの“素晴らしいzsh”または“素晴らしい魚シェル”Googglingしよう!
    ハッピーハッキング!