01 Linux簡介
1.Linux簡介
UNIX與Linux發展史
Unix在1969年,美國貝爾實驗室的肯湯普森在DEC PDP-7機器上開發出了UNIX系統。
Linux出現於1991年,是由芬蘭赫爾辛基大學學生李納斯·托瓦茲(Linus Torvalds)和後來加入的眾多愛好者共同開發完成 。
Linux介紹
Linux是一種自由和開放源碼的操作系統,存在著許多不同的Linux發行版本,但它們都使用了Linux內核。
Linux內核網站:www.kernel.org
基於內核,再增加一些桌面,應用程序,就可以發行,稱為開發版。
Linux兩大陣營:
Redhat系列 redhat,suse,CentOS,Fedora等
Debian系列 debian,ubuntu等
區別: 命令細微的區別; 安裝方式
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主要特點:
1、不需要分區或重新開機就能在同一臺PC上使用兩種以上的操作系統
2、本機系統可以與虛擬機系統網絡通信
3、可以設定並且隨時修改虛擬機操作系統的硬件環境
學習方法
轉變思維習慣
圖形化界面/鼠標 ===〉 命令/鍵盤
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進入插入模式。
01 Linux簡介