linux常用操作命令

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. 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

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章