Linux達人養成計劃1
慕課網課程的筆記
1.基礎知識:
Linux分為核心版本和釋出版本
Linux核心官網:www.kernel.org
Linux主要發行版本:debian ununtu redhat(用的最多) centos 等
開源軟體:絕大多數開源軟體免費、可以獲得軟體原始碼、可以自由傳播改良甚至銷售。但是開源是指原始碼開放,開源不等於免費。
www.netcraft.com :檢視網站的一些技術資訊。
AIX是IBM開發的Unix、CentOS是RedHat系列的Linux、Debian是由社群開發和維護的Linux、Ubuntu是一個以桌面應用為主的Linux。
windows裡面才叫dos介面,Linux裡面叫命令列操作/介面。
Linux中所有內容以檔案形式儲存,包括硬體。
Linux不靠副檔名區分檔案型別(是通過許可權區分),但有一些約定俗成的(副檔名不是說一定要有,只是方便使用者操作):
- 壓縮包:.gz、.bz2、.tar.bz2、.tgz等
- 二進位制軟體包:.rpm
- 網頁檔案:.html、.php
- 指令碼檔案:.sh
- 配置檔案:.conf
虛擬機器快照:儲存虛擬機器某一時間狀態。
FAT16:最大隻能支援2GB的分割槽
FAT32:單個檔案不能超過4GB,分割槽小於4TB
NTFS:Windows最新的檔案系統
Linux支援:EXT2、EXT3、EXT4。
Linux主分割槽:最多隻能有4個。
Linux擴充套件分割槽:
- 最多隻能有1個擴充套件分割槽。
- 主分割槽加擴充套件分割槽最多有4個,就是隻能拿一個主分割槽當擴充套件分割槽。
- 不能寫入資料,只能包含邏輯分割槽,就是將擴充套件分割槽劃分為邏輯分割槽。
格式化:格式化又稱邏輯格式化,它是指使用者選定的檔案系統(如FAT16、FAT32、NTFS、EXT2、EXT3、EXT4等),在磁碟的特定區域寫入特定資料,在分割槽中劃出一片用於存放檔案分配表、目錄表等用於檔案管理的磁碟空間。
格式化的最終目是寫入檔案系統,並不是清空資料,格式化時主要做兩個事:
- 1、將硬碟分割成等大小的資料塊(預設4kb,可以調節);
- 2、建立二維表格(分割槽相當於櫃子,櫃子上面又二維表格),表格內容包括ID號、修改時間、許可權、檔案儲存位置等,目的是為了快速查詢檔案所在資料塊,ID號這裡面稱為I node。每個分割槽裡都有儲存ID,修改時間,訪問許可權的區塊。
Linux裡面把目錄(/etcpasswd/)當作碟符。
必須有的分割槽:
- /(根分割槽)
- swap分割槽(交換分割槽[可以理解為虛擬記憶體],記憶體2倍,不超過2GB)
推薦分割槽:
- /boot(啟動分割槽,200MB)
分割槽裝置檔名解析:
/dev/hda1 這個 hda1 的 a 代表第一個硬碟(若是b即代表第二個硬碟),1代表第一個分割槽,hd代表IDE硬碟介面
/dev/sda1 這個 sda1 的 a 代表第一個硬碟,1代表第一個分割槽,sd代表SCSI硬碟介面或者SATA硬碟介面
硬體裝置檔名:
Linux:分割槽-格式化-給分割槽起裝置檔名-分配碟符(Linux稱為掛載點)
碟符—是軟體級的概念,分割槽—是硬體級概念,當Windows啟動的時候,它會檢測電腦已連線的所有硬碟上它能夠識別的分割槽(NTFS、FAT32等),並自動為其分配碟符。這個分配碟符的過程,就是掛載(mount)過程,只不過這個過程完全不用你參與。具體來說就是,Windows把第一分割槽關聯到c:這個碟符,第二分割槽關聯到d:這個碟符等等。這樣,軟體中的磁碟管理概念和實際的硬碟分割槽緊密關聯,二者才具有真正的實用意義。
分割槽就是把磁碟分成幾個邏輯部分,碟符就相當於給分好的這幾部分各起一個名字,碟符是windows中的概念,就比如C盤、D盤之類的;碟符在linux中叫掛載點,在linux中是拿目錄作為碟符的。
碟符是Windows裡的概念,在Linux裡類似的東西叫掛載點。分割槽是指把磁碟分為不同的資料儲存區域,在Windows裡,要經過三步,分割槽,格式化,碟符;而在Linux裡,要多一步,分四步,分割槽,格式化,取名,掛載點,所以,分割槽與掛載點(碟符),是在不同步驟下做的不同的事。
關於掛載可以參考,很詳細:
https://www.cnblogs.com/ma5on/p/4357625.html
http://forum.ubuntu.org.cn/viewtopic.php?t=257333
掛載:根檔案系統之外的其他檔案要想能夠被訪問,都必須通過“關聯”至根檔案系統上的某個目錄來實現,此關聯操作即為“掛載”,此目錄即為“掛載點”,解除此關聯關係的過程稱之為“解除安裝”。
更多資訊可以參考:https://www.linuxidc.com/Linux/2016-08/134666.htm
密碼原則:
- 複雜性
八位字元以上、大小寫字母、數字、符號
不能是英文單詞
不能是和使用者相關的內容 - 易記憶性
- 時效性(一般90天更換一次)
安裝日誌:
- /root/install.log 儲存了安裝在系統中的軟體包及其版本資訊。
- /root/install.log.syslog 儲存了安裝過程中留下的事件記錄。
- /root/anaconda-ks.cfg 以Kickstart配置檔案的格式記錄安裝過程中設定的選項資訊。
2.命令基本格式:
root@localhost: ~#
yangyang@ubuntu:~$
yangyang@ubuntu:~/test$
引數:
- root:當前登入使用者
- localhost:主機名
- ~:當前所在目錄(家目錄)[輸入pwd可以看見這個目錄],比如管理員的家目錄:/root,user1的家目錄是/home/user1
- # 超級使用者的提示符 普通使用者的提示符是$
命令格式:
命令 [選項] [引數]
注意:個別命令使用不遵循此格式;當有多個選項時,可以寫在一起;簡化選項與完整選項,-a等於–all。
查詢目錄中內容:
ls [選項] [檔案或目錄]
ls(ll命令就是ls -l的簡寫)
選項:
- -a 顯示所有檔案,包括隱藏檔案
- -l 顯示詳細資訊
- -d 檢視目錄屬性
- -h 人性化顯示檔案大小
- -i 顯示inode
- -lh 檔案大小以易懂的方式顯示
- -ld 檢視目錄本身的資訊,例如許可權等 [ls -ld /home/yangyang/test]
程式碼示例:
~$ ls -l
total 36
d rwxr-xr-x 3 yangyang yangyang 4096 Apr 10 05:36 Desktop
...
//上面3是引用計數,第一個yangyang是檔案所有者,第二個yangyang是所屬組,4096是檔案大小。
3.檔案處理命令:
目錄處理命令:
mkdir -p [目錄名]
-p 遞迴建立
mkdir bols
mkdir -p japan/cang/bols [建立多層次目錄時,要加-p引數,這樣才可以遞迴建立]
切換所在目錄:
cd [change directory]
簡化操作:
cd ~ 進入當前使用者的家目錄(直接跳到家目錄,~本身就是代表家目錄)
cd
cd - 進入操作的上一次目錄
cd .. 進入上一級目錄
cd . 進入當前目錄(也可以使用pwd,檢視現在的目錄)
相對路徑:參照當前所在目錄,進行查詢。如:[root@imooc ~]# cd ../usr/local/src/(../就是表示上一級目錄,然後再新增後面目錄,./就是指當前目錄)
絕對路徑:從根目錄開始指定,一級一級遞迴查詢。在任何目錄下,都能進入指定網址。
查詢所在目錄:
pwd
刪除空目錄:rmdir
rmdir [只能刪除空目錄,不能包含檔案]
刪除檔案或目錄:rm
rm -rf [檔案或目錄]
例如:rm -rf test 全部刪除test下面所有的檔案,包括test本身
選項:[rm本來是刪檔案的,加-r可以刪除目錄,加-f可以強制刪除全部,不用一條條回覆]
-r 刪除目錄
-f 強制
複製目錄/檔案:cp
cp [選項] [原檔案或目錄] [目標目錄]
-r 複製目錄 [不加-r只能複製檔案到目錄,加上可以複製目錄到目錄]
-p 連帶檔案屬性複製
-d 若原始檔是連結檔案,則複製連結屬性
-a 相對於-pdr(就是上面的總和,這樣原始檔和目標檔案就一模一樣了,屬性,時間期限等)
注:
cp test1 demo/test2 複製檔案時可以改名,這個就是複製到demo資料夾下面,且名字改為test2
cp test Picture/test1 複製資料夾,這個就是test複製到資料夾Picture下面資料夾test1裡面。
剪下或改名命令:mv
mv [原檔案或目錄] [目標檔案]
注:
不論是剪下檔案還是資料夾,都不用-r這個選項
如果原始檔和目標檔案一樣時,可以理解為改名命令。
4.常見目錄作用:
根目錄下的bin和sbin,usr目錄下的bin和sbin,這四個目錄都是用來儲存系統命令的。(bin是一般使用者就可以執行的命令,sbin是root使用者才可以執行的命令)。
proc和sys目錄不能直接操作,這兩個目錄儲存的是記憶體的過載點。
可以在家目錄root或home,以及tmp目錄下隨便放內容。
5.連結命令:
連結命令;ln(原檔案生成一個目標檔案)
ln -s [原檔案] [目標檔案]
選項:-s 建立軟連結
硬連結特徵:
- 擁有相同的i節點和儲存blcok塊,可以看做是同一個檔案
- 可通過i節點識別
- 不能跨分割槽(建立硬連結)
- 不能針對目錄使用
注:相當於不同名字,但是對應的資訊列表一樣,對應i節點一樣,指向的block塊也一樣。因此刪除一個硬連結,不影響另一個指向對應的block塊。所以硬連結相當於一個檔案的不同接入點。
軟連結特徵:
- 類似windows快捷方式
- 軟連結擁有自己的I節點和Block塊,但是資料中只有儲存原檔案的檔名和I節點號,並沒有實際的檔案資料
- lrwxrwxrwx |軟連結 軟連結檔案許可權都為rwxrwxrwx
- 修改任意檔案,另一個都改變(注意:建立時原檔案要寫全路徑,不然修改原檔案,軟連結不可用)
- 刪除原檔案,軟連結不能使用
對於上面4、5兩條的理解可以利用下面程式碼:
ln -s /home/yangyang/test/test3 test4
ln -s test3 test5
軟連結是索引塊中目標檔名,而不是目標檔案inode,如果是inode,刪除目標檔案,因為有硬連結的存在,使得inode依然存在,則軟連線依然有效,所以記錄的不是檔案inode;而且如果我們刪除目標檔案,在新建一個相同檔名的檔案(內容不同),則軟連線就再次有效了,所以軟連線記錄的是目標檔名,而不是inode;此時,硬連結和軟連線的資料是不同的。
通俗理解:
- 一個是你原檔案沒有了,這個連結就失效了(軟連結),類似於windows快捷方式。
- 一個是你原檔案沒有了。這個檔案還在(硬連結)。
6.檔案搜尋命令:
- 檔案搜尋命令locate
- 命令搜尋命令whereis與which
- 檔案搜尋命令find
- 字元搜尋命令grep
- find命令與grep命令的區別
檔案搜尋命令locate命令格式:
locate 檔名
//在後臺資料庫中按檔名搜尋,搜尋速度更快
/var/lib/mlocate
//locate命令所搜尋的後臺資料庫的路徑,即會在上面的路徑下進行搜尋
updatedb(sudo updatedb)
//因為是在路徑中搜尋,不能保證實時搜到新建立的檔案,所以搜尋之前可以更新資料庫
locate比較快,但是功能單一;find比較強大,但是速度相對較慢。
搜尋命令的命令whereis、which:
whereis 命令 名
結果顯示,搜尋命令所在路徑及幫助文件的所在位置
選項:
-b 值查詢可執行檔案
-m 值檢視幫助檔案
which:
相對whereis,還可以看見別名,配置檔案等,如果命令有這些資訊的話。
PATH環境變數:定義的是系統搜尋命令的路徑
find命令:
find [搜尋範圍] [搜尋條件]
find /home/yangyang -name test1
find搜尋的檔名必須與搜尋條件中的檔名一模一樣。如果需要模糊匹配,可以使用萬用字元。
避免大範圍搜尋,會非常耗費系統資源。
find是在系統當中搜尋符合條件的檔名。如果需要匹配,使用萬用字元匹配,萬用字元是完全匹配。
萬用字元:
- *匹配任意多個內容
- ?匹配任意一個字元
- []匹配任意一箇中括號內的字元
find /hoem/yangyang -name "ab[cd]"
那麼可以找到abc abd這樣的檔案
find /root -iname install.log
不區分大小寫
find /root -user root
按照所有者搜尋(所有者是root)
find /root -nouser
查詢沒有所有者的檔案
核心產生、外來檔案(win拷進Linux)可以沒有所有者。
find /var/log/ -mtime +10
查詢10天前修改的檔案
-10 10天內修改的檔案
10 10天當天修改的檔案
+10 10天前修改的檔案
atime 檔案訪問時間
ctime 改變檔案屬性
mtime 修改檔案內容
find . -size 25k(.表示當前目錄,也可以使用路徑)
查詢檔案大小是25kb的檔案
-25k 小於25kb的檔案
25k 等於25kb的檔案
+25k 大於25kb的檔案
find . -inum 262422(.表示當前目錄,也可以使用路徑)
查詢i節點是262422的檔案
find /etc -size +20k -a-size -50k
查詢/etc/目錄下,大於20KB並且小於50KB的檔案
-a and 邏輯與,兩個條件都滿足
-o or 邏輯或,兩個條件滿足一個即可
find /etc -size +20k -a -size -50k -exec ls -lh {}\;
查詢/etc/目錄下,大於20KB並且小於50KB的檔案,並顯示詳細資訊
-exec/-ok 命令 {}\;對搜尋結果再次執行命令,進行篩選。
搜尋字串命令grep:
grep [選項] 字串 檔名
在檔案當中匹配符合條件的字串
選項:
-i 忽略大小寫
-v 排除指定字串
grep "size" anaconda-ks.cfg
搜尋anaconda-ks.cfg檔案中,還有size的行。
find命令與grep命令的區別:
- find命令:在系統當中搜尋符合條件的檔名,如果需要匹配,使用萬用字元匹配,匹配符是完全匹配。
- grep命令:在檔案當中搜尋符合條件的字串,如果需要匹配,使用正規表示式進行匹配,正規表示式時包含匹配。
7.Linux幫助命令:
man 命令
獲取指定命令的幫助
man ls
檢視ls的幫助
man命令級別:
1 檢視命令的幫助
2 檢視可被核心呼叫的函式的幫助
3 檢視函式和函式庫的幫助
4 檢視特殊檔案的幫助(主要是/dev目錄下的幫助)
5 檢視配置檔案的幫助
6 檢視遊戲的幫助
7 檢視其它雜項的幫助
8 檢視系統管理員可用命令的幫助
9 檢視和核心相關檔案的幫助
檢視命令擁有哪個級別的幫助:
man -f 命令
相當於:
whatis 命令 [whereis 命令 更多的資訊]
man -f passwd(含有兩個級別)
passwd (1)
passwd (5)[然後檢視1、5兩個命令]
man 1 passwd
man 5 passwd
相關文章
- 開發達人是如何養成的?
- 資深架構師的養成計劃架構
- python大佬養成計劃–協程實現TCP連線PythonTCP
- IT人的職業素養與規劃
- 『騰訊雲開發達人計劃』開始啦~
- 單點養成與多點養成:GBF的多屬性隊伍養成設計分析
- 中興通訊5G攜手印尼泗水理工大學達成合作,開啟人才培養新計劃
- 我的linux運維養成記Linux運維
- Webpack 達人的成長之路Web
- 原生IP的應用策略:養號達人必備
- 少女集結!《海岸線:戰艦養成計劃》9月17日App Store正式起航!APP
- 課程目錄ofNOIP大神培養計劃
- 從0到1構建策略卡牌養成框架框架
- 漫談程式設計師系列:怎樣成為技術達人程式設計師
- GitHub 1W star 成就達成!Github
- 蘇維埃黑客養成記:上個世紀,一場社會主義的程式設計普及計劃黑客程式設計
- 執行計劃-1:獲取執行計劃
- 領域驅動設計(DDD)高手養成記
- Rust能力養成之(1):與眾不同的初始化Rust
- 10 -1學習計劃
- 11月1日計劃
- ui設計師要養成哪些職場習慣呢?UI
- linux程序和計劃Linux
- 合成類遊戲的廣告是怎麼回事 合成 養豬 養牛 養成遊戲
- BTC納入養老計劃之中?然而遭受諸多質疑!加密養老難仍以實現!加密
- 淺談卡牌遊戲中的多卡養成設計策略遊戲
- 成長之路--論程式設計師的職業素養程式設計師
- SQL 執行計劃案例1SQL
- 你成為職場達人只差一個日程管理APPAPP
- 百人1:linux命令Linux
- Linux 任務計劃管理Linux
- Linux 計劃任務整理Linux
- 綠盟科技加入中國信通院“智慧+學院”人才培養計劃
- 智慧家居對養老的重要性 智慧家庭的普及計劃
- 高效程式設計師應該養成的七個習慣程式設計師
- 人生思考---公司不養閒人
- 掌握8個Macos隱藏技巧,助你成為Mac達人Mac
- DB2執行計劃(1)DB2