linux的兩種硬盤類型,一種IDE,一種SCSI
一塊硬盤最多有四個主分區(擴展分區算一個分區),即主分區和擴展分區總數不超過4,
擴展分區上有邏輯分區,總數不超過12
linux的分區命名,xxyN
xx:硬盤類型,hd爲IDE,sd爲SCSI
yy:表示第幾塊硬盤(a,b,c...)
N:表示第幾個分區,邏輯分區從5開始,主分區和擴展分區1-4
例如sdb5:第二塊(b)SCSI硬盤(sd)的第一個邏輯分區
關於磁盤的掛載, 下面轉載自 https://blog.csdn.net/qq_39521554/article/details/79501714
1.提一句Windows下,mount掛載,就是給磁盤分區提供一個盤符(C,D,E,...)。比如插入U盤後系統自動分配給了它I:盤符其實就是掛載,退優盤的時候進行安全彈出,其實就是卸載unmount。
2.Linux下,不像Windows可以有C,D,E,多個目錄,Linux只有一個根目錄/。在裝系統時,我們分配給linux的所有區都在/下的某個位置,比如/home等等。
3.提問者插入了新硬盤,分了新磁盤區sdb1。它現在還不屬於/。
4.我們雖然可以在一些圖形桌面系統裏找到他的位置,瀏覽管理裏面的文件,但在命令行卻不知怎麼訪問它的目錄,比如無法使用cd或者ls。也無法在編程時指定一個目錄對它操作。
5.這時提問者使用了 mount /dev/sdb1 ~/Share/ ,把新硬盤的區sdb1掛載到工作目錄的~/Share/文件夾下,之後訪問這個~/Share/文件夾就相當於訪問這個硬盤2的sdb1分區了。對/Share/的任何操作,都相當於對sdb1裏文件的操作。
6.所以Linux下,mount掛載的作用,就是將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。訪問這個目錄就是訪問該存儲設備。
7.linux操作系統將所有的設備都看作文件,它將整個計算機的資源都整合成一個大的文件目錄。我們要訪問存儲設備中的文件,必須將文件所在的分區掛載到一個已存在的目錄上,然後通過訪問這個目錄來訪問存儲設備。掛載就是把設備放在一個目錄下,讓系統知道怎麼管理這個設備裏的文件,瞭解這個存儲設備的可讀寫特性之類的過程。
8.我們不是有/dev/sdb1 嗎,直接對它操作不就行了?這不是它的目錄嗎?
9.這不是它的目錄。雖然/dev是個目錄,但/dev/sdb1不是目錄。可以發現ls/dev/sdb1無法執行。/dev/sdb1,是一個類似指針的東西,指向這個分區的原始數據塊。mount前,系統並不知道這個數據塊哪部分數據代表文件,如何對它們操作。
10.插入CD,系統其實自動執行了 mount /dev/cdrom /media/cdrom。所以可以直接在/media/cdrom中對CD中的內容進行管理。
Linux的七級運行級別(運行狀態)
【0】關機
【1】單用戶模式,少數進程,用於維護系統
【2】多用戶,除未開啓NFS服務外,其他與【3】相同
NFS:network file system(網絡文件系統),讓不同操作系統之間可以共享文件
【3】完整的多用戶模式,正常的文字界面
【4】未定義
【5】完整的圖形界面
【6】重新引導計算機
1. 默認運行級別,配置文件/etc/inittab
最後一行爲id:5:initdefault,其中“5”表示默認運行級別爲5,即完整的圖形界面級別,可修改此數字更改默認運行級別
chkconfig,可以設置自啓動
chkconfig --list 列出所有的系統服務
chkconfig --add httpd 增加httpd服務
chkconfig --del httpd 刪除httpd服務
chkconfig --level httpd 2345 on 把httpd在運行級別爲2、3、4、5的情況下都是on(開啓)的狀態。
chkconfig命令提供了一種簡單的方式來設置一個服務的運行級別。例如,爲了設置MySQL服務器在運行級別3和4上運行,你必須首先將MySQL添加爲受chkconfig管理的服務:
chkconfig --add mysql
現在,我們在級別3和5上設定服務爲“on”
chkconfig --level 35 mysql on
在其他級別上設爲off
chkconfig --level 01246 mysql off
shutdown
① shutdown –k 45
提示當前時間,並指出45分鐘後關機(-k參數不能由-c參數撤銷,因爲此參數並只是發出警告信息,並不是真正關機)
② shutdown –h 45
shutdown –h now
③ shutdown –c
取消關機,此命令無法在當前終端中發出,應再打開一個終端,重新登錄root,發出此命令
④ shutdown –r now “警告信息”
發出警告信息,關機並重啓
locate
locate(locate) 命令用來查找文件或目錄。 locate命令要比find -name快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫/var/lib/mlocate/mlocate.db 。這個數據庫中含有本地所有文件信息。
後面跟的名字可以是名字的一部分,如果沒有找到,使用updatedb命令升級數據庫
查看命令幫助
man ls
ls --help
ls
ls –R #遞歸顯示目錄的所有內容(包括子目錄中的內容)
ls –a /root #顯示/root目錄下所有文件
ls -i file1 #顯示file1的inode號
touch創建文件
touch –t 10010900 file #把file文件的時間改爲10月1日9點
touch –t 10012600 file #錯誤!時間格式不對,沒有“26”時
touch –r file1 file #把file的時間改爲file1的時間(以file1爲參考)
ln 創建文件的軟鏈接或硬鏈接
- 1. ln:創建文件鏈接
ln file linkFile
ln –s file linkFile
★ 硬鏈接 .vs. 軟鏈接:
在Linux系統中,鏈接分爲兩種,一種是硬鏈接(Hard link),另一種稱爲符號鏈接或軟鏈接(Symbolic Link)。
①默認不帶參數的情況下,ln創建的是硬鏈接,帶-s參數的ln命令創建的是軟鏈接。
②硬鏈接文件與源文件的inode節點號相同,而軟鏈接文件的inode節點號,與源文件不同,
③ln命令不能對目錄創建硬鏈接,但可以創建軟鏈接。對目錄的軟鏈接會經常使用到。
④刪除軟鏈接文件,對源文件和硬鏈接文件無任何影響。
⑤刪除文件的硬鏈接文件,對源文件及軟鏈接文件無任何影響。
⑥刪除鏈接文件的源文件,對硬鏈接文件無影響,會導致其軟鏈接失效(紅底白字閃爍狀)。
⑦同時刪除源文件及其硬鏈接文件,整個文件纔會被真正的刪除
關於inode的講解,推薦阮一峯的(寫的太好了) http://www.ruanyifeng.com/blog/2011/12/inode.html
mkdir:創建目錄
-p:後跟路徑名,若路徑中某些目錄不存在,則系統將自動創建這些目錄,即一次可以創建多個目錄
-m:對新建目錄設置存取權限,不加此選項時,默認權限爲755
mkdir –p a/b/c/d
mkdir –m 777 b #創建目錄b,權限爲777
cp複製命令
-r:若源文件是目錄,則遞歸複製該目錄下所有子目錄和文件
cp –r a/b w #把a下的b目錄複製到w目錄
cp /etc/*.conf a #把/etc目錄下所有後綴爲conf的文件複製到a目錄
more 分頁顯示文本文件
-num:一次顯示的行數
-s:多個空白行替換爲一個空白行
+num:從第num行開始顯示
管道命令
Command1|Command2
管道:將Command1命令的輸出作爲Command2命令的輸入
① ls /etc|grep ab #grep表示篩選,篩選出符合後面條件的內容
② ls /etc和ls /etc|more的輸出做對比
命令替換
Command1 `Command2`
or
Command1 $(Command2)
Command2的輸出作爲Command1的參數。
① 方法一:gedit $(locate inittab)
② 方法二:gedit `locate inittab`
查看文件
head -10 file1 | tail -6 #“head -10 file1”表示file1文件的前10行,“tail -6”表示在上一步的基礎上讀最後6行,最後結果是讀取源文件的5~10行
more 分頁顯示文本文件
-num:一次顯示的行數
-s:多個空白行替換爲一個空白行
+num:從第num行開始顯示
① more -s file2
② more -20 +10 file2 #從第10行開始,每次顯示20行
cat 顯示文本
-n:由1開始對所有行編號
-b:空白行不編號
-s:兩個以上的空白行替換爲1行顯示
chown #更改文件擁有者
① chown rjxy file #把文件file的所有者改爲rjxy
② chown –R rjxy dir #把目錄dir及該目錄下的所有文件和子目錄的所有者都改爲rjxy
chgrp 用法同chown#更改組羣
更改文件權限
1) 符號模式
chmod {a、u、g、o}{+-=}{rwx} 文件名1 文件名2 ……
a、u、g、o表示要賦予權限的用戶的類,a代表所有的用戶,u代表文件的所有者自身,g代表和所有者同組羣的用戶,o代表組外的其他用戶
+-=用來增加、刪除或設置權限,+表示增加權限,-表示刪除權限,=表示設置權限
-R:對目錄及該目錄下的所有文件和子目錄都進行相同的操作;
① chmod 744 file #把文件file的讀寫權限改爲744,即rwxr--r—
② chmod -R 744 dir #把目錄dir及該目錄下的所有文件和子目錄的讀寫權限改爲744
umask 設置文件默認權限
umask二進制1:代表要去掉這個權限,不管你原來有沒有權限,你最終一定沒有這個權限。
umask二進制的0:代表我不關心對應位的權限,你原來有權限就有權限,沒有就沒有, 我不影響你
umask #查看
umask xxx #更改umask
setuid和setgid:讓普通用戶在執行該文件時擁有“文件所有者”的權限
查看/usr/bin/passwd和/etc/passwd的權限
/usr/bin/passwd的讀寫權限中的“s”,即setuid,表示普通用戶執行此命令時暫時擁有“此文件所有者”的權限(對/usr/bin/passwd來說即root權限)。當此命令執行完,權限也隨之失去。
Linux中的命令默認所有者都是root。
類似的,setgid則表示讓執行文件的用戶以該文件所屬組的權限去執行。
setuid和setgid權限只對可執行文件有意義。
chmod 4644 file #修改文件file的讀寫權限爲644,並設置setuid
chmod 2644 file #修改文件file的讀寫權限爲644,並設置setgid
chmod g+s file #設置setgid
chmod o+t directory #設置stick bit
which:搜索系統可執行文件(命令)的詳細路徑
whereis:搜索可執行文件(命令)、源代碼文件、幫助文件及其他文件。
-b:定位可執行文件
-m:定位幫助文件
-s:定位源代碼文件
-u:搜索默認路徑下除可執行文件、源代碼文件和幫助文件外的其他文件
find:在系統特定目錄下,查找名字具有某種特徵或其具有某種屬性的文件。
語法:find 【path】 -option 【-print】 【-exec –ok command】 {} \;
path:搜索範圍,即指出要查找的目錄,缺省爲當前目錄。例如,用“/”表示根目錄;
-exec command {} \;:將查到的文件執行command命令,“{}”和“\;”之間有空格,“\;”的“;”爲半角分號;
【常用選項】
-name:按文件名查找
-perm:按執行權限來查找
-user:按文件所有者查找
-newer file1 !file2:查找更改時間比file1新,但比file2舊的文件
-type b/d/c/p/l/f:查找塊設備、目錄、字符設備、管道、符號鏈接和普通文件
-size n[ckMG]:查長度爲n塊的文件(c表示字節B,k表示kB,M表示MB,G表示GB)
-mtime -n +n n:按文件更改時間查找文件,-n表示n天以內,+n表示n天以前,n表示確切n天
-atime -n +n n:按文件訪問時間查找文件,-n表示n天以內,+n表示n天以前,n表示確切n天
-ctime -n +n n:按文件創建時間查找文件,-n表示n天以內,+n表示n天以前,n表示確切n天
① find -name abc #在當前目錄下查找名字爲abc的文件
② find -name abc’*’ #在當前目錄下查找名字以abc開頭的文件,注意通配符“*”用半角單引號括起來
③ find -name ‘*’abc’*’ #在當前目錄下查找名字中包含abc的文件
④ find /etc -perm 644 #在/etc目錄中查找權限爲644的文件
⑤ find -type f -exec ls -l {} \; #在當前目錄下查找所有的普通文件,並在-exec選項中使用ls -l命令將它們列出
1. 分區知識
1) 不同的操作系統原則上採用不同的文件系統;
若操作系統支持相同的文件格式,爲了避免同一個分區下有相同的系統目錄——不同的操作系統要安裝在不同的磁盤分區
2) 一個硬盤最多只能有4個主分區(1個擴展分區相當於1個主分區);
擴展分區最多1個,邏輯分區可以有多個,但邏輯分區最多不超過12個,擴展分區相當於邏輯分區的容器;
3) 分區操作不能產生任何文件系統,只是保留了磁盤空間,要使用必須格式化來創建文件系統
windows→format;
Linux→mkfs;
du命令
顯示文件和目錄的磁盤使用空間。
語法:du [選項] [文件]
-a或-all:每個指定文件顯示磁盤使用情況,或者爲目錄中每個文件和子目錄顯示各自磁盤使用情況
-b或-byte:顯示目錄或文件大小時,以byte 爲單位
-c或--total:除了顯示個別目錄或文件的大小外,同時也顯示所有目錄或文件的總用量
-s:只顯示總用量
-k或--kilobytes:以KB(1024bytes)爲單位輸出
-m或--megabytes:以MB 爲單位輸出
df命令 用於顯示指定磁盤的文件可用空間。如果沒有指定文件名,則所有當前被掛載的文件系統的可用空間將被顯示。
語法:df [選項] [文件]
u -a:全部文件系統列表
u -h:以常用容量單位顯示
u -i:顯示inode信息
u -k:區塊爲1K字節
u -l:只顯示本地文件系統
u -m:區塊爲1M字節
u -T:顯示文件系統類型
掛載和卸載文件系統
① 把/dev/sda5掛載到/mnt/kk目錄
mkdir /mnt/kk
mount /dev/sda5 /mnt/kk
df #查看所有的掛載信息
ls /mnt/kk #查看掛載的目錄
② 以只讀方式掛載/dev/sda5到/mnt/kk
mount -o ro /dev/sda5 /mnt/kk #提示/dev/sda5已經掛載,需要先卸載
umount /dev/sda5 #卸載
mount -o ro /dev/sda5 /mnt/kk
mkdir /mnt/kk/a #報錯,因爲/dev/sda5是隻讀的
③ 查看分區掛載情況
mount –s #查看所有已經掛載的分區情況
cat /etc/mtab