linux 學習總結

[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端口]

  1. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
  2. iptables-save >/etc/iptables-script
  3. echo '/sbin/iptables-restore /etc/iptables-script' >>/etc/rc.d/rc.local
  4. chmod +x /etc/rc.d/rc.local

[壓縮歸檔]

  一、 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分區,沒啥實際用處。先不看)

  1. 查看全部磁盤               fdisk -l      或者  ls  /dev/vd*
  2. 分區                             fdisk   /dev/vdb  (m,n,p,默認默認,wq)
  3. 格式化                          mkfs.ext4 /dev/vdb1   使用xfs 或ext4 文件系統均可以  centos7 建議使用xfs文件系統
  4. 掛載                        mount /dev/vdb1 /mnt/data
  5. 開機掛載                      echo /dev/vdb1 /mnt/data ext4 defaults 0 0 >> /etc/fstab
  6. 卸載                             umount /mnt/data,若是報錯,說明磁盤正在使用, lsof  /mnt/data 查看誰在用這個磁盤,結束掉相關進程,而後再卸載
  7. blkid                             查看每一個分區的uuid
  8. mount -a                      不用重啓, 自動掛載fstab文件中沒有掛載的分區
  9. gdisk                            大於2t的磁盤,fdisk就搞不定了,須要使用這個命令 ,用法基本和fdisk一致
  10. wipefs  -a /dev/vdb  刪除全部分區

[文件權限]

  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 證書

相關文章
相關標籤/搜索