一、操作系統
shell:
GUI: Graphic User Interface 圖形用戶界面
Windows
X-Window:
Gnome
KDE
Xfce
CLI:Command Line Interface
sh
bash
csh
ksh
zsh
tcsh
兩大雷鋒實驗室:
貝爾實驗室
施樂公司的PARC實驗室:以太網,鼠標,圖形用戶界面
庫文件:
.dll : dynamic link library, windows 下的 動態鏈接庫。
.so: shared object ,共享對象,dso, Linux 下的庫
二、Linux
登錄界面
A創建的文件不希望被B訪問到,就需要在文件上附加權限。
權限:訪問資源的能力的設定
計算機所能處理的最快的資源不是字符,而是數字。
login:
用戶名:用戶ID,用戶名是公開的,用戶名不能用來作爲限定用戶是否可以訪問資源的認證標識
認證機制:Authentication 鑑別用戶就是他所聲稱的那個人的機制 ,密碼
授權:Authorization
審計:Audition 通過日誌來完成
prompt: 命令提示符
命令:
二進制程序
腳本文件
magic number: 程序的魔數
shebang
#!/bin/bash
# command options... arguments...
選項: 修改命令的執行特性
短選項
長選項
參數: 指定命令的作用對象
文件夾:
目錄: 路徑映射,也是文件
路徑:從指定起始點到目的地所經過位置,
文件系統: file system 實現層次化文件管理的一種機制。
列出指定路徑下的所有目錄或者文件
可以分叉的節點稱爲目錄
不能分叉的節點稱爲文件
絕對路徑: 從根開始查找的機制
相對路徑: 相對於當前所處位置查找
任何時候,當你登錄系統之後,在某個時刻,一定處於某個目錄上,這個目錄稱爲當前目錄,或工作目錄 working directory, current directory
Linux 上一定有的一級子目錄:FHS 文件系統層級結構標準
三、Linux 命令
1. ls
list: ls 列出,列表
ls:
列出指定路徑下的文件 , 目錄也是文件。
直接回車,不跟任何參數,也沒有任何選項 ,默認,缺省,顯示當前目錄
pwd: Printing Working Directory
最頂級路徑用 / ,各路徑之間的分隔符也使用 / ,windows 中使用反斜線 \
ls /root
藍色:目錄
綠色:有執行權限
ls
-l : long 長格式
十位: 最左側:
文件類型:
-: 普通文件 (f)
d: 目錄文件
b: 塊設備文件 (block)
c: 字符設備文件 (character)
l: 符號連接文件 (symbolic link file) 軟鏈接文件
p: 命名管道文件 (pipe)
s: 套接字文件 (socket)
文件權限:後九位:文件的權限 mod ,每三位一組,每一組 r 讀, w 寫, x 執行,
如果沒有對應的權限,用 - 表示
文件硬鏈接的次數:
文件的屬主:擁有者 owner
文件的屬組:group
文件大小:默認單位 字節
時間戳:最近一次被修改的時間。
每個文件都有三個時間戳,timestamp,
最近一次被訪問的時間,access
最近一次被修改的時間,modify 文件內容
最近一次被改變的時間. change 文件的屬性數據,也叫元數據 metadata
文件名
-h :單位轉換 eg: ls -lh
human readable
-a : all 隱藏文件用 .開頭
. 當前目錄
.. 父目錄, 當前目錄的上一級目錄
-A : 隱藏文件,不包括 . 和 ..
-d : 顯示目錄自身屬性 eg: ls -ld /root
-i : 顯示 index node 簡寫爲 inode 文件的索引節點號
-r: 逆序顯示
-R: 遞歸(recursive)顯示
2. cd
cd: change directory 切換目錄
home directory: 不加任何參數:回到用戶的主目錄,家目錄
在 bash 下,每個用戶的家目錄使用 ~ 表示 ,cd ~
cd ~ USERNAME: 管理員 cd + ~ + 用戶名 ,到指定用戶的家目錄去
cd - : 在前一個目錄和當前目錄來回切換
3.type
Linux 命令類型
內置命令:shell 內置
外部命令:在文件系統的某個路徑下有一個與命令名稱相應的可執行文件
環境變量:用於定義當前用戶的工作環境的,指定工作環境屬性的
變量:是命名的內存空間
變量賦值:向起了名字的內存空間裏放數據
堆:heap
其他申請保存數據的地方,不是變量,但需要保存數據
比如打開一個文件,這個文件要打開,需要申請一段內存空間。
這個文件要被程序打開,必須申請內存
棧: stack
本地聲明的一些變量和靜態變量
type: 用於顯示指定命令屬於哪種類型
4. clear 清屏
5. printenv 顯示環境變量
HOSTNAME: 主機名
TERM: 終端類型
SHELL: 使用的shell程序
PATH:
PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
使用 : 分割的一堆路徑,
當執行命令的時候,會按次序從path指定的路徑中去查找命令,找到爲止
第一次找,然後在內存中緩存。
一個命令要想執行,不帶路徑,就必須是 PATH 指定路徑下的命令,如果不是,無法執行。
6.hash
緩存的命令 (命中的次數,命令路徑)
hitscommand
1/usr/bin/printenv
21/bin/ls
4/usr/bin/clear
緩存爲王 cache is king
hash 哈希,鍵值對,key value 數據庫
在鍵值庫中查找數據的速度是 O(1)
big O: 大 O 標識,
衡量一個程序執行速度的一種標準
從一個列表中查找一個數據的速度隨着列表的長度的變化而變化的函數比例,或趨勢
O(1) :無論隊列有多長,從中找一個數據的時間一樣,
從一箇中找和從一萬個中找,時間一樣
哈希是單一比較的,是有索引的,比從文件系統中找要快很多。
7. date
- 顯示當期系統時間
- 修改時間
Linux 的時間實現機制
電腦關機了,下次開機,時間顯示還是正確的
主板上有個鈕釦電池
rtc: real time clock
ntp: network time protocol 網絡時間協議
Linux 在開機的時候,會通過 rtc 讀取時間,一旦讀取成功了,就不再使用這個時間了。操作系統自身,會通過軟件的方式,模擬振盪器,在系統內部維持一個時間。
- 硬件時鐘
- 系統時鐘
date 命令看到的是 系統時間,想看硬件時間,使用 clock 或 hwclock 命令 ,hardware clock
hwclock -w : 修改硬件時間,將系統時間同步到硬件時間去
hwclock -s : 修改系統時間,將硬件時間同步到系統時間去
8. man
獲得命令的使用幫助:
- 內部命令
help COMMAND
COMMAND -h
- 外部命令
COMMAND --help
命令手冊: manual 內部命令,外部命令通用 ,按 q 退出
man COMMAND
whatis COMMAN : 顯示命令的摘要信息,及出現在哪個章節中
man 有章節,一般有8個章節
1: 用戶命令 (/bin, /usr/bin, /usr/local/bin)-- 用戶、管理員都可以使用
2: 系統調用
man read
man 2 read : 顯示第2個章節中的內容
export LANG=en
man mount: 如果不指定章節,則命令第一次出現在第幾個章節中,就顯示幾
不是所有命令在第一個章節中都有
3: 庫調用
4: 特殊文件: (設備文件) 是比較獨特的文件,在磁盤上數據區域內沒有任何內容, 只是作爲設備 的訪問入口存在,不是一個真正的文件
5: 文件格式 (配置文件的語法)
6: 遊戲
7: 雜項 Miscellaneous
8: 管理命令 :(/sbin, /usr/sbin, /usr/local/sbin) -- 只有管理員可以使用
可以修改硬件參數,修改硬件工作特性,及其他系統級別的配置
[] : 表示可省略
| : 表示二選一,或多選一,不能同時使用
<>: 必須給出的內容
... : 可以出現多次
{} : 分組,沒有特殊意義
MAN
NAME : 命令名稱,及命令簡要使用說明
SYNOPSIS : 用法說明,包括可用的選項
DESCRIPTION : 命令功能的詳盡說明,包括每個選項的意義
OPTIONS: 說明每一個選項的意義
FILES: 此命令相關的配置文件
BUGS:
EXAMPLES: 使用示例
SEE ALSO: 另外參照
翻屏:
向後翻一屏: SPACE 空格
向前翻一屏: b
向後翻一行: ENTER 回車
向前翻一行: k
查找:
/KEYWORD : 向後
n: 下一個
N:前一個
?KEYWORD :向前
退出:
q
9. hwclock
hwclock -w : 修改硬件時間,將系統時間同步到硬件時間去
hwclock -s : 修改系統時間,將硬件時間同步到系統時間去
10. info
在線文檔
info COMMAND : 介紹發展歷史 ,man 的補充
cd /usr/share/doc : 大多數(並不是所有)命令都有使用和幫助說明的文檔
11. cal
cal : calendar