国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Linux-CentOS7.6安裝和基本使用

這篇具有很好參考價(jià)值的文章主要介紹了Linux-CentOS7.6安裝和基本使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Linux

Linux基本介紹

LInux中內(nèi)核版 和 發(fā)行版本的關(guān)系

內(nèi)核:只提供操作系統(tǒng)的基本功能和特性,如內(nèi)存管理,進(jìn)程調(diào)度,文件管理等等。

Linux內(nèi)核: https://www.kernel.org/

發(fā)行版:基于linus維護(hù)的linux內(nèi)核,是由一些廠商集成了漂亮易用的桌面和常用的軟件而發(fā)布的商品。

  • 即是 內(nèi)核 + 軟件 + 工具 + 可完全安裝程序

常見(jiàn)的發(fā)行版

ReaHat

應(yīng)該稱為Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所謂的Redhat Advance Server,收費(fèi)版本)、Fedora Core(由原來(lái)的Redhat桌面版本發(fā)展而來(lái),免費(fèi)版本)、CentOS(RHEL的社區(qū)克隆版本,免費(fèi))。Redhat應(yīng)該說(shuō)是在國(guó)內(nèi)使用人群最多 的Linux版本,甚至有人將Redhat等同于Linux,而有些老鳥更是只用這一個(gè)版本的Linux。所以這個(gè)版本的特點(diǎn)就是使用人群數(shù)量大,資料非 常多,言下之意就是如果你有什么不明白的地方,很容易找到人來(lái)問(wèn),而且網(wǎng)上的一般Linux教程都是以Redhat為例來(lái)講解的。

Debian

幾大基礎(chǔ)發(fā)行版之一,Ubuntu就是基于Debian的。它的基本有如下特點(diǎn):

  1. Free,最符合開(kāi)源精神的發(fā)行版。默認(rèn)不包含任何專有驅(qū)動(dòng)

  2. 不求新,但求穩(wěn)。軟件包通常選擇比較穩(wěn)定的版本而不是最新的版本

  3. 系統(tǒng)的開(kāi)發(fā)維護(hù)完全是由社區(qū)驅(qū)動(dòng)的

  4. APT軟件包管理

  5. 圖形化安裝方式對(duì)新手友好

Ubuntu

國(guó)內(nèi)乃至全球熱門的Linux發(fā)行版。也是各種推薦入門Linux愛(ài)好者安裝的一個(gè)Linux發(fā)行版。它的特點(diǎn)主要有以下:

  1. 安裝簡(jiǎn)單

  2. Unity 3D圖形界面,比較華麗(因人而異)

  3. 對(duì)一些專有驅(qū)動(dòng)支持比較好,例如顯卡驅(qū)動(dòng)

  4. 社區(qū)比較活躍,幾乎遇到的問(wèn)題都可以找到答案

CentOS

現(xiàn)在是大名鼎鼎的RedHat Linux的社區(qū)版(可以說(shuō)是剔除了專有代碼的RedHat),其特點(diǎn)就是相當(dāng)相當(dāng)?shù)姆€(wěn)定,版本更新緊跟RedHat。非常適合作為服務(wù)器操作系統(tǒng)使用。

Linux 系統(tǒng)目錄結(jié)構(gòu)

/- 根

每一個(gè)文件和目錄從根目錄開(kāi)始。
只有root用戶具有該目錄下的寫權(quán)限。請(qǐng)注意,/root是root用戶的主目錄,這與/不一樣

/bin中 - 用戶二進(jìn)制文件

包含二進(jìn)制可執(zhí)行文件。
在單用戶模式下,你需要使用的常見(jiàn)Linux命令都位于此目錄下。系統(tǒng)的所有用戶使用的命令都設(shè)在這里。
例如:ps、ls、ping、grep、cp

/sbin目錄 - 系統(tǒng)二進(jìn)制文件

就像/bin,/sbin同樣也包含二進(jìn)制可執(zhí)行文件。
但是,在這個(gè)目錄下的linux命令通常由系統(tǒng)管理員使用,對(duì)系統(tǒng)進(jìn)行維護(hù)。例如:iptables、reboot、fdisk、ifconfig、swapon命令

/etc - 配置文件

包含所有程序所需的配置文件。
也包含了用于啟動(dòng)/停止單個(gè)程序的啟動(dòng)和關(guān)閉shell腳本。例如:/etc/resolv.conf、/etc/logrotate.conf

hosts:設(shè)備名稱(或域名)到ip地址的解析,相當(dāng)于本地存在的dns功能。

/dev - 設(shè)備文件

包含設(shè)備文件。
這些包括終端設(shè)備、USB或連接到系統(tǒng)的任何設(shè)備。例如:/dev/tty#### /dev/usbmon0

/proc - 進(jìn)程信息

包含系統(tǒng)進(jìn)程的相關(guān)信息。
這是一個(gè)虛擬的文件系統(tǒng),包含有關(guān)正在運(yùn)行的進(jìn)程的信息。例如:/proc/{pid}目錄中包含的與特定pid相關(guān)的信息。
這是一個(gè)虛擬的文件系統(tǒng),系統(tǒng)資源以文本信息形式存在。例如:/proc/uptime

/var - 變量文件

var代表變量文件。
這個(gè)目錄下可以找到內(nèi)容可能增長(zhǎng)的文件。
這包括 - 系統(tǒng)日志文件(/var/log);包和數(shù)據(jù)庫(kù)文件(/var/lib);電子郵件(/var/mail);打印隊(duì)列(/var/spool);鎖文件(/var/lock);多次重新啟動(dòng)需要的臨時(shí)文件(/var/tmp);

/tmp - 臨時(shí)文件

包含系統(tǒng)和用戶創(chuàng)建的臨時(shí)文件。
當(dāng)系統(tǒng)重新啟動(dòng)時(shí),這個(gè)目錄下的文件都將被刪除。

/usr - 用戶程序

包含二進(jìn)制文件、庫(kù)文件、文檔和二級(jí)程序的源代碼。
/usr/bin中包含用戶程序的二進(jìn)制文件。如果你在/bin中找不到用戶二進(jìn)制文件,到/usr/bin目錄看看。例如:at、awk、cc、less、scp。
/usr/sbin中包含系統(tǒng)管理員的二進(jìn)制文件。如果你在/sbin中找不到系統(tǒng)二進(jìn)制文件,到/usr/sbin目錄看看。例如:atd、cron、sshd、useradd、userdel。
/usr/lib中包含了/usr/bin和/usr/sbin用到的庫(kù)。
/usr/local中包含了從源安裝的用戶程序。例如,當(dāng)你從源安裝Apache,它會(huì)在/usr/local/apache2中。

/home - HOME目錄

所有用戶用home目錄來(lái)存儲(chǔ)他們的個(gè)人檔案。
例如:/home/john、/home/nikita

/boot - 引導(dǎo)加載程序文件

包含引導(dǎo)加載程序相關(guān)的文件。
內(nèi)核的initrd、vmlinux、grub文件位于/boot下。
例如:initrd.img-2.6.32-24-generic、vmlinuz-2.6.32-24-generic

/lib - 系統(tǒng)庫(kù)

包含支持位于/bin和/sbin下的二進(jìn)制文件的庫(kù)文件.
庫(kù)文件名為 ld或lib.so.*
例如:ld-2.11.1.so,libncurses.so.5.7

/opt - 可選的附加應(yīng)用程序

opt代表可選的。
包含從個(gè)別廠商的附加應(yīng)用程序。
附加應(yīng)用程序應(yīng)該安裝在/opt/或者/opt/的子目錄下。

/mnt - 掛載目錄

臨時(shí)安裝目錄,系統(tǒng)管理員可以掛載文件系統(tǒng)。

/media - 可移動(dòng)媒體設(shè)備

用于掛載可移動(dòng)設(shè)備的臨時(shí)目錄。
舉例來(lái)說(shuō),掛載CD-ROM的/media/cdrom,掛載軟盤驅(qū)動(dòng)器的/media/floppy;

/srv - 服務(wù)數(shù)據(jù)

srv代表服務(wù)。
包含服務(wù)器特定服務(wù)相關(guān)的數(shù)據(jù)。
例如,/srv/cvs包含cvs相關(guān)的數(shù)據(jù)。

Linxu 安裝

Linux安裝流程

下一步->Accept 下一步->去掉 下一步->下一步->序列號(hào)

若缺少虛擬網(wǎng)卡VMware1和VMware8缺失,自救方法如下:

方法1:版本出問(wèn)題,使用更高級(jí)的VMware17

方法2:安裝插件cc.exe(一般無(wú)用)

方法3:軟件內(nèi)部的虛擬網(wǎng)絡(luò)編輯器,點(diǎn)擊還原默認(rèn)設(shè)置?或添加網(wǎng)絡(luò)(E)(一定概率成功)

方法4:部分電腦出現(xiàn)有道云和VMware沖突,卸載有道云

Linux部署環(huán)境流程

配置鏡像CentOS-7.x

典型(小白)自定義(高手)->稍后安裝操作系統(tǒng)->Linux CentOS 7 64位

->重命名CentOS7_base 默認(rèn)位置更改->設(shè)置最大磁盤20G(初始3G)->finished

重點(diǎn)配置->編輯虛擬機(jī)設(shè)置

配置內(nèi)存大?。?2G->8G、16G->4G、8G->2G

配置處理器數(shù)量:默認(rèn)單核,多核操作非高性能電腦不使用

配置鏡像CD/DVD:點(diǎn)擊使用ISO映像文件,找鏡像的位置

配置網(wǎng)絡(luò)適配器:默認(rèn)NAT模式

后四項(xiàng)刪除僅剩顯示器,節(jié)約硬盤提高性能

Linux啟動(dòng)部署流程

選擇語(yǔ)言:English(排除部分軟件不支持中文的問(wèn)題)

選擇時(shí)區(qū):選擇中國(guó)地圖部分,默認(rèn)且僅有Shanghai

System:配置網(wǎng)絡(luò)信息(重點(diǎn):不配置則無(wú)法連網(wǎng))

  • 開(kāi)啟網(wǎng)卡按鈕:點(diǎn)擊OFF->ON,截圖網(wǎng)絡(luò)數(shù)據(jù)

  • 注意點(diǎn):不能把ON點(diǎn)回去,否則該虛擬機(jī)無(wú)法再次連網(wǎng)

配置密碼root password:admin、默認(rèn)賬號(hào)為root

VM網(wǎng)絡(luò)配置

VM三種連接方式

橋接模式

優(yōu)點(diǎn):VMWare虛擬出來(lái)的操作系統(tǒng)就像是局域網(wǎng)中的一臺(tái)獨(dú)立的主機(jī),虛擬系統(tǒng)可以和外部系統(tǒng)直接通訊,外網(wǎng)和內(nèi)網(wǎng)互通

缺點(diǎn):容易導(dǎo)致IP沖突,網(wǎng)段限制

橋接模式是跟物理機(jī)在同一個(gè)網(wǎng)段,并且和物理機(jī)用的同一個(gè)路由器。主機(jī)網(wǎng)卡通過(guò)虛擬網(wǎng)橋連接到虛擬機(jī)交換機(jī),交換機(jī)內(nèi)部再映射到內(nèi)部的網(wǎng)絡(luò),虛擬機(jī)直接占用主機(jī)的網(wǎng)段

NAT模式(網(wǎng)絡(luò)地址轉(zhuǎn)換模式)

優(yōu)點(diǎn):避免了IP因?yàn)榫W(wǎng)絡(luò)地址不夠造成的沖突

缺點(diǎn):只能內(nèi)網(wǎng)到外網(wǎng),外網(wǎng)到內(nèi)網(wǎng)需要配置

原理:允許一個(gè)整體機(jī)構(gòu)以一個(gè)公用IP地址出現(xiàn)在Internet上,即把內(nèi)部私有網(wǎng)絡(luò)地址翻譯成合法網(wǎng)絡(luò)IP地址的技術(shù)。它是一種把內(nèi)部私有網(wǎng)絡(luò)地址(IP地址)翻譯成合法網(wǎng)絡(luò)IP地址的技術(shù)。

因?yàn)镮P數(shù)據(jù)段由于字節(jié)數(shù)目一定,所以資源是有限的,如果為每一個(gè)設(shè)備分配一個(gè)IP地址,那么極其消耗IP資源,所以NAT起到的作用是,對(duì)外只暴露一個(gè)IP地址,當(dāng)有內(nèi)部連接要通訊的時(shí)候,通過(guò)NAT將內(nèi)網(wǎng)IP轉(zhuǎn)換成對(duì)外的IP,充當(dāng)了網(wǎng)關(guān)的作用。

NAT模式有個(gè)單獨(dú)的路由器,且不同于物理機(jī)的網(wǎng)段,
NAT模式顯示通過(guò)自己的路由器,再找到物理機(jī)的路由器,來(lái)和物理機(jī)進(jìn)行通信的。
這里可以提示一下,一般路由器的默認(rèn)地址是第一位(1)或者最后一位(254)
但是這里NAT模式的網(wǎng)段為什么要從2開(kāi)始呢?

假定以下條件

  • 物理機(jī)
    • IP 192.168.1.3
    • 子網(wǎng)掩碼 255.255.255.0
    • 默認(rèn)網(wǎng)關(guān) 192.168.1.1
  • 虛擬機(jī)
    • IP 192.168.100.10
    • 子網(wǎng)掩碼 255.255.255.0
    • 默認(rèn)網(wǎng)關(guān) 192.168.100.2
    • 首選DNS服務(wù)器:192.168.1.1

NAT的路由器把物理機(jī)的路由器192.168.1.1標(biāo)記成192.168.100.1
這樣NAT的路由器的192.168.100.2去找192.168.100.1的時(shí)候,實(shí)際去找的是192.168.1.1??衫斫鉃槲锢頇C(jī)映射到物理機(jī)的路由器

物理機(jī)IP        物理機(jī)路由器    NAT路由器         虛擬機(jī)IP
192.168.1.3 --> 192.168.1.1 --> 192.168.100.2 --> 192.168.100.10

NAT配置過(guò)程

  1. 打開(kāi)VMware的“編輯”,然后打開(kāi)“虛擬網(wǎng)絡(luò)編輯器”點(diǎn)擊“更改設(shè)置”
  2. 點(diǎn)擊NAT模式,選擇NAT模式。然后填寫子網(wǎng)IP192.168.x.0 x就是我們可以隨便選擇的網(wǎng)段,范圍1~254,這里我選的100。即是192.168.100.0
  3. 既然我們知道了不能從1開(kāi)始,那么就要去手動(dòng)設(shè)置一下。點(diǎn)擊NAT模式,將網(wǎng)關(guān)IP修改為192.168.100.x,x的范圍[2,254]
NAT模式、橋接模式的區(qū)別
NAT模式概述

NAT是“Network Address Translation”的縮寫,中文意思是“網(wǎng)絡(luò)地址轉(zhuǎn)換”,它允許一個(gè)整體機(jī)構(gòu)以一個(gè)公用IP(Internet Protocol)地址出現(xiàn)在Internet上。顧名思義,它是一種把內(nèi)部私有網(wǎng)絡(luò)地址(IP地址)翻譯成合法網(wǎng)絡(luò)IP地址的技術(shù)。

為什么要這樣干呢?因?yàn)镮P數(shù)據(jù)段由于字節(jié)數(shù)目一定,所以資源是有限的,如果為每一個(gè)設(shè)備分配一個(gè)IP地址,那么極其消耗IP資源,所以NAT起到的作用是,對(duì)外只暴露一個(gè)IP地址,當(dāng)有內(nèi)部連接要通訊的時(shí)候,通過(guò)NAT將內(nèi)網(wǎng)IP轉(zhuǎn)換成對(duì)外的IP,充當(dāng)了網(wǎng)關(guān)的作用。

NAT在外部公網(wǎng)(internet)上正常使用可以使多臺(tái)計(jì)算機(jī)共享Internet連接。
通過(guò)這種方法,申請(qǐng)一個(gè)合法IP地址,就把整個(gè)局域網(wǎng)中的計(jì)算機(jī)通過(guò)NAT接入到了Internet中。
這時(shí)NAT屏蔽了內(nèi)部網(wǎng)絡(luò),所有內(nèi)部網(wǎng)計(jì)算機(jī)對(duì)于公共網(wǎng)絡(luò)來(lái)說(shuō)是不可見(jiàn)的,
而內(nèi)部網(wǎng)計(jì)算機(jī)用戶通常不會(huì)意識(shí)到NAT的存在。這里提到的內(nèi)部地址,
是指在內(nèi)部網(wǎng)絡(luò)中分配給節(jié)點(diǎn)的私有IP地址,這個(gè)地址只能在內(nèi)部網(wǎng)絡(luò)中使用,
不能被路由(一種網(wǎng)絡(luò)技術(shù),可以實(shí)現(xiàn)不同路徑轉(zhuǎn)發(fā))。

路由

默認(rèn)網(wǎng)關(guān):指的是數(shù)據(jù)流從本地網(wǎng)絡(luò)路由至遠(yuǎn)端設(shè)備的目的地。
IP地址中專門保留了三個(gè)區(qū)域作為私有地址,其地址范圍如下:
10.0.0.0/8:10.0.0.0~10.255.255.255
172.16.0.0/12:172.16.0.0~172.31.255.255
192.168.0.0/16:192.168.0.0~192.168.255.255

NAT將這些無(wú)法在互聯(lián)網(wǎng)上使用的保留IP地址翻譯成可以在互聯(lián)網(wǎng)上使用的合法IP地址。
而全局地址是指合法的IP地址,它是由NIC(網(wǎng)絡(luò)信息中心)或者ISP(網(wǎng)絡(luò)服務(wù)提供商,比如常說(shuō)的中國(guó)移動(dòng)、中國(guó)電信)分配的地址,
對(duì)外代表一個(gè)或多個(gè)內(nèi)部局部地址,是全球統(tǒng)一的可尋址的地址。

NAT技術(shù)類型
  • NAT有三種類型:
    • 靜態(tài)NAT(Static NAT):設(shè)置起來(lái)最為簡(jiǎn)單和最容易實(shí)現(xiàn)的一種。內(nèi)部網(wǎng)絡(luò)中的每個(gè)主機(jī)都被永久映射成外部網(wǎng)絡(luò)中的某個(gè)合法的地址
    • 動(dòng)態(tài)地址NAT(Pooled NAT):動(dòng)態(tài)地址NAT則是在外部網(wǎng)絡(luò)中定義了一系列的合法地址,采用動(dòng)態(tài)分配的方法映射到內(nèi)部網(wǎng)絡(luò)。類似連接池的原理。
    • 網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAPT(Port-Level NAT):NAPT則是把內(nèi)部地址映射到外部網(wǎng)絡(luò)的一個(gè)IP地址的不同端口

動(dòng)態(tài)地址NAT:只是轉(zhuǎn)換IP地址,它為每一個(gè)內(nèi)部的IP地址分配一個(gè)臨時(shí)的外部IP地址,主要應(yīng)用于撥號(hào),對(duì)于頻繁的遠(yuǎn)程聯(lián)接也可以采用動(dòng)態(tài)NAT。當(dāng)遠(yuǎn)程用戶聯(lián)接上之后,動(dòng)態(tài)地址NAT就會(huì)分配給他一個(gè)IP地址,用戶斷開(kāi)時(shí),這個(gè)IP地址就會(huì)被釋放而留待以后使用。

網(wǎng)絡(luò)地址端口轉(zhuǎn)換NAT:NAPT普遍應(yīng)用于接入設(shè)備中,它可以將中小型的網(wǎng)絡(luò)隱藏在一個(gè)合法的IP地址后面。NAPT與動(dòng)態(tài)地址NAT不同,它將內(nèi)部連接映射到外部網(wǎng)絡(luò)中的一個(gè)單獨(dú)的IP地址上,同時(shí)在該地址上加上一個(gè)由NAT設(shè)備選定的TCP端口號(hào)。

NAT模式總結(jié)

家用路由器一般都是NAT模式,內(nèi)網(wǎng)用戶默認(rèn)都是192.168.1.x網(wǎng)段,而路由器充當(dāng)默認(rèn)網(wǎng)關(guān)的角色,所有內(nèi)網(wǎng)發(fā)出的包都將經(jīng)過(guò)路由器,路由器在公網(wǎng)有唯一的IP,所有的包經(jīng)過(guò)路由器修改其源IP都改為了公網(wǎng)IP了,并且會(huì)隨機(jī)映射一個(gè)對(duì)外端口。當(dāng)應(yīng)答回到路由器時(shí),路由器會(huì)根據(jù)此前的映射關(guān)系,將目標(biāo)IP和PORT改為原先發(fā)送請(qǐng)求的內(nèi)網(wǎng)用戶的IP和PORT,這樣對(duì)于內(nèi)網(wǎng)用戶來(lái)說(shuō)是感知不到路由器的存在的,大家共用路由器的對(duì)外IP訪問(wèn)外網(wǎng)。當(dāng)然,因?yàn)榇蠹叶荚趦?nèi)網(wǎng)同一個(gè)網(wǎng)段(路由器基于DHCP分配),所以內(nèi)網(wǎng)用戶互相通訊也沒(méi)有問(wèn)題。

橋接模式

橋接模式下,VMWare虛擬出來(lái)的操作系統(tǒng)就像是局域網(wǎng)中的一臺(tái)獨(dú)立的主機(jī),它可以訪問(wèn)網(wǎng)內(nèi)任何一臺(tái)機(jī)器。 在橋接模式下,你需要手工為虛擬系統(tǒng)配置IP地址、子網(wǎng)掩碼,而且還要和宿主機(jī)器處于同一網(wǎng)段,這樣虛擬系統(tǒng)才能和宿主機(jī)器進(jìn)行通信。同時(shí),由 于這個(gè)虛擬系統(tǒng)是局域網(wǎng)中的一個(gè)獨(dú)立的主機(jī)系統(tǒng),那么就可以手工配置它的TCP/IP配置信息,以實(shí)現(xiàn)通過(guò)局域網(wǎng)的網(wǎng)關(guān)或路由器訪問(wèn)互聯(lián)網(wǎng)。

使用橋接模式的虛擬系統(tǒng)和宿主機(jī)器的關(guān)系,就像連接在同一個(gè)Hub上的兩臺(tái)電腦。想讓它們相互通訊,你就需要為虛擬系統(tǒng)配置IP地址和子網(wǎng)掩碼,否則就無(wú)法通信。

主機(jī)模式

獨(dú)立系統(tǒng),所有的虛擬系統(tǒng)可以相互通信,但虛擬系統(tǒng)和真實(shí)網(wǎng)絡(luò)是隔離開(kāi)的。虛擬系統(tǒng)和真實(shí)網(wǎng)絡(luò)可以相互通信,相當(dāng)于兩臺(tái)機(jī)器通過(guò)雙絞線互連;虛擬網(wǎng)絡(luò)是一個(gè)全封閉的網(wǎng)絡(luò),唯一能夠訪問(wèn)的就是主機(jī),不同于NAT的地方就是主機(jī)模式?jīng)]有NAT服務(wù),故虛擬網(wǎng)絡(luò)不能連接到Internet。

補(bǔ)充命令

cal 日歷

centos7.6,Linux,linux,運(yùn)維,服務(wù)器

date 日期

幫助指令

獲取指令幫助、配置文件幫助和編程幫助等信息
man [命令或配置文件]
獲取shell內(nèi)置命令的幫助信息
help 命令

查看用戶登錄信息

w 用戶名
w root

命令輸出:

  • USER : 登陸的用戶名
  • TTY : 登陸終端
  • FROM : 從哪個(gè)IP地址登陸
  • LOGIN@ : 登陸時(shí)間
  • IDLE : 用戶閑置時(shí)間
  • JCPU : 指的是和該終端連接的所有進(jìn)程占用時(shí)間.這個(gè)事件并不包括去后臺(tái)作業(yè)的時(shí)間,但卻包括當(dāng)前正在運(yùn)行的后臺(tái)作業(yè)所占用時(shí)間;
  • PCPU : 是指當(dāng)前進(jìn)程所占用的時(shí)間
  • WHAT : 當(dāng)前正在運(yùn)行的命令
who
who

命令輸出:

  • 用戶名
  • 登陸終端
  • 登陸時(shí)間(登陸來(lái)源IP地址)

last 查詢當(dāng)前登陸和過(guò)去登陸的用戶信息

last
  • last命令默認(rèn)時(shí)讀取/var/log/wtmp文件數(shù)據(jù)

命令輸出

  • 用戶名
  • 登陸終端
  • 登陸IP
  • 登陸時(shí)間
  • 退出時(shí)間(在線時(shí)間)

lastlog 最后一次登錄時(shí)間

lastlog

命令輸出

  • 用戶名
  • 登陸終端
  • 登陸IP
  • 最后一次登陸時(shí)間

history 查看操作歷史

history

開(kāi)機(jī)、重啟和用戶登錄

關(guān)機(jī)和重啟

# 務(wù)必在關(guān)機(jī)或者重啟之前調(diào)用該指令
sync 將內(nèi)存數(shù)據(jù)同步到磁盤


shutdown -參數(shù) 時(shí)間刻度 立刻關(guān)機(jī)【謹(jǐn)慎】
-h 關(guān)機(jī)
-r 重啟
時(shí)間刻度:
now 馬上
n:n分鐘后執(zhí)行,n是一個(gè)整數(shù)

shutdown -h now 馬上關(guān)機(jī)

# 等價(jià)指令
reboot 立馬重啟    shutdown -r now
halt 立刻關(guān)機(jī)    shutdown -h now

用戶登錄/切換用戶

# 用戶登錄
su -用戶名
# 高權(quán)限切換低權(quán)限用戶不需要密碼
# 當(dāng)需要返回到原來(lái)用戶時(shí),使用exit/logout

用戶注銷
logout

用戶注銷

# 運(yùn)行級(jí)別3有效,圖形運(yùn)行級(jí)別無(wú)效
logout

用戶管理

添加用戶

useradd -參數(shù) 參數(shù)值 用戶名
無(wú)參數(shù):創(chuàng)建用戶成功后,會(huì)自動(dòng)創(chuàng)建和用戶的同名的目錄
-d 創(chuàng)建用戶,并給新創(chuàng)建的用戶指定家目錄
-g 創(chuàng)建用戶并指定組名

指定/修改用戶密碼

password 用戶名
# 當(dāng)用戶權(quán)限不夠時(shí),常通過(guò)su -用戶名切換到高權(quán)限用戶

刪除用戶

userdel -參數(shù) 用戶名
無(wú)參數(shù):刪除用戶,但保留家目錄
-r:刪除用戶同時(shí)刪除用戶的家目錄【謹(jǐn)慎】
-f:強(qiáng)制刪除用戶,即使用戶已登錄 

查用戶信息

id 用戶名
# 用戶不存在時(shí),返回?zé)o該用戶

切換用戶

su -用戶名
# 高權(quán)限切換低權(quán)限用戶不需要密碼
# 當(dāng)需要返回到原來(lái)用戶時(shí),使用exit/logout

查看當(dāng)前用戶/登錄用戶

# 方式1
whoami
# 方式2,注意要大寫
who am i

用戶組

新增組
groupadd 組名
刪除組
groupdel 組名
修改用戶的組
usermode -g 用戶組 用戶名
用戶和組相關(guān)文件
/etc/passwd 文件

centos7.6,Linux,linux,運(yùn)維,服務(wù)器

用戶配置文件:記錄用戶的各種信息

每行含義:用戶名:密碼:用戶的UID:組標(biāo)號(hào):注釋性描述:家目錄:登錄Shell

  • 用戶名
  • 用戶的密碼,用x替代
  • 用戶的uid,一般情況下root為0,1-499默認(rèn)為系統(tǒng)賬號(hào),有的更大些到1000,500-65535為用戶的可登錄賬號(hào),有的系統(tǒng)從1000開(kāi)始。
  • 用戶的gid,linux的用戶都會(huì)有兩個(gè)ID,一個(gè)是用戶uid,一個(gè)是用戶組id,在我們登錄的時(shí)候,輸入用戶名和密碼,其實(shí)會(huì)先到/etc/passwd查看是否有你輸入的賬號(hào)或者用戶名,有的話將該賬號(hào)與對(duì)應(yīng)的UID和GID(在/etc/group中)讀出來(lái)。然后讀出主文件夾與shell的設(shè)置,然后再去檢驗(yàn)密碼是否正確,正確的話正常登錄。
  • 用戶的賬號(hào)說(shuō)明解釋
  • 用戶的家目錄文件夾
  • 用戶使用的shell,如果換成/sbin/nologin/就是默認(rèn)沒(méi)有登錄環(huán)境的。
/etc/shadow 文件

口令配置文件

每行含義:登錄名:加密口令:最后一次修改時(shí)間:最小時(shí)間間隔:最大時(shí)間間隔:警告時(shí)間:不活動(dòng)時(shí)間:失效時(shí)間:標(biāo)志

/etc/group 文件

組group配置文件:記錄Linux包含的組的信息

實(shí)用指令

幫助指令

man
man 命令名:查看幫助命令
  f 下一頁(yè)
  b 上一頁(yè)
  q退出


man ls
#查看ls的幫助


help
命令 --help
#獲取命令選項(xiàng)的幫助
實(shí)例:
	ls --help

命令 --help		:簡(jiǎn)潔版幫助
  • 但是不適用內(nèi)部命令,例如cd, help cd
  • 命令特殊時(shí),使用help 命令 比如: help cd

指定運(yùn)行級(jí)別【單次有效】

  • 運(yùn)行級(jí)別說(shuō)明

    • 0:關(guān)機(jī)(千萬(wàn)不能把initdefault 設(shè)置為0
    • 1:?jiǎn)斡脩簦河糜谡一貋G失密碼
    • 2:多用戶沒(méi)有網(wǎng)絡(luò)服務(wù)
    • 3:多用戶有網(wǎng)絡(luò)服務(wù):實(shí)際開(kāi)發(fā)最常用,性能消耗小【GUI消耗很多的性能】
    • 4: 沒(méi)有用到
    • 5:圖形界面:學(xué)習(xí)時(shí)使用較多
    • 6:重新啟動(dòng)(千萬(wàn)不要把initdefault 設(shè)置為6)
  • CentOS7運(yùn)行級(jí)別說(shuō)明

    • centos7后對(duì)/etc/inittab文件進(jìn)行了簡(jiǎn)化

      # 多用戶有網(wǎng)絡(luò)服務(wù)-級(jí)別3
      # multi-user.target: analogous to runlevel 3
      # 圖形界面-級(jí)別5
      # graphical.target: analogous to runlevel 5
      #
      # 顯示當(dāng)前默認(rèn)級(jí)別
      systemctl get-default
      #
      # 設(shè)置默認(rèn)級(jí)別
      systemctl set-default 級(jí)別的字符
      
      # 設(shè)置級(jí)別 為 多用戶有網(wǎng)絡(luò)服務(wù)
      systemctl set-default multi-user.target
      
# 切換運(yùn)行級(jí)別
init [0123456]

文件目錄類

pwd指令
  • 顯示當(dāng)前工作目錄的絕對(duì)路徑
pwd
ls指令
  • 顯示目錄內(nèi)容列表
ls [選項(xiàng)] [目錄或文件]
-a 顯示當(dāng)前目錄所有的文件和目錄,包括隱藏的【Linux隱藏文件以.開(kāi)頭】
-l 以列表形式顯示信息

ls -l可以簡(jiǎn)寫為ll,同時(shí)還可銜接上其他的參數(shù),例如ll -a,等價(jià) ls -al
cd指令
  • 切換用戶到指定的工作目錄
cd [選項(xiàng)] 絕對(duì)或相對(duì)路徑

~ 切換到家目錄 cd ~
: 切換到家目錄 cd :
.. 返回到當(dāng)前目錄的上一級(jí)目錄
mkdir
  • 創(chuàng)建目錄
mkdir [選項(xiàng)] 要?jiǎng)?chuàng)建的目錄

-p 創(chuàng)建多級(jí)目錄
rmdir
  • 刪除目錄
# 刪除的是空目錄,如果目錄中有內(nèi)容時(shí)無(wú)法刪除
rmdir [選項(xiàng)] 要?jiǎng)h除的空目錄

# 強(qiáng)制刪除非空目錄
# r:遞歸 f:對(duì)象為文件或目錄
rm -rf 要?jiǎng)h除的沒(méi)記錄
touch指令
  • 創(chuàng)建空文件
# 建議帶上后綴,雖然Linux不區(qū)分后綴,但方便程序員區(qū)分文件類型
touch 文件名稱
cp指令
  • 拷貝或移動(dòng)文件到指定目錄
cp [選項(xiàng)] 源文件 目的地

-r 遞歸復(fù)制整個(gè)文件夾

# 強(qiáng)行覆蓋并不提示
\cp,將cp替換成\cp即可不提示信息
rm指令
  • 移除文件或目錄
rm [選項(xiàng)] 要?jiǎng)h除的文件或目錄

-r 遞歸刪除整個(gè)文件夾
-f 強(qiáng)制刪除不提示
mv指令
  • 移動(dòng)文件或目錄
mv 源移動(dòng)的文件與目錄 目的地

# 如果在目的地上存在同名的,那么就是重命名
# 不存在,則為移動(dòng)
cat指令
  • 顯示文件內(nèi)容【部分顯示】
# 目錄查看不了
# 只能查看,不能修改
# 通常和管道命令 | more分流顯示
# 或和 | grep 字段進(jìn)行文件過(guò)濾
cat [選項(xiàng)] 要查看的文件 

-n 顯示行號(hào)

= 輸出當(dāng)前行的行號(hào)
q 退出
回車 下一行
空格 下一頁(yè)
more指令
  • 顯示文件內(nèi)容【全屏顯示文本文件內(nèi)容】

缺點(diǎn):只能向前瀏覽,無(wú)法向后,而且是一次加載完后再顯示

more 要查看的文件

常用操作
回車 下一行
空格 下一頁(yè)
q 退出
= 輸出當(dāng)前行的行號(hào)
:f 輸出文件名和當(dāng)前行
less指令
  • 分屏上下翻頁(yè)瀏覽文件內(nèi)容【比more更加強(qiáng)大】

優(yōu)點(diǎn):根據(jù)需要加載,可向前向后

less 要查看的文件

常用操作
-N 顯示行數(shù)

空格/pagedown 下一頁(yè)
pageup 上一頁(yè)

g 移動(dòng)到文件開(kāi)頭
G 移動(dòng)到文件結(jié)尾
10g 移動(dòng)到第10行
/關(guān)鍵字 查找指定的關(guān)鍵字,n:向下查找下一個(gè)該關(guān)鍵字,N向上查找上一個(gè)關(guān)鍵字
q 退出
echo指令
  • 輸出內(nèi)容到控制臺(tái)
echo [選項(xiàng)] [輸出內(nèi)容]

常用的輸出內(nèi)容
$PATH 環(huán)境變量
$HOSTNAME 本地用戶名
head指令
  • 顯示文件的開(kāi)頭部分

  • 默認(rèn)顯示文件前10行內(nèi)容

head [選項(xiàng)] [參數(shù)] 要顯示的文件

-n:后邊接一個(gè)整數(shù),表示顯示開(kāi)頭的前幾行
head -n 10 文件名
tail指令
  • 顯示文件的結(jié)尾部分

  • 默認(rèn)顯示文件后10行內(nèi)容

tail [選項(xiàng)] [參數(shù)] 要顯示的文件

-n:后邊接一個(gè)整數(shù),表示顯示結(jié)尾的前幾行
-f:實(shí)時(shí)顯示文件最新追加的內(nèi)容,即是文檔的所有更新
>指令 和 >>指令
  • > 輸出重定向 >>追加

通常搭配其他指令一起使用,以下提供幾個(gè)使用參考

# 將列表內(nèi)容覆蓋寫入a.txt中
ls -l > a.txt

# 將列表內(nèi)容追加寫入a.txt中
ls -l >> a.txt

# 將文件a.txt覆蓋到b.txt中
cat a.txt > b.txt

# 將字符串"aaa"追加到a.txt
echo "aaa" >> a.txt
ln指令
  • 用來(lái)為文件創(chuàng)建鏈接

  • 軟件也稱為符號(hào)連接,類似于Windows中的快捷方式

  • 鏈接類型分為硬鏈接和符號(hào)鏈接兩種,默認(rèn)的鏈接類型是硬鏈接。如果要?jiǎng)?chuàng)建符號(hào)鏈接必須使用"-s"選項(xiàng)

  • 符號(hào)鏈接文件不是一個(gè)獨(dú)立的文件,它的許多屬性依賴于源文件,所以給符號(hào)鏈接文件設(shè)置存取權(quán)限是沒(méi)有意義的。

# 給源文件床創(chuàng)建一個(gè)軟鏈接
ln -s [源文件或目錄] [軟連接名]
history指令
  • 查看執(zhí)行過(guò)的歷史命令
history [選項(xiàng)] 
-n 只列出最近的n條記錄
vim

文本編輯工具, VI是visual interface的縮寫,即可視化接口。vim 即 vi IMproved,在 vi 的基礎(chǔ)上做了很多改進(jìn)

vim的安裝

如果沒(méi)有vim的那么請(qǐng)使用yum進(jìn)行安裝

yun install -y vim  
vim的工作模式

vim一般有6種工作模式。

  • 普通模式:使用vim打開(kāi)一個(gè)文件時(shí)默認(rèn)模式,也叫命令模式,允許用戶通過(guò)各種命令瀏覽代碼、滾屏等操作。
  • 插入模式:也可以叫做編輯模式,在普通模式下敲擊 i 、a 或 o 就進(jìn)入插入模式,允許用戶通過(guò)鍵盤輸入、編輯。
    • i : 在光標(biāo)所在字符前開(kāi)始插入
    • a : 在光標(biāo)所在字符后開(kāi)始插入
    • o : 在光標(biāo)所在行的下面另起一新行插入
    • s : 刪除光標(biāo)所在的字符并開(kāi)始插入
    • I : 在光標(biāo)所在行的行首開(kāi)始插入 如果行首有空格則在空格之后插入
    • A : 在光標(biāo)所在你行的行尾開(kāi)始插入
    • O : 在光標(biāo)所在行的上面另起一行開(kāi)始插入
    • S : 刪除光標(biāo)所在行并開(kāi)始插入
  • 命令行模式:在普通模式下,先輸入冒號(hào):,接著輸入命令,就可以通過(guò)配置命令對(duì)vim進(jìn)行配置了,如改變顏色主題、顯示行號(hào)等,這些配置命令也可以保存到/etc/vim/vimrc配置文件中,每次打開(kāi)默認(rèn)配置執(zhí)行。
  • 可視化模式:在普通模式下敲擊前盤上的 v 鍵,就進(jìn)入可視化模式,然后移動(dòng)光標(biāo)就可以選中一塊文本,常用來(lái)完成文本的復(fù)制、粘貼、刪除等操作。
  • 替換模式:如果我們想修改某個(gè)字符,不需要先進(jìn)入插入模式,刪除,然后再輸入新的字符,直接在普通模式下,敲擊R鍵就可以直接替換。
  • EX模式:類似于命令行模式,可以一次運(yùn)行多個(gè)命令

vim的各種工作模式可以通過(guò)不同的鍵進(jìn)行切換,用戶統(tǒng)一使用ESC鍵返回到普通模式。

打開(kāi)文件和關(guān)閉文件
打開(kāi)文件
vi  /path/to/file

關(guān)閉文件
在末行模式下
wq: 保存退出
q!: 退出不保存
移動(dòng)光標(biāo)
逐字符移動(dòng): 
	h:左移動(dòng)
	l:右移動(dòng)
	j:向下移動(dòng)
	k:向上移動(dòng)
行內(nèi)跳轉(zhuǎn):
0:跳轉(zhuǎn)到行首
$: 跳轉(zhuǎn)到行尾
行間跳轉(zhuǎn);(末行模式)
num: 跳轉(zhuǎn)到某一行(末行模式)
G: 跳轉(zhuǎn)行最后一行(編輯模式)
gg: 跳轉(zhuǎn)到第一行(編輯模式)
翻屏操作
在編輯模式下:
ctrl+f 向下翻一頁(yè)
ctrl+b 向上翻一頁(yè)
刪除命令
dd: 刪除光標(biāo)所在行 (編輯模式)
3dd:從光標(biāo)行開(kāi)始刪除3行(編輯模式)
: 1,4d 刪除第一行到第四行(末行模式)
復(fù)制 和 粘貼命令
yy 復(fù)制光標(biāo)所在行 (編輯模式)
2yy 從光標(biāo)行開(kāi)始復(fù)制2行(編輯模式)
p: 粘貼命令
查找
文件的查找
/parttern 從前往后查找
?parttern 從后往前查找
操作
	n:  下一個(gè)匹配的字符串
	N: 上一個(gè)匹配的字符串

set number 設(shè)置行號(hào)    
或者 
set nu

取消行號(hào)
set nu!

日期時(shí)間類

date指令
顯示系統(tǒng)時(shí)間與日期
# 顯示當(dāng)前日期時(shí)間 
date [選項(xiàng)] [格式化日期]


默認(rèn) 顯示日期時(shí)間
-s 設(shè)置日期

# 常用的年月日時(shí)分秒(得帶雙引號(hào)),因?yàn)樽隽孙@示格式的拼接
date "+%Y-%m-%d %H:%M:%S"

# 常用格式
%Y 年
%m 月
%d 天
%H 時(shí)
%M 分
%S 秒
%u 1-7星期數(shù),1代表星期一
設(shè)置系統(tǒng)時(shí)間與日期
date -s 字符串時(shí)間

# 設(shè)置系統(tǒng)的時(shí)間和日期
date -s "2020-01-01 21:56:12"
cal指令 顯示當(dāng)前日歷
cal [選項(xiàng)] [月份] [年份]

-m 星期一作為一周的第一天

# 顯示當(dāng)前日歷
cal 
# 顯示2020年1月的日歷
cal -m 1 2020

搜索查找類

find指令 文件搜索
find 范圍 選項(xiàng)

作用
1. 避免大范圍搜索,會(huì)非常耗費(fèi)系統(tǒng)資源
2. find是在系統(tǒng)當(dāng)中搜索符合條件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配

常用選項(xiàng)
-name 查詢方式 按照指定的文件名查找文件
-user 用戶名 查找屬于指定用戶名所有文件
-nouser 查找沒(méi)有所有者的文件
-size 文件大小 按照指定的文件大小查找文件(通常是指定一個(gè)范圍)
  +n 大于
  -n 小于
  單位 k M G
atime	文件訪問(wèn)時(shí)間
	+n n天 前 訪問(wèn)的文件, 流入+10 10前
	n  n天 當(dāng)天 訪問(wèn)的文件 10 前10當(dāng)天
	-n n天 內(nèi) 訪問(wèn)的文件 -10 10天內(nèi)

ctime	改變文件屬性時(shí)間
	+n n天 前 修改屬性的文件
    n  n天 當(dāng)天 修改屬性的文件
    -n n天 內(nèi) 修改屬性的文件
mtime	修改文件時(shí)間
	+n n天 前 修改的文件
    n  n天 當(dāng)天 修改文件
    -n n天 內(nèi) 修改文件


# 按擁有者查找/opt下用戶名為nobody的文件
find /opt -user nohody
# 查找整個(gè)Linux系統(tǒng)下大于200M的文件
find / -size +200M
按文件名查找
find / -name install.log
#避免大范圍搜索,會(huì)非常耗費(fèi)系統(tǒng)資源
#在根目錄下查找, find是在系統(tǒng)當(dāng)中搜索符合條件的文件名.如果需要匹配,使用通配符匹配,通配符是完全匹配
find / -name install*.log

#在root目錄下, 按名字查詢: 不區(qū)分大小寫
find /root -iname install.log   
按時(shí)間查詢
find /var/log -mtime +10
#查找10天前修改的文件

-10		10天內(nèi)修改文件
10			10天當(dāng)天修改的文件
+10		10天前修改的文件

atime	文件訪問(wèn)時(shí)間
ctime	改變文件屬性時(shí)間
mtime	修改文件時(shí)間
按文件查找
find  / -size 25k
#查找文件大小是25KB的文件,注意k是小寫的.

-25k		小于25KB的文件
25k		等于25KB的文件
+25k		大于25KB的文件

find / -size 25M
#查找文件大小是25MB的文件,注意M是大寫的.
按用戶查找
find /root -user root   #按照所有者搜索
	
find /root -nouser  #查找沒(méi)有所有者的文件
locate指令 比 find 好用的文件查找工具
  • 優(yōu)點(diǎn):可以快速定位文件的路徑

  • 原理:先建立一個(gè)包括系統(tǒng)內(nèi)所有檔案名稱及路徑的數(shù)據(jù)庫(kù),之后當(dāng)尋找時(shí)就只需查詢這個(gè)數(shù)據(jù)庫(kù)。無(wú)需遍歷整個(gè)文件系統(tǒng)。為了保證查詢結(jié)果的精確度,管理員必須要定期更新locate時(shí)刻

  • 注意事項(xiàng):locate指令是基于數(shù)據(jù)庫(kù)進(jìn)行查詢的,所以第一次運(yùn)行的時(shí)候需要?jiǎng)?chuàng)建locate數(shù)據(jù)庫(kù)(必須要管理員來(lái)運(yùn)行)

    # 直接執(zhí)行即可
    updatedb
    
locate 搜索文件

# 搜索/opt下的redis開(kāi)頭的文件
locate /opt/redis
which指令 查找并顯示給定命令的絕對(duì)路徑
which 指令

# 查找ls指令所在的目錄
which ls
grep指令 字符串搜索 和 管道符號(hào) |
grep
  • grep (global search regular expression(RE) and print out the line,全面搜索正則表達(dá)式并把行打印出來(lái))
  • 可使用正則表達(dá)式搜索文本,并把匹配的行打印出來(lái)。用于過(guò)濾/搜索的特定字符。可使用正則表達(dá)式能配合多種命令使用
grep [選項(xiàng)] 查找內(nèi)容 源文件

常用選項(xiàng)
-n 顯示匹配行以及行號(hào)
-i 忽略字母大小寫

# 在hello.txt 文件中,查找"yes"所在行,并顯示行號(hào)
# 方法一
cat -n /home/hello.txt | grep yes
# 方法二
grep -n yes /home/hello.txt
管道符號(hào) |
  • 表示將前一個(gè)命令的處理結(jié)果輸傳遞給后面的命令處理(類似責(zé)任鏈模式)

壓縮和解壓類

gzip/gunzip 指令
  • gzip:壓縮文件,文件經(jīng)過(guò)gzip壓縮后會(huì)多".gz"的擴(kuò)展名,即是*.gz文件。文本類文件壓縮率在60%~70%

    gzip 文件
    
  • gunizp:解壓文件,解壓*.gz形式的文件

    gunzip 文件.gz
    

案例

壓縮/home下的hello.txt文件
gzip /home/hello.txt

# 解壓/home下的hello.txt.gz文件
gunzip /home/hello.txt.gz
zip/unzip指令
  • 文件經(jīng)它壓縮后會(huì)另外產(chǎn)生具有“.zip”擴(kuò)展名的壓縮文件

  • zip

    # 壓縮的內(nèi)容可以為文件或目錄
    # XXX.zip為壓縮后的文件的命名
    zip [選項(xiàng)] XXX.zip 將要壓縮的內(nèi)容
    
    常用選項(xiàng)
    -r 遞歸壓縮:即是壓縮目錄, 如果不指定-r, 那么只會(huì)壓縮文件夾,該文件夾的文件是不會(huì)壓縮的
    
  • unzip

    # 解壓
    unzip [選項(xiàng)] XXX.zip
    
    -d 目錄:指定解壓后文件存放的目錄
    

案例

# 將/home下的所有文件/目錄壓縮稱myhome.zip
zip -r myhome.zip /home/

# 將myhome.zip解壓到/opt/tmp目錄下(存在/opt/tmp)
unzip -d /opt/tmp/ /home/myhome.zip
tar指令 打包并壓縮

打包和壓縮的概念:

  • 打包:指將一大堆文件或目錄變成一個(gè)總的文件
  • 壓縮:指將一個(gè)大的文件通過(guò)一些壓縮算法變成一個(gè)小文件
  • 為什么要區(qū)分這兩個(gè)概念呢?這源于Linux中很多壓縮程序只能針對(duì)一個(gè)文件進(jìn)行壓縮,這樣當(dāng)你想要壓縮一大堆文件時(shí),你得先將這一大堆文件先打成一個(gè)包(tar命令),然后再用壓縮程序進(jìn)行壓縮(gzip bzip2命令)。

-f: 打包壓縮后的包名,切記,后面只能打包壓縮后的包名。

# 打包目錄,壓縮后的文件格式.tar.gz
tar [選項(xiàng)] XXX.tar.gz 打包的內(nèi)容
多個(gè)打包內(nèi)容使用空格間隔


常用選項(xiàng)
-z 打包同時(shí)壓縮
-c 產(chǎn)生.tar打包文件
-x 解包.tar文件
-v 顯示詳情信息
-f 指定壓縮后的文件名,這個(gè)參數(shù)是最后一個(gè)參數(shù),后面只能接壓縮文件名
-C 指定目錄



# 案例
# 解壓多個(gè)文件,將/home/pig/txt 和 /home/cat.txt 壓縮稱pc.tar.gz
tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

# 將pc.tar.gz 解壓到/opt/tmp2目錄下(存在該目錄)
tar -zxvf pc.tar.gz -C /opt/tmp2

組管理和權(quán)限管理

組介紹:Linux中的用戶必須屬于一個(gè)組,不能獨(dú)立于組外

  • 所有者,當(dāng)前文件/目錄的所有者,一般為創(chuàng)建者,可以修改
  • 所在組:當(dāng)前用戶所有的組,某個(gè)用戶創(chuàng)建一個(gè)文件后,這個(gè)文件的所在組就是該用戶所在的組(默認(rèn))
  • 其他組:除了文件的所有者,以及文件所有者所在的組,其他用戶都是都是文件的其它組
  • 改變用戶所在組:修改用戶的組,方便進(jìn)行權(quán)限管理。注意!要root勸降才能修改某個(gè)用戶所在的組
  • 理解:所在者–自己 所在組–家人 其他組–外人

組管理

文件/目錄 所有者

一般為文件的創(chuàng)建者,誰(shuí)創(chuàng)建該文件,那么所有者就是誰(shuí),可以手動(dòng)更改所有者

  • 查看文件的所有者

    ls -ahl
    
  • 修改文件所有者

    chown 用戶名 文件名
    
    -R 如果是目錄,則使其下的所有子文件或目錄遞歸生效
    
    
    # 使用root創(chuàng)建一個(gè)apple.txt,然后修改所有者為tom(tom用戶存在)
    touch apple.txt
    chown tom apple.txt
    
文件/目錄 所在組
組的創(chuàng)建
groupadd 組名
查看文件/目錄所在組
ls -ahl
修改文件/目錄所在的組
chgrp 組名 文件/目錄
修改用戶所在組
usermod -g 新組名 用戶名
usermod -d 目錄名 用戶名 # 改變?cè)撚脩舻卿浀某跏寄夸?。?。?!用戶需要有進(jìn)入新目錄的權(quán)限!否則不了!

權(quán)限管理

權(quán)限的概念

計(jì)算資源:(一切皆文件)

權(quán)限:定義資源或服務(wù)的訪問(wèn)能力,稱之為權(quán)限

定義某一個(gè)特定的人資源或者服務(wù)的訪問(wèn)能力, 用戶

定義一類用戶具有訪問(wèn)某個(gè)資源或服務(wù)的能力. 用戶組(存放一些列用戶的容器),同時(shí)用戶組還擁有具有訪問(wèn)某個(gè)資源的權(quán)限

定義一個(gè)資源的權(quán)限:

  • 用戶具有該資源的權(quán)限(文件所有者,屬主)
  • 用戶組具有該資源的權(quán)限(屬組)
  • 其他用戶(既不是屬主,也不是屬組)

文件權(quán)限:

r, 可讀 可以執(zhí)行類似cat命令的操作

w, 可寫 可以編輯或者刪除此文件

x 可執(zhí)行

ls -l顯示的內(nèi)容

-rw-r–r–. 1 root root 231 4月 1 2020 .bashrc

解析:

-rw-r–r–:文件類型 所有者權(quán)限 所屬組權(quán)限 其他組權(quán)限

1:如果是文件則代表硬鏈接數(shù), 是目錄則代表子目錄數(shù)量

root :所有者

root :所屬組

231:文件大小(單位是字節(jié)),如果是文件夾,就顯示一個(gè)固定的值4096

4月 1 2020:最后修改的日期

.bashrc:文件名

權(quán)限位置劃分說(shuō)明

0-9位說(shuō)明(一共10位,0為基底)

  • 0位(d,-,l,c,b)文件類型
    • l:軟鏈接,相當(dāng)于Windows的快捷方式
    • d:目錄,相當(dāng)于Windows的文件夾
    • c:字符設(shè)備文件,比如鼠標(biāo),鍵盤
    • b:塊設(shè)備,比如硬盤
  • 1-3位
    • 所有者擁有的權(quán)限
  • 4-6位
    • 所屬組中用戶擁有的權(quán)限
  • 7-9位
    • 除了所有者, 所屬組之外的其他用戶的對(duì)該文件的權(quán)限
rwx權(quán)限含義詳解

注意:文件和目錄的rwx含義是不一樣

文件的rwx
  • r:可讀(read),可以讀取,查看
  • w:可寫(write),可以修改,但是不代表可以刪除該文件,刪除一個(gè)文件的前提的是對(duì)該文件所在的目錄有執(zhí)行的權(quán)限
  • x:可執(zhí)行(execute),可以被執(zhí)行
目錄的rwx
  • r:可讀(read),可以讀取,ls查看目錄的內(nèi)容
  • w:可寫(write),可以修改,對(duì)目錄內(nèi)創(chuàng)建+刪除+重命名目錄
  • x:可執(zhí)行(execute),可以進(jìn)入該目錄

可用數(shù)字代表所擁有的權(quán)限r(nóng)=4,w=2,x=1,數(shù)組可以組合,例如rw=4+2=6

chmod 修改權(quán)限

參數(shù)

-R, --recursive:對(duì)目錄以及目錄下的文件遞歸執(zhí)行更改權(quán)限操作。

權(quán)限

  • 符號(hào)權(quán)限
    • u符號(hào)代表當(dāng)前用戶。
    • g符號(hào)代表和當(dāng)前用戶在同一個(gè)組的用戶,以下簡(jiǎn)稱組用戶。
    • o符號(hào)代表其他用戶。
    • a符號(hào)代表所有用戶。
    • +符號(hào)代表添加目標(biāo)用戶相應(yīng)的權(quán)限。
    • -符號(hào)代表刪除目標(biāo)用戶相應(yīng)的權(quán)限。
    • =符號(hào)代表添加目標(biāo)用戶相應(yīng)的權(quán)限,刪除未提到的權(quán)限
  • 數(shù)字權(quán)限
    • r符號(hào)代表讀權(quán)限以及八進(jìn)制數(shù)4。
    • w符號(hào)代表寫權(quán)限以及八進(jìn)制數(shù)2。
    • x符號(hào)代表執(zhí)行權(quán)限以及八進(jìn)制數(shù)1
    • X符號(hào)代表如果目標(biāo)文件是可執(zhí)行文件或目錄,可給其設(shè)置可執(zhí)行權(quán)限。
通過(guò)"+“、”-“、”="變更權(quán)限
# + 增加權(quán)限
chmod u+rwx,g+rx 文件/目錄名
# - 減少權(quán)限
chmod u-rx 文件/目錄名
# = 賦值權(quán)限
chmod u=rwx,g=rwx,o=rx 文件/目錄名
通過(guò)數(shù)字變更權(quán)限
chmod u=7,g=5 文件/目錄名

chmoe u=5 文件/目錄名

# 可以混用
chmoe u=7,g=rwx,o=5 文件/目錄名
Sudo 單次提升權(quán)限

提升權(quán)限的原理: root把本來(lái)只能超級(jí)用戶執(zhí)行的命令賦予普通用戶執(zhí)行, sudo的操作對(duì)象是系統(tǒng)命令

sudo的操作對(duì)象是系統(tǒng)命令

visudo
#實(shí)際修改的是/etc/sudoers文件

root ALL=(ALL) ALL
#用戶名 被管理主機(jī)的地址=(可使用的ip地址) 授權(quán)命令(絕對(duì)路徑)
%wheel ALL=(ALL) ALL
#%組名 被管理注解的地址=(可使用的ip地址) 授權(quán)命令(絕對(duì)路徑)



# 添加一個(gè)用戶
useradd whitebrocade
# 設(shè)置用戶的密碼
passwd  root

# 為該用戶設(shè)置指定的權(quán)限
whitebrocade ALL = (ALL)  /usr/sbin/shutdown

# 切換到 whitebrocade 用戶后,使用sudo命令執(zhí)行shutdown
sudo shutdown -h now

定時(shí)任務(wù)調(diào)度

crond 任務(wù)調(diào)度

crontab進(jìn)行定時(shí)任務(wù)設(shè)置

任務(wù)調(diào)度:指系統(tǒng)在某個(gè)時(shí)間執(zhí)行的特定命令或程序

任務(wù)調(diào)度分類:

  • 系統(tǒng)工作:有些工作必須周而復(fù)始地執(zhí)行,如病毒掃描
  • 個(gè)別用戶工作:個(gè)別用戶希望執(zhí)行某些程序,如sql備份
crontab [選項(xiàng)]

-e 編輯crontab定時(shí)任務(wù)
-l 查詢當(dāng)前用戶的crontab任務(wù)
-r 刪除當(dāng)前用戶所有的crontab任務(wù)  

service crond restart:重啟任務(wù)調(diào)度
# crontab編寫定時(shí)任務(wù)語(yǔ)法
順序:分 時(shí) 日 月 周 命令
minute   hour   day   month   week   command 

# 字段說(shuō)明
minute: 表示分鐘,0到59
hour:表示小時(shí),0到
day:表示日期,從1到31
month:表示月份,1到12
week:表示星期幾,從0到7,這里的0和7代表星期日。
command:要執(zhí)行的命令,可以是系統(tǒng)命令,也可以是自己編寫的腳本文件。

# 5個(gè)日期時(shí)間字段可使特殊字符
星號(hào)(*):代表所有可能的值,例如month字段如果是星號(hào),則表示在滿足其它字段的制約條件后每月都執(zhí)行該命令操作。
逗號(hào)(,):可以用逗號(hào)隔開(kāi)的值指定一個(gè)列表范圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數(shù)之間的中杠表示一個(gè)整數(shù)范圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時(shí)間的間隔頻率,例如“0-23/2”表示每?jī)尚r(shí)執(zhí)行一次。同時(shí)正斜線可以和星號(hào)一起使用,例如*/10,如果用在minute字段,表示每十分鐘執(zhí)行一次
案例
每天凌晨2點(diǎn)備份數(shù)據(jù)庫(kù)中地所有數(shù)據(jù)庫(kù)(重名會(huì)覆蓋) 
0 2 * * * mysqldump -u root -p123456 -A -> /home/all.sql.bak

at定時(shí)任務(wù) 在指定時(shí)間執(zhí)行一個(gè)任務(wù)

  • at的守護(hù)進(jìn)程atd會(huì)以后臺(tái)模式運(yùn)行,檢查作業(yè)隊(duì)列來(lái)運(yùn)行
  • 默認(rèn)情況下,atd守護(hù)進(jìn)程每60秒檢查作業(yè)隊(duì)列
    • 有作業(yè)時(shí):檢查作業(yè)運(yùn)行的時(shí)間,如果時(shí)間與當(dāng)前時(shí)間匹配,就運(yùn)行此作業(yè)
  • 執(zhí)行完一個(gè)任務(wù)后,不再執(zhí)行此任務(wù)(從隊(duì)列中取出)
  • 使用at命令的時(shí)候,一定要保證atd進(jìn)程啟動(dòng)
    • 使用ps -ef | grep atd查看atd進(jìn)程是否運(yùn)行
at [選項(xiàng)] [時(shí)間]
Ctrl + D 結(jié)束at命令的輸入,輸出兩次


常用選項(xiàng)
-I atq的別名,at -I 等價(jià) atq
-d atrm的別名,at -d 等價(jià) atrm
-m 當(dāng)指定的任務(wù)被完成后,給用戶發(fā)郵件
-v 顯示任務(wù)將被執(zhí)行的時(shí)間
-c 打印任務(wù)的內(nèi)容到標(biāo)準(zhǔn)輸出
-V 顯示版本信息
-q <隊(duì)列> 使用指定的隊(duì)列
-f <文件> 從指定文件讀入任務(wù)而不是標(biāo)準(zhǔn)輸入讀入
-t <時(shí)間參數(shù)> 以是按參數(shù)的形式提交要運(yùn)行的任務(wù)

磁盤分區(qū)、掛載

分區(qū)

原理

  • Linux只有一個(gè)根目錄,一個(gè)獨(dú)立且唯一的文件結(jié)構(gòu),Linux每一個(gè)分區(qū)都是用來(lái)組成整個(gè)文件系統(tǒng)的一部分
  • Linux使用“載入”的處理方法,它的整個(gè)文件系統(tǒng)包含了一整套的文件和目錄,且將一個(gè)分區(qū)和一個(gè)目錄聯(lián)系起來(lái)(映射),這時(shí)要載入的一個(gè)分區(qū)將使它的存儲(chǔ)空間在一個(gè)目錄下獲得

硬盤說(shuō)明

Linux硬盤分IDE硬盤和SCSI硬盤,目前基本都是SCSI硬盤

  • IDE(Integrated Drive Electronics)接口,也稱為ATA接口,以前主要用于連接機(jī)械硬盤,
    • 對(duì)于IDE硬盤,驅(qū)動(dòng)器標(biāo)識(shí)符為“hdx~”,其中“hd”表明分區(qū)所在的設(shè)備的類型,這里指IDE硬盤。
    • “x”為盤號(hào)
      • a:基本盤
      • b:基本從屬盤
      • c:輔助主盤
      • d:輔助從屬盤
    • “~”代表分區(qū),前四個(gè)區(qū)用數(shù)字1到4表示,他們使主分區(qū)或擴(kuò)展分區(qū),第5開(kāi)始就是邏輯分區(qū)
  • SCSI(Small Computer System Interface)接口,主要用于連接服務(wù)器級(jí)別的硬盤和硬盤陣列。
    • SCSI硬盤驅(qū)動(dòng)器標(biāo)識(shí)符為“sdx~”,"sd"來(lái)表示發(fā)呢去所在設(shè)備的類型,其余則和IDE硬盤的表示方法一樣
列出塊設(shè)備信息
lsblk
lsblk -f
磁盤情況查詢
# 查詢指定目錄磁盤使用情況,默認(rèn)為當(dāng)前目錄
df -h

-s 指定目錄占用大小匯總
-h 帶計(jì)量單位, 以KB以上的單位來(lái)顯示
-a 所有文件
--max-deph=子目錄深度
掛載
軟連接 和 硬連接
概念

鏈接: Linux具有為一個(gè)文件起多個(gè)名字的功能,稱為鏈接。被鏈接的文件可以存放在相同的目錄下,但是必須有不同的文件名,而不用在硬盤上為同樣的數(shù)據(jù)重復(fù)備份。另外,被鏈接的文件也可以有相同的文件名,但是存放在不同的目錄下,這樣只要對(duì)一個(gè)目錄下的該文件進(jìn)行修改,就可以完成對(duì)所有目錄下同名鏈接文件的修改。對(duì)于某個(gè)文件的各鏈接文件,我們可以給它們指定不同的存取權(quán)限,以控制對(duì)信息的共享和增強(qiáng)安全性。

ln命令會(huì)保持每一處鏈接文件的同步性,也就是說(shuō),不論你改動(dòng)了哪一處,其它的文件都會(huì)發(fā)生相同的變化。

文件鏈接有兩種形式,即硬鏈接和符號(hào)鏈接。

ln功能說(shuō)明:是為某一個(gè)文件在另外一個(gè)位置建立一個(gè)同步的鏈接,當(dāng)我們需要在不同的目錄,用到相同的文件時(shí),我們不需要在每一個(gè)需要的目錄下都放一個(gè)必須相同的文件,我們只要在某個(gè)固定的目錄,放上該文件,然后在其它的目錄下用ln命令鏈接(link)它就可以,不必重復(fù)的占用磁盤空間。

  • inode:是文件系統(tǒng)中存儲(chǔ)文件元信息(文件的創(chuàng)建者、大小、日期等)的區(qū)域,稱為節(jié)點(diǎn)索引。

centos7.6,Linux,linux,運(yùn)維,服務(wù)器

硬連接

建立硬鏈接時(shí),在另外的目錄或本目錄中增加目標(biāo)文件的一個(gè)目錄項(xiàng),這樣,一個(gè)文件就登記在多個(gè)目錄中

創(chuàng)建硬鏈接后,己經(jīng)存在的文件的索引節(jié)點(diǎn)號(hào)(inode)會(huì)被多個(gè)目錄文件項(xiàng)使用。一個(gè)文件的硬鏈接數(shù)可以在目錄的長(zhǎng)列表格式的第二列中看到,無(wú)額外鏈接的文件的鏈接數(shù)為1,有1個(gè)文件鏈接時(shí),連接數(shù)為2,也就說(shuō)硬鏈接并沒(méi)創(chuàng)建新文件,而是以鏈接數(shù)進(jìn)行一個(gè)控制

在默認(rèn)情況下,ln命令創(chuàng)建硬鏈接, 每個(gè)硬鏈接都指向同一個(gè)索引節(jié)點(diǎn)。ln命令會(huì)增加鏈接數(shù),rm命令會(huì)減少鏈接數(shù)。刪除一個(gè)硬鏈接不會(huì)影響其他硬鏈接,只有當(dāng)最后一個(gè)硬鏈接被刪除后, 也就是一個(gè)文件的鏈接數(shù)為0,文件內(nèi)容才會(huì)被刪除, 否則不會(huì)從文件系統(tǒng)中物理刪除該文件。

對(duì)硬鏈接有如下限制:

  • 不能對(duì)目錄文件做硬鏈接
  • 不能在不同的文件系統(tǒng)之間做硬鏈接。就是說(shuō),鏈接文件和被鏈接文件必須位于同一個(gè)文件系統(tǒng)中, 不同分區(qū)的文件不能進(jìn)行連接
軟連接

符號(hào)鏈接也稱為軟鏈接,是將一個(gè)路徑名鏈接到一個(gè)文件。這些文件是一種特別類型的文件

與硬鏈接不同的是,符號(hào)鏈接確實(shí)是一個(gè)新文件,當(dāng)然它具有不同的索引節(jié)點(diǎn)號(hào);而硬鏈接并沒(méi)有建立新文件。軟件鏈接建立了文件!!!但是這個(gè)文件是指向索引節(jié)點(diǎn)的

軟硬鏈接的區(qū)別
  • 刪除源文件或軟目錄, 刪除的是數(shù)據(jù), 不會(huì)刪除連接,此時(shí)軟鏈接會(huì)失效,硬鏈接不會(huì)
    • 如果再次創(chuàng)建同源的源文件或目錄, 那么軟連接將繼續(xù)指向該文件的新數(shù)據(jù)。
  • 軟鏈接 可以為文件和目錄(允許不存在)創(chuàng)建鏈接,硬鏈接 只可以為文件創(chuàng)建鏈接
  • 軟鏈接 可以跨文件系統(tǒng),硬鏈接 必須是同一個(gè)文件系統(tǒng)
  • 軟鏈接的文件權(quán)限 可以和源文件不一樣,硬鏈接的文件權(quán)限 一定和源文件一樣
  • 符號(hào)鏈接的大小是其鏈接文件的路徑名中的字節(jié)數(shù)
    • 當(dāng)用ln -s命令列出文件時(shí),可以看到符號(hào)鏈接名后有一個(gè)箭頭指向源文件或目錄,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的數(shù)字“14”恰好說(shuō)明源文件名original_file由14個(gè)字符構(gòu)成。
應(yīng)用場(chǎng)景

軟鏈接:作為可執(zhí)行文件的快捷方式。

硬鏈接:備份重要文件。

# 軟鏈接(源文件必須寫成絕對(duì)路徑)
ln -s SOURCE TARGET

[root@localhost ~]# ln -s /home/file /tmp/soft_file

# 硬鏈接, 默認(rèn)即是硬連接, 如果想要?jiǎng)?chuàng)建軟連接的話, 那么攜帶參數(shù)-s
ln SOURCE TARGET

[root@localhost ~]# ln /home/file /tmp/hard_file
掛載 和 軟鏈接的區(qū)別

在Linux中,掛載(mount)和軟鏈接(symbolic link)都是實(shí)現(xiàn)文件系統(tǒng)之間連接的機(jī)制,但兩者有以下關(guān)鍵區(qū)別:

  1. 掛載是將一個(gè)文件系統(tǒng)附加到一個(gè)指定的目錄上,這個(gè)目錄成為掛載點(diǎn)。掛載之后,通過(guò)掛載點(diǎn)就可以訪問(wèn)被掛載的文件系統(tǒng)。

  2. 軟鏈接是一個(gè)特殊的文件,其包含一個(gè)指向另一個(gè)文件或目錄的引用路徑。軟鏈接可以讓一個(gè)文件或目錄在文件系統(tǒng)的不同位置出現(xiàn)。

  3. 掛載是在目錄級(jí)別上的,它將兩個(gè)文件系統(tǒng)連接起來(lái),文件系統(tǒng)之間的數(shù)據(jù)獨(dú)立存儲(chǔ)。軟鏈接是在文件/目錄級(jí)別上的。

  4. 掛載不會(huì)復(fù)制文件,是真正訪問(wèn)另一個(gè)文件系統(tǒng)。軟鏈接只是引用,不會(huì)占用實(shí)際空間。

  5. 掛載依賴文件系統(tǒng)的支持,需要內(nèi)核支持。軟鏈接可以在任意文件系統(tǒng)上創(chuàng)建。

  6. 掛載通常是臨時(shí)的,重啟后失效,需要在/etc/fstab配置自動(dòng)掛載。軟鏈接是持久的。

  7. 掛載需要root權(quán)限。軟鏈接可以任何用戶創(chuàng)建。

總之,掛載是跨文件系統(tǒng)的目錄級(jí)別連接和訪問(wèn),更強(qiáng)大也更復(fù)雜。軟鏈接只是文件內(nèi)引用,更加輕量級(jí)。

磁盤情況-實(shí)用指令
# 統(tǒng)計(jì)/opt文件夾下文件的個(gè)數(shù)
ls -l /opt |  grep "^-" | wc -l

# 統(tǒng)計(jì)/opt文件夾下目錄的個(gè)數(shù)
ls -l /opt | grep "^d" | wc -l

# 統(tǒng)計(jì)/opt文件夾下文件的個(gè)數(shù),包括子文件夾里
ls -lR /opt | grep "^-" | wc -l

# 以樹(shù)狀顯示目錄結(jié)構(gòu)tree目錄
# 如果該命令不存在,那么就使用yum install -y tree進(jìn)行安裝
tree /home/

網(wǎng)絡(luò)配置

網(wǎng)絡(luò)基本概念

  • ip地址:在網(wǎng)絡(luò)通信中主機(jī)的標(biāo)識(shí)符(好比手機(jī)號(hào)碼)
  • mac地址:主機(jī)的物理網(wǎng)卡的唯一標(biāo)識(shí)符(好比身份證號(hào)碼)
  • 子網(wǎng)掩碼:用于區(qū)分主機(jī)的IP地址中的網(wǎng)絡(luò)地址和主機(jī)地址,并由此確定該主機(jī)的IP地址的網(wǎng)段
  • 網(wǎng)關(guān):就是一個(gè)網(wǎng)絡(luò)中的主機(jī)連接到另一個(gè)網(wǎng)絡(luò)的主機(jī)的關(guān)口
  • DNS:域名解析服務(wù)器,把域名解析成對(duì)應(yīng)的IP地址

Linux網(wǎng)絡(luò)環(huán)境配置

方法一:自動(dòng)獲取

說(shuō)明:登錄后,通過(guò)界面的來(lái)設(shè)置自動(dòng)獲取ip(如果ip沖突了,自動(dòng)切換ip)

特點(diǎn):Linux啟動(dòng)會(huì)自動(dòng)獲取IP

缺點(diǎn):IP地址可能變換

方法二:指定ip

說(shuō)明:直接修改配置文件來(lái)指定IP,并可以連接外網(wǎng)

步驟

  1. 編輯 vim /etc/sysconfig/network-scripts/ifcfg-ens33

    有些它不叫ifcfg-ens33, 叫ifcfg-ens0等, 具體叫網(wǎng)卡名叫什么名字都不一定

    在/etc/sysconfig/network-script在這個(gè)目錄下面,存放的是網(wǎng)絡(luò)接口(網(wǎng)卡)的腳本文件(控制文件),ifcfg-eth0是默認(rèn)的第一個(gè)網(wǎng)絡(luò)接口,如果機(jī)器中有多網(wǎng)絡(luò)接口,那么名字就將依此類推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3…(這里面的文件是相當(dāng)重要的,涉及到網(wǎng)絡(luò)能否正常工作),但是我們有多個(gè)網(wǎng)卡, 所以得到了后面稱為ifcfg-en33

    1. ifcfg-ens33文件說(shuō)明

      # 網(wǎng)絡(luò)類型, 理解成網(wǎng)卡類型也行,通常使Ethernet, 表示接口類型為以太網(wǎng)
      TYPE="Ethernet"
      # 不使用代理
      PROXY_METHOD="none"
      # 非Only用于瀏覽器的接口
      BROWSER_ONLY="no"
      # IP的配置方法[none|static|bootp|dhcp]
      # 對(duì)應(yīng)的設(shè)置(引導(dǎo)時(shí)不使用協(xié)議|靜態(tài)分配IP|BOOTP協(xié)議|DHCP協(xié)議)
      # DHCP協(xié)議是自動(dòng)分配IP, 當(dāng)某個(gè)ip沖突的時(shí)候, 網(wǎng)卡會(huì)重新選區(qū)其它未使用的IP進(jìn)行分配
      # static協(xié)議是固定的IP, 由我們自己手動(dòng)配置IP, 當(dāng)出現(xiàn)IP沖突時(shí), 需要我們手動(dòng)解決
      BOOTPROTO="dhcp"
      # 默認(rèn)路由接口
      DEFROUTE="yes"
       # IPv4配置失敗不會(huì)致命
      IPV4_FAILURE_FATAL="no"
      # 啟用IPv6
      IPV6INIT="yes"
      # 啟用IPv6自動(dòng)配置
      IPV6_AUTOCONF="yes"
      # 默認(rèn)IPv6路由接口
      IPV6_DEFROUTE="yes"
      # IPv6配置失敗不會(huì)致命
      IPV6_FAILURE_FATAL="no"
       # 使用穩(wěn)定的IPv6地址以保證隱私
      IPV6_ADDR_GEN_MODE="stable-privacy"
      # 接口名
      NAME="ens33"
      # 隨機(jī)id
      UUID="c64e4ad0-d49d-4419-b84a-149493779ca6"
      # 接口名(設(shè)備,網(wǎng)卡), 現(xiàn)在理解成網(wǎng)卡名
      DEVICE="ens33"
      # 系統(tǒng)啟動(dòng)的時(shí)候網(wǎng)卡是否自啟動(dòng)(yes/no),不用想, 肯定得自動(dòng)啟動(dòng)
      ONBOOT="yes"
      
    2. 新增以及要修改的(注意字母不要寫錯(cuò)了!!!寫錯(cuò)了不起作用!)

      # 修改
      BOOTPROTO="static"
      ONBOOT="yes"
      
      #新增
      # ip地址隨意寫
      # 0, 2, 255不可以寫
      # 0: 做網(wǎng)段IP
      # 2: 做網(wǎng)關(guān)地址
      # 255: 做廣播地址
      IPADDR="xxx.xxx.xxx.xxx"    #新增:配置靜態(tài)IP地址,按需配置
      # 子網(wǎng)掩碼通常時(shí)255.255.255.0,可以去vm中配置里看
      NETMASK="255.255.255.0"   #新增:配置子網(wǎng)掩碼
      # 要和VM 中的虛擬網(wǎng)絡(luò)編輯器中 NAT設(shè)置的網(wǎng)關(guān)IP配置要一樣,否者無(wú)法聯(lián)網(wǎng)
      # 網(wǎng)關(guān)配置IP通常和子網(wǎng)IP前三段一致,最后一段不同,網(wǎng)關(guān)最后一個(gè)通常取2
      GATEWAY="xxx.xxx.xxx.xxx"   #新增:配置網(wǎng)關(guān)
      # DNS解析, 通常使用8.8.8.8或者是8.8.8.4
      DNS1="8.8.8.8"        #新增:配置DNS
      
      
      # 參考配置
      IPADDR="192.168.132.101"
      NETMASK="255.255.255.0"
      GATEWAY="192.168.132.2"
      # DNS解析
      DNS1="8.8.8.8"
      DNS2="8.8.8.4"
      
  2. 修改/etc/resolv.conf

    這個(gè)文件時(shí)

    vim /etc/resolv.conf
    
    # Generated by NetworkManager
    nameserver 8.8.8.8
    nameserver 8.8.8.4
    
  3. 設(shè)置完后要重新啟動(dòng)服務(wù)

    service network restart
    # 或者
    systemctl restart network
    
  4. 修改主機(jī)名和host映射(云服務(wù)器的話通常會(huì)設(shè)置)

  • 為了方便記憶給Linux系統(tǒng)設(shè)置主機(jī)名

    # 查看主機(jī)名
    hostname
    
    # 注意!!修改后要重新啟動(dòng)才生效?。。?!
    # 修改/etc/hostname文件,指定新的主機(jī)名
    vim /etc/hostname
    
  1. 設(shè)置hosts映射(可不設(shè)置)

    作用:可以在本機(jī)通過(guò)主機(jī)名找到該Linux系統(tǒng)

    windows 映射文件為
    C:\Windows\System32\drivers\etc\hosts
    
    配置格式
    ip地址 自定義主機(jī)名
    例如
    192.168.200.130 CentOS_Study
    
    
    Linux在/etc/hosts中
    配置格式同window一樣
    
如果重啟動(dòng)網(wǎng)絡(luò)服務(wù)失敗
方法1 修改mac地址
# 1 虛擬機(jī)設(shè)置 --> 網(wǎng)絡(luò)適配器 -> MAC地址
# 2 修改  /etc/sysconfig/network-scripts/ifcfg-ens33 中 HWADADDR 的值為mac地址
HWADADDR="mac地址"
方法2 禁用NetworkManager
# 1 關(guān)閉NetworkMananger服務(wù)
# systemctl stop NetworkManager

# 2 禁止NetworkMananger服務(wù)開(kāi)機(jī)自啟動(dòng)
systemctl disable NetworkManager

# 3 重啟network服務(wù)
systemctl restart network

主機(jī)名解析過(guò)程分析(Host、DNS)

  • Hosts:一個(gè)文本文件,用來(lái)記錄IP和Hostname的映射關(guān)系
  • DNS:域名系統(tǒng)(Domain Name System),是互聯(lián)網(wǎng)上作為域名和IP地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù)

以用戶在瀏覽器輸入www.baidu.com為例進(jìn)行分析

  1. 瀏覽器先檢查瀏覽器緩存中有沒(méi)有該域名解析IP地址(這個(gè)都是本地緩存的,還沒(méi)到hosts映射文件中)
  • 有:調(diào)用該IP完成解析
  • 沒(méi)有:檢查DNS解析器緩存
    • 有:直接返回IP完成解析
  1. 一般來(lái)說(shuō),當(dāng)電腦第一次成功訪問(wèn)某個(gè)網(wǎng)站后,在一定時(shí)間內(nèi),瀏覽器和操作系統(tǒng)會(huì)緩存該網(wǎng)站的IP地址(DNS解析記錄)
  2. 如果本地解析器緩存沒(méi)有找到對(duì)應(yīng)的映射,檢查系統(tǒng)中hosts文件中有沒(méi)有配置對(duì)應(yīng)的域名IP映射
    • 有:完成解析返回
  3. 如果本地DNS解析器緩存和hosts文件中均沒(méi)有找到對(duì)應(yīng)的IP,則到域名服務(wù)DNS進(jìn)行解析

防火墻

firewall-cmd 防火墻服務(wù)指令
firewall-cmd [選項(xiàng) ... ]

--help 幫助命令
-- state 防火墻狀態(tài)
--permanent 永久固化【通常搭配打開(kāi)和關(guān)閉端口使用】
--add-port=端口/協(xié)議 打開(kāi)端口號(hào)【臨時(shí)打開(kāi),永久需要和--permanent一起使用,臨時(shí)打開(kāi)不需要reload,reload會(huì)導(dǎo)致臨時(shí)打開(kāi)端口失效】
--remover-port=端口/協(xié)議 關(guān)閉端口號(hào)【臨時(shí)關(guān)閉,永久需要和--permanent一起使用】
--reload 重新加載【永久關(guān)閉防火墻才需要重新加載】

--list-services 查看所有開(kāi)放的服務(wù)
--list-port 查看所有開(kāi)放的端口
--query-port=端口/協(xié)議 查看指定的端口是否打開(kāi)
--zone-public 公共區(qū)域, 如果不指定那么就默認(rèn)操作default zone, default zone通常映射到public zone公共區(qū)域。所以沒(méi)有指定zone時(shí),配置的規(guī)則會(huì)默認(rèn)應(yīng)用到public公共區(qū)域。
 	也就說(shuō)如果不指定zone參數(shù)的效果例如 firewall-cmd --add-port=80/tcp , 實(shí)際上也是等價(jià)于 firewall-cmd --zone=public --add-port=80/tcp, 也就是說(shuō),默認(rèn)都會(huì)影響公共區(qū)域public zone的規(guī)則。如果需要配置內(nèi)部或可信區(qū)域,則必須使用--zone=trusted等指定。
不指定時(shí)容易錯(cuò)誤配置公共區(qū)域,導(dǎo)致服務(wù)器開(kāi)放了不安全的端口。




# 常用命令
# 永久開(kāi)放redis的6379端口
firewall-cmd --zone-public --permanent --add-port=6379/tcp
# 永久開(kāi)放mysql的8080端口
firewall-cmd --zone-public --permanent --add-port=8080/tcp

進(jìn)程管理

基本介紹

  1. Liniux中,每一個(gè)執(zhí)行的程序都是成為一個(gè)進(jìn)程。每一個(gè)進(jìn)程都分配一個(gè)ID號(hào)(PID,進(jìn)程號(hào))
  2. 每一個(gè)進(jìn)程都可能以兩種方式存在 。前臺(tái)和后臺(tái),由于屏幕無(wú)法看到進(jìn)程,通常使用后臺(tái)方式執(zhí)行
    • 前臺(tái):用戶目前的屏幕上可以操作的
    • 后臺(tái):后臺(tái)進(jìn)程實(shí)際操作的
  3. 一般系統(tǒng)的服務(wù)都是以后臺(tái)進(jìn)程的方式存在的,而且常駐在系統(tǒng)中,直到關(guān)機(jī)才結(jié)束

ps指令 報(bào)告當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)

# 列出目前所有的正在內(nèi)存當(dāng)中的程序
ps -aux | grep xxx【展示風(fēng)格】

# 列出所有進(jìn)程
ps -ef | greps xxx 【全格式,B22SD風(fēng)格】


-a 所有進(jìn)程
-u:以用戶為主的格式來(lái)顯示程序狀況。
-e 所有程序
-f:顯示UID,PPIP,C與STIME欄位


# 例如
[root@Cenos-study ~]# ps -aux | grep python
root        842  0.0  1.6 359016 29816 ?        Ssl  18:28   0:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root       1229  0.0  0.9 574288 17512 ?        Ssl  18:28   0:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root     104364  0.0  0.0 112828   976 pts/2    S+   21:39   0:00 grep --color=auto python


[root@Cenos-study ~]# ps -ef | grep python
root        842      1  0 18:28 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root       1229      1  0 18:28 ?        00:00:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root     105669  88143  0 21:40 pts/2    00:00:00 grep --color=auto python

指令執(zhí)行結(jié)果字段說(shuō)明

  • USER:用戶名
  • PID :進(jìn)程號(hào)
  • %CPU:該進(jìn)程使用掉的 CPU 資源百分比
  • %MEM:該進(jìn)程所占用的物理內(nèi)存百分比
  • VSZ :該進(jìn)程使用掉的虛擬內(nèi)存量 (Kbytes)
  • RSS :該進(jìn)程占用的固定的內(nèi)存量 (Kbytes)
  • TTY :該進(jìn)程是在那個(gè)終端機(jī)上面運(yùn)作,若與終端機(jī)無(wú)關(guān),則顯示 ?,另外, tty1-tty6 是本機(jī)上面的登入者程序,若為 pts/0 等等的,則表示為由網(wǎng)絡(luò)連接進(jìn)主機(jī)的程序。
  • STAT:該程序目前的狀態(tài),主要的狀態(tài)有
    • R :該程序目前正在運(yùn)作,或者是可被運(yùn)作
    • S :睡眠
    • T :該程序目前正在偵測(cè)或者是停止了
    • Z :僵死進(jìn)程
    • D:短期等待
    • N:該進(jìn)程擁有比普通優(yōu)先級(jí)更低的優(yōu)先級(jí)
  • START:該進(jìn)程被觸發(fā)啟動(dòng)的時(shí)間
  • TIME :該進(jìn)程實(shí)際使用 CPU 運(yùn)作的時(shí)間
  • COMMAND:?jiǎn)?dòng)進(jìn)程使用的命令和參數(shù),過(guò)長(zhǎng)會(huì)被截?cái)囡@示

終止進(jìn)程 kill 和 killall

# 通過(guò)進(jìn)程號(hào)殺死進(jìn)程
kill [選項(xiàng)] 進(jìn)程號(hào)

# 使用進(jìn)程的名稱來(lái)殺死一組進(jìn)程
# 在系統(tǒng)因負(fù)載過(guò)大而變慢的很有用
killall 進(jìn)程名稱

常用選項(xiàng)
-9 強(qiáng)制進(jìn)程立刻停止


案例
# 終止遠(yuǎn)程登錄服務(wù)sshd
kill sshd對(duì)應(yīng)的進(jìn)程號(hào)

查看進(jìn)程樹(shù) pstree

pstree [選項(xiàng)]


-p 顯示進(jìn)程PID
-u 顯示進(jìn)程所屬用戶

free 查看內(nèi)存占用

free
內(nèi)存占用情況:
total:內(nèi)存總數(shù);
used:已經(jīng)使用的內(nèi)存數(shù);
free:空閑的內(nèi)存數(shù);
buffers Buffer:緩存內(nèi)存數(shù);
cached Page:緩存內(nèi)存數(shù)。

service 服務(wù)管理

  • 介紹:服務(wù)(service)本質(zhì)就是進(jìn)程,但是運(yùn)行在后臺(tái),監(jiān)聽(tīng)某個(gè)端口,等待其他程序的請(qǐng)求,也稱為守護(hù)進(jìn)程
  • 在CentOS7.0后很多服務(wù)不再使用service而是systemctl
  • service指令管理的服務(wù)在/etc/init.d查看
service 控制系統(tǒng)服務(wù)的實(shí)用工具
service 服務(wù)名 [start|stop|restart|reload|status]

start 啟動(dòng)
stop 關(guān)閉
restart 重新啟動(dòng)
reload 重新加載
status 顯示服務(wù)狀態(tài)
開(kāi)機(jī)流程說(shuō)明
開(kāi)機(jī) --> BIOS --> /boot --> systemd進(jìn)程1 --> 運(yùn)行級(jí)別 --> 運(yùn)行級(jí)別對(duì)應(yīng)的服務(wù)
chkconfig指令 檢查或設(shè)置系統(tǒng)的各種服務(wù)

可以通過(guò)chkconfig命令給服務(wù)的各個(gè)運(yùn)行級(jí)別設(shè)置自啟動(dòng)/關(guān)閉

  • chkconfig指令管理的服務(wù)在**/etc/init.d**
  • 重新設(shè)置服務(wù)后自啟動(dòng)或關(guān)閉,需要重啟機(jī)器reboot才生效
chkconfig(選項(xiàng))
--list 列出所有的系統(tǒng)服務(wù)
chkconfig --level 等級(jí) 服務(wù)名 on/off 服務(wù)在指定的級(jí)別開(kāi)啟/關(guān)閉自啟動(dòng)

systemctl指令 系統(tǒng)服務(wù)管理器指令

  • systemctl = service + chkconfig的組合
  • systemctl管理的服務(wù)在**/user/lib/systemd/system**
systemctl [選項(xiàng)] 服務(wù)名

常用選項(xiàng)
start 啟動(dòng)服務(wù)
stop 關(guān)閉服務(wù)
restart 重新啟動(dòng)服務(wù)
status 查看服務(wù)的狀態(tài)
list-unit-files 顯示開(kāi)機(jī)自啟動(dòng)的服務(wù),可以通過(guò)grep過(guò)濾
enable 設(shè)置服務(wù)開(kāi)啟自啟動(dòng)
disable 設(shè)置服務(wù)關(guān)閉自啟動(dòng)
is-enabled 查看該服務(wù)是否開(kāi)機(jī)自啟動(dòng)
reload 重新加載

防火墻服務(wù)開(kāi)啟關(guān)閉
# 查看防火墻
systemctl status firewalld

# 關(guān)閉防火墻(臨時(shí)關(guān)閉,下次開(kāi)機(jī)后防火墻又會(huì)自啟動(dòng))
systemctl stop firewalld

# 開(kāi)啟防火墻
systemctl start firewalld

# 永久關(guān)閉防火墻(關(guān)閉自啟動(dòng))
systemctl disable firewalld
top 動(dòng)態(tài)監(jiān)控進(jìn)程

top和ps類似,都是顯示正在執(zhí)行的進(jìn)程,但是top可以在執(zhí)行一段時(shí)間可以更新正在運(yùn)行的進(jìn)程

top [選項(xiàng)]

常用選項(xiàng)
-d 秒數(shù) #指定top命令每個(gè)幾秒更新,默認(rèn)3秒
-i 使top不顯示任何顯示或僵死進(jìn)程
-p 通過(guò)指定監(jiān)控進(jìn)程ID來(lái)監(jiān)控單獨(dú)一個(gè)進(jìn)程的狀態(tài)


交互操作
P 以CPU使用率排序,默認(rèn)為該項(xiàng)
M 以內(nèi)存的使用率排序
N 以PID排序
k 終止一個(gè)進(jìn)程
q 退出top
任務(wù)進(jìn)程
第一行:
10:01:23 — 當(dāng)前系統(tǒng)時(shí)間
126 days, 14:29 — 系統(tǒng)已經(jīng)運(yùn)行了126天14小時(shí)29分鐘(在這期間沒(méi)有重啟過(guò))
2 users — 當(dāng)前有2個(gè)用戶登錄系統(tǒng)
load average: 1.15, 1.42, 1.44 — load average后面的三個(gè)數(shù)分別是1分鐘、5分鐘、15分鐘的負(fù)載情況。

第二行:
Tasks — 任務(wù)(進(jìn)程),系統(tǒng)現(xiàn)在共有183個(gè)進(jìn)程,其中處于運(yùn)行中的有1個(gè),182個(gè)在休眠(sleep),stoped狀態(tài)的有0個(gè),zombie狀態(tài)(僵尸)的有0個(gè)。

第三行:cpu狀態(tài)
6.7% us — 用戶空間占用CPU的百分比。
0.4% sy — 內(nèi)核空間占用CPU的百分比。
0.0% ni — 改變過(guò)優(yōu)先級(jí)的進(jìn)程占用CPU的百分比
92.9% id — 空閑CPU百分比
0.0% wa — IO等待占用CPU的百分比
0.0% hi — 硬中斷(Hardware IRQ)占用CPU的百分比
0.0% si — 軟中斷(Software Interrupts)占用CPU的百分比

第四行:內(nèi)存狀態(tài)
8306544k total — 物理內(nèi)存總量(8GB)
7775876k used — 使用中的內(nèi)存總量(7.7GB)
530668k free — 空閑內(nèi)存總量(530M)
79236k buffers — 緩存的內(nèi)存量 (79M)

第五行:swap交換分區(qū)
2031608k total — 交換區(qū)總量(2GB)
2556k used — 使用的交換區(qū)總量(2.5M)
2029052k free — 空閑交換區(qū)總量(2GB)
4231276k cached — 緩沖的交換區(qū)總量(4GB)

第五行以下:
PID — 進(jìn)程id
USER — 進(jìn)程所有者
PR — 進(jìn)程優(yōu)先級(jí)
NI — nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
VIRT — 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
RES — 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
SHR — 共享內(nèi)存大小,單位kb
S — 進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運(yùn)行 S=睡眠 T=跟蹤/停止 Z=僵尸進(jìn)程
%CPU — 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
%MEM — 進(jìn)程使用的物理內(nèi)存百分比
TIME+ — 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒
COMMAND — 進(jìn)程名稱(命令名/命令行)
netstart 監(jiān)控網(wǎng)絡(luò)狀態(tài)
netstat [選項(xiàng)]

-a 所有端口
-n 使用ip地址而非域名服務(wù)器
-p 顯示哪個(gè)進(jìn)程在調(diào)用 
-l 監(jiān)聽(tīng)的端口
-t 顯示TCP傳輸協(xié)議的連線情況
-u 顯示UDP傳輸協(xié)議的連線情況

常用選項(xiàng)組合
-an 以ip地址的形式顯示所有端口
-anp 以ip地址的形式顯示所有端口,并顯示調(diào)用的進(jìn)程
-tl 顯示TCP正在監(jiān)聽(tīng)的端口
-ul 顯示UDP正在監(jiān)聽(tīng)的端口
ping指令 測(cè)試主機(jī)之間網(wǎng)絡(luò)的連通性
ping ip地址/主機(jī)名
nohup 后臺(tái)啟動(dòng)服務(wù)
nohup 命令

# 例如后臺(tái)啟動(dòng)redis服務(wù)
nohup redis-server

# 后臺(tái)運(yùn)行Java程序
# 必須指定日志輸出
# 那么在缺省情況下該服務(wù)的所有輸出都被重定向到一個(gè)名為nohup.out的文件中,除非另外指定了輸出文件
nohup java -jar smmp-0.0.1-SNAPSHOT.jar > /opt/ssmp.log


# 又例如
nohup command > myout.file 2>&1 &

# 在后臺(tái)運(yùn)行command命令,并將其標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤都重定向到myout.file文件中
# 2>&1中的符號(hào)說(shuō)明:
# 2 - 表示標(biāo)準(zhǔn)錯(cuò)誤文件描述符(file descriptor)
# & - 表示重定向操作
# 1 - 表示標(biāo)準(zhǔn)輸出文件描述符
# 所以2>&1的意思是將標(biāo)準(zhǔn)錯(cuò)誤(2)重定向到標(biāo)準(zhǔn)輸出(1)。
# 在Linux中,每個(gè)命令運(yùn)行時(shí)會(huì)打開(kāi)三個(gè)文件描述符:
# 0 - 標(biāo)準(zhǔn)輸入
# 1 - 標(biāo)準(zhǔn)輸出
# 2 - 標(biāo)準(zhǔn)錯(cuò)誤
# 我們可以使用> FILE, 2> FILE對(duì)任意一個(gè)或多個(gè)文件描述符進(jìn)行重定向。
# 而2>&1是一種將標(biāo)準(zhǔn)錯(cuò)誤重定向到標(biāo)準(zhǔn)輸出的捷徑寫法,等同于2>FILE 1>FILE二次重定向。
# 所以,這個(gè)命令的全部功能是:
# nohup 使命令在后臺(tái)不掛起運(yùn)行
# command represent要運(yùn)行的命令
# >myout.file 將標(biāo)準(zhǔn)輸出重定向到myout.file
# 2>&1 將標(biāo)準(zhǔn)錯(cuò)誤也重定向到標(biāo)準(zhǔn)輸出
# & 將整個(gè)命令在后臺(tái)運(yùn)行

rpm

rpm:互聯(lián)網(wǎng)下載包的打包以及安裝工具,生成具有.RPM擴(kuò)展名的文件

rpm包名基本格式:名稱-版本號(hào).適用操作系統(tǒng)

  • i686、i86表示32位系統(tǒng),noarch表示通用
rpm [選項(xiàng)]

-q 碰到任何問(wèn)題,優(yōu)先詢問(wèn)用戶,其他選項(xiàng)一般都會(huì)攜帶q一起執(zhí)行
-a 查詢所有rpm軟件包
-q 包名 #查詢某個(gè)軟件包是否安裝
-i 軟件包名 #查軟件的信息【單獨(dú)執(zhí)行就是下載,如果搭配qi就是查詢軟件包的信息】
-l 軟件包名 #查詢軟件包中的文件
-f 文件全路徑名 查詢文件包所屬的軟件包
-e 包名 #卸載rpm包【如果有其他軟件包依賴與要卸載的軟件包,卸載時(shí)會(huì)產(chǎn)生錯(cuò)誤信息】,增加參數(shù)--nodeps,可以強(qiáng)制刪除,但是不推薦,因?yàn)橐蕾囉谠撘蕾嚢某绦蚩赡軣o(wú)法執(zhí)行
-v 提示
-h 進(jìn)度條

rpm 常用命令
安裝一個(gè)包 
# rpm -ivh rpm包全路徑名稱
rpm -ivh --nodeps  <包名> :如果該RPM包的安裝依賴其它包,即使其它包沒(méi)裝,也強(qiáng)迫安裝。 
--force 即使覆蓋屬于其它包的文件也強(qiáng)迫安裝 

查詢一個(gè)包是否被安裝 
# rpm -q <軟件名>

得到被安裝的包的信息 
# rpm -qi < 軟件名> 

列出該包中有哪些文件 
# rpm -ql < 軟件名> 

列出服務(wù)器上的一個(gè)文件或目錄屬于哪一個(gè)RPM包 
#rpm -qf <文件或目錄名>

列出所有被安裝的rpm package 
# rpm -qa 

卸載一個(gè)包 
# rpm -e <軟件名>

#例如強(qiáng)制卸載firefox的軟件包C
rpm -e --nodeps firefox

yum

yum:是一個(gè)shell前端軟件包管理器,基于RPM包管理,能夠從指定的服務(wù)器自動(dòng)下載RPM包并安裝(要連網(wǎng)),可以自動(dòng)處理依賴性關(guān)系,并一次安裝所有依賴的軟件包

CentOS7遠(yuǎn)程yum源配置

yum 的配置文件在 /etc/yum.repos.d 目錄下 ,其中有多個(gè)配置文件,每一個(gè)配置文件中都可以配置一個(gè)或多個(gè)repository, 但是最終會(huì)被合并為一個(gè)交給系統(tǒng),所以多個(gè)文件只是為了方便管理。

實(shí)際使用時(shí),選擇其中一個(gè)配置即可

配置步驟

  1. 備份,將 CentOS-Base.repo 為CentOS-Base.repo.backup

    cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
    
  2. 下載新的 http:#mirrors.aliyun.com/repo/Centos-7.repo,并命名為CentOS-Base.repo

    # CentOs7, 阿里云 和 中科大 二選一即可
    # 阿里云
    sudo wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    # 中科大
    sudo wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
    
    # 更新元數(shù)據(jù)
    sudo yum clean all
    
    # 更新新的元數(shù)據(jù)緩存
    sudo yum makecache
    

yum指令

yum [選項(xiàng)]

list 查找所有軟件列表
install 軟件包名 #下載軟件包
remove  軟甲包名 # 卸載軟件包
update 更新軟件包

搭建JavaEE環(huán)境

安裝JDK8

  1. 創(chuàng)建臨時(shí)文件夾,mkdir /opt/jdk

  2. 通過(guò)Xftp上傳jdk包到j(luò)dk下

  3. 進(jìn)入到臨時(shí)文件夾

    cd /opt/jdk
    
  4. 解壓dk包 【注意替換成自己的版本】

    tar -zxvf jdk-8u261-linux-x64.tar.gz
    
  5. 創(chuàng)建文件夾,存放Java安裝的

    mkdir /user/local/java
    
  6. 將臨時(shí)文件夾解壓的jdk包移動(dòng)到軟件安裝目錄

    mv jdk1.8.0_261 /usr/local/java/
    
  7. 配置環(huán)境變量的配置文件【環(huán)境變量的配置文件在/etc/profile】

    vim /etc/profile
    
    
    # java安裝的目錄,注意時(shí)usr,不是user
    exprot JAVA_HOME=/usr/local/java/jdk1.8.0_261
    # 拼接環(huán)境環(huán)境變量,并添加到path中
    # 注意必須要通過(guò)冒號(hào)連接環(huán)境變量,否則可能很多命令因?yàn)檎也坏江h(huán)境變量而報(bào)錯(cuò)
    export PATH=$PATH:$JAVA_HOME/bin
    
  8. 更新環(huán)境變量

    source /etc/profile
    
  9. 輸入一下三個(gè)指令,如果均有輸出就代表安裝成功

    java
    javac
    java -version
    

安裝JDK11

新建目錄, 并將下載的好jdk-11.0.20_linux-x64_bin.tar.gz上傳到該目錄下

mkdir -p /opt/java

執(zhí)行下述命令

mkdir -p /usr/local/software
ln -s /opt/java/jdk-11.0.20 /opt/java/software/jdk-11 # 軟連接到opt/目錄下的jdk11

在jdk1.8之后,就不在提供jre了,即使安裝后也會(huì)報(bào)一個(gè)沒(méi)有jre的錯(cuò)誤,這時(shí)候可以使用cmd命令自己生成jre。

進(jìn)入jdk目錄根目錄中執(zhí)行

./bin/jlink --module-path jmods --add-modules java.desktop --output jre

編輯環(huán)境變量, 在頭頂添加一下配置文件

vim /etc/profile
# jdk
export JAVA_HOME=/usr/local/software/jdk-11
# jre
export JRE_HOME=$JAVA_HOME

centos7.6,Linux,linux,運(yùn)維,服務(wù)器

更新環(huán)境變量

source /etc/profile

使用yum安裝JDK

查找本地舊的jdk依賴

rpm -qa | grep java

刪除本地Java相關(guān)的依賴

  • 查找
yum -e --nodeps 對(duì)應(yīng)的文件

查找相關(guān)的jdk

yum list | grep jdk

安裝jdk

yum install 指定的版本

配置環(huán)境變量

  • Linux環(huán)境變量是以冒號(hào):分隔開(kāi)的

    當(dāng)jdk大于8后需要手動(dòng)指定, JRE_HOME

export JAVA_HOME=/usr/lib/jvm/jdk版本
export PATH=$PATH:$JAVA_HOME/bin
export JRE_HOME=$JAVA_HOME # 當(dāng)jdk版本大于8的時(shí)候需要指定
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

刷新環(huán)境

  • 重新加載配置文件; 否則需要重新連接才生效。
source /etc/profile

測(cè)試是否安裝成功

# 查看path路徑中是否添加上了
echo $PATH

# 同理
echo $CLASSPATH

# 查看Java版本是否是我們安裝的版本
java -version
java
javac

安裝Tomcat

  1. 檢查系統(tǒng)上是否安裝了mysql( 若安裝了就需要先卸載再使用我們自己的)

    • rpm -qa |grep -i tomcat                          #查看
      rpm -e --nodeps tomcat....   #卸載
      # 卸載的命令根據(jù)查找出來(lái)值進(jìn)行修改
      
  2. 創(chuàng)建臨時(shí)文件夾,用來(lái)存放Tomcat壓縮包

    makdir /opt/tomcat
    
  3. 通過(guò)Xftp上傳到/opt/tomcat

  4. 進(jìn)入到臨時(shí)文件夾

    cd /opt/tomcat
    
  5. 解壓到當(dāng)前目錄

    tar -zxvf apache-tomcat-8.5.59.tar.gz
    
  6. 創(chuàng)建安裝目錄

    mkdir /usr/local/tomcat
    
  7. 移動(dòng)tomcat解壓文件到安裝目錄

    mv apache-tomcat-8.5.59 /usr/local/tomcat/
    
  8. 配置Tomcat環(huán)境變量

    # vim編輯環(huán)境變量配置文件
    vim /etc/profile
    
    # 新增內(nèi)容,tomcat環(huán)境配置
    export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8.5.59
    # 拼接環(huán)境變量
    export PATH=$PATH:$CATALINA_HOME/bin
    
  9. 刷新環(huán)境變量配置

    source /etc/profile
    
  10. 開(kāi)放防火墻的8080端口,以至于遠(yuǎn)程可以訪問(wèn)tomcat

# 注意是永久開(kāi)放,后續(xù)要重載防火墻設(shè)置才能生效
firewall-cmd --permanent --add-port=8080/tcp
  1. 重載一下防火墻的設(shè)置

    firewall-cmd --reload
    
  2. 查看8080端口是否打開(kāi)

    firewall-cmd --query-port=8080/tcp
    
  3. 打印環(huán)境變量,查看是否配置成功

    echo $PATH
    
  4. 啟動(dòng)tomcat,如果環(huán)境變量配置好了,那么任何一處都可以適用以下兩個(gè)命令,沒(méi)配置成功就只能在tomcat/bin目錄執(zhí)行這個(gè)兩個(gè)命令

    # 啟動(dòng)
    startup.sh
    
    # 關(guān)閉
    shutdown.sh
    
    # 訪問(wèn)http:\\127.0.0.1:8080
    

安裝Redis

  1. Redis官方下載對(duì)應(yīng)的redis的tar.gz,注意是Linux的版本 這里以redis7.0.11的安裝為例子

    • # 或者通過(guò)命令直接下載到Linux
      # 避免上傳
      wget http://download.redis.io/redis-stable.tar.gz
      
  2. 在服務(wù)器的/opt下新建文件夾redis

    # 進(jìn)入/opt目錄下
    cd /opt
    # 新建redis
    mkdir redis
    
    # 進(jìn)入redis目錄
    cd redis
    
  3. 上傳redis壓縮包到/usr/redis中,并解壓壓縮包

    tar -zxvf  redis-7.0.5.tar.gz
    
  4. 查看是否有redis的依賴環(huán)境gcc

    gcc --version
    

    centos7.6,Linux,linux,運(yùn)維,服務(wù)器

  5. 安裝基本環(huán)境gcc

    yum install -y gcc
    
  6. 進(jìn)入安裝目錄/opt/redis/redis-7.0.11

    # 進(jìn)入目錄 
    /opt/redis/opt/redis/redis-7.0.11
    # 執(zhí)行編譯
    # make用于編譯程序,生成二進(jìn)制可執(zhí)行文件
    make
    
  7. 安裝

    # make install用于安裝二進(jìn)制文件,復(fù)制到系統(tǒng)目錄中并設(shè)置環(huán)境變量
    # # make install PREFIX=[安裝位置目錄](méi)
    # 現(xiàn)在沒(méi)有指定安裝路徑,那么redis會(huì)默認(rèn)安裝到/usr/local/bin
    make install
    
    # 如果是自定義安裝目錄
    # 如果指定的目錄不存在會(huì)創(chuàng)建,需要注意的是如果指定了安裝了路徑,那么需要記住該位置,后續(xù)會(huì)用于修改配置
    # 在自定義安裝目錄下會(huì)生產(chǎn)bin目錄
    
    # 這個(gè)命令的執(zhí)行安裝了什么內(nèi)容?
    安裝的內(nèi)容有
    redis-benchmark :性能測(cè)試工具,可以在自己本機(jī)運(yùn)行,看看自己本機(jī)性能如何
    redis-check-rdb:修復(fù)有問(wèn)題的dump.rdb文件
    redis-sentinel:Redis集群使用
    redis-check-aof:修復(fù)有問(wèn)題的AOF文件
    redis-cli:客戶端,操作入口
    redis-server:Redis服務(wù)器啟動(dòng)命令
    
  • 如果是自定義安裝,那么需要注意配置環(huán)境變量

    # 編輯環(huán)境變量
    vim /etc/profile
    
    
    # 在文末最后添加
    # 指向make install PREFIX=[安裝位置目錄](méi)中輸入的[安裝位置目錄](méi)
    # 這里以/usr/local/redis/redis-7.0.11為例子
    export REDIS_HOME=/usr/local/redis/redis-7.0.11
    # 指向bin路徑
    export PATH=$PATH:$REDIS_HOME/bin
    
    # esc 退出編輯模式,輸入:wq保存退出
    
    # 刷新環(huán)境變量配置文件
    source /etc/profile
    
  1. 修改配置redis.conf配置文件

    • 修改redis.conf配置文件前先備份

    • 重點(diǎn)修改的地方

      • 修改前 修改后 含義
        daemonize yes,也就說(shuō)默認(rèn)是前臺(tái)模式啟動(dòng) daemonize no 后臺(tái)啟動(dòng)
        默認(rèn)為bind 127.0.0.1 -::1,也說(shuō) 只能本機(jī)連接redis 如果有就修改成bind 0.0.0.0,沒(méi)有新增 表示任意主機(jī)都連接redis
        protected-mode yes protected-mode no 關(guān)閉保護(hù)模式,如果不關(guān)閉的話,那么遠(yuǎn)程是無(wú)法連接的
        默認(rèn)沒(méi)有requirepass,也就是沒(méi)有密碼 找到requirepass,添加 requirepass 123456 設(shè)置redis連接的密碼
      • 實(shí)際開(kāi)發(fā)中移動(dòng)要修改的

        • 連接端口
        • 復(fù)雜的連接密碼
    • # 修改配置文件之前先備份
      # 我解壓的目錄是/opt/redis/redis-7.0.11
      # 對(duì)應(yīng)的配置文件也在這里,所以直接在原地備份一個(gè),備份文件起名為redis.conf.backup
      cp /opt/redis/redis-7.0.11/redis.conf /opt/redis/redis-7.0.11/redis.conf.backup
      
      #打開(kāi)配置文件
      vim /opt/redis/redis-7.0.11/redis.conf
      
      # 1. 關(guān)閉守護(hù)線程模式
      # 注釋daemonize yes
      # 添加daemonize no
      
      # 2. 設(shè)置遠(yuǎn)程IP訪問(wèn)
      # 注釋bind 127.0.0.1 -::1/
      #  新增 bind 0.0.0.0
      
      # 3. 關(guān)閉保護(hù)模式
      # 注釋 protected-mode yes 
      # 添加 protected-mode no
      
      # 4. 添加密碼 
      # requirepass 123456
      
      
      # 保存退出
      wq!
      
    • 修改號(hào)配置文件后需要重新啟動(dòng)配置文件

      • 先關(guān)閉redis-server,重啟

      • # 查找redis相關(guān)的進(jìn)程
        ps -ef | grep redis
        

        centos7.6,Linux,linux,運(yùn)維,服務(wù)器

      • # 根據(jù)查找的結(jié)果 殺死對(duì)應(yīng)的進(jìn)程
        # 我這里是116755 對(duì)應(yīng)就是redis-server進(jìn)程
        # 殺死 116755進(jìn)程
        
        # kill -9 pid
        kill -9 116755
        
        # 再次查詢進(jìn)程中是否還有相關(guān)的redis進(jìn)程
        
        
      • 重新啟動(dòng)redis-server即可

  2. 開(kāi)放防火墻6379端口

    • 查看已近開(kāi)放的防火墻端口

      # 查看防火墻是否開(kāi)始,并順便開(kāi)啟防火墻
      # 查看所有開(kāi)放的端口
      firewall-cmd --reload
      
    • 開(kāi)放6379端口

      # 永久開(kāi)放6479端口
      # 注意!注意!密碼一定要設(shè)置復(fù)雜一些
      firewall-cmd --permanent --add-port=6379/tcp
      
    • 重新加載防火墻

      • 如果不刷新, 那么生效
      # 重新加載防火墻
      firewall-cmd --reload
      
    • 重新查詢所有開(kāi)放的端口, 看是否已經(jīng)開(kāi)放了6379端口

    • # 查看所有開(kāi)放的端口
      firewall-cmd --list-port
      
  3. 后臺(tái)啟動(dòng)redis

    # 使用指定配置文件啟動(dòng)redis-server
    /usr/local/bin/redis-server /opt/redis/redis-7.0.11/redis.conf
    
  4. 本機(jī)連接redis

    # 啟動(dòng)redis客戶端 redis-cli 
    redis-cli
    # 輸入密碼
    auth 132456
    SAle8ZJofZy6NRxcVzQb
    

    centos7.6,Linux,linux,運(yùn)維,服務(wù)器

  5. 遠(yuǎn)程連接redis

    centos7.6,Linux,linux,運(yùn)維,服務(wù)器

Redis配置文件-普通了解
################# 網(wǎng)絡(luò)配置 ##################

# 綁定的ip, 只允許127.0.0.1的用戶訪問(wèn)
# 配置遠(yuǎn)程訪問(wèn)的話必須要注釋掉這個(gè)
# 如果是內(nèi)網(wǎng)可以直接綁定 127.0.0.1, 或者忽略; 0.0.0.0是外網(wǎng),任意用戶都可以訪問(wèn)
bind 127.0.0.1 
# 保護(hù)模式 
# 遠(yuǎn)程訪問(wèn)redis的話,那么必須將保護(hù)模式修改成false
protected-mode yes 
# 端口設(shè)置
port 6379 



################## 通用GENERAL ##################

# 以守護(hù)進(jìn)程的方式運(yùn)行,默認(rèn)是 no,我們需要自己開(kāi)啟為yes!
# 通常都會(huì)修改,避免以前臺(tái)的方式啟動(dòng)
daemonize yes  
# 如果以后臺(tái)的方式運(yùn)行,我們就需要指定一個(gè) pid 文件! 
pidfile /var/run/redis_6379.pid
# 日志 
# Specify the server verbosity level. 
# This can be one of:
# debug (a lot of information, useful for development/testing) 
# verbose (many rarely useful info, but not a mess like the debug level) 
# notice (moderately verbose, what you want in production probably) 生產(chǎn)環(huán)境 
# warning (only very important / critical messages are logged)
loglevel notice 
# 日志的文件位置名 
logfile "" 
# 數(shù)據(jù)庫(kù)的數(shù)量,默認(rèn)是 16 個(gè)數(shù)據(jù)庫(kù) 
databases 16 
# 是否總是顯示LOGO
always-show-logo yes

################## 快照(RDB) ##################
# 如果900s內(nèi),如果至少有一個(gè)1 key進(jìn)行了修改,我們及進(jìn)行持久化操作 
save 900 1 
# 如果300s內(nèi),如果至少10 key進(jìn)行了修改,我們及進(jìn)行持久化操作 
save 300 10 
# 如果60s內(nèi),如果至少10000 key進(jìn)行了修改,我們及進(jìn)行持久化操作 
save 60 10000 


################## security 安全##################
# 密碼,初始為空,也就說(shuō)不需要密碼,如果設(shè)置了密碼,那么需要使用auth 密碼進(jìn)行登錄才能進(jìn)入
requirepass


################## 限制clients ##################

#設(shè)置能連接上redis的最大客戶端的數(shù)量 
maxclients 10000  
#redis 配置最大的內(nèi)存容量 
maxmemory <bytes>
#內(nèi)存到達(dá)上限之后的處理策略
maxmemory-policy noeviction
# 處理策略如下
# 1、volatile-lru:只對(duì)設(shè)置了過(guò)期時(shí)間的key進(jìn)行LRU(默認(rèn)值) 
# 2、allkeys-lru : 刪除lru算法的key 
# 3、volatile-random:隨機(jī)刪除即將過(guò)期key 
# 4、allkeys-random:隨機(jī)刪除 
# 5、volatile-ttl : 刪除即將過(guò)期的 
# 6、noeviction : 永不過(guò)期,返回錯(cuò)誤


################## append only模式 aof配置(持久化保存) ##################
#  #默認(rèn)是不開(kāi)啟aof模式的,默認(rèn)是使用rdb方式持久化的,在大部分所有的情況下,rdb完全夠用! 
appendonly no 
# 持久化的文件的名字
appendfilename "appendonly.aof"   
# appendfsync always # 每次修改都會(huì) sync。消耗性能 
appendfsync everysec # 每秒執(zhí)行一次 sync,可能會(huì)丟失這1s的數(shù)據(jù)! 
# 不執(zhí)行 sync,這個(gè)時(shí)候操作系統(tǒng)自己同步數(shù)據(jù),速度最快
# appendfsync no  !

安裝MySQL5.7版本

  1. 新建文件夾/opt/mysql,并進(jìn)入

    mkdir /opt/mysql
    
    cd /opt/mysql
    
  2. 下載MySQL安裝包或者使用Xftp上傳

    wget http:#dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
    
    # 解壓
    tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
    
  3. 刪除CentOS7.6自帶的類Mysql數(shù)據(jù)庫(kù)mariadb(會(huì)和沖突)

    # 查看mari開(kāi)頭的安裝包,一共兩個(gè)
    rpm -qa | grep mari
    
    rpm -e --nodeps mariadb-libs強(qiáng)制刪除
    rpm -e --nodeps marisa
    
  4. 依次運(yùn)行幾條命令

    # 安裝環(huán)境
    rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
    # 安裝依賴
    rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
    # 安裝客戶端
    rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
    # 安裝服務(wù)端
    rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm
    
  5. 啟動(dòng)MySQL服務(wù)

    systemctl start mysqld.service
    
  6. 設(shè)置用戶密碼(mysql自動(dòng)給root用戶設(shè)置隨機(jī)密碼,第一次需要修改)

    # 查看MySQL設(shè)置的root隨機(jī)用戶密碼
    grep "password" /var/log/mysqld.log
    
    # 復(fù)制查出的密碼
    
    # 登錄用戶(注意-p之后不能輸入密碼,只能命令行中輸入)
    mysql -uroot -p
    輸入密碼
    
    # 設(shè)置密碼策略為0級(jí)別,生產(chǎn)環(huán)境不可用?。。?!
    set global validate_password_policy=0;
    
    
    # 修改密碼(root用戶只能本地登錄)
    set password for 'root'@'localhost' =password('12345678');
    
    
    # 刷新權(quán)限,是新密碼生效
    flush privileges;
    
  7. 設(shè)置MySQL遠(yuǎn)程登錄

    # 切換到mysql數(shù)據(jù)庫(kù)
    use mysql
    
    # 查看數(shù)據(jù)庫(kù)有訪問(wèn)區(qū)權(quán)限的信息
    # 第一次設(shè)置,通常host都是為localhost
    select user, host from user;
    
    # mysql5.7版本之前的授權(quán)
    # all privileges,所有權(quán)限,或者單獨(dú)指定select,update,delete 
    # "*.*"代表所有資源所有權(quán)限,第一個(gè)*表示數(shù)據(jù)庫(kù)名稱,第二個(gè)*表示表名
    # 'root'@%”其中root代表賬戶名,%代表所有的訪問(wèn)地址
    # IDENTIFIED BY '12345678',這個(gè)'12345678'是指遠(yuǎn)程訪問(wèn)密碼,可自定義
    grant all privileges on *.* TO 'root'@'%' identified by '自定義遠(yuǎn)程訪問(wèn)密碼' with grant option;
    # 刷新權(quán)限
    flush privileges;
    
    
    
    
    # mysql8執(zhí)行授權(quán)
    # 創(chuàng)建用戶
    CREATE USER 'root'@'%' IDENTIFIED BY 'root';
    # 授權(quán)
    grant all privileges on *.* to 'root'@'%' ;
    # 刷新權(quán)限
    flush privileges;
    
    grant all privileges on *.* TO 'root'@'%' identified by '12345678' with grant option;
    
  8. 開(kāi)放MySQL對(duì)應(yīng)的端口(不開(kāi)放無(wú)法遠(yuǎn)程連接)

    # 查3306端口是否被開(kāi)放
    firewall-cmd --query-port=3306/tcp
    # 查所有開(kāi)放的端口
    firewal-cmd --list-ports
    
    # 開(kāi)放3306端口
    firewall-cmd --permanent --add-port=3306/tcp
    # 刷新防火墻
    firewall-cmd --reload
    

定期備份數(shù)據(jù)庫(kù)shell腳本

數(shù)據(jù)庫(kù)備份sh腳本
#!/bin/bash

# 數(shù)據(jù)庫(kù)訪問(wèn)主機(jī)
HOST=localhost

# 數(shù)據(jù)庫(kù)用戶名
DB_USER=root

# 數(shù)據(jù)庫(kù)密碼
DB_PASSWORD=12345678

# 要?jiǎng)h除距離當(dāng)前時(shí)間指定天數(shù)
DL_NUM=10

# 備份目錄
BACKUP=/data/backup/db

# 獲取當(dāng)前的日期時(shí)間
DATETIME=$(date +%Y-%m-%d_%H:%M:%S)

# 測(cè)試時(shí)間是否獲取到
# echo $DATETIME

# 創(chuàng)建備份目錄專門存放,如果存在就使用,如果不存在就創(chuàng)建目錄
# 如果不是一個(gè)目錄,就創(chuàng)建(!取反,-d表示文件存在且是一個(gè)目錄)
[ ! -d "${BACKUP}/${DATETIME}" ] && mkdir -p "${BACKUP}/${DATETIME}"

# 所有數(shù)據(jù)庫(kù)備份,并壓縮為gz格式
mysqldump -u${DB_USER} -p${DB_PASSWORD} --host=${HOST} --all-databases  | gzip > ${BACKUP}/${DATETIME}/$DATETIME.sql.gz

# 進(jìn)入備份目錄
cd ${BACKUP}

# 打包,${DATETIME}的文件以及子目錄下的打包為$DATETIME.tar.gz格式
tar -zcvf $DATETIME.tar.gz ${DATETIME}

# 打包后刪除,打包前的文件${DATETIME},該目錄以及該目錄下的子目錄
rm -rf ${BACKUP}/${DATETIME}

# 刪除指天數(shù)前的備份文件
find ${BACKUP} atime +${DL_NUM} -name "*.tar.gz" -exec rm -rf {} \;

# 提示信息
echo "備份數(shù)據(jù)庫(kù)所有數(shù)據(jù)庫(kù)成功"
指定時(shí)間備份
  1. 編輯計(jì)時(shí)器設(shè)置

    # 編輯
    crontab -e
    # 查看
    crontab -l
    # 刪除
    crontab -r
    
  2. 編寫調(diào)度任務(wù)crontab -e

    # 寫定時(shí)調(diào)度任務(wù),指定兩點(diǎn)半備份數(shù)據(jù)庫(kù)
    # 分鐘 時(shí) 日 月 周 命令
    # 每天兩點(diǎn)半執(zhí)行一次腳本
    30 2 * * * /opt/sqlBck/mysql_db_backup.sh
    

Shell編程

Shell基本介紹

Shell概述

shell是一個(gè)命令行解釋器,為用戶提供一個(gè)向Linux內(nèi)核發(fā)送請(qǐng)求以便運(yùn)行程序的界面系統(tǒng)級(jí)程序,用戶可以用Shell來(lái)啟動(dòng)、掛起、停止或編寫一些程序

Shell腳本格式要求
  1. 腳本必須以**#!/bin/bash**開(kāi)頭
  2. 腳本需要有可執(zhí)行的權(quán)限(即是是root用戶創(chuàng)建的sh腳本也需要手動(dòng)添加可執(zhí)行權(quán)限)
Shell腳本常用執(zhí)行方式
  1. 輸入腳本的絕對(duì)路徑或相對(duì)路徑(一定要有執(zhí)行權(quán)限?。?!

    # 例如/opt/shcode下有一個(gè)hello.sh腳本
    
    # 使用絕對(duì)路徑執(zhí)行sh腳本
    /opt/shcode/hello.sh
    
    # 使用相對(duì)路徑執(zhí)行sh腳本,假定目前已經(jīng)在/opt/shcode/目錄下
    ./hello.sh
    
    
  2. sh命令執(zhí)行(無(wú)需執(zhí)行權(quán)限也能執(zhí)行

    # 絕對(duì)路徑執(zhí)行
    sh /opt/shcode/hello.sh
    
    # 相對(duì)路徑執(zhí)行,假定在/opt/shcode/下
    sh hello.sh
    

Shell語(yǔ)法

shell注釋
  1. 單行注釋

    # 注釋內(nèi)容
    
  2. 多行注釋(“:<<!” 和 “!” 獨(dú)自占一行)

    :<<!
    注釋內(nèi)容
    !
    
shell變量
shell變量分類

變量分為兩種,分別為系統(tǒng)變量和用戶自定義變量

  • 系統(tǒng)變量:
$HOME
$PWD
$SHELL
$USER
  • 顯示當(dāng)前shell中所有變量:set
shell變量的定義
  • 定義變量:變量名=值

    • 注意!等號(hào)之間不能有空格!不遵守就報(bào)錯(cuò)
  • 撤銷變量:uset 變量名

  • 聲明靜態(tài)變量:readonly 變量

    • 注意,不能使用unset撤銷,會(huì)報(bào)錯(cuò)
  • 將命令的返回值賦值給變量

    • 使用反引號(hào)

      A=`date`
      
    • 使用$()

      A=$(date)
      
設(shè)置環(huán)境變量
# 將shell變量輸出為環(huán)境變量/全局變量
export 變量名=變量值

# 更新配置文件
source 配置文件
# 環(huán)境變量的配置文件通常在/etc/profile,所以更新環(huán)境配置文件為
source /etc/profile

# 查詢變量名
echo $變量名
# 環(huán)境變量名為HOME,所以查看環(huán)境變量的值就可以為
echo $HOME
位置參數(shù)變量
# n為大于0的整數(shù),
# $0代表命令的本身
# $1-$9代表傳入第1到第9個(gè)參數(shù)
# 10以上需要用大括號(hào)包含,例如第10個(gè)使用${10},第11個(gè)使用${11}
$n 


# 這個(gè)變量代表命令行中所有的參數(shù)
# $*把所有參數(shù)當(dāng)作一個(gè)整體
$*


# 這個(gè)變量代表命令行中所有的參數(shù)
# $@把每個(gè)參數(shù)分別對(duì)待
$@

# 代表命令行中所有參數(shù)的個(gè)數(shù)
$#

實(shí)例腳本

#!/bin/bash

# 打印命令行的參數(shù),體會(huì)$*和$@的區(qū)別
for i in "$*"
do
  echo "$i"
done

ehco "-------"

for j in "$@"
do
  echo "$j"
done
預(yù)定義變量

基本介紹:shell設(shè)計(jì)者提前定義好的變量,可以直接在shell腳本中使用

# 當(dāng)前進(jìn)程的進(jìn)程號(hào),即是PID
$$

# 后臺(tái)運(yùn)行的最后一個(gè)進(jìn)程的進(jìn)程號(hào)
$!


# 最后一次執(zhí)行命令返回的狀態(tài)
# 如果這個(gè)變量的值為0,證明命令正確執(zhí)行
# 如果不為0(具體的數(shù)字,由命令自己決定),那么證明上一個(gè)命令執(zhí)行不正確
$?

執(zhí)行腳本

#!/bin/bash

echo "當(dāng)前執(zhí)行的線程id=$$"

# 以后臺(tái)的方式運(yùn)行一個(gè)腳本,并獲取他的進(jìn)程號(hào)
# 該腳本存在才行
/opt/shcode/hello.sh &
echo "最后一個(gè)執(zhí)行的線程id=$!"

echo "執(zhí)行的結(jié)果=$?"
運(yùn)算符
# $(("運(yùn)算式"))
# $[運(yùn)算式]
# expr 運(yùn)算式

注意事項(xiàng)
1 expr運(yùn)算符間要有空格,如果希望將expr的結(jié)果賦值給某個(gè)變量,就是用反引號(hào)``
    例如:expr 1 + 2
          A=`expr 1 + 3`
2 expr后邊的乘、除、取余 分別為 \* / %

條件判斷
條件判斷和if-elif判斷
if [ 條件判斷式 ]
then
  代碼
elif [條件判斷式]
then
  代碼
fi

注意事項(xiàng)

  1. 條件和中括號(hào)必須要有空格
  2. fi作為判斷條件的結(jié)尾
  3. 判斷后必須得銜接then
  4. 非空返回true 空返回false,這里的空指字符串的空串
    • 例如:[ 1 ] 返回true [ “” ] 返回false
  5. 0返回true 1返回false
  6. &&且 ||或 !取反同樣適用

常用判斷條件匯總

  • = 字符串比較
  • 兩個(gè)整數(shù)比較
    • -lt 小于
    • -le 小于等于
    • -eq 等于
    • -gt 大于
    • -ge 大于等于
    • -ne 不等于
  • 按文件權(quán)限進(jìn)行判斷
    • -r 有讀權(quán)限
    • -w 有寫權(quán)限
    • -x 有執(zhí)行權(quán)限
  • 按照文件類型進(jìn)行判斷
    • -f 文件存在并且是一個(gè)常規(guī)的文件
    • -e 文件存在
    • -d 文件存并且是一個(gè)目錄

實(shí)例shell腳本

#!/bin/bash
# 判斷/opt/shcode/hello.txt目錄中是否存在該文件
if [ -f /opt/shcode/hello.txt ]
then 
  ehco "存在該文件"
fi


# 根據(jù)輸入的參數(shù),判斷大于等于60輸出“及格了”,小于60輸出“不及格”
if [ $1 -ge 60 ]
then
  echo "及格了"
elif [ $1 -lt 60 ]
then
  echo "不及格"
fi
case語(yǔ)句
case $變量名 in
"值1")
  如果變量的值等于值1,就執(zhí)行
;;
"值2")
  如果變量的值等于值2,就執(zhí)行
;;
# 其他分支
*)
  如果都不匹配,就執(zhí)行這段代碼
;;
esac

注意事項(xiàng)

  1. “值1”)單獨(dú)起一行
  2. 每種情況必須以兩個(gè)英文分號(hào)收尾
  3. case語(yǔ)句結(jié)尾必須使用esac

實(shí)例腳本

#!/bin/bash
case $1 in
"1")
 echo "周一"
;;
"2")
 echo "周二"
;;
*)
 echo "其他"
;;
esac
for循環(huán)
# 基本語(yǔ)法1
for 變量 in 值1 值2 值3...
do
 程序/代碼
done


# 基本語(yǔ)法2
for (( 初始值; 循環(huán)控制條件; 變量變化 ))
do
  程序/代碼
done

注意事項(xiàng)

  1. for和雙括號(hào)之間有空格
  2. 雙括號(hào)和值也有空格

實(shí)例代碼

#!/bin/bash

# 打印命令行的參數(shù),體會(huì)$*和$@的區(qū)別

echo "in語(yǔ)法"
for i in "$*"
do
  echo "$i"
done

ehco "-------"
echo "雙括號(hào)語(yǔ)法"
for j in "$*"
do
  echo "$j"
done


ehco "-------"
ehco "輸入的值為$1,"
# 根據(jù)輸入的值n,從1到n累加
SUM=0
for ((i=1; i<=$1; i++))
do
  # 將運(yùn)算后的結(jié)果作為一個(gè)變量賦值給SUN
  SUM=$[$SUM+$i]
done
echo "1累加到$1的的總和為$SUM"
whil循環(huán)
while [ 條件判斷式 ]
do
  代碼
done

注意事項(xiàng)

  1. while和中括號(hào)之間有空格
  2. 條件判斷式和中括號(hào)之間也有空格

實(shí)例腳本

#!/bin/bash

# 根據(jù)輸入的值n,從1到n累加
SUM=0
i=0
while [ $i -le $1 ]
do
  SUM=$[$SUM+$i]
  # i自增
  i=$[$i+1]
done
echo "1累加到$1的總和為$SUM"
read讀取控制臺(tái)輸入
read (選項(xiàng))(參數(shù))

選項(xiàng)
-p 指定讀取值的提示信息
-t 指定讀取值的等待時(shí)間,單位秒,超時(shí)就不等待

參數(shù)
變量 指定讀取值的變量名

實(shí)例腳本

#!/bin/bash


#讀取控制臺(tái)輸入的NUM1值
read -p "請(qǐng)輸入一個(gè)數(shù)NUM1=" NUM1
ehco "輸入的值為NUM1=$NUM1"


#讀取控制臺(tái)輸入的NUM2值,10秒無(wú)輸入就跳過(guò)
read -t 10 -p "請(qǐng)輸入一個(gè)數(shù)NUM1=" NUM2
ehco "輸入的值為NUM2=$NUM2"
函數(shù)
函數(shù)分類

主要分為系統(tǒng)函數(shù)自定義函數(shù)

系統(tǒng)函數(shù)
basename 基本語(yǔ)法
# 功能:返回完整路徑最后/的部分,常用于獲取文件名
basename [pathname] [suffix]

# 功能:刪除所有的前綴,包括最后一個(gè)字符/,然后將字符串顯示出來(lái)
basename [string] [suffix]


# suffix為后綴,如果suffix被指定了,basename會(huì)將pathname或string中的suffix去掉
# 例如 返回/opt/shcode/aaa.txt的“aaa”部分,即是文件名
basename /opt/shcode/aaa.txt .txt

實(shí)例腳本

#!/bin/bash

# 返回/opt/shcode/aaa.txt的“aaa.txt”部分
basename /opt/shcode/aaa.txt

# 返回/opt/shcode/aaa.txt的“aaa”部分,即是文件名
basename /opt/shcode/aaa.txt .txt
dirname 基本語(yǔ)法
# 功能:返回完整路徑最后/的前面的部分,常用于返回路徑部分
# 即是將給定絕對(duì)路徑中的非目錄部分去除,然后返回目錄部分
driname [pathname]

實(shí)例腳本

#!/bin/bash


# 返回/opt/shcode/aaa.txt的“/opt/shcode”部分,即是目錄部分
driname /opt/shcode/aaa.txt
自定義函數(shù)
# 定義函數(shù)語(yǔ)法
[ funciton ] 函數(shù)名[()]
{
  Action;
  [return int;]
}


# 調(diào)用語(yǔ)法
函數(shù)名 []

實(shí)例腳本

#!/bin/bash

# 計(jì)算輸入兩個(gè)參數(shù)的和
function getSum() {
  SUM=$[$1+$2]
  echo "和是=$SUM"
}


# 輸入兩個(gè)值
read -p "請(qǐng)輸入第一個(gè)參數(shù)n1=" n1
read -p "請(qǐng)輸入第二個(gè)參數(shù)n2=" n2

# 調(diào)用自定義的函數(shù)
getSum $n1 $n2

日志管理

/var/log目錄就是系統(tǒng)日志文件的保存位置

系統(tǒng)常用日志

重中之重
日志文件 說(shuō)明
/var/log/message 記錄系統(tǒng)中重要消息的日志。這個(gè)日志文件會(huì)記錄Linux系統(tǒng)的絕大數(shù)重要消息。如果系統(tǒng)出問(wèn)題,首要就檢查的就是該日志
/var/log/boot.log 記錄系統(tǒng)啟動(dòng)日志
/var/log/cron 記錄系統(tǒng)定時(shí)相關(guān)的日志
/var/log/lasllog 記錄系統(tǒng)中所有用戶最后一次登錄時(shí)間的日志。該文件為二進(jìn)制文件,要使用lastlog命令查看
/var/log/mailog 記錄郵件信息的日志
/var/log/secure 記錄驗(yàn)證授權(quán)方面的信息。只要涉及賬戶和密碼的程序都會(huì)記錄,比如系統(tǒng)登錄、ssh的登錄、su切換用戶、sudo授權(quán)、添加用戶、修改用戶等會(huì)記錄到該文件
/var/log/ulmp 記錄當(dāng)前已經(jīng)登錄的用戶的信息。這個(gè)文件會(huì)隨著用戶的登錄和注銷而不斷變化,只記錄當(dāng)前登錄用戶的信息。這個(gè)文件不能使用vi查看,而要使用w、who、users等命令查看
重中次重
日志文件 說(shuō)明
/var/log/cups/ 記錄打印信息的日志
/var/log/dmesg 記錄系統(tǒng)在開(kāi)機(jī)時(shí)內(nèi)核自檢的信息匯總。也可以使用dmesg命令直接查看內(nèi)核自檢信息
/var/log/btmp 記錄錯(cuò)誤登錄的日志。是一個(gè)二進(jìn)制文件,不能直接使用vi查看,要使用lastb命令查看
/var/log/wtmp 永久記錄所有用戶的登錄、注銷信息,同時(shí)記錄系統(tǒng)的后臺(tái)啟動(dòng)、重啟、關(guān)機(jī)時(shí)間。是二進(jìn)制文件,使用last命令查看

日志管理服務(wù) rsyslogd

rsyslogd和syslogd的對(duì)比

CenOS7.6日志服務(wù)是rsyslogd,CenOS6.x日志服務(wù)是syslodd。rsyslogd功能更加強(qiáng)大。rsyslogd的使用、日志格式和syslogd服務(wù)兼容

命令
  • 查看Linux中的rsyslogd服務(wù)是否啟動(dòng)

    ps aux | grpe "rsyslogd" | grep -v "grep"
    
  • 查詢r(jià)syslogd服務(wù)的自啟動(dòng)狀態(tài)

    systemctl list-unit-files | grep rsyslog
    
配置文件:/etc/rsyslog.conf
編輯文件格式 *.* 存放日志文件
第一個(gè)*表示日志的類型
第二個(gè)*表示日志的級(jí)別

例如
# 日志管理服務(wù)示例,往/etc/rsyslog.conf中添加日志文件/var/log/test.log,
# 當(dāng)有事件發(fā)生時(shí),該文件按就會(huì)接受信息并保存
# 如果/var/log/test/log文件不存在會(huì)自動(dòng)創(chuàng)建
authpriv.info /var/log/test/log




  • 日志類型

    • auth:pam產(chǎn)生的日志
    • authpriv:ssh、ftp等登錄信息的驗(yàn)證下信息
    • corn:時(shí)間任務(wù)相關(guān)
    • kern:內(nèi)核
    • lpr:打印
    • mail:郵件
    • mark(syslog)-rsyslog:服務(wù)內(nèi)部的信息,時(shí)間 標(biāo)識(shí)
    • news:新聞組
    • user:用戶程序產(chǎn)生的相關(guān)信息
    • uucp:unix to nuix copy 主機(jī)之間相關(guān)的通信
    • local 1-7:自定義的日志設(shè)備
  • 日志級(jí)別(從上到下,級(jí)別從低到高,記錄的信息越來(lái)越少)

    • debug:有調(diào)試信息的,日志通信最多
    • info:一般調(diào)試信息,最常用
    • notice:最具有重要性的普通條件的信息
    • warning:警告級(jí)別
    • err:錯(cuò)誤級(jí)別,阻止某個(gè)功能或某個(gè)模塊不能正常工作的信息
    • crit:嚴(yán)重級(jí)別,阻止整個(gè)系統(tǒng)或整個(gè)軟件不能正常工作的信息
    • emerg:內(nèi)核奔潰等重要信息
    • none:什么都不記錄
  • 日志服務(wù)rsyslogd記錄日志文件的格式

    • 事件產(chǎn)生的時(shí)間 產(chǎn)生事件的服務(wù)器的主機(jī)名 產(chǎn)生事件的服務(wù)名或程序名 事件的具體信息
      
日志輪替

日志輪替:把舊的日志文件移動(dòng)并改名,同時(shí)建立新的日志文件,當(dāng)舊的日志文件超出保存范圍之后,就會(huì)進(jìn)行刪除

日志輪替文件命名機(jī)制
  1. CentOS7使用logrotate進(jìn)行日志輪替管理,想要改變?nèi)罩据喬嫖募?,通過(guò)/etc/logrotate.conf配置文件種"dateext"
  2. 如果配置文件中有"dateext"參數(shù),那么日志會(huì)采用日期作為日志文件的后綴
    • 例如:secure_20201010,這樣日志不會(huì)重疊覆蓋,也不需要修改日志文件的名稱,只需要指定日志保存的個(gè)數(shù)即可,超出個(gè)數(shù)自動(dòng)刪除
  3. 如果配置文件中沒(méi)有dateext參數(shù),日志文件就需要改名。
    • 第一次進(jìn)行日志輪替時(shí),當(dāng)前的”secure“日志會(huì)自動(dòng)改名為”secure.1“,然后新建日志”secure“日志,用來(lái)保存新日志
    • 第二次進(jìn)行日志輪替時(shí),”secure.1“自動(dòng)改名為”secure.2“,”secure“自動(dòng)改名為”secure.1“,然后新建日志”secure“保存新日志
    • 依此類推
logrotate配置文件

/etc/logrotate.confg為logrotate日志服務(wù)的全局配置文件

# see "man logrotate" for details
# 通過(guò)man logrotate命令來(lái)查看更多使用細(xì)節(jié)
# rotate log files weekly 
# 每周對(duì)日志文件進(jìn)行一次輪替
weekly

# keep 4 weeks worth of backlogs 
# 一共保存4份日志文件備份(不包含最新的日志文件),當(dāng)創(chuàng)建新的日志文件時(shí),判斷日志備份個(gè)數(shù)是否大于4,大于就將最舊的日志刪除
rotate 4

# create new (empty) log files after rotating old ones 
# 在日志輪替后,創(chuàng)建新的空的日志文件
create

# use date as a suffix of the rotated file 
# 使用日志作為日志輪替文件的后綴
dateext

# uncomment this if you want your log files compressed 
# 日志文件是否壓縮,如果取消注釋,則日志會(huì)在轉(zhuǎn)儲(chǔ)的同時(shí)進(jìn)行壓縮
#compress

# RPM packages drop log rotation information into this directory
# 包含 /etc/logrotate.d/ 目錄中所有的子配置文件。也就說(shuō)會(huì)把這個(gè)目錄中所有的子配置文件都讀取進(jìn)該文件(logrotate)
include /etc/logrotate.d


# 下面是單獨(dú)設(shè)置,優(yōu)先級(jí)更加高
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
  # 每月輪替一次
    monthly
    # 創(chuàng)建新的日志文件,權(quán)限時(shí)0664 所有者是root,所屬組是utmp組
    create 0664 root utmp
    # 日志最小輪替大小是1MB。當(dāng)時(shí)間到達(dá)一個(gè)月時(shí),如果日志大小大于1MB,那么不進(jìn)行日志輪替,如果大于1MB就進(jìn)行日志輪替
  	minsize 1M
  	# 僅保留一份日志備份。也就是只有wtemp和wtmp.1
    rotate 1
}

/var/log/btmp {
    # 如果日志不存在,則忽略該日志的警告信息
    missingok
    # 每月對(duì)日志文件進(jìn)行一次輪替
    monthly
    # 創(chuàng)建新的日志文件,權(quán)限時(shí)0600 所有者是root,所屬組是utmp組
    create 0600 root utmp
    # 僅保留一份日志備份。也就是只有btemp和btmp.1
    rotate 1
}

# system-specific logs may be also be configured here.

輪替策略配置的格式

日志文件的絕對(duì)路徑
{
 參數(shù)
}


日志文件參數(shù)說(shuō)明

參數(shù) 參數(shù)說(shuō)明
daily 日志輪替周期為每天
weekly 日志輪替周期為每周
monthly 日志輪替周期為每月
rotate 數(shù)字 保留備份日志文件的個(gè)數(shù)。0指不備份
compress 日志輪替時(shí),舊的日志進(jìn)行壓縮
create 權(quán)限 所有者 所屬組 建立新日志,同時(shí)指定新日志的權(quán)限與所有者和所屬組
mail address 當(dāng)日志輪替時(shí),輸出內(nèi)容通過(guò)郵件發(fā)送給到 指定的郵件地址
missingok 如果日志不存在,則忽略該日志的警告信息
notifempty 如果日志為空文件,則不進(jìn)行日志輪替
minsize 大小 日志輪替的最小值,只有大于等于這個(gè)值才進(jìn)行輪替,否則即是到時(shí)間也不進(jìn)行輪替操作
size 大小 按照大小進(jìn)行輪替,不按照時(shí)間輪替。日志只有大于指定大小才進(jìn)行日志輪替
dateext 使用日期作為日志輪替文件的后綴
sharedscripts 在此關(guān)鍵字之后執(zhí)行的腳本,只執(zhí)行一次
prerotate/startscript 在日志輪替前執(zhí)行腳本命令
postrotate/endsrcipt 在日志輪替之后執(zhí)行腳本命令
把自己的日志文件加入日志輪替中

有兩種方式

  1. 方式一:直接在全局日志輪替配置文件/etc/logrotate.conf配置文件中寫入該日志的輪替策略
  2. 方式二:在日志輪替子配置目錄/ect/logrotate.d目錄中新建立日志輪替文件,在該輪替文件中寫入正確的輪替策略,因?yàn)樵撃夸浀奈募炊急弧眎ncluede“到主配置文件中。
  3. 推薦使用第二種,因?yàn)橄到y(tǒng)需要輪替的日志非常多,如果全部都寫入主配置文件中,會(huì)導(dǎo)致可讀性變差,難以維護(hù)

案例:在/etc/logrotate.d目錄下配置test配置文件,配置/var/log/test.log的輪替策略

# 在/etc/logrotate.d目錄下創(chuàng)建配置文件
cd /etc/logrotate.d
vim test


# 編輯配置文件test
/var/log/test.log
{
 # 沒(méi)有該日志文件,忽略警告
 missingok
 # 輪替周期為每天
 daily
 # 備份日志最大個(gè)數(shù)為7,超過(guò)就刪除舊的
 rotate 7
 # 如果日志為空,就不進(jìn)行輪替
 notifempty
}
日志輪替機(jī)制原理

日志輪替:依賴系統(tǒng)定時(shí)任務(wù)。在/etc/cron.daily目錄下,可以發(fā)現(xiàn)這個(gè)目錄是有l(wèi)ogrotate文件(有可執(zhí)行權(quán)限),logrotae通過(guò)這個(gè)文件依賴定時(shí)任務(wù)執(zhí)行

查看內(nèi)存日志

注意事項(xiàng):journalctl 查看的是內(nèi)存日志,重啟清空

# 查看全部
journalctl

# 查看最新的3條
journalctl -n 3

# 查看起始時(shí)間到結(jié)束時(shí)間的日志
journalctl --since 19:00 --until 19:10:10


# 報(bào)錯(cuò)日志
journalctl -p err

# 日志詳細(xì)內(nèi)容
journalctl -o verbose

# 查看包含這些參數(shù)的日志
journalctl _PID=1245 _COMM=sshd
# 或
journalctl | grep sshd 

備份和恢復(fù)

備份

  • 方式一:將需要的文件或分區(qū)用tar命令打包即可,下次恢復(fù)的時(shí)候,再解壓打開(kāi)覆蓋即可

  • 使用dump(備份)和restore(恢復(fù))命令,注意這兩個(gè)命令需要安裝

    # 安裝dump命令
    yum -y install dump
    
    # 安裝restore命令
    yum -y install restore
    

dump

dump支持分卷和增量備份(所謂增量備份是指?jìng)浞萆洗蝹浞莺笮薷?增加過(guò)的文件,也稱為差異備份)

注意事項(xiàng):備份分區(qū)可以支持增量備份,如果備份文件或目錄,則不支持增量備份。即只能使用0完整備份

語(yǔ)法

dump [-cu] [-0123456789] [-f<備份后文件名>] [-T<日期>] [目錄或文件系統(tǒng)]

dump []-wW


-c 打包
-0123456789 備份的層級(jí)。0為最完整備份,會(huì)備份所有文件。若指定0以上的層級(jí),則備份備份修改或新增的文件,到9之后就需要從新輪替,就是必須從0開(kāi)始了
-f<備份后的文件名> 指定備份后文件名
-j 調(diào)用bzlib庫(kù)壓縮備份文件,即是將備份后的文件壓縮為bz2格式,讓文件更加小
-T<日期> 指定開(kāi)始備份的時(shí)間和日志
-u 備份完畢后,在/etc/dumpdares中記錄備份的文件按系統(tǒng),層級(jí),日期與時(shí)間等信息
-t 指定文件名,若該文件已經(jīng)在備份文件中,則列出名稱
-W 顯示需要備份的文件以及最后一次備份的層級(jí),時(shí)間,日期
-w 僅顯示需要備份的文件,不顯示額外的信息

示例

# 將/boot分區(qū)所有內(nèi)容備份到opt/boot.bak0.bz2文件中,備份層級(jí)為0
dump -0uj -f /opt/boot.bak0.bz2 /boot


# /boot目錄新增了文件,增量備份/boot
dump -1uj -f /opt/boot.bak1.bz2 /boot


# 顯示需要備份的文件以及最后一次備份的層級(jí),時(shí)間,日期
dump -W


# 查看備份時(shí)間文件
cat /etc/dumpdates


# dump增量備份目錄(錯(cuò)誤示范
# 會(huì)提示DUMP:Only level 0 dumps are allowed on a subdirectory 即只能允許使用級(jí)別0備份子目錄
dump -1j -f /opt/etc.bak.ba2 /etc


# dump命令備份目錄(正確使用)
dump -0j /opt/etc.bak.bz2 /etc/

restore

可以從dump生成的備份文件中恢復(fù)原文件

注意事項(xiàng):每次只能指定一個(gè)模式選項(xiàng),不能混用!

restore [模式選項(xiàng)] [選項(xiàng)]


模式選項(xiàng)
-C 對(duì)比模式,將備份的文件和已存在的文件互相對(duì)比,如果有不同的化,會(huì)給出提示
-i 交互模式,在進(jìn)行還原操作時(shí),restore指令將依序詢問(wèn)用戶
-r 還原模式,如果有增量備份,那么需要把增量備份業(yè)進(jìn)行恢復(fù),有幾個(gè)就恢復(fù)幾個(gè),按小到大的順序來(lái)執(zhí)行恢復(fù)
-t 查看模式,查看備份文件有哪些文件

選項(xiàng)
-f<備份設(shè)備> 從指定的文件中讀取備份數(shù)據(jù),進(jìn)行還原操作

示例

# 比較文件
restore -C -f /opt/boot.bak0.bz2

# 查看備份文件
restore -t -f /opt/boot/bak1.bz2

# 恢復(fù)備份文件,假定有兩個(gè),分別為bak0.bz2和bak1.bz2
restore -r -f /opt/boot/bak0.bz2
restore -r -f /opt/boot/bak1.bz2

安裝寶塔

  1. 如果未下載wget命令,就執(zhí)行該步驟,如果已下載就跳過(guò)該步驟

    yum install -y wget
    
  2. 安裝寶塔,如果安裝過(guò)程有就yes或y執(zhí)行下一步

    wget -O install.sh http:#download.bt.cn/install/install_6.0.sh && sh install.sh
    
  3. 安裝完后會(huì)提示成功,并提供兩個(gè)面板地址,以及用戶名和密碼(地址和密碼都是隨機(jī))

    # 外網(wǎng)訪問(wèn),如果沒(méi)有配置防火墻無(wú)法使用
    外網(wǎng)面板地址: http:#113.64.72.168:8888/3a118870
    # 內(nèi)網(wǎng)地址
    內(nèi)網(wǎng)面板地址: http:#192.168.132.98:8888/3a118870
    # 用戶名
    username: ev80vc0d
    # 密碼
    password: 4f25730b
    
  4. 首次登錄需要綁定手機(jī)號(hào)

  5. 如果忘記開(kāi)始的密碼,那么可以使用以下命令查看

    # 顯示的就是開(kāi)始的訪問(wèn)地址和初始用戶名以及密碼
    # 如果后續(xù)修改過(guò)了,那么這個(gè)就無(wú)法作為參考
    bt default
    

Linux面試題

常用的Nginx模塊,用來(lái)做什么

rewrite模塊:實(shí)現(xiàn)重寫功能

access模塊:來(lái)源控制

ssl:安全加密

ngx_http_gzip_module:網(wǎng)絡(luò)傳輸壓縮模塊

ngx_http_proxy_module:實(shí)現(xiàn)代理

ngx_http_upstream_module:實(shí)現(xiàn)定義后端服務(wù)列表

ngx_cache_purge:實(shí)現(xiàn)緩存清除功能文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-770871.html

到了這里,關(guān)于Linux-CentOS7.6安裝和基本使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Linux CentOS 7.6安裝nginx詳細(xì)保姆級(jí)教程

    Linux CentOS 7.6安裝nginx詳細(xì)保姆級(jí)教程

    1、進(jìn)入home文件并創(chuàng)建nginx文件夾用來(lái)存放nginx壓縮包 2、下載nginx,我這里下載的是Nginx 1.24.0版本,如果要下載新版本可以去官網(wǎng)進(jìn)行下載:https://nginx.org/en/download.html wget下載命令: 3、解壓文件 4、編譯和安裝 Nginx安裝完成后,默認(rèn)自動(dòng)創(chuàng)建 /usr/local/nginx 目錄 1、防火墻開(kāi)啟80端

    2024年01月23日
    瀏覽(53)
  • Linux-centos使用mv移動(dòng)文件到指定目錄

    格式: 主要參數(shù) -i:交互方式操作。如果mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,此時(shí)系統(tǒng)詢問(wèn)是否重寫,要求用戶回答”y”或”n”,這樣可以避免誤覆蓋文件。 -f:禁止交互操作。mv操作要覆蓋某個(gè)已有的目標(biāo)文件時(shí)不給任何指示,指定此參數(shù)后i參數(shù)將不再起作用。

    2024年02月11日
    瀏覽(31)
  • [Linux][CentOs][Mysql]基于Linux-CentOs7.9系統(tǒng)安裝并配置開(kāi)機(jī)自啟Mysql-8.0.28數(shù)據(jù)庫(kù)

    [Linux][CentOs][Mysql]基于Linux-CentOs7.9系統(tǒng)安裝并配置開(kāi)機(jī)自啟Mysql-8.0.28數(shù)據(jù)庫(kù)

    目錄 一、準(zhǔn)備工作:獲取安裝包和相應(yīng)工具 (一)所需安裝包 (二)安裝包下載鏈接 (三)在服務(wù)器上創(chuàng)建文件夾并上傳安裝包 二、安裝MySql (一)刪除系統(tǒng)自帶的mariadb (二)安裝MySQL依賴包libaio (三)創(chuàng)建MySQL組和用戶并設(shè)置密碼 (四)將MySQL目錄的權(quán)限授給MySQL用戶

    2024年03月25日
    瀏覽(50)
  • 安裝Linux-CentOS7.9操作系統(tǒng)虛擬機(jī)環(huán)境(適用于學(xué)習(xí)、測(cè)試環(huán)境)

    安裝Linux-CentOS7.9操作系統(tǒng)虛擬機(jī)環(huán)境(適用于學(xué)習(xí)、測(cè)試環(huán)境)

    具體名稱以及路徑根據(jù)自己的實(shí)際情況在個(gè)人pc或者其他的設(shè)備上進(jìn)行創(chuàng)建。 阿里云開(kāi)源鏡像站地址 https://developer.aliyun.com/mirror/ 清華大學(xué)開(kāi)源鏡像站地址 https://mirrors.tuna.tsinghua.edu.cn/ 有需要的朋友可以自行下載 VMware Workstation pro下載鏈接,許可證可自行瀏覽器搜索獲取 http

    2024年02月03日
    瀏覽(32)
  • 【Intel Parallel編譯器(icc icpc ifort)Linux-centos7系統(tǒng)安裝配置】

    【Intel Parallel編譯器(icc icpc ifort)Linux-centos7系統(tǒng)安裝配置】

    @(toc) 本篇文章主要講解在linux系統(tǒng)centos7.5/centos7.9版本中,Intel編譯器的安裝、環(huán)境導(dǎo)入、并行庫(kù)調(diào)用以及在不同centos版本中安裝時(shí)缺少32位庫(kù)的解決方案等內(nèi)容。 一、★Intel編譯器定義 Intel Parallel Studio XE Cluster版C/C++ Fortran編譯器,是一種主要針對(duì)Inetl平臺(tái)的高性能編譯器,可

    2024年02月09日
    瀏覽(24)
  • Crontab(定時(shí)任務(wù))使用: Linux-Centos7使用crontab制定定時(shí)任務(wù),定時(shí)執(zhí)行某任務(wù)

    Crontab(定時(shí)任務(wù))使用: Linux-Centos7使用crontab制定定時(shí)任務(wù),定時(shí)執(zhí)行某任務(wù)

    參考:https://blog.csdn.net/m0_49605975/article/details/120701771 1.用yum命令安裝Crontab 2.啟動(dòng),關(guān)閉,重啟 3.設(shè)置開(kāi)機(jī)啟動(dòng) 1.設(shè)置定時(shí)任務(wù)-進(jìn)入編輯模式 -和vim操作一至 2.查看定時(shí)任務(wù)列表 3.添加定時(shí)任務(wù) 樣例: 添加一個(gè)定時(shí)任務(wù),定時(shí)清空某個(gè)文件夾里面日志文件的內(nèi)容 3.1 編寫一個(gè)清

    2024年02月01日
    瀏覽(45)
  • CentOS 7.6環(huán)境下Nginx1.23.3下載安裝配置使用教程

    這篇文章主要介紹了CentOS 7.6環(huán)境下Nginx下載安裝配置使用教程,學(xué)習(xí)nginx的朋友可以參考一下 使用如下命令進(jìn)行下載 wget http://nginx.org/download/nginx-1.23.3.tar.gz 項(xiàng)目首先我們需要安裝gcc、gcc-c++、zlib、pcre 和openssl。 判斷?包名是否安裝 rpm -q ?包名 yum install -y gcc gcc-c++ 注:wget http

    2024年02月10日
    瀏覽(25)
  • Linux(Centos7版本)安裝docker 使用官方安裝腳本,一鍵安裝docker 發(fā)生報(bào)錯(cuò)解決方法

    Linux(Centos7版本)安裝docker 使用官方安裝腳本,一鍵安裝docker 發(fā)生報(bào)錯(cuò)解決方法

    Linux(Centos7版本)安裝docker 使用官方安裝腳本,一鍵安裝docker 發(fā)生報(bào)錯(cuò)解決方法 使用官方安裝腳本 也可以使用國(guó)內(nèi) daocloud 一鍵安裝命令: 正在嘗試其它鏡像。 sh -c ‘yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo’ File “/usr/bin/yum-config-manager”, lin

    2024年02月01日
    瀏覽(27)
  • linux-centOS7.9網(wǎng)絡(luò)配置

    linux-centOS7.9網(wǎng)絡(luò)配置

    -選中虛擬機(jī)-設(shè)置 -網(wǎng)絡(luò)-網(wǎng)卡1-啟用網(wǎng)絡(luò)連接【勾選】-連接方式【橋接網(wǎng)卡】-名稱【選擇想要映射的物理機(jī)網(wǎng)絡(luò)的名稱】-確定 虛擬機(jī)-啟動(dòng) ????????其中l(wèi)o是本地環(huán)回網(wǎng)卡,br0是網(wǎng)橋,enp0s3是上一步驟映射出去的網(wǎng)卡,所以我們配置enp0s3以便和外部進(jìn)行網(wǎng)絡(luò)通信。 ? ???

    2024年02月12日
    瀏覽(19)
  • CentOS7(Linux)詳細(xì)安裝教程(手把手圖文詳解版)_centos7安裝教程

    CentOS7(Linux)詳細(xì)安裝教程(手把手圖文詳解版)_centos7安裝教程

    3、選擇合適版本的鏡像進(jìn)行下載 選擇合適的存放地址(這里的地址包含中文名稱我用起來(lái)好像也沒(méi)出啥問(wèn)題,如果怕出錯(cuò)的同學(xué)可以使用全英文) 1、打開(kāi)我們的虛擬機(jī)(VMware Workstation),點(diǎn)擊文件進(jìn)行新建 2、選擇典型之后,下一步 3、選擇稍會(huì)安裝操作系統(tǒng) 4、因?yàn)榘惭b的

    2024年04月29日
    瀏覽(27)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包