常用的Shell命令 當用戶登錄到字元界面系統或使用終端模擬視窗時,就是在和稱為shell的命令解釋程式進行通信。當用戶在鍵盤上輸入一條命令時,shell程式將對命令進行解釋並完成相應的動作。這種動作可能是執行用戶的應用程式,或者是調用一個編輯器、GNU/Linux實用程式或其他標準程式,或者是一條 ...
常用的Shell命令
當用戶登錄到字元界面系統或使用終端模擬視窗時,就是在和稱為shell的命令解釋程式進行通信。當用戶在鍵盤上輸入一條命令時,shell程式將對命令進行解釋並完成相應的動作。這種動作可能是執行用戶的應用程式,或者是調用一個編輯器、GNU/Linux實用程式或其他標準程式,或者是一條錯誤信息,告訴用戶輸入了錯誤的命令。
1.目錄操作
mkdir abc 創建一個目錄abc
cd abc 將工作目錄改變到abc
cd 改變當前目錄到主目錄
ls 列出當前目錄的內容
ls -l 輸出當前目錄內容的長列表,每個目錄或文件占一行
pwd 顯示當前目錄的全路徑
2.文件顯示實用程式
cat mx.c 顯示mx.c文件內容
more mx.c 分屏顯示mx.c內容
tail mx.c 顯示文件後幾行
cat file1 file2 連接file1 和file2
head filename 顯示文件filename的開始10行
wc filename 統計文件filename中的行數、單詞數和字元數
od 文件 查看非文本文件
3.文件管理實用程式
cp file1 file2 將文件1複製到文件2
mv file1 file2 將文件重命名為file2
rm filename 刪除文件filename
rm -i filename 請求用戶確認刪除
4.數據操作實用程式
tty 顯示當前終端的路徑和文件名
who 顯示當前登錄用戶的列表
sort filename 顯示文件filename中的行的排序結果
spell filename 檢查文件filename中的拼寫錯誤
5.其他實用程式
date 輸出系統日期和時間
cal 顯示本月的日曆。cal 2002 顯示2002年的日曆
clear 清除終端屏幕
history 顯示你以前執行過的命令的列表
man 顯示實用程式的有用信息,並提供該實用程式的基本用法
echo 讀取參數並把它寫到輸出
4、熟悉gcc編譯器
GNU/Linux中通常使用的C編譯器是GNU gcc。編譯器把源程式編譯生成目標代碼的任務分為以下4步:
a. 預處理,把預處理命令掃描處理完畢;
b. 編譯,把預處理後的結果編譯成彙編或者目標模塊;
c. 彙編,把編譯出來的結果彙編成具體CPU上的目標代碼模塊;
d. 連接,把多個目標代碼模塊連接生成一個大的目標模塊;
1.使用語法:
gcc [ option | filename ]...
其中 option 為 gcc 使用時的選項,而 filename 為 gcc要處理的文件。
2.GCC選項
GCC的選項有很多類,這類選項控制著GCC程式的運行,以達到特定的編譯目的。
⑴全局選項(OVERALL OPTIONS)
全局開關用來控制在“GCC功能介紹”中的GCC的4個步驟的運行,在預設的情況下,這4個步驟都是要執行的,但是當給定一些全局開關後,這些步驟就會在 某一步停止執行,這產生中間結果,例如可能你只是需要中間生成的預處理的結果或者是彙編文件(比如你的目的是為了看某個CPU上的彙編語言怎麼寫)。
① –x language
對於源文件是用什麼語言編寫的,可以通過文件名的尾碼來標示,也可以用這開關。指定輸入文件是什麼語言編寫的,language 可以是如下的內容
a. c
b. objective-c
c. c-header
d. c++
e.cpp-output
f.assembler
g.assembler-with-cpp
②–x none
把-x開關都給關掉了。
③ –c
編譯成把源文件目標代碼,不做連接的動作。
④–S
把源文件編譯成彙編代碼,不做彙編和連接的動作。
⑤–E
只把源文件進行預處理之後的結果輸出來。不做編譯,彙編,連接的動作。
⑥ –o file (常用)
指明輸出文件名是file。
⑦–v
把整個編譯過程的輸出信息都給列印出來。
⑧–pipe
由於gcc的工作分為好幾步才完成,所以需要在過程中生成臨時文件,使用-pipe就是用管道替換臨時文件。
⑵ 語言相關選項(Language Options)
用來處理和語言相關的選項。
①–ansi
這個開關讓GCC編譯器把所有的GNU的編譯器特性都給關掉,讓你的程式可以和ansi標準相容。
②–include file
在編譯之前,把file包含進去,相當於在所有編譯的源文件最前面加入了一個#include <file>語句,
③–C
同-E參數配合使用。讓預處理後的結果,把註釋保留,讓人能夠比較好讀它。
⑶連接開關(Linker Options)
用來控制連接過程的開關選項。
① –llibrary
連接庫文件開關。例如-lugl,則是把程式同libugl.a文件進行連接。
② –lobjc
這個開關用在面向對象的C語言文件的庫文件處理中。
③ –nostartfiles
在連接的時候不把系統相關的啟動代碼連接進來。
④ –nostdlib
在連接的時候不把系統相關的啟動文件和系統相關的庫連接進來。
⑤–static
在一些系統上支持動態連接,這個開關則不允許動態連接。
⑥shared
生成可共用的被其他程式連接的目標模塊。
⑷目錄相關開關(Directory Options)
用於定義與目錄操作相關的開關。
–Ldir
搜尋庫文件(*.a)的路徑。
⑸調試開關(Debugging Options)
–g
把調試開關打開,讓編譯的目標文件有調試信息。
–V version
用來告訴編譯器使用它的多少版本的功能,version參數用來表示版本。
5、掌握Linux下C程式編輯運行過程
Linux下編寫C程式要經過以下幾個步驟:
⑴啟動常用的編輯器,鍵入C源程式代碼。
例如,點擊應用程式/附件/文本編輯器,進入編輯環境,輸入C源程式,保存並命名為hello.c
# include <stdio.h>
void main(void)
{
Printf(“Hello world!\n”);
}
⑵編譯源程式
點擊應用程式/附件/終端,進入命令行。用gcc編譯器對C源程式進行編譯,以生成一個可執行文件。方法:
gcc -o hello.out hello.c ↙
⑶運行可執行文件
·/hello.out ↙
註:命令行中 -o選項表示要求編譯器輸出可執行文件名為hello.out文件,hello.c是源程式文件。