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博客_鏡像源是什么意思)

【總結不易,頂一下吧各位老板!】
