天天看點

Linux入門學習筆記-上

GUI 圖形方面的shell ------〉windows 、mac os

CLI 指令行方面的shell -----〉比圖形強大

*提示符*

# root使用者 (最高權限)

$ 普通使用者

指令一般由 (選項、指令、參數) 組成。

uname 顯示系統的基本資訊

-r 核心版本号

-a 顯示所有資訊==(--all)

*指令後面加上 &将這個指令放到背景運作。*

使用Tab鍵來自動補全指令(注意:無法自動補全參數,)

按2下Tab顯示所有指令

通過history可檢視輸入過的全部指令。

!!重複前一個指令(用上也可以。還友善)

!字元 重複前一個以“字元”開頭的指令

!num 按照曆史記錄的序号執行指令

!?abc重複之前包含abc的指令

!-n重複n歌指令之前的那個指令

通過Ctrl+r來在曆史記錄中搜素指令(reverse-i-search)“:

重新調用前一個指令中的參數Esc.(按完Esc鍵之後按.)

*指令行通配符*

*比對零個或多個

?比對任意一個字元

[0-9]比對一個數字範圍

[abc]比對清單裡任何字元

[Λabc]比對清單以外的字元

*切換使用者*

su - 切換到root使用者(切換終端)

sudo 使用管理者權限運作指令

顯示目前使用者資訊

id

修改目前使用者密碼

passwd username

首先輸入目前密碼

然後輸入的是新密碼

*添加使用者*

1-首先切換到root模式下輸入:sudo adduser 使用者名

2-進入這個使用者檢視其所屬組:groups loutest(結果表示:其中冒号之前表示 使用者,後面表示該使用者所屬的使用者組)

3-使用 usermod 指令可以為使用者添加使用者組,同樣使用該指令你必需有 root 權限(在 centos上可能會出現usermod: group \'sudo\' does not exist

因為centos預設沒有sudo組,可以将你的使用者指向wheel使用者組, wheel使用者組同樣有sudo權限是以在centos上可以使用如下指令添加使用者組

sudo usermod -a -G wheel userName

*

**管理背景作業*

jobs 檢視目前在背景運作的作業

可使用ctrl+c終止 或者 使用ctrl+z暫停

bg 編号 控制程序繼續在背景運作

fg 編号 繼續在前台運作

*Linux檔案系統基本結構*

1、Linux檔案系統結構

1)、Linux檔案系統為一個倒轉的單根樹狀結構

2)、*檔案系統的根為“/"*,在安裝作業系統時劃分為2個區,一個交換分區,作為虛拟記憶體;一個是根目錄,liunx中是以的檔案、檔案系統都是存在根目錄下面。

![img](file:///C:\Users\admin\AppData\Local\Temp\ksohtml1812\wps1.jpg)

3)、linux檔案系統嚴格區分大小寫,大小寫敏感

4)、路徑使用”/"分割,(windows中使用“\”)

2、目前工作目錄

1)、每一個shell或系統程序都有一個目前的工作目錄:~顯示目前所在目錄。

2)*使用pwd指令可以顯示目前的工作目錄*

3、檔案名稱

1)、檔案的名稱大小寫敏感

2)名稱最多可以使用255個字元

3)除了正斜線外都是有效字元

4)*通過touch指令可以建立一個空白檔案或者更新已**存在檔案**的**修改**時間*

5)*以“."開頭的檔案為隐藏檔案*

4、列出目錄内容:ls指令用了列出目錄内容

1)ls -a :顯示所有檔案(包括隐藏檔案):隐藏檔案絕大多是都是配置檔案,不要去動這些檔案。

2)ls -l:顯示詳細資訊

3)ls -R:遞歸顯示子目錄結構

4)ls -ld + 目錄 顯示目錄和連結資訊

5、檢視檔案類型:file

file + 目标檔案

6、絕對路徑于相對路徑

1)絕對路徑:以”/”開頭,遞歸每級目錄直到目标的路徑。不受目前所在工作目錄限制

2)相對路徑:以目前目錄為起點,到達目标的路徑。受目前所在目錄限制

3)cd用來切換目錄:cd .切換到目前目錄,cd ..切換到上一級目錄,cd ~切換到家目錄, cd -上一個工作目錄。cd回到家目錄。

*檔案管理操作*

複制檔案:cp (-r/-v/-rv) 源檔案 目标檔案

“-r” 可以複制檔案夾

“-v”顯示複制的詳細資訊,顯示複制的過程

移動檔案:mv 源檔案 目标目錄/重命檔案名

删除 檔案: rm 目标檔案

-i(互動式-有提示)

-r(遞歸的删除包括目錄中的所有内容)

-f(強制删除-沒有互動式警告提示)

建立目錄:mkdir

删除目錄 rmdir (不能删除非空檔案夾)

*Linux系統目錄架構*

bin 含常用可執行二進制檔案,即指令;

boot 含系統引導、啟動檔案、vmlinux核心檔案;

dev 硬體裝置檔案;

etc 幾乎所有系統相關配置檔案;

home 家目錄;

root root使用者家目錄;

lib 所有庫檔案;

media 實時挂載目錄;

mnt 一般挂載目錄;

opt 一般用于裝大型軟體;

proc 系統的一些實時資訊,是虛拟檔案夾,存在記憶體中;

sbin 隻有root使用者才能運作的指令;

sys 系統底層硬體的資訊;

tmp 臨時目錄;

usr 用于裝應用軟體;

var 經常變化的資訊,如log;

*Linux系統常用指令*

一,日期和時間

1,date 檢視和設定系統的日期和時間

2,-u,來檢視UTC時間

3,date +%y--%m--%d 其中“--”可以自定義更 改,這是更改時間的顯示格式

4,date -s 設定時間,這個需要切到root使用者才能有權限更改

5,date檢視的是作業系統的時間,他是從硬體的時間中來的,可以直接用clock(hwclock)來檢視

6,cal來列印月曆

7,uptime,用來檢視系統運作了多久,系統的使用者,系統的負載

注:可以用 man uptime來檢視對uptime的解釋

二,輸出,檢視指令

1,echo:顯示輸入的内容,你輸的啥就給你輸出啥(格式:echo “内容”)

2,cat:來顯示檔案的内容,它直接顯示出所有的檔案内容,很不人性化,麻煩

3,為了友善檢視,避免cat的不便,可以用已下幾個指令

4,more:用于翻頁顯示内容,但是不能向前翻頁

5,less:相對于more 可以上下來回翻頁

6,head:顯示檔案的頭幾行(預設10行)

-n:來指定顯示開頭的n行

7,tail:顯示末尾的幾行(預設10行)

-n:來指定顯示末尾的n行

-f:追蹤顯示檔案的更新,當我們用-f指令後,指令 行就會卡在這裡,等待檔案更新再顯示出新内容。一般用于檢視日志,持續顯示新加入的内容

三,檢視硬體資訊

1,lspci 用于檢視PCI裝置(如聲霸卡網卡等)

-v檢視詳細資訊

這幾條指令相當與Windows中點屬性點裝置管理器一樣

2,lsusb 檢視USB裝置,如攝像頭等

-v也是顯示詳細資訊

3,lsmod 檢視目前加載的所有子產品(子產品即windows中相當于驅動)

四,關機重新開機

格式:shutdown【關機/重新開機】時間

立即關機:shutdown -h now=poweroff

立即重新開機:shutdown -r now=reboot

n分鐘後關機:shutdown -h +n

定時關機:shutdown -h xx:xx

五,歸檔和壓縮

1,zip用以壓縮:zip xxx.zip file (把file這個源檔案壓縮成xxx.zip是目标檔案)

2,unzip xxx.zip 是解壓檔案

3,gzip:也是一種壓縮方式

4,tar:一個歸檔指令,就是把許多檔案打包成一個檔案

-cvf 名字.tar liunxfile :把Linuxfile這個檔案夾中的檔案打包歸檔成一個輸出 .tar格式的檔案,可以用來備份,但是他沒有壓縮哦

-cvf out.tar 把一個歸檔的tar檔案釋放到目前檔案下

-cvzf: 在cvf指令下多了個z指令,就是歸檔并壓縮一個檔案。這裡調用了一次gzip指令

格式:tar -cvzf xxx.tar.gz/要儲存的目錄下

其實用的最多的還是歸檔并壓縮指令

六,查找指令

在我們的作業系統中尋找檔案

1,lacate 關鍵字 快速查找

它需要預先建立資料庫,比如你建立立了一個檔案,然後用locate去查找這個指令,是找不到的。這個時候你可以用“updatedb"指令先更新資料庫,然後在查找。

2,find 支援很多查找條件,是以叫進階查找

格式:find 查找位置 查找參數

find .-name linuxcast "."表示在目前檔案夾

xxx表示關鍵字這句話表示在目前檔案夾下所有包含“Linuxcast”關鍵字的檔案

find /-name *.conf 在/根分區下查找所有.conf結尾的檔案

find /-perm 777查找硬碟中所有權限是777的檔案

find /-type d 查找目錄類型檔案。d是目錄,也可以跟l ,表示查找所有的連接配接

find .-name "a *"-exec ls -l {};

這句話表示查找所有以“a開頭的檔案,然後傳送給“ls -s"這個指令去執行;其中{} ;是固定格式。-exec也是固定格式,執行的意思;

find的字尾參數還有很多,可以直接在網絡查找或者help檔案

*Vi文本編輯器*

vi 指令行下面的文本編輯工具

vim是vi的增強版本

指令vim可以啟動vim編輯器

一般可以通過vim+目标檔案路徑的形式使用vim

如果目标檔案存在,則vim打開該檔案

若目标檔案不存在,則建立該檔案

vi擁有三種模式:指令模式、插入模式和ex模式

任何模式都可以通過esc鍵回到指令模式

在指令模式中按”i“鍵可以進入到插入模式,在插入模式中按esc可以傳回指令模式

在指令模式中按”:“可以進入ex模式,在ex模式中可以儲存、修改和退出

指令模式常用的指令如下:

i 在光标前插入文本

o 在目前行的下面插入新行

dd 删除正行

u 撤銷上一個操作

yy 複制目前行

n+yy 先按5,接着按yy,則是将5行内容複制

p 粘貼

r 替換目前關鍵字

/ 查找關鍵字

EX模式

:w 儲存目前修改

:q 退出

:q! 強制退出

:x 儲存并退出

:setr number 顯示行号

:! 執行一個系統指令并顯示結果

:sh 切換到指令行,使用ctrl+d切換回vim

*磁盤基本概念*

/dev/sda,/dev/sda1, /dev/sda2: 第一塊硬碟的第一、第二分區(sd表示SATA接口第一個表示硬碟,後面兩個表示分區)

分區不是硬碟的實體功能,而是軟體功能。

主流分區:

MBR:Master Boot Record,主引導記錄,傳統分區機制,應用于絕大多數使用BIOS的PC裝置,蘋果電腦就不使用BIOS。

* 支援32bit和64bit系統

* MBR支援分區數量有限

* MBR隻支援不超過2T的硬碟,超過2T的硬碟将隻能使用2T空間(有第三方解決方法)

* MBR結構,占了硬碟頭512個位元組, 前446位元組是引導代碼,後16位元組 x 4 = 4個分區表,最後二個位元組一定是55, AA。

最多4個主分區,可以包含3個主分區 + 一個擴充分區,然後在擴充分區上面建立邏輯分區(IDE最多63個邏輯分區,SCSI最多建立15個分區)。

GPT:GUID Paration Table是一個較新的分區機制,解決了MBR很多缺點。

* 支援超過2T的硬碟

* 向後相容MBR

* 必須在支援 UEFI 的硬體上才能使用,UEFI 是由Intel提出的取代 BIOS 的新一代硬體引導系統。

* 必須使用64bit系統

* Mac、Linux系統都能支援GPT分區格式

* Windows7 64bit、windows Server 2008 64bit支援GPT

fdisk :分區工具 來自IBM的老牌分區工具,支援絕大多數作業系統。fdisk是基于MBR的分區,是以如果需要使用GPT,則無法使用fdisk進行分區。

fdisk 指令隻有具有超級使用者的權限才能夠運作

使用fdsik -l可以列出所有安裝的磁盤及其分區資訊

容量大小 = 磁頭大小 * 磁頭數量 *扇區數量 *柱面數量

使用fdisk /dev/sda(目标硬碟) 可以對目錄磁盤進行分區操作

進入fdisk互動視窗【m 檢視幫助說明】:

a toggle a bootable flag 切換可以開機

b edit bsd disklabel BSD磁盤标簽編輯

c toggle the dos compatibility flag 切換到拒絕相容标志

d delete a partition 删除分區

l list known partition types 列出已知的分區類型

m print this menu 列印此菜單

n add a new partition 添加新的分區

{

e extended (擴充分區)

p primary partition(1-4) 主分區

建立步驟如下:

1.選着分區類型

2.選着分區号

3.選着起始分區柱面

4.選着末分區柱面(柱面難算可使用 +大小和機關大寫,eg: +2G)

建立主分區和拓展分區後會出現 l logical(5 or over) 建立邏輯分區

}

o create a new empty DOS partition table 建立一個新的空分區表

p print the partition table 列印分區表

q quit without saving changes 退出不儲存更改

s create a new empty Sun disklabel

t change a partition\'s system id 修改分區ID

u change display/entry units

v verify the partition table

w write table to disk and exit 寫入磁盤并退出

x extra functionality (experts only)

l logical (5 or over)

p primary partition (1-4)

Partition number (1-4): 2

First cylinder (263-2610, default 263):

Using default value 263

Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610):

為友善系統識别需要修改ID(system id)linux系統預設為83

可以選擇L檢視ID對應類型,輸入類型後回車

目前操作還未寫入硬碟,需要執行 write table to disk and exit進行儲存退出

若核心未重新讀取分區表,可使用partprobe更新核心分區表

*檔案系統*

作業系統通過檔案系統管理檔案及資料,磁盤或分區需要建立檔案系統之後才能夠讓作業系統使用,建立檔案系統的過程又稱之為格式化。

沒有檔案系統的裝置又稱之為裸(RAW)裝置

常見的檔案系統有fat32、NTFS、ext2、ext3、ext4、xfs、HFS等等

cent os 6預設的是ext4

cent os 5預設的是ext3

檔案系統之間的差別:日志、支援的分區大小、支援的單個檔案大小、性能等

Linux支援的檔案系統:ext2、ext3、ext4、fat、vfat、nfs、iso9660、proc、gfs、jfs

mke2fs 用來建立檔案系統

mke2fs -t ext4 /dev/sda3 建立一個檔案系統

-b 指定檔案系統塊大小

-c 建立檔案系統時檢查壞損塊

-L 指定卷标

-j 建立日志檔案系統

mkfs也可以用來建立檔案系統,相對于mke2fs比較簡單,但是無法進行精細化的控制

dumpe2fs 可以用來檢視分區的檔案系統資訊,一般用來進行計算機性能調整

dumpe2fs /dev/sda1

帶日志的檔案系統擁有較強的穩定性,在出現錯誤時可以進行恢複

帶日志的檔案系統哦會使用一個叫做”兩階段送出“的方式進行磁盤操作

檔案系統将準備執行的食物的具體内容寫入日志

檔案系統進行操作

操作成功後,将事物的具體内容從日志中删除

這樣做會喪失一些性能

e2label 該指令可以用來問檔案系統家标簽

e2label /dev/sdb1 顯示sda2的系統标簽

e2label /dev/sdb1 LINUX 将sda2的标簽設定為LINUX

fsck 檢查并修複損壞的檔案系統

fsck /dev/sda2

使用參數-y 參數不提示而直接進行修複

若檔案系統損壞比較嚴重,請使用-t參數指定檔案系統類型

對于未識别的檔案,則會放在lost+found目錄中

系統每次啟動都會對磁盤進行fsck操作

*挂載操作*

磁盤或分區建立好檔案系統後,需要挂載到一個目錄才能夠使用

Windows或Mac系統會自動挂載,但是Linux需要手工挂載

通過mount指令将格式化好的磁盤或分區挂載到一個目錄上

mount /dev/sda3 [要挂載的分區] /mnt[需要挂載的地方]

使用不帶任何參數的mount來顯示已經挂載好的檔案系統

-t 指定檔案系統的類型

-o 指定挂載項

ro,rw 以隻讀或讀寫形式挂載,預設是rw

sync 代表不适用緩存,而是對所有操作直接寫入磁盤

async 代表使用緩存,預設是async

noatime 代表每次通路檔案時不需要更新檔案的通路時間

remount 重新加載檔案

umount用來解除安裝已經挂載的檔案

umount 檔案系統/挂載點

umount /dev/sda3

如果出現device is busy,則表示該檔案系統正在被使用,無法解除安裝,可以使用下面的指令檢視是誰在使用:

fuser -m /mut

也可以使用指令lsof檢視正在被使用的檔案

lsof /mnt

配置檔案/etc/fstab 用來定義需要自動挂載的檔案系統,fstab中每一行代表一個挂載配置

配置格式

/dev/sda3[需要挂載的裝置] /mnt[挂載點] ext4[檔案系統] defaults[挂載選項] 0 0 [dump、fsck相關選項]

要挂載的裝置LABEL=LINUXCAST取代/dev/sda3

mount -a 指令會挂fstab中定義的自動挂載項