LinuxStudyNoteBy_Silvers X:
(E:\Video_Tutorials\Linux自學視訊\linux視訊教程-後盾網視訊教程)
15:36 2017/2/6
##Linux中的基本指令包括檔案操作指令、目錄操作指令、檔案檢視指令等幾類。
檔案操作指令完成對檔案的建立、複制、删除、移動等功能 目錄操作指令完成對目錄的建立、複制、删除、移動等功能
文本檢視指令完成對文本檔案内容的浏覽、局部浏覽活分頁浏覽等功能
##linux下檔案操作基本的指令
ls: 列舉檔案 -a 顯式隐藏檔案 -l 具體檔案及所有屬性
pwd: 無參數 顯式目前所處目錄結構
touch:建立空白檔案
file :顯式檔案屬性
##目錄操作基本指令
cd :改變目錄
cp :-r 複制目錄
mv :移動檔案及目錄
rm :-r 删除檔案夾 -f 靜默删除
mkdir: 建立目錄
rmdir: 删除一個空的檔案夾
##文本檔案檢視基本指令
cat :檢視檔案内容
more:分屏顯式檔案内容
less:分屏顯式檔案内容
head : -nu 指定顯式檔案前nu行内容
tail:-nu 指定顯式檔案倒數nu行内容
## 檢視指令使用的曆史記錄
方向鍵上:檢視執行過的指令
使用!!:執行最近(上一次)執行過的指令
使用!: 執行已經執行過的指令(!①模糊查詢(執行過指令的首字母或全稱,當有多于一條相同指令,從下往上第一條指令優先執行)②!history顯示的指令行數号
history:顯示曆史執行過的指令 -d 删除曆史記錄
## 标準輸入輸出
Linux的大部分指令都具有标準的輸入/輸出裝置端口
STDIN 0 标準輸入 鍵盤 指令在執行時所要的輸入資料通過它來取得。
STDOUT 1 标準輸出 顯示器 指令在執行後的輸出結果從該端口送出。
STDERR 2 标準錯誤 顯示器 指令執行時的錯誤資訊通過該端口送出。
## 系統重定向
重定向及時不使用系統的标準輸入端口,标準輸出端口和标準錯誤輸出端口,而進行重新的指定,是以重定向分為輸入,輸出、錯誤重定向。通常情況下重定向到一個檔案。
<: 實作輸入重定向。
輸入重定向不經常使用,因為大多數指令都以參數的形式在指令行上指定輸入檔案的檔案名,盡管如此,當使用一個不 接受檔案名為輸入參數的指令,而需要的輸入又是在 一個已存在的檔案裡,就可以使用輸入重定向解決問題
>或>>:實作輸出重定向。輸出重定向比輸入重定向更為常用。輸出重定向使使用者能把一個指令的輸出重定向到一個檔案裡,而不是顯示在螢幕上。很多情況下都可以使用這種功 能。例如,如果某一個指令的輸出很多,在螢幕上不能完全顯示,即可把它重定向到一個檔案中,稍後再用vim或cat打開該檔案。(>和>>的差別 : 前者覆寫儲存,後者追加保 存)
2>或>>:實作錯誤重定向
&>:同時實作輸出重定向和錯誤重定向
## 管道的應用
許多Linux指令具有過濾特性,即一條指令通過标準輸入端口接受一個檔案中的資料,指令執行後産生的結果資料又通過标準輸 出端口送給後一條指令,作為該指令的輸入資料。
後一 條指令也是通過标準輸入端口而接受輸入資料的。
管道指令“|”将這些指令前後連接配接在一起,形成一條管道線
指令格式
cmd1 | cmd2
cmd為指令名,|為管道連接配接符。
## 檔案權限管理
檔案權限(File Permission)定義了對某檔案或目錄的通路限制。每個檔案或目錄都有9個基本權限位控制其讀、寫、執行。
r 讀權限 可以讀檔案的内容 可以列出目錄中的檔案清單
w 寫權限 可以修改、删除檔案 可以在該目錄中建立删除檔案
x 執行權限 可以執行該檔案 可以使用cd進入該目錄
—————————————————————————————————————————————————
| 權限項 | 讀 寫 執行 | 讀 寫 執行 | 讀 寫 執行 |
| 字元表示 | r w x | r w x | r w x |
| 字元示例 | u+r u+w u+x | g+r g+w g+x | o+r o+w o+x |
| 數字表示 | 4 2 1 | 4 2 1 | 4 2 1 |
| 權限配置設定 | 檔案所有者 | 檔案所屬組使用者 | 其他使用者 |
——————————————————————————————————————————————————
說明:
a. 目錄上隻有執行權限,表示可以進入此目錄以及深層目錄
b. 目錄上隻有執行權限,要通路該目錄下的有讀權限檔案,必須知道檔案才可以通路
c. 目錄上隻有執行權限,不能列出目錄也不能删除該目錄
d. 目錄上執行權限和讀權限的組合,表示能可以進入目錄并能列出目錄清單
e. 目錄上執行權限和寫權限的組合,表示可以在目錄中建立和重命名檔案
權限修改方法A:
chmod u+rw 檔案名稱
chmod g+r 檔案名稱
chmod o+x 檔案名稱(添權重限)
chmod u-rwx 檔案名稱(取消所有權限)
權限修改方法B:數字(八進制)表示法[ 4表示讀權限,2表示寫權限,1表示執行權限]
chmod 777 檔案名稱 :表示所有權限
chmod 444 檔案名稱 :表示所有使用者擁有讀權限
chmod 745 檔案名稱 :各組權限配置設定不同
chown 改變檔案及目錄的組
chown user:group 檔案/目錄名稱 将檔案/目錄名稱的屬主改變為user:group
## 特殊權限位
三個特殊權限位是在可執行程式運作時影響操作權限的。它們分别是SUID們、SGID位和sticky-bit位
特殊權限 說明
SUID 當設定了SUID位的可執行檔案被執行時,該檔案将以所有者的身份運作,也就是說無論誰來執行這個檔案,它都有檔案所有者的特權。
SGID 當一個設定了SGID位的可執行檔案運作時,該檔案将具有所屬組的特權,任意存取整個組所能使用的系統資源;
若一個目錄設定了SGID,則所有被複制到這個目錄下的檔案,其所屬的組都會被重設為和這個目錄一樣。
sticky-bit 對一個檔案設定了sticky-bit之後,盡管其他使用者有寫權限,也必須由屬主執行删除、移動等操作;
對一個目錄設定了sticky-bit權限之後,那麼存放在該目錄下的檔案或目錄隻能由其屬主執行删除、移動等操作
若使用者無特殊需要,盡量不要去打開這些權限,避免安全方面出現漏洞
## 系統查找
which 查找可執行程式的指令/程式/檔案(在指定目錄下),隻在目前使用者path(env指令可檢視使用者path環境變量)中指定的目錄中查找(優先)
whereis 查找指定檔案 可查找與名稱相關的所有檔案、(内嵌查詢DB)全面詳細。
locate 查找含有指定字元串的所有檔案,(模糊查詢)不精确
find 查找執行個體(直接在硬碟/分區中操作,速度慢) 在目前目錄查找
## 與時間相關的參數
mtime:修改時間,修改過的所有檔案,系統修改的檔案.
atime:通路時間,檔案何時被讀取
ctime:狀态時間,rw權限修改時間
find / -mtime 0;
find / -mtime 3(0:24小時之内,3:三天之前的那一天,(+指定區間範圍以外,-指定區間範圍以内));
## 與使用者、組相關的參數
find / -user username:查找與使用者相關的所有檔案
find / -nouser:不屬于任何使用者的檔案查找;
find / -group groupname.
## 與檔案權限相關的參數
find / -name filename(查找(區分大小寫)比對整個名稱的檔案)
find / -iname filename(不區分大小寫);
find / -type f (f表示普通檔案,l表示連結檔案d表示目錄).
## find 特殊過濾條件
find / -size +1000k(查找指定目錄中大于1000k的檔案(s表示kb,h表示mb,));
find /etc -name '*pas*'(通配符填充,模糊查詢)
find / -perm +7000(查找特殊權限的檔案)
## 文本編輯器Vim
vim和vi的差別:vim是vi的更新版,核心是一樣的, Linux預設文本編輯器vi,系統內建vi。vim是需要安裝才能使用,vi不用安裝即可使用。
## Vi編輯基礎,wq儲存退出,!wq強制不儲存,q不儲存退出,!q強制不儲存退出.
## 光标移動和翻頁操作
h:向左移動光标,
l(小寫L):向右移動光标,
k:向上移動光标,j:向下移動光标。
^:将光标快速跳轉到本行的行首字元,
$:将光标快速跳轉到本行的行尾字元,
w:将光标快速跳轉到目前光标所在位置的後一個單詞的首字母,b:将光标快速跳轉到目前光标所在位置的前一個單詞的首字母,
e:将光标快速跳轉到目前光标所在位置的後一個單詞的尾字母;
Ctrl+f:向前翻整頁,
Ctrl+b:向後翻整頁,
Ctrl+u:向前翻半頁,
Ctrl+d:向後翻半頁;
:set nu(在編輯器中顯示行号),
:set nonu(取消編輯器中的行号顯示);
1G:跳轉到檔案的首行(數字1),
G:跳轉到檔案的尾行,
#G:跳轉到檔案中的第#行;
## vi模式(控制模式(預設)指令模式(輸入冒号進入)編輯模式(輸入a進入))Esc鍵退出INSERT模式
進入INSERT模式
i:在目前光标處進入INSERT模式。
a:在目前光标後進入INSERT模式。
A:将光标移動到目前行的行末,并進入INSERT模式。
o:在目前行的下面插入新行,光标移動到新行的行首,進入INSERT模式。
O:在目前行的上面插入新行,光标移動到新行的行首,進入INSERT模式。
cw:删除目前光标到所在單詞尾部的字元,并進入INSERT模式。
c$:删除目前光标到行尾的字元,并進入INSERT模式。
c^:指令删除目前光标之前(不包括光标上的字元)到行首的字元,并進入INSERT模式
## 功能鍵操作
INSERT模式編輯鍵操作
方向鍵:進行上下左右方向的光标移動。
Home:快速定位光标到行首。
End:快速定位光标到行尾。
PageUP:進行文本的向上翻頁。
PageDown:進行文本的向下翻頁。
Backspace:删除光标左側的字元。
Delete:删除光标位置的字元。
## 删除操作
x:删除光标處的單個字元。
dd:删除光标所在行。
dw:删除目前字元到單詞尾(包括空格)的所有字元。
de:删除目前字元到單詞尾(不包括單詞尾部的空格)的所有字元。
d$:删除目前字元到行尾的所有字元。
d^:删除目前字元到行首的所有字元。
J:删除光标所在行行尾的換行符,相當于合并目前行和下一行的内容
## 撤銷操作
u:取消最近一次的操作,并恢複操作結果。可以多次使用u指令恢複已進行的多步操作。
U:取消對目前行進行的所有操作。
Ctrl+r:對使用u指令撤銷的操作進行恢複。
## 複制與粘貼操作
yy:複制目前行整行的内容到vi緩沖區。
yw:複制目前光标到單詞尾字元的内容到vi緩沖區。
y$:複制目前光标到行尾的内容到vi緩沖區。
y^:複制目前光标到行首的内容到vi緩沖區。
p:讀取vi緩沖區中的内容,并粘貼到光标目前的位置(不覆寫檔案已有的内容)。
## 字元串查找操作
/word:從上到下在檔案中查找字元串"word"。
?word:從下到上在檔案中查找字元串"word"。
n:定位下一個比對的被查找字元串。
N:定位上一個比對的被查找字元串。
# ## 字元串替換操作
:s/old/new:将目前行中查找到的第一個字元"old"字元串替換為"new"字元串。
:s/old/new/g:将目前行中查找到的所有字元串"old"替換為"new"字元串。
:#,#s/old/new/g:在行号"#,#"範圍内替換所有的字元串"old"為"new"字元串。
:%s/old/new/g:在整個檔案範圍内替換所有的字元串"old"為"new"字元串。
:s/old/new/c:在替換指令末尾加入c指令,将對每個替換動作提示使用者進行确認。
## 使用vi打開多個檔案
vi file1 file2 file3 .....
## vi多檔案操作指令
:args:顯示多檔案資訊
:next:向後切換檔案
: :prev:向前切換檔案
:first: 定位首檔案
:last: 定位尾檔案
Ctrl+^:快速切換到編輯器中切換前的檔案
## 程序操作
## ps 檢視系統目前程序
ps -ef 檢視所有
ps aux (包含cpu 的目前資訊)
filename + & 顯示filename程序号
killall -u command : 殺死指定程序
kill pid : 殺死指定程序
sleep 10000 :暫時停掉程序(會産生新的程序)
jobs : 顯示挂起的程序
fg + jobs号碼 :将挂起的程序調入前台模式
bg +jobs号碼 :将前台的程序調入背景模式
## yum&&rpm&&源碼安裝軟體
## Linux 應用程式組成:
檔案類型 儲存目錄
普通執行程式檔案 /usr/bin
伺服器執行程式檔案和管理程式檔案 /uur/sbin
應用程式配置檔案 /etc
應用程式文檔檔案 /usr/share/doc
應用程式手冊頁檔案 /usr/share/man
** 為什麼使用yum(在有網絡連接配接的情況下才能使用yum)
Linux系統維護中令管理人員最頭痛的就是軟體包之間的依賴了,往往是安裝了A軟體,但是安裝的時候告訴你需要B軟體,安裝B軟體時又告訴你需要Z庫,好不容易安裝好Z庫,發現版本還有問題,RPM軟體包管理系統對軟體之間的依賴關系沒有内部定義,造成安裝RPM軟體時經常出現令人無法了解的問題。
什麼是yum
用Python寫成,早時稱為yup,後經杜克大學的[email protected]團隊進行改進,才更名為yum。
yum的宗旨是自動化更新,安裝/移除RPM軟體包,收集RPM軟體包的相關資訊,檢查依賴并自動提示使用者解決。yum的關鍵之處是要有可靠的repository。
也就是軟體倉庫,它可以是HTTP或FTP站點,也可以是本地軟體池。
yum工具執行個體:
yum updae # 更新系統 yum remove httpd # 移除指定的軟體包 yum install httpd # 安裝指定的軟體包
yum search httpd # 搜尋指定的軟體包 yum update httpd # 更新指定的軟體包 yum list httpd # 列出軟體的詳細資訊
**替換yum官方倉庫源為國内開源鏡像站點的yum倉庫源(速度快)
備份本機倉庫源: mv /etc/yum.repository.d/CentOS7-Base.repo /etc/yum.repository.d/CentOS-Base.repo.backup
wget download'url(國内開源鏡像站中提供的對應源repo檔案的下載下傳連結)
yummakecache 生成本地緩存
##RPM 軟體包(RedHat,CentOS,SUSE支援)
RPM最早是由RedHat公司提出的軟體包管理标準,目前應用于很多Linux發行版。
RPM Package Manager
RPM軟體包的檔案名
bash-3.0-19.2.i386.rpm
bash #軟體包名稱
3.0-19.2 # 軟體版本号
i386 # 軟體運作硬體平台
.rpm # 軟體包擴充名
rpm指令的功能:
Centos中使用rpm指令對RPM軟體包進行管理
rpm指令可以完成對軟體包的所有管理功能
* 查詢已安裝在Linux系統中的RPM軟體包的資訊
* 查詢RPM軟體包安裝檔案的資訊
* 安裝RPM軟體包到目前Linux系統
* 從目前Linux系統中解除安裝已安裝的RPM軟體包
* 更新目前Linux系統中已安裝的RPM軟體包
## rpm查詢指令
指令 功能
rpm -qa 查詢Linux系統中的所有軟體包
rpm -q 包名稱 查詢指定名稱的軟體包是否安裝
rpm -qi 包名稱 查詢指定名稱的軟體包的詳細資訊
rpm -ql 包名稱 查詢指定名稱的軟體包中所包括的檔案清單
rpm -qf 檔案名稱 查詢指定檔案所屬的軟體包
rpm -qpi 封包件名 查詢指定RPM封包件的詳細資訊
rpm -qpl 封包件名 查詢指定RPM包中包含的檔案清單
## rpm安裝指令:
rpm -i(表示安裝軟體包)
-ivh(表示在安裝RPM軟體包是會顯示更多的提示資訊)
被依賴的軟體包應該優先被安裝
## rpm包解除安裝
rpm -e(表示解除安裝軟體包)
RPM軟體包的解除安裝同樣存在依賴關系
被依賴的軟體包應該最後被解除安裝
## rpm包更新
rpm -U(表示更新軟體包)
當系統中未安裝需要更新的軟體包時,更新的過程等同于安裝軟體包的過程
## 源碼編譯安裝應用程式
源代碼安裝的一般步驟:
* 确認目前系統中具備軟體編譯的環境
* 獲得應用程式的源代碼軟體封包件
* 解壓縮源代碼軟體封包件
* 進行編譯前的配置工作
* 進行程式源代碼的編譯
* 将編譯完成的應用程式安裝到系統中
編譯應用程式前的準備工作:
确認系統中已經安裝了編譯環境
$ rpm -qa | grep gcc
獲得(下載下傳)程式的源碼安裝封包件
釋放程式源碼軟體封包件
$ tar zxf nginx-1.3.3.5.tar.gz
進入源碼目錄
$ cd nginx-1.3.3.5
編譯應用程式前的配置
程式源碼目錄中的"configure"指令用于完成程式編譯前的配置工作
檢視"configure"指令支援的配置選項
./configure --help
指定安裝路徑進行配置
./configure --prefix=/opt/nginx(configure表示指令名,prefix表示用于設定安裝路徑的配置選項,nginx表示為指令選項設定的值)
編譯與安裝
程式編譯過程
使用make指令進行應用程式的編譯
$ make
程式安裝過程
使用make install 指令進行應用程式的編譯
$ make install
驗證(執行)已編譯安裝完成的程式
檢視安裝目錄中的檔案,執行指令程式
$ cd /opt/nginx ; ls
## 使用者管理
# 使用者
linux的賬戶包括使用者賬戶群組賬戶兩種
linux系統下的使用者賬戶有兩種,普通使用者和超級使用者,普通使用者在系統中的任務就是普通工作,管理者在系統上的任務是對普通使用者
和整個系統進行管理。管理者對系統具有絕對的控制權,能夠對系統進行一切操作。
除了使用者賬戶之外,linux下還有組賬戶。組是使用者的集合。在linux作業系統中組有兩種類型:私有組和公共組,當建立一個新使用者時,
若沒有指定他所屬的組,linux就建立一個和該使用者同名的私有組。這個私有組隻包括這個使用者自己。标準組可以容納多個使用者。
字段 說明
使用者名 使用者登入系統時使用的使用者名,它在系統中是唯一的。
密碼 此字段存放的是加密密碼。
使用者辨別号 是一個整數,每個使用者的UID都是唯一的。
組辨別号 是一個整數,系統内部用它來辨別使用者所屬的組。
注釋性描述 存放使用者全名等資訊。
自家目錄 使用者登入系統後進入的目錄。
指令解釋器 訓示該使用者使用的shell。
cd /etc/pswd 使用者資訊存儲
cd /etc/shadow root使用者資訊存儲
cd /etc/group 組使用者資訊存儲
# 建立一個新使用者:
useradd newuser (-c 添加注釋資訊)
# 修改一個已有的使用者:
usermod -l test olduser
usermod -L test 鎖定test使用者
usermod -U test 解鎖test使用者
# 删除一個已有的使用者:
userdel olduser 删除olduser
userdel -r olduser 删除所有該使用者的檔案
# 建立一個使用者組sharer
groupadd sharer
# 将sharer組更改為silvers
groupaddmod -n silvers sharer
# 删除silvers組
groupdel silvers
# 将一個使用者silvers添加到建立的标準組sharer中
useradd -G sharer silvers
# 修改一個使用者silvers目前的所屬組為newgroup。
useradd -G newgroup silvers
## 密碼管理/使用者切換
passwd
passwd user 修改指定賬号密碼
passwd -d test1 (删除test1的賬号密碼[僅限root])
usermod -L test1 (鎖定test1賬号) -U 解鎖
passwd -l test1 (鎖定test1的賬号密碼) -U 解鎖
cd /etc/login.defs 配置管理使用者密碼時效
##chage指令的使用
chage -l 檢視使用者密碼時效
chage -m num (最小天數)-M(最大)-W (警告過期時限)
login.defs系統全局配置檔案,chage 針對單個使用者。
## su&&subo
su - root 需要目前使用者密碼
su - test1 不需要
sudo
配置sudo vim visudo
id 使用者的id
newgrp 改變目前預設的組
## fdisk分區
fdisk -l 列出目前記憶體分區及使用情況
fdisk /dev/sdb # 對sdb進行分區操作
command : m #for help
d #删除已有的分區
n #重新分區操作
q #不儲存退出
p #列印分區表資訊
w #儲存分區操作并退出
t #顯示系統分區id号
## ExT檔案系統
linux下格式化分區就是建立檔案系統,ExT3可産生相應的日志檔案在/var/log(對後期排查很有必要)
eg.建立檔案系統
fdisk -l
# 指定目前分區檔案系統
mke2fs /dev/sdb1/ (分區的絕對路徑) #指定檔案系統為預設ext2
mke2fs -j /dev/sdb1 (分區的絕對路徑) #指定檔案系統為ext3
# 檢測目前檔案系統及錯誤
e2fsck /dev/sdb1
e2fsck -p /dev/sdb1 #帶自動修複的檢測
tune2fs -l /dev/sdb1 #顯示檔案系統類型詳細資訊
tune2fs -c 30 /dev/sdb1 #将預設的挂載數修改為30
tune2fs -i 180d /dev/sdb1 #将預設的挂載時間修改為180天
e2label /dev/sdb1 www #給目前檔案系統指定卷标為www
findfs www #基于卷标來查詢
## 挂載操作mount詳解
df -h #檢視目前挂載記憶體分區
# 挂載硬碟之前需要配置/etc/fstab
vim /etc/fstab #追加 /dev/sdb1 /opt ext3 defaults
mount -a #使挂載資訊生效
fdisk -l
df -h
umount /opt #解除安裝/opt分區
## mount指令詳解
永久挂載 配置/etc/fstab檔案
臨時挂載 mount -t ext3 /dev/sdb1 /opt
mount #檢視目前挂載資訊。
mount -a #使挂載操作馬上生效。
## mount挂載U盤,光驅,移動硬碟,鏡像檔案。
# 光驅
cd media
mkdir cdrom
mount media/cdrom
# u盤
cd /media
mkdir usb
mount -t vfat /dev/sdc1(u盤實際路徑) /media/usb
# 鏡像檔案
cd /media
mkdir iso
mount -o loop docs.iso /media/iso
umount /media/iso(挂載的目錄)
## LVM基本使用
LVM 邏輯性管理器,彈性管理磁盤
pvdisplay #檢視實體卷
pvcreate /dev/sdb1 #寫入實體卷到磁盤
## 建立卷組
vgcreate www /dev/sdb1(必須是實體卷才成功)
vgdisplay #檢視建立的卷镞
lvcreate -L 3G -n a1 www #建立a1邏輯卷
#指定檔案系統(分區格式化)
mke2fs -j /dev/www/al
## 挂載剛建立的的邏輯卷a1
mount -t ext3 /dev/www/al /opt
小結:
1.create a pv #建立實體卷
2.create a vg #建立卷組
3.create a lv #建立邏輯卷
4.mke2fs -j /dev/www/a1
5.mount -t ext3 /dev/www/al /opt
移除:
umount /opt #解除安裝挂載目錄
lvremove /dev/www/a1 #删除邏輯卷
vgremove www #删除卷組
pvremove /dev/sdb1 #删除實體卷
##重點指令掌握
pvcreate/pvdisplay/pvremove
vgcreate/vgdisplay/vgremove/vgrename
lvcreate/lvdisplay/lvremove
## 網絡基本配置
ifconfig #檢視網絡資訊
ifconfig eth0 #檢視指定網卡資訊
ifconfig eth0 down #停掉eth0網卡
ifconfig eth0 up #啟動eth0網卡
ifconfig eth0 192.168.251.1 #手動修改新ip位址
ifconfig eth0 192.168.251.1 netmask 255.255.255.0 #修改ip位址和子網路遮罩
## 修改主機名稱
臨時修改
hostname Silvers
永久修改
配置 /etc/sysconfig/network
修改 HOSTNAME=Sylvia
配置network-scripts/ifcfg-eth0永久修改網絡相關資訊
service network restart
#DNS的配置
/etc/resolv.conf
nameserver 219.141.136.10 #中國電信
nameserver 202.106.0.20 #中國聯通
nslookup
> www.baidu.com
;
traceroute www.baidu.com #遠端路由追蹤
netstat -r #檢視網卡網絡資訊
##linux啟動與單使用者
啟動引導器()
reboot之後在等待時間内按任意鍵進入grub
按a #修改系統核心等參數 /按e # 編輯配置模式 /按c # 支援指令提示符操作
help指令學習各種指令用法
按Esc退出目前界面,在作業系統中配置grub,定制多系統啟動等
grub系統配置檔案
etc/grup.conf[是個連結檔案]
default=0 # 系統預設啟動模式
timeout=5 # 系統啟動逾時值
#配置多系統啟動
title Windows 10
rootnoverify (h0,0)
chainloader +1
#單使用者模式啟動
按a進入grub
追加指令 LogVo100(後面加個空格) single
runlevel # 顯示目前作業系統啟動模式
showdown -h now # 關閉系統
# linux的修複模式
挂載啟動CD光牒之後,啟動系統之後按F5
boot: linux rescue ##回車進入修複模式
## linux系統管理守護程序
ps -ef #可檢視目前系統的程序
系統守護程序:指的是運作在背景的程序,随着系統的啟動而啟動的,相當于window的服務。
ps -ef | grep init #通過關鍵字查詢相關程序資訊
ps -ef | grep login
各種應用的守護程序,總體分為兩大類系統守護,網絡守護程序;
pstree #守護程序樹,守護程序的優先級
init #系統啟動模式
acpid #進階電源管理守護程序
anacron #時間任務執行計劃管理守護程序
等等。
# 停止,啟動守護程序
service crond stop # 停止該守護程序
service crond start # 啟動該守護程序
service crond restart # 重新開機該守護程序
service crond reload # 重載該守護程序(重新開機不會停止)
ntsysv # 進入啟動系統自啟動守護程序
chkconfig
chkconfig --list [name]
chkconfig --add <name>
chkconfig --del <name>
chkconfig [--level <levels>] <name> <on|off|reset|resetpriorities>
#levels
0:關機模式1:單使用者模式2:3:4:自定義模式5:圖形模式6:重新開機模式
chkconfig --level 2345 crond off # 在2345模式下關閉crond守護程序
chkconfig --list crond # 檢視指定的守護程序資訊
## linux系統時鐘同步守護程序
date #檢視目前系統時鐘
time #檢視時間
hwclock #檢視硬體時鐘
# 手動設定系統時鐘
date -s "2017-02-17 17:10:00"
# 如何系統和硬體同步時鐘
hwclock -- systohc(系統到硬體同步) /-- hctosys(硬體到系統同步)
# 如何通過網絡同步時鐘
使用安裝ntp
yum search ntp
ntpdate www.pool.net.org #通過時間伺服器來同步
ntpdate time.windows.com #通過windows時間伺服器同步
# 減小系統和硬體時鐘的同步誤差
hwclock --systohc
# 定制時間同步守護程序以實作自動同步時鐘
vim /etc/ntp.conf
server 0.centos.pool.ntp.org
server 1.time.windows.com
server 3.www.pool.ntp.org
service ntpd start
ps -ef | grep ntpd
date -R # 檢視目前系統所處的時區
tzselect # 時區選擇設定
## linux系統周期性計劃任務
ps -ef | grep crond
cron是一個可以用來根據時間,日期,月份,星期的組合來排程對周期性任務執行的守護程序。利用cron所提供的功能,可以将需要周期性重複執行的任務設定為cron任務,并且設定為在主機較空閑的時間(如夜間)自動完成。
centos中實作cron功能的軟體包組成crontabs軟體包實作對linux系統的定時任務管理功能
service crond status
#檢視crond守護程序資訊情況
example:
50 3 2 1 * run_yearly_cmd
#一月2号三點五十執行run_yearly_cmd程式
minhourdaymonthdayofweek字段 command字段
字段 說明
minute 分鐘,取值為從0~59之間的任意整數
hour 小時,取值為從0~23之間的任意整數
day 日期,取值為從1~31之間的任意整數
month 月份,取值為從1~12之間的任意整數
dayofweek 星期,取值為從0~7之間的任意整數,0或7代表星期日
command 要執行的指令或程式腳本
#檢視使用者的cron任務
crontab -l
#編輯使用者的cron任務
#編輯并覆寫原有的cron任務
crontab
#調用文本編輯器對cron任務進行編輯
crontab -e
#删除使用者現有的cron任務
crontab -r
# 每次修改完配置檔案必須重新開機相關守護程序方能生效。
# 普通使用者使用crontab建立任務
配置crontab
vim /etc/cron.deny
把普通使用者加入到visudo組中
sudo /sbin/service crond restart
##linux系統iptables防火牆基本文法介紹
防火牆分類
1.包過濾防火牆
優點:速度快,性能高,對應用程式透明;
缺點:隻檢查報頭,不檢查資料區,不建立連接配接狀态表,安全性低,應用控制層很弱;
以色列checkpoint,美國cisco
2,應用代理防火牆
優點:安全性高,性能高;
缺點:隻檢查報頭,但建立連接配接狀态表,不檢查資料區,安全性高,應用控制層很弱;
美國NAI公司的Gauutlet。
iptables基本文法
iptables基本文法:
iptables [-t table] command [match] [target]
1. table,表,filter,nat,mangle,raw;
2. command,iptables最重要的部分;
3. match,比對資料包的特征;
4. target,對比對的資料包進行的操作;
1,1. 表
filter,用于一般的資料包過濾,針對本機;iptables預設的表;鍊:INPUT,FORWARD,OUTPUT;
nat,僅用于NAT,也就是轉換資料包的源位址或目标位址;
鍊:PREROUTING,POSTROUTING,OUT;
service iptables status
service iptables stop
service iptables start
service iptables restart
iptables -L
vim /etc/sysconfig/iptables #不建議手動來定制這個檔案。
1,2.指令(1)
-L: 檢視規則;
iptables -L
iptables -L -n
iptables -L -n --line-number
-P: 修改預設規則;
iptables -P INPUT DROP
備注:為鍊設定預設的target(可用的是DROP和ACCEPT),做為最後一條規則被執行
1,2.指令(2)
-A: 追加規則,做為最後一條規則;
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
example:iptables -A FORWARD -p tcp --dport 22 -j ACCEPT #
1,2.指令(3)
-D: 删除規則;
iptables -D INPUT 3
iptables -D INPUT -s 192.168.0.1 -j DROP
example: iptables -D FORWARD 1
-R: 修改規則;
iptables -R INPUT 3 -s 192.168.0.1 -j ACCEPT
example: iptables -R FORWARD 1 -s 192.168.229.1 -j ACCEPT
1,2.指令(4)
-F: 清空規則;
iptables -F
iptables -F INPUT
iptables -t nat -F
#以上指令和(參數都是大寫)隻是臨時性修改生效,永久修改需要配置vim /etc/sysconfig/iptables
1.3 比對條件
出,入接口(-o,-i) 網卡
源,目的位址(-s,-d) IP或者IP段
協定類型(-p) TCP,UDP
源,目的端口 (--sport,--dport)
1.3 比對條件(1)
按網絡接口比對
-o 比對資料流出的網絡接口
iptables -A OUTPUT -o eth0 -j DROP
#備注:将接口eth0流出的資料DROP掉;
-i 比對資料流入的網絡接口
iptables -A INPUT -i eth0 -j DROP
#備注:将流入到接口eth0的資料DROP掉;
4.3 比對條件(2)
按位址比對
-s 比對源位址
iptables -A INPUT -s 192.168.0.1 -j DROP
# 将來自192.168.0.1的任何請求DROP掉;
-d 比對目的位址
iptables -A OUTPUT -d 192.168.0.1 -j DROP
# 将本機發往192.168.0.1的任何請求DROP掉;
注意:可以是單個IP(192.168.0.1),網段(192.168.0.1/24),域名不設則表示任何位址;
1.3 比對條件(3)
按協定類型比對
-p 比對協定類型
iptables -A INPUT -s 192.168.0.1/24 -p tcp --dport 22 -j DROP
#禁止192.168.0.1/24的客戶機連接配接本機22端口
iptables -A INPUT -p icmp -j DROP
#禁止ping
iptables -A INPUT -p 1 --icmp-type 8 -j DROP
#可以ping通其他客戶機,但是其他客戶機ping不通該機;
1.3 比對條件(4)
按端口比對
--sport 比對源端口
iptables -A INPUT -p tcp --sport 80 - j DROP
# 将來自80端口的請求DROP掉;
--dport 比對目的端口
iptables -A INPUT -s 192.168.0.1/24 -p tcp --dport 80 -j DROP
# 将來自192.168.0.1/24的針對本機80的請求DROP掉;
備注:
1. --sport,--dport必須配合參數-p使用;
2. 可以指定某個端口,也可以是端口範圍,比如 :2000(2000以下端口),2000:3000(2000~3000端口),3000: (3000以上端口)
netstat -apn |grep 80 # 檢視指定端口80的服務資訊
1.4 處理方式(1)
ACCEPT
這個target沒有任何選項和參數,使用也很簡單,指定-j ACCEPT即可。一旦資料包滿足了指定的比對條件,就會被ACCEPT,并且不會再去比對目前鍊中的其他規則或同一個表内的其他規則;
iptables -P INPUT ACCEPT
# 修改INPUT的預設規則為ACCEPT
iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
# 允許來自192.168.0.1/24的所有針對本機的所有請求;
1.4 處理方式(2)
DROP
如果包符合條件,這個target就會把它丢掉,也就是說包的生命到此結束,不會再向前走一步,效果就是包被阻塞了。在某些情況下,這個target會引起意外的結果,因為它不會向發送者傳回任何資訊,也不會向路由器傳回資訊,這就可能會使連接配接的另一方因苦等回音而亡,解決這個問題的較好的辦法使使用REJECT(除了丢棄資料包之外,還向發送者傳回錯誤資訊);
iptables -A INPUT -s 192.168.0.1 -j DROP
# 将來自192.168.0.1的請求全部DROP掉;
1.5 規則的比對方式
規則由第1條開始比對,如果第1條規則不比對,則比對第2條規則,如果第2條規則還不比對則比對第3條規則,依次論之;
如果資料包被第N條規則所比對,則資料包的存活将由該規則決定;如果規則規定定将資料包丢棄,那麼資料包就會被丢棄,不會管後面的規則如何;
不論鍊中由多少個規則,預設規則(Default Policy)永遠都在每一個鍊的最底端,最後被執行;每個鍊的預設規則各自獨立,且隻有一種狀态,要麼是ACCEPT,要麼是DROP;
1.6 備注
規則配置檔案/etc/sysconfig/iptables
iptables-save
iptables-restore
service iptables save
# 将目前iptables規則儲存到/etc/sysconfig/iptables;
##linux系統Apache伺服器概述及安裝
Web伺服器是Internet中最為重要的應用
Web服務采用用戶端/伺服器模型
用戶端為浏覽器,它提供了良好,統一的使用者界面。浏覽器的作用為解釋和顯示Web頁面,響應使用者的輸入請求,并通過HTTP協定将使用者請求傳遞給Web伺服器
Web伺服器運作伺服器程式,最基本的功能是偵聽和響應用戶端的HTTP請求,向用戶端送出請求處理結果資訊。
HTTP協定的預設端口為80
從1996年4月以來,Apache已經成為Internet上最流行的Web伺服器
Apache的優點:
跨平台。能運作在unix/linux和windows等多種作業系統上
無限擴張性。借助開放源代碼開發模式的優勢,全世界的許多程式員為Apache編寫了許多功能子產品
工作性能和穩定性遠遠領先于其他同類産品
#查詢系統是否安裝了Apache
rpm -qa | grep httpd
#如果沒有安裝,運作如下指令進行安裝
yum search httpd
yum install httpd.i386
#啟動Apache伺服器
service httpd restart
#測試Apache伺服器
注意:防火牆的配置
dmesg 檢視系統硬體配置
轉載于:https://my.oschina.net/silvers0618/blog/997572