01 Linux簡介

1.Linux簡介

UNIX與Linux發展史

Unix在1969年,美國貝爾實驗室的肯湯普森在DEC PDP-7機器上開發出了UNIX系統。node

Linux出現於1991年,是由芬蘭赫爾辛基大學學生李納斯·託瓦茲(Linus Torvalds)和後來加入的衆多愛好者共同開發完成 。linux

 

Linux介紹

Linux是一種自由和開放源碼的操做系統,存在着許多不一樣的Linux發行版本,但它們都使用了Linux內核。shell

Linux內核網站:www.kernel.orgubuntu

基於內核,再增長一些桌面,應用程序,就能夠發行,稱爲開發版。vim

 

Linux兩大陣營:windows

Redhat系列  redhat,suse,CentOS,Fedora等centos

Debian系列   debian,ubuntu等安全

區別: 命令細微的區別; 安裝方式bash

 

Linux應用領域

Linux企業服務器 服務器

嵌入式系統:Linux可安裝在各類計算機硬件設備中,好比手機、平板電腦、路由器、智能家電等嵌入式系統。

電影娛樂行業:電影后期特效處理。

 

Linux特色

開源

多用戶,多任務,豐富的網絡功能,可靠的系統安全,良好的可移植性,具備標準兼容性,良好的用戶界面,出色的速度性能

服務器不使用圖形化界面:

圖形化佔用資源

機房部署方便,無需配置操做界面

CentOS  社區版

主流:目前的Linux操做系統主要應用於生產環境,主流企業級Linux系統仍舊是RedHat或者CentOS

免費:RedHat 和CentOS差異不大,CentOS是一個基於Red Hat Linux 提供的可自由使用源代碼的企業級Linux發行版本

更新方便:CentOS獨有的yum命令支持在線升級,能夠即時更新系統,不像RedHat 那樣須要花錢購買支持服務!

CentOS官網:http://www.centos.org/

CentOS搜狐鏡像:http://mirrors.sohu.com/centos/

CentOS網易鏡像:http://mirrors.163.com/centos/

2.Linux安裝

安裝環境:Windows7/win10 , VMware Workstation11, CentOS 6.6

VMware

VMware是一個虛擬PC的軟件,能夠在現有的操做系統上虛擬出一個新的硬件環境,至關於模擬出一臺新的PC ,以此來實如今一臺機器上真正同時運行兩個獨立的操做系統 。

VMware主要特色:

一、不須要分區或從新開機就能在同一臺PC上使用兩種以上的操做系統

二、本機系統能夠與虛擬機系統網絡通訊

三、能夠設定而且隨時修改虛擬機操做系統的硬件環境

學習方法

轉變思惟習慣

圖形化界面/鼠標 ===〉 命令/鍵盤

Linux 與windows 主要區別:

Linux嚴格區分大小寫

Linux中一切皆文件

Linux 不區分擴展名  擴展名是爲了讓管理員使用

不懼英文 一往無前

記住經常使用英文,linux都是有套路的

command not found   Permission denied

動起來 練習

無他,惟手熟爾  

命令要敲的999,虛擬機環境能夠隨意折騰

3 Linux目錄結構

 

 

/bin: (binaries) 存放系統命令的目錄,全部用戶均可以執行。

/sbin : (super user binaries) 保存和系統環境設置相關的命令,只有超級用戶可使用這些命令,有些命令能夠容許普通用戶查看。

/usr/bin:存放系統命令的目錄,全部用戶能夠執行。這些命令和系統啓動無關,單用戶模式下不能執行

/usr/sbin:存放根文件系統沒必要要的系統管理命令,超級用戶可執行

/root: 存放root用戶的相關文件,root用戶的家目錄。宿主目錄  超級用戶

/home:用戶缺省宿主目錄 eg:/home/spark

/tmp:(temporary)存放臨時文件

/etc:(etcetera)系統配置文件

/usr:(unix software resource)系統軟件共享資源目錄,存放全部命令、庫、手冊頁等

/proc:虛擬文件系統,數據保存在內存中,存放當前進程信息

/boot:系統啓動目錄

 

/dev:(devices)存放設備文件

/sys :虛擬文件系統,數據保存在內存中,主要保存於內存相關信息

/lib:存放系統程序運行所需的共享庫

/lost+found:存放一些系統出錯的檢查結果。

/var:(variable) 動態數據保存位置,包含常常發生變更的文件,如郵件、日誌文件、計劃任務等

/mnt:(mount)掛載目錄。臨時文件系統的安裝點,默認掛載光驅和軟驅的目錄

/media:掛載目錄。 掛載媒體設備,如軟盤和光盤

/misc:掛載目錄。 掛載NFS服務

/opt: 第三方安裝的軟件保存位置。 習慣放在/usr/local/目錄下

/srv : 服務數據目錄

/dev:(devices)存放設備文件

/sys :虛擬文件系統,數據保存在內存中,主要保存於內存相關信息

/lib:存放系統程序運行所需的共享庫

/lost+found:存放一些系統出錯的檢查結果。

/var:(variable) 動態數據保存位置,包含常常發生變更的文件,如郵件、日誌文件、計劃任務等

/mnt:(mount)掛載目錄。臨時文件系統的安裝點,默認掛載光驅和軟驅的目錄

/media:掛載目錄。 掛載媒體設備,如軟盤和光盤

/misc:掛載目錄。 掛載NFS服務

/opt: 第三方安裝的軟件保存位置。 習慣放在/usr/local/目錄下

/srv : 服務數據目錄

4  Linux經常使用命令

命令格式:命令  [-選項]  [參數]

如:ls  -la  /usr

說明:   

大部分命令聽從該格式

多個選項時,能夠一塊兒寫   eg:ls –l –a à ls –la

簡化選項與完整選項(注:並不是全部選項均可使用完整選項)       eg:ls –all  à ls –a

su 命令

英文:switch user

做用:切換用戶身份

語法:su [選項] 用戶名

-      表示用戶的環境變量一塊兒切換

-c    僅執行一次命令,而不切換用戶身份

$ su – root

env

$ su – root –c 「useradd longjing」

 

文件處理命令

文件或目錄的CRUD

cd   

英文:change directory   命令路徑:內部命令    執行權限:全部用戶

做用: 切換目錄

語法:cd [目錄]
      / 切換到根目錄     

.. 回到上一級目錄    

. 當前目錄

-  顯示並打開到上一次操做的目錄     

     ~ 當前用戶的宿主目錄(eg:# cd ~用戶名  進入某個用戶的家目錄)

ls

英文:list 命令路徑:/bin/ls 執行權限:全部用戶
做用:顯示目錄文件
語法:ls [-alrRd] [文件或目錄]
-a all 顯示全部文件,注意隱藏文件,特殊目錄.和..
-l(long) 顯示詳細信息
-R(recursive) 遞歸顯示當前目錄下全部目錄
-r (reverse) 逆序排序
-t(time) 按修改時間排序(降序)
ll 至關於 ls –l
ll –htr 按時間順序以易讀的方式逆序排列

pwd

英文:print working directory       命令路徑:/bin/pwd         執行權限:全部用戶

做用:顯示當前工做目錄

語法:pwd [-LP]

       -L 顯示連接路徑,當前路徑,默認

       -P 物理路徑

eg:# cd /etc/init.d

#pwd [-P]

mkdir

英文:make directories    命令路徑:/bin/mkdir      執行權限:全部用戶

做用:建立新目錄

語法:mkdir [-p] 目錄名

-p 父目錄不存在狀況下先生成父目錄 (parents)

eg: mkdir linux/test  若是目錄linux不存在,則報錯,使用參數-p便可自動建立父目錄。

touch

命令路徑:/bin/touch             執行權限:全部用戶

做用:建立空文件或更新已存在文件的時間      

語法:touch 文件名   

eg:touch  a.txt  b.txt   touch {a.txt,b.txt}    同時建立多個文件

建立帶空格的文件   eg:touch "program files"   在查詢和刪除時也必須帶雙引號

注意:生產環境中,文件名,必定不要加空格

cp

英文:copy          命令路徑:/bin/cp            執行權限:全部用戶

做用:複製文件或目錄

語法:cp [–rp]  源文件或目錄 目的目錄

-r -R recursive 遞歸處理,複製目錄

-p 保留文件屬性 (原文件的時間不變)

eg:

1,相對路徑  cp –R /etc/* .     cp –R ../aaa  ../../test/

2,,絕對路徑  cp –R /ect/service  /root/test/aa/bb

mv

英文:move        命令路徑:/bin/mv           執行權限:全部用戶

做用:移動文件或目錄、文件或目錄更名

語法:mv 源文件或目錄 目的目錄

rm

英文:remove    命令路徑:/bin/rm            執行權限:全部用戶

做用:刪除文件

語法: rm [-rf] 文件或目錄

-r  (recursive)刪除目錄,同時刪除該目錄下的全部文件

-f(force) 強制刪除文件或目錄 即便原檔案屬性設爲惟讀,亦直接刪除,無需逐一確認

 

注意:工做中,謹慎使用rm –rf 命令。

擴展點:刪除亂碼文件

一些文件亂碼後使用rm -rf 依然沒法刪除

此時,使用ll -i 查找到文件的inode節點

而後使用find . -inum 查找到的inode編號  -exec rm {} -rf \;

就能順利刪除了

cat  

英文:concatenate   命令路徑:/bin/cat           執行權限:全部用戶

做用:顯示文件內容

語法:cat [-n] [文件名]

      -A  顯示全部內容,包括隱藏的字符  

       -n   顯示行號     

eg:cat /etc/services

more

命令路徑:/bin/more       執行權限:全部用戶

做用:分頁顯示文件內容

語法:more [文件名]

空格或f   顯示下一頁

Enter鍵   顯示下一行

q或Q  退出

head  

命令路徑:/usr/bin/head        執行權限:全部用戶

做用:查看文件前幾行(默認10行)

語法:head [文件名]

       -n 指定行數

eg:head -20 /etc/services   head –n 3 /etc/services

tail 

命令路徑:/usr/bin/tail    執行權限:全部用戶

做用:查看文件的後幾行       

語法:tail [文件名] 

-n 指定行數

-f  (follow) 動態顯示文件內容

獲取一個大文件的部分文件,可以使用head或tail命令

head -n 100 /etc/services >config.log

ln   

英文: link   命令路徑:/bin/ln      執行權限:全部用戶

做用:產生連接文件     

語法:

ln -s   [源文件]    [目標文件]    建立軟連接       源文件 使用 絕對路徑

ln  [源文件]    [目標文件]    建立硬連接


eg:ln -s /etc/service  ./service.soft

建立文件/etc/service的軟連接service.soft

eg:/etc/service  /service.hard 

建立文件/etc/service的硬連接/service.hard    

軟鏈接相似於windows下的快捷方式

軟鏈接文件格式:

lrwxrwxrwx. 1 root root     13 Jul 20 07:50 service -> /etc/services

1      硬連接數量,若是該文件沒有硬連接,就只有自己一個硬連接。

13連接文件的長度

格式解析(特徵):

   1, 軟鏈接的文件類型是 l(軟鏈接),軟鏈接文件的權限 都是  lrwxrwxrwx 

   2,->  箭頭指向到源文件

真正的權限取決於對源文件的權限

時間值爲建立軟鏈接的時間

軟鏈接能夠跨文件系統生成

硬連接特徵

1,至關於 cp -p +同步更新  

2,經過i節點識別,與源文件有相同的inode節點

3,硬連接不能跨分區,ln /home/test/issuels /boot/test (錯誤)  

4,不能針對目錄使用  ln /tmp/ aa.hard   (沒法將目錄/tmp 生成硬連接)

刪除軟鏈接

rm -rf symbolic_name 

 

幫助命令

man

英文:manual    命令路徑:/usr/bin/man         執行權限:全部用戶

做用:獲取命令或配置文件的幫助信息

語法:man [命令/配置文件]

eg:man ls    man  services  

(查看配置文件時,不須要配置文件的絕對路徑,只須要文件名便可)

調用的是more命令來瀏覽幫助文檔,按空格翻下一頁,按回車翻下一行,按q退出。

使用/加上關鍵的參數可直接定位搜索,  n  查找下一個,shift+n  查找上一個

eg: /-l   直接查看-l的介紹 

 

擴展:man的級別 (幫助文檔的類型, 瞭解1 5便可)

man man-pages 查看每一種類型表明的含義   man文檔的類型(1~9)

1是命令,5是配置文件  man優先顯示命令,可指定幫助類型

eg:man 5 passwd (5表明配置文件級別)

 

help

help  查看shell內置命令的幫助信息

eg:help cd

內置命令,使用whereis,which,man都不能查看

type 命令 查看內部命令仍是外部命令

 

命令名 --help

命令名 --help 列舉該命令的經常使用選項

 eg: cp --help

文件搜索命令

find      

命令路徑:/bin/find         執行權限:全部用戶

做用:查找文件或目錄     

語法:find [搜索路徑] [匹配條件]

若是沒有指定搜索路徑,默認從當前目錄查找

find命令選項

-name 按名稱查找  精準查找

eg:find  /etc  -name  「init」 在目錄/etc中查找文件init

-iname 按名稱查找

find查找中的字符匹配:

*:匹配全部

?:匹配單個字符

eg:find  /etc  -name  「init???」    在目錄/etc中查找以init開頭的,且後面有三位的文件

模糊匹配的條件,建議使用單引號或雙引號括起來。若是*被轉義,可以使用 單雙引號括住查詢條件,或者使用\*。

eg: # find . –name *g

-size  按文件大小查找

以block爲單位,一個block是512B, 1K=2block    +大於  -小於  不寫是等於 

eg:find /etc -size -204800  在etc目錄下找出大於100MB的文件

 100MB=102400KB=204800block

-type  按文件類型查找 

 f 二進制文件  l 軟鏈接文件 d 目錄  c 字符文件 

eg: find /dev -type c

 

find查找的基本原則

佔用最少的系統資源,即查詢範圍最小,查詢條件最精準

eg:

若是明確知道查找的文件在哪個目錄,就直接對指定目錄查找,不查找根目錄/

 

 

grep命令

命令路徑:/bin/grep        執行權限:全部用戶

做用:在文件中搜尋字串匹配的行並輸出      

 語法:grep [-cinv] '搜尋字符串' filename

 選項與參數:

   -c :輸出匹配行的次數(是以行爲單位,不是以出現次數爲單位)

   -i :忽略大小寫,因此大小寫視爲相同

   -n :顯示匹配行及行號

   -v :反向選擇,顯示不包含匹配文本的全部行。

eg:grep ftp  /etc/services 

eg:#grep -v ^# /etc/inittab         去掉文件行首的#號

eg:# grep -n 「init」/etc/inittab  顯示在inittab文件中,init匹配行及行號

eg:# grep -c「init」/etc/inittab   顯示在inittab文件中,init匹配了多少次

which    

命令路徑:/usr/bin/which             執行權限:全部用戶

做用:顯示系統命令所在目錄(絕對路徑及別名) 

which命令的做用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,而且返回第一個搜索結果。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令

# which ls

alias ls='ls --color=auto'

       /bin/ls

# which zs

/usr/bin/which: no zs in (/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ch/bin)

whereis

命令路徑:/usr/bin/whereis          執行權限:全部用戶

做用:搜索命令所在目錄 配置文件所在目錄  及幫助文檔路徑     

eg: which passwd    和   whereis  passwd   

eg:查看/etc/passwd配置文件的幫助,就用  man 5 passwd

 

壓縮解壓縮命令

gzip 

英文:GNU zip   命令路徑:/bin/gzip         執行權限:全部用戶

做用:壓縮(解壓)文件,壓縮文件後綴爲.gz    

gzip只能壓縮文件,不能壓縮目錄;不保留原文件

語法:gzip 文件

-d將壓縮文件解壓(decompress)

 

解壓使用gzip –d或者 gunzip

bzip2  

命令路徑:/usr/bin/bzip2              執行權限:全部用戶

做用:壓縮(解壓)文件,壓縮文件後綴爲.bz2

語法:bzip2 [-k] [文件]  

-k:產生壓縮文件後保留原文件(壓縮比高)

-d 解壓縮的參數(decompress)

解壓使用bzip2 –d或者 bunzip2

zip   

命令路徑:/usr/bin/zip           執行權限:全部用戶

做用:壓縮(解壓)文件,壓縮文件後綴爲.zip

語法:zip 選項[-r]  [壓縮後文件名稱] [文件或目錄]   

 -r壓縮目錄

eg:zip services.zip /etc/services  壓縮文件;

zip -r test.zip  /test  壓縮目錄

若是不加-r選項,壓縮後的文件沒有數據。

解壓使用unzip 

tar 

命令路徑:/bin/tar            執行權限:全部用戶

做用:文件、目錄打(解)包

語法:tar [-zcf] 壓縮後文件名  文件或目錄

-c 創建一個壓縮文件的參數指令(create),後綴是.tar

-x 解開一個壓縮文件的參數指令(extract)

       -z 以gzip命令壓縮/解壓縮  

-j  以bzip2命令壓縮/解壓縮

-v 壓縮的過程當中顯示文件(verbose)

-f file 指定文件名,必選項

 

1, 單獨的打包 ,解包   tar –cf   tar –xf

2, 打包以後,進行壓縮  gzip   bzip2

3, 一步到位  tar –zcvf       tar -zxvf

tar -cf   -xf     單獨 壓縮  解壓縮

tar  -z 以gzip打包目錄並壓縮  文件格式.tar.gz(.tgz)

tar  -j 以bzip2打包目錄並壓縮  文件格式.tar.bz2

 eg:tar -zcvf dir1.tar.gz  dir1   使用gzip將目錄dir1壓縮成一個打包並壓縮文件dir1.tar.gz

     tar -zxvf  dir1.tar.gz -C(大寫的)  /root     解壓到指定的/root目錄

 eg: tar -cvf bak.tar  .    將當前目錄的文件打包爲bak.tar

 eg: tar -xvf bak.tar   解壓

 eg: tar -zcvf bak.tar.gz  bak.tar   或 gzip  bak.tar    使用gzip將打包文件bak.tar壓縮爲bak.tar.gz

 eg: tar -jcvf bak.tar.bz2  bak.tar  或 bzip2 bak.tar   使用bzip2將打包文件bak.tar壓縮爲bak.tar.bz2

 eg: tar -rvf bak.tar /etc/password     將/etc/password追加文件到bak.tar中(r)

 eg:tar -cjvf test.tar.bz2  test  生成test.tar.bz2的壓縮文件

 eg:tar -xjf test.tar.bz2        解壓

最經常使用:   tar + gzip

tar –zcvf 壓縮   

tar –zxvf  解壓

補充:

1,文件路徑, 壓縮包帶文件路徑

2,源文件是保留的,不會被刪除

系統關機命令

shutdown  [選項] 時間    

選項:  -c: 取消前一個關機命令  

-h:關機  

-r:重啓

eg:

shutdown -h  now  當即關機     shutdown  -h  20:30   定時關機

其餘關機命令   halt     poweroff     init 0

其餘重啓命令  

reboot  重啓系統    reboot -h now    當即重啓

init 6

注意:生產環境中,關機命令和重啓命令謹慎執行。

Linux學習技巧

善於查看man help等幫助文檔

利用好Tab鍵  自動補全

掌握好一些快捷鍵

ctrl + c(中止當前進程)

ctrl + z  掛起當前進程,放後臺

ctrl + r(查看命令歷史) history

ctrl + l(清屏,與clear命令做用相同)

方向箭頭  上 下 能夠查看執行過的命令

ctrl + a  行首 ctrl + e 行尾

ctrl + k  清除   ctrl+ w 清除單詞

6 VIM文本編輯器

vim/vi是Unix / Linux上最經常使用的文本編輯器並且功能很是強大。

只有命令,沒有菜單。

 

《大碗》編輯器版

周圍的同事不是用VI就是Emacs,你要是用UltraEdit都很差意思跟人家打招呼...什麼插件呀、語法高亮呀、拼寫檢查呀,能給它開的都給它開着,就是一個字:酷!你說這麼牛X的一東西,怎麼着學會也得小半年吧。半年!?入門都遠着呢!能學會移動光標就不錯了,你還別說耗不起,就這仍是左右移動!!!

:

VIM工做模式

 

 

命令模式:又稱通常模式

編輯模式:又稱底行模式,命令行模式

 

插入命令

命令

做用

a

在光標後附加文本

A(shift + a)

在本行行末附加文本   行尾

i

在光標前插入文本

I(shift+i)

在本行開始插入文本 行首

o

在光標下插入新行

O(shift+o)

在光標上插入新行

定位命令

命令

做用

:set nu

設置行號

:set nonu

取消行號

gg(沒有:)

G

到第一行

到最後一行

nG

到第n行

:n

到第n行

保存和退出命令

命令

做用

:w

保存修改

:w new_filename

另存爲指定文件

:w >> a.txt

內容追加到a.txt文件中 文件需存在

:wq

保存修改並退出

shift+zz(ZZ)  

快捷鍵,保存修改並退出

:q!

不保存修改退出

:wq!

保存修改並退出(文件全部者可忽略文件的只讀屬性)

 

 

不保存並退出:

1, 有修改,可是修改後的內容是不保存的

2, 有突發狀況,致使窗口退出。修改文件以後,直接刪除同名的.swp文件

刪除命令

命令

做用

x    

刪除光標所在處字符   nx 刪除光標所在處後n個字符

dd

刪除光標所在行,ndd刪除n行

:n1,n2d

刪除指定範圍的行(eg :1,3d   刪除了123這三行)

dG

刪除光標所在行到末尾的內容

D

刪除從光標所在處到行尾

複製和剪切命令

命令

做用

yy、Y    

複製當前行

nyy、nY

複製當前行如下n行

dd   

剪切當前行

ndd 

剪切當前行如下n行

p、P

粘貼在當前光標所在行下  或行上

替換和取消命令

命令

做用

r

取代光標所在處字符

R(shift + r)

從光標所在處開始替換字符,按Esc結束

u

undo,取消上一步操做

ctrl+r

redo,返回到undo以前

搜索和替換命令

命令

做用

/string

向後搜索指定字符串   搜索時忽略大小寫 :set ic

?string

向前搜索指定字符串

n

搜索字符串的下一個出現位置,與搜索順序相同

N(Shift + n)

搜索字符串的上一個出現位置,與搜索順序相反

:%s/old/new/g

全文替換指定字符串

:n1,n2s/old/new/g

在必定範圍內替換指定字符串 

% 指全文,s 指開始,g 指全局替換

    起始行,終止行s/要替換的字符串/替換的新的字符串/g    c 詢問確認

    eg: :%s/ftp/yang/g    全局替換,把ftp替換爲yang

    eg: :41,44/yang/lee/c   從41行到44行,把yang替換爲lee,詢問是否替換

    eg: :41,44/yang/lee/g   同上,不詢問,直接替換

    eg: :%s/\/root/\/ROOT/g  把/root替換爲/ROOT

    eg: :%s#/bin/bash#/bin/ksh/g        把/bin/bash所有替換爲/bin/ksh

使用替換命令來添加刪除註釋

:% s/^/#/g 來在所有內容的行首添加 # 號註釋

:1,10 s/^/#/g 在1~10 行首添加 # 號註釋

vi裏面怎麼查命令??

:!which cp

vi裏面怎麼導入命令的結果?

:r !which cp

 

可視化模式

v  可視字符模式

V(shift+v) 可視行模式,選擇多行操做

ctrl+v 可視塊模式(列模式),操做列(注意:不要用鼠標選擇,要用方向鍵去選擇)

I或者O進入插入模式。

相關文章
相關標籤/搜索