1. 程式人生 > >linux期末複習知識點小結(二)——Linux作業系統

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語言編譯系統