1. 程式人生 > >Linux 學習之路(一)

Linux 學習之路(一)

01|03

kernel space 記憶體碎片

GUI:圖形使用者介面

CLI:命令列使用者介面

核心功能:

程序管理

記憶體管理

檔案系統

網路功能

硬體驅動

安全機制

批處理系統

jobs1$$$$$$jobs2

kernel:2w

Debian,dpt

RedHat:rpm
01|04

Linux的基本原則:

1.由目的單一的小程式組成,組合小程式完成複雜任務。

2.一切皆檔案

3.儘量避免捕獲使用者介面

4.配置檔案儲存為純文字格式

CLI介面:

命令提示符:prompt,bash(shell)

	#:root

	$:普通使用者

命令格式:

命令 選項 引數

短選項:-v 多個選項可以組合 -a -b=-ab

長選項:--word

引數:命令的作用物件

使用憑證:root redhat

虛擬終端(terminal):Ctrl+Alt+F2(預設由六個終端可以啟動)

startx &_啟動圖形介面

linux靈活之處在於可以啟動多個圖形介面。

GUI:

Gnome:c

KDE:c++

XFace

CLI:

bash\csh\zsh\ksh\tcsh

su:switch user

su -l student 完全切換

su student半切換

exit退回原來的位置

#passwd修改當前使用者密碼,密碼複雜性規則
02|01

GUI:Graphic User Interface

CLI:Command Line Interface

IDE:程式設計師所使用的程式開發環境

DLL:Dynamic Link Library(windows)

.so:shared object共享物件

認證機制:Authentication

授權:Authorization

審計:Audition(日誌)

命令:

magic number魔數

shebang

#!/bin/bash看是不是當前程式所能理解的可執行格式,執行入口標誌魔數等等

目錄:檔案,路徑對映

路徑:從指定起始點到目的地所經過位置。實現層次化管理的一種機制

相對目錄:相對於現在所處位置

FHS:檔案系統層級目錄標準

檔名是不是檔案的資料?

pwd:printing working directory顯示當前目錄,根目錄/

ls

-l 長格式 顯示完整資訊

檔案型別:

	-:普通檔案(f)

	d:  目錄檔案

	b:塊裝置檔案(block)

	c:字元裝置檔案(character)

	l:符號連結檔案(symbolic link file),軟連結檔案

	p:命令管道(pipe)

	s:套接字檔案(socket)

	檔案許可權:9位,每3位一組,每一組:rwx(讀、寫、執行)rw-能讀能寫不能執行

	檔案硬連結的次數

	檔案的屬主(owner)

	檔案的屬組(group)

	檔案大小(size),單位是位元組

	時間戳(timestamp):最近一次被修改的時間

		訪問:access

		修改:modify改變檔案內容

		改變:change,metadata,元資料,改變檔案屬性或者元資料

	-h:做單位轉換的預設是b

	-a:顯示以.開頭的隱藏檔案

		. 當前目錄

		..表示上一級目錄(父目錄)

	-A:顯示所有隱藏檔案但是不包括.或者..

	-d:顯示目錄自身屬性

	-i:index node,inode顯示檔案索引節點號

	-r:逆序顯示檔案

	-R:遞迴(recursive)顯示   遞迴很消耗資源

cd:change directory

	家目錄:主目錄,home directory使用者有所有操作許可權

	cd ~

	cd ~student 到student使用者的家目錄中

	cd -:在前一個目錄和當前目錄來回切換

命令型別:

	內建命令(shell內建):內部,內建

	外部命令:在檔案系統的某個路徑下有一個與命令名稱相應的可執行檔案

環境變數:命名的記憶體空間

變數賦值

	NAME=Jerry

type:顯示指定屬於哪種型別

printenv顯示環境

PATH:使用:分割的一堆路徑

hash快取:記錄下來所用過的命令的快取

cache is keen

Hash在鍵-值中查詢速度O(1):無論佇列多長,查詢時間是一樣的

date:時間管理

Linux:rtc當前時間

硬體時鐘 clock hwclock

系統時鐘 date

獲取命令的使用幫助:

內部命令:

help COMMAND

外部命令:

COMMAND --help

命令手冊:manual

man COMMAND開啟檢視命令的使用手冊

man 2 read

whatis COMMAND顯示命令摘要

分章節:

1:使用者命令(/bin,/usr/bin,/usr/local/bin)

2:系統呼叫

3:庫使用者

4:特殊檔案(裝置檔案)

5:檔案格式(配置檔案的語法)

6:遊戲

7:雜項:Miscellaneous

8:管理命令(/sbin,/usr/sbin,/usr/local/sbin)管理員使用

如果出現亂碼,則輸入man 2 read

man mount

[]可省的<>必須給出的內容,非可選的…可以出現多次

|:多選一

{}:分組

man lvcreate

MAN:

NAME

SYNOPSIS 用法說明,包括可用的選項

DESCRIPTION:命令功能的詳盡說明,可能包括每一個選項的意義

OPTIONS:說明每個選項的意義

FILES:此命令相關的配置檔案

EXAMPLES:使用示例

SEE ALSO:另外參照

翻屏:

向後翻一屏: SPACE

向前翻一屏:b

向後翻一行:ENTER

向前翻一行:k

查詢:

/KEYWORD:向後

n:下一個

N:前一個

q:退出

?KETWORD:向前

date +%D 顯示月/日/年

date +%F 顯示年-月-日

date 時間 直接修改系統時間

hwclock -s讀取硬體時間到系統中來

線上文件:

info ls
cal 12 2012 顯示12月日曆
練習:

1.echo是內部命令還是外部命令?

type echo 內部命令

2.其作用?

help echo

man echo顯示一行文字echo -n

3.如何換行顯示?

echo -e “The year is 2013. \nToday is 26.”

printf預設沒有換行符 \n

02|03 Linux根檔案詳解

file命令及其用法

windows:PE

Linux:ELF

檔案系統:

rootfs:根檔案系統

除了目錄,就是檔案

ls / 檢視到根檔案下的一級子目錄

/boot : 系統啟動相關的檔案,如核心、initrd,以及grub(bootloader)

/dev : 裝置檔案

裝置檔案:

	塊裝置:隨機訪問,資料塊

	字元裝置:線性訪問,按字元為單位。顯示器,滑鼠

	裝置號:主裝置號(major)和次裝置號(minor)

/etc:配置檔案:純文字檔案形式儲存

/home:使用者的家目錄,每一個使用者的家目錄通常預設為/home/USERNAME

/root:管理員的家目錄,生產環境中不建議直接用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、嚴格區分大小寫

檔案管理、目錄管理、執行程式、裝置管理、軟體管理、程序管理、網路管理

目錄管理:

ls cd pwd

mkdir: 建立空目錄

-p:如果要建立的目錄的父目錄不存在,則同時建立

-v:verbose詳細資訊

命令列展開:自動將{}中的內容展開為兩個

mkdir -pv /mnt/test/{x/m,y}

展開為:mkdir -pv /mnt/test/x/m /mnt/test/y

如果要建立a_b,a_c,d_b,d_c

mkdir {a,d}_{b,c} 神奇的Linux!!!(注:(a+b)(b+c)=ab+ac+db+bc)

#tree:檢視目錄樹

刪除目錄:rmdir (remove directory)

刪除空目錄

一線單傳空目錄刪除 rmdir -p xxxxx

檔案建立和刪除:

#touch 修改檔案的時間戳

touch -a a改變檔案訪問時間

#stat顯示檔案和檔案的狀態資訊

建立檔案,可以使用檔案編輯器

刪除檔案 rm

-i : 互動式(只有管理員有這個)

-f 強行刪除

-r遞迴刪除這個目錄下的所有檔案

rm -rf /

\rm a 直接刪除不提示(有別名的命令前加,以原始形式使用)

02|04

複製和移動檔案

cp SRC DEST

-r,-i,-f

-p 保留原始檔的屬組,屬主

-a 保留檔案所有原來的屬性(用於實現備份,表示歸檔複製)

-d 保持連結自己(期望複製連結自己)

只能複製一個檔案到一個檔案,多個檔案到一個目錄

mv : move 移動檔案

mv SRC DEST

重新命名:

mv abc mn把當前目錄下的abc重新命名為mn

install uninstall

install複製檔案並且設定屬性

建立兩個目錄:

install -d /tmp/{install.1,install.2}

指定許可權 -m