linux怎么C語言編程,Linux C基礎筆記(1)

 2023-10-15 阅读 33 评论 0

摘要:Linux C基礎筆記(1) 【1】四個重要的人物 肯.湯姆森:B語言發明者,C語言發明者,UNIX發明者,AT&T 丹尼斯.里奇:C語言之父,UNIX 之父 理查德.斯托曼:自由軟件之父,linux系統 林納斯.托瓦茲:li

Linux C基礎筆記(1)

【1】四個重要的人物
肯.湯姆森:B語言發明者,C語言發明者,UNIX發明者,AT&T
丹尼斯.里奇:C語言之父,UNIX 之父
理查德.斯托曼:自由軟件之父,linux系統
林納斯.托瓦茲:linux之父
【2】學習ubuntu以及基本的linux命令
開啟一個終端:
ctrl+alt+t 開啟一個終端
ctrl+shift+t 左右分屏開啟終端(必須有終端才可以使用)
ctrl+shift+n 重新開啟一個(必須有終端才可以使用)
提示信息:
linux@ubuntu:~$
linux:用戶名
ubuntu:主機名
~:代表家目錄
/:表示根目錄,cd / 進入根目錄,cd ~ 進入家目錄
$:代表普通用戶權限
#:表示管理員(超級用戶)權限,使用sudo su root進入管理員權限,
sudo 臨時獲取管理員權限,su用戶之間的切換,使用exit退出管
理員權限(返回上一個用戶)
在當前用戶下,使用exit關閉終端,或者可以使用ctrl+d
【3】linux基本操作命令
linux一切皆文件
ls 查看當前目錄下的文件名
ls -a 查看所有文件(包括隱藏文件)
. : 表示當前路徑
…:表示上一級路徑
ls -l 查看文件信息
drwxr-xr-x 9 linux linux 4096 8月 22 11:26 class
d:文件類型 bcd-lsp
b:塊設備文件(驅動) 就是存儲數據以供系統存取的接口設備,簡單而言就是硬盤。例如一號硬盤的代碼是 /dev/hda1等文件。
c:字符設備文件(驅動) 即串行端口的接口設備,例如鍵盤、鼠標等等.
d:目錄文件: 就是目錄, 能用 # cd 命令進入的。,例如 [drwxrwxrwx]
-:普通文件: Linux中最多的一種文件類型, 包括 純文本文件(ASCII);二進制文件(binary);數據格式的文件(data);各種壓縮文件.
l:鏈接文件 類似Windows下面的快捷方式。
s:套接字文件 這類文件通常用在網絡數據連接。可以啟動一個程序來監聽客戶端的要求,客戶端就可以通過套接字來進行數據通信。最常在 /var/run目錄中看到這種文件類型
p:管道文件 FIFO也是一種特殊的文件類型,它主要的目的是,解決多個程序同時存取一個文件所造成的錯誤。FIFO是first-in-first-out(先進先出)的縮寫。
rwxr-xr-x:操作文件的權限,
權限范圍三組,用戶主、用戶組、其他用戶
r:可讀權限 w:可寫權限 x:可執行權限
9 鏈接的個數
linux 用戶名
linux 組名
4096 文件大小
8月 22 11:26 最后修改的時間戳
class 文件名
ll 查看文件信息
ls -lh 帶單位顯示信息
ls -i 查看文件的iNode號

清屏:clearctrl + lcd  進入一個指定的目錄cd ~:進入家目錄cd:進入家目錄cd /:進入根目錄cd -:返回上一次的目錄cd .:到達當前路徑cd ..: 返回上一級路徑相對路徑:從當前目錄到想要到的位置(. 和 ..)絕對路徑:從根目錄開始,當前文件所在的位置使用pwd查看當前路徑的絕對路徑自動補全:tab鍵mkdir + 目錄文件名 創建一個目錄文件	-p 創建多個目錄rmdir + 目錄文件名 刪除一個空的目錄文件(如果目錄不為空,則不能刪除)touch + 文件名 創建一個空的文件(如果文件存在,則會更新時間戳)  一般不用rm + 文件名 刪除一個文件rm -rf + 文件名 刪除一個目錄cp + 文件名 + 目錄  將文件復制到目錄當中cp + 文件1 + 文件2 將文件1復制為文件2cp -a + 目錄1 +目錄2 將目錄1復制到目錄2mv + 文件名 + 目錄  將文件移動到目錄里面mv + 目錄1 + 目錄2 將目錄1移動到目錄2	mv + 文件名 +新文件名mv也可以重命名,如果早同一級目錄下操作文件或者目錄即可

【3】查看文件內容
1.cat + 文件名 查看文件 -n 加行號
2.more + 文件名 分頁顯示 空格 / 回車 翻頁,q 退出
3.less PgUp向上翻頁,PgDn向下翻頁,q 退出
4.head - num + 文件名 num:行數 顯示前num行
5.tail - num + 文件名 num:行數 顯示后num行
6.wc 計算文件byte數,字數,行數 -c -w -l
7.nl 帶行號顯示(除去空格)
8.od -c 區分teb鍵和空格

【4】vi編輯器
進入編輯器:vi xx.c

三種模式:命令模式:剛進入編輯器就是命令模式,或者在其他模式下,按esc進入命令模式插入模式主要復制、粘貼等操作如何進入插入模式:a:從光標所在位置的后一個位置進入插入模式A:從光標所在行的末尾位置進入插入模式i:從光標所在位置的前一個位置進入插入模式I:從光標所在行的開頭位置進入插入模式o:從光標所在行的下一行另起一行進入插入模式O:從光標所在行的上一行另起一行進入插入模式s:刪除光標所在字符,進入插入模式S:刪除光標所在行,進入插入模式R:進入替換模式,esc結束cw: 刪除光標所在位置到這個單詞的末尾,進入插入模式cb: 刪除光標所在位置到這個單詞的頭,進入插入模式c0: 刪除光標所在位置到行首,進入插入模式c$: 刪除光標所在位置到行尾,進入插入模式/xx 在當前文件下查找含有xx的字符串yy:復制光標所在的一行y0;光標到行首復制y$;光標到行尾復制nyy: 復制n行:x,zy; 復制x行到z行p:粘貼dd:剪貼一行ndd:剪切n行u:撤銷		Ctrl + r 反撤銷gg:將光標移動到第一行G:將光標移動到最后一行	:s/old/new/ 當前行替換 :x,ys/old/new  x到y行替換:,$s/old/new/g 光標所在位置到最后一行替換:%s/old/new/g 全文替換h j k l  左 下 上 右b:移動到當前單詞的開始e:移動到當前單詞的結尾w:移動到下一個單詞0:移動到行首$:移動到行尾插入模式:主要寫代碼底行模式:在命令模式下,輸入':'表示進入底行模式,底行模式主要功能為保存退出使用w 	保存q 	退出(文件必須保存)q! 	強制退出wq	保存并退出x       保存并退出%s/a/b/g 將文件里面所有的a替換為b	不加/g  只替換每行第一個m,ns/a/b/g 將m到n行的a替換成bnoh	取消高亮顯示n 光標直接跳轉到第n行 vsp xx.c  左右分屏顯示文件sp 上下分屏wqa 保存所有打開的文件并退出/search  查找[備注]:vi編輯器上下左右出現ABCD      以root權限執行以下命令:cp /etc/vim/vimrc ~/.vimrc

【5】注釋方式
方法1:注釋一行
//
方法2:注釋多行
/* … */
方法3:注釋許多
#if 0

#endif

linux怎么C語言編程。【6】gcc編譯
gcc *.c 最終生成一個a.out的可執行文件,使用./a.out去執行
gcc *.c -o xxx 最終生成一個xxx的可執行文件,使用./xxx去執行
GCC的四個編譯流程:
1.預處: 預處理文件 *.i文件 gcc -E 宏定義替換
2.編譯: 匯編文件 *.s文件 gcc -S 檢查語法是否有錯誤
3.匯編:匯編文件 *.o文件 gcc -c 生成二進制文件
4.鏈接:可執行文件 *.exe文件 gcc -o 鏈接庫函數

利用 __-FILE__,__FUNCTION__,__LINE__實現代碼跟蹤 printf("%s,%s,%d\n",__FILE__,__FUNCTION__,__LINE__); 輸出文件名 函數和行號

【7】計算機數據表示
數值型數據
凡是按進位的方式計數的數制叫做進位計數制,簡稱進位制。
十進制、二進制、十六進制、八進制

		二進制:用0和1表示數據1011101十進制:接近于人類理解的數據八進制:有0-7構成的數據,在數據之前加0,用來標識八進制數一位八進制數由三位二進制數組成十六進制:由0-9 a-f組成一位十六進制數由四位二進制數組成非數值型數據計算機識別的永遠都是整型數據,所以如果想使用非數值型數據,需要將其轉化為整型數據,使用ascii表示(在終端輸入man ascii可以查看ascii表)'\n'  		10'0' - '9' 	48 - 57'A' - 'Z'	65 - 90'a' - 'z'   97 - 122計算機是以補碼的方式進行存儲數據的,之所以使用補碼而不是直接使用二進制實際是為了解決正負運算的問題。原碼:最高位為0為正,1為負,也就是說原碼中的正數是一致的,只有為負數時最高位會為1反碼:反碼是在原碼的基礎上進一步改進,正數還是同原碼及普通二進制一致,但負數則根據該負數的絕對值,也就是正數的原碼進行翻轉,如果是0就變成1,如果是1則變為0,補碼:補碼的正數和反碼以及原碼、普通二進制的一致,沒有區別,而負數實際是在原有負數的反碼上面+1。5					-5原碼	00000000 00000000 00000000 00000101      10000000 00000000 00000000 00000101 反碼	00000000 00000000 00000000 00000101	 11111111 11111111 11111111 11111010補碼	00000000 00000000 00000000 00000101	 11111111 11111111 11111111 11111011

【8】詞法符號
關鍵字
關鍵字是由系統預定義的詞法符號,有特定的含義,不允許用戶重新定義。下面是一些基本關鍵字:
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef union unsighed void
volatile while

標識符標識符是由程序員按照命名規則自行定義的詞法符號,用于定義宏名、變量名、函數名和自定義類型名等。C語言的命名規則如下:1)標識符由一個或多個字母、數字或下劃線組成2)標識符的第一個字符必須是字母或下劃線3)標識符不能與任何關鍵字相同注意:linux嚴格區分大小寫標點符號C語言中的標點符號有逗號、分號、冒號、花括號、圓括號。標點符號的作用與分隔符相似,但用法非常嚴格,有著明確的語法規定。有些標點符號出現在表達式中時,當作運算符使用分隔符分隔符是用來分隔其他的詞法符號主要包括: 空格符、換行符號、注釋、制表符運算符:表示運算的詞法符號主要包括: 算術運算符、 邏輯運算符、關系運算符、位運算符、賦值運算符、 遞增遞減運算符、地址運算符、逗號運算符、sizeof運算符…

【9】基本數據類型
邏輯類型。
只有兩個量true和false,表示邏輯真值和邏輯假值。

整數類型。C支持四種整數類型:char, short, int和long,整數類型用于處理整數。char 一般用于表示一個字符,由于范圍太小,所以一般不用于表示整型數據  -128 ~ 127 或0 ~ 255int 整型數據,占4個字節,使用%d來打印    			     short 短整型,占2個字節						     -32768 ~ 32767 或 0 ~ 65535long 長整形,在32位操作系統,占4個字節				     -2 147 483 648 ~ 2 147 483 647 或0 ~ 4294967295浮點類型。C支持兩種浮點類型:float和double,浮點類型用于處理包含小數部分的數值。float 單精度 使用%f打印	占4字節		若float x ;x = 10/4 ; x的值是2double 雙精度 使用%lf打印 占8字節void類型。該類型也叫缺省型,用于描述值為空集, 主要用于說明不返回值的函數或指向任一類型的指針等。枚舉類型enum :在實際的編程應用中,有的變量只有幾種可能的取值,譬如說一個星期的七種可能,性別的兩種可能等等。C語言為這種類型的變量的定義提供了enum關鍵字。要使用枚舉類型的變量,首先需要先定義一個枚舉類型名,然后再聲明該變量是枚舉類型的。如果開頭不寫Mon=1的話,Mon的默認值為0,然后從0開始增長。一次增加1.定義 :1. enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} a,b;2.enum Month {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec};enum Month a =  Feb;3.typedef enum  {Jan=1,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,dec} Day;Day a, b;例如:typedef enum WEEKDAY{MONDAY = 1,TUSEDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY		   }WEEKDAYS;
int main(int argc, char ** argv)	     
{
WEEKDAYS day = MONDYA;return 0	     
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/137285.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息