[linux發展史]
一、貝爾實驗室 unix 起初免費開源 ---> 伯利克大學 BSD UNIX -->後來收費後--->出現freeBSD --->再後來發展成linux及其衆多版本,如今經常使用的centos redhatphp
二、vmware 虛擬機的安裝
三、centos安裝包的下載及安裝,注意linux的分區,/boot (通常200M足夠)啓動分區, / (10G,若是不配置,默認爲剩餘所有空間)根分區 swap(2G)交換分區 ,相似於windows的虛擬內存,大小通常 爲真實內存的1.5到2倍
四、安裝時注意選擇自定義,默認最小安裝只有300多個包,把基本的開發工具包也選上,有1000多個。
五、橋接和nat及僅主機的區別
六、認證rhcsa (系統管理員) rhce 工程師 rhca 架構師
七、爲何要學習linux 90%的互聯網企業服務器都使用的linux ,由於其開源,免費,windows的服務器須要受權費用。
八、安裝linux系統後,網絡沒有通,檢查了vmware的虛擬網絡編輯器,橋接選的自動沒有選到本機網卡致使html
[基本命令]java
rpm -q centos-release | lsb_release -a | uname -r | uname -a | cat /proc/version -- 查看操做系統相關信息mysql
mkdir /var/temp/nginx -p -- 建立多級目錄linux
cp -r html html81 --複製文件或文件夾nginx
mv zoo_sample.cfg zoo.cfg --修改文件名c++
rm -rf filename or directory --刪除文件或目錄web
hostnamectl set-hostname qfdqxny -- 修改主機名redis
netstat -tunlp|grep 3306 --查看佔用指定端口號的進程 sql
ps aux|grep nginx --查看進程信息
kill -s 9 pid -- 關閉指定進程
ls |wc -l --統計ls結果的行數
ll |grep "^d"|wc -l --查詢目錄的個數
ll |grep "^-"|wc -l --查詢文件的個數
tail -n tail -f head -n -- tail 、head的用法
yum install lrzsz --上傳下載工具包
date '+%F' --查看系統時間
hwclock --查看硬件時間
ls /proc/pid/fd --查看指定進程都打開了哪些文件,fd 文件描述符
0 標準輸入 (鍵盤) 1 標準輸出(顯示器) 2 (標準錯誤 ) ulimit -n ,默認1024,調優時用,能夠查詢或臨時修改一個進程最大打開的文件數
輸出重定向 : > 覆蓋 >>追加 和1>等價,只是1被省略了。 2>錯誤信息重定向,這個2不能夠省略,
輸入重定向:< << <經常使用於mysql數據庫的恢復 <<常和EOF結合使用. 和0<等價,0省略了,
shell 腳本中 >/dev/null 2>&1 錯誤輸出和標準輸出都不保存,直接扔到/dev/null
dd if=/dev/zero of=b.txt bs=1M count=50 生成一個50M的空文件
> a.txt 清空a.txt 的內容
df -h | tee disk.log 標準輸出磁盤信息的同時,寫入disk.log文件中,適合記錄日誌
df -h | tee -a disk.log 追加
df -h free -h ip addr
which cd -- 查找可執行程序的位置
whereis cd --查找可執行程序的位置及相關文件的位置,比上面的詳細點
grep
find
[ip地址配置相關]
NetworkManager -- 此服務爲centos7下管理網絡的一個服務,具體功能沒用過,之後補充
不一樣的linux 版本對於網卡接口標識不一樣,這裏以centos7下的ens33 爲例
ifconfig ens33 -- 查看指定接口的網絡配置
ifconfig ens33 192.168.0.22 -- 臨時改變ip 地址
ifconfig ens33:1 192.168.0.22 -- 同一塊網卡添加多個ip
ifconfig ens33:1 del 192.168.0.22 -- 刪除臨時的ip
systemctl restart network -- 重啓網絡服務,臨時指定的ip 失效
相關配置文件
nmtui -- 圖形化界面來修改ip
/etc/sysconfig/network-scripts/ifcfg-ens33 -- 經過修改此配置文件來修改ip,永久生效
/etc/resolv.conf -- dns 配置文件
/etc/hostname -- 主機名配置文件
/etc/hosts -- ip 和域名映射文件,windows下也有此文件
nmcli con --查看網卡的UUID
[防火牆相關]
systemctl [status,start,restart,stop,enable,disable] firewalld --查看狀態,啓動,重啓,中止,開機啓動,開機禁用
[service iptables stop chkconfig iptables off --屬於centos6的寫法,瞭解便可,用時再查]
systemctl list-unit-files | grep enable -- 查看開機都啓動了哪些服務
firewall-cmd --state --查看防火牆是否正在運行。
firewall-cmd --list-ports --查看防火牆都放行哪些端口
firewall-cmd --query-port=3306/tcp --查看指定tcp 端口是否放行
firewall-cmd --zone=public --add-port=3306/tcp --permanent --防火牆永久放行3306端口,重啓不失效
firewall-cmd --zone=public --remove-port=3306/tcp --permanent --從防火牆public區域移除指定端口
firewall-cmd --reload --上述添加上刪除端口操做,須要此命令從新加載配置才能生效
[selinux相關]
getenforce --查看selinux服務的狀態
setenforce 0 --臨時關閉selinux
setenforce 1 --臨時開啓selinux服務
vi /etc/selinux/config 更改selinux=disabled --修改配置文件,永久關閉selinux ,重啓生效
備註:線上服務器通常也不用開這個服務,使用配置比較複雜
[掛載光驅到指定目錄]
mount /dev/sr0 /mnt/ --掛載,重啓失效
echo '/dev/cdrom /mnt iso9660 defaults 0 0' >> /etc/fstab --修改配置文件,開機自動掛載
umount /mnt --卸載目錄
mount -a --從新掛載配置文件中還沒有掛載的設備
備註:/dev/cdrom 和 /dev/sr0 二者等價,/dev/cdrom 是sr0的軟連接
[yum 源相關]
手寫一個yum源, 格式以下:
[centos7]
name=centos7-liuping-repo
baseurl=file:///mnt
enable=1
gpgcheck=0 --檢查包的完整性和安全性,爲0表示不用檢查,由於是本地光盤中的
全部yum 源配置文件的目錄:/etc/yum.repos.d
yum repolist -- 查看yum源可用的軟件包列表
CentOS-Base.repo -- 系統自帶的yum源配置文件
yum search ifconfig | yum provides */ifconfig -- 兩種方式均可以查找命令應該安裝哪一個軟件包 ,一個很差使,用另外一個
[免密ssh登陸]
ssh-keygen -t rsa
在grid用戶的主目錄下(/home/grid)運行此命令, 會生成.ssh目錄(隱藏目錄)並在及下面生成公鑰和私鑰(id_rsa id_rsa.pub)
ssh-copy-id h1
把本身生成的公鑰copy到h1上的authorized_keys文件中去
scp authorized_keys h2:/home/grid/.ssh scp -r(遞歸複製目錄)
把h1上合併後的authorized_keys文件複製到h2和h3上,首次訪問仍是須要輸入密碼。之後就能夠免密互相鏈接。
完成免密登陸
[80重定向到8080端口]
[壓縮歸檔]
一、 tar -cvf test.tar file 歸檔
tar -xvf test.tar 解壓 -C 解壓到指定目錄
二、 tar -zcvf test.tar.gz file gzip 方式壓縮
tar -zxvf test.tar.gz gzip方式解壓
三、tar -jcvf test.tar.bz2 file bz2方式壓縮
tar -jxvf test.tar.bz2 bz2方式解壓
四、tar -Jcvf test.tar.xz file xz方式壓縮
tar -Jxvf test.tar.xz xz方式解壓
五、zip -r test.zip file zip要壓縮目錄時,須要-r參數
unzip test.zip zip方式解壓 ,-d 解壓到指定目錄
xz的壓縮比例最高,壓縮速度就相對慢
bz2比gzip 的壓縮比例也高一些,但gzip 壓縮速度最快. 經常使用bz2 或gzip 均可以。
du -sh /etc/ 查看目錄下文件及子目錄佔用空間大小
[磁盤管理]
硬盤接口分類: sas sata ssd scsi ide
兩種分區表 MBR GPT
swap分區:當前系統的物理內存不夠用時,把硬盤空間騰出一部分當內存使用。(實戰擴展swap分區,沒啥實際用處。先不看)
[文件權限]
chattr +i hack.txt lsattr hack.txt chattr -i hack.txt ( 6版本之後加的擴展屬性 ,參數能夠跟a 或 i a表明只能夠追加, i 表明不能夠作任何修改)
chmod -R 777 logs/ --改變文件權限
chown -R grid:grid hive -- 改變文件屬主和屬組
[tomcat]
部署時tomcat啓動緩慢,解決以下:
修改jvm $JAVA_PATH/jre/lib/security/java.security
把securerandom.source=file:/dev/urandom 替換爲 securerandom.source=file:/dev/./urandom 便可
[jdk安裝]
官網下載jdk rpm 包或者源碼包
rpm -ivh rpm包 ,若爲源碼包直接解壓
/etc/profile文件中加入如下配置項:
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile --刷新配置文件
[redis]
一、yum install gcc-c++
二、上傳、解壓
三、make MALLOC=libc PREFIX=/usr/local/redis install
若是不帶prefix參數,默認安裝路徑是/usr/local/bin
四、複製解壓文件夾下的redis.conf到安裝目錄,修改daemonize爲yes (後臺運行)
修改bind 127.0.0.1 爲0.0.0.0 否則只限於本機使用.6379端口不通。
五、redis-server redis.conf --啓動redis服務
六、redis-cli 登陸後 shutdown --中止redis服務
七、6379端口防火牆放行,若是隻是本機使用,則不用放行
八、./bin/redis-cli --raw redis-cli遠程登陸時,get鍵時會中文亂碼,解決辦法:登陸時加參數
九、chcp 65001 改變cmd頁面編碼爲utf8 chcp 936 改成gbk
[apache]
apache 主目錄 /etc/httpd 配置文件目錄 /etc/httpd/conf/httpd.conf 網站目錄/var/www/html ssl.conf文件位於/etc/httpd/conf.d目錄下
一、yum install epel-release
二、rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
三、
yum install -y mod_php72w php72w-common php72w-fpm php72w-opcache php72w-gd php72w-mysqlnd php72w-mbstring php72w-pecl-redis php72w-pecl-memcached php72w-devel
四、配置httpd.conf 文件
<Directory /> 下 Require all denied 改成Require all granted
<IfModule dir_module> 下面加入 index.php
<IfModule mime_module> 下面加入AddType application/x-httpd-php .php
<Directory "/var/www/html"> 下的Options Indexes FollowSymLinks 去掉Indexes
五、yum -y install mod_ssl
六、在ssl.conf中配置虛擬主機和https 證書