GUI: Graphic User Interfacenode
Windows : Windowslinux
Linux : x-Windowc++
Gnome cshell
KDE c++數據庫
Xface 嵌入式經常使用桌面windows
GLI: Command Line Interface 緩存
shbash
bash網絡
cshide
ksh
zsh
tcsh
IDE: 集成開發環境
用戶操做:
用戶名:計算機識別用戶靠的是數字 用戶ID
認證機制: Authentication 認證過程就是鑑別用戶身份的一種機制
資源訪問的受權: 受權 Authorization
審計; Audition (審計對於計算機而言大多數是靠日誌完成的)
prompt,命令提示符
命令: 既能夠是二進制的程序 也能夠是腳本文件 (對於內核而言,是嚴格區分兩者的)
通常一個可執行文件,他必須有一個可執行入口 庫是沒有執行入口的,但它是個可執行文件
這個二進制文件開頭出有幾個字節是很是獨特的標識,稱之爲程序的魔數
magic number :魔數 能夠標記二進制程序的執行格式
在windows下程序執行的魔數和linux下程序執行的魔數是不同的,他們所理解的二進制格式也是不進相同的
因此就算兩者的庫徹底同樣 你在windows上編譯的程序也未必能在linux上執行
#!/bin/bsah 咱們腳本這一行必須這樣寫是由於這就是給咱們的文件指定一個魔數的 ,它也被稱爲shebang
當一個程序執行的時候 這個程序的執行入口就被提交給內核了 只有內核才能管理進程
內核公用: 進程管理 內存管理 文件系統管理 驅動程序管理
當咱們在命令提示符地下給它一個命令並敲擊回車時 相關的執行程序就會被提交給內核
(由bash提交給內核 內核接着就去找這個執行程序的魔數,判斷其是否是可執行格式或者該內核可 理解 是執行 否拒絕運行)
到底要不真正執行還取決於外圍權限等各類複雜的機制,因此說程序必須有執行入口 這個執行入口標就是用來標識它的魔數
以及這個程序的執行格式等
# command optians.. arguments....
ls:list
列表 列出 它能列出你所指定目錄下全部的子目錄或者文件 目錄並非文件夾 它只是路徑的映射而已
目錄:也是一種文件 是一種路徑映射文件
路徑: 從指定起始點到目的地所通過的位置(計算機中引用這個概念是爲了實現層次化管理文件的一種機制,爲了方便快速查找操做文件)
層次化管理文件管理的這種一種機制咱們稱之爲文件系統: file system 、
linux的目錄結構咱們稱之位倒狀的樹狀結構
咱們登錄系統的時候必定是處在當前某個目錄上 (如windows開機後處在桌面上(桌面也是一個目錄))
目錄: working directory(工做目錄) current directory(當前目錄)
FHS:文件系統層級結構標準 它裏面規定了有些目錄必須存在,並且這些目錄必須放什麼
pwd : Printing Working directory (顯示工做目錄)
最頂級那個目錄用斜線「/」表示 windows用的反斜線 \
而後個路徑之間的分隔符也使用斜線
ls:
-l long 長格式 (表示顯示的是完整的信息)
首位表明文件類型:
- :普通文件(f)
d :目錄文件
b :塊設備文件(block)
c :字符設備文件(character)
l :符合連接文件 (symbolic link file) 也叫軟連接文件
p :命令管道文件(pipe)
s : 套接字文件(socke )
後面的九個位表示文件的權限 Mode
文件權限: 9位 每3位一組 每一組裏面都有rwx(讀 寫 執行)(若是沒有某種權限則用 "-"表示) rw- 表示能讀能寫不能執行
下一個是文件硬連接的次數
下一個是文件的屬主(owner)
下一個是文件的屬組(group)
文件大小(size)默認單位是字節
時間戳(timestamp) 每個文件都三個時間戳 最近一次被訪問的時間 最近一次被修改的時間 最近一次被改變的時間
訪問: access
修改: modify 改變了文件的內容
改變: change 改變了文件的屬性或者叫改變了文件的元數據
一個文件有兩種數據 一種是文件的自身數據 一種是文件的屬性數據 屬性數據也叫元數據(metadata)
最後一個是文件名
-h: 作單位換算的
-a: 顯示以.開頭的隱藏文件
. 表示當前目錄
.. 表示當前目錄的上一級目錄(父目錄)
-A: 顯示全部隱藏文件 可是不包含 .和 ..
-d: 顯示目錄自身屬性
-i: 顯示文件的索引結點號的 index node ==> inode 文件的索引結點 每一個結點都有對應的結點號
-r: 逆序顯示文件
-R: 遞歸(recursive)顯示 不只該目錄顯示 該目錄的字目錄也顯示 一直顯示到空
cd: change direcotry 切換當前工做目錄
cd 不加任何參數 回到用戶的主目錄(家目錄) home directory
對於本身的家目錄 用戶有全部的操做權限 因此用戶建立刪除文件等各類工做通常在家目錄下完成
每一個用戶的家在basd中都用波浪線"~"表示
cd ~USERNAME 進入指定用戶的家目錄 只有管理員能夠
cd - 在前一個目錄與當前目錄之間來回切換
ls / 顯示當前全部目錄
linux命令類型:
內置命令(shell內置 用來管理自己的一些必要命令) 如cd is a shell builtion (cd是一個內置命令)
外部命令: 在文件系統某個路徑下有一個與命令名稱相應的可執行文件
環境變量:可理解爲就是定義當前用戶的工做環境的(好比咱們能夠定義咱們用的主題 壁紙 logo等 每一個屬性的定義都使用一個環境變量來存放)
因此不管哪一種shell 都必須有環境變量
變量是命名的內存空間 向這個起名的內存空間放入數據叫變量賦值
聲明變量的過程就是讓程序告訴操做系統 咱們要使用一塊內存
棧:一般放本地聲明的一些變量和靜態變量等
堆:其餘須要保存的數據(好比打開一個文件) 一般存放在堆中
type 顯示指定命令屬於那種類型
hash 緩存 在緩存中記錄下來以前所用過命令的路徑 而且在下一次尋找的時候 先看緩存有沒有 找不到搜索
緩存保存的是一個hash(哈希)列表 哈希列表保存的是一個鍵值對 它是一個鍵值數據庫 在鍵值數據庫中 它是(0)1的
(0)1 指的是不管這個隊列有多長 我從中找到任何一個數據所用的時間是同樣的 因此說 緩存是實現系統加速的
因此一個文件要麼給出一個完整路徑 要麼加載到PATH表當中 才能執行
PATH環境變量: 使用冒號分割的一堆路徑
printenv 顯示當前環境變量
linux: rtc:硬件時間 實時時鐘
ntp:網絡時間協議
與windows不一樣的是,咱們的linux在開機的時候,它會經過rtc讀取當前時間,可是一旦讀取成功後就不在使用這個時間
之後咱們操做系統自身或者說是咱們內核自身會經過軟件的方式模擬晶振在系統內部維持一個時鐘
因此linux開機有兩個時鐘
硬件時鐘
系統時鐘
因爲cpu很是繁忙,因此係統時鐘有可能出現偏差 AM上午 PM下午
date: 時間管理(看到的是系統時間)
clock/hwclock: 硬件時間
得到命令的使用幫助:
內部命令:
help COMMAND
外部命令:
COMMAND --help (大多數)
命令手冊:manual (公共命令使用方式)
man COMMAND 使用手冊在linux上是一個文本文檔,但這個文檔是壓縮存放的
對於內部命令而言 你man的不是這個內部命令 man的是這個內部命令所屬的shell
whatis COMMAND 它能夠顯示這個命令的摘要信息以及出如今哪些個章節中
man是分章節的: 常見章節有8個 (分章節說明)
第1章節1:用戶命令(/bin, /user/bin, /user/local/bin)
2:系統調用
3:庫調用 只有庫纔有庫調用 命令不是庫 庫也不是命令 會同時出現只多是重名
4:特殊文件(設備文件) 設備文件是一類比較獨特的文件 它在你係統上,在你磁盤上真正的數據區域裏沒有存儲任何內容
它只是做爲設備的訪問入口存在的,並非一個真正的文件,所以本章節都是在解釋這些設備文件是什麼
5:文件格式(就是配置文件的語法(怎麼使用))
不少命令爲了定義它的執行屬性 咱們可使用選項
對於很是複雜的執行文件,它一般都有一個叫作配置文件的文件,在這個配置文件中保存了以往能夠經過選項指定的程序執行屬性
因此這個配置文件中有不少相似於變量同樣的東西,來定義這個程序的執行屬性
6:遊戲
7:不便歸類的雜項命令(miscellaneous)
8:管理命令(/sbin, /user/sbin, /user/local/sbin)
在man中 命令的使用格式裏 []可選 |多選一
<>必選 ...能夠出現屢次
{}分組
在線文檔
info COMMAND (詳細到發展 歷史神馬的)
type COMMMAND 顯示命令類型(內部仍是外部)
文檔: /usr/share/doc
man手冊各章節說明
NAME:命令名稱以及功能簡要說明
SYNOPSIS:用法說明 包括可用的選項
DESCRIPTION:命令功能的詳盡說明,可能包括每個選項的意義
OPTIONS: 說明每個選項的意義
FILES: 此命令相關配置文件
EXAMPLES:使用示例
SEE ALSO:另外參照
翻屏:
向後翻一屏: 空格鍵(space)
向前翻一屏: b鍵
向後翻一行: enter鍵
向前翻一行: k鍵
查找:
/KEYWORD 向後 (從當前位置)
n:下一個
N: 上一個
?KEYWORD 向前
n:上一個
N:下一個
q:退出
hwclock
-w:將系統時間寫到硬件當中去
-s:將硬件時間寫到系統當中來
cal:calendar日曆