Linux 系統優化
1、系統資訊檢視方法
-
檢視系統名稱資訊:
# cat /etc/redhat-release CentOS release 7.5.1804
-
檢視系統核心版本
# uname -r 3.10.0-862.el7.x86_64
-
檢視系統硬體位數
# uname -m x86_64
-
檢視系統所有資訊
- 引數 :
-a
[root@localhost ~]# uname Linux [root@localhost ~]# uname -a Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
- 引數 :
2、系統基礎優化
2.1、新增系統普通使用者
-
新增系統普通使用者:
useradd [使用者名稱]
-
設定使用者密碼 :
passwd [使用者名稱]
- 免互動模式:
echo [密碼]|passwd --stdin [使用者名稱]
(一般用在指令碼檔案中)
- 免互動模式:
-
切換使用者資訊:
su
和su -
- 二者區別就是
su
是切換使用者,但是切換後的使用者缺少相應的檔案或環境變數;su -
相當於重新登入,切換後的使用者攜帶環境變數或相應檔案 - 通過
pwd
和echo $PATH
兩個命令檢視超管和普通使用者切換後的區別 - root使用者切換到普通使用者不需要輸入密碼
- 普通使用者切換到root使用者需要輸入密碼
- 二者區別就是
使用者切換原理圖:
-
檢視當前登入使用者資訊:
whoami
命令[root@localhost ~]# whoami root
-
檢視當前使用者登入系統的終端 :
who
命令[root@localhost ~]# who root tty1 2021-12-15 08:50 root pts/0 2021-12-15 15:14 (192.168.15.1) root pts/2 2021-12-15 16:52 (192.168.15.1) # tty和pts的含義 tty ---- 代表虛擬機器開的視窗 pts ---- 代表此時Xshell開的視窗
2.2、命令提示資訊優化
- 通過
echo $PS1
命令修改顯示命令列提示符格式資訊
臨時切換提示
-
大寫方式
[root@localhost ~]# echo $PS1 [\u@\h \W]\$ # 大寫方式只能顯示路徑基名,不顯示完全路徑 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]#
-
小寫方式
[root@localhost ~]# PS1='[\u@\h \w]\$' # 通過小寫方式這樣就能顯示完整路徑了 [root@localhost ~]#cd /etc/sysconfig/network-scripts/ [root@localhost /etc/sysconfig/network-scripts]#
永久設定切換提示
- 相關檔案:
/etc/profile
- 在profile檔案內新增
export PS1='[\u@\h \w]\$ '
- 過載檔案命令:
source
- 過載檔案:
source /etc/profile
,設定成功+
- 在profile檔案內新增
2.3、下載的源資訊更新
2.3.1、 Linux中安裝軟體
-
安裝軟體的三種方式
-
rpm
安裝 -
yum
安裝 -
原始碼編譯安裝
-
區別:
rpm
安裝:類似於windows中的安裝包,下載下來之後直接安裝。rpm
缺點:不能解決依賴
yum
安裝:基於rpm安裝,也就是在rpm
安裝上增加了自動解決依賴的功能原始碼安裝
:通過編譯原始碼,得到軟體包- 優點:可以自定製軟體包
- 缺點:是比較複雜
注:
依賴
通俗理解為,如果下載wps,那麼在下載的同時,wps就會自動下載了word/excel/ppt等必備軟體,這樣就是解決了依賴,如果下載了wps沒有自動下載word等軟體,就是沒有解決依賴*
2.3.2、三種安裝詳細操作
RPM安裝
- 命令:
- 安裝:rpm -ivh [軟體包名稱]
- 解除安裝:rpm -e [軟體包名稱]
- 升級:rpm -Uvh [軟體包名稱]
- 檢視軟體包配置檔案:rpm -qc [軟體包名稱]
- 檢視是否安裝某軟體:rpm -q [軟體包名稱]
- 檢視當前系統安裝了哪些軟體:rpm -qa [軟體包名稱]
- 檢視軟體的安裝路徑內的內容:rpm -ql [軟體包名稱]
-
安裝前戲:
-
執行上傳與下載命令:
yum install lrzsz -y
-
lrzsz:上傳和下載從Windows到Linux伺服器直接的一個工具包,作用是下載好的安裝包可以直接託到linux中
-
?[華為開源映象站](華為開源映象站_軟體開發服務_華為雲 (huaweicloud.com))
這樣就是從base源上下載好了lrzsz工具包!
- 安裝、解除安裝、更新操作如下:
1、下載安裝包(我是用的是華為源)
- 開啟華為映象源網站,選擇base源下載
我的是CentOS 7,找到7/-->os/-->x86_64/Packages/,然後去搜尋要下載的安裝包!(路徑顯示:/mirrors_os/centos/7/os/x86_64/Packages/)
下載好直接拖拽進Xshell框中即可,下載安裝包就完成了!
2、安裝
# 安裝命令
[root@localhost ~]# rpm -ivh zsh-5.0.2-34.el7_8.2.x86_64.rpm
Preparing... ################################# [100%]
Updating / installing...
1:zsh-5.0.2-34.el7_8.2 ################################# [100%]
[root@localhost ~]# zsh
3、解除安裝
# 解除安裝命令
[root@localhost]~# rpm -e zsh
[root@localhost]~# zsh
zsh: command not found: zsh
4、更新
# 更新命令
[root@localhost]~# rpm -Uvh zsh-5.0.2-34.el7_8.2.x86_64.rpm
Preparing... ################################# [100%]
package zsh-5.0.2-34.el7_8.2.x86_64 is already installed
[root@localhost]~# zsh
5、軟體包名稱解釋
zsh-5.0.2-34.el7_8.2.x86_64.rpm
軟體包名稱:zsh
版本號:5.0.2
第多少次編譯:34
適用的平臺:el7_8(CentOS 7)
適用的系統位數:x86_64
副檔名:rpm
6、補充操作
# 檢視軟體包的配置檔案有哪些
[root@localhost]~# rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
# 檢視是否安裝某軟體
# 有的話顯示軟體包資訊
[root@localhost]~# rpm -q zsh
zsh-5.0.2-34.el7_8.2.x86_64
# 沒有安裝輸出未安裝
[root@localhost]~# rpm -q asfgghl
package asfgghl is not installed
# 檢視當前系統安裝了哪些軟體
[root@localhost]~# rpm -qa
#檢視軟體的安裝路徑內的內容
[root@localhost ~]# rpm -ql zsh
yum安裝命令介紹
-
格式:yum [引數][進行的操作][軟體包名稱]
-
引數 :
-y
,安裝,解除安裝,更新使用-y引數是免互動模式,不需要確認y/N,--nogpgcheck
:忽略公鑰認證安裝
-
yum命令:
- 安裝:yum install [軟體包的名稱]
- 解除安裝:yum remove [軟體包的名稱]
- 更新:yum update [軟體包的名稱]
- 檢視軟體源中是否有此軟體:yum list [軟體包的名稱]
- 清空yum快取:yum clean all
- 生成快取:yum makecache
- 列出設定yum源的資訊:yum repolist
- 清除快取目錄下的軟體包:yum clean packages
-
yum安裝的生命週期(從下載到結束):
-
執行
yum install [軟體包名稱]
-
去
/etc/yum.repos.d/
目錄 找以.repo
(yum源)結尾的檔案 -
通過
.repo
檔案中的連結,找到對應的軟體倉庫
-
在對應的
軟體倉庫
中下載指定的軟體包
-
快取到
/var/cache/yum/
-
根據快取,安裝軟體包
-
刪除軟體包(在/etc/yum.conf中有引數
keepcache
代表是否儲存快取,0 代表不儲存 , 1 代表儲存)
注:rpm其實就是隻執行了最後一步
-
-
相關檔案:
-
yum的配置檔案:
/etc/yum.conf
-
安裝包快取目錄:
/var/cache/yum/
-
軟體倉庫目錄 :/etc/yum.repos.d/
-
注:如果跟具體的軟體包名稱,就會更新指定軟體包;如果沒有指定,則更新系統所有的需要更新的軟體包。
yum私有倉庫構建
私有倉庫分類:本地版、遠端版
本地版構建步驟
本地版是本機使用
-
下載必須的軟體包
yum install yum-utils createrepo -y
注:使用'yum-utils'來維護YUM並提高其效能,[yum-utils包詳解]((29條訊息) 怎麼讓linux支援yum,如何安裝和使用'yum-utils'來維護Yum並提高其效能_火車合鳥子的部落格-CSDN部落格)
-
建立軟體倉庫
[root@localhost opt]# mkdir -p /opt/repos [root@localhost repos]# pwd /opt/repos
-
初始化軟體倉庫
- 命令:createrepo [軟體倉庫路徑]
# 初始化倉庫 [root@localhost ~]# createrepo /opt/repos/ Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete # 切換路徑檢視初始化結果,多了一個repodata目錄 [root@localhost ~]# cd /opt/repos/ [root@localhost repos]# ll total 4 drwxr-xr-x 2 root root 4096 Dec 16 20:47 repodata # repodata目錄記憶體儲的是對應關係,不要修改
-
初始化後建立
Packages
目錄,下載對應的軟體包,我用zsh做例子(華為源提前下載好的)[root@localhost repos]# mkdir /opt/repos/Packages [root@localhost repos]# ll total 4 drwxr-xr-x 2 root root 6 Dec 16 20:51 Packages drwxr-xr-x 2 root root 4096 Dec 16 20:47 repodata # 此時/repos裡面就有兩個目錄,Packages下存放安裝包,移動準備好的軟體安裝包(zsh舉例) [root@localhost repos]# mv /root/zsh-5.0.2-34.el7_8.2.x86_64.rpm Packages/ [root@localhost repos]# ll /opt/repos/Packages/ total 2440 -rw-r--r-- 1 root root 2497380 Dec 16 15:37 zsh-5.0.2-34.el7_8.2.x86_64.rpm
-
再次初始化嘗試驗證是否成功,不報錯為成功
[root@localhost repos]# createrepo /opt/repos/ Spawning worker 0 with 1 pkgs Workers Finished Saving Primary metadata Saving file lists metadata Saving other metadata Generating sqlite DBs Sqlite DBs complete # 沒有報錯代表成功了
-
新增yum源
# 防止原有的源影響測試本地源結果 # 去yum源,做備份 [root@localhost repos]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# mkdir backup [root@localhost yum.repos.d]# mv *.repo backup/ [root@localhost yum.repos.d]# ll total 4 drwxr-xr-x 2 root root 237 Dec 16 21:04 backup # 新增本地yum源 [root@localhost ~]# yum-config-manager --add-repo=file:///opt/repos Loaded plugins: fastestmirror adding repo from: file:///opt/repos [opt_repos] name=added from: file:///opt/repos baseurl=file:///opt/repos enabled=1 # 切換目錄,檢視是否新增yum源 [root@localhost repos]# cd /etc/yum.repos.d/ [root@localhost yum.repos.d]# ll total 4 drwxr-xr-x 2 root root 268 Dec 16 21:07 backup -rw-r--r-- 1 root root 85 Dec 16 21:09 opt_repos.repo # 成功新增opt_repos.repo # 檢視,發現源下載連結變為本地的file:// [root@localhost yum.repos.d]# cat opt_repos.repo [opt_repos] # 源的名稱 name=added from: file:///opt/repos # 源的簡介 baseurl=file:///opt/repos # 源的下載地址 enabled=1 # 是否啟用,1為啟用,0為不啟用
-
清理快取,生成快取
# 清理 [root@localhost yum.repos.d]# yum clean all Loaded plugins: fastestmirror Cleaning repos: opt_repos Cleaning up list of fastest mirrors Other repos take up 664 M of disk space (use --verbose for details) # 生成 [root@localhost yum.repos.d]# yum makecache Loaded plugins: fastestmirror Determining fastest mirrors opt_repos | 2.9 kB 00:00:00 (1/3): opt_repos/filelists_db | 5.7 kB 00:00:00 (2/3): opt_repos/other_db | 1.6 kB 00:00:00 (3/3): opt_repos/primary_db | 2.5 kB 00:00:00 Metadata Cache Created
-
測試
[root@localhost yum.repos.d]# yum install zsh
現在下載已經是本地新增的源下載,
opt_repos
遠端版構建
優化本地版,其他機器可以用,接下來用克隆機嘗試使用本機的
- 下載必須的軟體包
- 建立軟體倉庫
- 下載對應的軟體
- 初始化軟體倉庫
- 新增yum源
- 生成快取
上面列出這幾步和本地版完全一樣參考上面,下面步驟續上步驟
-
獲取華為開源網站中Base源url內容
# 本地只有一個安裝包,去華為開源網站獲取,執行以下命令 [root@localhost yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo
注:curl 是一種命令列工具,作用是發出網路請求,然後獲取資料,顯示在"標準輸出"(stdout)上面。
- 如果要把這個網頁儲存下來,可以使用
-o
引數:- curl -o [檔名] [URL]
-
新增yum源:
-
命令:yum-config-manager --add-repo=[yum源url根路徑]
-
注意:yum源根路徑為含有Packages和repodata兩個目錄
-
# 新增yum源
[root@localhost yum.repos.d]# yum-config-manager --add-repo=https://repo.huaweicloud.com/epel/7/x86_64/
Loaded plugins: fastestmirror
adding repo from: https://repo.huaweicloud.com/epel/7/x86_64/
[repo.huaweicloud.com_epel_7_x86_64_]
name=added from: https://repo.huaweicloud.com/epel/7/x86_64/
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
enabled=1
-
安裝遠端訪問軟體(Nginx)
# 忽略公鑰安裝 [root@localhost yum.repos.d]# yum install nginx --nogpgcheck
-
修改nginx的配置檔案
[root@localhost yum.repos.d]# rpm -qc nginx /etc/logrotate.d/nginx /etc/nginx/fastcgi.conf /etc/nginx/fastcgi.conf.default /etc/nginx/fastcgi_params /etc/nginx/fastcgi_params.default /etc/nginx/koi-utf /etc/nginx/koi-win /etc/nginx/mime.types /etc/nginx/mime.types.default /etc/nginx/nginx.conf /etc/nginx/nginx.conf.default /etc/nginx/scgi_params /etc/nginx/scgi_params.default /etc/nginx/uwsgi_params /etc/nginx/uwsgi_params.default /etc/nginx/win-utf # 只修改/etc/nginx/nginx.conf檔案 註釋掉:include /etc/nginx/conf.d/*.conf; 修改路徑: root /opt/repos; 新增索引:autoindex on; ---# 作用是目錄索引
vim /etc/nginx/nginx.conf 檔案
-
測試
- 命令:nginx -t
[root@localhost yum.repos.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful # 測試成功
-
啟動nginx
[root@localhost yum.repos.d]# systemctl start nginx
-
關閉selinux和firewalld
[root@localhost ~]# systemctl disable --now firewalld [root@localhost ~]# setenforce 0
-
瀏覽器測試
瀏覽器檢視本機http://192.168.15.100/
-
克隆機測試
[root@localhost ~]# cd /etc/yum.repos.d/ # 裝yum-utils擴充套件 [root@localhost yum.repos.d]# yum install yum-utils -y # 備份源 [root@localhost yum.repos.d]# mkdir backup [root@localhost yum.repos.d]# mv *.repo backup/ [root@localhost yum.repos.d]# ll total 0 drwxr-xr-x. 2 root root 268 Dec 16 22:18 backup # 新增yum源 [root@localhost yum.repos.d]# yum-config-manager --add-repo=http://192.168.15.100/ Loaded plugins: fastestmirror adding repo from: http://192.168.15.100/ [192.168.15.100_] name=added from: http://192.168.15.100/ baseurl=http://192.168.15.100/ enabled=1 # 清理快取、生成快取 [root@localhost yum.repos.d]# yum clean all [root@localhost yum.repos.d]# yum makecache # 測試下載 [root@localhost yum.repos.d]# yum install zsh
注.下次不能在網頁開啟本機ip地址,重啟nginx服務就可!
3、系統安全優化
3.1 關閉selinux安全服務功能
-
相關檔案:/etc/selinux/conf
-
永久關閉 :vim /etc/selinux/conf
- 臨時關閉/開啟(設定立即生效):setenforce 0 /1(0代表臨時關閉,1代表開啟).
[root@localhost]~# setenforce 0
[root@localhost]~# setenforce 1
3.2關閉防火牆
-
防火牆底層:
- firewalld 底層 --> iptables -->系統安全框架
-
檢視防火狀態:
- systemctl status firewalld
-
暫時關閉防火牆
- systemctl stop firewalld
-
永久關閉防火牆
- systemctl disable firewalld
-
重啟防火牆
- systemctl enable firewalld
-
啟動防火牆
- systemctl start firewalld
4、防止系統亂碼優化
4.1 出現亂碼情況設定
# 檢視字符集
[root@localhost ~]# echo $LANG
en_US.UTF-8
# 設定字符集
export LANG=en.US-gb2312
# 檢視字符集
[root@localhost ~]# echo $LANG
en.US-gb2312
4.2 解決亂碼 情況設定
- 臨時修改系統字符集資訊
# 檢視系統當前使用字符集
echo $LANG
# 設定字符集
export LANG=en.US-gb2312
# 設定中文的
export LANG=zh_CN.UTF-8
- 永久修改系統字符集資訊
# 備份配置資訊
cp /etc/locale.conf /etc/locale.conf
# 編寫配置檔案
echo 'LANG="en_US.UTF-8"' >/etc/locale.conf
source /etc/locale.conf
# 檢視配置資訊
echo $LANG
補充知識:
- 什麼是源?
源就是來源,就是你安裝軟體時,程式從哪裡獲取軟體包(安裝程式在你的機器上,但需要安裝的東西卻在軟體源伺服器上)。
什麼是軟體源?
軟體源就相當於軟體庫,需要安裝什麼軟體,只需要簡單使用命令來進行安裝,其實你可以把他稱為
軟體倉庫
。安裝軟體時,就是從倉庫裡面調取資料放在你的機器上。
什麼是映象?
映象,原意是光學裡指的物體在鏡面中所成之像。引用到電腦網路上,一個網站的映象是指對一個網站內容的拷貝。映象通常用於為相同資訊內容提供不同的源,特別是在下載量大的時候提供了一種可靠的網路連線。製作映象是一種檔案同步的過程。“映象網站”(英文:Mirror sites [1] ),又譯作“映象站點” ,亦即把一個網際網路上的網站資料“拷貝”到本地伺服器,並保持本地伺服器資料的同步更新,因此也稱為“複製網路站點” 。
映象源就是把官方的源做一個映象,你可以在這下載軟體。
官方源如果在國外,下載軟體可能會很慢,這時候就需要換成國內的映象源。
?[源概念參考博文]((29條訊息) 什麼是源,什麼是映象_xiaoxiannv666的部落格-CSDN部落格_映象源是什麼意思)
【總結不易,頂一下吧各位老闆!】