
嚴格的來講,Linux 不算是一個作業系統,只是一個 Linux 系統中的內核,即計算機軟體與硬體通訊之間的平臺;Linux的全稱是GNU/Linux,這才算是一個真正意義上的Linux系統,GNU是Richard Stallman組織的一個專案,世界各地的程式員可以變形GNU程式,同時遵循GPL協議,允許任何人任意改動,但是,修改后的程式必須遵循GPL協議,
Linux 是一個多用戶多任務的作業系統,也是一款自由軟體,完全兼容POSIX標準,擁有良好的用戶界面,支持多種處理器架構,移植方便,
為程式分配系統資源,處理計算機內部細節的軟體叫做作業系統或者內核,如果你希望詳細了解作業系統的概念,請查看作業系統教程,
用戶通過Shell與Linux內核互動,Shell是一個命令列解釋工具(是一個軟體),它將用戶輸入的命令轉換為內核能夠理解的語言(命令),
Linux下,很多作業都是通過命令完成的,學好Linux,首先要掌握常用命令,
Linux版本
內核版本指的是在 Linus 領導下的開發小組開發出的系統內核的版本號,Linux 的每個內核版本使用形式為 x.y.zz-www 的一組數字來表示,其中:
-
x.y:為linux的主版本號,通常y若為奇數,表示此版本為測驗版,系統會有較多bug,主要用途是提供給用戶測驗,
-
zz:為次版本號,
-
www:代表發行號(注意,它與發行版本號無關),
當內核功能有一個飛躍時,主版本號升級,如 Kernel2.2、2.4、2.6等,如果內核增加了少量補丁時,常常會升級次版本號,如Kernel2.6.15、2.6.20等,
一些組織或廠家將 Linux 內核與GNU軟體(系統軟體和工具)整合起來,并提供一些安裝界面和系統設定與管理工具,這樣就構成了一個發型套件,例如Ubuntu、Red Hat、Centos、Fedora、SUSE、Debian、FreeBSD等,相對于內核版本,發行套件的版本號隨著發布者的不同而不同,與系統內核的版本號是相對獨立的,因此把Red Hat等直接說成是Linux是不確切的,它們是Linux的發行版本,更確切地說,應該叫做"以linux為核心的作業系統軟體包",
Linux體系結構
下面是Linux體系結構的示意圖:

在所有Linux版本中,都會涉及到以下幾個重要概念:
-
內核:內核是作業系統的核心,內核直接與硬體互動,并處理大部分較低層的任務,如記憶體管理、行程調度、檔案管理等,
-
Shell:Shell是一個處理用戶請求的工具,它負責解釋用戶輸入的命令,呼叫用戶希望使用的程式,
-
命令和工具:日常作業中,你會用到很多系統命令和工具,如cp、mv、cat和grep等,在Linux系統中,有250多個命令,每個命令都有多個選項;第三方工具也有很多,他們也扮演著重要角色,
-
檔案和目錄:Linux系統中所有的資料都被存盤到檔案中,這些檔案被分配到各個目錄,構成檔案系統,Linux的目錄與Windows的檔案夾是類似的概念,
系統啟動(開機)
如果你有一臺裝有Linux的電腦,加電后系統會自動啟動,然后提示你登錄系統,只有登錄后才能進行其他操作,
登錄Linux
第一次使用Linux,會看到登錄的提示,如下所示:
login:登錄步驟:
-
登錄Linux必須有用戶名(用戶ID)和密碼,如果沒有,可以向管理員所要,
-
在登錄提示處輸入用戶名并回車;用戶名是區分大小寫的,輸入時要注意,
-
然后會提示你輸入密碼,密碼也是區分大小寫的,
-
如果用戶名和密碼正確,那么會成功登錄,并看到上次登錄資訊,
login : amrood amrood's password: Last login: Sun Jun 14 09:32:32 2009 from 62.61.164.73 $登錄后會出現命令提示符($),你可以輸入任何命令,下面通過 cal 命令來查看日歷:
$ cal June 2009 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $修改密碼
Linux系統通過密碼來保證資料和檔案的安全,防止黑客破解和攻擊,你可以通過以下方法來修改密碼:
-
輸入 password 命令,
-
輸入你現在使用的密碼,
-
輸入新密碼,注意密碼不要過于簡單,簡單的密碼往往會為入侵者大開便利之門,
-
確認密碼,再輸入一遍剛才的密碼,
$ passwd Changing password for amrood (current) Linux password:****** New Linux password:******* Retype new Linux password:******* passwd: all authentication tokens updated successfully $注意:輸入的密碼是看不到的,只會看到一個占位符(*),
查看目錄和檔案
在Linux中,所有的資料都被保存在檔案中,所有的檔案又被分配到不同的目錄;目錄是一種類似樹的結構,稱為檔案系統,
你可以使用 ls 命令來查看當前目錄下的檔案和目錄,下面的例子,使用了 ls 命令的 -l 選項:
$ ls -l total 19621 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf $注意:以 d* 開頭的為目錄,如 uml、univ、urlspedia等;其他的都是檔案,
查看當前用戶資訊
登錄系統后,如果你希望知道自己的用戶名(用戶ID),可以使用 whoami 命令:
$ whoami amrood $如果你希望了解更多關于當前用戶的資訊,可以使用 who am i 命令,讀者可以自己嘗試一下,
查看當前在線用戶
如果你希望知道當前在線的用戶(同時登錄到系統的用戶),可以使用 users、who 和 w 命令:
$ users amrood bablu qadir $ who amrood ttyp0 Oct 8 14:10 (limbo) bablu ttyp2 Oct 4 09:08 (calliope) qadir ttyp4 Oct 8 12:09 (dent) $w 命令可以看到在線用戶的更多資訊,讀者可以自己嘗試,
退出登錄
完成作業后,你需要退出系統,防止他人使用你的賬戶,
使用 logout 命令即可退出登錄,系統會清理有關資訊并斷開連接,
關閉系統(關機)
關系Linux系統可以使用下列命令:
命令 說明 halt 直接關閉系統 init 0 使用預先定義的腳本關閉系統,關閉前可以清理和更新有關資訊 init 6 重新啟動系統 poweroff 通過斷電來關閉系統 reboot 重新啟動系統 shutdown 安全關閉系統 注意:一般情況下只有超級用戶和root用戶(Linux系統中的最高特權用戶)才有關閉系統的權限,但是給普通用戶賦予相應權限也可以關閉系統,
Linux檔案管理
Linux中的所有資料都被保存在檔案中,所有的檔案被分配到不同的目錄,目錄是一種類似于樹的結構,稱為檔案系統,
當你使用Linux時,大部分時間都會和檔案打交道,通過本節可以了解基本的檔案操作,如創建檔案、洗掉檔案、復制檔案、重命名檔案以及為檔案創建鏈接等,
在Linux中,有三種基本的檔案型別:
1) 普通檔案
普通檔案是以位元組為單位的資料流,包括文本檔案、原始碼檔案、可執行檔案等,文本和二進制對Linux來說并無區別,對普通檔案的解釋由處理該檔案的應用程式進行,
2) 目錄
目錄可以包含普通檔案和特殊檔案,目錄相當于Windows和Mac OS中的檔案夾,
3) 設備檔案
有些教程中稱特殊檔案,是一個含義,Linux 與外部設備(例如光驅,列印機,終端,modern等)是通過一種被稱為設備檔案的檔案來進行通信,Linux 輸入輸出到外部設備的方式和輸入輸出到一個檔案的方式是相同的,Linux 和一個外部設備通訊之前,這個設備必須首先要有一個設備檔案存在,
例如,每一個終端都有自己的設備檔案來供 Linux 寫資料(出現在終端螢屏上)和讀取資料(用戶通過鍵盤輸入),
設備檔案和普通檔案不一樣,設備檔案中并不包含任何資料,
設備檔案有兩種型別:字符設備檔案和塊設備檔案,
-
字符設備檔案以字母"c"開頭,字符設備檔案向設備傳送資料時,一次傳送一個字符,典型的通過字符傳送資料的設備有終端、列印機、繪圖儀、modern等,字符設備檔案有時也被稱為"raw"設備檔案,
-
塊設備檔案以字母"b"開頭,塊設備檔案向設備傳送資料時,先從記憶體中的buffer中讀或寫資料,而不是直接傳送資料到物理磁盤,磁盤和CD-ROMS既可以使用字符設備檔案也可以使用塊設備檔案,
查看檔案
查看當前目錄下的檔案和目錄可以使用 ls 命令,例如:
$ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work通過 ls 命令的 -l 選項,你可以獲取更多檔案資訊,例如:
$ls -l total 1962188 drwxrwxr-x 2 amrood amrood 4096 Dec 25 09:59 uml -rw-rw-r-- 1 amrood amrood 5341 Dec 25 08:38 uml.jpg drwxr-xr-x 2 amrood amrood 4096 Feb 15 2006 univ drwxr-xr-x 2 root root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 Nov 25 2007 webthumb.php -rw-rw-r-- 1 amrood amrood 20480 Nov 25 2007 webthumb.tar -rw-rw-r-- 1 amrood amrood 5654 Aug 9 2007 yourfile.mid -rw-rw-r-- 1 amrood amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3 $每一列的含義如下:
-
第一列:檔案型別,
-
第二列:表示檔案個數,如果是檔案,那么就是1;如果是目錄,那么就是該目錄中檔案的數目,
-
第三列:檔案的所有者,即檔案的創建者,
-
第四列:檔案所有者所在的用戶組,在Linux中,每個用戶都隸屬于一個用戶組,
-
第五列:檔案大小(以位元組計),
-
第六列:檔案被創建或上次被修改的時間,
-
第七列:檔案名或目錄名,
注意:每一個目錄都有一個指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",所以對于一個空目錄,第二列應該為 2,
通過 ls -l 列出的檔案,每一行都是以 a、d、- 或 l 開頭,這些字符表示檔案型別:
前綴 描述 - 普通檔案,如文本檔案、二進制可執行檔案、源代碼等, b 塊設備檔案,硬碟可以使用塊設備檔案, c 字符設備檔案,硬碟也可以使用字符設備檔案, d 目錄檔案,目錄可以包含檔案和其他目錄, l 符號鏈接(軟鏈接),可以鏈接任何普通檔案,類似于 Windows 中的快捷方式, p 具名管道,管道是行程間的一種通信機制, s 用于行程間通信的套接字, 提示:通俗的講軟連接就是windows的快捷方式,原來檔案刪了,快捷方式雖然在但是不起作用了,
元字符
元字符是具有特殊含義的字符,* 和 ? 都是元字符:
-
* 可以匹配 0 個或多個任意字符;
-
? 匹配一個字符,
例如
$ls ch*.doc可以顯示所有以 ch 開頭,以 .doc 結尾的檔案:
ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc c這里,* 匹配任意一個字符,如果你希望顯示所有以 .doc 結尾的檔案,可以使用
$ls *.doc,隱藏檔案
隱藏檔案的第一個字符為英文句號或點號(.),Linux程式(包括Shell)通常使用隱藏檔案來保存配置資訊,
下面是一些常見的隱藏檔案:
.profile:Bourne shell (sh) 初始化腳本
.kshrc:Korn shell (ksh) 初始化腳本
.cshrc:C shell (csh) 初始化腳本
.rhosts:Remote shell (rsh) 組態檔查看隱藏檔案需要使用 ls 命令的 -a 選項:
$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03 $一個點號(.)表示當前目錄,兩個點號(..)表示上級目錄
注意:輸入密碼時,星號(*)作為占位符,代表你輸入的字符個數,
創建檔案
在Linux中,可以使用 vi 編輯器創建一個文本檔案,例如:
$ vi filename上面的命令會創建檔案 filename 并打開,按下 i 鍵即可進入編輯模式,你可以向檔案中寫入內容,例如:
This is Linux file....I created it for the first time..... I'm going to save this content in this file.完成編輯后,可以按 esc 鍵退出編輯模式,也可以按組合鍵 Shift + ZZ 完全退出檔案,這樣,就完成了檔案的創建,
$ vi filename $編輯檔案
vi 編輯器可以用來編輯檔案,由于篇幅限制,這里僅作簡單介紹,將在后面章節進行詳細講解,
如下可以打開一個名為 filename 的檔案:
$ vi filename當檔案被打開后,可以按 i 鍵進入編輯模式,按照自己的方式編輯檔案,如果想移動游標,必須先按 esc 鍵退出編輯模式,然后使用下面的按鍵在檔案內移動游標:
-
l 鍵向右移動
-
h 鍵向左移動
-
k 鍵向上移動
-
j 鍵向下移動
使用上面的按鍵,可以將游標快速定位到你想編輯的地方,定位好游標后,按 i 鍵再次進入編輯模式,編輯完成后按 esc 鍵退出編輯模式或者按組合鍵 Shift+ZZ 退出當前檔案,
查看檔案內容
可以使用 cat 命令來查看檔案內容,下面是一個簡單的例子:
$ cat filename This is Linux file....I created it for the first time..... I'm going to save this content in this file. $可以通過 cat 命令的 -b 選項來顯示行號,例如:
$ cat -b filename 1 This is Linux file....I created it for the first time..... 2 I'm going to save this content in this file. $統計單詞數目
可以使用 wc 命令來統計當前檔案的行數、單詞數和字符數,下面是一個簡單的例子:
$ wc filename 2 19 103 filename $每一列的含義如下:
-
第一列:檔案的總行數
-
第二列:單詞數目
-
第三列:檔案的位元組數,即檔案的大小
-
第四列:檔案名
也可以一次查看多個檔案的內容,例如:
$ wc filename1 filename2 filename3復制檔案
可以使用 cp 命令來復制檔案,cp 命令的基本語法如下:
$ cp source_file destination_file下面的例子將會復制 filename 檔案:
$ cp filename copyfile $現在在當前目錄中會多出一個和 filename 一模一樣的 copyfile 檔案,
重命名檔案
重命名檔案可以使用 mv 命令,語法為:
$ mv old_file new_file下面的例子將會把 filename 檔案重命名為 newfile:
$ mv filename newfile $現在在當前目錄下,只有一個 newfile 檔案,
mv 命令其實是一個移動檔案的命令,不但可以更改檔案的路徑,也可以更改檔案名,
洗掉檔案
rm命令可以洗掉檔案,語法為:
$ rm filename注意:洗掉檔案是一種危險的行為,因為檔案內可能包含有用資訊,建議結合 -i 選項來使用 rm 命令,
下面的例子會徹底洗掉一個檔案:
$ rm filename $你也可以一次洗掉多個檔案:
$ rm filename1 filename2 filename3 $標準的Linux流
一般情況下,每個Linux程式運行時都會創建三個檔案流(三個檔案):
-
標準輸入流(stdin):stdin的檔案描述符為0,Linux程式默認從stdin讀取資料,
-
標準輸出流(stdout):stdout 的檔案描述符為1,Linux程式默認向stdout輸出資料,
-
標準錯誤流(stderr):stderr的檔案描述符為2,Linux程式會向stderr流中寫入錯誤資訊,
Linux目錄
目錄也是一個檔案,它的唯一功能是用來保存檔案及其相關資訊,所有的檔案,包括普通檔案、設備檔案和目錄檔案,都會被保存到目錄中,
主目錄
登錄后,你所在的位置就是你的主目錄(或登錄目錄),接下來你主要是在這個目錄下進行操作,如創建檔案、洗掉檔案等,
使用下面的命令可以隨時進入主目錄:
$cd ~ $這里 ~ 就表示主目錄,如果你希望進入其他用戶的主目錄,可以使用下面的命令:
$cd ~username $回傳進入當前目錄前所在的目錄可以使用下面的命令:
$cd - $絕對路徑和相對路徑
Linux 的目錄有清晰的層次結構,/ 代表根目錄,所有的目錄都位于 / 下面;檔案在層次結構中的位置可以用路徑來表示,
如果一個路徑以 / 開頭,就稱為絕對路徑;它表示當前檔案與根目錄的關系,舉例如下:
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3不以 / 開頭的路徑稱為相對路徑,它表示檔案與當前目錄的關系,例如:
chem/notes personal/res獲取當前所在的目錄可以使用 pwd 命令:
$pwd /user0/home/amrood $查看目錄中的檔案可以使用 ls 命令:
$ls dirname下面的例子將遍歷 /usr/local 目錄下的檔案:
$ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami創建目錄
可以使用 mkdir 命令來創建目錄,語法為:
$mkdir dirnamedirname 可以為絕對路徑,也可以為相對路徑,例如
$mkdir mydir $會在當前目錄下創建 mydir 目錄,又如
$mkdir /tmp/test-dir $會在 /tmp 目錄下創建 test-dir 目錄,mkdir 成功創建目錄后不會輸出任何資訊,
也可以使用 mkdir 命令同時創建多個目錄,例如
$mkdir docs pub $會在當前目錄下創建 docs 和 pub 兩個目錄,
創建父目錄
使用 mkdir 命令創建目錄時,如果上級目錄不存在,就會報錯,下面的例子中,mkdir 會輸出錯誤資訊:
$mkdir /tmp/amrood/test mkdir: Failed to make directory "/tmp/amrood/test"; No such file or directory $為 mkdir 命令增加 -p 選項,可以一級一級創建所需要的目錄,即使上級目錄不存在也不會報錯,例如
$mkdir -p /tmp/amrood/test $會創建所有不存在的上級目錄,
洗掉目錄
可以使用 rmdir 命令來洗掉目錄,例如:
$rmdir dirname $注意:洗掉目錄時請確保目錄為空,不會包含其他檔案或目錄,
也可以使用 rmdir 命令同時洗掉多個目錄:
$rmdir dirname1 dirname2 dirname3 $如果 dirname1、dirname2、dirname3 為空,就會被洗掉,rmdir 成功洗掉目錄后不會輸出任何資訊,
改變所在目錄
可以使用 cd 命令來改變當前所在目錄,進入任何有權限的目錄,語法為:
$cd dirnamedirname 為路徑,可以為相對路徑,也可以為絕對路徑,例如
$cd /usr/local/bin $可以進入 /usr/local/bin 目錄,可以使用相對路徑從這個目錄進入 /usr/home/amrood 目錄:
$cd ../../home/amrood $重命名目錄
mv (move) 命令也可以用來重命名目錄,語法為:
$mv olddir newdir下面的例子將會把 mydir 目錄重命名為 yourdir 目錄:
$mv mydir yourdir $點號(.)
一個點號(.)表示當前目錄,兩個點號(..)表示上級目錄(父目錄),
ls 命令的 -a 選項可以查看所有檔案,包括隱藏檔案;-l 選項可以查看檔案的所有資訊,共有7列,例如:
$ls -la drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 . drwxr-xr-x 60 root 1536 Jul 13 14:18 .. ---------- 1 teacher class 4210 May 1 08:27 .profile -rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo $Linux檔案權限

本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/255441.html
標籤:其他
上一篇:STM32 Flash詳解
