Linux基礎概述
在Linux中萬物皆文件
破解root密碼
單用戶ro改成rw init=/sysroot/bin/sh
chroot /sysroot
passwd root
touch /.autorelabel
-
linux中所有的文件都是在根( / )中茸习,整個文件體系是一個樹狀圖
- / 中包含的主要目錄有 usr,bin(淺藍色)储耐,sbin(淺藍色)钝荡,dev街立,etc,root埠通,home赎离,var,proc端辱,lib(淺藍色)梁剔,lib64(淺藍色)
- 在Linux中,藍色代表為目錄掠手,淺藍色(青色)憾朴,綠色等(這三個顏色最重要也最常見)代表鏈接文件(相當于windows中的快捷方式)
-
usr
為系統(tǒng)文件狸捕,相當于C:\Windows- /usr/local 軟件安裝的目錄喷鸽,各種服務常安裝于此
- /usr/bin 普通用戶使用的命令
- /usr/sbin 管理員使用的命令
- /usr/lib 庫文件Glibc 32bit
- /usr/lib64 庫文件Glibc 64bit
-
bin
- /bin為/usr/bin的鏈接文件
- 普通用戶使用的命令存放于此,/bin/ls灸拍,/bin/date等
-
sbin
- /sbin為/usr/sbin的鏈接文件
- 管理員使用的命令存放于此做祝,/sbin/server
-
etc
- 系統(tǒng)配置文件如網(wǎng)絡(/etc/sysconfig/network-script)本地域名解析(/etc/hosts)以及相關(guān)服務的配置文件(/etc/httpd/conf.d/)
-
var
- 存放一些變化的文件,如
- mysql /var/lib/mysql
- vsftpd(ftp服務器) /var/ftp
- mail /var/spool/mail
- cron(計劃任務) /var/spool/cron
- log(日志) /var/log
- tmp(臨時文件) /var/tmp
-
dev
- 系統(tǒng)的設備文件存放于此鸡岗,如硬盤( /dev/sda )混槐,“垃圾箱”( /dev/null ),登錄系統(tǒng)的終端( /dev/pts/1 )轩性,以及連接系統(tǒng)的各種輸入(鍵盤声登,麥克風等)和輸出設備(顯示器,打印機等)
-
root
- root用戶的家目錄
-
home
- 普通用戶的家目錄的Base目錄
-
proc
- 此目錄中存放的文件是內(nèi)核揣苏,進程信息或系統(tǒng)的實時狀態(tài)悯嗓,內(nèi)部的文件為虛擬的文件。
-
boot
- 存放系統(tǒng)啟動相關(guān)的文件卸察,如kernel(linux的操作界面)
-
Linux文件路徑和基礎命令
Linux中的文件路徑分為兩種脯厨,絕對路徑和相對路徑- 絕對路徑:從 / 開始輸入文件的路徑
- 相對路徑:從當前目錄開始輸入文件的路徑
在正常操作中,為了某些命令的需要和防止誤操作坑质,盡量先進入到相應的目錄中然后使用相對路徑進行操作合武,但是在shell腳本中临梗,只能使用絕對路徑進行操作。
文件管理的基本命令
文件管理的命令只可用于對文件的操作而不可用于對其他任何方面的操作稼跳。
-
創(chuàng)建 touch&mkdir
- touch 用于創(chuàng)建文件盟庞,如果創(chuàng)建的文件已經(jīng)存在則修改創(chuàng)建時間,文件內(nèi)的內(nèi)容不會修改汤善。
touch file{1..20} #批量創(chuàng)建聯(lián)名文件,1-20
- mkdir 用于創(chuàng)建目錄茫经,可以使用參數(shù) -p 進行遞歸創(chuàng)建,亦可使用過 { } 來創(chuàng)建多個目錄
mkdir -p /home/{yang/{111,dir1},guo} #此操作會分別創(chuàng)建/home下的yang 和guo萎津,且yang中有111和dir1(全為目錄)
-
復制 cp
- copy
可以對目錄進行操作
使用時可以實現(xiàn)多個文件同時復制到一個目錄卸伞,自動將最后一個目錄作為復制的目標目錄。參數(shù) -r 為遞歸锉屈,即將文件中的全部目錄結(jié)構(gòu)一起復制移動荤傲,-f 為強制。
cp -rf /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/passwd /etc/hostname /tmp # -r 復制目錄結(jié)構(gòu) -f 強制
-
移動(剪貼)颈渊,重命名 mv
- move
可以對目錄進行操作
1.使用時可以將多個文件移動到一個目錄中遂黍。自動將最后一個目錄作為移動的目標目錄。依然可以使用參數(shù) -r -f
mv file1 /home/dir3 #將當前目錄的file1移動到/home/dir3中
2.如果移動的目標不是目錄俊嗽,而是一個文件雾家,則對移動的文件改名為目標文件的名字
mv file2 /home/dri3/file20 #將當前目錄的file2移動到/home/dir3下且改名為file20
mv file4 file5 #都是相對路徑時,將file4改名為file5
-
刪除 rm
- remove
使用時盡量不要使用絕對路徑绍豁,以免不可估計的后果
rm -rf dir1 刪除當前目錄的dir1
*芯咧,通配符
rm -rf * #刪除當前目錄下的全部文件 rm -rf dir* #刪除當前目錄下以dir開頭的所有文件 rm -rf *txt #刪除當前目錄下以txt結(jié)尾的全部文件
查看文件內(nèi)容 cat/less/more/hrad/tail/tailf/vim
- cat 正常在命令行界面的全部內(nèi)容,參數(shù)-n顯示行號竹揍,-A顯示全部字符(包括控制字符敬飒,例:換行符)
- head 查看文件的頭10行內(nèi)容,可以用參數(shù)-加數(shù)字來確定顯示多少行的內(nèi)容
- tail 查看文件的最后10行的內(nèi)容芬位,可以用參數(shù)-加數(shù)字的形式來確認查看多少行无拗,參數(shù)-f可以動態(tài)查看文件的尾部
- vim 使用vim編輯文件時,文件的索引號會發(fā)生改變
- grep 對文件的內(nèi)容進行過濾昧碉,常用于管道符
例如grep 'root' /etc/passwd
Vi編輯器(Vim編輯器)
Vi編輯器存在四種工作模式英染,分別為“命令模式、“插入模式”被饿,“可視塊模式”四康、“擴展命令模式”。
-
命令模式
-
1.光標定位
- 鍵盤上的
home
和end
在vim中依然可用 -
jkli
分別對應光標左移下移右移上移 - gg & G 分別是首行和最后一行
- 3G 進入第三行(可以換為其他的數(shù)字锹漱,進入相應行)
- /root 查找root
- 鍵盤上的
-
2.文本編輯(非主要)
-
y 復制以行位單位
- yy 復制一行
- 3yy 復制三行(從光標所在行開始)
- ygg 從光標所在位置復制到文首
- yG 從光標所在位置復制到文末
/ 后接字符箭养,查找一個字符,按n選擇下一個字
-
d 剪貼(實際中作為刪除使用)(以行為單位)
- dd 刪除一行
- 3dd 刪除三行(從光標所在行開始)
- dgg 從此處刪除至文首
- dG 從此處刪除至文末
- D 從光標處刪除至行尾
p 粘貼
u 撤銷上一步操作
x 刪除光標所在的字符
-
-
3.進入其他模式
- a 進入插入模式(光標移動到當前字符的后一位)
- i 進入插入模式(光標在當前位置)
- o 進入插入模式(光標另起一行)
- A 進入插入模式(光標移動至行尾)
- : 進入末行模式(擴展命令模式)
- v 進入可視模式
-
-
插入模式
供用戶進行輸入操作的模式哥牍,
- ctrl + ←/→ 可以跨單詞移動光標
- Home/End 移動至行首或行尾
- Backspace/Delete 刪除前一個字符或刪除后一個字符
-
可視塊模式(擴展)
- 塊插入 光標移動選擇塊毕泌,I 在塊前插入字符喝检,ESC退出
- 塊替換 光標移動選擇快,r 輸入替換的字符
- 塊刪除 光標移動選擇快撼泛, d|x
- 塊復制 光標移動選擇塊挠说,y
-
擴展命令模式(末行模式):
-
1.保存及退出的命令
- :w 保存
- :q 退出
- :wq 保存并退出
- :w! 強制保存
- :q! 強制退出
- :wq! 強制保存退出
-
2.查找替換
- :10 進入第十行
- 全局查找并替換
:% s/old/new/g #全局查找并替換
-
-
3.另存為
```sh :w /tmp/aaa.txt #另存到tmp下并重命名為aaa.txt ```
-
4.設置環(huán)境
```sh :set nu #顯示行號 :set list #顯示控制字符(換行符) :set nonu #取消顯示行號 ```
-
在末行模式中進行的設置僅為臨時設置的環(huán)境若要進行永久的環(huán)境變更需要更改配置文件:
vim /etc/vimrc #影響全體用戶
-
寫入相應的命令,如顯示行號 set nu愿题,
如果只是影響一個用戶损俭,則修改家目錄中的隱藏文件.vimrc
以root為例vim /root/.vimrc
-
文件權(quán)限
基本權(quán)限管理 UGO
-
與文件相關(guān)的用戶分類
U:文件的所有者
G:文件的所有組
O:不屬于以上兩個的用戶
-
基本權(quán)限類型
讀_r_4
寫_w_2
行_x_1
-
操作命令
權(quán)限設置
chmod u+x file chmod 777 file
-
查看權(quán)限
ll file
-
查看目錄
ll -d dir
-
改變所屬
chown user.group file #屬主屬組同時更改 chown user file #屬主更改 chgrp group file #屬組更改
Umask
Umask是文件權(quán)限掩碼,控制系統(tǒng)創(chuàng)建的默認文件的權(quán)限類型
單純輸入umask指令為查看當前系統(tǒng)的權(quán)限掩碼潘酗,創(chuàng)建文件時杆兵,用777-umask所顯示的數(shù)值,得到的為默認創(chuàng)建的文件的權(quán)限類型
高級權(quán)限
suid
sgid
sticky
分別為其他人獲得屬主仔夺,屬組的權(quán)限琐脏,修改時在chmod中寫入四位,第一位為的數(shù)字為相應的高級權(quán)限缸兔。
chmod 7777 file
suid=4
sgid=2
sticky=1
對應數(shù)字進行設置日裙,設置方式與權(quán)限設置方式相同
文件屬性
設置文件的屬性,使其對全體用戶(包括root)起效惰蜜,其中的a屬性與i屬性需要銘記
a 只可追加不可寫入可以閱讀
i 只可閱讀不可追加不可寫入
-
使用命令
chattr +a file chattr +i file
-
查看屬性:
lsattr file lsattr +d mkdir #查看目錄的屬性
進程管理
進程為何物
-
進程理同windows系統(tǒng)的進程昂拂,為已開啟的可執(zhí)行程序的運行實例,主要由以下幾個部分構(gòu)成
1.已分配的內(nèi)存空間
2.安全屬性抛猖,包括所有權(quán)憑據(jù)和特權(quán)
3.程序代碼的一個或多個執(zhí)行線程
4.進程狀態(tài)
5.
進程都有一個進程的所有者格侯,即執(zhí)行進程的人
6.
進程體系是一個樹狀圖體系,每個進程之間都有相應的父子關(guān)系樟结。類似于一個家譜养交。
-
每個進程都有唯一的一個PID,任何進程都可以創(chuàng)建子進程瓢宦,所有進程都是第一個系統(tǒng)進程的后代。子進程繼承父進程的安全性神風灰羽、過去和當前的文件描述符驮履、端口和資源特權(quán)、環(huán)境變量以及程序代碼(基本就是全部都繼承了)廉嚼,獲取之后子進程可能執(zhí)行自己的程序代碼玫镐。
通常情況下,父進程在子進程運行期間處于休眠(S)狀態(tài)怠噪。
一個進程結(jié)束了恐似,但是他的沒有等待(調(diào)用wait / waitpid)他, 那么他將變成一個僵尸(Z)進程傍念。
孤兒進程:如果某進程的父進程已經(jīng)先結(jié)束了矫夷,那么該進程就不會變成僵尸進程葛闷, 因為每個進程結(jié)束的時候,系統(tǒng)都會掃描當前系統(tǒng)中所運行的所有進程双藕, 看有沒有哪個進程是剛剛結(jié)束的這個進程的子進程淑趾,如果是的話,就由Init 來接管他忧陪,成為他的父進程……
進程查看
進程查看的目的:查看進程的屬主扣泊,PID,和硬件的使用率嘶摊,以及進程所花費的時間延蟹。進程的屬主決定進程的特權(quán)。
-
各個選項卡的含義及進程的狀態(tài):
-
整體鍵:USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDR
USER 運行進程的用戶
PID 進程ID
%CPU CPU占用率
%MEM 內(nèi)存占用率
VSZ 占用虛擬內(nèi)存
RSS 占用實際內(nèi)存
TTY 進程運行的終端
-
STAT 進程狀態(tài)
R 運行
S 可中斷睡眠 Sleep
D 不可中斷睡眠
T 停止的進程
Z 僵尸進程
X 死掉的進程
START 進程的啟動時間
TIME 進程占用CPU的總時間
COMMAND 進程文件叶堆,進程名
-
-
查看進程的命令:
①ps aux | grep process #查找相應的程序
②ps -ef | grep process
-
③top 動態(tài)查看進程
load average: 0.25, 0.18, 0.12 顯示的為CPU每一分鐘等孵,五分鐘,十五分鐘的平均負載
-
④netstat -anptu 用來查看系統(tǒng)當前的網(wǎng)絡狀態(tài)信息蹂空,
包括端口
俯萌、連接情況等。-t 顯示TCP端口
-u 顯示UDP端口
-l 僅顯示監(jiān)聽套接字
-p 顯示進程標識符和程序名稱上枕,每一個套接字/端口都屬于一個程序
-a 顯示所有連接的端口
-n 不進行DNS解析
-
⑤lsof lsof的作用是列出當前系統(tǒng)打開的文件(list opened files)咐熙,通過-i參數(shù)可以查看端口的鏈接情況。-i:20辨萍,即為查看20端口棋恼,如若僅有-i則為查看系統(tǒng)的全部端口的信息。
lsof -i:80
-
⑥ss socket statistcs锈玉,顯示內(nèi)容與netstat相似爪飘,更多的顯示有關(guān)TCP和連接狀態(tài)的信息,利用tcp diag拉背,速度更快师崎。
ss state all sport =:80
-
殺死命令
kill -9 PID 殺死相應PID的進程
pkill -u UID 踢出相應UID的用戶
pkill -t -9 終端號 踢出相應終端號的用戶
w 查看當前在線的用戶及其終端號和UID
管道及重定向
I/O重定向
-
重定向是用來輸出到一個文件當中去
-
一個>為覆蓋,兩個為追加
返回的正確信息重定向
1> 1>> 或 > >>
-
返回的錯誤信息重定向
2> 2>>
-
全部信息重定向
&> &>>
-
重定向到“垃圾箱”
& > /dev/null
-
-
輸入重定向(一般用于腳本)
-
<
grep 'root' < /etc/passwd
-
進程管道 Piping
-
管道也是進程控制輸出到一個程序
將管道符前面的信息輸入到管道符后面椅棺,然后再進行操作
ps aux | grep sshd
-
tee管道符
執(zhí)行管道符前首先執(zhí)行tee管道符犁罩,輸出到一個文件或者屏顯,然后執(zhí)行之后的管道符两疚。
tee管道符可以輸出到文件床估。
ip addr |grep 'inet ' |tee ip.txt |awk -F"/" '{print 1}' |awk '{print 2}'
存儲管理
-
硬盤分類
服務器聯(lián)通硬盤使用的為硬盤背板。在特定的適用場合诱渤,會進行HDD和SSD混裝丐巫,使用時,2xHDD作為系統(tǒng)盤,4xSSD作為存儲盤递胧。(常見于MySQL)(RAID1+RAID5)
在實際應用中碑韵,SN為硬盤的唯一標識
-
機械硬盤 HDD(Hard Disk Drive)
屬性:轉(zhuǎn)速(10k rpm),規(guī)格一般為3.5寸谓着,使用時需加裝3.5寸盤架泼诱。
-
固態(tài)硬盤 SSD (Solid State Drive)
沒有轉(zhuǎn)速,規(guī)格一般為2.5寸赊锚,SSD使用時治筒,需加裝2.5寸轉(zhuǎn)換架再加裝3.5寸盤架。
硬盤接口:STAT或SAS(主流目前就這兩種)
-
RAID陣列
-
什么是RAID舷蒲?
獨立硬盤冗余陣列
(RAID
,R
edundantA
rray ofI
ndependentD
isks)耸袜,舊稱廉價磁盤冗余陣列
(R
edundantA
rray ofI
nexpensiveD
isks),簡稱磁盤陣列
牲平。其基本思想就是把多個相對便宜的硬盤組合起來堤框,成為一個硬盤陣列組,使性能達到甚至超過一個價格昂貴纵柿、容量巨大的硬盤蜈抓。現(xiàn)在RAID是作為服務器硬盤單盤故障時的保障機制(RAID0除外)
-
RAID陣列類型
RAID0_single 用一塊盤做的RAID0,線性卷條帶集昂儒,不存在冗余機制沟使,讀寫速度最快(通常用于服務器新機裝OS)
RAID0_all 用兩塊盤做的RAID0,線性卷條帶集渊跋,不存在冗余機制腊嗡,讀寫速度最快
RAID1 鏡像卷,一塊盤在兩快硬盤內(nèi)寫入拾酝,空間使用率為50%燕少,支持冗余機制,需要兩塊盤蒿囤,允許壞一塊盤
RAID5 帶奇偶校驗的條帶集客们,需要三快盤及以上,磁盤利用率為n-1/n蟋软,允許壞一塊盤镶摘,讀寫速度快,通常配合熱備盤使用岳守。
RAID10 RAID0與RAID1的綜合應用
RAID6 帶奇偶校驗的條帶集(雙校驗),需要四快盤及以上碌冶,磁盤利用率n-2/n湿痢,允許壞兩塊盤
最主要使用的還是RAID1+RAID5
-
部署RAID:
服務器開機之后,過BIOS進入提示后,提示Ctrl+R進入RAID卡界面譬重,在其內(nèi)進行操作拒逮。
F2選擇選項卡,Ctrl+N下一個選項卡臀规,Ctrl+F上一個選項卡
-
-
基本分區(qū)管理
-
fdisk
不能用于大于2T的磁盤記性分區(qū)滩援,可以有四個硬盤主分區(qū)。
-
創(chuàng)建分區(qū)
fdisk /dev/sda #進入fdisk分區(qū)界面
m進行咨詢
p創(chuàng)建一個主分區(qū)
e創(chuàng)建一個擴展分區(qū)(擴展分區(qū)為主分區(qū)不可格式化塔嬉,不可用于存儲玩徊,只可創(chuàng)建邏輯分區(qū))
l創(chuàng)建一個邏輯分區(qū)(擴展分區(qū)創(chuàng)建之后才可創(chuàng)建)
-
操作流程
fdisk /dev/sda Command( m for help): n #此處輸入n創(chuàng)建一個新分區(qū) Command action e extended p primary partition(1-4) p #創(chuàng)建一個主分區(qū) Partition number (1-4): 1 #分區(qū)號 First cylinder (1-391,default 1): #分區(qū)起始位置(磁盤扇區(qū)),直接回車則從默認位置開始 Last cylinder (1-391,default 391):+100M #分區(qū)結(jié)束位置谨究,單位為扇區(qū)恩袱,此處輸入想要分配的空間大小
-
-
gdisk
128個分區(qū),支持更大的磁盤空間胶哲,操作流程略同fdisk
-
創(chuàng)建文件系統(tǒng)(格式化) mkfs.
CentOS7中默認的文件系統(tǒng)為xfs文件系統(tǒng)
-
-
-
格式化命令:mkfs.加文件系統(tǒng)格式
-
磁盤分區(qū)之后若要使用都要進行格式化命令
mkfs.xfs /dev/sda/sda1 #事例蚕甥,給/dev/sda/sda1格式化為xfs文件系統(tǒng) mkfs.ext4 /dev/sda/sd2 #事例绷落,給/dev/sda/sd2格式化為ext4文件系統(tǒng)
-
-
掛載 mount
在linux操作系統(tǒng)中, 掛載是指將一個設備(通常是存儲設備)掛接到一個已存在的目錄上。 我們要訪問存儲設備中的文件身冀,必須將文件所在的分區(qū)掛載到一個已存在的目錄上, 然后通過訪問這個目錄來訪問存儲設備喇闸。
mount /dev/sda /sh #事例锄俄,將硬盤sda掛載到根下的sh目錄
-
查看磁盤情況 df -h
主要為查看磁盤的使用情況以及掛載情況。如果創(chuàng)建文件不能時冰肴,優(yōu)先使用此命令屈藐。
-
邏輯卷管理 LVM
-
什么是LVM
LVM是 Logical Volume Manager(邏輯卷管理)的簡寫,它是Linux環(huán)境下對磁盤分區(qū)進行管理的一種機制熙尉。
-
LVM出現(xiàn)的目的
在零停機前提下可以自如對文件系統(tǒng)的大小進行調(diào)整联逻,可以方便實現(xiàn)文件系統(tǒng)跨越不同磁盤和分區(qū)。
-
LVM操作流程:
-
①創(chuàng)建pv
pvcreate /dev/sda #事例检痰,將sda創(chuàng)建為pv pvcreate /dev/sdb #事例包归,將sdb創(chuàng)建為pv pvscan #查看當前的pv情況
-
②創(chuàng)建vg
vgcreate datavg /dev/sda #事例,將pv sda創(chuàng)建為vg vgextend datavg /dev/sdb #事例铅歼,將pv sdb添加到vg中 vgscan #查看當前vg情況
-
③創(chuàng)建lv
lvcreate -L 200M -n lv1 datavg #事例公壤,創(chuàng)建lv 命名為lv1,指定大小200MB椎椰,從于datavg lvremove /dev/datavg/lv1 #事例厦幅,移除datavg下的lv1。
-
-
-
LVM的優(yōu)缺點
優(yōu)點:實現(xiàn)跨磁盤存儲文件慨飘,可以將多塊磁盤作為一塊磁盤使用确憨,可以更加自由的分盤译荞。
缺點:無冗余機制。(企業(yè)中用處不大)
-
創(chuàng)建不了文件
①容量不足 ②inode使用飽和 ③硬盤損壞 ④系統(tǒng)問題
如若遇到問題第一反應:df -h查看硬盤使用率
如果在ext4文件系統(tǒng)下休弃,磁盤使用率正常吞歼,卻無法創(chuàng)建,則可以斷定為inode飽和(一般出現(xiàn)在海量文件存儲的服務器)
解決方法:暫時清空tmp塔猾,騰出inode
-
文件系統(tǒng)修復
-
①fsck 不能百分百保證文件可以修復
-
1.機器因為磁盤問題無法啟動時
只適用于ext4文件系統(tǒng)
fsck /dev/sda #事例
-
2.Read-Only file system
導致這種情況的原因:①非正常關(guān)機②硬盤故障
解決方法:①umount ②fsck.ext4 -fy /dev/sda
-
-
②xfs文件系統(tǒng)的修復
xfs_repair /dev/sda #事例
-
文件查找及打包
文件查找
grep為文件內(nèi)容過濾篙骡,不輸入此處的范疇
-
命令
-
1.按名字:
find /etc -name "ifcfg*" #事例,從/etc下查找名字為ifcfg開頭的文件 # !-name 非此名字 # iname 忽略大小寫
-
2.按文件大小查找
find /etc -size +5M #事例丈甸,在/etc中查找文件大小大于5MB的文件 #-5M 5M 分別為小于5MB和恰好等于5M的文件
-
3.按文件層數(shù)查找
find / -maxdepth 3 -a -name "ifcfg*" #事例糯俗,查找最大層數(shù)為三層以內(nèi)的以ifcfg開頭的文件
-
4.按修改時間查找
find /tmp -mtime +5 #事例,查找/tmp下修改時間大于五天的文件
-
5.按照權(quán)限查找
find /root -perm 644 -ls #事例老虫,在/root中查找權(quán)限為644的文件叶骨,并輸出權(quán)限 find /root -prem -644 -ls #事例,在/root中查找包含權(quán)限644的文件祈匙,并輸出權(quán)限
-
6.搜索并對搜索到的文件進行操作
find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \; #事例忽刽,在/etc下查找名字以ifcfg開頭的文件,并對他們執(zhí)行復制到/tmp下的操作 find /etc -name "yang*" | xargs rm -rf #事例夺欲,在/etc下查找名字以yang開頭的文件跪帝,并執(zhí)行刪除命令
-
文件打包及壓縮
-
1.打包
-
tar壓縮
tar -czf etc1.tar.gz /etc #事例,將/etc打包成gz格式
tar -cjf etc2.tar.bz2 /etc #事例些阅,將/etc打包成bz2的包
tar -cJf etc3.tar.xz /etc #事例伞剑,將/etc打包成xz的包
-
-
2.解壓
-
tar解壓
tar -xvf etc1.tar.gz #事例,無需指定文件格式自動匹配解壓市埋,tar包萬用
-
zip解壓
unzip xxx.zip
-
軟件包管理
-
軟件的的類型:
- ①.源碼包 tar 需要編譯黎泣。
- ②.二進制包 rpm 已編譯
-
RPM包管理
-
主要獲取RPM包的途徑:
- 1.官方網(wǎng)站
- 2.rpmfind.net
- 3.相應軟件的官方網(wǎng)站
-
RPM包安裝
-
安裝及卸載的命令
rpm -ivh local_path rpm -ivh url_path rpm -e name --force --nodeps #事例,強制忽略依賴關(guān)系的卸載name
-
額外參數(shù):
-e #erase缤谎,刪除 --nosignature #不檢驗文件包簽名 --force #強制安裝 --nodeps #忽略依賴關(guān)系
-
查詢:
rpm -q ntfs-3g #查詢指定包是否安裝 rpm -qa #查詢?nèi)w包安裝抒倚,可以管道符過濾
-
-
-
源碼包管理
獲取源碼包的方式:
- 1.官方網(wǎng)站
- 2.傳輸-
源碼包安裝
準備工作:1.編譯環(huán)境如編輯器gcc、make 2.準備軟件 tengine-2.2.0.tar.gz
-
源碼包安裝三部曲
./configure --prefix=/usr/local/niginx #在解壓開的源碼包目錄內(nèi)prefix后為安裝的目錄 make #編譯 make install #按照Makefile定義的文件路徑安裝
-
源碼包安裝錯誤的事例
-
error1:
./configure:error:the HTTP gzip module requires the **zlib** library. You can either disable the module by using --without-http_gzip_module option, or install the zlib library into the system, or build the zlib library statically from the source with nginx by using --with-zlib=<path> option.
解決方法坷澡,安裝提示中需要的包
yum -y install zlib-devel
-
error2:
./configure: error: SSL modules require the **OpenSSL** library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option.
安裝所需包
yum -y install openssl-devel
-
error3:
checking for C compiler ... not found ./configure: error: C compiler cc is not found
未安裝gcc編譯器
解決方法:
yum -y install gcc gcc-c++ make
-
error4:
./configure: error: the HTTP rewrite module requires the **PCRE** library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option.
解決方法托呕,安裝所需的包:
yum -y install pcre-devel
-
-
源碼包卸載
直接到相應路徑,刪除文件频敛。
-
yum源
-
yum源配置文件存放位置:
cd /etc/yum.repos.d
-
修改yum源后项郊,需要晴空下yum原信息,并更新yum源倉庫信息斟赚,執(zhí)行命令:
yum clean all yum makecache
也需要下載下epel-release源
yum -y install epel-release
并修改epel源着降,之后投入使用。
-
計劃任務
-
一次性調(diào)度執(zhí)行at
yum -y install at #安裝at服務 systemctl start atd #啟動 systemctl enable atd #開機自啟動
-
語法格式
at now +1min at>useradd uuu at> <EOT> job 1 at Sat Mar 21 22:34:00 2015
-
-
循環(huán)調(diào)度執(zhí)行cron 用戶級
cron的作用方式:crond進程會每分鐘處理一次計劃任務
cron存放的位置:/var/spool/cron
-
管理方式:
crontab -l #列出當前用戶的計劃任務 crontab -r #移除當前用戶的計劃任務 crontab -e #編輯當前用戶的計劃任務
-
cron編輯過程中的格式:
a b c d e command
a:分 b:時 c:日 d:月 e:周
-
特殊語法
*/5 * * * * /mysql_back.sh #每隔五分鐘執(zhí)行一次腳本mysql_back.sh 0 2 1,4,6 * * /mysql_back.sh #每月的1拗军,4鹊碍,6號執(zhí)行腳本mysql_back.sh 00 02 1-8 * * ls #每月的1-8號
系統(tǒng)日志 rsyslog
不同的服務有自身的日志記錄(httpd厌殉、nginx食绿、mysql)
-
重要的日志有以下幾種
/var/log/message OS主日志(記錄硬件問題侈咕,服務等)
/var/log/secure 認證安全日志(登錄報錯等)
/var/log/cron cron、at的進程日志
/var/log/dmesg 和系統(tǒng)啟動相關(guān)的日志
-
日志報錯的級別
LOG-EMERG 緊急器紧、致命(如配置文件丟失)
LOG-ALERT 報警耀销、需立即處理(如磁盤空間使用過高)
LOG-CRIT 致命
LOG-ERR 錯誤
LOG-WARNING 警告
LOG-NOTICE 普通提醒
LOG-INFO 標準信息
LOG-DEBUG 報錯反饋(不建議在實際中使用)
日志輪轉(zhuǎn) logrotate
針對任何日志文件(rsyslog、Nginx訪問或錯誤日志等)
-
日志輪轉(zhuǎn)的意義
如果沒有日志輪轉(zhuǎn)铲汪,日志文件會越來越大熊尉,查看起來繁瑣。日志輪轉(zhuǎn)之后可以丟棄最久的日志文件掌腰,以節(jié)省空間狰住。
-
logrotate本身不是系統(tǒng)守護進程,它是通過計劃任務crond每天執(zhí)行的
cat /etc/cron.daily/logrotate #一下為文件顯示的內(nèi)容 !/bin/sh/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf #日志輪轉(zhuǎn)規(guī)則按照/etc/logrotate.conf
-
相關(guān)的文件
/etc/logrotate.conf #決定每個日志文件如何輪轉(zhuǎn)
/etc/logrotate.d/* #決定每個日志怎么輪轉(zhuǎn)
vim /etc/logrotate.conf #=========全局設置==========# weekly #輪轉(zhuǎn)的周期齿梁,一周輪轉(zhuǎn) rotate 4 #保留4份 create #輪轉(zhuǎn)后創(chuàng)建新文件 dateext #使用日期作為后綴 compress #是否壓縮 include /etc/logrotate.d #包含該目錄下的文件 /var/log/wtmp { #對該日志文件設置輪轉(zhuǎn)的方法 monthly #一月輪轉(zhuǎn)一次 minsize 1M #最小達到1M才輪轉(zhuǎn) create 0664 root utmp #輪轉(zhuǎn)后創(chuàng)建新文件催植,并設置權(quán)限 rotate 1 #保留一份 } /var/log/btmp { missingok #丟失不提示 monthly #每月輪轉(zhuǎn)一次 create 0600 root utmp #輪轉(zhuǎn)后創(chuàng)建新文件,并設置權(quán)限 rotate 1 #保留一份 } #例子:輪轉(zhuǎn)文件/var/log/yum.log vim /etc/logrotate.d/yum /var/log/yum.log{ missingok #丟失不提醒 notifempty #空文件不輪轉(zhuǎn) size 30k #輪轉(zhuǎn)大小 yearly daily #每天輪轉(zhuǎn)一次 rotate 3 #保留最新的三份 create 0777 root root }
Linux網(wǎng)絡管理
-
網(wǎng)卡位置
/etc/sysconfig/network-script/ifcfg-eth0
-
網(wǎng)卡內(nèi)容
vim /etc/sysconfig/network-script/ifcfg-eth0 #打開網(wǎng)卡 NAME="eth0" #網(wǎng)卡名 DEVICE="eth0" #設備名 TYPE=Ethernet #以太網(wǎng)類型 ONBOOT=yes #開機啟動 BOOTPROTO=none #IP獲取方式勺择,也可以是dhcp自動獲取创南,若為dhcp則不需要自己設置ip IPADDR=10.18.42.20 #IP地址 PREFIX=24 #子網(wǎng)掩碼,也可以寫為 NETMASK=255.255.255.0 GATEWAY=10.18.2.1 #網(wǎng)關(guān) DNS1=8.8.8.8 #DNS1 DNS2=114.114.114.114 #DNS2
-
DNS服務器填寫位置
/etc/resolv.conf
vim /etc/resolv.conf Generated by NetworkManager nameserver 114.114.114.114 #格式