Linux<小白>詳細筆記

目錄   應放置的內容

/bin  系統有不少放置執行文件的目錄,可是/bin目錄比較特殊。/bin放置的是在單用戶維護模式下還可以被操做的命令。在/bin下面的命令能夠被root與通常用戶使用。html

/boot        這個目錄主要放置開機會使用到的文件,包括Linux內核文件以及開機菜單與開機所需配置文件等。前端

/dev 在Linux系統上,任何設備與結構設備都是以文件的形式存在於這個目錄中的。只要經過訪問這個目錄下的某個文件,就等於訪問某個設備。node

/etc  系統主要的配置文件幾乎都放置在這個目錄裏,例如人員的帳號密碼文件、各類服務的起始文件等。通常來講,這個目錄下的各個文件屬性是可讓通常用戶查閱的。但只有root用戶有權限修改。FHS標準建議不要放置可執行文件(binary)在這個目錄中。linux

/home      這是系統默認的用戶文件夾(home directory)。在建立一個通常用戶時,默認的用戶主文件夾都會放置到這裏。主文件夾有兩種代號:~:表明目前這個用戶的主文件夾 ~ahao:表明用戶ahao的主文件夾ios

/lib   /lib放置的是在開機時會用到的函數庫,以及在/bin或/sbin下面的命令會調用的函數庫。正則表達式

/media     /media放置的是可刪除的設備。包括軟盤、光盤等設備都暫時掛載於此。算法

/mut         若是你想要暫時掛載某些額外的設備,通常建議能夠放置到這個目錄中。在比較早的時候,該目錄的用途於/media相同。shell

/opt 這是給第三方軟件放置的目錄。                                                                  數據庫

/proc         這個目錄自己是一個虛擬文件系統(virtual filesystem)。它放置的數據都是在內存當中,例如系統的內核、進程、外部設備狀態及網絡狀態等。由於這個目錄下的數據都是在內存當中,因此自己不佔任何硬盤空間。編程

/root         系統管理員(root)的主文件夾。之因此放在這裏,是由於若是進入單用戶維護模式而僅掛載根目錄時,該目錄就能擁有root的主文件夾,因此將root的主文件夾與根目錄放置在同一塊分區內。

/sbin         放在/sbin下面的爲開機過程當中所須要的命令,裏面包括開機、修復、還原系統所須要的命令。

/srv  srv可視爲「service」的縮寫,是一些網絡服務啓動以後,這些服務所須要取用的目錄數據。

/sys  這個目錄跟/proc很是類似,也是一個虛擬文件系統,主要記錄與內核相關的信息。包括目前已加載的內核模塊與內核檢測到的硬件設備信息等。該目錄一樣不佔用硬盤容量。

/tmp         這是通常用戶或者時正在執行的程序暫時放置文件的地方。這個目錄任何人都能訪問而且建立數據,可是隻用root和數據的使用者才能刪除所建立的數據。

 

 

●由於根目錄與開機有關,在開機的過程當中僅有根目錄所在分區會被掛載,其餘分區則是在開機以後纔會持續進行掛載的行爲。因此根目錄下與開機有關的目錄就不能與根目錄放置在不一樣的分區:/etc(配置文件)、/bin(重要的執行文件)、/dev(所須要的設備文件)、/lib(執行文件所需的函數庫與內核所需的模塊)、/sbin(重要的系統執行文件)。

 

 

 

 

 

[root@localhost ~]#

Root :當前登陸的系統用戶

Localhost:主機名

~:當前所在位置(~表明當前用戶的家目錄)

#:用戶身份(#:管理員 $:普通用戶)

 

 

 

 

 

          Linux簡介

談到linux 咱們就會想到linux 的創始人林納斯·託瓦茲(Linus Torvalds

 

一個企鵝撐起了一個開源的帝國!可大家知道linux 的來歷嗎?他也是有故事的,下面帶你去了解linux 的世界

Linux的前身-Unix,是美國貝爾實驗室、麻省理工大學和通用電氣共同開發的一個新型的操做系統,由於憑藉着良好的穩定性和多用戶,多任務模式。一經問世就被行業所青睞。

 

後來各大廠商,如HP ,蘋果,IBM 根據其自身的硬件架構,並以unix 操做系統爲基礎,開發了本身家的操做系統,如HP hpux ,蘋果公司的mac os

 

此時的貝爾實驗室發現版權商機了,想從中大賺一筆。就中止了公佈了unix 源代碼,並禁止對大學生提供原代碼。

因而在1984年,一個大學教授譚寧邦Andrew tannenbaum-)爲了方便教學,本身寫了Minix的系統,而且和Unix 操做系統同樣穩定。能很好的運行與教學環境。

而教授的一個學生,他以爲老師的minix系統作的不是很好,想着青出於藍而勝於藍。就本身自學了minx系統,並在衆多網友的幫助和建議下,開發了linux 操做系統。而這位學生,也就是上面提到的linux 之父,林納斯·託瓦茲(Linus Torvalds

 

紅帽系統與linux 的聯繫

 

1994年,聯合創始人 Ewing 建立了本身的Linux發行版,並將其命名爲紅帽Linux操做系統,隨後通過其不斷髮展,中間不斷收購軟件公司,日益壯大起來。紅帽公司成爲了全球最大的開源技術廠商,RHEL是全世界內使用最普遍的Linux系統。

紅帽產品涉及5大技術領域:雲計算、存儲、虛擬化、中間件、操做系統。

操做系統是其最大的技術領域:咱們都知道Linux 在全球有衆多的Linux 發行版,可你知道衆多的發行版中,紅帽公司的Linux發行版的使用率是最高的,咱們看看都有哪些發行版本:

RHEL(紅帽企業版Linux Red Hat Enterprise Linux的縮寫)

 

RHEL系統具備極強的性能與穩定性,而且在全球範圍內擁有完善的技術支持。但每一年須要支付服務費

Centos (社區企業操做系統)

 

克隆版的RHEL系統,和RHEL同樣的Linux構築系統環境,實際就是用來優先測試redhat Bug ,使用免費。二者的不一樣,在於CentOS並不包含封閉源代碼軟件

不管免費仍是收費,紅帽公司的linux 的發行版在企業中的地位都是什麼重要的,企業用他來搭建本身企業的實際生產應用平臺

 

 

 Centoslinux 7.5介紹與安裝部署

 

1、歷史發展

Linux操做系統的鼻祖Unix

.湯姆遜和丹尼斯.奇於1969年在貝爾實驗室創建了Unix操做系統,一款同時支持多人登陸的操做系統。爲了開發此係統他們發明了C語言。並於1983年倆人得到了圖靈獎。

 

GNU社區的創建

 

1983Richard M. Stallman建立了GNU計劃並制定了GPL協議。並以角馬做爲了社區LOGO。該社區的定義了一個很是重要的詞「開源

 

 

MINIX操做系統悄悄誕生

 

一款類Unix操做系統,由塔能鮑姆教授爲教學使用而創做。1987年發佈,該系統的源代碼,以磁片的形式出售給院校或學生。該系統啓發了Linux操做系統的創做

LINUX內核誕生

 

1992Linus Torvalds根據MINIX操做系統創建Linux內核。Linux最初是做爲支持英特爾x86架構的我的電腦的一個自由操做系統。因爲其開源的特色結合了GNU社區的開源軟件最終組成了現在你們所使用的Linux操做系統。

 

二.LINUX的發行版

Debian是指一個致力於建立自由操做系統的合做組織及其做品,因爲Debian項目衆多內核分支中以Linux宏內核爲主,並且Debian開發者所建立的操做系統中絕大部分基礎工具來自於GNU工程,所以Debian常指Debian GNU/Linux

 

 

 

ubuntu基於linux的免費開源桌面PC操做系統,十分契合英特爾的超極本定位,支持x8664

 

工信部軟件與集成電路促進中心(CSIP)攜手國防科技大學(NUDT)與國際著名開源社區UBUNTU的支持公司CANONICAL在京宣佈合做成立開源軟件創新聯合實驗室,發起開源社區操做系統項目UbuntuKylin

 

Kali linux操做系統

Kali Linux是基於DebianLinux發行版設計用於數字取證和滲透測試黑客攻防。

Kali Linux預裝了許多滲透測試軟件包括nmap (端口掃描器)Wireshark (數據包分析器)John the Ripper (密碼破解器),以及Aircrack-ng (一套用於對無線局域網進行滲透測試的軟件). 用戶可經過硬盤、live CDlive USB運行Kali LinuxMetasploitMetasploit Framework支持Kali LinuxMetasploit一套針對遠程主機進行開發和執行Exploit代碼的工具。

 紅帽系列Linux操做系統

Red Hat 企業版

  由紅帽公司創建的一款企業級操做系統

  最新版本爲7.0

 

Fedora 社區版

  Red Hat資助的社區操做系統定位爲我的版操做系統

  最新版能夠從官網http://fedoraproject.org下載

 

CentOS 社區版

Community Enterprise Operating System(社區企業操做系統)

最新版爲7.5

 

 

3、安裝CentOS7.5系統

安裝步驟

 

 

若出現上面的界面,表示要打開物理機的虛擬化功能。

初始化CentOS7系統

 

CentOS7系統安裝後

 對初學者的建議

關閉防火牆   systemctl enable/disable  firewalld

 

查看防火牆的狀態:

Systemctl status firewalld

臨時關閉防火牆

systemctl stop firewalld

永久中止防火牆開機自啓動

systemctl disable firewalld

臨時打開防火牆

systemctl start firewalld

防火牆開機啓動

systemctl enable firewalld

 

關閉Selinux  vi /etc/selinux/config SELINUX=disabled

查看Selinux狀態

Getenforce

enforcing:強制模式,表明 SELinux 運做中,且已經正確的開始限制 domain/type 了;

permissive:寬容模式:表明 SELinux 運做中,不過僅會有警告訊息並不會實際限制 domain/type 的存取。這種模式能夠運來做爲 SELinux 的 debug 之用;

 

臨時關閉SELinux

setenforce 0

1. 2

臨時打開SELinux

setenforce 1

2. 3

開機關閉SELinux

編輯/etc/selinux/config文件,將SELINUX的值設置爲disabled

*必背:引導啓動過程

 

MBR:master boot record

 

ps -ef

Centos7之前啓動Init進程

Linux 內核加載運行 /sbin/init 程序

是系統中第一個進程

PID進程標記號永遠爲1

Centos7之後啓動systemd進程

 

*必背:Systemed單元類型

單元類型

擴展名

說明

Service

.service

描述一個系統服務

Socket

.socket

描述一個進程間通訊的套接字

Device

.device

描述一個內核識別的設備文件

Mount

.mount

描述一個文件系統的掛載點

Automount

.automount

描述一個文件系統的自動掛載點

Swap

.swap

描述一個內存交換設備或交換文件

Path

.path

描述一個文件系統中文件或目錄

Timer

.timer

描述一個定時器(用於實現相似cron的調度任務)

Snapshot

.snapshot

用於保存一個systemd的狀態

Scope

.scope

使用systemd的總線接口以編程的方式建立外部進程

Slice

.slice

描述居於Cgroup的一組經過層次組織的管理系統進程

Target

.target

描述一組systemd的單元

 

運行級別所對應的Systemd目標

 

運行級別

Systemd的target

說明

0

poweroff.target

關機狀態,使用該級別時將會關閉主機

1

rescue.target

單用戶模式,不須要密碼驗證便可登陸系統,多用於系統維護

2

multi-user.target

用戶定義/域特定運行級別。默認等同於3

3

multi-user.target

字符界面的完整多用戶模式,大多數服務器主機運行在此級別

4

multi-user.target

用戶定義/域特定運行級別。默認等同於3

5

graphical.target

圖形界面的多用戶模式,提供了圖形桌面操做環境

6

reboot.target

從新啓動,使用該級別時將會重啓主機

改變運行級別

Systemctl get-default

Systemctl set-default multi-user.target

Systemctl get-default

或者

Runlevel

Init 0-6

 

Init 0 -----關機===systemctl powoff

Init 6 ------重啓==systemctl reboot

 

*必背Centos7系統服務控制

 

經常使用方式

systemctl

控制類型

start啓動

stop中止

restart從新啓動

reload從新加載

status查看服務狀態

……

systemctl  status rsyslog.service

systemctl  restart rsyslog.service

 

管理服務啓動

ntsysv工具

提供一個交互式、可視化窗口

能夠在字符終端運行

便於集中管理多個服務

systemctl工具

不提供交互式、可視化窗口

管理單個服務效率更高

 

Ntsysv  以圖形界面設置服務啓停

ntsysv  --level  級別列表設置服務啓停時指定級別

 

systemctl is-enabled 服務名稱    查看指定的服務是否設置爲永久啓動狀態enable永久啓動disable不永久啓動)

Systemct list-units --type=service  查看全部設置爲自動啓動服務的狀態

Systemctl all查看全部服務狀態

 

systemctl enable 服務名稱永久設置啓動

systemctl disable服務名稱永久設置不啓動

 

systemctl start 服務名

systemctl stop 服務名

 

 

對比老版本(適用於7之前版本)

查看服務chkconfig –list

查看服務狀態service 服務名 status

啓動服務:service 服務名 start

中止服務:service 服務名stop

服務永久設置

Chkconfig 服務名 on

Chkconfig 服務名 off

 

 

 

 

*學習幾個命令:

用戶登陸,提示符

[ 當前用戶名@主機名 當前目錄 ] 用戶身份符

#表明用戶是root;

$表明普通用戶;

 

Cat /etc/centos-release   ------查看具體的linux類型和版本

 

date顯示日期

whoami顯示登陸用戶名

hostname顯示主機名

ifconfig顯示ip

route  -n顯示路由

 

alias cls='clear'

alias ipconfig='ifconfig'

ping -c 2 172.18.199.1

 

reboot重啓機器

halt -p或shutdown -h 0

 

 單詞表

Redhat 紅帽子

Free 開源的

Enterprise 企業的

Root

Boot 啓動

Terminal 終端

Localhost 本地主機

Info 信息

Total 總共

 

做業:

1、英文和中文安裝LINUX;

2、寫出下面命令功能:

Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown

 

 

linux經常使用命令

 

linux命令

SHELL

文件位於/bin/bash

cat /etc/shells

 

常見的linuxshellshbash、csh、tcsh、ash  其中bash shell是linux默認的shell

查看系統默認shell命令  $SHELL

LINUX命令分類

內部命令

外部命令

集成於 Shell 解釋器程序內部的一些特殊指令,也稱爲內建(Built-in)指令

Linux系統中可以完成特定功能的腳本文件或二進制程序

屬於 Shell 的一部分

屬於 Shell 解釋器程序以外的命令

沒有單獨對應的系統文件

每一個外部命令對應了系統中的一個文件

自動載入內存,能夠直接使用

必須知道其對應的文件位置,由 Shell 加載後才能執行

 

 

Echo $PATH

 通用的命令行使用格式

 

 命令字

是整條命令中最關鍵的一部分

惟一肯定一條命令

 

 

 選項

短格式選項:使用「-符號引導

多個單字符選項能夠組合在一塊兒使用   ----ls -a    ls -l   ls -al

長格式選項:使用「--符號引導

 參數

命令字的處理對象

能夠是文件名、目錄(路徑)名或用戶名等內容

個數能夠是零到多個

 編輯 Linux 命令行的輔助操做

Tab

反斜槓\  ---若是輸入一行命令內容過長,終端會自動換行,也能夠經過插入反斜槓\強制換行

CtrlU 快捷鍵 -------快速刪除光標以前的全部字符內容

CtrlK 快捷鍵-----快速刪除從點前光標處到行尾的全部字符

CtrlL 快捷鍵-----快速清空屏幕顯示

CtrlC 快捷鍵----取消當前命令

如何得到命令幫助

 問題

如何能快速、正確使用命令完成操做?

 取得幫助方法

使用help 命令

    Help pwd

使用「--help」選項

使用man 手冊頁 (pageup   pagedown翻頁   q退出)

 

help:大多數GNU工具都有--help 選項,用來顯示工具的一些信息,用法

 

man​:--(manual)顯示系統的手冊頁,也就是查看幫助文檔,若是系統沒有文檔,是不會顯示這些幫助信息的,比help要詳細

 

info:​是一個基於菜單的超文本系統,是由GNU項目開發並由Linux發佈,包括一些關於Linux Shell,工具,GNU項目開發程序說明文檔,不但顯示一些選項,還會有一些範例

 

注​:通常man用的比較多,比help細,比info簡單

 

目錄和文件基本操做

pwd 命令

cd 命令

ls 命令

du 命令

 

顯示當前的工做目錄

Pwd

 將用戶的工做目錄更改到其餘位置

格式

說明

cd  目標位置

切換到目標位置

cd  ~

cd 

若不指定目標位置,切換到當前用戶的宿主目錄

cd  -

切換到上一次執行 cd命令以前所在的目錄

目錄操做

絕對目錄:從根目錄開始的路徑表示方式

相對目錄:從當前目錄開始的路徑表示方式

示例:cd ..  相對路徑表示法進入上級目錄。

 

 

―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――

 顯示目錄中內容,包括子目錄和文件相關屬性信息

ls    [選項]    [文件或目錄 ]

ls l

標誌

d表明目錄

-表明文件

l表明連接

ls a 連同顯示隱藏文件,以.開頭的文件或目錄

ls d 顯示目錄自己的信息

ls h 以友好的表示方式顯示信息

 經常使用選項

-l -a -A -d -h -g --color

 

 

 結合通配符

?:匹配文件名中的一個未知字符

*:匹配文件名中的任意多個字符

ls --color  ---在字符模式中顏色區分文件類型

 深藍色----目錄

白色-------文件

綠色----可執行文件

黃色---設備文件

紅色------壓縮文件

 經過別名機制簡化經常使用的、比較長的命令

alias 命令別名命令

 設置myls  ls alh 的別名

alias myls = ls alh

永久保存定義別名的方式

編輯  ~/.bashrc  -----我的配置文件

/etc/bashrc  -----全局配置文件

alias la='ls -a -l'

 

 統計指定目錄或文件所佔用磁盤空間的大小

du   [選項]    [文件或目錄 ]

選項

示例

-a

統計磁盤空間佔用時包括全部的文件,而不只僅只統計目錄

-h

顯示出目錄或文件的大小(K、M),默認的大小單位爲字節(KB)

-s

只統計每一個參數所佔用空間總的大小,而不是統計每一個子目錄、文件的大小

  df h顯示剩餘磁盤空間

 

mkdir rmdir

建立新的空目錄

mkdir   [選項]    目錄位置及名稱

-p:一次性建立嵌套的多層目錄

Rmdir刪除子目錄時,必須是空的。

建立空文件 touch

 更新文件的時間標記

 常常用於建立多個新的空文件

touch   文件

建立連接文件 ln

 爲文件或目錄創建連接文件

 文件類型

軟連接,又稱符號連接(理解爲快捷方式)

 

硬連接

ln  [-s]  源文件或目錄…  連接文件或目標位置

 

軟連接-s

硬連接

刪除原始文件後

失效

仍舊可用

使用範圍

適用於文件或目錄

只可用於文件

保存位置

與原始文件能夠位於不一樣的文件系統中

必須與原始文件在同一個文件系統(如一個Linux分區)內

取消軟連接

Unlink 連接名

如:unlink aa1.txt

查找指定inode號的硬連接文件

ll i

find / -inum 16810953

 

將須要複製的文件或目錄重建一份並保存爲新的文件或目錄

cp  [選項]   源文件或目錄   目標文件或目錄

選項

說明

-f

覆蓋目標同名文件或目錄時不進行提醒,直接強制複製

-i

覆蓋目標同名文件或目錄時提醒用戶確認

-p

複製時保持源文件的權限、屬主及時間標記等屬性不變

-r

複製目錄時必須使用此選項,表示遞歸複製全部文件及子目錄

注意:

複製多個文件或目錄時,目標位置必須是目錄,且目標目錄必須已存在

複製文件的樣式

Cp 文件名子目錄中

如:cd /root

cp initial-setup-ks.cfg a1

cp 文件名  新文件名

在當前目錄複製出一個新文件

支持通配符*

複製一個目錄及裏面全部文件到另外一個目錄中

Cp –r b3 b34

 

 刪除指定的文件或目錄

rm  [選項]    要刪除的文件或目錄

 經常使用選項

-f(強制)-i(友好提示)-r(連同子目錄)

其中rf能夠組合使用

 猜一猜:下面命令實現的功能

rm  -rf  public_html/grub/

rm  -i   public_html/apg.conf

注意:

不要直接刪除系統中已有的目錄或配置文件,以免出現意外故障

 

移動文件或目錄mv

mv  [選項] …  源文件或目錄…  目標文件或目錄

將指定的文件或目錄轉移位置

若是目標位置與源位置相同,則至關於執行重命名操做

mv mytouch mkfile

mv mkfile public_html/

 

查找命令/文件存放目錄

 搜索範圍由環境變量 PATH  決定echo $PATH

which 命令|程序名

which -a  命令|程序名

 

查找文件或目錄-find

 採用遞歸方式,根據目標的名稱、類型、大小等不一樣屬性進行精細查找

find    [查找範圍]    [查找條件表達式]

查找類型

關鍵字

說明

按名稱查找

-name

根據目標文件的名稱進行查找,容許使用「*」及「?」通配符

find / -name "*.txt" -print            #在當前目錄中中查.txt文件並顯示

find . -name "[A-Z]*" -print        #在當前目錄中查以大寫字母開頭的文件並顯示

 

按文件大小查找

-size

根據目標文件的大小進行查找
 
通常使用「+」、「-」號設置超過或小於指定的大小做爲查找條件
 
經常使用的容量單位包括 kB(注意 k 是小寫)、M、G

find . -type f -empty            #查找大小爲0的文件或空目錄

find . -type f -size +1000000c -print    #查長度大於1Mb的文件

find . -type f -size +2k            #搜索當前目錄下大於2KB的文件

按文件屬主查找

-user

根據文件是否屬於目標用戶進行查找

按文件類型查找

-type

根據文件的類型進行查找
 
文件類型包括普通文件(f)、目錄(d)、塊設備文件(b)、字符設備文件(c)等
 
塊設備是指成塊讀取數據的設備(如硬盤、內存等),字符設備是指按單個字符讀取數據的設備(如鍵盤、鼠標等)

find . -type d -print     #只列出當前目錄全部的子目錄
find . ! -type d -print  #
只列出當前目錄的非子目錄(文件)
find . -type f -print     #
只列出當前目錄全部的文件
find . -type l -print     #
只列出當前目錄的全部符號連接
find . -type c -print    #
只列出當前目錄的全部字符設備
find . -type b -print    #
只列出當前目錄的全部塊設備
find . -type s -print    #
只列出當前目錄的全部套接字
find . -type p -print    #
只列出當前目錄的全部Fifo

擴展

Xargs

find . -type d -empty | xargs rmdir              #刪除當前目錄下全部空文件夾

find . -type f -empty | xargs rm -rf     #遞歸查找當前目錄及子目錄下全部空文件並刪除,rm -r參數表示遞歸,-f表示強制刪除

find . -name "*.txt" | xargs rm -rf                #查找當前目錄下全部.txt文件並刪除

 

例如:

find . -type f -atime +10 -name "*.txt" -exec cp {} /data \;     #找到10天前訪問的.txt文件並複製到/data目錄中

find . -perm -007 -exec ls -l {} \;                #查全部用戶均可讀寫執行的文件同-perm 777

find . -type f -user root -exec chown ubuntu {} \;           #將當前目錄下全部root的文件改成屬於ubuntu

find /haha -name 「grep.txt」 -exec rm -rf {}\

find . -name ap* -o -name may*             #查找以apmay開頭的文件

find / -name "aa*.log" ls

find / -size +100M ls

find /etc -size -10k -ls

find / -user abc -ls

find /root/b35 -type f -ls

 

 

 各表達式之間使用邏輯運算符

「-a」表示並且and

「-o」表示或者or

 

find /boot -size  +1024k -a  -name "vmlinuz*「

find /boot -size  +1024k -o  -name "vmlinuz*"

 

 知識梳理

查看及切換目錄(pwdcdlsdudf

建立目錄和文件(mkdirtouchln

複製、刪除、移動目錄和文件(cprmmv

查找目錄和文件(whichfind

 

 

 

做業:

一、  創建子目錄/root/abc,在下面分別創建新子目錄a1,b1,c1和文件a1.txt,b1.txt,c1.txt,將/etc/resolv.conf文件複製到a1目錄中名稱爲r1.conf,/root/abc/b1目錄軟連接此文件。

二、  查找系統中hostname文件,複製到/root/abc/c1中,本目錄複製出新文件h1.conf,而後刪除/root/abc/c1/hostname文件。

 

文件操做

1、文件內容查看

查看文件內容 cat 命令

cat命令

用途:顯示出文件的內容

cat [選項] 文件名

cat n 文件名

顯示文件內容同時顯示行號

 

more命令

用途:全屏方式分頁顯示文件內容

 

交互操做方法

 Enter鍵向下逐行滾動

 按空格鍵向下翻一屏

 q鍵退出

Ctrl+f 下翻  Ctrl+b上翻

more [選項] 文件名

 

less 命令

用途 more 命令相同但擴展功能更多

 

交互操做方法

Page Up 向上翻頁Page Down 向下翻頁

按「/鍵查找內容,n下一個內容,N上一個內容

其餘功能與 more 命令基本相似

     less [選項] 文件名

 

tail命令

用途查看文件結尾的少部份內容默認爲10

 

       tail -n 文件名

           顯示尾部指定行數

       tail -f  文件名動態觀察文件變化

 

 

wc命令

用途統計文件中的單詞數量Word Count等信息

 

經常使用命令選項

-l:統計行數

-w:統計單詞個數

-c:統計字節數

wc  [選項]...  目標文件...

 

wc -l /etc/passwd

wc -l /var/log/secure

 

grep命令(支持正則表達式)

用途:在文件中查找並顯示包含指定字符串的行

 

經常使用命令選項

-i:查找時忽略大小寫

-v:反轉查找,輸出與查找條件不相符的行

查找條件設置

要查找的字符串以雙引號括起來

^……表示以……開頭,「……$表示以……結尾

^$表示空行

grep  [選項]...  查找條件  目標文件

例如grep -v ^# /etc/yum.conf | grep -v ^$

      Grep ^root /etc/passwd

 

 

壓縮命令gzip、bzip2

gzip命令、bzip2命令

用途:製做壓縮文件、解開壓縮文件

經常使用命令選項

-9-d

gzip  [-9]  文件名 ------gzip工具壓縮文件

bzip2  [-9]  文件名...-----bzip2工具壓縮文件

gzip  -d  .gz格式的壓縮文件 ------gzip工具解壓文件

bzip2  -d  .bz2格式的壓縮文件------bzip2工具解壓文件

請注意:

gzipbzip2命令使用的壓縮算法各不相同

通常來講bzip2的壓縮效率要好一些

gunzip 命令

gunzip  等價於gzip d

gzip -d mkfile.gz

 

gunzip mkfile.gz

 

bunzip2 命令

bzip2bunzip2命令的用法與gzipgunzip命令基本相同

 

tar命令

用途:製做歸檔文件、釋放歸檔文件

tar [選項]  ...  歸檔文件名  源文件或目錄

tar  [選項]...  歸檔文件名  [-C 目標目錄]              

經常使用命令選項

-c-x-v-f-p-t -C-z-j

 

-c:建立.tar格式包文件

-C:解壓時指定釋放的目標文件夾

-f:表示使用歸檔

-j:調用bzip2程序進行壓縮或是解壓

-p:打包時保留文件及目錄的權限

-P:打包時保留文件及目錄的絕對路徑

-t:列表查看包內的文件

-v:輸出詳細信息

-x:解壓tar格式的包文件

-z:調用gzip程序進行壓縮或是解壓

壓縮歸檔:

Tar zcvf 自定義壓縮後的文件名.tar.gz 壓縮的對象

Tar jcvf 自定義壓縮後的文件名.tar.bzip2 壓縮的對象

解壓:

Tar zxfv 壓縮文件.tar.gz  -C 解壓後存放的目錄

Tar jxvf 壓縮文件.tar.bzip2 -C 解壓後存放的目錄

 

 

 

 

 

 

 

 

做業:

1、英文和中文安裝LINUX;

2、寫出下面命令功能:

Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown

 

========================================================================================================================================================================================================================================

 

文本編輯器 vi 命令

1、文件內容編輯

文本編輯器的做用

建立或修改文本文件

維護 Linux 系統中的各類配置文件

Linux中最經常使用的文本編輯器

vi:類UNIX操做系統的默認文本編輯器。

vimvimvi文本編輯器(通常簡稱爲vi編輯器)的加強版本

vi vim

三種工做模式

命令模式、輸入模式、末行模式

不一樣模式之間的切換

 

 

I插入式

a追加式

o插入新行後進行編輯

 

命令模式的基本操做

光標移動

複製、粘貼、刪除

文件內容查找

撤銷編輯及保存退出

末行模式的基本操做

保存文件及退出vi編輯器

打開新文件或讀入其餘文件內容

文件內容替換

 

 

 

dw刪除一個單詞

保存退出:

 

 

 

 

:s/old/new/gc在同一行進行替換確認

:%s/old/new/gc

 

做業:

1、VI中進行復制粘貼、移動粘貼、單行查找替換、全文查找替換練習;

 

 

程序安裝及管理

1、應用程序基礎

將軟件傳到LINUX

yum install lrzsz

(注意:LINUX要能連入互聯網,ping www.qq.com

 

 

應用程序與系統命令的關係

文件位置

 系統命令:通常在/bin/sbin目錄中,或爲Shell內部指令

 應用程序:一般在/usr/bin/usr/sbin目錄中

主要用途

 系統命令:完成對系統的基本管理工做,例如IP配置工具

 應用程序:完成相對獨立的其餘輔助任務,例如網頁瀏覽器

適用環境

系統命令:通常只在字符操做界面中運行

應用程序:根據實際須要,有些程序可在圖形界面中運行

運行格式

系統命令:通常包括命令字、命令選項和命令參數

應用程序:一般沒有固定的執行格式

 典型應用程序的目錄結構

文件類型

保存目錄

普通執行程序文件

/usr/bin

服務器執行程序文件和管理程序文件

/usr/sbin

應用程序配置文件

/etc

日誌文件

/var/log

應用程序文檔文件

/usr/share/doc

應用程序手冊頁文件

/usr/share/man

 

 常見的軟件包封裝類型

文件類型

保存目錄

rpm軟件包 

擴展名爲「.rpm」

deb軟件包

擴展名爲「.deb」

源代碼軟件包

通常爲「.tar.gz」、「.tar.bz2」等格式的壓縮包,包含程序的原始代碼

綠色免安裝的軟件包

在壓縮包內提供已編譯好的執行程序文——解開壓縮包後的文件便可直接使用

 

Centos軟件包管理

rpm軟件包 

RPM

Redhat Package Manager

Red Hat 公司提出被衆多 Linux 發行版所採用

創建統一的數據庫文件

詳細記錄軟件包安裝、卸載等變化信息

自動分析軟件包依賴關係

RPM 軟件包

軟件素材參考http://www.rpm.org

通常命名格式:

 

 

 查詢已安裝的 RPM  軟件信息

rpm  -q[子選項]  [軟件名]

經常使用選項

 -qa-qi-ql-qf-qc-qd

Rpm qa查詢全部安裝的rpm軟件包

Rpm qi 查詢已安裝的某軟件包的信息

Rpm ql查詢已安裝的某軟件包安裝路徑

 

查詢未安裝的 RPM 軟件包文件中信息

rpm  - qp[子選項]  RPM包文件

經常使用選項

-qpi-qpl-qpc-qpd

 

使用rpm 命令只能查詢經過RPM方式安裝的軟件包信息用,其餘途徑安裝到系統中的軟件包,rpm 命令將沒法獲取相關信息

 安裝或升級RPM 軟件

rpm  [選項]  RPM包文件...

-i :在當前系統中安裝一個新的RPM軟件包

-e:卸載指定名稱的軟件包

-U:檢查並升級系統中的某個軟件包,若該軟件包原來並未安裝,曾等同於-i選項

-F:檢查並更新系統中的某個軟件包,若該軟件包原來並未安裝,則放棄安裝

-h:在安裝或升級軟件包的過程當中,#號顯示安裝進度

-v:顯示軟件安裝過程當中的詳細信息

--force:強制安裝某個軟件包,當須要替換已安裝的軟件包及文件,或者安裝一個比當前使用的軟件版本更舊的軟件時,可使用此選項

--nodeps:在安裝或升級,卸載一個軟件包時,不檢查與其餘軟件包的依賴關係

經常使用選項

 -i -U -F

安裝  升級  強制

-vh顯示安裝進度

rpm -ivh 軟件包

卸載指定的RPM軟件

rpm  -e  軟件名

 輔助選項

--force--nodeps-h-v

 重建RPM 數據庫

[root@localhost ~]# rpm --rebuilddb

 

[root@localhost ~]# rpm --initdb

 導入驗證公鑰

root@localhost ~]# rpm --import /media/cdrom/RPM-GPG-KEY-redhat-release

解決軟件包依賴關係方法

 

 安裝有依賴關係的多個軟件

 卸載有依賴關係的多個軟件

 忽略依賴關係

結合「--nodeps」選項,但可能致使軟件異常

 

 

 

源代碼編譯概述

 使用源代碼安裝軟件的優勢

得到最新的軟件版本,及時修復bug

根據用戶須要,靈活定製軟件功能

 應用場合舉例

安裝較新版本的應用程序時

當前安裝的程序沒法知足須要時 

須要爲應用程序添加新的功能時

 

源代碼編譯過程

 

―――――――――――――――――――下次講―――――――――――――――――――――――――

2、YUM安裝軟件

 

YUMYellow  dog Updater Modified

基於RPM包構建的軟件更新機制

能夠自動解決依賴關係

全部軟件包由集中的YUM軟件倉庫提供

軟件倉庫的提供方式

FTP服務:ftp://......

HTTP服務:http://......

本地目錄:file:///.......

 

RPM軟件包的來源

CentOS發佈的RPM包集合

第三方組織發佈的RPM包集合

用戶自定義的RPM包集合

 

構建CentOS 7 軟件倉庫

RPM包來自CentOS 7 DVD光盤

經過FTPHTTP或本地目錄提供給客戶機

在軟件倉庫中加入非官方RPM包組

包括存在依賴關係的全部RPM

使用createrepo工具創建倉庫數據文件

 

YUM緩存目錄

存放下載的軟件包、倉庫信息等數據

位於/var/cache/yum/$basearch/$releasever

[root@localhost ~]# yum clean all

 

 

 

爲客戶機指定YUM倉庫位置

配置文件/etc/yum.repos.d/*.repo

[root@localhost ~]# vi /etc/yum.repos.d/centos7.repo

[base]

name=CentOS 7.5

baseurl=ftp://192.168.4.254/centos7

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[other]

name=Other RPM Packages

baseurl=ftp://192.168.4.254/other

enabled=1

gpgcheck=0

 

直接以CentOS 7 光盤做軟件倉庫

1. CentOS 7 光盤放入光驅

2. 指定倉庫位置URL地址爲 file:///media/cdrom

[root@localhost ~]# vi /etc/yum.repos.d/local.repo

……

[local]

name=CnetOS 7.3      

baseurl=file:///media/cdrom

enabled=1

gpgcheck=0

 

 

 

 

關於yum命令

由軟件包yum-3.4.3-150.el7.centos.noarch提供

用來訪問YUM倉庫查詢、下載及安裝、卸載軟件包

yum的配置文件

基本設置/etc/yum.conf

倉庫設置/etc/yum.repos.d/*.repo

日誌文件/var/log/yum.log

查詢軟件包

yum list  [軟件名]...

yum info  [軟件名]...

yum search  <關鍵詞>...

查詢軟件包組

yum grouplist  [包組名]...

yum groupinfo  <包組名>...

安裝軟件

yum install  [軟件名]

yum groupinstall  <包組名>

升級軟件

yum update

yum groupupdate

卸載軟件

yum remove <軟件名>...

yum groupremove <包組名>...

 

yum安裝:

  1. 1.   yum源配置文件所在位置:/etc/yum.repos.d/

   注意:此目錄下有許多.repo的配置文件,能夠所有移走,而後本身建立一個XXX.repo的源文件

  1. 2.    編輯XXX.repo的源文件

   編輯內容:

  1. 1.              [名字] -------自定義
  2. 2.              Baseurl=file:///media  ------定義yum源倉庫爲光驅的掛載點
  3. 3.              enabled=1   -------0 :關閉源   1表示開啓源
  4. 4.              Gpgcheck=0  ------0:不去校驗包   1:校驗包效率低
  5. 3.       保存退出
  6. 4.       安裝命令

Yum install 包名

 

源碼包安裝:(須要gcc

  1. 1.       下載源碼包
  2. 2.       解壓源碼包

  tar zxvf 軟件名.tar.gz -C /解壓目錄  --------解壓壓縮文件到指定目錄裏面 

  1. 3.       配置

  ./configure --prefix=/軟件放置目錄   -------從新配置軟件安裝後文件存放的位置

  1. 4.       編譯

  Make    ---------從新編譯二進制

  1. 5.       編譯安裝

 Make install --------編譯安裝

 

 

 

 

做業:

1.圖示源代碼編譯安裝程序的基本過程,並寫出每一個過程的做用?

2.在執行「./configure配置時加「--prefix選項的做用是什麼?

3.安裝nload,監控本身服務器流量一分鐘內變化。

 

 

 

 

帳號和權限管理

一.  用戶和組帳號概述

用戶帳號

(一)用戶帳號分類:超級用戶普通用戶和程序用戶

     超級用戶:rootlinux中的默認的超級用戶,windows中的administrator相似,擁有至高無上的權限.(慎用) 平常事務處理建議使用普通用戶

 

普通用戶:是有管理員建立的用戶,權限有限,只對本身的家目錄擁有完整權限

 

程序用戶:安裝操做系統以及部分應用程序時,添加的一些低權限帳戶,這些用戶不能登陸系統

 

    

組帳號

   組帳號是一組用戶的集合.每個用戶至少屬於一個基本組(私有組),能夠同時屬於多個附加組

   組帳號的分類:基本組(私有組)和附加組(公共組)

UID

UID(用戶表示符):用戶的數字形式的惟一標識符 

rootUID0

程序帳號UID默認是1-499

普通用戶UID默認是500-60000

GID

GID(組帳戶標識符):組的數字形式的惟一標識符

root帳號的UID0

程序帳戶組GID:1-499

普通用戶組GID:500-60000

 

二.              用戶帳戶管理

(一)用戶帳號文件

與用戶帳戶相關聯的兩個文件是/etc/passwd/etc/shadow

/etc/passwd:保存用戶帳戶名稱,宿主目錄,登陸shell等信息

/etc/shadow:存放用戶密碼,帳號有效期等信息

(1)   Passwd文件格式解析Z

   全部用戶都有能夠訪問,可是隻有root才能夠更改.

root:x:0:0:root:/root:/bin/bash

Root

X

0

0

Root

/root

/bin/bsh

帳戶名稱

加密的密碼佔位符

用戶帳號的UID

用戶帳號的GID

用戶全名

宿主目錄

登陸後使用的SHELL

 

(2)   Shadow文件格式解析

  shadow文件又被稱爲影子文件」,存放帳號的信息和密碼,很是重要,嚴格控制訪問

 

root:$6$3uiu.ktWda5L4Zt6$wLH0GDH5I4uE0::0:99999:7:::

 

 

用戶帳號

使用sha-512加密後的密碼

上次修改密碼的時間,1970.1.1到最近一次修改時間的間隔天數

密碼的最短有效天數.0爲不限制

密碼的最長有效天數,默認爲99999,表示爲不限制

提早多少天警告密碼過時,默認爲7

在密碼過時後多少天禁用帳號

帳號失效時間,爲空表示帳號永久可用

保留字段備用

 

 

(二)添加修改刪除用戶帳號

(1)   useradd命令-----添加用戶帳戶

① Useradd 用戶名

Useradd zhangsan ---------建立用戶zhangsan

 

② Useradd 選項參數

-u:指定用戶的uid

-d:指定該用戶的家目錄

-e:指定用戶的失效時間(格式:yyyy-mm-dd)

-g:指定用戶的基本組名(或是GID)

-G:指定用戶的附加組名(或是GID)

-s:指定用戶的登陸shell

例如:useradd -d /admin -g jishubu -G root admin

解析:建立用戶admin 指定/admin目錄爲其家目錄將其加入jishubu基本組,同時屬於root附加組

(2)   Passwd命令-----爲帳戶設置密碼

Passwd 用戶名  ------------給指定用戶設置密碼

新密碼:  ---- ----過於簡單會提示,可是可使用

確認密碼:

Passwd選項:

-d:清空指定用戶密碼

Passwd -d aa  -------清空aa用戶的密碼

-l:鎖定用戶帳戶

-S:查看用戶狀態(是否被鎖定)(大寫)

-u:解鎖用戶

 

 

 

(3)   usermod命令----修改已存在用戶帳號屬性

 Usermod是對已經存在的用戶設置各類屬性

usermod命令選項:

-u:修改用戶的UID

-d:修改用戶的宿主目錄位置

-e:修改用戶的帳戶失效時間

-g:修改用戶的基本組

-G:修改用戶的附加組

-s:指定用戶的登陸shell

 

-l:更改用戶帳戶的登陸名(usermod -l 新名稱舊名稱)

-L:鎖定用戶帳戶

-U:解鎖用戶帳戶

(4)   userdel命令------刪除用戶帳戶

  Userdel 用戶名   ------刪除指定用戶

  Userdel命令選項:

-r:刪除用戶是連同家目錄一塊兒刪除

 

 

三.             用戶帳號的初始配置文件

添加一個用戶後,useradd命令會在該用戶的宿主目錄中創建一些初始配置文件,這些文件都是隱藏的.

文件包括三個:

1. .bash_logout ----文件中的命令將會在每次退出登陸時執行

2. .bash_profile  -----文件中的命令將會在用戶每次登陸時被執行

3. .bash_bashrc   -----文件中的命令將會在每次加載bash時候執行

/etc目錄下也有bashrc這個文件,這裏面的文件是面對全部用戶(全局配置)

 

 

 

 

 

 

四.  組帳號管理

(1)   組帳號文件

  與組行號相關的兩個文件:/etc/group/etc/gshadow

/etc/group:存放組帳號名稱,GID,組成員

/etc/gshadow:存放組帳號的密碼字符串等信息(不多用)

Grep 「^root」 /etc/group

(2)   添加管理刪除組帳號

① Groupadd命令----添加組帳號

   Groupadd jishubu  ------------建立技術部組

② Gpasswd命令-----添加設置刪除組成員

   Gpasswd -a zhangsan root   ---------zhangsan加入root

   Gpasswd -d zhangsan root   ---------zhangsanroot組裏刪除

   Groups 用戶名   -----------------查看指定用戶的所屬組狀況

  Gpasswd -M aa,bb,cc,dd jishubu  -------------aa bb cc dd 四個用戶同時加入jishubu

③ Groupdel命令-----刪除組帳號

  Groupdel jishubu  --------------刪除jishubu

 

 

 

五.  查詢帳號信息

  1. 1.              groups命令-----查詢用戶帳號所屬的組

  Groups zhangsan  -----查詢張三同時屬於那些組

  1. 2.              Id  -------查詢用戶帳戶的身份標識

  Id root --------查詢用戶rootID信息

  1. 3.              finger命令  -------查詢用戶帳戶的登陸屬性

   Finger root  ------查詢用戶root的登陸屬性

  1. 4.              w命令--------查詢當前主機的用戶登陸狀況

 

管理文件和目錄的屬性

一.  查看目錄和文件屬性

ls -ld 目錄名   -----------查看指定目錄的屬性信息

Ls -ld 目錄1 目錄2  --------查看多個目錄的屬性信息

drwx-xr-x.

d

rwx

r-x

r-x

.

表示文件類型

(-:文件  d:表示目錄 l:表示鏈接文件)

文件的屬主用戶權限

文件屬組用戶的權限

該文件其餘任何用戶權限

SElinux權限

 

權限劃分:

r:讀取權限(查看文件內容) ----------數字」4」表示

W:寫入權限(修改權限)------------數字」2」表示

X:執行權限(程序或是目錄的雙擊打開權限)   ------數字」1」表示

 

普通沒法訪問/etc/shaw文件  ls -l /etc/shadow

 

二.  設置目錄和文件的權限

Chmod [ugoa] [+-=] [rwx] 文件/目錄   -------調整權限的命令格式

u:文件屬主

G:文件屬組

O:其餘用戶

a:表明全部人(a=u+g+o)

Chmod u+w aa.txt ---------aa.txt文件的屬主增長寫入權限

 

Chmod [][][] 文件/目錄   -------數字的方式來設置權限

7=4+2+1  -------7就是r+w+x 讀寫執行權限(徹底控制)

5=4+1   --------5就是讀和執行(只讀)

Chmod 755 aa.txt   -------aa.txt文件的權限設置爲屬主是7 屬組是5 其餘用是5

Chmod命令選線:

-R:權限遞歸

Chmod -R 755 /pub  -------/pub目錄權限設置爲755,同時遞歸此目錄下的全部對象

三.  設置目錄和文件的歸屬

文件和目錄的歸屬就是屬組和屬主

Chown 屬主:屬組文件/目錄  ---------更改指定目錄的屬主和屬組

Chown 屬主文件/目錄   ----------更改指定目錄的屬主

Chown zhangsan:jishubu aa.txt  ------aa.txt文件的屬主改成zhangsan 屬組改成jishubu

Ls -l aa.txt  ------查看驗證文件的屬主和屬組是否改變

 

 

=================================================================================================================================================================================================

磁盤和文件系統管理

1、磁盤管理及分區

1.  檢測並確認新磁盤

   fdisk -l --------查看系統中硬盤設備及分區狀況

 

A:部分展現的是sda 系統的第一個磁盤以及分區狀況

B部分展現的是sdb 系統的第二個磁盤及分區狀況

C部分展現的是lvm磁盤分區狀況

解析:

:磁盤總容量爲42949672960bytes  1k=1024b

:磁盤總共劃分的扇區數量

:磁盤劃分的每一個扇區大小爲512b

 

磁盤相關概念:

磁盤片面和磁頭

硬盤中通常會有多個盤片組成,每一個盤片包含兩個面,每一個盤面都對應地有一個讀/寫磁頭。受到硬盤總體體積和生產成本的限制,盤片數量都受到限制,通常都在5片之內。盤片的編號自下向上從0開始,如最下邊的盤片有0面和1面,再上一個盤片就編號爲2面和3面。

 

 

 

磁盤的數據單位:

  1. 1.              磁道(track)

下圖顯示的是一個盤面,盤面中一圈圈灰色同心圓爲一條條磁道,從圓心向外畫直線,能夠將磁道劃分爲若干個弧段,每一個磁道上一個弧段被稱之爲一個扇區(圖踐綠色部分)。扇區是磁盤的最小組成單元,一般是512字節。(因爲不斷提升磁盤的大小,部分廠商設定每一個扇區的大小是4096字節)

 

磁盤容量計算

存儲容量磁頭數 × 磁道(柱面) × 每道扇區數 × 每扇區字節數

3中磁盤是一個 3個圓盤6個磁頭,7個柱面(每一個盤片7個磁道)的磁盤,圖3中每條磁道有12個扇區,因此此磁盤的容量爲:

存儲容量 6 * 7 * 12 * 512 = 258048

每一個磁道的扇區數同樣是說的老的硬盤,外圈的密度小,內圈的密度大,每圈可存儲的數據量是同樣的。新的硬盤數據的密度都一致,這樣磁道的周長越長,扇區就越多,存儲的數據量就越大。

 

  1. 2.              柱面(cylinder)

繞馬達旋轉軸旋轉的多個磁盤,每一個磁盤有兩個盤面(片),每一個盤面裏有多個磁道(Track)。多個磁盤上相同大小的磁道在豎直空間上構成了一個柱面,相似於相同大小的一堆呼啦圈(磁道)從腳套到頭,視覺上構成了一個空心筒(柱面)硬盤一般由重疊的一組盤片構成,每一個盤面都被劃分爲數目相等的磁道,並從外緣的「0」開始編號,具備相同編號的磁道造成一個圓柱,稱之爲磁盤的柱面。磁盤的柱面數與一個盤面上的磁道數是相等的。因爲每一個盤面都有本身的磁頭,所以,盤面數等於總的磁頭數。以下圖

 

  1. 3.              磁頭

磁頭的質量影響整個磁盤的性能,只有精密的磁頭才能在高轉速和高密度磁盤工做的狀況下高效正確的讀寫數據

  1. 4.              扇區

事實上僅把數據分爲磁道,還不能達到細分數據區的目的(一個磁道中的數據容量仍是至關大,即便是最內圈最小的磁道也是同樣),所以咱們再把磁道分爲許多的扇區。因爲內圈磁道的數據容量較少,所以內圈磁道所分割出來的扇區數碼會比外圈磁道要少。扇區是磁盤上能讀取數據的最小單位,大小爲 512Bytes,也就是說 1 個 Byte 的文件,不管如何都要佔據一個扇區的大小,不管這個扇區的數據量是 2KB 仍是 16KB 都是同樣。每一個扇區內部的數據被視爲連續的數據,所以實際存取時,須要再指定扇區中數據的地址,就能夠找到所須要的數據

補充:

硬盤在Linux中的表示

Linux 的全部設備都被抽象爲一個文件,保存在 /dev 目錄下。

根據接口能夠分爲:IDE、SATA、SAS、SCSI、USB。

硬盤名稱通常爲:設備類型 + [a-z],其中 [a-z] 表示第幾塊硬盤。

IDE 硬盤的名稱通常是:hd[a-z]。SATA 硬盤、SAS 硬盤、SCSI 硬盤和 USB 硬盤的名稱通常爲:sd[a-z]。例如,第一塊 SATA 硬盤名爲 /dev/sda,第二塊 SATA 硬盤名爲 /dev/sdb,以此類推...

分區

把一塊硬盤的磁盤邏輯地分爲幾個區,每一個區看成獨立磁盤,以方便使用管理。

不一樣的分區用:「設備名 + 分區號」來表示,如第一塊 SATA 硬盤的兩個分區 sda1,sda2。

主流的分區機制有 MBR 和 GPT。

MBR(Master Boot Record,主引導記錄)

MBR 是傳統的分區機制,應用於絕大多數使用 BIOS 引導的 PC 設備(蘋果使用EFI的方式)

MBR 支持 32 位和 64 位的操做系統 MBR 支持的分區數量有限 MBR 支持不超過 2T 的硬盤,超過 2T 的硬盤只能使用 2T 空間(有第三方解決辦法),由於MBR的尋址空間只有 32 位長 MBR 結構:

佔用硬盤最開頭的 512 字節,即 0 柱面 0 磁道 1 扇區。前 446 字節是引導代碼,不一樣操做系統的引導代碼不同。而後是 4 個 16 字節的主分區表信息。最後 2 個字節 55 AA,是操做系統的啓動標識。

MBR 分區:

主分區:最多隻能建立 4 個主分區。

擴展分區:一個擴展分區佔用一個主分區位置。

邏輯分區:邏輯分區是基於擴展分區建立出來的。Linux 最多支持 63 個 IDE 分區和 15 個 SCSI 分區。

GPT(GUID Partition Table,全局惟一標識分區表)

GPT 是一個較新的分區機制,解決了 MBR 的不少缺點。

GPT 支持超過 2T 的硬盤 GPT 向後兼容 MBR GPT 分區必須使用 64 位的系統 Mac、Linux 系統都支持 GPT 分區 Windows7 64位、WindowsServer2008 64位支持 GPT 分區

 

Device

Boot

Start

End

Blocks

ID

system

分區設備文件名稱

是不是引導分區

*表明是引導分區

該分區在硬盤中開始柱面位置

該分區在硬盤中結束柱面位置

,最小的存儲單位,默認每一個塊大小爲1024字節

這裏指該分區總共劃分了多少個塊

 

 

分區對應的文件系統ID

83:XFS系統

8E:表示lvm邏輯卷

82:表示swap

86:表示ntfs

分區類型

 

磁盤塊/簇(虛擬出來的)。塊是操做系統中最小的邏輯存儲單位。操做系統與磁盤打交道的最小單位是磁盤塊。
通俗的來說,在Windows下如NTFS等文件系統中叫作簇;在Linux下如Ext4等文件系統中叫作塊(block)。每一個簇或者塊能夠包括248163264…2n次方個扇區。

爲何存在磁盤塊?

讀取方便:因爲扇區的數量比較小,數目衆多在尋址時比較困難,因此操做系統就將相鄰的扇區組合在一塊兒,造成一個塊,再對塊進行總體的操做。

分離對底層的依賴:操做系統忽略對底層物理存儲結構的設計。經過虛擬出來磁盤塊的概念,在系統中認爲塊是最小的單位。

  1. 1.      扇區:硬盤的最小讀寫單元
  2. 2.   /簇:是操做系統針對硬盤讀寫的最小單元

 

2.規劃磁盤中的分區

Fdisk /dev/sda   -------------對指定硬盤分區

進入交互式分區管理界面:

交互操做指令以下:

P:列出磁盤中的分區狀況

 

n:新建分區

分區包括:主分區\擴展分區\邏輯分區(主分區+擴展分區<=4)

選擇分區類型:

------p:主分區

 

-----e:擴展分區

 

------l:建立邏輯分區 (注意:只有在有擴展分區的狀況下,纔會出現l選項,建立邏輯分區)

 

d:刪除分區

 

wq   ---------fdisk分區工具

W:保存寫入

q:退出分區工具

當磁盤的分區發生變化後,最好是重啓或是執行partprobe /dev/sdb

Partprobe:使操做系統從新檢測分區變化,若是不執行,可能會出現格式化時損壞數據,嚴重致使系統崩潰.

 

管理文件系統

建立文件系統

  1. 1.       mkfs

mkfs是一個前端工具,自動加載不一樣的程序來建立的各類不一樣的文件系統.

mkfs後端包括不少的相關命令,命令程序位於/sbin/目錄中

ls /sbin/mkfs.*

 

mkfs命令的使用格式:mkfs -t 文件系統類型分區設備

系統文件對比:

 

文件系統類型

優勢

缺點

Ext3:第三代擴展文件系統

Ext4:第四代擴展文件系統

1EB=1024PB

1PB=1024TB

Ext3(linux 5默認系統文件)

帶有fsck 效率低

支持32000個目錄

 

Ext4(linux6默認系統文件)

相對3 帶有fsck 效率高

對目錄的支持無限制

最大支持文件系統容量爲1EB,文件容量爲16TB

 

Xfs:高性能日誌文件系統

Xfs(linux7默認系統文件)

最大支持8EB文件系統容量

 

(1)   建立xfs文件系統

mkfs -t xfs /dev/sdb1   ---------sdb1分區格式化爲xfs文件系統

mkfs.xfs /dev/sdb1

(2)   建立Ext4文件系統

Msfs -t ext4 /dev/sdb2

mkfs.ext4 /dev/sdb2

(3)   建立fat32文件系統

mkfs -t vfat -F 32 /dev/sdb7

mkfs.vfat -F 32 /dev/sdb7

 

  1. 2.       mkswap

/dev/sdb8建立swap文件系統

(1) mkswap /dev/sdb8 -----建立swap交換分區

(2) Swapon /dev/sdb8  -----啓用swap分區

Swapoff /dev/sdb8   ------關閉swap分區

註釋:swap分區大小應該是物理內存的1.5-2  如今內存足夠能夠不使用交換分區

 

 

 

掛在卸載文件系統

臨時掛載

  1. 1.       掛在文件系統

(1)   mount (-t 文件系統設備名稱

掛載mount命令的使用格式,文件系統可省

例如: mount /dev/sr0 /media  --------將光驅掛載到/media (sr0 cdrom都表明光驅)

 =mount /dev/cdrom /media

(2)   掛載.iso文件,能夠直接查看.iso壓縮文件的內容

mount -o loop /dev/CentOS-7.5-x86_64-DVD-1804.iso /media

-o loop:iso文件視爲一種特屬的迴環文件系統

  1. 2.       卸載文件系統

Umount 掛載點或是設備名稱   -------卸載掛載點的命令格式

例如:umount /dev/sr0 -------------卸載掉光盤的掛載點

=umount /dev/media

=umount /dev/sr0 /media

      Mount 查看掛載狀況

 

永久掛載  -------經過修改mount配置文件的方式永久掛載

  1. 3.       設置文件系統的自動掛在

/etc/fstab  ----------(mount的配置文件)永久掛載的配置文件

Vim /etc/fstab文件格式

/dev/sdb1

/media

Xfs

Defaults

0

0

 

設備名

掛載點

文件系統類型(:xfs swap)

掛載參數

(是否在-o

)

文件系統是否dump備份 1表示須要 0表示不須要

系統啓動時檢查磁盤的順序

0:不檢查

1:檢查(根分區)

2:其次檢查(其餘分區)

 

 

  1. 4.       查看磁盤的使用狀況

df -Th  ------查看磁盤的使用狀況

-T:顯示文件系統類型

-h:以友好的顯示單位來顯示

 

 

========================================================================================================================================================

LVM邏輯卷和磁盤配額

LVM邏輯卷

1、LVM概述

1.LVMlinux操做系統下一種邏輯管理磁盤分區的機制,能夠在保持現有數據不變的狀況下動態調整磁盤的容量.

2.LVM的基本術語

(1)PV(physical volume物理卷)

① 物理卷是LVM的基本存儲設備.

② 建立物理卷時會在分區或是磁盤的頭部建立一個保留區塊,用於記錄LVM的屬性,       並把存儲空間邏輯分割成默認4MB大小的基本單元(PE)從而構成物理卷

③ 將普通分區/dev/sdb1轉成物理卷是須要先將分區類型ID改成8e

 

 

 

(2)VG(volume group 卷組)

卷組是一個或多個物理卷的集合

在卷組內能夠動態添加或是刪除物理卷

卷組的名字能夠自定義

 

 

(3)LV(logical volume 邏輯卷)

邏輯卷是在卷組上邏輯劃分的卷,與物理卷沒有關係

將邏輯卷的空間安裝文件系統,掛載到掛載點就可使用,至關於普通分區

普通分區和邏輯分區的建立使用過程對比:

 

 

2、LVM管理命令

命令總結:

功能

物理卷管理

卷組管理

邏輯卷管理

Scan 掃描

pvscan

vgscan

lvscan

Create 創建

pvcreate

vgcreate

lvcreate

Display顯示

pvdisplay

vgdisplay

lvdisplay

Remove 刪除

pvremove

vgremove

lvremove

Extend 擴展

 

vgextend

lvextend

Reduce 減小

 

vgreduce

lvreduce

(1)   物理卷管理

①  pvsan  -------掃面全部的物理卷

 

解析:/dev/sda2普通分區已經轉爲PV  屬於centos 這個VG  總空間是39G

     總共1PV  1PV正在使用    0PV不屬於VG

②  pvcreate  -----將分區或是整個硬盤轉爲物理卷

Pvcreate /dev/sdb1 sdb2 sdb5  -------將這三個分區轉爲PV,爲建立VG作準備

 

解析:提示已經成功將這三個普通分區轉爲PV物理卷

 

③  pvdisplay   -----顯示物理卷的詳細信息

pvdisplay

 

解析:三個分區已經轉爲PV,待用PV空間pvsize爲分區的物理空間

④  pvremove  -----將物理卷還原爲普通分區

Pvremove /dev/sdb5   ------/dev/sdb5轉爲普通分區

 

 

 

 

 

(2)   卷組管理

①  vgscan  ----掃描系統中已經創建的lvm卷組

②  vgcreate ----將一個或是多個已存在的物理卷建立爲一個卷組

 

解析:

先掃描有哪些PV  pvscan命令

建立VG組名爲:new_vgzu 並把sdb1,2,5三個PV加入到VG組內(VG組的空間=三個PV的總空間)

 

Vgcreat -s 16M vgzu /dev/sdb{1,2,5} ----建立vgzu(vg組的組名)並將sdb1 sdb2 sdb5三個pv加入VG並指定大小爲16MB}

③  vgdisplay    -----查看系統中卷組的詳細信息

 

④  Vgremove   ----刪除指定卷組

Vgremove new_vgzu   -------刪除名爲new_vgzu這個VG

⑤  Vgextend -----擴展卷組的磁盤空間--擴展卷組的空間的方式就是往裏添加PV

Vgextend 組名 PV設備名 

例如: vgextend new_vgzu /dev/sdb6 ------/sdb6這個PV擴展到已存在的VGnew_vgzu

(3)   邏輯卷管理

 VG組是把多個PV空間彙總到VG,而後將VG組劃分紅LV,才能夠建立文件系統,掛載使用.

VG組分割LV:

① Lvscan   ---------掃描已存在的LV邏輯卷

② Lvcreate  ------VG組建立LV

1)  格式:lv create -L 空間 -n 名稱 VG組名

例如:lvcreate -L 10G -n games new_vgzu  -----new_vgzu中建立一個10G空間的名叫gamesLV邏輯卷(也就是分區)

 

 

③ Lvdisplay------顯示邏輯卷的詳細信息

Lvdisplay

 

 

④ Lvextend-----用於在不損壞數據的狀況,動態擴展邏輯卷的空間.

lvextend -L +空間 /dev/vg/邏輯卷

例如:lvextend -L +1G /dev/new_vgzu/games --gamesVG組內增長1G空間

例如:lvresize -L -1G -f /dev/new_vgzu/games  -----減掉games1G 的空間

         =lvreduce -L -1G -f /dev/new_vgzu/games

 

⑤ Lvremove

LVremove /dev/new_vgzu/games -----刪除games這個LV

3、LVM 的應用

公司準備在Internet中搭建FTP服務器(CentOS 7.3平臺),面向全國各地的員工及部分VIP客戶提供資料上傳下載的空間。考慮動態擴容的須要,計劃增長兩塊40GSCSI硬盤並構建LVM邏輯卷(用xfs文件系統掛載到/date目錄下)專門用於存放郵件數據

(1)   關閉服務器,增長兩塊硬盤

(2)   開啓服務器,執行fdisk -l查看是否識別到新加的兩塊磁盤(sdb sdc)

(3)   建立普通分區 /dev/sdb1 /dev/sdc1,(fdisk )並查看是否已經建立成功.(fdisk -l /dev/sdb /dev/sdc)

(4)   將普通分區轉換爲PV(pvcreate 分區名)

(5)   將兩個物理卷整合爲VG組名爲ftp_vg (vgcreat 組名 pv)

(6)   ftp_vg組建立爲ftpLV (lvcreate -L 空間 -n lv名稱 vg組名)

(7)   ftp邏輯卷格式化(mkfs.xfs lv全名)

(8)   建立/date目錄

(9)   ftp邏輯卷(lv)掛載到/date  (vim fstab或是mount)

(10)            查看結果 df -Th

 

 

 

=

 

磁盤配額

(一) 實現磁盤限額的條件

  1. 1.       須要 Linux 內核支持(7.0linux內核已經定製支持磁盤配額功能)
  2. 2.      安裝 xfsprogs quota 軟件包(磁盤配額管理工具)
  3. 3.      注意:xfs文件系統使用的是xfsgrogs工具中的xfs_quota(配額管理程序)管理

Ext3/4文件系統使用的是quota(配額管理程序)管理

(二) 磁盤配額的特色

1. 做用範圍

   針對指定的文件系統分區

2. 限制對象

① 用戶帳號

② 組帳號

3. 限制類型

① 磁盤容量限制(默認單位爲KB)

② 文件數量

4. 限制方法

① 軟限制 -----超過限制條件,系統會給出警告信息(寬限期,寬限期內能夠超出限制,繼續使用,超過寬限期,只能減,不能加)

② 應限制-------超過限制條件,系統會給出警告信息,並禁止繼續寫入數據

③ 硬限制的值應該大於軟限制的值,不然軟限制無效.

(三) 磁盤配額的管理步驟

 

(四) 磁盤配額的操做命令

  1. 1.       掛載文件系統,並添加usrquotagrpquota的支持.

Usrquota:用戶配額功能   grpquota:組配額功能

(1)   臨時掛載,添加usrquotagrpquota的支持.

Mount -o usrquota,grpquota /dev/new_vgzu/games /date

臨時掛載games(Lv)/date(目錄),並讓該文件系統支持用戶和組配額

掛載後將/date放開權限,以便測試  chmod 777 /date

(2)   自動掛載,添加usrquotagrpquota的支持.

Vim /etc/fstab

/dev/mapper/new_vgzu-games /date xfs defaults,usrquota,grpquota 0 0

Wr

 

 

  1. 2.      編輯用戶和組帳號的配額設置

(1)   編輯配額使用命令:xfs_quota

(2)  命令格式:

xfs_quota -x -c 'limit-ubsoft=N  bhard=Nisoft=N  ihard=N  用戶名'掛載點

xfs_quota:關鍵字命令,表示編輯配額

-x:啓動專家模式,才能夠加-c

-c:表示直接調用管理命令,後面加的是調用的指令

‘’:引號裏面就是-c的指令內容

Limit :限制

   -u:用戶(限制的對象類型:u:用戶  g:組)

   用戶名:具體對象的用戶名

   bsoft和bhard:磁盤容量的軟硬限制

   Isoft和ihard:文件數量的軟硬限制

   掛載點:實現配額的目錄

例如:xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=40 ihard=50 zhangsan’ /games/

解析:對/date啓用磁盤配額,限制用戶zhangsan對/date目錄空間使用80M會有系統提示,使用到100M時,zhangsan將不能再存數據,限制zhangsan使用文件存40個文件時,系統就提示警告,存到50個文件將不能再存放文件.

 

注意:不要給管理員配置磁盤配額,不然會影響系統的運行

  1. 3.       驗證磁盤配額的功能

(1)   dd轉換工具(驗證block(磁盤空間))

dd if=/dev/zero of=/date/ddtest.data bs=1M count=4

If=輸入源(/dev/zero無窮大數據)

Of=輸入目的(用來測試的存放數據的目錄)

bs=輸入每一個數據塊的大小

Count=輸入數據塊的數量

因此:

dd if=/dev/zero of=/date/ddtest.data bs=1M count=4

解析:向用來測試的/dat目錄中輸入數據塊,每一個塊大小爲1M,輸入4,至關於往/date目錄中模擬存放4M的數據文件,來測試配額.

 

(2)   手動建立

建立指定數量的文件:使用 touch 命令,或 cp 命令

建立指定容量的文件:使用 dd 命令,或 cp 命令

 

 

 

 

 

  1. 4.       查看配額使用狀況

xfs_quota -x -c report選項掛載點   ----查看配額使用狀況命令格式

① report選項:

② -a:查看全部分區的配額狀況

 

寬限期:軟限制能夠超出,可是過了寬限期後就不能再寫入數據,只能刪除,直到佔用空間降到軟限制如下。

 

③ -u:查看指定目錄的用戶配額狀況

 

④ -g:查看指定組的配額狀況

 

⑤ -i:查看指定目錄的磁盤配額狀況

 

 

 

 

 

 

⑥ -b:查看指定目錄的文件輸出狀況

 

 

例如:

Xfs_quota -x -c ‘report -aib’  -----查詢系統中全部用戶和組的空間和文件配額

 

 

 

 

進程和計劃任務管理

1、概念理解

1.程序:保存在外部存儲介質(如硬盤)中的可執行機器代碼和數據的靜態集合

2.進程:cpu及內存中處於動態執行的計算機程序

3.程序和進程關係:

每一個程序啓動後能夠建立一個或是多個進程.

進程是實現程序功能服務的實現過程和體現形式.

網站服務--------httpd程序------多個進程來接受和處理用戶請求

 

2、查看進程

瞭解系統中進程的狀態是對進程管理的前提,使用不一樣的進程多角度查看進程狀態

1.ps命令-------查看靜態的進程統計信息(processes statistic)

(1)Ps命令是最經常使用的進程查看工具,用於顯示當前運行的個進程完整信息的靜態快照

(2)Ps命令選項:

a:顯示當前終端下全部用戶的全部進程信息

u:使用以用戶爲主的格式輸出進程信息.

x:顯示當前用戶所在終端下的進程信息

-e:顯示系統內的全部進程信息

-l:使用長格式顯示進程信息

-f:使用完整的格式顯示進程信息

(3)經常使用PS命令組合

Ps aux------以簡單列表的形式顯示出進程信息

 

 

USER               用戶 

PID                  進程號 

%CPU              執行命令時候進程佔用的CPU百分比

%MEM             執行命令時候進程佔用的CPU百分比

VSZ                  虛擬內存集(swap空間大小)         

RSS                  常住內存集

TTY                   終端號 

STAT              當前進程狀態

             Rruning 運行態 

             S:可中斷睡眠態 (休眠狀態)

             D:不可中斷睡眠態

             T:中止態

             Z:僵死進程

             s:表示這個進程是個領導者進程(父進程)

             +:該進程爲後臺進程

             l:該進程是多線程進程

            N:低優先級進程

            <:高優先級進程 

            []:表示這個一個內核線程

START   啓動日期

TIME        啓動時間

COMMAND 執行的命令

 

 

Ps -lef-----長格式顯示系統中的進程信息,內容更豐富完整.

Ps

Ps 不加任何選項表明查詢當前用戶會話中打開的進程

Ps 結合管道符」|」

Grep aux | grep 進程名  -------過濾vim這個程序的狀態

 

 

2.Top

Top:動態實時顯示進程狀態信息(每一個3s 刷新進程狀態)

 

解析:

 

當前時間系統已運行時間當前登陸用戶數  最近5\10\15分鐘平均負載

load average:0.24, 0.15, 0.19 — load average後面的三個數分別是5分鐘、10分鐘、15分鐘的負載狀況

   

主要看id空閒百分比  部分判斷cpu是否忙

 

物理內存使用率(單位是k)

 total — 物理內存總量,  used — 使用中的內存總量, free — 空閒內存總量,buffers — 緩存的內存量

 

top命令模式下的交互命令:

① M:根據內存佔用狀況進行排序

② N進程按照啓動時間進行排序

③ h:得到top命令的在線幫助

④ q:正常退出top程序

⑤ K:結束進程交互界面,輸入pid結束對應進程

 

PID進程id

USER進程全部者的用戶名

PR優先級

NI nice值。負值表示高優先級,正值表示低優先級

VIRT進程使用的虛擬內存總量,單位kbVIRT=SWAP+RES

RES進程使用的、未被換出的物理內存大小,單位kbRES=CODE+DATA

SHR共享內存大小,單位kb

S進程狀態。(D=不可中斷的睡眠狀態,R=運行,S=睡眠,T=跟蹤/中止,Z=殭屍進程)

%CPU上次更新到如今的CPU時間佔用百分比

%MEM進程使用的物理內存百分比

TIME+進程使用的CPU時間總計,單位1/100

COMMAND命令名/命令行

3.pgrep

程序管理中對PID的查詢使用比較多,好比結束一個進程須要先知道其PID,而後在殺死,Ps 查詢指定程序PID的時候須要用過濾才能查看

Grep 能夠直接查看指定程序的PID信息,相對比較方便.

 

Pgrep  選項  --------pgrep使用的命令格式

Pgrep -l 程序名稱   -----查詢指定程序的PID

Pgrep -u 用戶名 ------查詢指定用戶的全部進程ID

 

4.pstree

pstree命令能夠輸出linux系統中各類進程的樹形結構,更好判斷進程之間的關係(父子進程)

-a:列出完整命令信息

-u:列出對應的用戶名

-p:列出對應的PID

Pstree -aup -----查看系統的進程樹,包括進程對應的PID 用戶名完整命令

 

 

 

 

Pstree -ap   ------查看指定用戶的進程樹信息

 

 

3、控制進程

1.啓動進程

(1)手動啓動進程

&(放在執行命令後面) ---將該執行命令放到後臺執行

(2)調度啓動進程

at------一次性計劃啓動進程

Crontab  ------週期性計劃啓動進程

 

 

2.改變進程的運行方式

(1)掛起當前的進程

Ctrl+Z(快捷鍵) ------將前臺的任務調入後臺暫停運行

(2)查看後臺的進程

Jobs -l

 

(3)將後臺的進程恢復運行

bg 任務編號  ------將指定的後臺暫停程序在後臺繼續執行

fg 任務編號  -------將制定的後臺暫停程序調入前臺繼續執行

 

 

3.終止進程執行

(1)Ctrl + c -------強制中斷正在執行或是未執行完的命令

(2)Kill  ----終止進程(kill命令給指定PID程序發出正常退出信號,如不能正常退出 -9強制退出)

Pgrep -l 程序名  -------獲得指定進程的PID

Kill PID  --------正常退出PID對應的進程

Kill -9 PID -------不能正常退出的程序,-9強制殺死

(3) Killall  進程名稱-------退出同一個程序的多個進程

(vim aa.txt  vim bb.txt vim cc.txt    killall vim)

Killall -9 vim ------強制殺死指定進程

(4) Pkill ----終止進程

Pkill能夠根據指定的用戶進程名終端所運行的程序進行終止

Pgrep -l -U 「zhangsan」 --------查看指定用戶執行的進程

Pkill -9 -U 「zhangsan」 -------強制關閉zhangsan用戶的進程

 

 

4、計劃任務管理

1.at一次性任務設置

(1)at命令設置的計劃任務是在指定時間點執行一次

(2)必須開啓atd系統服務

 

(3)執行at一次性計劃的時間以系統時間爲準,必須在系統時間以後,不然沒法正確設置.

(4)命令

date ----查看系統時間日期

At 10:35 2019-02-21  -------建立10:354 2019-02-21時間點的計劃任務

At>tail -2 /etc/passwd > /top.txt (‘>’  ‘>>’)

  Crtl+d ------結束計劃任務配置

驗證結果

  Cat /top.txt

(5) atq -----查看未執行的一次性計劃任務

 

(6) atrm 計劃任務編號  ------刪除指定未執行的一次性計劃任務

(7) at 時間 ------常見當天的一次性計劃任務(沒有帶日期就表示當天)

 

 

 

2.crontab週期性任務計劃設置

(一)計劃任務管理 crond

  • crontab命令

–    按照預先設置的時間週期(分鐘、小時、天……)重複執行用戶指定的命令操做

–    屬於週期性計劃任務

–    主要設置文件

  •  全局配置文件,位於文件:/etc/crontab
  •  系統默認的設置,位於目錄:/etc/cron.*/
  •  用戶定義的設置,位於文件:/var/spool/cron/用戶名
  • 管理cron計劃任務

–    編輯計劃任務

  • crontab  -e  [-u  用戶名]  編輯計劃任務
  • crontab  -l [-u  用戶名]   列出查看計劃任務
  • crontab  -r  [-u  用戶名]  清空計劃任務

crontab 任務配置的格式

 

  • 時間數值的特殊表示方法

–    *    表示該範圍內的任意時間

–    ,    表示間隔的多個不連續時間點

–    -    表示一個連續的時間範圍

–    /     指定間隔的時間頻率

  • 應用示例

–    0  17  *  *  1-5         週一到週五天天17:00

–    30  8  *  *  1,3,5      每週1、3、五的8點30分

–    0  8-18/2  *  *  *      8點到18點之間每2小時

–    0  *  */3  *  *      每3天

 

 

 

  1. 1.       天天早上05:29自動開啓防火牆服務

29 05 * * * /usr/bin/systemctl start firewalld.service

  1. 2.       每一個隔7天清空/ftproot/tmp

0 0 */7 * * /usr/bin/rm -rf /ftproot/tmp/*

  1. 3.       每週一23:59重啓服務器

59 23 * * 1 /usr/sbin/reboot

  1. 4.       每週一五下午23:30 使用tar命令壓縮/ftp/root目錄爲ftproot.tar.gz

30 23 * * 1,3,5 /usr/bin/tar zcvf ftproot.tar.gz /ftp/root

 

 

 網絡管理

 

1、ip地址管理

hostnamectl set-hostname  s1.test.com ------查看更改主機名

 

 

nmcli general hostname s1.test.com

Nmtui

用nmcli命令配置網絡

NetworkManager是管理和監控網絡設置的守護進程,設備既就是網絡接口,鏈接是對網絡接口的配置,一個網絡接口能夠有多個鏈接配置,但同時只有一個鏈接配置生效。

1 配置主機名

CentOS6 以前主機配置文件:/etc/sysconfig/network

CentOS7主機名配置文件:/etc/hostname,默認沒有這個文件,經過DNS反向解析獲取主機名,主機名默認爲:localhost.localdomain

顯示主機名信息

hostname

hostnamectl status

建立並修改文件並生效

hostnamectl set-hostname deskX.example.com

1

2

3

4

5

[root@centos73 ~]# hostnamectl set-hostname centos7.3.com

[root@centos73 ~]# hostname

centos7.3.com

[root@centos73 ~]# cat /etc/hostname

centos7.3.com

能夠看到已經修改爲功。

刪除文件。回覆默認主機名localhost.localdomain

2 經常使用命令

nmcli connection show 顯示全部鏈接

 

nmcli connection show --active 顯示全部活動的鏈接狀態

nmcli connection show "ens33" 顯示網絡鏈接配置

nmcli device status 顯示設備狀態

nmcli device show ens33 顯示網絡接口屬性

nmcli connection add help 查看幫助

nmcli connection reload 從新加載配置

nmcli connection down test2 禁用test2的配置,注意一個網卡能夠有多個配置。

nmcli connection up test2 啓用test2的配置

nmcli device disconnect ens33 禁用ens33網卡,物理網卡

nmcli device disconnect ens33 啓用ens33網卡

圖形工具

nm-connection-editor

字符工具

nmtui

nmtui-connect

nmtui-edit

nmtui-hostname

3 建立新鏈接配置

(1)建立新鏈接配置default,IP經過DHCP自動獲取

1

2

[root@centos73 ~]# nmcli connection add con-name defaulttype Ethernet ifname eth0

Connection 'default'(d62f98af-86ed-4735-80aa-2d80351765b2) successfully added.

刪除鏈接

1

2

[root@centos73 ~]# nmcli connection delete default

Connection 'default'(d62f98af-86ed-4735-80aa-2d80351765b2) successfully deleted.

(2)建立新的鏈接配置test2,指定靜態IP,不自動鏈接

1

2

[root@centos73 ~]# nmcli connection add con-name test2 ipv4.method manual ifname ens33 autoconnect no type Ethernet ipv4.addresses 172.25.100.100/24 gw4 172.25.100.1

Connection 'test2'(98385bf5-8cc3-47e3-a5f2-51e2d736be6d) successfully added.

參數說明:

con-name 指定鏈接名字,沒有特殊要求,

ipv4.methmod 指定獲取IP地址的方式

ifname 指定網卡設被名,既就是次配置所生效的網卡

autoconnect 指定是否自動啓動

ipv4.addresses 指定IPv4地址

gw4指定網關

4查看/etc/sysconfig/network-scripts/目錄

會看到多出一個文件ifcfg-test2。說明添加確實生效了。

/etc/sysconfig/network-scripts/ifcfg-test2

1

2

3

[root@centos73 ~]# ls /etc/sysconfig/network-scripts/ifcfg-*

/etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-lo

/etc/sysconfig/network-scripts/ifcfg-ens34 /etc/sysconfig/network-scripts/ifcfg-test2

5 啓用test2鏈接配置

1

2

3

[root@centos73 ~]# nmcli connection up test2

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

[root@centos73 ~]# systemctl restart network

看下是否生效

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@centos73 ~]# nmcli device show ens33

 

GENERAL.DEVICE: ens33

GENERAL.TYPE: ethernet

GENERAL.HWADDR: 00:0C:29:3A:00:82

GENERAL.MTU: 1500

GENERAL.STATE: 100 (connected)

GENERAL.CONNECTION: test2

GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/7

WIRED-PROPERTIES.CARRIER: on

IP4.ADDRESS[1]: 172.25.100.100/24

IP4.GATEWAY: 172.25.100.1

IP6.ADDRESS[1]: fe80::5a5b:2cc3:a448:e2e1/64

IP6.GATEWAY:

好了,基本的IP地址配置成功

6 修改鏈接設置

1)修改test2爲自動啓動

1

[root@centos73 ~]# nmcli connection modify test2 connection.autoconnect yes

(2)修改DNS爲172.25.1.1

1

[root@centos73 ~]# nmcli connection modify test2 ipv4.dns 172.25.1.1

(3)添加DNS 114.114.114.114

1

[root@centos73 ~]# nmcli connection modify test2 +ipv4.dns 114.114.114.114

看下是否成功

1

2

3

4

5

6

7

8

9

10

11

12

13

[root@centos73 ~]# cat /etc/sysconfig/network-scripts/ifcfg-test2

 

TYPE=Ethernet

[……]

NAME=test2

UUID=98385bf5-8cc3-47e3-a5f2-51e2d736be6d

DEVICE=ens33

ONBOOT=yes

DNS1=172.25.1.1

IPADDR=172.25.100.100

PREFIX=24

GATEWAY=172.25.100.1

DNS2=114.114.114.114

能夠看到均已生效

(4)刪除DNS

1

[root@centos73 ~]# nmcli connection modify test2 -ipv4.dns 114.114.114.114

(5)修改IP地址

1

[root@centos73 ~]# nmcli connection modify test2 ipv4.addresses 200.100.100.100/24 gw4 200.100.100.1

(6)還能夠添加多個IP

1

[root@centos73 ~]# nmcli connection modify test2 +ipv4.addresses 10.10.10.10/8

7 nmcli 命令和/etc/sysconfig/network-scripts/ifcfg-*文件的對應關係

ipv4.method manual        BOOTPROTO=none

ipv4.method auto        BOOTPROTO=dhcp

ipv4.addresses "192.0.2.1/24   IPADDR=192.0.2.1

                PREFIX=24

gw4 192.0.2.254"        GATEWAY=192.0.2.254

ipv4.dns 8.8.8.8         DNS0=8.8.8.8

ipv4.dns-search example.com   DOMAIN=example.com

ipv4.ignore-auto-dns true     PEERDNS=no

connection.autoconnect yes    ONBOOT=yes

connection.id eth0         NAME=eth0

connection.interface-name eth0   DEVICE=eth0

802-3-ethernet.mac-address . . .   HWADDR= . . .

 

 

 

注意:centos7之後網卡命令規則

en     以太網           Ethernet
wl     無線局域網        WLAN
ww     無線廣域網        WWAN

序號由系統變量生成

grub2-mkconfig -o /boot/grub2/grub.cfg

查看網卡信息

Ifconfig  -------查看全部網卡信息

ifconfig ens33  ------查看指定網卡信息

 

禁用啓動指定網卡

ifconfig ens33 down  ------禁用指定網卡

ifconfig ens33 up  -------啓用指定網卡

 

臨時配置ip地址(注意:重啓後不生效)

ifconfig eth1 192.168.11.22 netmask 255.255.255.0 [ broadcast 192.168.11.255 ]---配置ip地址

ifconfig eth0 192.168.11.10 netmask 255.255.255.0 [broadcast 255.255.255.0]

 

 

 

設置MAC地址

ifconfig eth0 hw ether 00:11:22:22:11:00

 

添加子接口

ifconfig eth0:1 192.168.12.23 netmask 255.255.255.0

 

在接口禁用啓用arp協議

ifconfig eth0 -arp

ifconfig eth0 arp

 

 

 

2、路由管理route

 

1、route -n

顯示

 

2、添加路由

 

route add -net 目標網段 netmask x.x.x.x gw 下一跳路由地址   -------添加路由下一跳是接口ip

route add -net 目標網段 netmask x.x.x.x dev eth1 -------添加路由下一跳是接口

 

route add -net 172.18.11.0 netmask 255.255.255.0 gw 192.168.11.23

route add -host 172.18.11.67 gw 192.168.11.23 reject    (拒絕路由的操做)

 

 

route -host 目標主機 gw 下一跳路由地址

 

route add -host 172.18.11.67 gw 192.168.11.23

 

 

默認網關

route add default gw 網關地址

route del  default gw 192.168.11.23

 

 

刪除路由

route del -net 172.18.11.0 netmask 255.255.255.0 gw 192.168.11.23

 

 

3、命令操做重啓丟失,永存保存的設置方法

1、把這些命令寫到/etc/rc.local;

2、更改配置文件

網卡:

vi /etc/sysconfig/network-scripts/ifcfg-eth[0,1,2....]

 

DEVICE=eth1

TYPE=Ethernet

ONBOOT=yes

BOOTPROTO=static

IPADDR=192.168.1.1

NETMASK=255.255.255.0

DNS1=8.8.8.8

GATEWAY=192.168.1.254

 

 

生效需重啓服務systemctl restart network(注意:虛擬機要重啓機器)

 

 vi /etc/resolv.conf  -------DNS指向的配置文件

nameserver 202.106.0.20

nameserver 222.222.222.222

 

 

路由表

vi /etc/sysconfig/network-scripts/route-eth[0,1,2....]--------路由表配置文件(在)

 

192.168.30.0/24 via 192.168.91.10 dev eth1

192.168.30.0 netmask 255.255.255.0 via 192.168.91.10 dev eth1

 

4、網絡測試的命令

ping -c 次數 172.18.199.1

traceroute 目標      檢測路由通過跳數

nslookup   DNS檢測解析

arp -n     檢測arp解析

 

 

 

 

實驗做業:

 

1、創建2臺LINUX服務器,第一臺有2塊網卡,eth0爲系統默認網卡不須要改動,eth1爲192.168.學號.學號;

第二臺機器只有1塊網卡,默認爲DHCP,另添加ip地址,192.168.學號+100.學號。在第1臺機器上分別用動態和靜態路由添加方法,實現ping通第2臺機器的子接口IP。

 

 

做業:

1、英文和中文安裝LINUX;

2、寫出下面命令功能:

Date、whoami、hostname、ifconfig、alias、ping、reboot 、halt 、shutdown

 

Dhcp

(一)準備環境

1.服務器:

(1)配置ip

(2)關閉防火牆和selinux

(3)鏈接到vmnet1

(4)關閉vmnet上面的DHCP

2.客戶端:

(1)鏈接到vmnet1

(2)Dhcp獲取驗證

(二)安裝程序

1.掛載光盤

2.Rpm -ivh dhcp-4.xxXX.rpm

3.查看是否安裝  rpm -q dhcp

(三)配置dhcpd配置文件

1.配置文件格式

(1)全局配置

 

(2)網段聲明(區域配置)

 

(3)主機聲明

 

 

(四)啓動服務

1.啓動服務  ------systemctl start dhcpd (若是服務沒有起來,檢查配置文件的格式\命令)

(五)測試

 

Samba

1、        Samba介紹

Samba是在LinuxUNIX系統上實現SMB協議的一個免費軟件,由服務器及客戶端程序構成。SMBServer Messages Block,信息服務塊)是一種在局域網上共享文件和打印機的一種通訊協議,它爲局域網內的不一樣計算機之間提供文件及打印機等資源的共享服務。SMB協議是客戶機/服務器型協議,客戶機經過該協議能夠訪問服務器上的共享文件系統、打印機及其餘資源。經過設置「NetBIOS over TCP/IP」使得Samba不但能與局域網絡主機分享資源,還能與全世界的電腦分享資源。

Samba最大的功能就是能夠用於Linuxwindows系統直接的文件共享和打印共享,Samba既能夠用於windowsLinux之間的文件共享,也能夠用於LinuxLinux之間的資源共享。

Samba由兩個主要程序組成,它們是smbdnmbd。這兩個守護進程在服務器啓動到中止期間持續運行,功能各異。Smbdnmbd使用的所有配置信息全都保存在smb.conf文件中。Smb.confsmbdnmbd兩個守護進程說明輸出什麼以便共享,共享輸出給誰及如何進行輸出。

Samba提供了基於CIFS的四個服務:文件和打印服務、受權與被受權、名稱解析、瀏覽服務。前兩項服務由smbd提供,後兩項服務則由nmbd提供。簡單地說,smbd進程的做用是處理到來的SMB軟件包,爲使用該軟件包的資源與Linux進行協商,nmbd進程使主機(或工做站)能瀏覽Linux服務器。

注意:

  1. 1.     windows使用的共享協議是NetBEUINetBIOS Extend User Interface)協議和IPX/SPX協議

a)       SMB : SMB協議是基於TCPNETBIOS下的,通常端口使用爲139445

                                     i.              Port 139 (TCP) - 文件和打印共享 smbd (基於SMB(Server Message Block)協議,主要在局域網中使用,文件共享協議)

                                   ii.              Port 445 (TCP) - NetBIOS服務在windos 2000及之後版本使用此端口, (Common Internet File SystemCIFS,它是SMB協議擴展到Internet後,實現Internet文件共享)

b)      CIFS:它是SMB協議擴展到internet,實現internet文件共享:

  1. 2.     LINUX系統之間文件共享 LIUNXWINDOWS系統之間的文件共享:SMB,服務器信息塊協議

程序:nmbdsmbd

1Port 137 (UDP) - NetBIOS 名字服務 nmbd

2Port 138 (UDP) - NetBIOS 數據報服務

3Port 139 (TCP) - 文件和打印共享 smbd (基於SMB(Server Message Block)協議,主要在局域網中使用,文件共享協議)

4Port 389 (TCP) - 用於 LDAP (Active Directory Mode)

5Port 445 (TCP) - NetBIOS服務在windos 2000及之後版本使用此端口, (Common Internet File SystemCIFS,它是SMB協議擴展到Internet後,實現Internet文件共享)

6Port 901 (TCP) - 用於 SWAT,用於網頁管理Samb

2、        準備環境

a)       靜態ip

b)      關閉防火牆selinux NetworkManager

 

3、        安裝程序

Yum安裝步驟:

  1. 1.       先找到yum的配置文件 /etc/yum.repos.d/xxx.repo
  2. 2.       Vim xxx.repo

[自定義名字]

Baseurl=file:///media  -------指定yum,指的是光盤,光盤已經掛載到了/media

Enabled=1   -------啓用yum

Gpgcheck=0  -------不去校驗

Wq -------保存yum源文件

Yum –y install 程序名   --------安裝指定程序

  1. 3.       Yum –y install samba
  2. 4.       啓動smbnmb  

a)       systemctl start smb 

b)      systemctl start nmb

4、        配置文件

a)       全局配置

  1. 1.       Workgroup=工做組
  2. 2.       server string=服務器註釋
  3. 3.       hosts allow=容許的主機網段  192.168.1. 192.168.100. (多個用空格隔開)
  4. 4.       security=(訪問級別)

1)      share

---不須要提供用戶名和密碼。

2)      user----須要提供用戶名和密碼,並且身份驗證由 samba server 負責。

3)      server--須要提供用戶名和密碼,可指定其餘機器(winNT/2000/XP)或另外一臺 samba server做身份驗證。

4)      domain--須要提供用戶名和密碼,指定winNT/2000/XP域服務器做身份驗證。

b)      默認家目錄共享

 

使用者自己的""目錄,當使用者以samba使用者身份登入samba server 後,samba server 底下會看到本身的家目錄,目錄名稱是使用者本身的賬號。

c)       設置共享

 

[printers] –設置的共享名稱

comment---------註釋說明

path------------分享資源的完整路徑名稱,除了路徑要正確外,目錄的權限也要設對

browseable------yes/no在瀏覽資源中顯示共享目錄,若爲不然必須指定共享路徑才能存取

printable-------yes/no容許打印

guest ok--------yes/no公開共享,若爲不然進行身份驗證(只有當security = share 時此項才起做用)

writable

--------yes/no不以只讀方式共享當與read only發生衝突時,無視read only

read only-------yes/no以只讀方式共享當與writable發生衝突時也writable爲準

deny hosts=指定IP本網段指定I

注意:samba使用的用戶名和密碼單獨存在samba數據庫,須要將普通用戶加入samba數據庫,並設置新的samba密碼,才能夠進行訪問samba

Smbpasswd –a zhangsan  -----將已存在的aa用戶加入samba數據庫

5、        啓動服務

[root@localhost ~]# systemctl start smb.service

[root@localhost ~]# systemctl start nmb.service

查看端口:

netstat   -anp   |   grep  端口   -------查看指定端口狀態

6、        測試

Windows:映射網絡驅動器

Linux: samba-c

 

ftp

1匿名訪問的ftp

無須要登陸用戶名,能夠直接訪問,默認ftp根目錄路徑在/var/ftp/pub

2用戶認證訪問的ftp

須要用戶登陸驗證,經過後才能夠訪問的ftp

3.虛擬用戶訪問的ftp()

1、        實驗準備

a)       配置靜態ip

b)      關閉防火牆

c)       關閉selinux

d)      關閉NetworkManager

2、        安裝程序

  1. 1.       掛載光盤
  2. 2.       進入Packges
  3. 3.       安裝vsftp程序
  4. 4.       查看vsftp的配置文件位置
  5. 5.       測試vsftp服務是否可以啓動

systemctl start vsftpd ------臨時啓動
systemctl enable vsftpd  ------
永久啓動

3、        修改配置文件(內容)

全局配置選項:

  •    listen=NO是否以獨立運行的方式監聽服務;
  • listen_address=0.0.0.0:設置監聽f t p服務的ip址;
  • listen_port=21:設置監聽ftp服務的端口號
  • write_enable=YES:啓用任何形式的寫入權限,(如上傳、刪除文件等)都須要開啓此項;
  • download_enable=YES:是否容許下載文件(創建僅限於瀏覽、上傳的FTP服務器時,可將此項設置爲「NO」
  • dirmessage_enable=YES:用戶切換進入目錄時顯示 「.message」文件(若是已存在)的內容;
  • xferlog_enable=YES:啓用xferlog日誌,默認記錄到 /var/log/xferlog
  • xferlog_std_format=YES:啓用標準的xferlog日誌格式,若禁用此項,將使用vsftpd本身的日誌格式;
  • connect_from_port_20=YES:容許服務器主動模式(從20端口創建數據鏈接);
  • pasv_enable=NO:禁止被動模式鏈接;默認容許被動模式鏈接;
  • pasv_max_port=24600:設置用於被動模式的服務器最大端口號;
  • pasv_min_port=24500:設置用於被動模式的服務器最大端口號;
  • pam_service_name=vsftpd.vu:設置用於用戶認證的PAM文件位置(/etc/pam.d/目錄中對應的文件名);
  • userlist_enable=YES:是否啓用userl_ist用戶列表文件
  • userlist_deny=YES:是否禁用user_list列表文件中的用戶帳號
  • max_clients=0:最多容許多少個客戶端同時鏈接(0爲無限制);
  • max_per_ip=0:對來自同一個ip地址的客戶端,最多容許多少個併發鏈接(0爲無限制);
  • tcp_wrappers=YES:是否啓用tcp_wrappers主機訪問控制;

 

經常使用的匿名 FTP 配置項

       anon_root=/var/ftp/   -----匿名登陸的家目錄

anonymous_enable=NO:關閉匿名訪問

anon_root=/var/ftp:匿名用戶的 FTP 根目錄

anon_upload_enable=YES:容許上傳文件

anon_mkdir_write_enable=YES:容許建立目錄

anon_other_write_enable=YES:開放其餘寫入權

anon_max_rate=50000:限制最大傳輸速率(字節/秒)

經常使用的用戶驗證登陸配置項

     local_root=/home:設置本地用戶的FTP根目錄(默認爲用戶的宿主目錄)

local_enable=YES 啓用本地用戶

write_enable=YES 具備寫入權限,可以上傳

ftpd_banner=Welcome to blah FTP service  -------歡迎提示信息

chroot_local_user=YES:是否將FTP本地用戶禁錮在宿主目錄中

local_root=/var/ftp:設置本地用戶的FTP根目錄(默認爲用戶的宿主目錄)

  • ocal_max_rate=0:限制本地用戶的最大傳輸速率(0爲無限制),單位爲字節/秒(B/s

allow_writeable_chroot=YES:容許被限制用戶的主目錄具備寫權限

dirmessage_enable=YES

xferlog_enable=YES           --------------à以上三項配置日誌文件信息

xferlog_file=/var/log/vsftpd.log

 

4、        設置屬主屬組以及對應權限

設置down目錄權限,只容許down能夠進去只能下載

chown down:root down

chmod 570 down

設置up目錄進去只寫入,沒法看到該目錄中的一切內容

chown up:root up

chmod 370 up

結果以下圖:

 

5、        重啓服務

6、        測試

7、        Ftpuser user_list的介紹

a)       Ftpuser --------至關於黑名單

b)      User_list -------也能夠是白名單,也能夠是黑名單,取決於/etc/vsftpd/vsftpd.conf配置文件中的選項:

1)      userlist_enable=YES  ---------user_list內部的用戶生效(具體是黑名單仍是白名單由userlist_deny來決定)

2)      userlist_enable=NO  --------user_list表無效.

3)      userlist_deny=YES  ------user_list就是黑名單

4)      userlist_deny=NO  ------user_list就是白名單

5)       

 設置用戶只能作用戶驗證不能登陸linux修通

1)      usermod - -shell /usr/bin/nologin haha   -------haha用戶的默認登陸shell改成nologin,haha用戶就不能夠登陸系統,可是能夠作用戶驗證

2)      usermod - -shell /usr/bin/bash haha     --------haha用戶的默認登陸shell改成bash,haha用戶就能夠登陸系統,也能夠作用戶驗證

 

grub 加密

Grub明文\密文加密和破解root密碼

明文加密grub過程:

①      修改/etc/grub.d/00_header,在文件末尾添加如下命令

vim /etc/grub.d/00_header

 

保存並退出

②      從新編譯生成grub.cfg

grub2-mkconfig -o /boot/grub2/grub.cfg

 

③      重啓,進入系統選擇界面按」e」進入grub

 

進入grub成功會看到下面界面:

 

明文加密設置完成

 

 

密文加密grub過程:

將要設置的grub密碼123.com生成密文

grub2-mkpasswd-pbkdf2    -------打開加密工具

輸入口令:123.com

確認密碼:123.com

 

給grub設置用戶名和密碼(之後進入grub須要輸入用戶名和密碼)

vim /etc/grub.d/00_header   ------打開文件00_header文件,在末行爲grub設置用戶名和加密後的密文密碼<shift + g :跳轉到行尾>

 

三從新編譯生成grub.cfg

grub2-mkconfig -o /boot/grub2/grub.cfg

 

測試

  1. 1.       Reboot------重啓系統,進入系統選擇界面
  2. 2.       輸入:e  ----進入grub

 ---輸入xianfeng用戶名 密碼:123.com

 

 

 

 

 

 

 

  1. 3.       成功進入grub

 

此時也能夠更改密碼:

按一下」下箭頭」

 

將ro改成rw   並在quiet後面添加 ini=/bin/sh

 

 

Ctrl + X ---重啓並修改root密碼

 

因爲selinux開啓着的須要執行如下命令更新系統信息,不然重啓以後密碼未生效

touch /.autorelabel

 

重啓系統

exec /sbin/init

忘記root密碼,破解就完成!

 

 Mbr grub故障修復

排除系統啓動類故障

1、MBR扇區故障

MBR位於物理硬盤的第一扇區(512字節),該扇區又稱爲主引導扇區=446字節引導程序部分+64字節分區表記錄+2字節標識

主引導扇區損壞致使沒法進入引導菜單,找到正確的位置沒法加載系統,進入黑屏

  1. 1.         備份MBR扇區數據

(1)       建立用於存儲MBR備份的新硬盤分區,並永久掛載

 

(2)       備份MBR扇區數據\

 

(3)       查看是否已經備份

 

  1. 2.         模擬MBR扇區損壞

(1)      

(2)       重啓看是否沒法啓動系統,沒法啓動表明mbr引導損壞

 

 

  1. 3.         從備份文件中恢復mbr扇區的數據

(1)      

(2)       進去急救模式(救援模式)

(3)      

(4)       選擇繼續

 

(5)       回車進入bash shell

 

(6)       由於mbr損壞,沒法看到分區表

 

(7)       從新將/dev/sdb1 掛載到/sdb1(由於這裏面有備份的mbr文件)

 

(8)       將從mbr.bak恢復到/dev/sda,mbr扇區的數據就回來了

 

 

(9)       Exit退出臨時bash shell 系統會自動重啓

 

 

2、grub引導故障

原理:MBR ------grub引導程序-----/boot/grub2/grub.cfg引導文件----引導到系統

(一)引導文件丟失或是損壞

1.模擬引導文件損壞或是丟失

 

2.如何解決(最直接的方式就是寫一個如出一轍的grub.cfg的配置文件,可是進不去系統並且內容複雜)

(1)重啓,調整bios光驅啓動,進入急救模式

 

(2)繼續進入臨時bash shell

 

(3)從新掛載,找到備份的grub.cfg文件,

 

(4)將文件複製回去

 

(5) 退出當前環境,(exit exit)系統自動重啓,調整bios爲硬盤啓動,驗證

(二)Grub引導程序損壞

同上兩步驟相同在第三部:

Chroot /mnt/sysimage

Grub2-install /dev/sda ------在當前環境下把grub2安裝到/dev/sda,當前環境下還能夠解決忘記密碼,直接passwd root 給root設置密碼

Exit

Reboot

 

 

3、排除文件系統類故障

(一)修復文件系統

1.模擬文件系統故障(每一個分區有個超級塊,是文件系統的核心檔案,記錄文件系統的類型 大小 空間使用狀況等)

(1)Dd if=/dev/zero of=/dev/sdb1 bs=512 count=4  -------模擬沖掉超級塊

 

(2)Mount /dev/sdb1 /mnt  -----沒法掛載,文件系統損壞

(3)損壞後的系統狀態:

 

(4)修復(輸入root密碼進入系統,執行修復命令)

Xfs_repair /dev/sdb1

(二)磁盤資源耗盡故障

按期刪除一些無用文件

(三)檢測硬盤壞道

badblocks -sv /dev/sdb

相關文章
相關標籤/搜索