ifconfig // 查看ip地址 ip addr // 如何不支持,那個可使用 vi /etc/sysconfig/network-scripts/ifcfg-xx // 好比lo eth0 什麼的,把ONBOOT=no 改爲yes就開始網卡 yum install net-tools // 安裝就能夠用ipconfig了
http://mirrors.163.com/.help/centos.html 教程php
第一步首: 先備份/etc/yum.repos.d/CentOS-Base.repohtml
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
第二步: 下載對應版本repo文件, 放入/etc/yum.repos.d/vue
cd /etc/yum.repos.d/ ls wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
第三步: 運行如下命令生成緩存java
yum clean all yum makecache
安裝SSHpython
yum install openssh-server
啓動mysql
service sshd start
設置開機啓動linux
chkconfig sshd on
SSH是典型的客戶端與服務端的交互模式,客戶端普遍的支持各個平臺nginx
ssh root@140.143.244.18 就登陸了 帳號@ip
host "jia" HostName 192.168.0.106 User root Port 22 host "jia2" HostName 192.168.0.106 User root Port 22
ssh jia 就能夠直接登陸了jia那個ip的服務器
生成git
ssh-keygen -t rsa ssh-keygen -t dsa
authorized_keys 那個文件新建在.ssh 下面加上公鑰就能夠免密登陸 在linex上須要ssh-add ~/.ssh/imooc_rsa 添加到空間
默認端口22
避免被別人利用,改默認端口web
修改/etc/ssh/shh_config的配置 Port 2222 而後重啓 service sshd restart
軟件操做
安裝的軟件:yum 安裝:yum install xxx 卸載:yum remove xxx 搜索:yum search xxx 清理緩存:yum clean packages 列出已安裝:yum list 軟件包信息:yum info xxx
服務器強件資源和磁盤操做
內存:free -m 用m來展現g就是g 硬盤:df -h 能夠看懂的形式 負載:w/top cpu個數和核數 cat /proc/cpuinfo fdisk命令用於觀察硬盤實體使用狀況,也可對硬盤分區 文件的操做命令 ls touch mkdir mkdir -p c/d/s 就能夠循環建立 cd rm 刪除文件和目錄 rm -rf 刪除非空文件 cp 複製 mv 移動 mv ./chen.log ~/ 移動到家目錄 重命名 mv ./chen.log ./j.log pwd
文件和文件夾操做命令
根目錄 / 家目錄 /home 當前用戶的家目錄 ~ 臨時目錄 /tmp 配置目錄 /etc 用戶程序目錄 /usr
vim
用戶權限421rwx 讀寫執行
chmod
文件搜索、查找、讀取
tail 從文件尾部開始讀 head 從文件頭部讀 cat 讀取整個文件 more 分頁讀取 less 可控分頁 grep 搜索關鍵詞 grep "a" j.log 在文件中搜索 -n就是統計 find 查找文件 find . -name "*.vue" 將目前目錄及其子目錄下全部延伸檔名是vue的文件列出來 find . -type f 將目前目錄其其下子目錄中全部通常文件列出 d: 目錄c: 字型裝置文件b: 區塊裝置文件p: 具名貯列f: 通常文件l: 符號連結s: socket find . -ctime -20 將目前目錄及其子目錄下全部最近 20 天內更新過的文件列出 find /var/log -type f -mtime +7 -ok rm {} \; 查找/var/log目錄中更改時間在7日之前的普通文件,並在刪除以前詢問它們,能夠用於目錄操做 find . -type f -perm 644 -exec ls -l {} \; 查找前目錄中文件屬主具備讀、寫權限,而且文件所屬組的用戶和其餘用戶具備讀權限的文件 find / -type f -size 0 -exec ls -l {} \; 爲了查找系統中全部文件長度爲0的普通文件,並列出它們的完整路徑 wc 統計個數 cat j.log | wc -l 統計出行數 grep "a" j.log | wc -l
壓縮命令
-c: 創建壓縮檔案 -x:解壓 -t:查看內容 -r:向壓縮歸檔文件末尾追加文件 -u:更新原壓縮包中的文件 -z:有gzip屬性的 -j:有bz2屬性的 -Z:有compress屬性的 -v:顯示全部過程 -O:將文件解開到標準輸出 參數 -f 是必須的: -f: 使用檔案名字,切記,這個參數是最後一個參數,後面只能接檔案名。 壓縮 tar –cvf jpg.tar *.jpg // 將目錄裏全部jpg文件打包成 tar.jpg tar –czf jpg.tar.gz *.jpg // 將目錄裏全部jpg文件打包成 jpg.tar 後,而且將其用 gzip 壓縮,生成一個 gzip 壓縮過的包,命名爲 jpg.tar.gz tar –cjf jpg.tar.bz2 *.jpg // 將目錄裏全部jpg文件打包成 jpg.tar 後,而且將其用 bzip2 壓縮,生成一個 bzip2 壓縮過的包,命名爲jpg.tar.bz2 tar –cZf jpg.tar.Z *.jpg // 將目錄裏全部 jpg 文件打包成 jpg.tar 後,而且將其用 compress 壓縮,生成一個 umcompress 壓縮過的包,命名爲jpg.tar.Z rar a jpg.rar *.jpg // rar格式的壓縮,須要先下載 rar for linux zip jpg.zip *.jpg // zip格式的壓縮,須要先下載 zip for linux 解壓 tar –xvf file.tar // 解壓 tar 包 tar -xzvf file.tar.gz // 解壓 tar.gz tar -xjvf file.tar.bz2 // 解壓 tar.bz2 tar –xZvf file.tar.Z // 解壓 tar.Z unrar e file.rar // 解壓 rar unzip file.zip // 解壓 zip 總結 一、*.tar 用 tar –xvf 解壓 二、*.gz 用 gzip -d或者gunzip 解壓 三、*.tar.gz和*.tgz 用 tar –xzf 解壓 四、*.bz2 用 bzip2 -d或者用bunzip2 解壓 五、*.tar.bz2用tar –xjf 解壓 六、*.Z 用 uncompress 解壓 七、*.tar.Z 用tar –xZf 解壓 八、*.rar 用 unrar e解壓 九、*.zip 用 unzip 解壓
系統用戶操做命令
useradd 添加用戶 adduser 添加用戶 userdel 刪除用戶 passwd 設置密碼
防火牆設置
iptables命令是Linux上經常使用的防火牆軟件 安裝 yum install firewalld 啓動 service firewalld start 檢查狀態 service firewalld status 關閉或禁用防火牆 service firewalld stop/disable iptables(選項)(參數) -t<表>:指定要操縱的表; -A:向規則鏈中添加條目; -D:從規則鏈中刪除條目; -i:向規則鏈中插入條目; -R:替換規則鏈中的條目; -L:顯示規則鏈中已有的條目; -F:清楚規則鏈中已有的條目; -Z:清空規則鏈中的數據包計算器和字節計數器; -N:建立新的用戶自定義規則鏈; -P:定義規則鏈中的默認目標; -h:顯示幫助信息; -p:指定要匹配的數據包協議類型; -s:指定要匹配的數據包源ip地址; -j<目標>:指定要跳轉的目標; -i<網絡接口>:指定數據包進入本機的網絡接口; -o<網絡接口>:指定數據包要離開本機所使用的網絡接口。
提權操做sudo和文件傳輸操做
提權:sudo visudo編輯 下載 wget curl 文件上傳 scp scp j.log chenjinxinlove@192.168.0.106:/tmp/ 上傳到那個目錄了
安裝 yum install httpd 啓動 service httpd start 中止 service httpd stop 配置文件 /etc/httpd/conf
CentOS7默認安裝mariadb數據庫 yum remove mariadb-libs.x86_64 下載MYsql源 https://dev.mysql.com/downloads/repo/yum/ cd /tmp/ wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 安裝源 yum localinstall mysql57-community-release-el7-8.noarch.rpm 安裝服務器 yum install mysql-community-server 默認密碼查找 cat /var/log/mysqld.log | grep "password" 啓動 service mysqld start/restart 中止 service mysqld stop 鏈接 mysql -uroot -p 密碼 遠程鏈接 開啓Genelog set global general_log_file="/tmp/genetal.log";//設置文件路徑 set global general_log="on";// 開啓 新建用戶和權限操做 忘記root密碼怎麼辦
安裝 yum install memcached 啓動 memcached -d(守護進行) -l(支持的ip) -m(分配多少內存) -p (端口號11211) 中止 kill pid
安裝 源碼編譯安裝 啓動 redis-server start/restart 中止 redis-server stop 客戶端 redis-client // 下載到/tmp目錄 獲取源碼 wget http://download.redis.io/releases/redis-4.0.11.tar.gz 解壓 tar xvfz redis-4.0.11.tar.gz cd src && ls 啓動 ./redis-server
安裝 yum install git git 命令自動補全設置
略
yum -y isntall java-1.8.0 -openjdk java -version 查看版本
官網下載,源碼編譯安裝 https://tomcat.apache.org/ wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.10/bin/apache-tomcat-9.0.10.tar.gz 啓動到tomcat的目錄sh start.sh cd /tmp/apache-tomcat-9.0.10/bin/ bootstrap.jar ciphers.bat configtest.bat digest.sh shutdown.sh tomcat-native.tar.gz version.sh catalina.bat ciphers.sh configtest.sh setclasspath.bat startup.bat tool-wrapper.bat catalina.sh commons-daemon.jar daemon.sh setclasspath.sh startup.sh tool-wrapper.sh catalina-tasks.xml commons-daemon-native.tar.gz digest.bat shutdown.bat tomcat-juli.jar version.bat
官網下載,源碼編譯安裝 https://maven.apache.org/ wget http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 解壓 tar xvfz apache-maven-3.5.4-bin.tar.gz 創建軟鏈接 ln -s /tmp/apache-maven-3.5.4/bin/mvn /usr/local/bin/ 或 可是要使用絕對路徑 ln -s /tmp/apache-maven-3.5.4/bin/mvn /usr/bin/
yum install python2-pip 換成豆瓣源 mkdir ~/.pip vim ~/.pip/pip.conf [global] timeout=60 index-url = https://pypi.tuna.tsinghua.edu.cn/simple
pip install virtualenv
ntpdate cn.pool.ntp.org
/etc/logrotate.d 目錄下 [root@VM_0_4_centos logrotate.d]# ls 2017-08-29 bootlog chrony httpd mysql nginx ppp syslog wpa_supplicant yum [root@VM_0_4_centos logrotate.d]# cat nginx /var/log/nginx/*.log { daily missingok rotate 52 compress delaycompress notifempty create 640 nginx adm sharedscripts postrotate if [ -f /var/run/nginx.pid ]; then kill -USR1 `cat /var/run/nginx.pid` fi endscript } [root@VM_0_4_centos logrotate.d]# pwd
pip install supervisor
官網 https://www.zabbix.com/
安裝 https://www.zabbix.com/download
RPM包默認安裝的服務
獨立服務
啓動 使用/etc/init.d/ 目錄中腳本啓動服務如:/etc/init.d/httpdstart/stop/restart 使用servide命令啓動服務如:service httpd start|stop|restart 自啓動 使用chkconfig命令來管理自啓動如:chkconfig --level 2345 httpd on | off 修改/etc/rc.local文件,如vi/etc/rc.d/rc.local 加入 /etc/init.d/httpd start 使用ntsysv命令管理服務自啓動
源碼包安裝的服務
啓動 使用源碼包啓動腳本啓動服務:如 /usr/local/apache2/bin/apachect| start 自啓動 自能修改/etc/rc.loacl文件
進程管理
進程查看
ps aux USER:該進程屬於那個使用者帳號的? • PID :該進程的進程ID號。 • %CPU:該進程使用掉的 CPU 資源百分比; • %MEM:該進程所佔用的物理內存百分比; • VSZ :該進程使用掉的虛擬內存量 (Kbytes) • RSS :該進程佔用的固定的內存量 (Kbytes) • TTY :該進程是在那個終端機上面運做,若與終端機無關,則顯示 ?,另外, tty1-tty6 是本機上面的登入者程序,若爲 pts/0 等等的,則表示爲由網絡鏈接進主機的程序。 • STAT:該程序目前的狀態,主要的狀態有: R :該程序目前正在運做,或者是可被運做; S :該程序目前正在睡眠當中 (可說是 idle 狀態啦!),但可被某些訊號(signal) 喚醒。 T :該程序目前正在偵測或者是中止了; Z :該程序應該已經終止,可是其父程序卻沒法正常的終止他,形成 zombie (疆屍) 程序的狀態 • START:該進程被觸發啓動的時間; • TIME :該進程實際使用 CPU 運做的時間。 • COMMAND:該程序的實際指令爲何? ps -le pstree -p 顯示進程pid -u 顯示進程的所屬用戶
查看系統監控健康狀態
選項 -d讀秒:指定top命令每隔幾秒更新,默認3秒 -b :使用批處理模式輸出。通常和-n選項合用 -n 次數:指定top命令執行的次數。通常和-b一塊兒使用 top命令的交互模式當中能夠執行的命令 h幫助 P: 以cpu使用頻率排序,是默認的 M:之內存的使用率排序 N:以pid排序 q:退出top 殺死進程 kill【選項】【信號】進程名 選項 -t 信號:kill -l SIGHUP 1 從新讀取配置文件,而後重啓 SIGKILL 9 強制殺死 killall/pkill 根進程名 來殺死所有進程 -i 交互氏 pkill -t 能夠根據終端號,只有root能夠踢用來提出終端用戶 w 命令來查看登陸那些用戶,而後在提出 修改進程的優先級
命令後面很 &能夠放入後臺,可是綁定終端號,不能有交互的命令,使用jobs命令查看 使用ctrl + z是在後臺暫定的 jobs [-l] -l是查看工做的pid的。+是最近一個放入的後臺的程序,-是倒數第二個 fg % 工做號 恢復到前臺 bg % 工做號 回到後臺去 後臺命令脫離登陸終端執行的方法 第一種,把執行的命令加倒入/etc/rc.local文件中開機自啓動 加入到定時任務中 使用nohup命令 系統資源查看
at一次性定時任務
肯定at安裝 chkconfig --list | grep atd at服務是否安裝 service atd restart at服務的啓動 at的訪問控制 若是系統中有/etc/at.allow文件,那麼只有寫入/etc/at.allow文件(白名單)中的用戶可使用at命令(/etc/at.deny文件會被忽略) 若是系統中沒有/etc/at.allow文件,只有/etc/at.deny文件,那麼寫入/etc/at.deny(黑名單)中的用戶不能使用at命令。對root不起做用 若是都不存在,只能root用戶來操做 at命令 通常直接加時間 HH:MM 02:30 HH:MM YYYY-MM-DD 02:30 2013-07-25 HH:MM[am|pm] [month] [date] 02:30 july 25 HH:MM[am|pm]+[minutes|hours|days|weeks] 例子1 at now +2 minutes 在兩分鐘以後執行hello.sh腳本 at> /root/hello.sh atq:查看正在容許的at命令 例子2: at 02:00 2013-07-26 在指定的時間重啓 at> /bin/sync at> /sbin/shutdown -r now
crontab循環定時任務
也存在cron.allow和cron.deny的白黑名單 選項 -e 編輯crontab定時 -l 查詢crontab任務 -r 刪除當前用戶全部的crontab任務 系統的crontab設置 crontab -e 進入編輯界面, ***** 執行的任務 第一個* 一小時當中第幾分鐘 0-59 第二個* 一天當中的第幾個小時 0-23 第三個* 一個月當中的第幾天 1-31 第四個 * 一年當中的第幾個月 1-12 第五個* 一週當中的星期幾 0-7 (0和7都表明星期日) 特殊符合 *表明任意時間,第一個*就是一個小時每分鐘都執行一次的意思 , 表明不連續的時間,好比「0, 8,12,16 ***」 ,就表明在天天的8點0分,12點0分,16點0分都執行一次 - 表明連續的時間範圍,好比「0 5 * * 1-6」 表明在週一到週六的凌晨5點0分執行命令 */n 表明每一個多久執行一次 好比 */10 * * * * ,表明每隔10分鐘就執行一遍命令 例子: 45 22 * * * 表明在22點45分執行 0 17 * * 1 表明每週一的17點0分執行 0 5 1,15 * * 表明每個月1號和15號的凌晨5點0分執行命令 */10 4 * * * 表明 天天的凌晨4點,每隔十分鐘執行一次 0 0 1,15 * 1 表明1號15號,每週1的0點0分都會執行:注意周不要和月混在一塊兒 設置 有些定時任務須要系統執行,這時咱們就須要編輯/etc/crontab這個配置文件 系統定時任務 第一種是須要定時執行的腳本複製到/etc/cron.{daily,weekly,monthly}目錄下 第二種修改/etc/crontab配置文件 anacron配置 因爲服務器等緣由,沒有執行定時任務,開機以後會在次執行定時任務 anacron會使用一天,七天,一個月做爲檢測週期 在系統的/var/spool/anacron/目錄中存在cron.{daily,weekly,monthly}文件,用於記錄上次執行cron的時間 和當前時間作比較,若兩個時間的插值超過了anacron的指定時間差,證實有cron任務錯過執行 配置文件 /etc/anacrontab
vmstat[刷新延時 刷新次數] 命令監控系統資源: 例如vmstat 1 3 r 表示運行隊列(就是說多少個進程真的分配到CPU),我測試的服務器目前CPU比較空閒,沒什麼程序在跑,當這個值超過了CPU數目,就會出現CPU瓶頸了。這個也和top的負載有關係,通常負載超過了3就比較高,超過了5就高,超過了10就不正常了,服務器的狀態很危險。top的負載相似每秒的運行隊列。若是運行隊列過大,表示你的CPU很繁忙,通常會形成CPU使用率很高。 b 表示阻塞的進程,這個很少說,進程阻塞,你們懂的。 swpd 虛擬內存已使用的大小,若是大於0,表示你的機器物理內存不足了,若是不是程序內存泄露的緣由,那麼你該升級內存了或者把耗內存的任務遷移到其餘機器。 free 空閒的物理內存的大小,個人機器內存總共8G,剩餘3415M。 buff Linux/Unix系統是用來存儲,目錄裏面有什麼內容,權限等的緩存,加速讀取 cache cache直接用來記憶咱們打開的文件,給文件作緩衝, 加速寫入 si 每秒從磁盤讀入虛擬內存的大小,若是這個值大於0,表示物理內存不夠用或者內存泄露了,要查找耗內存進程解決掉。個人機器內存充裕,一切正常。 so 每秒虛擬內存寫入磁盤的大小,若是這個值大於0,同上。 bi 塊設備每秒接收的塊數量,這裏的塊設備是指系統上全部的磁盤和其餘塊設備,默認塊大小是1024byte,我本機上沒什麼IO操做,因此一直是0,可是我曾在處理拷貝大量數據(2-3T)的機器上看過能夠達到140000/s,磁盤寫入速度差很少140M每秒 bo 塊設備每秒發送的塊數量,例如咱們讀取文件,bo就要大於0。bi和bo通常都要接近0,否則就是IO過於頻繁,須要調整。 in 每秒CPU的中斷次數,包括時間中斷 cs 每秒上下文切換次數,例如咱們調用系統函數,就要進行上下文切換,線程的切換,也要進程上下文切換,這個值要越小越好,太大了,要考慮調低線程或者進程的數目,例如在apache和nginx這種web服務器中,咱們通常作性能測試時會進行幾千併發甚至幾萬併發的測試,選擇web服務器的進程能夠由進程或者線程的峯值一直下調,壓測,直到cs到一個比較小的值,這個進程和線程數就是比較合適的值了。系統調用也是,每次調用系統函數,咱們的代碼就會進入內核空間,致使上下文切換,這個是很耗資源,也要儘可能避免頻繁調用系統函數。上下文切換次數過多表示你的CPU大部分浪費在上下文切換,致使CPU幹正經事的時間少了,CPU沒有充分利用,是不可取的。 us 用戶CPU時間,我曾經在一個作加密解密很頻繁的服務器上,能夠看到us接近100,r運行隊列達到80(機器在作壓力測試,性能表現不佳)。 sy 系統CPU時間,若是過高,表示系統調用時間長,例如是IO操做頻繁。 id 空閒 CPU時間,通常來講,id + us + sy = 100,通常我認爲id是空閒CPU使用率,us是用戶CPU使用率,sy是系統CPU使用率。 wt 等待IO CPU時間 dmesg 看內核自檢測信息 dmesg grep | CPU 查看cpu的信息。能夠用來查看硬件信息 free[-b|-k|-m|-g] 以b、k、m、g來顯示,顯示內存狀態 total used free shared buffers cached Mem: 7872 1806 6066 0 172 1177 -/+ buffers/cache: 456 7416 Swap: 0 0 0 cat /proc/cpuinfo 查看cpu的信息 uptime查看系統當前時間等,就是top的第一行 10:31:42 up 54 days, 15:48, 1 user, load average: 0.00, 0.00, 0.00 查看內核相關的信息 uname -a 查看系統全部相關信息 -r 查看內核版本 -s 查看內核名稱 file /bin/ls 來查看系統位數 /bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped lsb_release -a 查看發行版本 LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.8 (Final) Release: 6.8 Codename: Final lsof命令 lsof | more 查看系統中全部進程調用的文件 lsof /sbin/init 查詢摸個文件被那個進程調用 lsof -c httpd 查看httpd進程調用了那些文件 lsof -u root 根據用戶名,查詢某用戶的進程調用的文件名