視頻課程老師博客:
http://oldboy.blog.51cto.com
https://www.oldboyedu.com/
linux操作系統鏡像下載地址:
https://www.centos.org/ -----centos的官網
https://mirrors.aliyun.com/ ----阿里云下載
==============================一、 Linux操作系統的安裝配置、調優及安全設置===============================================
1 安裝centoslinux系統:
安裝詳細過程請百度搜索。
linux在虛擬機上安裝centos6.7系統分區的基本要求:

1)要至少有一個根(/)分區,用來存放系統文件及程序。其大小至少在5GB以上,平時自己安裝使用創建的文件的都在該目錄下。
2)要有一個swap(交換)分區,它的作用相當于windows里的虛擬內存,swap分區的大小一般為物理內存為8G或小于8G,分區配置8G。但當系統物理內存大于8GB時,則swap分區配置8~16GB即可,太大無用,浪費磁盤空間。
3)/boot分區,這是Linux系統的引導分區,用于存放系統引導文件,如Linux內核等。該分區推薦可以設置512MB,最低空間可以設置成256MB。這個分區也是必須的。
系統分區詳解:
硬盤使用前----進行分區-------格式化(創建文件系統)------存放數據
類似于:房子使用前-----進行隔斷----裝修,買家具--------住人
一塊硬盤分區:
主分區、擴展分區、邏輯分區
主分區+擴展分區的數量<=4,其中一個主分區可以用一個擴展分區替換,擴展分區最多只能一個或者沒有。
擴展分區不能直接使用,還需要再上面創建邏輯分區,邏輯分區可有多個。
主分區+擴展分區 編號只能1-4,邏輯分區的編號只能從5開始。
(1)常規分區:
/boot 主分區(引導分區)。
swap 交換分區 物理內存小于8G就分8G,物理內存8G,就分8G-16G.
/ 根分區,Linux所有目錄頂點 剩余所有空間。
(2)數據重要(數據庫、存儲服務器):
/boot 主分區(引導分區)。
swap 交換分區 物理內存小于8G就分8G,物理內存8G,就分8G-16G。
/ 根分區,Linux所有目錄頂點,100-200G。
/data 存放數據,其他所有空間。
(3)特大網站,門戶(產品線特別多,需求,如淘寶等大型網站):
/boot 主分區(引導分區) 。
swap 交換分區 物理內存小于8G就分8G,物理內存8G,就分8G-16G。
/ 根分區,Linux所有目錄頂點,100-200G。
剩余空間不分配,哪個部門領到服務器,根據需求再進行分區。
磁盤分區命名及編號方式
(1)以設備名命名
在Linux系統中,磁盤設備對應與系統中的特殊文件,這些特殊目錄中,不同的設備對應的設備名稱如下:

(2)使用數字編號
為了表示不同的分區,通常會用數字進行編號。
需要注意的是,在對分區編號時,數字1-4只能留給主分區或擴展分區使用,邏輯分區(是在擴展分區基礎上的)編號只能從5開始。
在對Linux系統設置了分區之后,還要在分區上創建文件系統(格式化)才能安裝系統,這個在安裝時由系統自行完成創建。
2配置網卡
1)在Linux命令行輸入setup 回車進入配置網卡界面;
2)操作如下

整個配置過程依次為:執行setup命令→network configuration→device configuration→eth0→配置完依次點擊“OK”→“save”→save&quit→quit,這樣就退出到命令行界面了,
最后在輸入ifup eth0啟動網卡即可,該配置實質就是修改網卡的配置文件/etc/sysconfig/network-scripts/ifcfg-eth0內容。
查看ip地址:ifconfig

用本地cmd去ping虛擬機IP拼通即可。
查看網卡配置:cat /etc/sysconfig/network-scripts/ifcfg-eth0
注:網卡配置中的ONBOOT=no,每次重啟電腦或開機需要通過ifup eth0來重啟網卡,所以需要改為yes。


3. 安裝完成Linux后調優及安全設置
3.1關閉SELinux功能
SELinux是美國國家安全局對于強制訪問控制的實現,這個功能讓系統管理員又愛又恨,這里還是把他關閉了。至于安全問題后面通過其他手段來解決,這也是大多數生產環境
的做法。如果非要開啟也是可以的,但是這里我們把它關閉。

更改之前可先把之前的文件進行備份
cp /etc/selinux/config /etc/selinux/config.ori -------------同目錄下備份config文件,后面的是備份路徑
更改SELinux的狀態方法1:
輸入vi /etc/selinux/config ,輸入 i 光標移入enforcing,把enforcing改成disabled。按“esc”退出輸入。然后直接輸入 : wq 回車,進行保存。(若是不保存輸入 :q!回車直接退出)
更改SELinux的狀態方法2:

注意!!!
上圖已經把文件中的SELinux已經改成disabled了,一般更改文件后需要重啟服務器才會生效,所以即使文件中已經改成功了,系統中還是沒有生效。但是一般工作中的Linux服務器的服務多,使用比較多,重啟太慢,影響正常使用,所以最好不要重啟,可以用setenforce設置SELinux的方法把系統中未生效的信息設置成permissive(與disabled狀態相同都有關閉的意思),重啟后disabled生效。


3.2 關閉防火墻
/etc/init.d/iptables stop -------臨時關閉防火墻,重啟服務器防火墻會重新打開
/etc/init.d/iptables status ---------查看防火墻的狀態
chkconfig iptables off --------永久關閉防火墻,重啟電腦也不開

4.隱藏Linux版本信息
在登錄到Linux主機本地(非CRT連接的窗口)前,會顯示系統的版本及內核信息。防止版本信息暴露,可通過該版本的漏洞攻擊服務器。為了保險起見,可通過下列命令。如下圖:

cat /etc/issue 或者 cat /etc/issue.net ---------查看系統版本和內核信息
> /etc/issue 或者 > /etc/issue.net ---------------清空文件中的版本信息和內核信息(不要刪除文件,刪除文件可能導致故障,清空文件的內容可能不會產生故障。)
5 系統的運行級別及作用
把系統的不同狀態(級別)用數字表示。
cat /etc/inittab ------查詢系統運行的級別(1-6 七種級別模式)(只能查看不能修改系統的運行級別)
runlevel ------查看當前運行級別
最常見的切換運行級別:
init 0 -------- 關機
shutdown -h now --------關機
halt --------關機
init 6 ----------重啟
reboot ------重啟
shutdown -r now ----------重啟
0 表示 “Linux關機了”。
1 表示 “單用戶狀態 ,Linux系統出問題了,維護時需要使用單用戶(如:系統用戶root密碼丟了,需要找回)”
2 表示 “沒有NFS(網絡文件系統)的多用戶模式(Linux可同時很多用戶遠程連接)”
3 表示 “完整的多用戶模式(當前我們使用的命令行的模式),工作中常用的級別”
4 表示 “ 暫時保留的 ”
5 表示 “桌面模式”
6 表示 “重啟模式”
=======================================二、Linux客戶機遠程服務(器)故障排查思路==================================
1.客戶端連Linux服務器連不上可能原因
ping 192.168.121.23 (客戶機拼服務器的地址)
不通可能原因: ip拼的不對;網線松動;防火墻未關。
2.本地電腦連服務器上的服務
/etc/init.d/iptables stop ----------阻擋防火墻開通(關閉防火墻)
netstat -lntup|grep 22 (等于netstat -lntup|grep sshd ) ------查看端口是否開放(以ssh服務端口為例)
/etc/init.d/sshd restart ---------重啟sshd服務。若22(sshd)端口沒有開放,可用此方法重啟

例:telnet 192.168.23.128 22 (客戶機測試服務器上的服務是否正常,IP和端口)
不通可能原因: 服務器端防火墻阻擋; 端口沒有開放,服務器端沒有對應的服務。
客戶端ssh工具:Securcrt,xshell,putty --------默認的端口號都是22
服務器端的ssh服務:進程名sshd;對應服務器的軟件:【openssh(連接),openssl(加密)】

=====================================三、 linux命令整理:====================================
====================說明:1、創建;2、查看;3、修改;4、拷貝;5、刪除;6、其他;7、常用的快捷鍵========================
Linux中‘目錄’和‘文件’這兩個名字的區別
‘目錄’相當于windows系統中的文件夾;
‘文件’相當于windows系統中文件夾中創建的文件(例test.txt)。
首頁:創建Linux普通用戶、修改用戶密碼
useradd hbxgril -------創建用戶useradd
tail -1 /etc/passwd ----------查看剛創建的用戶
passwd hbxgril --------給用戶hbxgril修改密碼
su - hbxgril -------切換到hbxgril用戶(-和用戶名中間有空格)
echo '123' |passwd --stdin hbxgril ------修改密碼的另一種方式(|是管道,把前面的123密碼通過 | 傳給passwd,然后通過 --stdin接受傳過來的passwd作為用戶hbxgril的密碼)
注意注意!!!root用戶在輸入信息的時前面命令提示符是 #,普通用戶命令提示符前是 $ 符號。


1 創建目錄/文件
1 .1 創建目錄(相當于文件夾)
mkdir /data 創建data目錄
mkdir -p 連續創建兩級或兩級以上的目錄 例:mkdir -p /data/mak -----創建了data和data下的mak兩級目錄
查看目錄 ls -ld /data ------創建完可查看目錄(ld可查看目錄的詳細信息)

cd / ------------切換到根目錄
cd /data ----------切換到data目錄
mkdir data -------------先切換到根目錄在直接創建data目錄,表示在根目錄/下創建了一個data目錄
cd /; mkdir data ----------先切到根目錄,在到根目錄創建data目錄,這里;作用是把兩個命令在一行分隔開
cd .. ---------退回到上級目錄
cd . ---------當前目錄
1.2 創建文件(相當于創建的文本文檔、word文檔等帶后綴的文檔)
touch 創建文件、改變文件的時間戳
-a 改變文件的訪問(access)時間
-m 改變修改(modify)時間 (access時間或者modify時間改變,change時間也會改變)
例: touch /data/oldboy.txt ---------------創建文件
例: touch -a /data/oldboy.txt -----------改變文件的時間(access時間)戳
例: touch -m /data/oldboy.txt -----------改變文件的時間戳(modify時間)


在目錄中創建多個文件
方法1 :
touch /data/stu{1..5} --------在data目錄下創建5個stu文件(若創建的文件已經存在,那么就只更新這個已經存在的文件的時間;文件不存在就創建文件)
ls /data --------查詢data目錄下創建的文件
方法2:

1.3在創建的文件中添加內容
vi windows記事本,簡單 。 例:vi oldboy.txt ----在文本中添加內容。
vim 復雜編輯器。 復雜功能,可以高亮,自動縮進功能(寫shell,python腳本用)
方法1:
步驟:vi oldboy.txt ----編輯oldboy.txt文檔
點擊回車 →按 a 或者是 i →輸入要添加的內容 →內容輸入完成點擊 esc →最后輸入 :wq 完成保存。
若是不想保存最后可輸入 :q! 強制退出。
cat oldboy.txt ---------查看oldboy.txt文檔中添加的內容
*****方法2(直接創建文件并在文件中添加內容):
echo 打印輸出內容。 例 : echo $pwd --------------打印出變量$pwd的值。

echo 配合 ‘>’ 或 ‘>>’ 可以為文件覆蓋及追加內容。(‘>’意思是重定向,會清楚文件里所有以前的數據;“>>”為追加內容,只在文件尾部追加需要的內容),
還有個較復雜不常用的類似命令printf。
例1:echo ‘oldboy’>oldboy.txt --------是在文件oldboy.txt文件中添加內容,沒有該文件時創建文件并寫入內容,有該文件時,現在輸入的內容會覆蓋之前的內容。
例2:echo ‘oldboy’>>oldboy.txt --------是在文件oldboy.txt文件中添加內容,沒有該文件時創建文件并寫入內容,有該文件時,現在輸入的內容會追加在之前文件里內容的后面。
echo 'I am studying linux' > /data/oldboy.txt ---------添加文件并插入內容
注意:‘>’ 的意思是data目錄中沒有oldboy.txt文件時創建該文件并寫入內容,有文件時只在該文件中添加內容,且添加的內容是覆蓋之前的內容。
echo 'I am a student'>>/data/oldboy.txt -----------添加文件并插入內容
注意:‘>>’ 的意思是data目錄中沒有oldboy.txt文件時創建該文件并寫入內容,有文件時只在該文件中添加內容,且添加的內容是在之前的內容后添加,不覆蓋之前的內容。

*****方法3 (直接創建文件并添加內容)
1.單行加入內容
cat >oldboy.txt --------如果有這個文件就只往這個里面添加內容,‘>’ 表示會覆蓋之前文件中的內容,如果沒有就會創建該文件會創建該文件寫入輸入的內容,之前的內容被覆蓋。然后ctrl+d或ctrl+c保存。

2.可多行加入內容
cat >>test.txt <<eof
test
liyao
oldboy
eof
----------如果有這個文件就只往這個里面添加內容,‘>>’ 表示會在這個文檔中追加輸入的內容,如果沒有就會創建該文件追加輸入的內容,之前的內容不會被覆蓋。ctrl+d 或 ctrl+c 保存。
注意:’eof’ 是成對存在,任何字母都可以,只要是成對存在的。
特殊符號介紹:
(‘ > 或 1> ’;’ >> 或 1>> ’;’ 0< 或 < ’;‘ 0<< 或 << ’) 箭頭指向的方向是數據流向。
> 或 1> 輸出重定向 把前面輸出的東西輸入到后邊的文件中,會清除文件原有內容。
>> 或 1>> 追加輸出重定向 把前面輸出的東西追加到后面的文件尾部,不會清除文件原有內容。
0< 或 < 輸入重定向 輸入重定向用于改變命令的輸入,后面指定輸入內容,前面跟文件名。
0<< 或<< 追加輸入重定向 后面跟字符串,用來表示‘輸入結束’,也可以用ctrl+d 來結束輸入。
2> 錯誤重定向 把錯誤信息輸入到后邊的文件中,會刪除文件原有內容。
2>> 錯誤追加重定向 把錯誤信息追加到后面文件中,不會刪除文件原有內容。
例:echo '1 2 3 4' >oldboy.txt ----- 在文件中插入內容
xargs -n 2 <oldboy.txt -------給文件中的內容分組,兩個一組


重要:
需求:文本中添加內容,命令正確輸入內容,命令錯誤在文件中輸出錯誤日志。
方法1: (表示命令錯誤)

方法2 >&或2>&

命令正確可輸出正確的內容,命令錯誤時“2>&”表示報錯的日志輸入到1(a.txt)的文件中去
方法3 &>
1.4 在文件中添加序列
seq = sequence 序列
例:seq 10 -----從1到10
seq 3 10 -------從3到10
seq 1 3 10 --------從1到10 每數之間間隔是3
seq -s " " 10 ----------橫著一行打印,從1打印到10(-s是可以指定分隔符)





2 查看目錄、文件信息
2.1查看文件中添加的內容
cat 查看文件內容 例子 : cat oldboy.txt ---------查看oldboy.txt文件中的內容

2.2查看目錄、屬性
ls =list(列表) 列出目錄 例子: ls / --------列出(查看)根目錄下的目錄
![]()
ls -l(long) 長格式,帶屬性 例子:ls -l/ ------列出根目錄文件的詳細信息文件
-d (directorys) 查看目錄
tree -d /data -----以樹狀圖的形式列出data下所有的目錄(類似 ls -d的使用)
-a 查看目錄中的隱藏文件 例: ls -a /data -------列出data目錄下所有的目錄、文件和隱藏文件(-a是包含隱藏文件一起顯示)
tree -a /data 是以樹狀圖的形式列出data目錄下所有的目錄、文件和隱藏文件(-a是包含隱藏文件一起顯示)


-------上圖是列出根目錄下級所有目錄的詳細屬性信息
ls -l /data 和ls -ld /data 命令的區別如下:
ls -l /data 是列出/data文件下所有的文件詳細屬性信息;
ls -ld /data 是列出/data這個目錄的詳細屬性信息。
2.3 查看當前所在的目錄
pwd 查看當前所在的目錄詳細路徑;
pwd -L 查看當前目錄所在的詳細目錄;
pwd -P 查看當前目錄所在的詳細目錄。
*****2.4 find 查找(結合5.3中刪除的筆記看)
find 查找
-type 文件類型(f(file文件類型),d(directory目錄),c(character字符串),b(block塊、磁盤設備),s(socket通信),l(link鏈接))
-name 文件名
-mtime 時間 ----按修改時間查找,時間數字(+7代表七天前,7代表第七天,-7表示最近七天)
! 除了....外、非的意思
-o =or 是或者的意思
-a =and 是并且的意思
例:find / -type f -name 'tte.txt' ----------查看tte.txt文件所在的詳細目錄




-----xargs搭配用法(xargs是個不錯的命令,有機會可以總結)
find /data -type f -name "*.log" -mtime +15 |xargs rm -f -------查找/data目錄中以.log結尾的日期在15天以前的文件,并刪除(-type f 類型是文件 ,-f是刪除文件)
find /data -type d -name "*oldboy" -mtime +30 |xargs rm -rf -----查找/data目錄中以oldboy結尾的日期在30天以前的目錄,并刪除(-type d 類型是目錄,-rf是刪除目錄)
說明: | (豎線),相當于從左邊進右邊出,把左邊的信息傳給右邊。 |xargs 是把左邊的命令的結果通過 | 這個管道,xargs匯成一條數據, 傳遞給右邊的命令執行。
注意:| 和 |xargs的區別,如下圖 (cat /data/lls /data/lass.txt表示查詢兩個文件中的內容)

2.5 查看文件中的部分內容(head用法)
head 首,頭 例 : head -2 text.txt ---讀取文件的前2行
例:head text.txt ----不加默認是讀取前10行

2.6查看文件中的部分內容(tail用法與head用法向對應)
tail 尾部,末尾 例:tail -2 test.txt ------讀取文件的最后2行
例:tail test.txt -------默認讀取文件的后10行
*****2.7過濾文件中的部分內容(grep用法-----三劍客之三)
grep -v --------排除(過濾掉)(-v表示排除的意思)
grep ------過濾出內容(包含)

2.8 查看文件中間部分內容
需求:查找文件ett.txt(50行)內,前20到30行的內容。(結合1.4的seq內容查看)
seq 50 >ett.txt ------創建文件,插入50行的信息
方法1:(比較low的方法)
head -30 ett.txt |tail -11 -------head 是取前30行,tail是取后11行

*****方法2: (sed方法----重要【三劍客之二】)
sed = stream editor 流編輯器,可實現對文件的增、刪、改、查、替換
(1)sed當作查看的方法:
sed '20,30'p ett.txt ----------該命令是輸出ett.txt文本中所有的信息,不是輸出20到30行的信息
sed -n '20,30'p ett.txt ---------該方法最有效率 (-n 是取消默認輸出,按照規格打印出20到30行的信息; p(print)是打印的意思)
sed -n '$'p ett.txt ------$表示最后一行。
ifconfig | sed -n '2'p ----顯示IP地址信息的第二行信息

(2) sed當作替換、修改的方法(替換一個文件中的信息):
g 與s聯合使用時,表示對當前行全局匹配。
s 常說的查找并替換,用一個字符串替換成另一個。
-e 允許多項編輯。
-i 修改文件內容。
sed 's#oldgril#zhangsan#g' old.txt ------------改方法是替換輸出的內容(s表示替換;g表示全局替換;3個#是分隔符也可用其他符號表示,一般可以用 # 或 / 或 @等,前面是文本中的要替換的內容,后面是替換后的 內容),不加-i是命令行的內容輸出時內容有更改,文件中的內容沒更改
sed -i 's#oldgril#zhangsan#g' old.txt -------------(加了-i 是更改old.txt文件中的內容)
![]()

![]()
(3) sed當作替換、修改的方法(替換多個文件中的信息):
需求:把oldboy目錄及子目錄下所有以擴展名 .sh結 尾的文件中包含oldoldboy的字符串全部替換為younggril。

![]()



另一種替換內容方法:
sed -i 's#oldoldboy#younggril#g' `find /oldboy -type f -name '*.sh'` --------`這個符號是鍵盤右上角和~一起的那個`(點號),表示先執行``(兩個點號里面的內容)

*****方法3:(awk 三劍客之首)
awk 過濾、輸出內容,一門語言
NR 代表行號
= 是賦值
== 是等號


擴展:
例:將/data/oldboy/oldboy.txt文檔中的內容inet addr:192.168.198.128 Bcast:192.168.198.255 Mask:255.255.255.0通過過濾只輸出如下內容:192.168.198.128 192.168.198.255 255.255.255.0


解析awk語句:-F是指定域的分隔符; [ :] 括號中是空格和:(冒號)表示通過空格和冒號進行分割;[ :]+因為指定了空格和冒號兩個分隔符(或者多個分隔符),所以需要+進行連接;{}中的內容,print是指定打印的內容;$加數字是把通過分隔符分割開的內容進行需要的打印出來,$3是分割的第三個內容;最后是指定的文件。
方法4:(可結合2.7的grep來查看)
-B 除了顯示匹配的一行之外,并顯示該行之前的n行
-A 除了顯示匹配的一行之外,并顯示改行之后的n行
-C 除了顯示匹配的一行之外,并顯示改行之前后各n行



2.9 樹狀圖查看創建的文件目錄及yum的用法
tree -a 顯示隱藏文件
-d 只顯示目錄
-L 顯示幾級 例:tree -L 1 /oldboy -----顯示oldboy目錄下的一級目錄和文件
-dL 只顯示目錄的幾級 例: tree -dL 1 /oldboy -----------只顯示oldboy目錄下幾級的目錄
-f 為每個目錄顯示完整的路徑 例:tree -dLf 2 /oldboy ------只顯示oldboy目錄下幾級目錄的完整路徑
-i 去掉樹狀圖前面的橫線 例: tree -dLfi 2 /oldboy ------只顯示oldboy目錄下幾級目錄的完整路徑(樹狀圖沒相連的短橫線)
-F 區分文件和目錄 例: tree -F /oldboy ------區分oldboy目錄下的文件和目錄



例:tree /data --------是以樹狀圖的形式列出data目錄下所有的目錄、文件>
例:tree -a /data -------- 是以樹狀圖的形式列出data目錄下所有的目錄、文件和隱藏文件(-a是包含隱藏文件一起顯示)
例:tree -d /data ---------樹狀圖的形式展示data目錄下的所有目錄
--------下圖左,創建多級目錄可以用 tree /data 查看創建的多級目錄,如出現上述提示是系統未安裝該 tree 軟件,
可通過以下步驟來安裝該程序:
安裝tree步驟(前提是有網的條件下):
- ping Baidu.com --------拼一下該電腦是否能上網(若聯網可以執行下列語句進行安裝tree軟件【輸入該命令會一直連baidu,使用ctrl+c停止ping】)
- yum install tree -y --------下載安裝tree這個軟件包(-y)就是直接安裝不提示
安裝完成tree后可查看data的層級目錄:
tree /data/ ----------查詢data目錄,用樹狀圖的形狀展示目錄和文件
LANG=en -----------若查詢的目錄存在亂碼,可調整字符集顯示英文字符集(嚴格區分大小寫)
3 .yum update -----------該命令是更新系統的補丁。
4 .yum install lrzsz telnet tree nmap nc -y ----------(下載安裝 lrzsz 上傳下載工具包(sz是下載命令,rz上傳命令); 前提是在Linux服務器聯網的情況下進行安裝)

2.10 man 查看所有命令使用方法
man cp -------查看cp這個方法是怎么使用的(如果忘記某個方法的使用可以使用man加方法名來查看),結束查看需要輸入 :q 結束。
cp --help -------該方法和man cp 方法相同。
help cd -------部分內置命令需要這樣查。(cd命令的使用用man cp或者是cd --help無法查看,因為cd是系統內置命令)。
百度如果要搜索該cp的使用方法時,搜索Linux的cp命令,需把Linux帶上。
2.11 which 查看命令路徑的命令
which cp -----查詢命令的路徑

2.12 date 查看系統時間
date -----查看系統時間
date -s 10:11:01 --------修改系統時間,時分秒。
date -s "12/25/2023 23:13:05" -------修改時間,年月日,時分秒
2.13 stat查看文件的屬性(包括文件大小,創建時間,修改時間等詳細信息)
Access:訪問時間
Modify:修改時間
Change:更改時間
2.14 history查看歷史命令
history -----查看歷史命令
!3 -------調用歷史命令中的第三個命令
history -c ------清空歷史命令
history -d 5 --------只清除第五條的命令
ecport TMOUT =10 -------- 連接的超時(10是10秒)(臨時生效,重啟后就失效)
export HISTSIZE=5 -------顯示命令行最近的5條記錄(臨時生效,重啟后就失效)
export HISTFILESIZE=10 ----------命令行命令對應文件的記錄數~/.base_history(臨時生效,重啟后就失效)
改為永久生效:
echo 'export TMOUT=300' >>/etc/profile
echo 'export HISTSIZE=5' >>/etc/profile
echo 'export HISTFILESIZE=5' >>/etc/profile
source /etc/profile --------------三個命令是把命令添加到文件中,但要重啟服務器才生效,不重啟服務器,就需要使用該命令立刻生效


3.修改文件內容(分組)
xargs用法:
xargs 從標注你輸入獲取內容創建和執行命令 -n 數字(表示分組),該方法只支持空格才能進行分組換行,其他都沒用。


4.拷貝/移動 目錄、文件
4.1 拷貝文件
cp = copy 拷貝文件或目錄 例:cp oldboy.txt /tmp/ ---------把data目錄下的oldboy.txt文件拷貝到tmp目錄下

4.2 拷貝目錄
cp -r 或者 cp -a 拷貝目錄
-r 遞歸,用于拷貝復制目錄及目錄下所有文件(與Windows拷貝一樣目錄的結果一樣)
-a 相當于pdr ;
-p 連同檔案的屬性一起復制過去,而非使用默認屬性。
例:cp -r /data /tmp/ -----------拷貝data目錄及目錄中所有文件到tmp目錄下。

4.3拷貝文件覆蓋同名文件

方法1:
\cp /am/test.txt /data/ -----------am目錄下的test文件替換data目錄下的test文件(cp前加\,該命令直接進行替換不提示是否替換)
方法2:
/bin/cp /am/test.txt /data/ -----------同方法一作用相同一樣的作用(/bin/cp是加的命令cp的全路徑)
方法3
cp /am/test.txt /data/ --------該命令有是否替換的提示信息

4.4移動目錄、文件(移動到另一個目錄下,之前的目錄沒有了)
mv 移動目錄

5.刪除目錄、文件
5.1 直接rm刪除文件(容易誤刪,友情提示刪除目錄或者文件之前請謹慎,刪除無法恢復)
rm = remove 刪除的意思
rm 和 rm -f 都是刪除 (rm刪除有提示是否刪除,rm -f 刪除直接刪除沒有提示)
刪除一個文件:
例1: rm -f /data/oldboy.txt ---- ------刪除oldboy.txt文件

例2 rm /root/data/a.txt ----------刪除root目錄下data目錄下的a.txt文件

刪除多個文件:
例:rm -f /data/1.txt /data/2.txt /data/3.txt

5.2 直接rm刪除目錄(容易誤刪需謹慎)
rm -fr 刪除目錄的語法
5.3 find查找,然后刪除(結合4.4筆記一起看,兩者密不可分)
find 查找刪除一個文件
例1:
find /data -type f -name 'oldboy.txt' -exec rm {} \; ----------查找data目錄下類型(-type)為文件(f)、姓名(-name)為oldboy.txt的文件,然后執行(exec)刪除(rm),
{}表示找到的內容,\是固定搭配。

find 查找多個文件,同時進行刪除
例2:
fing /data -type f -name '*.txt' |xargs rm -f

6.文件的上傳和下載
上傳下載的是針對文件的,不能是目錄,要是要下載目錄,需先壓縮成zip的壓縮包。
傳輸文件除了rz、sz進行上傳下載,還可以通過ftp、sftp(SSH服務)、winscp等工具來傳輸文件。
yum install lrzsz -y --------安裝上傳、下載的包(rz是上傳,sz是下載,-y是不提示直接安裝)
6.1文件上傳
cd /oldboy --------文件上傳到那個目錄下就先進入哪個目錄
rz ----------輸入rz(上傳),回車就可以選擇上傳文件了
rz -y -------------覆蓋之前同名文件。(上傳的文件覆蓋之前的同名文件)


6.2 文件下載
sz 文件名 ------下載文件到客戶機
sz -y 文件名 ---------下載文件直接覆蓋本地之前的同名文件
7.其他
7.1 別名使用alias和unalias使用
alias 查看和設置別名 例:查看別名直接輸入alias
unalias 取消別名
說明:為了防止用戶誤操作,所有centos linux系統在設計時,默認執行cp的操作是調用了cp的別名(相當于執行cp -i).所以提示覆蓋。cp命令默認是不會提示覆蓋的,但是cp帶-i 參數執行時會提示,這樣在linux下輸入cp命令實際上運行的是cp -i,加上一個 / 符號或者寫cp全路徑/bin/cp就是讓此次的cp命令不使用別名(cp -i)運行。

分享別名的困惑及解決技巧
https://blog.51cto.com/oldboy/699046
8 常用的快捷鍵
命令或路徑補全:輸入一個命令的首字母,按 三下 ‘tab’ 鍵,會顯示所有首字母開頭的命令單詞;輸入命令的兩個或以上,按一次 ‘tab’ 鍵會補全命令。(如果tab 不到路徑命
令,就代表沒有這個路徑或者命令,還有可能權限不夠。
ctrl + c 終止當前任務命令或程序。
ctrl + d 退出當前用戶環境。相當于exit 或 logout
ctrl + l (字母是L) 清理當前屏幕上的所有命令。相當于 clear 命令。
ctrl + shift + c linux命令中的復制。
ctrl + shift + v Linux命令中的粘貼。
ctrl + a 光標到一行命令開頭,相當于 home 快捷鍵。
ctrl + e 光標到一行命令結尾,相當于 end 快捷鍵。
ctrl + u 清除光標前所有輸入的命令(前提是在一行里面)
ctrl + k 清楚光標后所有輸入的命令(前提是在一行里面)
ctrl + r 搜索(搜索今天使用過的命令按ctrl + r后輸入一下就出來了)
ctrl + s 掛起(按此快捷鍵后,命令行無法進行輸入了)
ctrl + q 解除掛起(按此快捷鍵后,就解除掛起可以輸入命令了)
ctrl + w 清楚當前行所有的命令
uname -m 查看Linux系統是多少位的
cat /etc/redhat-release 查看操作系統 的版本
uname -r 查看內核

=====================================四、Linux創建快照和克隆===========================================
1、快照的作用 (虛擬機上的操作)
快照相當于節點備份,在一個時間段創建快照,該時間段之前對系統進行的所有操作(如增刪改查等操作)操作都包含在該節點的快照中,若在創建快照這個時間段之后對系統中的文件進行了其他操作(如增刪改查),想回到該節點之前時,可以通過快照的方式實現。
例: 在系統中創建了一個文件,之后增加了快照,后來誤刪除了創建的文件,此時需要恢復文件,就可以返回到快照的這個節點就行了。



2、克隆CentOS
2.1克隆步驟如下截圖



2.2 克隆完成需配置IP地址
注意!!!克隆的系統和之前的一樣,但是網絡會有問題,查找不到IP地址。

克隆機器設置IP地址的步驟:
vi /net/sysconfig/network-scripts/ifcfg-eth0 ----------修改IP地址的文件

刪除文件中的兩行內容有兩種刪除方式:(1)光標移到要刪除的那行,然后輸入 dd 進行刪除,在輸入 :wq 進行保存回到命令行。
(2)輸入 i 選中要刪除的行刪除,在點擊 tab ,最后輸入 :wq 進行保存回到命令行。
> /etc/udev/rules.d/70-persistent-net.rules -----------清空文件的內容(記錄主機中所有網卡的MAC地址)
ifup eth0 - -------查看網口是否已好,目前沒有成功,需重啟
reboot -------重啟克隆服務器
ifconfig ------重啟后查看IP成功

2.3 刪除克隆服務器

================================五、Linux系統的目錄結構介紹==============================================
linux 目錄的特點:
1、 / (根)是所有目錄的頂點;
2、 目錄結構像一顆倒掛的樹;
3、目錄和磁盤分區是沒有關聯的;
4、/ (根)下不同的目錄可能會對應不同的分區或磁盤;
5、所有的目錄都是按照一定的類別有規律的組織和命令的。
Linux里設備不掛載是看不到入口的,如果希望設備被訪問,就必須給這個設備一個入口,這個入口就叫做掛載點,掛載點的實質是一個目錄
mount -------掛載文件命令
df -h ----------查看掛載分區
fdisk -l ----------查看磁盤分區(-l是L的小寫)
cat /etc/fstab ----------查看系統默認配置的掛載目錄
光驅也是一種設備 /dev/cdrom (設備的路徑和(cdrom)光驅設備名)
cd /dev/cdrom -------進入光驅設備路徑
ls /dev/cdrom -------查看光驅設備路徑
mount /dev/cdrom /mnt ----------把光驅設備路徑掛載到mnt目錄下

虛擬機掛載文件詳細步驟如下:
虛擬機掛載CentOS的安裝包(安裝包是一個IOS的鏡像文件),一般在系統中安裝軟件,都是從安裝包的IOS鏡像文件中安裝的,IOS的安裝包一般都包含的Linux系統的絕大部分軟件。所以在網上一般沒有Linux系統的單獨完整的安裝包,只有掛載操作系統的安裝包然后從系統安裝包中去安裝需要的軟件。
步驟1:

步驟2:
下圖命令,在沒有掛載IOS鏡像文件的操作系統的光盤時,查看不到掛載分區、查看不到磁盤分區、進入不了設備分區路徑,但是只能查看光驅路徑。

步驟3:
對光驅設備進行掛載。
mount /dev/cdrom /mnt --------把光驅設備掛載到mnt目錄下
![]()

==============================================六、Linux目標結構標準========================================================
1、Linux目錄層次標準(FHS)
Linux目錄層次標準是Linux目錄規范標準。
目錄層次標準文檔(FHS2.2 pdf 和FHS2.3 pdf):https://www.pathname.com/fhs/
FHS定義了兩層規范:第一層 是 ‘/’ 根目錄下的各個目錄應該放什么文件數據。例如:/etc 目錄下放置系統的配置文件(如:/etc/exports;/etc/hosts),而 /bin和 /sbin 放置程序及系統命令。
第二層 是針對 /user (第二層次標準)和 /var 這兩個目錄的子目錄來定義。例如: /var/log 下放置系統日志文件等。 提示:/var 分區單獨分出來,硬盤足夠大,我們都有監控,剩余20%會報警。
2、 / 根目錄結構

2.1 /bin目錄
所有用戶常用二進制命令所在的目錄。例如 ls、cp、mkdir、rm、cut、cd等命令。/bin 目錄和 /user/bin 類似。
which ls -------查看ls命令所在的目錄

2.2 /boot目錄
Linux的內核及系統引導程序所需的文件目錄。安裝系統分區的時候一般要分一個boot分區。常見分區: /boot 128M swap內存的1.5倍或全給。
ls /boot/grub -------查看菜單目錄(系統啟動的時候加載菜單目錄)

***** 2.3 /dev 目錄
設備文件的目錄。比如聲卡、磁盤、光驅...........。

*****2.4 /etc 目錄
軟件安裝包( yum,rpm)的配置文件默認路徑。
*****服務的啟動命令也在該目錄下面。 如: /etc/init.d/sshd restart ------重啟ssh服務的命令; /etc/init.d/iptables stop ------關閉防火墻的命令

/etc/fstab ---------開機自動掛載設備(磁盤)的文件
/etc/hosts -----------主機名的解析文件
/etc/inittab ----------開機需要加載的文件(里面有運行級別還有相關的腳本。如:開機設置的3級別,我需要改成5級別(不能隨意改動,查看就行),就是該這個文件的內容)
/etc/issue --------登錄之前的信息
/etc/motd ---------登錄之后會顯示文件中的信息。(在該文件中加什么信息登錄的時候會提示什么信息)
/etc/profile ----------全局環境變量
/etc/resolv.conf -------------要上網配置的DNS網絡,需要更改此文件
/etc/passwd -----------更改密碼(查看創建的用戶信息)
** 2.5 /home 目錄
普通用戶的家目錄默認數據存放目錄。
ls /home -------查看創建的普通用戶

2.6 /root 超級管理員的家目錄
2.7 /tmp 臨時文件目錄
2.8 /user 用戶程序及數據、幫助文檔、二進制命令等的目錄
2.9 /var 變化的目錄。一般是日志文件,cache 的目錄
2.10 /proc 顯示內核及進程信息的虛擬文件系統
2.11 /sbin和 /user/sbin 超級用戶命令的目錄
*****3 重要子目錄的說明
3.1 /etc/sysconfig/network-scripts/ifcfg-eth0 配置網絡地址及GW等
/etc/sysconfig/network-scripts/ifcfg-eth0 --------------該路徑是配置網絡地址及GW等,使得網卡生效。
route -n -------查網關(上網的出口/入口)
cat /etc/resolv.conf ------查詢DNS,該文件是DNS的文件
例:cat /etc/sysconfig/network-script/ifcfg-eth0 -------查看第一張網卡的配置
例:vim /etc/sysconfig/network-script/ifcfg-eth0 --------修改(第一張)網卡的配置信息(通過命令輸入‘setup’ → ‘network configuration’修改網卡配置也是在該這個文件)
(1) /etc/init.d/network restart -----------------重啟網卡(影響所有網卡)
(2) ifdown eth0 && ifup eth0 -----------------重啟網卡 (只針對eth0網卡)
網卡eth0配置文件說明:
DEVICE=eth0 ----------物理設備名。eth0表示第1塊網卡
TYPE=Ethernet -------以太網
ONBOOT=yes -----------控制網卡是不是開機啟動
NM_CONTROLLED=yes -------------網絡管理控制(可以不了解)
BOOTPROTO=dhcp ---------------其中,proto取下列值之一:none 引導時不使用協議;static 靜態分配地址;bootp 使用BOOTP協議,或dhcp,使用DHCP協議。(自己學習可以選擇dhcp,dhcp是局域網 中自動分配IP的工具和服務)
IPADDR=10.0.0.7 --------------addr是IP地址。生產環境一般是設置固定IP。
NETMASK=255.255.255.0 -----------------子網掩碼,劃分網絡位和主機位。
DNS2=202.106.0.20 ----------主網關。把訪問的網站地址解析成對應的服務器IP。(DNA是域名和IP的解析工具)
GATEWAY=10.0.0.254 -------------網關地址,路由器的地址(通過網管出去才能上網)
DNS1=8.8.8.8 ------------備網關
USERCTL=no
PEERDNS=yes
IPV6INIT=noHWaddr 00:0C:29:2F:C0:42 --------網卡的MAC地址,48位。
編輯網卡信息:
先備份:

再編輯:

若要讓配置文件的內容顯示,IPADDR、DNSGATEWAY、IPV6INIT等內容,須通過設置:setup來設置然后寫入文件中。如下:







3.2 /etc/resolv.conf 服務器本地DNS配置文件
/etc/resolv.conf --------DNS配置文件路徑。(DNA實現域名和IP的互相解析)
vim /etc/resolv.conf ------------修改DNS文件內容

圖形配置界面輸入setup:



說明:
(1)linux客戶端DNS可以在網卡配置文件里設置(ifcfg-eth0)
(2)linux客戶端DNS也可以在/etc/resolv.conf里設置;
(3)網卡里的設置DNS優先于/etc/resolv.conf,如果重啟網絡網卡的dns會覆蓋/etc/resolv.conf的設置
3.3 /etc/hosts 設定用戶IP與名字(或域名)的對應解析表
/etc/hosts ----------設定用戶IP與名字(或域名)的對應解析表,相當于LAN局域網內的DNS
類似于windows操作系統中的 c:\WINDOWS\system32\drivers\etc\hosts,LAN內IP域名解析文件。開發、測試時做的臨時的域名解析常用,
英文hosts -The static table lookup for host names.Host的解析在機房的服務器相互調用中也會常用,如門戶網站的解析真實案例:

hosts企業的作用:
1、開發、產品、測試等人員,用于通過正式的域名測試產品;
2、服務器之間的調用可以用域名(內部的DNS)。

3.4 /etc/sysconfig/network 設置主機名的目錄
/etc/sysconfig/network -------------可修改機器名及網卡啟動、網關等配置
uname -n ---------------查看主機名
hostname ----------------查看主機名

永久更改主機名,需同時修改以下兩項:
1、 vi /etc/sysconfig/network 或 sed -i 's# 輸入主機名#替換后的主機名#g' /etc/sysconfig/network ---------------更改配置文件中的主機名
2、 hostname 查主機名 --------------更改輸入命令窗口中出現的主機名(只有這個命令的話,它只是暫時更改命令窗口中的主機名,配置文件中的改命令改不了)
3.5 /etc/fstab 實現開機要掛載的文件系統的一個文件
詳情講解請看: http://www.rzrgm.cn/ylnic/archive/2011/05/17/2048885.html
fstab 一但配置錯誤,會導致服務器無法啟動


3.6 /etc/rc.local
用于存放開機自啟動程序命令的文件(chkconfig這個文件常用來管理yum/rpm來安裝的程序的服務的開機自啟動),自己開發的程序,習慣把啟動命令放入/etc/rc.local 文件中,實現開機啟動這些程序,Linux開機時會把 /etc/rc.local 里的內容執行一遍。
3.7 /etc/inittab
設定系統啟動時 init 進程把系統設置成什么樣的(只查看就行,不要更改!!!)(runlevel 運行級別及加載相關的級別對應啟動文件設置,Linux開機啟動流程)。
3.8 /etc/exports
設定NFS網絡文件系統用的配置文件。
3.9 /etc/init.d
這個目錄是用來存放通過 yum 或rpm 工具安裝的軟件的默認啟動程序的目錄。比如:CentOS、RedHat;
3.10 /etc/profile
系統全局環境變量永久生效的配置文件。定義別名以及PATH變量等。
3.11 /etc/profile.d
系統登錄程序的一個目錄。
(講跳板機,登錄的時候加載 /etc/profile.d的腳本)
====================================================七、壓縮、解壓縮文件或目錄=====================================================================
1、壓縮目錄或文件(壓縮文件的后綴名是 .tar.gz):

1.2解壓縮目錄或文件:

2、壓縮和解壓縮文件(此方法只能壓縮和解壓縮文件)

==============================================八、================================================================
================================================= 九、第一階段學習學習效果考察=============================================================
1、創建目錄/data/oldboy,并且在該目錄下創建文件oldboy.txt,然后在文件oldboy.txt里寫入內容“inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0”(不包括引號)。
2、將題1中的oldboy.txt文件內容通過命令過濾只輸出如下內容: 10.0.0.8 10.0.0.255 255.255.255.0
3、將題1中的oldboy目錄移動到/tmp目錄下,并將/etc/passwd文件復制到/tmp/oldboy下。
4、在題3的基礎上使用awk取passwd文件的第10行到20行的第三列重定向到/tmp/oldboy/tets.txt文件里。
5、在題3的基礎上要求用命令rm刪除文件時提示如下禁止使用rm的提示,并使用該效果永久生效。
[root@oldboy oldboy]#rm -f passwd Do not use rm command.
6、在題3的基礎上,刪除/tmp/oldboy/下除passwd以外的其他的文件。
7.在題3的基礎上,請打印/etc/passwd文件中的第2-5行(不低于三種方法)。
8、在題3的基礎上,使用命令調換passwd文件里root位置和/bin/bash位置?即將所有的第一列和最后一列位置調換?
例:默認:root:x:0:0:root:/bin/bash 修改后 /bin/bash:x:0:0:root:/root:root
9、把/data目錄及其子目錄下所有以擴展名.txt結尾的文件中包含oldgril的字符串全部替換為oldboy。
10、查找/oldboy下所有7天以前以log結尾的大于1M的文件移動/tmp下
11、什么是linux的運行級別,請描述linux的運行級別不同數字的含義(附加題)
12、請描述buffer和cache的區別(附加題)
13、請說出你知道的下列字符在linux里可以代表的意義(附加題)。
例:~| > >> < << !
----答案1:
mkdir -p /data/oldboy ---創建目錄
touch /data/oldboy/oldboy.txt ------創建文件
vi /data/oldboy/oldboy.txt 然后輸入 i 進行錄入信息,然后按 esc 返回,最后輸入 :wq 完成保存,退出。(如不需要保存可輸 :q! 退出不保存。)
---答案2:
awk -F '[ :]+' '{print$3" "$5" "$7}' /data/oldboy/oldboy.txt
---答案3:
mv /data/oldboy /tmp
cp /etc/passwd /tmp/oldboy
---答案4:
awk -F '[:]' 'NR>9&&NR<21{print$3}' /tmp/oldboy/passwd >/tmp/oldboy/test.txt



---答案5:

如果需要刪除永久的rm命令,需要到/etc/profile和/etc/bashrc兩個文件中把添加的刪除即可。
----答案6:
find /tmp/oldboy -type 'f' ! -name 'passwd' |xargs rm -f
----答案7:
awk -F 'NR>1&&NR<6' /tmp/oldboy/passwd
sed -n '2,5'p /tmp/oldboy/passwd
head -5 /tmp/oldboy/passwd |tail -4
---答案8 :
awk -F '[:]' 'NR==1{print$7":"$1":"$2":"$3":"$4":"$5":"$6}' /tmp/oldboy/passwd
----答案9:
find /data -type f -name '*.txt' |xargs sed -i 's#oldgrid#oldboy#g'
-----答案10:

![]()
浙公網安備 33010602011771號