linux期末複習知識點小結(二)——Linux作業系統
Linux是一個多使用者多工的作業系統,可以有多個使用者同時登陸系統
使用者分為超級管理員(root)和一般使用者,root具有最高許可權
Linux的檔案系統基礎
Linux使用標準的目錄結構——樹型結構,無論作業系統管理幾個磁碟分割槽,這樣的目錄樹只有一個,樹根為/ (斜槓:/ slash, 反斜槓:\ backslash)。
Linux的目錄樹
v /bin 這個目錄存放著最經常使用的命令。
v /boot 存放的是啟動Linux時使用的一些核心檔案,包括一些連結檔案以及映象檔案。
v /dev 該目錄下存放的是Linux的外部裝置,稱為裝置檔案
v /etc 這個目錄用來存放所有的系統管理所需要的配置檔案和子目錄
v /home 使用者的主目錄
v /lib 這個目錄裡存放著系統最基本的動態連結共享庫
v /lost+found 這個目錄一般情況下是空的,當系統非法關機後,這裡就存放了一些文 件。
v /mnt 系統提供這個目錄是為了讓使用者臨時掛載別的檔案系統。
v /proc 這個目錄是一個虛擬的目錄,它是系統記憶體的對映,我們可以通過直接訪問這個目錄來獲取系統資訊。
v /root 超級管理員的主目錄。
v /sbin s就是Super User的意思,這裡存放的是系統管理員使用的系統管理程式。
v /tmp 這個目錄是用來存放一些臨時檔案的。
v /usr 要用到的很多應用程式和檔案幾乎都存放在該目錄下。
v /var 這個目錄中存放著在不斷擴充著的東西,習慣將那些經常被修改的目錄放在這個目錄下。包括各種日誌檔案,電子郵件。
工作目錄(Working Directory)或當前目錄(CurrentDirectory)。
工作目錄用“.”表示,其父目錄用“..”表示
“~”引用自己的主目錄
絕對路徑是指從“根”開始的路徑;
相對路徑是指從使用者工作目錄開始的路徑。
內部命令和外部命令
當shell接收到一個命令後,它首先判斷是否是內部命令,
若是則在當前程序中執行該命令;——當前程序執行
否則根據被打通的路徑($PATH環境變數)判斷是否是外部命令,若是則建立一個新程序執行該命令。——新程序執行
補充:一般的外部命令是那些功能較強大、佔用空間較大的擴充套件命令,他一般不包含在shell中,因此在系統啟動時並不裝入記憶體。只有外部命令需要時才調入記憶體,用完後釋放所佔用的記憶體空間。外部命令是需要生成子程序來執行程式的!
Linux常用命令
v 多使用者管理:adduser, deluser, passwd,su, who,id
v 目錄相關的:pwd,cd, mkdir, rmdir, ls
v 檔案相關的:cp, mv, rm, chmod, chown, whereis(確定檔案所在位置),touch
v 登出及關機:logout, halt(只能root使用), reboo(只能root使用)t,exit
v 檢視和編輯文字:less, more, cat, vi
v 其他命令:man, startx, history , tar, gzip,echo, bc, wc, cut, grep, sort, head, tail等
pwd (print working directory)、cd (change directory)
ls (list) -l 長格式顯示, -a 顯示所有檔案, -i顯示索引節點號,例: ls –l *.c
cat “catenate” 連線 –b 標註行號 , -A顯示所有控制字元
cat a b > c
Linux下的主要檔案型別
v 常規檔案(-) :文字檔案和二進位制檔案
v 目錄檔案(d) :將檔案的名稱和它的索引節點號結合在一起的一張表(記住:目錄也是檔案)
v 裝置檔案(c or b) :每種I/O裝置對應一個裝置檔案
v 管道檔案(p) :主要用於在程序間傳遞資料,又稱先進先出(FIFO)檔案
v 連結檔案(L) :又稱符號連結檔案,它提供了共享檔案的一種方法
訪問許可權和檔案模式
使用者型別:u——使用者,g——宿主使用者的同組使用者,o——除檔案宿主和同組使用者外的所有其他使用者,a——表示所有使用者。
“—”表示撤銷某種許可權,“+”表示增加某種許可權,“=”表示賦予某種訪問許可權
文字編輯器
Linux下的文字編輯器(Editor)主要有:
v ed
v edit
v vi (visual interpreter)
v vim (Vi IMproved)
v Emacs
vim 簡介
vim的三種工作方式及相互切換:
v 命令列方式 ——預設進入
v 插入編輯方式 ——命令列方式中輸入“i ”
v 末行命令方式 ——插入編輯方式中輸入Esc 或者“Ctrl+C”
注:Ubuntu下預設安裝的不是vim,用命令:
$apt-get install vim
命令列方式下的常用命令
H j k l ; x ; dw ; d$ ; dd ; y2w ; y3y ; p; u
末行命令方式下的常用命令
/word ; ?word ;搜尋word
:s(substitute) 查詢和替換
如 :1,$s/word/newword/g
:wq ; :q! ; :set nu ; :set ai 文字的每一新行均與上行對齊
其他命令
1、Echo 顯示一行文字;
2、tar 打包(歸檔),選項-zcvf、解包,-zxvf
tar –zcvf dir.tar.gz dir
tar –zxvf dir.tar.gz
3、gzip,gunzip 壓縮、解壓檔案
4、bc 計算工具
echo“scale=3;4/3+2” | bc
或者直接使用文字中的公式,然後bc file
進位制轉換
echo “obase=2;7” |bc
echo “ibase=2;1111110”| bc
過濾器(Filters)
5、wc (Word Count)計數函式
-l:統計檔案的行數; –w:統計單詞個數; –c統計位元組個數
6、sort 排序。常用選項:
-d 按字典中字母的正序排序; -r 反序排序; -n 按數字表示的數值大小進行排序
7、uniq 刪除連續重複行,常用選項: -c 重複數前置
8、head 輸出文字的前十行(預設),常用選項:-n 指定行數
9、tail 輸出文字的後十行(預設),常用選項: -n指定行數
10、cut 按列或按域擷取輸入行中所指出的內容,常用選項:
-d 制定定界符, 定界符預設空格和Tab ; -f 按域擷取
Ubuntu預設為Tab鍵
11、tr 用來從標準輸入中通過替換或刪除操作進行字元轉換,tr 只能進行字元的替換、縮減和刪除,不能用來替換字串
–d:刪除字符集中的字元 ;–s:將連續出現的字元壓縮成一個;-c 取字串中字符集的補集
字元替換:
字元縮減:
Cat file | tr a-z A-Z 與tr a-z A-Z<file等效
12、grep 全程查詢正則表達式並列印,選項 -v 篩選出不包含匹配模式的行
格式:grep pattern file
13、sed是流編輯器(stream editor)的縮寫,常用來文字替換和刪除
替換:sed ‘s/pattern/replace_string/g’ file
刪除:sed ‘/pattern/d’ file
Awk
awk的名字來源於Bell實驗室的三名開發者Aho ,Weinberger和Kernighan姓氏的首字母組合,它主要完成字串查詢、替換、加工等操作,它還包含有可以進行模式裝入、流控制、數學運算、程序控制等語句,是一個功能強大的模式掃描和處理工具。
awk工作時,從輸入流中一次讀取一行,將該行與指定模式比較,對於匹配該行的模式執行相應的動作。每行的不同欄位依次命名為$1,$2,….$NF.預設欄位分隔符為空格或製表符。
格式:awk [-F char] ‘program’ filename 或 awk –fprogramfile filename
下面成績儲存在一個文字中:
zhao Physics 77
wang Mathematics 86
zhang Chemistry 98
zhao Mathematics 83
wang Physics 57
zhang Physics 89
1)用awk計算出每個同學的總分
[email protected]:~$ awk '{sum[$1]+=$3} END{for(name insum) print name,sum[name]}' grade
zhao 160
wang 143
zhang 187
2)用awk計算出每個同學的平均分
[email protected]:~$ awk '{sum[$1]+=$3} END{for(name insum) print name,sum[name]/(NF-1)}' grade
zhao 80
wang 71.5
zhang 93.5
GCC簡介
GCC (the GNU Compiler Collection),是GNU推出的功能強大、效能優越的多平臺編譯器。它能將C、C++源程式、彙編程式和目標程式進行編譯或連結成可執行檔案。
GCC常用選項-S, -c, -o
例如當前有個hello.c源程式:
$ gcc hello.c //生成a.out可執行程式
$ gcc –S hello.c //只編譯,生成hello.s彙編程式
$ gcc –c hello.c //編譯及彙編,但不連結,生成hello.o目標檔案
$ gcc –o hello hello.c //編譯彙編及連結,生成hello可執行程式
C語言編譯系統