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中是以的檔案、檔案系統都是存在根目錄下面。

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中定義的自動挂載項