1. 程式人生 > >linux周總結

linux周總結

enter鍵 壓縮 指定 group 追加 刪除文件 p地址 實驗室 工作

一:Linux 的產生和發展

1.在1946年賓夕法尼亞大學制造出第一臺計算機ENIARC。每秒運算5000次但依舊有缺陷首先用戶獨占全機,資源利用率低。其次CPU要等待手工操作,CPU利用不充分。
2.兼容分時系統和鍵盤顯示器等終端的產生產生大大提高了計算機的性能。
3.1965年,Mutics計劃讓大型主機可以同時支持300個以上的終端機,1969年貝爾實驗室退出計劃失敗。
4.1970年,Unix誕生,1974年公之於眾。
5.1978年,SCO研發商業版Unix
6.1988年,Microsoft研發出xenix。
7.塔能鮑姆教授研發出MINIX系統(類Unix系統)。
8.1991年 linus Torvalds 寫出linux系統。

9.1993年,大約有100余名程序員參與了Linux內核代碼編寫/修改工作,此時Linux 0.99的代碼有大約有十萬行,用戶大約有10萬左右。
10.1994年3月,Linux1.0發布,代碼量17萬行,當時是按照完全自由免費的協議發布,隨後正式采用GPL協議。至此, Linux的代碼開發進入良性循環。很多系統管理員開始在自己的操作系統環境中嘗試linux,並將修改的代碼提交給核心小組。由於擁有了豐富的操作系統 平臺,因而 Linux的代碼中也充實了對不同硬件系統的支持,大大的提高了跨平臺移植性。

二:操作系統的安裝

操作系統的安裝我們不在贅述,詳細安裝過程請點擊下面的鏈接:操作系統安裝教程
在這裏我就講一下我再安裝過程中遇到的問題以及解決的方法:

問題:Intel VT-x 處於禁用狀態
解釋:Intel VT-x 即Virtualization Technology, 虛擬化技術,英特爾處理器內更出色的虛擬化支持Intel VT-x 有助於提高基於軟件的虛擬化解決方案的靈活性與穩定性。換句話說是在單CPU上支持多系統的技術。
解決方法:
(1)重啟系統,進入BIOS
(2)選擇advanced選項卡,選擇CPU setup,按enter鍵進入
(3)選擇Intel Virtualization Technology,選擇,按enter
(4)選擇Enable,按enter鍵,保存退出。

三:Linux基礎知識

1:終端

linux終端可以分為以下幾類:

(1)設備終端:鍵盤,鼠標,顯示器。
(2)物理終端(/dev/console):控制臺console
(3)虛擬終端:共有6個,其中有一個是圖形化終端(Ctrl+Alt+F1),其余終端分別對應Ctrl+Alt+F2~F6。
(4)串行終端(/dev/ttyS#):通過串行端口登錄,終端名為、dev/ttys
(5)偽終端(pty):字符或圖形化界面打開的終端。
(6)通過tty命令可以查看當前終端的終端名。

2:SSH

SSH為Secure Shell的縮寫,由IETF的網絡工作小組(Network Working Group)所制定;SSH為建立在應用層和傳輸層基礎上的安全協議。
SSH是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用SSH協議可以有效防止遠程管理過程中的信息泄露問題。透過SSH可以對所有傳輸的數據進行加密,也能夠防止DNS欺騙和IP欺騙。
SSH之另一項優點為其傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、POP、甚至為PPP提供一個安全的“通道”。
想要遠程控制服務器就要安裝SSH的客戶端:x-shell或SecureCRT。

3:shell

shell是一種人機交互語言,是用戶和Linux操作系統之間的接口。它接收用戶輸入的命令並把它送入內核。Shell也被稱為Linux的命令解釋器,是一種高級程序語言。
技術分享圖片
例子:
echo $SHELL 查看當前的shell類型
cat /etc/shells 查看當前系統所安裝的Shell
技術分享圖片

4:命令提示符

命令提示符格式:
[root@centos6 ~]#
[用戶名@主機名前綴 目錄路徑後綴]#|$ (root是為#,普通用戶時為$)
echo $PS1顯示當前的提示符格式
PS1="[\e[32m][\u@\h \W]\$[\e[0m] ":將命令提示符顏色改為紅色。(如果想要命令提示符一直變色則要講此命令存在/etc/bashrc文件下)

5:內部與外部命令(重點)

內部命令:集成在內存中的命令,這類命令使用頻率非常高。
外部命令:存儲在硬盤中的命令,這類命令使用頻率不高。
那麽如何知道一條命令是外部還是內部命令呢?我們可以通過type command 命令來查詢該命令是內部還是外部命令。
我們還可以用enable命令來激活,禁用,顯示內部命令:
enable 顯示所有已激活的內部命令
enable command 激活被禁用的內部命令
enable |wc -l 顯示激活中的內部命令的數量
enable -a 顯示所有的內部命令
enable -a |wc -l 顯示所有的內部命令的數量
enable -n 顯示所有被禁用的內部命令
enable -n command 禁用某個內部命令
命令的查找順序問題:
例子:
(1)執行echo 123
(2)禁用echo
(3)執行echo 456
結果發現echo雖然被禁用了,但依舊打印出456在上了,接著用type命令查詢echo,發現echo被hash在了/bin/echo目錄。Echo被禁用後變為外部命令,系統會根據PATH變量從左到右尋找echo,最終在/bin/下找到了echo,並存儲在hash中。
(4)將 /sbin/ifconfig 移到/usr/bin下取名為echo
(5)創建一個/root/bin目錄,並將/bin/echo移入/root/bin下,再執行echo命令結果出錯,這是什麽原因呢?首先當執行命令時,系統先到內存中查找被激活的內部命令,如果找不到就到外部中查找,但由於之前已經查找過一遍,並將查找結果(路徑)存到hash中,由於我們已經移走了,系統就找不到了。
(6)hash -r 清空所用的hash表,再執行echo命令
結果我們發現系統給我們的是IP地址。這是因為我們清空了hash表系統重新從PATH變量中尋找echo,並在/usr/bin下找到了echo,不過這是我們改的用來查IP的。並重新存在hash表中。
(7)enable echo 激活echo後運行echo命令。發現輸出空行,這是因為內部命令激活,系統重新從內存中找,不在找hash表。
總結來看系統以已下順序查找命令:
內部命令
外部命令
hash
PATH

6:別名

alias 顯示所有的別名信息
alias 別名=‘command -選項 參數‘
unalias 別名
unalias -a 取消所有別名
別名的保存 nano /etc/bashrc
使命令不受別名影響的方式
\command
‘command‘
"command"
/path/command

7:$的3個作用:

(1)$() 或 ``引用命令執行的結果
(2)$(()) 或$[]進行運算
(3)使用${}或"$變量名" 劃定變量名的起止範圍。
技術分享圖片

8:目錄結構

(1)文件有兩類數據:數據和元數據,元數據是指文件的權限,文件類型,UID,gid,數據區位置,大小,時間,文件鏈接數等等。
(2)Linux文件的後綴名並不重要。

9:查找幫助

當我們遇到忘記一些指令時,我們可以通過linux系統來查找命令的用法
對於內部命令我們可以用help command 來查找該命令的用法。
對於外部命令我們可以用command --help來查找
但這種方式有一些問題,查找不全面,觸發方式不一,所以我們可以用man來查找
Man:共分為9個章節,分別是用戶命令,系統調用,C庫調用,設備文件及特殊文件,配置文件格式,遊戲,雜項,管理類命令還有Linux內核API。
查找命令格式為man【0-9】 command 。用該命令還可以提取關鍵字,翻頁也方便。

10:iNode和block

當我們查找文件時都會看文件的的名字,但計算機不一樣,當他從文件系統找一個文件時會根據inode號來查找文件,文件的名字與iNode號相關聯,一個iNode號可以和多個文件名關聯,根據iNode號系統找到文件的存儲位置。iNode存儲著文件的元數據;如UID,gid,文件的權限,時間戳等,一個iNode節點與一個文件相關聯。
Block是存儲文件數據的地方。一個文件可能由多個block組成,所以block中會帶有指針。

11:硬鏈接與軟連接

硬鏈接:
與文件系統上的物理文件相對應,創建硬連接時鏈接數遞增,刪除文件時,鏈接數遞減,當連接數減到零時,文件被刪除。需要註意的是,硬鏈接不能跨越驅動器或分區。
軟連接:
軟連接與文件的目錄相關,可以跨分區,其大小為指向路徑字符串的長度。
軟硬鏈接最主要的區別是硬鏈接引用的是iNode號,創建後文件不分主次,刪除原文件後新創建的文件依然存在。軟連接引用的是源文件的目錄,刪除源文件後新文件也就沒了意義。
如何保證創建的軟連接不發生錯誤呢?我們可以以使用目錄作為參照,這樣就不會發生錯誤。
ln filename linkname
不能跨分區
ln -s filename linkname
可以跨分區,源被刪除,鏈接也不可用
技術分享圖片

12:輸入輸出重定向:

例子:echo 123 > test.txt :將123輸出重定向到test.txt文件
echo 133> test.txt :將133輸出重定向到test.txt文件,並將之前的文件內容123覆蓋
echo 123 > >test.txt :將123追加輸出重定向到test.txt文件。不覆蓋。
Cat 11.txt 2> test1.txt :若無文件11.txt,將錯誤輸出重定向到test1.txt。
Cat 11.txt 2>> test1.txt :若無文件11.txt,將錯誤輸出追加重定向到test1.txt。
find /etc/ -name “*.conf” &> find.all 將正確結果錯誤結果一起輸入到find.all。
當文件不存在時,>和>> 都能創建新文件,文件已存在時 >表示覆蓋,>>表示追加。Set -c 可以禁止覆蓋。Set +c:就解除禁止覆蓋。 >| :強制覆蓋。
2>&1 把錯誤的結果轉成正確的結果
1>&2 把正確的結果轉成錯誤的結果
Cat > file2.txt < /etc/fastab :將/etc/fastab的內容輸出到file2.txt中。
Cat > file4.txt << EOF :從鍵盤往file4.txt 文件中輸入,直到遇到EOF停止輸入,EOF要另起一行。
技術分享圖片
技術分享圖片

四:Linux常用命令

1:用戶登錄信息查看

whoami 顯示當前用戶名
who am/are/is 任意字符 顯示當前的終端信息
who 顯示所有終端的信息
w 顯示所有終端的詳細信息及所做的操作

2:設置時間

date 102013112020.45 月日時分年[.秒]
date -s ‘年-月-日 時:分:秒‘

3:開關機

poweroff關機
reboot重啟
init 0 關機
init 6 重啟
shutdown -r 重啟
shutdown -h 關機
shutdown +1
shutdown 20:00
shutdown -c 取消計劃關機

4:echo

echo 用來在終端上輸出。
-E 不開始解釋功能,默認
-n 不自動換行
-e 開啟解釋功能 ""
\a 警告聲
\b 退格
\c 不換行
\n 回車換行
\r 回車,即光標移至行首,但不換行
\t 插入tab
\ 插入\

5:cp

復制文件和目錄命令:cp
(1)執行該命令時,如果目標文件不存在,則會創建一個目標文件,若目標文件存在,則將將會被覆蓋。如果目標是一個目錄,則在該目錄下新建與原文件同名同內容的文件。
(2)當原文件為單個文件,目標文件不存在時,新建與原文件同名同內容的目標文件,當目標文件存在時,原目標文件將被覆蓋(名字不一定相同,內容一定相同),當目標存在且為目錄時,將在該目錄下新建與原文件同名同內容的文件。
(3)當原文件為多個文件時,目標必須存在且為目錄,在該目錄下新建若幹與原文件同名同內容的文件。
(4)當cp源頭是目錄時,此時命令中必須使用-r選項,若目標不存在則創建同名目錄,復制源目錄下文件到該目錄。當目標存在時則必須為目錄,此時將在該目錄下新建若幹與源目錄下文件相同的文件。
(5)常用指令選項
-i:覆蓋前提示 –n:不覆蓋,註意兩者順序
-r, -R: 遞歸復制目錄及內部的所有內容
-a: 歸檔,相當於-dR --preserv=all
-d:--no-dereference --preserv=links 不復制原文件,只復制鏈接名
--preserv[=ATTR_LIST]
mode: 權限
ownership: 屬主屬組
timestamp:
links
xattr
context
all
-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose 顯示復制的過程
-f: --force 當普通用戶對某目錄有rx權限時,使用-f可以將沒有修改權限的文件強制覆蓋。即刪除再創建。
(6)例子:
技術分享圖片

6: tr 命令 替換字符的命令

例子:
Tr [a-z] [A-Z]:將小寫換成大寫
Tr -d asb :除去字符串中的asb
Tr -s 12 :除去字符串中重復的1 2
Tr -cd 12 :只保留12字符
技術分享圖片

7:管道

管道可以將前一個命令的標準輸出傳送到後一個命令。
例子:ls | tr [a-z] [A-Z]
2>&1 | 或 |& 將所有的結果傳遞給管道處理
技術分享圖片

五:常用快捷鍵

            Ctrl+L 清屏
            Ctrl+O 執行當前命令,並重新顯示本命令
            Ctrl+s 鎖定,但仍可以運行命令。
            Ctrl+q 解鎖
            Ctrl+C 強制結束
            Ctrl+D 正常終止
            Ctrl+Z 掛起(暫停)命令
            Ctrl + a 光標移到命令行首,相當於Home
            Ctrl + e 光標移到命令行尾,相當於End
            Ctrl + xx 光標在命令行首和光標之間移動
            Ctrl + u 刪除光標之前的內容
            Ctrl + k 刪除光標這後的內容
            Alt + r 清除全部內容
            Alt + N 提示輸入指定字符後,重復顯示該字符N次(N表示具體的數字)

六:總結

    在這一周的學習中,我學到了很多Linux的基礎知識,這些知識不難,但很零碎,而且需要記憶。同時在學習的過程中也不能一昧死記硬背,要理解的同時合理使用man功能。在學習的過程中也出現了很多錯誤,在練習的過程中也有很多和老師演示不同的情形,這些都要理解透徹,搞明白。這樣才能更好地提高自己。

linux周總結