vim /etc/sysconfig/network-scripts/ifcfg-eth0 修改配置參數 ONBOOT= yes
啓動或者關閉ip
systemctl restart/start/stop network
網絡配置文件: /etc/sysconfig/network 網絡接口配置文件: /etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME DEVICE=: 關聯的設備名稱,要與文件名的後半部「INTERFACE_NAME」保持一致; BOOTPROTO={static|none|dhcp|bootp}: 引導協議;要使用靜態地址,使用static或none;dhcp表示使用DHCP服務器獲取地址; IPADDR=: IP地址 NETMASK=:子網掩碼 GATEWAY=:設定默認網關; ONBOOT=:開機時是否自動激活此網絡接口; HWADDR=: 硬件地址,要與硬件中的地址保持一致;可省; USERCTL={yes|no}: 是否容許普通用戶控制此接口; PEERDNS={yes|no}: 是否在BOOTPROTO爲dhcp時接受由DHCP服務器指定的DNS地址;
啓動/關閉一塊網卡 ifup eth0 ifdown eth0 --- 若是關閉網卡,xshell會怎樣?
直接輸入ifconfig會列出已經啓動的網卡,也能夠輸入ifconfig eth0單獨顯示eth0的信息 各選項解釋是: eth0 網卡的代號 lo 迴環地址loopback inet IPv4的Ip地址 netmask 子網掩碼 broadcast 廣播地址 RX/TX 流量發/收狀況 tx是發送(transport),rx是接收(receive) packets 數據包數 errors 數據包錯誤數 dropped 數據包有問題被丟棄的數量 collisions 數據包碰撞狀況,數值太多表明網絡情況差
建立:useradd 用戶名 存放用戶信息到 /etc/passwd
刪除:userdel 用戶名 給指定用戶修改密碼。若是不指定用戶,修改當前登陸的用戶的密碼
id root 查看root的用戶id (uid) 以及組id(gid gourp id ) /etc/passwd 存放用戶信息 /etc/group 存放用戶組信息 經過id命令查看用戶信息
root用戶切換普通用戶不須要密碼,反之,須要密碼
使用 su - 用戶名 (-到用戶名之間有空格) 使用-表明徹底切換,連同環境變量一同切換了
退出登陸: logout exit
ctrl + l 清屏 ctrl + d 退出登陸 ctrl + shift + r 快速登陸用戶管理
現代操做系統通常屬於多用戶的操做系統,也就是說,同一臺機器能夠爲多個用戶創建帳戶,通常這些用戶都是爲普通用戶,這些普通用戶能同時登陸這臺計算機,計算機對這些用戶分配必定的資源。
普通用戶在所分配到的資源內進行各自的操做,相互之間不受影響。可是這些普通用戶的權限是有限制的,且用戶太多的話,管理就不便,從而引入root用戶。
此用戶是惟一的,且擁有系統的全部權限。root用戶所在的組稱爲root組。「組」是具備類似權限的多個用戶的集合。
root的權利html
Linux系統的特性就是能夠知足多個用戶,同時工做,所以Linux系統必須具有很好的安全性。
在安裝RHEL7時設置的root管理員密碼,這個root管理員就是全部UNIX系統中的超級用戶,它擁有最高的系統全部權,可以管理系統的各項功能,如添加/刪除用戶,啓動/關閉進程,開啓/禁用硬件設備等等。
所以「能力越大,責任越大」,root權限必須很好的掌握,不然一個錯誤的命令可能會摧毀整個系統。
root爲何叫root?前端
在Linux系統中,用戶也有本身的UID身份帳號且惟一 系統管理員UID爲0 系統用戶UID爲1~999 Linux安裝的服務程序都會建立獨有的用戶負責運行。 普通用戶UID從1000開始:由管理員建立
用戶組GIDpython
爲了方便管理屬於同一組的用戶,Linux 系統中還引入了用戶組的概念。經過使用用 戶組號碼(GID,Group IDentification),咱們能夠把多個用戶加入到同一個組中,從而方 便爲組中的用戶統一規劃權限或指定任務。
假設有一個公司中有多個部門,每一個部門中又 有不少員工。若是隻想讓員工訪問本部門內的資源,則能夠針對部門而非具體的員工來設 置權限。
例如,能夠經過對技術部門設置權限,使得只有技術部門的員工能夠訪問公司的 數據庫信息等。
Linux管理員在建立用戶時,將自動建立一個與其同名的用戶組,這個用戶組只有該用戶一我的
$符號是普通用戶命令提示符,#是超級管理員的提示符mysql
group命令用於建立用戶組,爲了更加高效的指派系統中各個用戶的權限,在工做中經常添加幾個用戶到一個組裏面,這樣能夠針對一類用戶安排權限。
例如超哥之前在公司裏,就負責添加openLDAP用戶管理,偶爾臺灣,美國的同事去上海協做,我就得給他們添加到it部門組裏面,以致於他們有對服務器操做的權限。
groupadd it_dep
普通用戶權限不夠的時候,使用sudo命令,sodu命令預設的身份是root,要在/etc/sudoers中配置普通用戶的權限信息,用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。linux
語法:nginx
sudo 【選項】【參數】 -b:在後臺執行指令; -h:顯示幫助; -H:將HOME環境變量設爲新身份的HOME環境變量; -k:結束密碼的有效期限,也就是下次再執行sudo時便須要輸入密碼;。 -l:列出目前用戶可執行與沒法執行的指令; -p:改變詢問密碼的提示符號; -s<shell>:執行指定的shell; -u<用戶>:以指定的用戶做爲新的身份。若不加上此參數,則預設以root做爲新的身份; -v:延長密碼有效期限5分鐘; -V :顯示版本信息。
幾個栗子:git
visudo 編輯sudoers文件 寫入 ## Allow root to run any commands anywhere root ALL=(ALL) ALL chaoge ALL=(ALL) ALL #容許chaoge在任何地方,執行任何命令
Linux權限的目的是(保護帳戶的資料)redis
Linux權限主要依據三種身份來決定:sql
在lLinux中,每一個文件都有本身的所屬者,和所屬組,以及組之外的人對文件的可讀可寫可執行等權限。shell
對於目錄的權限來講,可讀是讀取目錄文件列表,可寫是表示在目錄內新增,修改,刪除文件。可執行表示能夠進入目錄
使用下面命令查看權限
ls - l
解讀上圖:
先來分析一下文件的類型
- 通常文件 d 文件夾 l 軟鏈接(快捷方式) b 塊設備,存儲媒體文件爲主 c 表明鍵盤,鼠標等設備
權限和數字之間的轉化
每一個權限都有全部者,所屬組,以及其餘用戶,他們都對應着各自的權限,若是他們都有權限的話,那分別是777,777,777
id root
注意:普通用戶只能修改本身的文件名,時間,以及權限,修改其餘用戶權限的時候,只能使用root用戶
1.修改屬主爲root,使用chown命令
chown root pyyu.txt
查看權限信息
[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt -rw-rw-r-- 1 root pyyu 0 8月 11 16:41 pyyu.txt
2,修改屬組,使用chgrp命令
[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt -rw-rw-r-- 1 root pyyu 0 8月 11 16:41 pyyu.txt [root@oldboy_python /tmp 16:44:59]#chgrp root pyyu.txt [root@oldboy_python /tmp 16:45:51]#ll pyyu.txt -rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt
咱們已知三種身份權限(屬主,屬組,其餘人),每種身份都有rwx的三種權限,系統還提供了數字計算權限。
r read 4 w write 2 x execute 1
每種身份最低是0分,最高是r+w+x 7分
所以三種身份,最高權限是777,最低是000
-rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 所以可知pyyu.txt的權限是 屬主是6 r+w(4+2) 屬組是6 r+w(4+2) 其餘人是4 r(4)
chmod [身份] [參數] [文件] u(user) +(添加) g(group) -(減去) o(other) =(賦值) a(all)
當前權限 -rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 方法1 減去屬主的寫權限 chmod u-w pyyu.txt 查看權限 -r--rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 方法2 屬主添加可讀可寫可執行權限 chmod 700 pyyu.txt 屬主可讀可寫可執行 屬組可讀可執行 其餘人可讀可執行 chmod 755 pyyu.txt
修改文件名,修改文件,更改日期
mv pyyu.txt chaoge.txt
#觸摸,修改時間
touch chaoge.txt
ln -s 目標文件 軟鏈接名 1.存在文件/tmp/test.txt [root@master tmp]# ls -l -rw-r--r-- 1 root root 10 10月 15 21:23 test.txt 2.在/home目錄中創建軟鏈接,指向/tmp/test.txt文件 ln -s /tmp/test.txt my_test 3.查看軟鏈接信息 lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt 4.經過軟鏈接查看文件 cat my_test my_test只是/tmp/test.txt的一個別名,所以刪除my_test不會影響/tmp/test.txt,可是刪除了本尊, 快捷方式就無心義不存在了
PS1變量
Linux命令提示符使用PS1變量控制
參數:
[root@oldboy_python ~]# echo $PS1 [\u@\h \W]\$ 能夠自行調整全局變量/etc/profile文件用於永久生效 PS1='[\u@\h \W\t]\$' \d 日期 \H 完整主機名 \h 主機名第一個名字 \t 時間24小時制HHMMSS \T 時間12小時制 \A 時間24小時制HHMM \u 當前用戶帳號名 \v BASH的版本 \w 完整工做目錄 \W 利用basename取得工做目錄名 \# 下達的第幾個命令 \$ 提示字符,root爲#,普通用戶爲$ PS1 > 變量名 $PS1 > 查看變量內容 PS1=新內容 從新賦值 變量賦值,查看 name='chaoge' echo $name PS1顯示ip地址 export PS1="[\u@\h `/sbin/ifconfig ens33 | sed -nr 's/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'` \w]\$"
tar 命令:用來壓縮和解壓文件。tar自己不具備壓縮功能。他是調用壓縮功能實現的
語法:
壓縮文件
tar -cf 壓縮文件名 想壓縮的內容
解壓文件
tar -xf 壓縮文件名
參數:
tar(選項)(參數) -A或--catenate:新增文件到以存在的備份文件; -B:設置區塊大小; -c或--create:創建新的備份文件; -C <目錄>:這個選項用在解壓縮,若要在特定目錄解壓縮,可使用這個選項。 -d:記錄文件的差異; -x或--extract或--get:從備份文件中還原文件; -t或--list:列出備份文件的內容; -z或--gzip或--ungzip:經過gzip指令處理備份文件; -Z或--compress或--uncompress:經過compress指令處理備份文件; -f<備份文件>或--file=<備份文件>:指定備份文件; -v或--verbose:顯示指令執行過程; -r:添加文件到已經壓縮的文件; -u:添加改變了和現有的文件到已經存在的壓縮文件; -j:支持bzip2解壓文件; -v:顯示操做過程; -l:文件系統邊界設置; -k:保留原有文件不覆蓋; -m:保留文件不被覆蓋; -w:確認壓縮文件的正確性; -p或--same-permissions:用原來的文件權限還原文件; -P或--absolute-names:文件名使用絕對名稱,不移除文件名稱前的「/」號; -N <日期格式> 或 --newer=<日期時間>:只將較指定日期更新的文件保存到備份文件裏; --exclude=<範本樣式>:排除符合範本樣式的文件。
語法:
netstat [選項] -t或--tcp:顯示TCP傳輸協議的連線情況; -u或--udp:顯示UDP傳輸協議的連線情況; -n或--numeric:直接使用ip地址,而不經過域名服務器; -l或--listening:顯示監控中的服務器的Socket; -p或--programs:顯示正在使用Socket的程序識別碼和程序名稱; -a或--all:顯示全部連線中的Socket;
舉個 栗子
[root@oldboy_python ~ 10:21:59]#netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 814/sshd tcp6 0 0 :::111 :::* LISTEN 2703/rpcbind tcp6 0 0 :::3306 :::* LISTEN 29269/mysqld udp 0 0 0.0.0.0:758 0.0.0.0:* 2703/rpcbind udp 0 0 0.0.0.0:111 0.0.0.0:* 2703/rpcbind udp 0 0 10.141.32.137:123 0.0.0.0:* 484/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 484/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 484/ntpd udp6 0 0 :::758 :::* 2703/rpcbind udp6 0 0 :::111 :::* 2703/rpcbind udp6 0 0 :::123 :::* 484/ntpd
參數:
ps 命令經常使用參數 -a 顯示全部進程 -u 用戶以及其餘詳細信息 -x 顯示沒有控制終端的進程
語法:
ps -ef|grep 查看任務是否運行有進程
netstat -tunlp | grep 查看任務的端口是否啓動
netstat -tunlp |grep 8000 過濾出 django的8000端口是否存活 netstat [選項] -t或--tcp:顯示TCP傳輸協議的連線情況; -u或--udp:顯示UDP傳輸協議的連線情況; -n或--numeric:直接使用ip地址,而不經過域名服務器; -l或--listening:顯示監控中的服務器的Socket; -p或--programs:顯示正在使用Socket的程序識別碼和程序名稱; -a或--all:顯示全部連線中的Socket; ps 命令查詢進程 ps -ef |grep mysql ps -ef|grep nginx
-a:當處理當前進程時,不限制命令名和進程號的對應關係; -l <信息編號>:若不加<信息編號>選項,則-l參數會列出所有的信息名稱; -p:指定kill 命令只打印相關進程的進程號,而不發送任何信號; -s <信息名稱或編號>:指定要送出的信息; -u:指定用戶。
只有第9種信號(SIGKILL)才能夠無條件終止進程,其餘信號進程都有權利忽略,下面是經常使用的信號:
kill 命令 若是你kill一個進程,死活殺不死,就加上 -9
-9 強制終止信號(危險命令) 強制殺死進程,以及進程相關的依賴
kill -9 uwsgi kill -9 mysqld
HUP 1 終端斷線
INT 2 中斷(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 終止
KILL 9 強制終止
CONT 18 繼續(與STOP相反, fg/bg命令)
STOP 19 暫停(同 Ctrl + Z)
實例:
先用ps查找進程,而後用kill殺掉: ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim kill 3268
centos7默認已經使用firewall做爲防火牆了 1.關閉防火牆 systemctl status firewalld #查看防火牆狀態 systemctl stop firewalld #關閉防火牆 systemctl disable firewalld#關閉防火牆開機啓動 systemctl is-enabled firewalld.service#檢查防火牆是否啓動
Linux中文顯示設置(防止中文亂碼)
此項優化爲可選項,根據我的狀況選擇是否調整Linux系統的字符集,字符集就是一套文字符號以及編碼。
Linux下經常使用字符集有:
#查看系統當前字符集 echo $LANG #檢查xshell crt的字符集 #命令修改字符集 export LANG=en_US.utf8 1.修改配置文件/etc/locale.conf LANG="zh_CN.UTF-8" 2.更改後查看系統語言變量 locale
亂碼的核心解決辦法
1.系統字符集utf8 2.xshell字符集utf8 3.文件字符集一致zh_CN.UTF-8
語法 df(選項)(參數) -h或--human-readable:以可讀性較高的方式來顯示信息; -k或--kilobytes:指定區塊大小爲1024字節; -T或--print-type:顯示文件系統的類型; --help:顯示幫助; --version:顯示版本信息。
查看系統磁盤設備,默認是KB爲單位: df 使用-h選項以KB以上的單位來顯示,可讀性高: df -h
tree命令以樹狀圖列出目錄的內容。 -a:顯示全部文件和目錄; -A:使用ASNI繪圖字符顯示樹狀圖而非以ASCII字符組合; -C:在文件和目錄清單加上色彩,便於區分各類類型; -d:先是目錄名稱而非內容; -D:列出文件或目錄的更改時間; -f:在每一個文件或目錄以前,顯示完整的相對路徑名稱; -F:在執行文件,目錄,Socket,符號鏈接,管道名稱名稱,各自加上"*","/","@","|"號; -g:列出文件或目錄的所屬羣組名稱,沒有對應的名稱時,則顯示羣組識別碼; -i:不以階梯狀列出文件和目錄名稱; -l:<範本樣式> 不顯示符號範本樣式的文件或目錄名稱; -l:如遇到性質爲符號鏈接的目錄,直接列出該鏈接所指向的原始目錄; -n:不在文件和目錄清單加上色彩; -N:直接列出文件和目錄名稱,包括控制字符; -p:列出權限標示; -P:<範本樣式> 只顯示符合範本樣式的文件和目錄名稱; -q:用「?」號取代控制字符,列出文件和目錄名稱; -s:列出文件和目錄大小; -t:用文件和目錄的更改時間排序; -u:列出文件或目錄的擁有者名稱,沒有對應的名稱時,則顯示用戶識別碼; -x:將範圍侷限在現行的文件系統中,若指定目錄下的某些子目錄,其存放於另外一個文件系統上,則將該目錄予以排除在尋找範圍外。 tree參數
設置主機名
[root@yugo /tmp 11:04:42]#hostnamectl set-hostname pyyuc [root@pyyuc ~ 11:05:12]#hostname pyyuc
萬維網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。
經過域名,最終獲得該域名對應的IP地址的過程叫作域名解析(或主機名解析)。
1.查看Linux的DNS
配置文件 cat /etc/resolv.conf #dns服務器地址 nameserver 119.29.29.29 nameserver 223.5.5.5
2.本地強制dns解析文件/etc/hosts
指定本地解析: /etc/hosts 主機IP 主機名 主機別名 127.0.0.1 www.pyyuc.cn
3.nslookup是經常使用域名查詢工具,就是查DNS信息用的命令。
nslookup4有兩種工做模式,即「交互模式」和「非交互模式」。在「交互模式」下,用戶能夠向域名服務器查詢各種主機、域名的信息,或者輸出域名中的主機列表。而在「非交互模式」下,用戶能夠針對一個主機或域名僅僅獲取特定的名稱或所需信息。
進入交互模式,直接輸入nslookup命令,不加任何參數,則直接進入交互模式,此時nslookup會鏈接到默認的域名服務器(即/etc/resolv.conf
的第一個dns地址)。或者輸入nslookup -nameserver/ip
。進入非交互模式,就直接輸入nslookup 域名
就能夠了。
#解析
nslookup www.oldboyedu.com
你天天是怎麼起牀的?有的人有女友,,或是男友,,而我是被窮醒的,,,
什麼是計劃任務:
後臺運行,到了預約的時間就會自動執行的任務,前提是:事先手動將計劃任務設定好。這就用到了crond服務
crond服務相關的軟件包
[root@MiWiFi-R3-srv ~]# rpm -qa |grep cron
cronie-anacron-1.4.11-14.el7.x86_64
crontabs-1.11-6.20121102git.el7.noarch
cronie-1.4.11-14.el7.x86_64
這些包在最小化安裝系統時就已經安裝了,而且會開機自啓動crond服務,併爲咱們提供好編寫計劃任務的crontab命令。
crontab命令被用來提交和管理用戶的須要週期性執行的任務,與windows下的計劃任務相似
語法
crontab (選項)(參數)
-e:編輯該用戶的計時器設置; -l:列出該用戶的計時器設置; -r:刪除該用戶的計時器設置; -u<用戶名稱>:指定要設定計時器的用戶名稱。
存放定時任務的文件
/var/spool/cron
注意:
1 查看計劃任務的執行:tail -f /var/log/cron
2 寫計劃任務時,命令必須加上絕對路徑,不然會出現這種狀況:從日誌中看,確實觸發了計劃任務的執行,可是命令卻沒有執行成功,好比* * * * * reboot就會出現這種狀況,須要將reboot寫成/usr/sbin/reboot
3. 計劃任務執行的命令 是否存在,軟件是否安裝
4. 確保crontab服務運行
systemctl status cron ps -ef|grep crond
5. 檢測crontab是否開機啓動
systemctl is-enabled crond
crontab配置文件
在/etc目錄下有一個crontab文件,這個就是系統任務調度的配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # For details see man 4 crontabs # Example of job definition: # .---------------- minute (0 - 59) # | .------------- hour (0 - 23) # | | .---------- day of month (1 - 31) # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat # | | | | | # * * * * * user-name command to be executed
分 時 日 月 周
crontab任務配置基本格式:
* * * * * command
分鐘(0-59) 小時(0-23) 日期(1-31) 月份(1-12) 星期(0-6,0表明星期天) 命令
第1列表示分鐘1~59 每分鐘用*或者 */1表示
第2列表示小時1~23(0表示0點)
第3列表示日期1~31
第4列表示月份1~12
第5列標識號星期0~6(0表示星期天)
第6列要運行的命令
30 08 * * * 天天8.30去上班
天天8.30上班 30 08 * * * 去上班 天天12下班回家睡覺 00 00 * * * 回家睡覺
舉個栗子
全部命令必定要用絕對路徑來寫! #每分鐘執行一次命令 * * * * * 命令 #每小時的3,15分組執行命令 3,15 * * * * 命令 #在上午8-11點的第3和第15分鐘執行 3,15 8-11 * * * 命令 #每晚21:30執行命令 21 * * * 命令 #沒周6、日的1:30執行命令 1 * * 6,0 命令 #每週一到週五的凌晨1點,清空/tmp目錄的全部文件 1 * * 1-5 /usr/bin/rm -rf /tmp/* #每晚的21:30重啓nginx 21 * * * /opt/nginx/sbin/nginx -s reload #每個月的1,10,22日的4:45重啓nginx 4 1,1,10,22 * * /opt/nginx/sbin/nginx -s reload #每一個星期一的上午8點到11點的第3和15分鐘執行命令 3,15 8-11 * * 1 command
軟件包是什麼
程序(軟件)組成部分: 二進制程序 可執行命令 庫 .so文件 配置文件 .conf 幫助文件 readme /usr/share/man
如圖
軟件包顧名思義就是將應用程序、配置文件和數據打包的產物,全部的linux發行版都採用了某種形式的軟件包系統,這使得linux軟件管理和在windows下同樣方便,suse、red hat、fedora等發行版都是用rpm包,Debian和Ubuntu則使用.deb格式的軟件包。
mysql-5-3-4.rpm redis-3-4-3.rpm nginx2-3-2.rpm
在早期系統運維中,安裝軟件是一件很是費事費力的事情。系統管理員不得不下載軟件源代碼編譯軟件,而且爲了系統作各類調整。
儘管源代碼編譯形式的軟件加強了用戶定製的自由度,可是在小軟件上耗費精力是缺少效率的,因而軟件包應運而生。
軟件包管理能夠將管理員從無休止的兼容問題中釋放。yum工具就能夠自動搜索依賴關係,並執行安裝。
軟件包管理器核心功能
1.製做軟件包 .rpm 2.安裝、卸載、升級、查詢、校驗
在 RPM(紅帽軟件包管理器)公佈以前,要想在 Linux 系統中安裝軟件只能採起源碼包 的方式安裝。早期在 Linux 系統中安裝程序是一件很是困難、耗費耐心的事情,並且大多數 的服務程序僅僅提供源代碼,須要運維人員自行編譯代碼並解決許多的軟件依賴關係,所以 要安裝好一個服務程序,運維人員須要具有豐富知識、高超的技能,甚至良好的耐心。並且在 安裝、升級、卸載服務程序時還要考慮到其餘程序、庫的依賴關係,因此在進行校驗、安裝、 卸載、查詢、升級等管理軟件操做時難度都很是大。
RPM 機制則爲解決這些問題而設計的。RPM 有點像 Windows 系統中的控制面板,會建 立統一的數據庫文件,詳細記錄軟件信息並可以自動分析依賴關係。
#如今要安裝mysql #下載地址 https://dev.mysql.com/downloads/mysql/
安裝軟件的命令格式 rpm -ivh filename.rpm # i表示安裝 v顯示詳細過程 h以進度條顯示 升級軟件的命令格式 rpm -Uvh filename.rpm 卸載軟件的命令格式 rpm -e filename.rpm 查詢軟件描述信息的命令格式 rpm -qpi filename.rpm 列出軟件文件信息的命令格式 rpm -qpl filename.rpm 查詢文件屬於哪一個 RPM 的命令格式 rpm -qf filename
#下載軟件包
wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm
#安裝軟件包
[root@yugo /tmp 11:03:42]#rpm -ivh lrzsz-0.12.20-36.el7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:lrzsz-0.12.20-36.el7 ################################# [100%]
rpm -q lrzsz #查詢lrzsz是否安裝 rpm -qi lrzsz #查詢lrzsz包的說明信息 rpm -ql lrzsz #查詢lrzsz包生成的文件列表 rpm -qc nginx #查詢nginx安裝生成後的配置文件路徑 rpm -qf /etc/nginx/fastcgi.conf #查看這個文件由哪一個rpm包安裝
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 若是裝有老版本的,則升級;不然,則安裝; rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:若是裝有老版本的,則升級;不然,退出;
rpm -e PACKAGE_NAME
須要手動解決依賴
不如 yum remove
其一,難以刪除
[root@pyyuc /tmp 11:42:01]#rpm -e nginx error: Failed dependencies: nginx is needed by (installed) nginx-mod-mail-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-perl-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-xslt-filter-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-image-filter-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-stream-1:1.12.2-2.el7.x86_64 nginx is needed by (installed) nginx-mod-http-geoip-1:1.12.2-2.el7.x86_64
其二,難以安裝
[root@pyyuc /tmp 11:45:07]#rpm -ivh zsh-5.6.2-9.6.2.aarch64.rpm warning: zsh-5.6.2-9.6.2.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 3dbdc284: NOKEY error: Failed dependencies: ld-linux-aarch64.so.1()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 ld-linux-aarch64.so.1(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libdl.so.2(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libm.so.6(GLIBC_2.17)(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libncursesw.so.6()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64 libtinfo.so.6()(64bit) is needed by zsh-5.6.2-9.6.2.aarch64
yum命令
yum命令是在Fedora和RedHat以及SUSE中基於rpm的軟件包管理器,它可使系統管理人員交互和自動化地更細與管理RPM軟件包,可以從指定的服務器自動下載RPM包而且安裝,能夠自動處理依賴性關係,而且一次安裝全部依賴的軟體包,無須繁瑣地一次次下載、安裝。
儘管 RPM 可以幫助用戶查詢軟件相關的依賴關係,但問題仍是要運維人員本身來解決, 而有些大型軟件可能與數十個程序都有依賴關係,在這種狀況下安裝軟件會是很是痛苦的。 Yum 軟件倉庫即是爲了進一步下降軟件安裝難度和複雜度而設計的技術。Yum 軟件倉庫能夠 根據用戶的要求分析出所需軟件包及其相關的依賴關係,而後自動從服務器下載軟件包並安 裝到系統。
Yum 軟件倉庫中的 RPM 軟件包能夠是由紅帽官方發佈的,也能夠是第三方發佈的,當 然也能夠是本身編寫的。
對比windows下的軟件管理工具
yum提供了查找、安裝、刪除某一個、一組甚至所有軟件包的命令,並且命令簡潔而又好記。
yum(選項)(參數)
-h:顯示幫助信息;
-y:對全部的提問都回答「yes」;
-c:指定配置文件;
-q:安靜模式;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-R:設置yum處理一個命令的最大等待時間;
-C:徹底從緩存中運行,而不去下載或者更新任何頭文件。
實例
部分經常使用的命令包括: 自動搜索最快鏡像插件 yum install yum-fastestmirror
什麼是yum源?
yum源的目錄
#進入yum源目錄 cd /etc/yum.repos.d/ #查看yum源文件 ls -l
配置阿里雲yum源
1.好習慣,備份yum源 mkdir repo_bak mv *.repo repo_bak/
2.下載阿里雲repo文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3.清空yum緩存而且生成新的yum緩存
yum clean all
yum makecache
4.安裝軟件擴展源
yum install -y epel-release
yum repolist all 列出全部倉庫 yum list all 列出倉庫全部軟件包 yum info 軟件包名 查看軟件包信息 yum install 軟件包名 安裝軟件包 yum reinstall 軟件包名 從新安裝軟件包 yum update 軟件包名 升級軟件包 yum remove 軟件包名 移除軟件包 yum clean all 清楚全部倉庫緩存 yum check-update 檢查能夠更新的軟件包 yum grouplist 查看系統中已安裝的軟件包 yum groupinstall 軟件包組 安裝軟件包組
若是你們以前學習或者使用過RHEL6系統,應該已經習慣了service、chkconfig等命令來管理系統服務,
可是在RHEL7系統中改變了systemctl來管理系統服務。
設置開機啓動相關
/etc: 這個目錄用來存放全部的系統管理所須要的配置文件和子目錄。
#網卡配置文件 /etc/sysconfig/network-script/ifcfg-eth0
#修改機器名以及網卡,網管等配置
/etc/sysconfig/network #linux的dns客戶端配置文件,實現域名和ip的互相解析 /etc/resolv.conf
#本地dns解析文件,設定ip和域名的對應解析,開發測試最經常使用的臨時域名解析
/etc/hosts/
#系統全局環境變量永久生效的配置文件,如PATH等
/etc/profile
#用戶的環境變量
~/.bash_profile
~/.bashrc
#存放可執行程序的目錄,大可能是系統管理命令
/usr/sbin
#存放用戶自編譯安裝軟件的目錄 > 等同於C:\Program files (windows)
/usr/local
#關於處理器的信息,還能夠top指令查看
/proc/cpuinfo
#查看內存信息,還能夠free -m
/proc/meminfo
#安裝此軟件,便可拖拽上傳下載linux代碼到windows
yum install lrzsz
1.yum報錯 Error couldn't resolve host 'mirrorlist.centos.org' 2.ping www.baidu.com 看是否能上網 3.若是百度不通,ping ip通了 ping 119.29.29.29 ,說明dns有問題
摘抄自:超哥博客 https://www.cnblogs.com/pyyu/articles/9355477.html