自學Linux已經兩個星期了(不算之前的水課),之前也學過一些Linux,但不像現在這種學習狀態。這幾天除了上課,我的首要任務就是學習Linux!
在這兩個星期的學習中,通過看馬哥教育的視頻和鳥哥的私房菜,大致學到了這些東西:
1.計算機的基礎知識
2.操作系統的相關知識
3.Linux命令行的常用命令
4.Linux用戶的認識
一、計算機的基礎知識
- 計算機的體系結構:運算器,控制器,存儲器,輸入輸出
- 機算計上電後如何識別硬件部分?上電自檢
- 前端總線:南橋北橋 固態硬盤 機械硬盤
- 什麼事CPU的主頻,什麼是緩存
- 內核kernel,操作系統,API,shell之間的關係
- 內核功能:進程管理,內存管理,文件系統,網絡功能,硬件驅動,安全機制
- 批處理系統是什麼? jobs1$$$$$$$jobs2$$$$$$$$單進程
- GUI和CLI:圖形交互界面和命令行交互界面
二、Linux操作系統相關知識
- GUN,GPL
- 操作系統的發展歷史
- Linux的最新內核版本 www.kernel.org
- Linux的發行廠商release:Debian,RedHat,Ubuntu,CentOS,Fedora,Mandriva
- 開放源代碼:自由獲取,自由修改,自由學習
- 瞭解GPL, BSD, Apache三個開源協定(版權描述)的大體聯繫及區別
-
發行版:Fedora, RedHat(CentOS), SUSE, Debian(Ubuntu, Mint), Gentoo, LFS(Linux From Scratch)
Linux的基本原則:
1、由目的單一的小程序組成;組合小程序完成複雜任務;
2、一切皆文件;
3、儘量避免捕獲用戶接口;
4、配置文件保存爲純文本格式;
Linux文件系統
文件系統層級標準FHS(Filesystem Hierarchy Standard):Linux標準委員會規定了根文件目錄標準
/boot: 系統啓動相關的文件,如內核、initrd,以及grub(bootloader)
/dev: 設備文件
設備文件:
塊設備:隨機訪問,數據塊
字符設備:線性訪問,按字符爲單位
設備號:主設備號(major)和次設備號(minor)
/etc:配置文件
/home:用戶的家目錄,每一個用戶的家目錄通常默認爲/home/USERNAME
/root:管理員的家目錄;
/lib:庫文件
靜態庫, .a
動態庫, .dll, .so (shared object)
/lib/modules:內核模塊文件
/media:掛載點目錄,移動設備
/mnt:掛載點目錄,額外的臨時文件系統
/opt:可選目錄,第三方程序的安裝目錄
/proc:僞文件系統,內核映射文件
/sys:僞文件系統,跟硬件設備相關的屬性映射文件
/tmp:臨時文件, /var/tmp
/var:可變化的文件
/bin: 可執行文件, 用戶命令
/sbin:管理命令
/usr:shared, read-only
/usr/bin
/usr/sbin
/usr/lib
/usr/local:
/usr/local/bin
/usr/local/sbin
/usr/local/lib
命名規則:
1、長度不能超過255個字符;
2、不能使用/當文件名
3、嚴格區分大小寫
三、Linux基礎命令(重點)
命令類型:
內置命令(shell內置),內部,內建
外部命令:在文件系統的某個路徑下有一個與命令名稱相應的可執行文件
命令行展開{ }
1.man命令:
Linux的命令手冊:manual
man COMMAND
NAME:命令名稱及功能簡要說明
SYNOPSIS:用法說明,包括可用的選項
DESCRIPTION:命令功能的詳盡說明,可能包括每一個選項的意義
OPTIONS:說明每一個選項的意義
FILES:此命令相關的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外參照
翻屏:
向後翻一屏:SPACE
向前翻一屏:b
向後翻一行:ENTER
向前翻一行:k
查找:
/KEYWORD: 向後
n: 下一個
N:前一個
?KEYWORD:向前
n: 下一個
N:前一個
退出:q
獲得命令的使用幫助:
內部命令:
help COMMAND
外部命令:
COMMAND --help
2.ls命令:
list 列表 目錄
-l:長格式
文件類型:
-:普通文件 (f)
d: 目錄文件
b: 塊設備文件 (block)
c: 字符設備文件 (character)
l: 符號鏈接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
文件權限:9位,每3位一組,每一組:rwx(讀,寫,執行), r--
文件硬鏈接的次數
文件的屬主(owner)
文件的屬組(group)
文件大小(size),單位是字節
時間戳(timestamp):最近一次被修改的時間
訪問:access
修改:modify,文件內容發生了改變
改變:change,metadata,元數據
-h:做單位轉換
-a: 顯示以.開頭的隱藏文件
. 表示當前目錄
.. 表示父目錄
-A
-d: 顯示目錄自身屬性
-i: index node, inode
-r: 逆序顯示
-R: 遞歸(recursive)顯示
3.cd命令:change directory
家目錄,主目錄, home directory
cd ~USERNAME: 進入指定用戶的家目錄
cd -:在當前目錄和前一次所在的目錄之間來回切換
cd:回到家目錄
4.type命令: 查看命令屬於哪種類型
內置命令還是外部命令
5.date命令:時間管理
hwclock命令
cal命令: calendar
6.whatis命令:
查看命令手冊的章節
分章節:
1:用戶命令(/bin, /usr/bin, /usr/local/bin)
2:系統調用
3:庫用戶
4:特殊文件(設備文件)
5:文件格式(配置文件的語法)
6:遊戲
7:雜項(Miscellaneous)
8: 管理命令(/sbin, /usr/sbin, /usr/local/sbin)
7.info命令:在線文檔
8.file命令:查看文件類型
9.mkdir命令:創建空目錄
10.rmdir命令:刪除空目錄
11.touch命令:修改文件時間或創建新文件
touch後面直接接文件,該文件的三個時間都會被更新爲目前時間,如果文件不存在,則主動創建一個新的文件。
文件的三個時間參數:
modification time(mtime):該文件的內容數據更改時更新的時間
status time(ctime):文件的狀態改變時更新的時間,像是權限與屬性被更改了
access time:該文件被訪問時更新的時間
-a:僅修改訪問時間
-c:僅修改文件時間(ctime)
-m:僅修改mtime
-t:後面可接欲修改時間而不用目前的時間格式爲YYMMDDhhmm
12.stat命令:
13.tree命令:查看目錄樹
14.nano命令:超簡單文本編輯器
15.rm命令:移除文件或目錄
-i:互動模式,在刪除時詢問用戶是否操作
-f:強制(force)
-r:遞歸刪除
16.cp命令:複製文件或目錄
cp 源文件(source) 目標文件(destination)
cp除了單純的複製之外,還可以創建連接文件(即快捷方式)
-r:遞歸持續複製,用於目錄的複製行爲
-i:若目標文件(destination)已存在,在覆蓋時會詢問操作的進行
-f:爲強制(force)的意思
-p:連同文件的屬性一起復制,而非使用默認屬性(備份常用)
-a:歸檔複製,常用於備份
17.mv命令:移動文件與目錄,或更名
18.install命令:複製文件和指定屬性
-d:後面只有一個文件,創建目錄
-m:複製後製定權限
19.cat命令:concatenate
cat:由第一行開始顯示文件內容
tac:由最後一行開始顯示文件內容
20.more:一頁一頁的顯示文件內容
21.less:和more類似,但它比more更好的是可以往前翻頁
22.head:只看頭幾行
23.tail:只看後幾行
文本處理:
cut、join、sed、awk
database:數據庫
關係型數據庫:
表:二維表
文本文件:
Tom:23:male:2013/05/06
cut:
-d: 指定字段分隔符,默認是空格
-f: 指定要顯示的字段
-f 1,3
-f 1-3
文本排序:sort
-n:數值排序
-r: 降序
-t: 字段分隔符
-k: 以哪個字段爲關鍵字進行排序
-u: 排序後相同的行只顯示一次
-f: 排序時忽略字符大小寫
uniq:
-c: 顯示文件中行重複的次數
-d: 只顯示重複的行
文本統計:wc (word count)
-l
-w
-c
-L
字符處理命令:tr —— 轉換或刪除字符
tr [OPTION]... SET1 [SET2]
-d: 刪除出現在字符集中的所有字符
tr ab AB