目次
3. Linux プロジェクト自動化ビルド ツール - make/Makefile
前書き: スペースの都合上、この記事ではコマンドのリストに焦点を当てています。皆さん、実際に試してみてください。もっと使ってみないと、本当に覚えられません。
1. Linux エディタ - vim を使用する
vim はマルチモードエディターです
——コマンドモード (デフォルトで開かれるモード)
-編集/挿入モード (i を入力) (コマンド モードに戻るには ESC を入力)
——一番下の行モード (shift + :) を入力します (コマンド モードに戻るには ESC を入力します)
- 置換モード (shift+r)
共通コマンド:(括弧内は説明に相当し、コマンド入力時には不要)
yy:現在のカーソルがある行をコピーします。nyy (n は特定の番号を表し、n 行をコピーします)
p:コピーした行を貼り付けます np (n 回コピー)
dd:現在カーソルのある行をカット(削除) ndd(n行削除) + p(削除ペースト→カット)
u:操作を元に戻す
Ctrl+R:操作を元に戻す
SHIFT+G:カーソルはファイルの末尾に位置します
n+shift+g:カーソルはファイルの任意の行に位置します。
gg:カーソルはファイルの先頭に位置します
SHIFT+6 (^):カーソルを現在の行の先頭に置きます。
SHIFT+4 ($):カーソルを現在の行の末尾に移動します
w,b:カーソルをワード単位で前後に移動します(wの後、bの前)。
h、j、k、l:左、下、上、右
Shift+~:ケースを切り替えます
Shift+R:置換モードに入る
r:カーソルがnrの位置の文字を置換します(n文字を置換します)
x:カーソルのある文字を(左から右に)削除 nx (n 文字削除)
SHIFT+X (X) : カーソルのある文字を(右から左へ)削除します。
最下行モード: (カーソルが置かれている画面がファイルの最下行になります)
set nu:表示行番号
set nonu:行番号をキャンセルします
vs ファイル名:分割画面操作
w: w を書き込みます! 書き込みを強制します
q:終了 q! 強制終了
ctrl+w+w:複数分割画面切り替えカーソル
!cmd (cmd は実行コマンド): vim を終了せずに対応するコマンドを実行します (コマンドラインの実行、コンパイル、許可、ビューマンなど)。
ビジュアルモード:ctrl+v(追加予定)
vim の複数行コメント:
コマンドモードでは、ctrl+v で視覚化モードに入ります。
hjkl を使用して目的のブロックを選択します
挿入モードに入るには、shift+i
// コメントを入力し、Esc キーを押して複数行のコメントを実装します
Vim は複数行のコメントをキャンセルします。
コマンドモードでは、ctrl+v で視覚化モードに入ります。
hjkl を使用して目的のブロックを選択します
x または d を直接押して直接削除し、Esc を押して終了します。
2. Linux コンパイラ - gcc/g++
g++ がコマンドを入力しませんでした:
sudo yum install -y gcc-c++
gcc がコマンドを入力しませんでした:
sudo yum install -y gcc
gcc は、C 言語のコンパイルとリンクに特別に使用されるコンパイラーです。
プログラム翻訳のプロセス:
テキスト C -> コンピュータバイナリ
1. 前処理 (a. コメントの削除 b. マクロの置換 c. ヘッダー ファイルの拡張 d. 条件付きコンパイル...)
——前処理をしてもC言語のままですか?
答え: またはC言語
2. コンパイル (C->アセンブリ)
3. アセンブリ (アセンブリ -> リダイレクト可能なバイナリ オブジェクト ファイル)
4. リンク (リンク -> 複数の .o、.obj -> マージして 1 つの実行可能ファイルを形成).exe
バージョンを表示:
gcc -v
g++ -v
gcc ソース ファイル -o 実行ファイル #form 実行ファイル
または、次のように記述することもできます: gcc -o 実行可能ソース ファイル
前処理:
#-E: これからプログラムの翻訳を開始します。前処理が完了したら停止します。
gcc -E ソースファイル -o 一時ファイル.i (前処理ファイル)
コンパイル:
#-S: これからプログラムを翻訳します。コンパイルが完了したら停止してください。
gcc -S tempfile.i -o tempfile.s
コンパイル:
#-c: これからプログラムを翻訳します。コンパイルが完了したら停止してください。
gcc -c 一時ファイル.s -o リダイレクト可能な実行可能ファイル.o (バイナリ)
リンク:
gcc .o ファイル -o 実行可能プログラム
動的ライブラリと静的ライブラリ:
ldd 実行可能プログラム - ライブラリの表示
ファイル実行可能プログラム - どのリンク方法が使用されているかを確認してください
リンクには 2 つの一般的な方法があります。
a. ダイナミック リンク - Windows ではダイナミック ライブラリ (.so)が必要です: .dll
b. 静的リンク - Windows では静的ライブラリ (.a)が必要です: .lib
ダイナミック リンク: ライブラリに必要なメソッドのアドレスを実行可能プログラムに入力し、関連付けを確立します。(資源を節約する)
静的リンク: ライブラリ内のメソッドの実装を実行可能プログラムにコピーします。(リソースを占有します)
gcc および g++ によって形成される実行可能プログラムは、デフォルトで動的にリンクされます。
静的にリンクするにはどうすればよいですか? 静的を追加します。
-static: 実行可能プログラムが静的リンクによって形成されていることを示します。
静的ライブラリがないため、マシンはリンクに失敗する可能性があります。
ダイナミック リンクでは .so ダイナミック ライブラリ ファイルを使用する必要があります
静的リンクは .a 静的ライブラリ ファイルを使用する必要があります
sudo yum install -y glibc-static #C静态库
sudo yum install -y libstdc++-static #C++静态库
3. Linux プロジェクト自動化ビルド ツール - make/Makefile
makeはコマンドです
メイクファイルはファイルです
存在価値:自動化施工プロジェクト
Makefile の作成: a. 依存関係 b. 依存関係のメソッド
上から下にスキャンを行い、最初に遭遇したターゲットのみを自動的に形成します
以下を生成するには: make target
.PHONY は常に実行されます。
- 依存関係に従って依存メソッドを常に実行します。
—— 習慣: .PHONY をクリーンに設定する
Makefile は実行可能ファイルが最新であることをどのようにして知るのでしょうか? ?
——ファイルの変更時刻に応じて(実行プログラムとソースファイルの時刻を比較し、ソースファイルの時刻が実行プログラムより遅ければmakeが実行されます)
アクセス:アクセス時間
変更: コンテンツ変更時間
変更: 属性変更時間
複数ファイルのメイクファイル:
結果:
4. Linux パッケージマネージャー - yum
1. ダウンロードしてコンピュータにインストールしたいソフトウェアはありますか?
いいえ、ソフトウェア開発プラットフォームにあります
2. そうでない場合、どこにあるかをどうやって知ることができますか?
分からない、知ってるよ
3. 誰がそれをリリースしましたか?
Linux コミュニティまたは対応する開発者
yum の役割: a. 検索、ダウンロード、インストール b. 依存関係の解決
一般に、ネイティブ Linux システムの組み込みダウンロード リンクは、基本的に独自のサポート外国 Web サイトです。
ヤム操作
yum ソース: 設定ファイル
查看yum源:ls /etc/yum.repos.d
うーん、3つのトリック:
1. #yum list | grep xxxx で yum リストを検索します
2.#sudo yum install -y ソフトウェアをインストールする
3. #sudo yum ソフトウェアを削除 #remove
git - バージョンコントローラー
Reina Stovas さん、バージョン コントローラーの作成に挑戦してください! - ギット
3 つのトリックを用意します。
#git git ウェアハウス リンクをクローンします
1.#git add your file #コードをローカル ウェアハウスに追加する git add.すべてのファイルをローカル ウェアハウスに置きます
2.#git commit -m "コミットログはここに書き込む必要があります"
3.#git Push #コードをリモート ウェアハウスに送信します
git log #提出レコードの表示
紛争解決:
git pull #sync
一部のサフィックス ファイルがアップロードされないようにする: .gitignore ファイル内
git rm # 削除可能
5. Linux デバッガ - gdb
gcc および g++ で形成された実行可能プログラムは、デフォルトでリリースを検索します! したがって、直接デバッグすることはできません! (デフォルトの動的リンク形成)
gdb デバッグを使用するには、ソース コードからバイナリ プログラムを生成するときに -g オプションを追加する必要があります。
gdb は最後のコマンドを記録します。コマンドが変更されていない場合は、直接 Enter キーを押してください。
gdbコマンド:
やめる:やめる
r: デバッグを開始します。ブレークポイントが設定されていない場合は、最後まで直接実行されます。l: コードを表示b+行番号:特定の行番号のブレークポイント情報 b:ブレークポイントの表示 (ブレークポイント番号を含む)d ブレークポイント番号:ブレークポイントの削除n:プロセスごと、VS の F10 に相当p 変数名:変数の内容を出力します。s:ステートメントごと。VS の F11 に相当bt:現在のコールスタックを表示しますfinish:現在の関数を実行した後に停止します。ディスプレイ:ロングディスプレイを設定します非表示番号: 長時間表示をキャンセルしますuntil:指定された行にジャンプしますc:次のブレークポイントまでの実行は停止します。無効化/有効化ブレークポイントの数: ブレークポイントを有効化 (オフにしてからオンにする)