Linuxの開発ツール

一般的なツール:

パッケージ管理ツール:YUM
プログラミングツール:VIM、GCC / G ++、 gdbの
プロジェクト関連のツール:メイク/ Makefileは、GIT
のソフトウェアパッケージを参照してください:yumのリスト/ grepのキー
のインストールパッケージ:YUMパッケージ名のインストール
削除パッケージを:YUM削除パッケージ名

コンパイラ:VIM

12種の合計VIM動作モード、一般的に使用される3つが存在します。
ノーマルモード:主にファイル操作コマンドの内容を参照
、削除、移動、文字、単語または行の画面のカーソル制御に、そしてコピー挿入モードの下のセクションに移動したり、最後の行モードに

挿入:挿入データ
のみ挿入モードでは、それはコマンドラインモードに戻るには、テキスト、プレス「ESC」キーを入力すること行うことができます。このモードは、最も頻繁に私たちの後ろの編集モードで使用されています

ラインモード:ファイルの内容を保存し、終了し
たファイルが保存されているか、終了、また文字列を探して、ファイルを置き換えることができ、リストの行番号と他の操作。コマンドモードでは、+シフト:このモードに入ります。オープンvimの、一番下の行直接入力モード:すべてのあなたのパターンを確認するには

モード切替:

ノーマル- >挿入:IAO IAO
挿入- >ノーマル:ESCキー(通常モードへのすべてのモードが適用されている)
I:カーソル位置から始まる
A:カーソルバック最初に挿入された1つの文字
(O)増加下方カーソルラインアウト新しい行が始まる
I:挿入を開始するために先頭にカーソルを移動
Aを:挿入行の先頭の末尾にカーソルを移動
O:新しい行が始まるに挿入された一番上の行のカーソルを追加し
、通常の- >ボトムライン:入力:
:(現在のファイルの保存)W
:Qを(終了)
:WQ(保存して終了)
:Q!(強制終了しました)

通常モードでのコマンド:

挿入モード:

  1. 押して「i」の「モードINSERT」挿入モードに切り替えるために、押して「i」は挿入モードに現在のカーソル位置から入力ファイルの始まりです。
  2. 押して「」挿入モードに入るようにすると、現在のカーソル位置の開始タイピングからの位置です。
  3. 「O」を押して挿入モードに、新しい行を挿入し、行の先頭からテキストを入力します。
カーソル移動操作:
  1. "H"、 "J"、 "K"、 "L"、それぞれ、カーソルを制御するためには、アップ、ダウン、右グリッドを残し
  2. 押して「G」:記事の末尾に移動
  3. 押して「$」:「最後の行の」カーソル行に移動
  4. 押して「^」:カーソル行の「最初の行」に移動
  5. 押して「W」:カーソルが次の単語の先頭にジャンプします
  6. 押して「E」:カーソルが次の単語の接尾辞にジャンプ
  7. 押して「B」:最後の単語の先頭にカーソルバック
  8. 「#1」をクリックしてください:#カーソルを行の最初の位置に、のような:5リットル、56リットル
  9. 押して[GG]:先頭にテキストを入力してください
  10. 押して[シフト+ G]:テキストの末尾に
  11. 押して「CTRL」+「B」:画面「の後には、」移動します
  12. 押して「CTRL」+「F」:「前方」Aを移動するための画面
  13. 押して「CTRL」+「U」:画面「後方」半ページを移動します
  14. 押して「CTRL」+「D」:「前方」半ページを移動するための画面
ファイルの内容の操作:
  1. 「YYは」:どこバッファにカーソル行をコピーします。
  2. 「NYY」:カーソルナビゲーションの最初からダウンをコピーn個の行
  3. 「P」:行にカーソル下のペースト。注:copyコマンドに関するすべての「Y」はコピーを完了し、機能を貼り付けるには、「P」を使用する必要があります
  4. 「P」:カーソルラインアイテム上記ペースト。
  5. 「DD」:削除カーソルライン
  6. 「NDD」:ラインカーソルの先頭から削除n行
  7. 「DWが」:カーソル位置の単語を削除します。
  8. 「X」:を押すたびに、文字を削除するには、カーソルの位置
  9. 「U」:前のアクションに戻ります
  10. "Ctrlキー+ rの":回復の取り消し
  11. 「GGがG =」フルテキストの配置
ラインモード動作:
  1. 「セットNU」:「セットNU」を入力しますが、ファイルリスト内のそれぞれの行の行番号の前になります
  2. 「#」:「#」記号は番号を示し、コロンの後に番号を入力し、Enterキーを押して行にジャンプします
  3. 「/キーワード」:プレス「/」キー、そしてあなたが初めてではない、あなたがしたいキーワードを検索した場合、あなたはいつでも押すことができます検索したい文字を入力して「n」は、あなたがしたいキーを見つけるために戻ってきます単語まで
  4. 「キーワード?」:「?」ボタンを押し、その後、あなたが検索したい文字を入力するには、あなたがしたいキーワードを見つけるのは初めてではない場合、あなたは常に「n」は、あなたがしたいキーを楽しみにしています押すことができます単語まで
  5. 「W」:ファイル「W」の文字を入力してくださいコロンを保存することができます

コンパイラ:GCC / G ++

機能:ハイレベル言語は、機械可読命令として解釈さ

  1. 前処理:GCC-Eのすべてのコードを示して
    マクロ定義ファイルを含む前処理の機能が含まれている、条件付きコンパイル、コメントしたいです。
    命令を前処理すると、行番号#の始まりです。
    オプションの「-E」は、このオプションの役割は、GCCコンパイラは、前処理工程の終わりで停止できるようにすることです。
    オプション「-o」は、対象のファイルを参照する「私は」C元のプログラムとして、ファイルが前処理されました。
    例:gccを-Eのhello.c -o hello.i

  2. コンパイル:セマンティック文法エラー訂正を。エラーがない場合、プログラムは、アセンブリ言語GCC-Sとして解釈され
    、この段階で、GCCは、第1実作業がチェックインコードと正しい、GCCを行うことを決定するなど、コード、構文エラーの仕様を確認してくださいコードはアセンブリ言語に翻訳します。
    ユーザーはビューに「-S」オプションを使用することができ、このオプションはのみコンパイルなしでコンパイルされ、アセンブリコードを生成します。
    例:gccの-S hello.i -o hello.s

  3. アセンブラ:アセンブラ言語は、バイナリの機械語命令のgcc-Cのように解釈される
    コンパイル段階ターゲットファイルに「.S」ファイルのコンパイルフェーズを生成することである
    読者は、このオプションを使用することができます『-c』あなたは、アセンブリコードはに変換されている見ることができますバイナリオブジェクトコードの".oの"
    例:GCC -c hello.s -o hello.o

  4. リンク:すべての.oファイルとパッケージ化ライブラリは、最終的に実行可能なプログラムになった
    成功のコンパイル後、リンクがステージに入りました。
    例:gccのhello.o -oハロー

図書館:パッケージ・ファンクションコードファイルをパッケージ化

リンク方法:動的リンク、静的リンク。

1.ダイナミックリンク-ダイナミックリンクライブラリ
の実行機能のシンボルライブラリ内の情報のテーブルを追加し、実行可能プログラムを作成することは比較的小さいです。実行可能プログラムに直接添加して達成する機能はありませんので。だから、プログラムを実行するときには、動的ライブラリの存在に依存しています。しかし、複数のプログラムは、メモリ内の同じデータベースを共有することができます。これにより、コードの冗長性を低減します。DLLの一般的な接尾辞「の.so」

2.静的リンク-リンク静的な
すべての直接のライブラリで実装が実行可能なプログラムに書き込まれていることを実行可能なプログラムコード。実行可能プログラムを結果として得られる比較的大きいです。あなたがプログラムを実行すると、複数のプログラムを静的ライブラリファイルにリンクされている場合、メモリ内のコードの冗長性の原因となります。しかし、静的にリンクされたプログラムが実行されたインベントリを依存していません。その拡張子は、一般的に「.A」であります

GCCのデフォルトのリンクモード:ダイナミック
デフォルトの接続標準Cライブラリの実行可能プログラムを生成します。

デバッガ:GDB

1.デバッグ前提:プログラムのデバッグバージョン
のプログラムのgccのリリースバージョンは、プログラムのコンパイル時にデバッグプログラムを生成するので、使用のgcc-gまで、デフォルトで生成される
デバッグを:

1.gdbローダシンボル情報

gdb./main gdb->ファイルメイン

2.フロー制御指示

実行:直接プログラムを実行し
デバッグを開始:開始
ファイルリストの近くにコードの表示デバッグ行を:リスト行目
まで:まで指定された行のファイルを直接実行します:ライン
次へ:次のステップ(直接操作)
STRP:次のステップ(トラッキング機能が入力されている)
続行します。現在の場所からプログラムを起動します

3.ブレークポイント命令に関連します

休憩:セットの行にブレークポイント
ブレークファイル:指定された関数に指定行ブレークポイント:ライン
ブレークFUNC_NAME:指定した関数ブレークポイントで開始するための
情報のブレーク:ブレークポイントの情報を参照
、削除ブレークIDを:指定(シリアル番号ID)を削除オフポイント
の削除ブレーク:削除すべてのブレークポイントは、
変数名を見て:変数のブレークポイントに

4.他の命令

終了:GDB終了
breaktrace(またはBT)を:ビュー関数呼び出しとパラメータのレベルは
(p)を印刷:印刷値式を、あなたは変数式の値を変更したり、関数を呼び出すことができ

自動化されたビルドツール:メイク/ Makefileの

1.Makefile:プレーンテキストファイル-レコードは、ビルドプロセスルールは、プロジェクト
作る:Makefileの通訳-プロジェクトの完全なプロジェクトをビルドするためのMakefileのルールの漸進的な解釈を構築します

Makefileのルールが書かれています:

対象:依存オブジェクトの
トンを実行する命令\

対象:実行可能ファイル名を生成するには、
依存オブジェクトを:ソースファイルは、最後のターゲットとするユーザーのニーズを再生成するかどうかを判断するために、ターゲットオブジェクトによって変更されました

事前定義された変数:
$ ^は、すべての依存オブジェクトを表し
$ @ターゲットことを示している
$ <最初の依存オブジェクト
がある場合にかかわらず、オブジェクトが最新であるかどうかの、あなたが再生成する必要があるたびに(通常はクリーン宣言するために使用-ステートメントの疑似オブジェクト:.PHONYは)

解釈のルールを行います。

Makefileの1.makeのみ完全出口生成するために、第一のターゲットオブジェクトが生成される見つける
最初の依存オブジェクトを生成する必要があるかどうかを決定する、ターゲット・オブジェクトを生成する前に2.(生成規則は、最初の従属オブジェクトを見つけます。)

//声明一个伪对象:
.PHONT :main
//生成可执行程序:
main:main.o  child.o 
gcc $^ -0 $@
//通配所有的.o的生成规则:
%.o:%.c

最も簡単:

main:main.c child.c
gcc $^ -0 $@
.PHONY:clean
clean:
      rm -f  main

更新:

main:main.o  child.o 
gcc $^ -0 $@
%.o:%.c
gcc $^ -0 $@

.PHONY:clean
clean:
      rm -f  main
wildcard:获取当前路径下以.c结尾的文件名
src=$(wildcard ./*.c)
字符替换 将变量内容中的后缀名 从.c修改为.o赋值给obj
obj=$(patsubsr %.c,%.o,$(src))
それが動作します:

私たちが作るときだけでコマンドを入力します。

  1. メイクは「Fiのルを作成する」またはファイル「Fiのルを作る」と呼ばれる、現在のディレクトリで名前を見つけます。
  2. 見つかった場合、それが最初のターゲットファイル(ターゲット)内のファイルを見つけます、上記の例では、彼が最終的な宛先ファイルとしてこの文書とこの文書で「こんにちは」でしょう。
  3. ファイルはhello.oはハロー変更し、この新しいファイル(あなたはタッチテストを使用することができます)の背中に依存しているハロー、ハローまたは複数のファイルを存在しない場合は、彼がこれを生成するために、ハローよりも、定義された以下のようなコマンドを実行しますファイル。
  4. ハローが存在しないhello.oファイルを依存している場合、それはルールに従ってその再生さhello.oファイルを発見された場合、makeが、現在のファイルの依存関係hello.o対象のファイルにあります。(このプロセスは、ビットスタックのようなものです)
  5. makeは、実行可能ファイルのハローで究極のミッションステートメントのメイクhello.oファイルを、使用した後、hello.oファイルを生成しますので、もちろん、あなたのCファイルとHファイルが、とにかく存在します。
  6. これは、最終的には最初のターゲットファイルをコンパイルするまで、層の後に全体のメイクに依存し、メイク層は、依存関係のファイルを探しますです。
  7. エラーが発生した場合、発見の過程では、このような最後の依存ファイルが見つからなかったとして、それが終了し、エラーを行い、う
    、コマンドのエラーを定義し、または失敗したコンパイル、単に無視します。
  8. ちょうど私が依存性を見つけた後、私は申し訳ありませんが、大腸ファイルの後かどうか、そして、私はそれを動作しない場合は、あるファイルの依存関係を作ります。

プロジェクトのバージョン管理ツール:git-分散管理ツール

これはgithubのの使用を含みます。Gethubは個人的に私は非常に使いやすいソフトウェアであると思います。

  1. クローンサーバーからリポジトリ
  2. 変更されたファイルを追加します
  3. ローカルは提出します
  4. サーバーへの同期
int main()
{
int i=0;

for(i=0;i<10;i++)
{
//针对标准输出:换行符不仅有换行的作用,还有刷新缓冲区的作用
//\r是回车符 将光标移动到行首

printf("-");
//fflush刷新文件缓冲区
fflush(stdout);
sleep(1);
}
return 0;
}

横エディタや他の一般的に使用されるエディタとの間のコントラストの長所と短所との間の差

  1. Vimの
    Vimはviのテキストエディタから開発されています。簡単なプログラミングコード補完、およびコンパイルエラーは、などをジャンプし、それが広く、プログラマの間で使用され、特に豊富です。EmacsやUnixライクなユーザーのお気に入りのエディタのために結ばシステム。

  2. Eclipseの
    Eclipseは、コードのハイライトとインテリセンスや他の強力な機能を持って、クールなオープンソースコードエディタです。Eclipseで、十分な能力--Python以下のプログラミング言語では、R、ルビーは、JavaScript、ナチュラル 、投げ縄、C、C ++、COBOLは、スキームは、Clojureの、Groovyのなどが、それはまた、Java開発環境を統合されている、とさえ提供しますJavaの8のサポート。ウェブIDEの開発機能の一部の助けを借りて、あなたは簡単にコードファイルを整理してアクセスされていることができます。

  3. ブラケット
    Linux用に設計されたブラケットは、ブラケットの書き込みコードを使用し、また、オープンソースコードエディタの開発者である、あなたは何によって中断されることはありません。たとえば、あなたがコードを保存しない場合でも、HTMLコードを書くときにも、あなたのWebページの結果をプレビューするためにタイムリーにすることができます。あなたはまた、タグをチェックするテセウスを使用することができ、ブラケットはもちろん、あなたも拡張センターでより多くのテーマを取得することができ、デフォルトのテーマを提供しています。

  4. Emacsの
    Emacsは単なるエディタではありません、彼は統合環境である、または開発環境を統合し、それを呼び出して、これらの機能は、完全なオペレーティングシステムの機能であるとユーザーを許可します。だけでなく、ホスト、ニュースグループ、IRC着陸にFTP / TRAMP、Telnet経由で電子メール、編集、リモートのファイルを送受信するためにも使用することができますEmacsのテキストエディタは、友人と通信するよう、カレンダーなどの機能を確認してください。

  5. テーブルライト
    LightTableは、エディタは非常にクリーンなインターフェイス、および大規模な拡張機能を持っている、無料のオープンソースエディタです。これは、Windows版、MacとLinuxとの互換性があり、高度にカスタマイズ可能です。使用ライトテーブルには、開発者が唯一リアルタイムで変更を確認するには、ブラウザのウィンドウを開く必要があり、様々な支持体が埋め込まれました。

  6. ショコラ
    ショコラのMac OS X自体は最高のコードエディタです。OSとシームレスに統合できるように設計エディタは、ショコラはJS、PythonとHTML、スプリット編集、コード、および折り畳みを完了するために、コードにドラッグアンドドロップ機能を提供します。

  7. 崇高テキスト
    コンパクトが、高パフォーマンスのコードエディタ、すべてのWordPressプロジェクトのためのクロスプラットフォームのコードエディタ。崇高テキストは多くの機能を提供することが可能としていますスクリプト、カスタムインタフェース、通常のファイルスイッチ、合成およびエラー検出、選択およびマルチメディアの編集、外部プラグインの統合、テーマ

色、青と赤のプログレスバー:(#)

test:test.c                                                                                                
  gcc -o test test.c                                                                                      
.PHONY:clean                                                                                               
clean:                                                                                                     
  rm -f test       
vim test.c

#include <stdio.h>                                                                                         
#include <unistd.h>                                                                                        
#include<string.h>                                                                                         
int main()                                                                                                 
{
                                                                                                              
    int i = 0;                                                                                             
    char bar[101];                                                                                         
    const char *lable = "|/-\\";                                                                           
    for(i=0;i<=100;i++)                                                                                    
    {
                                                                                                              
        bar[i]='\0';                                                                                       
        printf("\033[1;31;44m%s\033[0m [%d%%][%c]\r",bar,i,lable[i%4]);                                    
        fflush(stdout);                                                                                    
        bar[i]='#';                                                                                        
        usleep(100000);                                                                                    
    }                                                                                                      
    printf("\n");                                                                                          
    return 0;                                                                                              
}              

RPMとYUMの違い:

  1. インストールのRPM
    RPMインストール:他のコンパイルされたパッケージの
    RPMのRedhatパッケージマネージャは、rpmコマンドインストール用RedHatのパッケージチューブの方法である
    パッケージは、ファイルシステムの環境に依存するだけでなく、ソフトウェアのソースコードをバイナリファイルにコンパイルされていますが、またのために回転数を回転数:ので、統計ファイルの拡張子は何
    SRPMがある:バイナリファイルにコンパイルするだけでなく、回転数の特性が含まれていません

  2. yumのインストール
    ソフトウェアは、に依存していない場合は、rpmの方法でソフトウェアをインストールするには、プリインストールされ、ソフトウェアが正常にインストールすることはできません。
    この問題は、yumの方法の導入を解決するには。
    それがマシンにインストールされたソフトウェアに依存していないので、その後、その後、依存関係をインストールし、私はインストールするために必要なソフトウェアをインストールします。
    だから、yumの依存関係をインストールするためのソフトウェアをインストールします。
    それは、yumのソースソフトウェアのソース依存性を置くことが必要である、コントラストがyumの最終的な分析ソフトウェアライブラリは、また、回転数に基づいて機械の回転数に搭載されています。

公開された37元の記事 ウォンの賞賛3 ビュー1082

おすすめ

転載: blog.csdn.net/weixin_43264873/article/details/103226194