摘要:環境基礎開發工具使用軟件包管理器的三板斧查看軟件包安裝軟件卸載軟件和互傳文件的三種模式的轉換命令模式插入模式底行模式編譯器使用函數庫調試器使用項目自動化構建工具軟件包管理器軟件包和軟件包管理器就好比手機上的和應用
軟件包和軟件包管理器, 就好比手機上的"App" 和 “應用商店”
所以yum的作用主要是在Linux下安裝軟件
注意:
關于 yum 的所有操作必須保證主機(虛擬機)網絡暢通
通過yum list 命令可以羅列出當前一共有哪些軟件包
我們可以使用grep命令篩選出我們需要的包
例如:
yum list | grep lrzsz
軟件名"lrzsz"
“x86_64” 后綴表示64位系統的安裝包, “i686” 后綴表示32位系統安裝包. 選擇包時要和系統匹配
“el7” 表示操作系統發行版的版本. “el7” 表示的是 centos7/redhat7. “el6” 表示 centos6/redhat6.
os表示的是 “軟件源” 的名稱, 類似于 “小米應用商店”, “華為應用商店” 這樣的概念
sudo yum install (-y) lrzsz
加上-y后直接自動安裝不用輸入y確認
安裝軟件時由于需要向系統目錄中寫入內容, 一般需要 sudo 或者切到 root 賬戶下才能完成,卸載也一樣
centos中任何時刻只允許一個yum運行
sudo yum remove lrzsz
Windows傳到Linux直接拖拽到命令框Linux到Windows用sz 文件名
本質是多模式的文本編輯器
vim目前包括10多種模式,下面我們來講講其中的三種模式
vim 文件名 進入文本編輯器(如下圖):
可以看到進入默認是Normal(命令模式)
如果要退出就進入底行模式輸入wq!退出
命令:
shift+$:行尾
shift+^:行頭
shift+g:文本最后一行開頭
gg:文本第一行開頭
n+shift+g:定位到第n行開頭
h,j,k,l:左下上右
w:按照"單詞"從左向右移動,每次光標指向下一個單詞的開始
e:按照"單詞"從左向右移動,每次光標指向下一個單詞的結尾
b:按照"單詞"從右向左移動
#l:光標移到該行的第#個位置
ctrl+b:下翻一頁
ctrl+f:上翻一頁
ctrl+u:下翻半頁
ctrl+d:上翻半頁
復制粘貼:
yy:復制光標所在行
nyy:從光標行開始復制n行
nyw,yw:按照單詞復制
p:粘貼
np:粘貼n次
撤銷:
u:撤銷
ctrl r:恢復剛剛的撤銷
刪除:
dd:刪除光標所在行
ndd:從光標所在行開始刪除n行
dd,ndd完再加p:就可以實現剪切的功能
x,nx:刪除光標所在字符
shift+x(X),nX:往前刪除字符,不包括光標
替換:
shift+~:大小寫切換
r,nr:替換光標所在字符
shift+r?:進入替換模式
跳至指定的行:
#G:移動光標至文章的第#行行首
插入模式就是正常的文本編輯
set nu: 輸入set nu后,會在文件中的每一行前面列出行號
wq!:保存并退出文本編輯器,w表示保存寫的內容,q表示退出,!表示強制
vs 文件名:分屏
ctrl+ww:光標在分屏下切換
gcc編譯:
格式:
gcc [選項] 要編譯的文件 [選項] [目標文件]
c程序的翻譯:
1 預處理:
頭文件展開,去注釋,宏替換,條件編譯
gcc –E test.c –o test.i
選項“-E”,該選項的作用是讓 gcc 在預處理結束后停止編譯過程
選項“-o”是指將預處理過的文件結果放入test.i中
gcc test.c -D π=3.14
-D 宏的命令行定義,可以動態地進行宏定義
gcc –S test.c –o test.s
只進行編譯而不進行匯編,生成匯編代碼
3. 匯編(生成可重定向文件)
gcc –c test.s –o test.o
匯編代碼轉化為二進制目標代碼
4 鏈接(生成可執行文件或庫文件)
gcc test.o –o test
目標文件只有函數調用沒有函數實現,鏈接過程的本質是將自己的函數調用過程與實現關聯起來
lld 文件名
查看文件所依賴的庫
可以看到test.c使用了c標準庫該庫是一個動態庫
file 文件名
查看文件的詳細類型
gcc用于寫c語言,輸入命令時將gcc改成g++就可以進行c++的編寫
作用:減少開發的工作量
函數庫一般分為靜態庫和動態庫兩種
動態庫 | 靜態庫 | |
---|---|---|
原理 | 程序需要找到庫函數,執行后返回再繼續執行剩余代碼 | 在鏈接的時候,需要的庫函數會拷給程序,直接在程序里面執行 |
優點 | 省空間,體積小,加載速度快 | 不依賴第三方庫,可移植性強 |
缺點 | 依賴第三方庫,可移植性弱 | 浪費空間,加載速度慢 |
gcc生成可執行程序,默認是動態鏈接的
gcc加上-static生成靜態鏈接
調試:gdb 文件名
退出: ctrl + d 或 quit
centos7中 gcc默認生成的可執行程序是release(文件比debug小,不可被調試)
添加-g讓程序以debug方式發布
調試命令:
list(或者l) (行號):顯示文件源代碼,接著上次的位置往下列,每次列10行
list(l) 函數名:列出某個函數的源代碼
r或run:運行程序
break(或者b) 行號:在某一行設置斷點
info b :查看斷點信息
delete(或者d) n:刪除序號為n的斷點
p 變量:打印變量值
n 或 next:逐過程執行
s或step:逐語句,進入函數調用
display 變量名:監視查看一個變量,每次停下來都顯示它的值
undisplay 編號:取消對先前設置的那些變量的跟蹤
until X行號:跳至X行
finish:執行到當前函數返回,然后挺下來等待命令
continue(或c):跳到下一個斷點
set var:修改變量的值
breaktrace(或bt):查看各級函數調用及參數
makefile帶來的好處就是——“自動化編譯”,一旦寫好,只需要一個make命令,整個工程完全自動編譯,極大的提高了軟件開發的效率
make是一條命令,makefile是一個文件,兩個搭配使用,完成項目自動化構建
$@:依賴關系中的目標文件
$^:依賴關系中的依賴文件列表
$<:依賴關系中的一個一個的依賴文件
用命令make來編譯目標文件,用完后make clean清理文件
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121952.html
摘要:是系統提供的容器化技術,簡稱,它結合和技術為用戶提供了更易用的接口來實現容器化。公司結合和以下列出的技術實現了容器引擎,相比于,具備更加全面的資源控制能力,是一種應用級別的容器引擎。 showImg(https://segmentfault.com/img/bVbtPbG?w=749&h=192); 題外話 最近對Docker和Kubernetes進行了一番學習,前兩天做了一次技術...
摘要:函數名列出某個函數的源代碼,含函數名上下各五行類比調試或從開始連續而非單步執行程序遇到斷點停下。相當于中的或單條執行。 目錄 一、調試器gdb 1、可以使用gdb的可執行文件生成 2、使用命令 1、開始調試和退出調試 2、list 3、類比vs調試 4、代碼調試三劍客 5、變量 6、斷點 二...
閱讀 3527·2021-10-09 09:41
閱讀 2732·2021-10-08 10:18
閱讀 2163·2021-09-10 10:51
閱讀 2666·2021-09-10 10:50
閱讀 763·2021-09-09 09:33
閱讀 3368·2021-09-06 15:14
閱讀 3002·2019-08-30 11:06
閱讀 3229·2019-08-29 14:04