本文目錄一覽:
linux下c語言編程
實在點,給你些命令操作操作,不過好象有點多,哈哈
Linux/Unix常用命令
1、目錄操作
和DOS相似,UNIX採用樹型目錄管理結構,由根目錄(/)開始一層層將子目錄建下去,各子目錄以 / 隔開。用戶login後,工作目錄的位置稱為 home directory,由系統管理員設定。‘~’符號代表自己的home directory,例如 ~/myfile 是指自己home目錄下myfile這個文件。
(1)顯示目錄文件 ls
執行格式: ls [-atFlgR] [name] (name可為文件或目錄名稱)
例: ls 顯示出當前目錄下的文件
ls -a 顯示出包含隱藏文件的所有文件
ls -t 按照文件最後修改時間顯示文件
ls -F 顯示出當前目錄下的文件及其類型
ls -l 顯示目錄下所有文件的許可權、擁有者、文件大小、修改時間及名稱
ls -lg 同上
ls -R 顯示出該目錄及其子目錄下的文件
注:ls與其它命令搭配使用可以生出很多技巧(最簡單的如”ls -l | more”),更多用法請輸入ls –help查看,其它命令的更多用法請輸入 命令名 –help 查看.
(2)建新目錄 mkdir
執行格式: mkdir directory-name
例: mkdir dir1 (新建一名為dir1的目錄)
(3)刪除目錄 rmdir
執行格式: rmdir directory-name 或 rm directory-name
例:rmdir dir1 刪除目錄dir1,但它必須是空目錄,否則無法刪除
rm -r dir1 刪除目錄dir1及其下所有文件及子目錄
rm -rf dir1 不管是否空目錄,統統刪除,而且不給出提示,使用時要小心
(4) 改變工作目錄位置 cd
執行格式: cd [name]
例: cd 改變目錄位置至用戶login時的working directory
cd dir1 改變目錄位置,至dir1目錄
cd ~user 改變目錄位置,至用戶的working directory
cd .. 改變目錄位置,至當前目錄的上層目錄
cd ../user 改變目錄位置,至上一級目錄下的user目錄
cd /dir-name1/dir-name2 改變目錄位置,至絕對路徑(Full path)
cd – 回到進入當前目錄前的上一個目錄
(5)顯示當前所在目錄pwd
執行格式: pwd
(6)查看目錄大小du
執行格式: du [-s] directory
例: du dir1 顯示目錄dir1及其子目錄容量(以kb為單位)
du -s dir1 顯示目錄dir1的總容量
(7)顯示環境變量
echo $HOME 顯示家目錄
echo $PATH 顯示可執行文件搜索路徑
env 顯示所有環境變量(可能很多,最好用”env | more”,”env | grep PATH”等)
(8)修改環境變量,在bash下用export,如:
export PATH=$PATH:/usr/local/bin
想知道export的具體用法,可以用shell的help命令:help export
2、文件操作
(1)查看文件(可以是二進制的)內容 cat
執行格式:cat filename或more filename 或cat filename|more
例: cat file1 以連續顯示方式,查看文件file1的內容
more file1
或 cat file1|more 以分頁方式查看文件的內容
(2)刪除文件 rm
執行格式: rm filename
例: rm file?
rm f*
(3)複製文件 cp
執行格式: cp [-r] source destination
例: cp file1 file2 將file1複製成file2
cp file1 dir1 將file1複製到目錄dir1
cp /tmp/file1 將file1複製到當前目錄
cp /tmp/file1 file2 將file1 複製到當前目錄名為file2
cp -r dir1 dir2 (recursive copy)複製整個目錄。
(4)移動或更改文件、目錄名稱mv
執行格式: mv source destination
例: mv file1 file2 將文件file1,更名為file2
mv file1 dir1 將文件file1,移到目錄dir1下
mv dir1 dir2
(5)比較文件(可以是二進制的)或目錄的內容 diff
執行格式: diff [-r] name1 name2 (name1、name2同為文件或目錄)
例: diff file1 file2 比較file1與file2的不同處
diff -r dir1 dir2 比較dir1與dir2的不同處
(6)文件中字符串的查找 grep
執行格式: grep string file
例: grep abc file1 查找並列出串abc所在的整行文字
(7)文件或命令的路徑尋找
執行格式一:whereis command 顯示命令的路徑
執行格式二:which command 顯示路徑及使用者所定義的別名
執行格式三:whatis command 顯示命令的功能摘要
(8)建立文件或目錄的鏈接 ln
例: ln source target1 建立source文件(已存在)的硬鏈接,命名為target1
ln -s source target2 建立source文件的符號鏈接,命名為target2
文件編輯器vi
vi是在UNIX 上被廣泛使用的中英文編輯軟件。vi是visual editor的縮寫,是UNIX提供給用戶的一個窗口化編輯環境。
進入vi,直接執行vi編輯程序即可。
例:$vi test.c
顯示器出現vi的編輯窗口,同時vi會將文件複製一份至緩衝區(buffer)。vi先對緩衝區的文件進行編輯,保留在磁盤中的文件則不變。編輯完成後,使用者可決定是否要取代原來舊有的文件。
1、vi的工作模式
vi提供二種工作模式:輸入模式(insert mode)和命令模式(command mode)。使用者進入vi後,即處在命令模式下,此刻鍵入的任何字符皆被視為命令,可進行刪除、修改、存盤等操作。要輸入信息,應轉換到輸入模式。
(1)命令模式
在輸入模式下,按ESC可切換到命令模式。命令模式下,可選用下列指令離開vi:
:q! 離開vi,並放棄剛在緩衝區內編輯的內容
:wq 將緩衝區內的資料寫入磁盤中,並離開vi
:ZZ 同wq
:x 同wq
:w 將緩衝區內的資料寫入磁盤中,但並不離開vi
:q 離開vi,若文件被修改過,則要被要求確認是否放棄修改的內容,此指令可與:w配合使用
(2)命令模式下光標的移動
H 左移一個字符
J 下移一個字符
K 上移一個字符
L 右移一個字符
0 移至該行的首
$ 移至該行的末
^ 移至該行的第一個字符處
H 移至窗口的第一列
M 移至窗口中間那一列
L 移至窗口的最後一列
G 移至該文件的最後一列
W, W 下一個單詞 (W 忽略標點)
B, B 上一個單詞 (B 忽略標點)
+ 移至下一列的第一個字符處
– 移至上一列的第一個字符處
( 移至該句首
) 移至該句末
{ 移至該段首
} 移至該段末
NG 移至該文件的第n列
N+ 移至光標所在位置之後第n列
n- 移至光標所在位置之前第n列
(3)輸入模式
輸入以下命令即可進入vi輸入模式:
a(append) 在光標之後加入資料
A 在該行之末加入資料
i(insert) 在光標之前加入資料
I 在該行之首加入資料
o(open) 新增一行於該行之下,供輸入資料用
O 新增一行於該行之上,供輸入資料用
dd 刪除當前光標所在行
X 刪除當前光標字符
x 刪除當前光標之前字符
U 撤消
• 重做
F 查找
ESC鍵 離開輸入模式
GNU C編譯器
LINUX上可用的C編譯器是GNU C編譯器,它建立在自由軟件基金會編程許可證的基礎上,因此可以自由發布。
LINUX 上的GNU C編譯器(GCC)是一個全功能的ANCI C兼容編譯器。下面介紹GCC和一些GCC編譯器最常用的選項。
1、使用GCC
通常後跟一些選項和文件名來使用GCC編譯器。GCC命令的基本用法如下:
gcc [options] [filenames]
命令行選項指定的編譯過程中的具體操作
2、GCC常用選項
GCC有超過100個的編譯選項可用,這些選項中的許多可能永遠都不會用到,但一些主要的選項將會頻繁使用。很多的GCC選項包括一個以上的字符,因此必須為每個選項指定各自的連字符,並且就像大多數LINUX 命令一樣不能在一個單獨的連字符後跟一組選項。例如:
gcc test.c
編譯成功後,當前目錄下就產生了一個可執行文件a.out。
也可用-o選項來為即將產生的可執行文件指定一個文件名來代替a.out。例如:
gcc -o count count.c
此時得到的可執行文件就不再是a.out,而是count。
3、執行文件
格式: ./可執行文件名
例:./a.out
./count
linux下的C語言開發(管道通信)
姓名:馮成 學號:19020100164 學院:丁香二號書院
轉自:
【嵌牛導讀】本文將介紹linux下的C語言開發中的管道通信
【嵌牛鼻子】linux C語言 管道通信
【嵌牛提問】linux下的C語言開發中的管道通信是什麼?
Linux系統本身為進程間通信提供了很多的方式,比如說管道、共享內存、socket通信等。管道的使用十分簡單,在創建了匿名管道之後,我們只需要從一個管道發送數據,再從另外一個管道接受數據即可。
#include stdio.h
#include unistd.h
#include stdlib.h
#include string.h
int pipe_default[2];
int main()
{
pid_t pid;
char buffer[32];
memset(buffer, 0, 32);
if(pipe(pipe_default) 0)
{
printf(“Failed to create pipe!\n”);
return 0;
}
if(0 == (pid = fork()))
{
close(pipe_default[1]);
sleep(5);
if(read(pipe_default[0], buffer, 32) 0)
{
printf(“Receive data from server, %s!\n”, buffer);
}
close(pipe_default[0]);
}
else
{
close(pipe_default[0]);
if(-1 != write(pipe_default[1], “hello”, strlen(“hello”)))
{
printf(“Send data to client, hello!\n”);
}
close(pipe_default[1]);
waitpid(pid, NULL, 0);
}
return 1;
}
下面我們就可以開始編譯運行了,老規矩分成兩步驟進行:(1)輸入gcc pipe.c -o pipe;(2)然後輸入./pipe,過一會兒你就可以看到下面的打印了。
[test@localhost pipe]$ ./pipe
Send data to client, hello!
Receive data from server, hello!
linux與c語言有什麼異同?
C和Linux C基本上沒有什麼區別。
我們意義上的普通C,是標準ANSI C,是任何C編譯器都應該遵循的C語言協議。
而Linux C其實特指的是Linux上的GCC編譯器,GCC編譯器完全遵循ANSI C,並在此基礎上又做了一些擴展,例如:
1)對ASM語法的支持
2)編譯器支持內聯函數
3)支持__attribute__機制
linux下的C語言學習
裝 Fedora 。
掌握的知識至少要先會用吧?
Linux 的開發環境不是一個單獨的程序,而是很多相互補充的程序互相配合組成的。編譯器有編譯器,程序連接器有單獨的連接器,編譯控制器有單獨的控制器。開發環境有開發環境,頭文件有功能軟件庫提供……
很多需要的事情……
—————
你開發難道不想用別人的功能庫?難道所有功能都自己寫?包括圖形界面字符界面的所有的函數都自己寫?
開發程序不光只有 gcc binutils make 就行了,比如有的時候你需要 pkg-config 來獲取某些函數庫的信息,有的時候你需要某些 C header 。有的時候你還需要一些附加的工具來生成某些數據。
ubuntu 這些東西默認不安裝。如果你能知道你需要什麼,自己會去找對應的開發用 C header 文件,那麼我就不在說什麼了。
我見過許多用 ubuntu 開發的人,跑來問怎麼為什麼寫的 GTK 程序提示找不到 Header 。之後讓他自己裝他還不知道裝哪個,哪個文件裡面有他需要的 Header 。結果我的建議是完全安裝,對於 ubuntu 來說,這個有點不可思議。但 Fedora 輕鬆無比,選上開發部分的所有內容即可。
讓別人用 RH9 的是騙子,別理他們。
怎麼用linux寫c語言
Linux正在成為開發人員的編程天堂,成為開源和免費操作系統。 Turbo C編譯器已經是一種編譯程序的舊方法,所以讓程序員轉向Linux以獲得新的編程環境。 在本文中,我們將解釋如何編寫,編譯和運行一個簡單的C程序。 這將成為您遷移到可以在Linux上編寫和執行的更複雜和有用的C程序的基礎。
我們在Ubuntu 18.04 LTS系統上運行了本文中提到的步驟和命令。
我們將使用Linux命令行工具Terminal,以編譯一個簡單的C程序。 要打開終端,您可以使用Ubuntu Dash或Ctrl + Alt + T快捷方式。
第1步:安裝build-essential軟件包
為了編譯和執行C程序,您需要在系統上安裝必要的軟件包。 在Linux終端中以root用戶身份輸入以下命令:
sudo apt-get install build-essential
系統會要求您輸入root用戶密碼; 安裝過程將在此之後開始。 請確保您已連接到互聯網。
第2步:編寫一個簡單的C程序
安裝必要的軟件包之後,讓我們編寫一個簡單的C程序。
打開Ubuntu的圖形文本編輯器,將以下示例程序寫入或複製到其中:
#includestdio.h
int main()
{
printf(“nA sample C program “);
return 0;
}
然後使用.c擴展名保存文件。 在這個例子中,我將我的C程序命名為linuxidc.c
或者,您可以通過gedit中的終端編寫C程序,如下所示:
gedit linuxidc.c
這將創建一個.c文件,您可以在其中編寫和保存程序。
第3步:使用gcc編譯C程序
在終端中,輸入以下命令以生成您編寫的程序的可執行版本:
句法:
$ gcc [programName].c -o programName
示例:
$ gcc linuxidc.c -o linuxidc
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/156693.html