網際網路架構 之備份伺服器 rsync
raid卡
https://www.cnblogs.com/mlgjb/p/7991903.html
怎麼調整網絡卡名稱?
選中install centos7 引導項,然後按Tab,然後輸入方框中的內容:net.ifnames=0 biosdevname=0
https://www.cnblogs.com/linhaifeng/%E6%89%B9/6295875.html
https://www.cnblogs.com/linhaifeng/p/6045600.html
services.msc #開啟Windows服務
msconfig.exe #開啟系統配置工具
sc delete +服務名 #在命令列刪除某個服務
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup
#希望一個應用程式開機啟動,可以將程式的執行檔案的快捷方式放到這兩個資料夾中的一個即可
bcdedit.exe
cpu的向下相容性
32位和64位指32位和64位的二進位制數
針對32位的cpu寫的程式可以在64位的cpu上執行,反之不行
ROM read only memory 只讀儲存
SRAM 靜態隨機儲存(快取記憶體Cache)
DRAM 動態隨機儲存(記憶體)
8個2進位制位組成一個位元組,即8bit=1Bytes
1024Bytes=1kB
扇區是512個Bytes,硬碟上最小的讀寫單位
block塊 Linux中 8個扇區=1block =4kB
一毛一毛的去花錢很費勁,就出現了1塊和100塊
虛擬記憶體:記憶體地址和硬碟地址的對映關係
CPU的指令集分為需要特權的指令集和一般的指令集,所有的I/O指令屬於需要特權的指令,一般使用者不能執行這類指令,只有作業系統核心才能執行這類指令。
CPU有個特殊的狀態暫存器,其中顯示當前的CPU處於核心態還是使用者態
使用者程式通過執行一個特殊的in指令t(intel x86的CPU)來獲取作業系統的服務,重點是CPU在執行這條指令時,自動將狀態置為核心態。
作業系統由作業系統的核心和系統呼叫兩部分組成
乙太網協議(資料鏈路層)的規定
一組電訊號為一個數據包,叫做幀
每一個幀包含head報頭和data資料
head報頭(固定18個位元組)包含
傳送者/源地址 6位元組
接收者/目的地址 6位元組、
資料型別 6位元組
接入internet的裝置必須具有網絡卡,傳送者和接受者的地址就是網絡卡的地址,即mac地址
每一塊網絡卡上都有一個唯一的mac地址,通常由12位16進位制數表示,前6位是廠商編號,後6位是流水號
IP地址的格式:網路地址+主機地址
網路地址用來表示這個IP地址屬於哪一個子網
子網之間通過閘道器(相當於子網的代理人)來通訊,跨子網通訊要IP地址,子網內通訊要mac地址
IP地址和子網掩碼確定網路地址
cmd基礎
cd =change directory 更改目錄
同一個盤內不同目錄之間的切換: 原目錄cd 新目錄
跨盤切換要先切換到目標盤,然後會自動切換到最近一次在D盤的位置
顯示的D盤路徑是最近一次在D盤的位置
切換到上一級目錄cd ..
檢視當前目錄中的內容:目錄dir
檢視本機上所有的ip地址
D:\Program Files>ipconfig
mkdir =make directory 建立目錄
下圖在D盤(當前路徑)建立了一個名為"目錄"的資料夾,還可以指定路徑
第一條語句建立了兩個資料夾分別為Program和Files,而且Files中有子資料夾page
第一條語句建立了一個資料夾ProgramFiles,其中有子資料夾page
刪除資料夾,當有多層資料夾的時候,用del命令刪除要從裡往外刪除
用RD命令可以直接刪除外層的資料夾
hwclock #檢視硬體時間,即RTC
hwclock -s #set the system time from the RTC
init 0 表示關機
init 6 表示重啟
shutdown -h now 立即關機
su - jinzhi 切換到使用者 jinzhi,jinzhi 是使用者名稱
同時按住CTRL+ALT+F1~F6鍵來切換不同使用者的終端
改密碼的兩種方法
passwd 使用者名稱 #修改指定使用者的密碼,新密碼要輸入兩次
echo 新密碼 | passwd -- stdin 使用者名稱 這種方法只有root使用者才能使用
passwd [選項] 使用者名稱
pwd 檢視當前路徑
wget 用來從指定的URL下載檔案
scp
scp命令可以在linux伺服器之間複製檔案和目錄。
cal 檢視當前月份的日曆,也可以指定月份和年份
cp 只是在本機進行拷貝不能跨伺服器
切換目錄
cd .. 切換到上一級目錄
cd - 切換到上一次所在的目錄
ls命令檢視目錄
ls /home/rose 注意要有空格,ls命令預設檢視目錄的內容,即子檔案和子資料夾
ls -d /home/rose 檢視home/rose目錄本身
ls -ld /home/rose 檢視/home/rose 目錄本身的詳細資訊(見下圖)
ls -l /home/rose 檢視/home/rose 目錄中子檔案和子資料夾的詳細資訊
ls -l 等價於 ll
(74位元組表示大小,建立時間)
/home/rose 目錄的屬主和屬組,因為是root使用者建立的該目錄
rwx表示屬主的許可權,r-x表示屬組的許可權,r-x表示除了屬主和屬組以外其他使用者的許可權
下圖中 r=4表示讀許可權,w=2表示寫許可權,x=1表示執行許可權
chown=change owner
chown rose.rose /home/rose #將目錄/home/rose的屬主和屬組分別改為rose和rose
chown -R rose.rose /home/rose #將目錄/home/rose以及目錄下所有檔案和資料夾的屬主和屬組分別改為rose和rose #R表示遞迴地改
chown rose.mail /var/spool/mail/rose #將郵箱/var/spool/mail/rose 的屬主和屬組分別改為rose和mail
下圖中
d開頭的表示目錄,-開頭的表示普通檔案,b開頭的表示磁碟檔案
ls --help | less 以分頁方式檢視ls的幫助,退出按q鍵
a) bin目錄:用來存放常用的可執行檔案
b) sbin目錄:用來存放系統的可執行檔案
e) etc目錄:配置檔案目錄
dev 裝置檔案
ls -a /home/egon #檢視egon家目錄下所有的檔案(包含隱藏檔案,檔名以點開頭)
ls /home/egon #檢視egon家目錄下所有的非隱藏檔案
目錄管理
新建目錄
mkdir /a
mkdir /a/d 要先新建a,然後才可以在a裡面新建d資料夾
直接新建多層目錄的方法
mkdir -p /a/d/e/f
#-p或--parents 若所要建立目錄的上層目錄目前尚未建立,則會一併建立上層目錄;
修改目錄
mv /a/d /a/d1 將d修改為d1
mv /a/e /b/ 將e移動到b目錄下
mv /a/e /b/e1 將e移動到b目錄下,並且重新命名為e1
刪除目錄
rm /a/d d為一個目錄,無法直接刪除
rm -rf /a/d 遞迴地刪除d目錄,即將d和d目錄下的子檔案及子資料夾一起刪除
檔案管理
新建檔案
touch a.txt 在當前目錄下新建一個a.txt檔案,沒有指定路徑,可以在檔案前面指定路徑
修改檔案
mv a.txt b.txt 將當前目錄下的一個a.txt檔案改為b.txt
rm b.txt 將當前目錄下的一個b.txt 檔案刪除
rm -f b.txt 直接刪除,不詢問,直接刪除
cat命令檢視檔案內容
cat /etc/passwd 檢視使用者資訊
less /etc/passwd 分頁檢視
head /etc/passwd 預設檢視前10行
head -n 1 /etc/passwd 指定檢視前1行
tail /etc/passwd 預設檢視後10行
tail -n 1 /etc/passwd 指定檢視最後1行
tail -f /etc/passwd 檢視新增的內容
cp /etc/passwd /temp/passwd_new #複製檔案
echo aaaaaaa > /tem/aaa.txt #以覆蓋的方式寫
echo aaaaaaa >> /tem/aaa.txt #以追加的方式寫
history 檢視歷史命令
!命令序號 可以重新執行對應的命令
使用者管理
useradd -u 1002 -g jinzhi -d /test_user -c 'xxx' -s /bin/bash test_user #新增使用者
-u指定使用者id,-g指定使用者所在的主要的組名(如果是-G指定使用者所在的非主要的組), -d指定使用者的家目錄,-c指定描述資訊,-s 登陸的shell
在/etc/group中,成員所在的主要的組不會列出該成員的名稱,成員所在的非主要的組會列出該成員的名稱
id 使用者名稱 #檢視使用者的id
userdel egon #userdel -r egon #都刪除了
bin/bash 表示可登入的使用者
x 表示密碼佔位符,該使用者登入需要輸入密碼
sbin/nologin 表示不可登入的使用者
VIM編輯器
vim /etc/passwd 開啟passwd 檔案(剛開啟的時候命令列模式),按a以後進入編輯模式,編輯完了按Esc 退出編輯模式進入命令列模式,然後 輸入冒號進入擴充套件模式和w儲存,在按q推出,a=append,i=insert ,o表示游標定位到當前行的下一行,O表示游標定位到當前行的上一行
在命令列模式下刪除與複製的操作
dd 刪除游標所在行
DD 刪除游標所在空行
任一數字鍵 +dd 刪除游標所在行及其後面的所有行
yy 複製游標所在行內容
任一數字鍵 +yy 複製游標所在行及其後面的所有行
p 貼上在游標所在行的下一行
u 取消操作
ctrl +r 恢復操作
G 游標移動到檔案的最後一行
gg 游標移動到檔案的第一行
H 游標移動到螢幕的第一行
G 游標移動到螢幕的最後一行
M 游標移動到螢幕的中間一行
在命令列模式下查詢命令:/內容
在擴充套件模式下
替換命令:%s /shutdown/sb/g #g表示全部替換,不加g只替換每行中找到的第一個
新增行號:set nu
vim /etc/shadow #shadow 存放密碼經過加密轉換後的訊息
vim /etc/group 組資訊
組名 組密碼佔位符 組id 組成員
下圖中的組都沒有組成員,可以為組新增組成員
組管理
groupadd group1 #新建一個組
groupdel group1 #刪除組
groupmod -g 1083 group1 #將group1 的組ID改為1083
groupmod -n group2 group1 #將group1 的組名改為group2
檢視普通使用者郵箱
ls /var/spool/mail/
ll /var/spool/mail/
touch /var/spool/mail/rose #給rose 使用者建郵箱
和使用者有關的6個檔案
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
/var/spool/mail/
/home/rose #使用者名稱rose的家目錄
屬主屬組其他人對檔案的rwx許可權
u=user g=group o=others
root使用者建了一個a.txt,
chmod o=- a.txt #等號=是賦予許可權,也可以使用+或者-在已有的許可權基礎上增加或者減少許可權
chmod o+r a.txt #在已有的許可權基礎上增加r讀許可權
chmod o=rx a.txt #x是執行許可權,前提是要有r讀許可權
chmod o-x a.txt #在已有的許可權基礎上減少執行許可權
o=-表示其他使用者沒有任何許可權
r=4表示讀許可權,w=2表示寫許可權,x=1表示執行許可權
chmod 744 a.txt #7=4+4+1表示user,group和others的許可權
對檔案的執行許可權是指把檔案當作一個命令去執行。
可以通過cd命令切換到檔案所在目錄 ,然後 ./filename 來執行
usermod -G egon tom #將tom加入egon組,egon組為tom的非主要的組
某個使用者對某個檔案沒有許可權,但是某個組對該檔案有許可權,把那個使用者新增到那個組,那個使用者擁有那個組的許可權。不過使用者需要重新登陸
屬主屬組其他人對目錄的rwx許可權
u=user g=group o=others
對目錄的讀許可權是指可以看到目錄下有哪些子檔案和子資料夾
對目錄的寫許可權指可以在該目錄下新建資料夾,刪除資料夾,,修改資料夾名稱,刪除檔案,新建檔案等
對目錄的執行許可權是指可以通過cd命令切換到該目錄
對目錄的寫許可權要和執行許可權要同時出現,因為要先進到目錄中,才可以進行寫操作,擁有執行許可權才可以進到目錄中
chmod o=r /test #對others 賦予對目錄/test的讀許可權
chmod o=wx #對others 賦予對目錄/test的寫和執行許可權,
tar歸檔(不是壓縮)命令
c表示create,f表示檔案,v表示詳細資訊,x表示拆檔,-C指定目標位置
.tar字尾沒有任何意義,這樣命名歸檔檔案是為了以後檢視方便
檔案壓縮和解壓縮
gzip 檔案壓縮以後會帶.gz字尾,對應cvzf
gunzip 檔案解壓縮以後不帶.gz字尾
可以先歸檔再壓縮
也可以歸檔的同時就壓縮
tar cvzf test1.tar.gz a.txt b.txt c.txt #cvzf 中的z表示壓縮,cvjf 也可以壓縮
.gz是自己加的,方便檢視,一看就知道是壓縮過的,不加.gz的話,用gunzip解壓縮會解不了
bzip2 test.tar1 壓縮 ,對應cvjf
bunzip2 test.tar1.bz2 解壓縮
用一個解壓縮方法解壓兩種壓縮檔案
tar xf test.tar.gz -C /test1 #-C指定解壓的目標位置
tar xf test.tar1.bz2 -C /test2
目錄壓縮和解壓縮
tar cvzf test.tar.gz /etc/ 壓縮目錄
tar xf test.tar.gz -C /test2 解壓目錄,test2中會有一個etc資料夾
tar cvzf etc1.tar.gz /etc/* 壓縮目錄下的所有子檔案和子資料夾
先切換到etc目錄下,然後用下面相對路徑的方式壓縮,解壓的時候不會出現etc資料夾
tar cvzf etc1.tar.gz *
tar xf etc1.tar.gz -C /test3 解壓目錄,test3不會有一個etc資料夾,直接出來etc目錄下的檔案和資料夾
磁碟分割槽
ls /dev/sda #s=SCSI介面Small Computer System Interface,d=disk,a表示機器上接的第一塊硬碟
ls /dev/sd 輸入這條命令後按tab鍵會出來sd下的 sda sda1 sda2 sda3 sdb等
df #df命令開啟以下內容
fdisk -l /dev/sdb #檢視第二個盤的分割槽資訊
fdisk -l /dev/sda #檢視第一個硬碟的分割槽資訊
第一個硬碟sda在裝系統的時候已經分了三個區:sda1 sda2 sda3,看第二個硬碟sdb 還沒有分割槽
dos分割槽方式只能應對硬碟容量<=2T的分割槽,fdisk 命令用的就是dos分割槽方式
fdisk /dev/sdb 準備開始對sdb 盤進行分割槽
最多隻能分4個主分割槽,主分割槽可以用來裝系統和引導資訊,擴充套件分割槽中可以再劃分邏輯分割槽,邏輯分割槽不可以裝系統,通常分完主分割槽後剩餘的空間給擴充套件分割槽,擴充套件分割槽不是主分割槽但會佔用主分割槽的一個編號,如果分了4個主分割槽後磁碟空間還有剩餘,也不能分擴充套件分割槽了。
fdisk命令列表中常用的命令:
d:刪除一個(已經存在的)分割槽,其中d是delete的第1個字母。
m:列出fdisk中使用的所有命令,其中m是menu的第1個字母。
n:新增一個新的分割槽,其中n是new的第1個字母。
p:列出分割槽表的內容,其中p是print的第1個字母。q:退出fdisk,但是不儲存所做的變化,其中q是quit的第1個字母
w:退出fdisk並存儲所做的變化,其中w是write的第1個字母。
磁碟格式化(製作檔案系統)
mkfs=make file system
mkfs.xfs /dev/sdb1 #將sdb1這個分割槽格式化為xfs的格式
mkfs.ext4 /dev/sdb3 #將sdb3這個分割槽格式化為ext4的格式
xfs和ext4兩個都是日誌檔案系統
mount掛載(將目錄和磁碟分割槽對應)
mkdir /sdb1 #目錄的名字隨意,只要將對應的磁碟分割槽掛載到對應的目錄就可以,一個磁碟分割槽可以掛載到多個目錄,相當於開多個口子
mkdir /sdb3 #目錄的名字隨意,只要將對應的磁碟分割槽掛載到對應的目錄就可以
mount /dev/sdb1 /sdb1
mount /dev/sdb3 /sdb3
mount 命令檢視掛載
df -h #檢視檔案系統資訊,似乎比df看得清楚一點
df -hT 或者df -Th ,加T會增加顯示檔案系統型別一列
解除安裝
umount /dev/sdb3
umount -l /dev/sdb3 #強制解除安裝(cd sdb3 中的時候,通過umount /dev/sdb3 無法解除安裝)
ext4檔案系統
檔案系統是管理分割槽檔案的,檔案系統的工作機制,有4種塊superblolck ,innode ,directory 存放檔名和關聯的innode 號,存放檔案內容的塊
刪除檔案的時候,innode 塊變成free狀態,directory 中檔名和innode 號關聯關係解除
有superblolck 塊,用來管理其他的塊(其他的塊用來做儲存),記錄其他塊的狀態
innode 塊 #存放檔案資訊,如innode 編號,檔案型別,許可權,屬主,指標等,建一個檔案就有一個innode 塊
#存放目錄資訊,目錄型別
df -i /sdb3 #檢視目錄/sdb3 下 的innode 資訊,有多少innode號,已經用了多少等
innode 編號用完了以後,即使還有磁碟空間,也不能新建檔案了,
df -i檢視所有目錄下的innode 資訊
ls -di /sdb3/ #檢視目錄/sdb3 本身的innode號
ls -i /sdb3/filename #檢視目錄下某個檔案的innode 號
du -sh /sdb3 #檢視目錄下檔案的大小
軟連結
軟連結是指向檔名的(下圖),可以跨分割槽,即軟連結和原始檔可以不在同一個分割槽
ln -s /test/a.txt /test0/a.txt #建立/test/a.txt的軟連結/test0/a.txt
ll /test0/a.txt #詳細資訊中第一字母l表示檔案型別是連結
rm /test/a.txt #刪除原始檔後再通過 cat test0/a.txt 軟連結檢視就找不到了
刪除原始檔/test/a.txt後再通過 echo xxxxx >> test0/a.txt 軟連結向原始檔寫入內容,相當於又新建了一個a.txt檔案,
硬連結
硬連結是指向innode號,不可以跨分割槽,即硬連結和原始檔必須在同一個分割槽,刪除原始檔後可以通過硬連結找到innode號,進而找到檔案內容所在的block塊
虛擬記憶體(交換分割槽)
檢視swap分割槽資訊 swapon -s
mkswap /dev/sdb4 #用/dev/sdb4分割槽建立虛擬記憶體
swapon -a /dev/sdb4 #啟用這個虛擬記憶體,類似掛載
swapoff /dev/sdb4 類似解除安裝
free 命令檢視記憶體資訊,就是讀取/proc/meminfo中的部分內容
free -m 以M兆為單位顯示
cat /proc/meminfo #檢視記憶體資訊
cat /proc/cpuinfo #檢視cpu資訊
將記憶體劃分各個空間,每個程式獨佔一塊,相互之間不影響,兩個程式之間要交換資料的話,就再單獨劃分一個共享的記憶體空間
uname -a 檢視系統資訊
cat /etc/redhat-release 也可以檢視系統資訊
記憶體的作用就是分配buffer和cache 給程式使用
buffer和cache
- A buffer is something that has yet to be "written" to disk.
- A cache is something that has been "read" from the disk and stored for later use.
程序管理
top #檢視系統資訊
process status
Global Regular Expression Print 全域性正則表示式
rpm 軟體包管理
which指令會在環境變數$PATH設定的目錄裡查詢符合條件的檔案
yum軟體包管理
yum install和yum localinstall的區別
yum install會去yum倉庫查詢相應的軟體並安裝,倉庫中的軟體都是解決了依賴關係的,而yum localinstall是用來安裝本地rpm包的命令,首先rpm包要先下載到本地,然後在本地目錄執行yum localinstall *.rpm,yum會自動搜尋依賴關係並安裝而rmp -i *.rpm不會自行解決依賴關係,缺少依賴就會報錯
原始碼安裝(編譯安裝)
原始碼安裝步驟
py
nginx服務
nginx -t # 檢查nginx配置檔案語法是否有錯誤
(統一資源定位符) # 找到某個軟體
# 使用者要這個軟體到某個目錄下找到某個檔案通過http協議傳給他
nginx反向代理
網路檔案系統
Network File System(nfs)
rpc =remote process call 遠端過程呼叫
rpcbind 和 nfs-utils 是兩個包
yum install rpcbind nfs-utils -y
網路配置
nmcli c reload TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens160"
UUID="61201ec6-f7fb-49f4-9925-85480e44c335"
DEVICE="ens160"
ONBOOT="yes"
IPV6_PRIVACY="no"
改了
BOOTPROTO="static"
IPADDR=192.168.1.66
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
vim /etc/hosts #本地解析檔案:給一個ip地址起一個名字,以後直接用這個名字的時候,就可以解析成對應的ip地址
hostname # 檢視主機名
hostnamectl set-hostname db01 #設定主機名
source
當修改了/etc/profile檔案,想讓它立刻生效,而不用重新登入;這時就想到用source命令,如:source /etc/profile
source filename 或 . filename
在Linux下可以使用blkid命令對查詢裝置上所採用檔案系統型別進行查詢。
mysqladmin --version #檢視mysql的版本
vim /etc/sysconfig/network-scripts/ifcfg-
從遠端主機複製檔案到本機
遠端主機地址+檔案所在路徑 #複製到本機當前路徑,並且名為nginx.conf
scp [email protected]:/etc/nginx/nginx.conf nginx.conf
scp [email protected]:/usr/bin/dnf-3 dnf-3
本文來自部落格園,作者:近知,轉載請註明原文連結:https://www.cnblogs.com/landson/p/15451599.html