<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      阿銘linux筆記

      2015-09-06虛擬機網絡設置.wmv:
      curl     獲取在命令行顯示的網頁
      dhclient     分配ip地址
      ifdown eth0     關閉網卡eth0
      ifup eh0     開啟網卡eth0
      ifconfig -a     查看所有網卡設備
      service network restart
      dhclient   獲取ip命令
      rout -n     查看網關
              命令行光標移動快捷鍵:
      Ctrl+a     移動光標到行首
      Ctrl+e     移動光標到行尾
      linux里面root為最高權限用戶
       
      centos 進入命令行 ctrl+alt+f2
      在命令行下 Ctrl+Alt+F2進入圖形界面

       

      安裝php時缺少的庫:
      yum install -y libxml2-devel openssl openssl-devel bzip2 bzip2-devel libpng libpng-devel freetype freetype-devel curl-devel  libjpeg-devel
       

      linux系統運行級別

      命令:init[0123456]
      運行級別
          0:關機
          1:單用戶   
          2:多用戶狀態沒有網絡服務
          3:多用戶狀態有網絡服務
          4:系統未使用保留給用戶
          5:圖形界面
          6:系統重啟
      常用運行級別是3和5,要修改默認的運行級別可改文件/etc/inittab的id:5:initdefault:這一行中的數字
       

      通過歷史記錄簡化操作:

      ?。?nbsp;       重復前一個命令
      !字符    重復前一個以“字符”開頭的命令
      ?。縜bc    重復之前包含abc的命令
      !-n        重復n個命令之前的那個命令
       
      linux配置ip
               vi /etc/sysconfig/network-scripts/ifcfg-eth0 
                配置如下內容
                DEVICE=eth0
      HWADDR=00:0C:29:16:08:DD
      TYPE=Ethernet
      UUID=0884c1cf-6613-4c57-9a81-fa27b9723fb1
      ONBOOT=no
      NM_CONTROLLED=yes
      BOOTPROTO=static
       
      IPADDR=192.168.1.177
      NETMASK=255.255.255.0
      GATEWAY=192.168.1.1
      DNS1=192.168.1.1
       
      保存退出,service network restart     重啟網絡命令。
       
      Centos普通用戶設置sudo權限
              登陸root用戶執行visudo命令
              找到 root  ALL=(ALL)    ALL下  在下面增加:
             centos ALL=(ALL) ALL
       
      查看centos版本
               登陸root帳戶,輸入 cat  /etc/redhat-release,即可顯示系統版本
               輸入 uname  -r ,可以查詢內核版本。
       
      查看安裝的軟件包
                輸入 cat -n /root/install.log,可顯示系統安裝時所安裝的軟件包列表。(需要root權限)
       
      獲取搜狐源
       
      wget
      基本的語法是:wget [參數列表] URL
      wget -r http://place.your.url/here
      這個命令會按照遞歸的方法,下載服務器上所有的目錄和文件,實質就是下載整個網站。這個命令一定要小心使用,因為在下載的時候,被下載網站指向的所有地址 同樣會被下載,因此,如果這個網站引用了其他網站,那么被引用的網站也會被下載下來!基于這個原因,這個參數不常用。可以用-l number參數來指定下載的層次。例如只下載兩層,那么使用-l 2。
                 要是您想制作鏡像站點,那么可以使用-m參數,例如:wget -m http://place.your.url/here
      這時wget會自動判斷合適的參數來制作鏡像站點。此時,wget會登錄到服務器上,讀入robots.txt并按robots.txt的規定來執行。
       
      wget -c http://the.url.of/incomplete/file
      使用斷點續傳要求服務器支持斷點續傳。-t參數表示重試次數,例如需要重試100次,那么就寫-t 100,如果設成-t 0,那么表示無窮次重試,直到連接成功。-T參數表示超時等待時間,例如-T 120,表示等待120秒連接不上就算超時。
       
      3、批量下載。
      如果有多個文件需要下載,那么可以生成一個文件,把每個文件的URL寫一行,例如生成文件download.txt,然后用命令:wget -i download.txt
      這樣就會把download.txt里面列出的每個URL都下載下來。(如果列的是文件就下載文件,如果列的是網站,那么下載首頁)
       
      經驗:執行系統服務時,需要使用root權限才能執行成功如:service network restart 
                搭建lamp環境
       
      linux jobs
       fg、bg、jobs、&、ctrl + z都是跟系統任務有關的,雖然現在基本上不怎么需要用到這些命令,但學會了也是很實用的
       
      一。& 最經常被用到          這個用在一個命令的最后,可以把這個命令放到后臺執行
      二。ctrl + z                    可以將一個正在前臺執行的命令放到后臺,并且暫停
      三。jobs                        查看當前有多少在后臺運行的命令
      四。fg                            將后臺中的命令調至前臺繼續運行,如果后臺中有多個命令,可以用 fg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
      五。bg                       將一個在后臺暫停的命令,變成繼續執行,如果后臺中有多個命令,可以用bg %jobnumber將選中的命令調出,%jobnumber是通過jobs命令查到的后臺正在執行的命令的序號(不是pid)
      jobs -l          查看后臺任務詳細信息
      kill PIDnumber          殺掉進程
       
           jobs命令執行的結果,+表示是一個當前的作業,減號表是是一個當前作業之后的一個作業,jobs -l選項可顯示所有任務的PID,jobs的狀態可以是running, stopped, Terminated,但是如果任務被終止了(kill),shell 從當前的shell環境已知的列表中刪除任務的進程標識;也就是說,jobs命令顯示的是當前shell環境中所起的后臺正在運行或者被掛起的任務信息;
            進程的掛起 

      后臺進程的掛起: 
      在solaris中通過stop命令執行,通過jobs命令查看job號(假設為num),然后執行stop %num;
      在redhat中,不存在stop命令,可通過執行命令kill -stop PID,將進程掛起;
      當要重新執行當前被掛起的任務時,通過bg %num 即可將掛起的job的狀態由stopped改為running,仍在后臺執行;當需要改為在前臺執行時,執行命令fg %num即可;
      前臺進程的掛起:ctrl+Z
      進程的終止 
      后臺進程的終止:
      方法一:
           通過jobs命令查看job號(假設為num),然后執行kill %num
      方法二:
      通過ps命令查看job的進程號(PID,假設為pid),然后執行kill pid 
      前臺進程的終止:
      ctrl+c
      kill的其他作用 
      kill除了可以終止進程,還能給進程發送其它信號,使用kill -l 可以察看kill支持的信號。 
       
      SIGTERM是不帶參數時kill發送的信號,意思是要進程終止運行,但執行與否還得看進程是否支持。如果進程還沒有終止,可以使用kill -SIGKILL pid,這是由內核來終止進程,進程不能監聽這個信號。          kill -SIGKILL pid kill -SIGKILL pid kill -SIGKILL pid
       
      一、linux系統初講
           2.0單用戶模式
                reboot     重啟 3秒后按任意鍵
                e               移動光標,e鍵進入編輯模式
                選中第二行     按e后,將光標移至最后添加 1 或s 或single。然后回車,最后按b啟動,就進入了單用戶模式
                runlevel          輸入命令 runlevel顯示單用戶模式
                passwd           修改root用戶密碼
                reboot            重啟root密碼已修改
                
           2.1救援模式
                將虛擬機啟動設置為:虛擬機>電源>啟動時進入bios。保存退出
                然后設置啟動順序 將boot 里cdrom 設為第一項
                進入centos 啟動模式選擇第三項 rescue installed system      回車
                選擇語言
                選擇鍵盤模式 us默認
                是否設置網絡
                
           2.3ls命令
                ls          查看當前目錄下的文件
                ll          查看當前目錄下的文件詳細信息
                ll -h           查看當前目錄下的文件詳細信息以M為單位顯示文件大小
                
      二、系統精講
           1.1創建和刪除目錄
           mkdir -pv  /tmp/1/2/3         創建父目錄     -p: parents  父目錄     -v: 可視化
           rmdir 234     (非空目錄不能刪)
           rmdir /tmp/1/2/3
           tree /tmp/1     查看tmp/1 目錄的結構     tree查看目錄結構
           rmdir -pv /tmp/1/2/3     刪除目錄(支持刪除子目錄非空的)     -p: parents  父目錄     -v: 可視化
          
           1.2rm命令
                     rm           -f 強制     -i 安全位 提示 是否刪除     -r 刪除目錄加上-r(如果不加-r刪除目錄內有目錄,提示會略過目錄,不會刪目錄,只會刪目錄里的文件)     -v可視化
                     常用 -i -r -f
                     rm -fr 123 刪除目錄沒有提示
                     rm -rfv 123 不會提示
                     
           1.3cp命令
                     cp 拷貝文件     (在同一目錄下需改變文件名)
                     cp -rv 111 222     (拷貝目錄加-r選項)     -v:可視化
                     df -h     查看分區
           
           1.4移動和重命名mv
                      rename     重命名
                      mv     123           -i:安全位     -v:可視化     沒有-r選項
                     
           1.5文件查看命令
                     cat 查看文件從頭開始內容     -A:查看文件中隱藏的符號
                     tac 從尾部開始讀取內容。 
                     more  從頭開始顯示,一屏一屏的往下翻(空格鍵),一行一行的往下翻(Enter);但不可以往上翻
                     less 從頭開始顯示,一屏一屏的往下翻(空格鍵),一行一行的往下翻(Enter);按方向鍵可以一行一行往上往下翻,按pageup ,pagedn,可以一屏一屏往上或往下翻。小j鍵可以往下行翻。小k鍵可以往上行翻。Ctrl+b 往上翻屏 ,Ctrl+f 往下翻屏,小g最前一行,大G最后一行。/搜索關鍵詞     小n鍵往后跳,往前找大寫N。?搜索關鍵詞     小n往上跳,大N往下跳。
                     head 查看一個文件的前十行     -2:表示查看文件的前二行
                     tail  查看文件的末尾十行          -3:表示只看最后三行
                     tail -f     動態查看后十行     不退出,按Enter鍵往下行翻(當被查看文有變化時,動態的顯示出來)
                     
           1.6文件和目錄屬性
                      - 表示普通文件
                      d  表示目錄
                      c 字符設備
                      b 塊設備
                      l 軟連接(快捷方式)
                      s socket
                      p 管道
                     所有者,所屬組,其他人
                      rwx          rwx       rwx                                
                      421          421      421
                      ls -i   印出每個文件的 inode 號     
                      第二字段     文件硬鏈接數或目錄子目錄數
                      第三個字段     文件所有者
                      第四個字段     文件所屬組
                      第五個字段     文件大?。ㄈ绻俏募A則表示文件夾大小)
                      第六字段         文件創建 月 日 時
                      第九字段         文件名
                      
           1.7chmod命令
                      chmod 更改文件權限
                      r=4     w=2     x=1
                      chmod u=rwx,g=r--,o=r-- 1.txt     (分別代表所有者,所屬組,其他人)
                      chmod u-x 1.txt     將1.txt 文件的所有者執行權限去掉
                      chmod u+x,g+w,o-r 1.txt     將1.txt文件所有者加執行,所屬組加寫,其他去掉可讀
                      chmod a+r 1.txt     將1.txt的所有人加上可讀
                      chmod -R 700 111     -R:將111目錄下的所有子目錄子文件繼承111目錄的權限711
                      umask 用來規定默認文件的權限 0022     后三位表示     ---  -w- -w-
                      新建目錄755
                      文檔    644            
                      linux下的目錄必須有x權限;目錄為777權限,減umask得到目錄默認755權限;文檔沒有執行權限為666權限,減umask得到文檔默認為644權限。
                      計算權限
                     
           1.8chown命令
                        chown 全稱 change owner。  更改文件的所有者或所屬組
                        chown ken 111.txt     更改111.txt所有者為ken    
                        chown :users 111.txt     更改111.txt所屬組為users
                        chown ken:users 111.txt     更改111.txt所有者為ken,所屬組為users
                        chown ken.users 111.txt     更改111.txt所有者為ken,所屬組為users(和上面效果一樣)
                        chown -R ken:users 111/     將當前目錄111下的所有的目錄和文件的所有者和所屬組改為ken users
       
           1.9chattr文件隱藏屬性
                        lsattr 查看特殊屬性(特殊權限)
                        lsattr -R          可以把當前目錄下的子文件子目錄列出來,子目錄下的子文件子目錄都列出來(逐層查看文件的隱藏屬性)
                        lsattr -d           只查看目錄本身特殊屬性
                        chattr +a 12.txt     +a:表示該文件只能追加,不能修改刪除,也不能更改文件名        
                        chattr -a 12.txt       -a:表示解除該12.txt文件的限制
                        chattr +i 12.txt      比+a更嚴謹,不能追加,不能修改刪除,也不能更改文件名 (不能做任何操作)   
                        chattr -i 12.txt        解除該12.txt的限制
                        
           2.0特殊權限之suid
                         set_uid     限制于可二進制格式 可執行文件,注意給普通非二進制文件加setuid不起作用 命令:chmod u+s 可執行二進制文件名
                          which passwd
                          chmod u+s /tmp/ls      給普通用戶添加ls的臨時root 權限,
                               該文件user屬主對應的 rwx 有x權限 就顯示小s  ,沒有x權限就顯示大S 
                          
           2.1特殊權限之sgid
                          set_gid      sgid可以讓執行該文件的用戶臨時以該文件屬組身份去執行,于set_uid不同是可作用于目錄與文件
                          set_uid=4     set_gid=2     stick_bit=1
                          
           2.2特殊權限之sticky
                          stick_bit     防刪除位
                          一個文件是否可更改,不在于文件本身的屬性,而在于文件的父目錄屬性是否可rwx
                          更改文件后,所屬組和所有者都改變為被更改者
                          當一個目錄的權限為其他人可讀可寫可執行的時候,那么其他人就可以刪除這個目錄下的任何文件,包括root
                          chmod o+t .      把當前目錄改為其他用戶不可刪除
                          小t的時候,其他用戶可讀可寫可執行,大T的時候其他用戶可讀可寫不可執行
                           
                          
       
           2.3find搜索命令
                    which     搜索一個命令的位置 
                    find   /root/dir/ -name "ken"     在/root/dir/下搜索ken文件
                    find   /root/dir/  -type f       在/root/dir/下搜索文件    
                    find   /root/dir/  -type d       在/root/dir/下搜索目錄
                    find   /root/dir/  -type b       在/root/dir/下搜索Blok
                    find   /root/dir/  -type c      在/root/dir/下搜索字符設備
                    find  /tmp/ -mtime +10     大于十天     (單位是天)
                    find /tmp/ -mtime -10       小于十天
                    find /tmp/ -mtime -365     一年以內
                    find /tmp/ -mmin -5             5分鐘以內
                     find /tmp/ -mmin +5          大于五分鐘
                    find /tmp/ -atime 
                    find /tmp/ ctime
       
                     find /tmp/ -type f -name ken     在/tmp/下查找文件ken
                     ls -li     查看文件inode
                     find / -inum inode_number     用inode號碼查找文件
                     find /var/log/ -type f -mtime +30 |xargs rm       將三十天以前的日志刪掉
                     find /tmp/ -type f |xargs -i mv {} {}.bak
       
           2.4三個時間屬性
                     mtime    創建和修改時間
                     atime     訪問時間
                     ctime     更改文件所有者或所屬組時更改文件編號(inode改變這個時間就會變)
                     stat filename     可以查看文件的三個時間
                     touch filename    更新三個時間
                     當更改ctime時 atime 和mtime不一定會改變,
                      用vim修改了一下文件,那么三個time都會變(修改后要保存)
                      使用命令echo "111111" >> 1.txt 會更改1.txt ctime 和mtime、
                     
           2.5軟鏈接和硬鏈接
                     find /etc/ -type l 
                     in -s     軟鏈接,目錄和文件都可以做,可跨分區
                     in         硬鏈接,inode號不變,不可跨分區(只能在同一各分區下做),目錄硬鏈接不可以做
                     
      實例1:給文件創建軟鏈接
      命令:
      ln -s log2013.log link2013
      輸出:
      [root@localhost test]# ll
      -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log
      [root@localhost test]# ln -s log2013.log link2013
      [root@localhost test]# ll
      lrwxrwxrwx 1 root root     11 12-07 16:01 link2013 -> log2013.log
      -rw-r--r-- 1 root bin      61 11-13 06:03 log2013.log

       

      說明:
      為log2013.log文件創建軟鏈接link2013,如果log2013.log丟失,link2013將失效
       
           2.6用戶名文件
                     cat /etc/passwd/
                     root:x:0:0:root:/root:/bin/bash        每字段代表: 用戶名 密碼 uid gid 說明 家目錄 shell
                     將一個用戶設置為不能登錄
       
           2.7密碼文件
                     cat /etc/shadow
      root:$6$alMmEBkwlbfl2J/h$F/QEcBOuE0yjI4WV5Lw4BHJz8w0EoE9zh.MLx4dEg6yUGQKFCdaLBPf4C.8EBFqkVOM0QTZ3qrOiH3dp18gyB0:16719:0:99999:7:::
                     bin:*:15980:0:99999:7:::          *:表示該用戶鎖定
                     sshd:!!:16719::::::                ?。。罕硎驹撡~戶還沒有密碼
             每字段代表:
                                   用戶名
                                   密碼
                                   上次更改密碼的天數(從1970年的1月1日到更改密碼時的那一天)
                                    還需過幾天才可以改密碼 密碼要過多少天后到期(默認99999天)
                                    密碼到期前多少天發警告
                                    賬號的實效期限(到期后過多少天鎖定賬號 默認為空) 
                                    賬號的生命周期(賬號可以用多久) 
                                    保留值
       
           2.8增加和刪除用戶組
                     groupadd ken     添加用戶組
                     tail /etc/group     查看組文件
                  ken:x:500:        每個字段表示: 組名 組密碼 組id
             tail /etc/gshadow     查看組密碼
                                          !!表示無密碼 (組默認沒密碼)
             groupadd -g 512 ken   設置組id
             groupdel          刪除組
                     
           2.9增加和刪除用戶
                     useradd ken    
                     tail /etc/passwd
                     useradd -u 505 -g grp2 user1     創建用戶添加用戶id和組id
                     id user1      查看user1的用戶id,組id,
                     useradd -u 508 -g 500 -d /home/user3 -s /sbin/mologin user3     給用戶添加家目錄,和shell
                     useradd -M -s /sbin/nologin user3
                     userdel user3       刪除這個用戶的時候并不會刪除這個用戶的家目錄
                     userdel -r user1      刪除用戶并且刪除用戶家目錄
                     useradd -s /sbin/nologin mysql          創建用戶
                      linux在創建用戶是將用戶默認的shell指定為/sbin/nologin即可阻止用戶登錄,命令為
                     useradd user -s /sbin/nologin,其中-s指定用戶的默認shell
                     如果用戶已經存在于系統,用root身份修改/etc/passwd文件,將要阻止的用戶的shell改為/sbin/nologin,如下所示
           user:x:502:502::/home/user:/sbin/nologin
       
           3.0usermod修改用戶屬性
                     usermod     更改用戶組
                     usermod -g 512 ken     將ken的用戶組更改為512
                     useradd -u 506 -g 502 -G 512 user3     -G:指定用戶擴展組
                     usermod -L ken       鎖定用戶不讓登陸
                     usermod -U ken          解鎖用戶
                     
           3.1passwd修改用戶密碼
                     passwd     root登陸時后面沒有參數為更改root密碼
                     passwd username     更改普通用戶密碼
                     yum install -y expect
                     mkpasswd     生成密碼隨機字符串
                     mkpasswd -l 12
                     passwd --stdin ken     更改ken的密碼
                     echo "1"|passwd --stdin ken     設定ken密碼
       
           3.2su切換用戶
                     id               查看當前用戶
                     whomi       查看當前用戶
                     su     切換用戶
                     su ken     切換至ken ,環境變量并沒有切換
                     echo $PATH
                     su -ken     環境變量切換
                     su -     切換至root
                     su - -c "mkdir /tmp/321432" ken     臨時以ken的身份執行某個命令
                     su - -c "ls -ld /tmp/321432" ken
                     
           3.3sudo詳解
                     sudo 命令在權限不夠的情況下切換用戶
                     visudo     編輯可以執行sudo的用戶
                      sudo passwd     更改root密碼     
       
           3.4df命令
                     df     查看系統分區,-h:自動容量單位顯示,-K:以k為單位顯示,-m:以M為單位,-i:查看inode
                     free   查看交換分區
           
           3.5du命令
                     du     查看目錄大小
                     du -m /etc
                     du -h /etc              -h:自動容量單位顯示,-sh:查看一個文件的大小
                     du -sh filename          查看一個文件占用磁盤空間的大小
                     du -sh *                    查看當前目錄所有文件大小
                     ls -lb filename          查看一個文件本身的大小
                     
           3.6fdisk命令
                     fdisk -l     查看磁盤所有分區狀況
                     fdisk 磁盤名     磁盤分區
                          一塊硬盤最多可分4個主分區,如果想分第五個區,可把其中一個主分區換成擴展分區,然后在擴展分區內建邏輯分區。擴展分區+主分區≤4
                     n     新建分區
                     w     保存退出
       
           3.7磁盤格式化mke2fs
                     cat /etc/filesystems     查看文件系統
                     mkfs.     按Tab鍵補全               
                     mkfs.ext4 /dev/sdb5     格式化sdb5為ext4文件系統
                     
       
           3.8磁盤掛載與卸載
                     mount /dev/sdb5 /mnt/     掛載/dev/sdb5/到/mnt下
                     umount /home/
                     ls /home/
                     
           3.9分區表fstab
                     cat  /etc/fstab
                     vi /etc/fstab
                     UUID      分區標識
                     blkid       獲取磁盤分區標識
                     defaults     掛載選項 
                     /etc/rc.local     開機加載配置文件
                     mount -a     自動加載配置文件的所有配置
                     mount     查看掛載的選項
                     
      三、linux系統提高
           1.1vim介紹
                       yum install -y vim-enhanced     安裝vim
                       vi與vim的區別:打開shell文件后vim顯示顏色區分,vi只是全黑色
                       sut nu     顯示行號
       
           1.2vim一般模式下光標移動
                     vim 一般模式     編輯模式     命令模式
                     Ctrl+f     一屏一屏往下翻
                     Ctrl+b     一屏一屏往上翻
                     pgup
                     pgdn
                     gg     光標跳到文檔第一行
                     shift+g     光標跳到文檔最后一行
                     ^     光標跳到行首(或者數字0)
                     $     光標跳到行尾(或者數字1)
                     number + G     將光標跳到指定行
                     number + 光標方向命令鍵     向指定方向移動number個位置
       
           1.3vim一般模式下復制剪切粘貼
                     x                   向后一個一個刪除
                     shift+x          向前一個一個刪除
                     number + x     向后刪number個字符
                     dd                刪除一行(剪切)
                     p                  粘貼在光標的下面
                     shift+p         粘貼在光標的上面
                     u                  撤銷(最多回退50次)
                     Ctrl+r           前進
                     yy                 復制
                     v                   可視
                     
           1.4vim編輯模式
                     i                    在光標之前插入模式
                     I                    光標到行首插入
                     a                   在光標之后插入模式
                     A                   光標到行尾插入
                     o                   在光標下一行插入
                     O                   在光標上一行插入
                     
           1.5vim命令行模式
                     :wq               保存退出
                     :w                 保存 
                     :q                  退出
                     :q!               強制退出
                     :set nu           顯示行號
                      :set nonu        不顯示行號
                     :/ (?)                  搜索關鍵詞
                     n                      進入搜索后下(上)跳
                     N                     進入搜索后上(下)跳
                     :/1,20s/IPTABLES/iptables/g          g:全局替換
                     :/1,$s/IPTABLES/iptables/g          1-$:全文
                     :/%s/IPTABLES/iptables/g      
                     :noh1               取消高亮顯示
           
           1.6gzip講解
                     gzip filename     壓縮文件
                     du -sh filename     查看文件大小
                     gzip -1     壓縮級別,壓縮比例最小,壓縮速度最快
                     gzip -9     壓縮比例最大,壓縮最慢。(默認是gzip -6)
                
                     gzip -d filename.gz     解壓縮
                     zcat filename.gz          查看gzip壓縮文件內容
                     
       
           1.7bzip2講解
                     大多數情況下bzip2壓縮的文件更小些
                     bzip2 filename          壓縮文件bzip2
                     bzip2 filename.bz2     解壓bz2壓縮文件
                     gzip bzip2      都不能壓縮目錄
                     bzcat filename.bz2             查看bzip2壓縮文件內容
                     bzcat          默認壓縮級別是9
       
           1.8zip和unzip
                     yum install zip unzip     安裝zip壓縮和解壓縮工具
                     yum install xz bzip2 gzip
                     zip filename     壓縮文件
                     unzip filename.zip     解壓文件(在壓縮后不會刪除原文件,可以同時壓縮多個目錄和文件)
                     zip -r               可以壓縮目錄
                     
       
           1.9xz壓縮和解壓縮
                     xz     gzip bzip2     三者相差不大
                     xz filename          壓縮文件
                     xz -d filename.xz          解壓縮
                     xzcat filename.xz          查看xz壓縮文件內容
                     xz                         壓縮級別和bzip2一樣(1-9)
                     
       
            2.0tar打包工具詳解
                     tar -cvf               c:create創建;v:可視化 ;f:file
                     tar -cvf 1.tar 111 222 123.gz          打包多個文件(打包不會改變文件大?。?/div>
                     du -sh 1.tar          查看文件大小
                     du -sh 111 222 123.gz     查看多個文件大小
                     tar -xvf 1.tar                    解包
                     tar -C /tmp/ xvf 1.tar          解包到指定目錄
                     
           2.1tar打包和壓縮并用
                     tar 支持 gzip bzip2 xz     三種格式進行打包
                     tar -zcvf 1.tar.gz 111 222          打包并壓縮多個文件
                     du -sh 1.tar.gz               查看文件大小
                     tar -zxvf 1.tar.gz          解壓打包壓縮文件(壓縮包不會刪除)
                     tar -tf 1.tar.gz               查看打包壓縮文件列表
                     tar -C /tmp/ -zxvf 1.tar.gz     指定打包壓縮路徑
                     
                     tar -jcvf 1.tar.bz2 111 222     打包使用bz2格式壓縮
                     tar -Jcvf 1.tar.xz 111 222     打包使用xz格式壓縮
                     tar -jxvf 1.tar.bz2                解包bz2壓縮格式
                     tar -Jxvf 1.tar.xz                  解包xz壓縮格式
       
                      tar -tf 1.tar.bz2               查看打包bz2壓縮文件內容
                      tar -tJf 1.tar.xz                查看打包xz壓縮文件內容
                      tar --exclude 12.txt -cvf 111.tar 111         打包一個目錄下所有文件,排除單個文件(12.txt)
                     tar --exclude 12.txt --exclude aming -cvf 111.tar 111      打包一個目錄下所有文件,排除多個文件
                     
           2.2rpm安裝和卸載
                     rpm == RedHat package manager
                     mount /dev/cdrom   /mnt/
                     cd /mnt/
                     ls
                     cd packages/
                     ls
                     
                    
                     包名     版本號1主版本,5次版本   el6:紅帽企業版6;i686:32位
                     noarch:表示不區分32位64位
                     rpm -ivh 包名           i:install     v:可視化     h:進度
                     rpm -e 包名          卸載rpm
                     rpm -ivh --nodeps 包名     強制安裝RPM包(忽略依賴關系)
                     rpm -Uvh 包名                    升級包
                     
       
           2.3rpm查詢
                     rpm -qa          查詢已安裝rpm包
                     rpm -q 包名     把一個包全部顯示出來(包名不可以簡寫)
                     rpm -qa |grep 'vim*'          查詢已安裝是否包含vim
                     rpm -qi 包名                    i:info     查看一個包詳細信息
                     rpm -ql 包名                    l:list     查看一個包安裝的文件列表
                     rpm -qf 文件路徑               f:file     查看一個文件是哪個rpm包安裝
                     which vim                         查看vim是在哪個目錄
                     rpm -qf /usr/bin/vim          查看vim路徑是哪個包安裝的
                     rpm -qf `which vim`          反引號:顯示引號內執行的結果
                     rpm -ivh 'http://xxxxxx.xxxx.xxx'          遠程安裝rpm包
       
           2.4yum工具詳解
                     yum list          列出yum源中的所有RPM包(網絡資源)
                     vim /etc/yum.repos.d/CentOS-Base.repo     修改源配置文件
                     yum list |grep vim            查詢yum倉庫中的vim包(搜索rpm包),已安裝過包前顯示@
                     yum list |grep -i mcrypt                查詢yum倉庫中的mcrypt包(-i:不區分大小寫),搜索yum擴展源epel
                     yum install 包名               使用yum安裝rpm包
                     yum search 'vim'             在yum源中搜索一個rpm包
                     yum install -y vim-enhanced             安裝vi省略問答默認是
                     yum remove vim-enhanced               yum卸載rpm包
                     yum update 包名                               yum升級rpm包
                     yum update;yum upgrade               升級系統中所有的rpm包
                     yum grouplist                                   列出已安裝過和未安裝套件
                     LANG=en                                 將語言設置成英文
                     LANG=zh_CN.UTF-8                    將語言設置成中文
                     yum groupinstall 套件名
                     yum groupremove 套件名
       
           2.5搭建本地yum倉庫
                     cp -r yum.repos.d/ yum.repos.d.bak          備份yum配置文件
                     cd yum.repos.d;ls
                     rm -rf Centos-Base.repo
                     yum list          顯示本地yum源
                     vim CentOS_Media.repo        做本地yum源
       
                     gpgcheck:是否檢測
                     enabled:是否生效
                     gpgkey:不要
       
           2.6yum如何下載rpm包到本地
                     yum install -y yum-plugin-downloadonly     安裝yum下載rpm包工具
                     yum list |grep download          搜索
                     yum install vim-enhanced --downloadonly --downloaddir=/tmp/          (適用于未安裝過)
                     yum reinstall vim-enhanced --downloadonly --downloaddir=/tmp/          reinstall:重新安裝(適用于已安裝過)
                    首先查看本機安裝的yum包都有哪些?
                      [root@test~]# rpm -qa |grep yum
      如果安裝了此包:yum-utils-1.1.30-14.el6.noarch
      那么就可以執行yumdownloader
                     假如要下載samba安裝包,執行如下命令:
      [root@localhost ~]# yumdownloader samba
       
           2.7源碼編譯安裝
                     源碼包安裝時先看INSTALL 和 README
                     /usr/local/src/     源碼包下載存放路徑
                     tar -jxvf http*.bz2
                     ./configure --prefix=/usr/local/apache2          /usr/local/:常用安裝源碼包路徑
                     echo $?
                     make
                     echo $?
                     make install
                     ls /usr/local/apache/
                     apache下載地址 http://mirrors.cnnic.cn/apache/httpd/
       
           四、Shell編程入門
                1.1shell特性
                     history          命令歷史(默認只保存1000條)
                     echo $HISTSIZE          輸出1000(此變量為history保存條數)
                    !!                        上一條命令
                     !$                              前一個命令歷史的參數
                     !c                              命令歷史中以c開頭離得最近的命令
                     alias               查看取別名的命令
                     alias aaa='cat 1.txt'
                     unalias
                     wc                    取行數
                     >               正向重定向(覆蓋寫)
                     >>             追加寫
                     <               反向重定向
                     2>              錯誤重定向,把錯誤信息重定向到文件里
                     2>>           追加錯誤重定向
                     Ctrl+z          暫停掉
                     jobs           查看運行的任務
                     +          優先級高
                     fg 2(1)
                     bg          后臺
                     
                1.2shell變量
                     env          系統相關變量
                     set          系統環境變量(比env多,包含env)
                     ``              反引號:使用一個命令的結果
                      export          聲明全局變量
                      a=lskd    
                     unset $a       銷毀變量
                     
           1.3系統和用戶的環境變量配置文件
                     /etc/profile          環境變量文件HOSTSIZE,HISTSIZE,PATH,HOME,SHELL (系統相關環境變量)
                     /etc/bashrc          (系統相關環境變量)
                     /etc/profile.d/          (自定義環境變量腳本.sh存放位置)
                     用戶家目錄               家目錄環境變量配置文件
                     .bash_logout               用戶退出時執行腳本
                     .bash_profile          和/etc/profile 大致一樣,針對用戶自身定義的環境變量
                     .bashrc               定義命令別名,當用戶打開新bash或者登陸時執行的文件
                     export               全局聲明
                     vim /etc/profile.d/path.sh
                     /etc/bashrc
                     /etc/profile.d/path.sh
                     source /etc/profile          自動加載/etc/profile.d/下的所有.sh文件
                     
           1.4shell中的特殊符號
                     *|               通配符
                      #               注釋符
                      ;               結束符
                      &               后臺運行
                     \[]               中括號[]:或     例:ls [12].txt     ;ls [1-3].txt
                     
           1.5cut命令
                     cut -d: -f 3,4,5 /etc/passwd         -d:指定分隔符     -f:取段
                     cut -c 1-10 /etc/passwd
                     cut -d:     -f     -c
           
           1.6sort命令
                     sort filename      按照ascll碼表排序
                     sort  -t: -k3 -n /etc/passwd          -t:指定分隔符
                     sort -u filename         排序去重復
                     sort -n filename         按數字從小到大排序
                     sort -nr filename        按數字從大到小排序
                     sort -un filename          去重復且把多個字符串顯示一個(去掉-n選項后可全部顯示)
                     
           1.7wc命令
                     wc -l filename          查看一個文件的行數
                     wc -l filename filename          查看多個文件的行數
                     wc -w filename          統計單詞數,以空格為分隔符
                     wc -m filename          查看文件字符數
                     wc -l filename             查看文件的行數 
       
           1.8uniq和tee命令
                     uniq          去重復
                     uniq -c          可計算重復的次數
                     sort filename | uniq -c          先排序,再去重
                     | tee filename(空文件)          覆蓋重定向,并在屏幕輸出,需搭配管道命令使用
                     
           1.9tr和split命令
                     tr     替換字符
                     ls *.txt | tr 'a-z' 'A-Z'          將小寫文件后綴替換為大寫
                     echo 'dfsfsafsdf' |tr 'a-f' 'A-F'     將小寫轉換為大寫a-f A-F(tr后面替換的字符一 一對應)
                     split               切割大文件
                     split -b 50m filename          按大小分割文件(指定50m分割文件)
                     split -b 100 filename          按大小分割文件(指定100b分割文件,默認單位為b)
                     split -l 10 filename               按行數分割文件(指定10行分割文件)
                     split -b 100 filename word_          為分割出的文件指定前綴
                     
           2.0shell中連接符(并且、和、或者)
                     ls a && ls b          (邏輯與,如果前面的命令為真,才會執行后面命令,如為假,則不會執行后面的命令)
                     ls a || ls b              (邏輯或,如果前面的命令為真,則不會執行后面的命令;如為假,才會執行后面的命令)
       
           2.1grep過濾-1
                     grep egrep sed awk
                     grep          過濾除指定行
                     grep 'root' /etc/passwd
                     grep --color 'root' /etc/passwd          將查找字符以紅色標出
                     grep -c word filename               查詢所有行包含指定字符出現的行數
                     grep -v word filename               查詢所有行不包含指定字符出現的行數
                     grep -n word filename               顯示行號
                     grep -n -A 2 word filename          顯示匹配行,并顯示匹配行下指定行數(2行)
                     grep -n -B 2 word filename          顯示匹配行,并顯示匹配行上指定行數(2行)
                     grep -n -C 2 word filename          顯示匹配行,并顯示匹配行上下指定行數(2行)
                     grep -r word dirname                    遍歷目錄文件查找指定字符
                     grep -rh word dirname                    不顯示文件名,匹配文件
                     
           2.2grep過濾-2
                     grep '[aN]' filename          查找包含a或N的行
                     grep '[0-9]' filename          查找包含數字的行 
                     grep -v '[a-zA-Z]' filename              查找不包含大小寫的行
                     grep '^[a-z]' filename                    匹配小寫字母開頭的行
                     grep '[^a-z]' filename               匹配不包含字母的行
                     grep '[^$]' filename               匹配空行
                     grep -v '[^$]' filename               匹配空行以外的行
                     grep '[r.o]' filename               匹配r(任一字符 )o的行
                     grep '[r*o]' filename               匹配r(一個或多個)o的行
                     待補充(正則)
       
           2.3grep過濾-3
                     grep -E     ===      egrep
                     待補充(正則)
       
           2.4sed命令-1
                     sed 比grep強大,但是不能顏色顯示
                     sed -n '10'p filename          打印第n行,p:print
                     sed -n '1-10'p filename          打印第一到10行
                     sed -n '/root/'p filename        打印包含'root'的行
                     sed -n '/r.o/'p filename          匹配r(任一字符 )o的行                    
                     sed -n '/r*o/'p filename          匹配r(一個或多個)o的行     
                     
           2.5
           2.6
           2.7
           2.8
       
      五、linux平臺運維管理
           1.1查看系統負載命令
                w          load average:1分鐘之內系統的平均負載(1分鐘進程數),5分鐘(5分鐘平均進程數),15分鐘內          
                uptime     獲取負載值
       
           1.2vmstat詳解
                vmstat -1          1s顯示一次
                vmstat 1 5          
       
           1.3top動態查看負載
                top     3s一次動態顯示出當前主機運行情況,前一行與vmstat一樣
                pid          進程編號(ls /proc;此目錄里目錄名對應進程號)
                user          用戶
                PR               
                NI               進程優先級
                VIRT          虛擬內存
                top -bn1          一次性顯示出來(靜態顯示)
                SHR          共享內存
                top -d 1 -c          1s刷新一次,COMMAND顯示的更全點
                
           1.4sar命令
                sar -n DEV          查看網卡流量
                sar -n DEV 1 10          1s顯示一次,一次顯示10次
                yum install -y sysstat          安裝sar命令
                ls /var/log/sa/          查看網絡流量歷史(18天)          
                sar -n DEV -f /var/log/sa/sa22/          查看具體某天的流量歷史文件
                sar -q           查看系統歷史負載
                sar -b 1 10           可以查看當前的磁盤io狀態     
                sar -p 1 10 可以查看cpu的使用情況
                
           1.5free查看內存
                free          查看內存狀況kb
                free -m          以M為單位
                buffers          數據將要寫到磁盤中去的,還在內存占用
                cached          從磁盤取出放到內存,這部分空間
                free第二行     =     buffer     +     cached
       
           1.6ps查看進程
                VSZ          虛擬內存大小
                RSS          實際內存大小(內存使用量)
                TTY          啟動地方
                STAT          S:表示休眠;
                                  s:表示主進程;
                                 <:優先級高;N:表示次進程低優先級;+:前臺運行的進程;R:runing運行中;L:在內存鎖定;l:多線程進程;Z:僵尸進程;x已死掉進程;T:暫停進程;D:不能中斷的進程
                START          啟動時間
                TIME            占用cpu時間
                CANMAND     進程名稱
                
           1.7netstat查看端口
                netstat -lnp          查看監聽端口
                netstat -an          tcpip,socket都顯示出來
                netstat -an|grep -ic estab          查看某一時刻服務器的連接數(并發數)
       
           1.8抓包工具tcpdump和tsshark
                yum install tcpdump
                tcpdump -nn
                (待補充)
       
           1.9防火墻selinux
                cat /etc/selinux/config          查看selinux配置
                (待補充)
           
           2.0iptables詳解-1
                netfilter----iptables     
                iptables -nvL     查看有那些規則
                iptables -F          清除規則
                表 列 規則
                iptables -t filter -nvL         指定表名,filter表下的規則(filter[較常用],nat,mangle。三個表)
                filter INPUT OUTPUT      列
                iptables -t filter -I INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT              插入規則不允許192.168.1.177訪問   (-I:在表上面增加)
                iptables -t filter -nvL          在不指定標明的時候默認是filter表
                iptables -t filter -D INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT            刪除規則
                iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j REJECT            添加規則(-A:在表下面增加)
                相同規則的時候表上面的規則先生效
                
           2.1iptables詳解-2
                 iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j DROP     不接收包
                 iptables -t filter -A INPUT -p tcp --dport 80 -s 192.168.1.177 -j ACCEPT     
                 iptables -z          清空規則計數器
                 iptables -F          清空規則(只針對filter表)
                 iptables -t nat -nvL          查看nat下的所有表
                 iptables -t filter -A INPUT -p tcp --dport 80(端口號可省略) -s 192.168.1.177 -j REJECT
                 service iptables restart;          重啟iptables服務(重啟后新添加的iptables會失效)
                 service iptables save;               保存新添加的iptables
                 cat /etc/sysconfig/iptables;          iptables配置保存路徑
                 iptables-save > 1.ipt          防火墻規則備份
                 
                 iptables -F
                 service iptables save;          清空規則并保存
                 
           2.2iptables詳解-3
      我們現在用的比較多個功能有3個:
      1.filter 定義允許或者不允許的
      2.nat 定義地址轉換的
      3.mangle功能:修改報文原數據
       
      這五個位置也被稱為五個鉤子函數(hook functions),也叫五個規則鏈。
      1.PREROUTING (路由前)
      2.INPUT (數據包流入口)
      3.FORWARD (轉發管卡)
      4.OUTPUT(數據包出口)
      5.POSTROUTING(路由后)
          這是NetFilter規定的五個規則鏈,任何一個數據包,只要經過本機,必將經過這五個鏈中的其中一個鏈。
       
      對于filter來講一般只能做在3個鏈上:INPUT ,FORWARD ,OUTPUT
      對于nat來講一般也只能做在3個鏈上:PREROUTING ,OUTPUT ,POSTROUTING
      而mangle則是5個鏈都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
              注意:規則的次序非常關鍵,誰的規則越嚴格,應該放的越靠前,而檢查規則的時候,是按照從上往下的方式進行檢查的。     
       
                input               進來
                output            出去
                FORWARD     (轉發。iptables中有幾個表,分別針對不同的目的,有本地輸入、本地產生的輸出、轉發等。。。FORWARD這個表,用于控制轉發行為,也就是說根據定義的規則,決定對從外邊來到                                        另一個地方去的包是丟棄、PASS還是怎么處理。)
       
                filter          指定來源ip拒絕
                iptables -t filter -nvL                    查看所有規則
                nat            網絡地址轉換
                iptables -t nat -nvL
                PREROUTING             改變的是數據包過來的的時候目標ip地址
                POSTROUTING          在數據包出去之前改變原ip(私網ip)
                mangle                      給數據包打標記
                iptables -t mangle -nvL       
       
           2.3iptables詳解-4
                filter 表 INPUT OUTPUT
                iptables -A INPUT     增加input
                iptables -D INPUT     刪除input
                iptables -P                -P的作用是定義鏈的默認規則
                 四:詳解COMMAND:
            1.鏈管理命令(這都是立即生效的)
      -P :設置默認策略的(設定默認門是關著的還是開著的)
      默認策略一般只有兩種
      iptables -P INPUT (DROP|ACCEPT)  默認是關的/默認是開的
      比如:
      iptables -P INPUT DROP 這就把默認規則給拒絕了。并且沒有定義哪個動作,所以關于外界連接的所有規則包括Xshell連接之類的,遠程連接都被拒絕了。
      -F: FLASH,清空規則鏈的(注意每個鏈的管理權限)
          iptables -t nat -F PREROUTING
          iptables -t nat -F 清空nat表的所有鏈
           -N:NEW 支持用戶新建一個鏈
                iptables -N inbound_tcp_web 表示附在tcp表上用于檢查web的。
           -X: 用于刪除用戶自定義的空鏈
                使用方法跟-N相同,但是在刪除之前必須要將里面的鏈給清空昂了
           -E:用來Rename chain主要是用來給用戶自定義的鏈重命名
                -E oldname newname
           -Z:清空鏈,及鏈中默認規則的計數器的(有兩個計數器,被匹配到多少個數據包,多少個字節)
                iptables -Z :清空
      2.規則管理命令
               -A:追加,在當前鏈的最后新增一個規則
               -I num : 插入,把當前規則插入為第幾條。
                  -I 3 :插入為第三條
               -R num:Replays替換/修改第幾條規則
                  格式:iptables -R 3 …………
               -D num:刪除,明確指定刪除第幾條規則
              
      3.查看管理命令 “-L”
       附加子命令
       -n:以數字的方式顯示ip,它會將ip直接顯示出來,如果不加-n,則會將ip反向解析成主機名。
       -v:顯示詳細信息
       -vv
       -vvv :越多越詳細
       -x:在計數器上顯示精確值,不做單位換算
       --line-numbers : 顯示規則的行號
       -t nat:顯示所有的關卡的信息
       
      五:詳解匹配標準
       
      1.通用匹配:源地址目標地址的匹配
       -s:指定作為源地址匹配,這里不能指定主機名稱,必須是IP
      IP | IP/MASK | 0.0.0.0/0.0.0.0
      而且地址可以取反,加一個“!”表示除了哪個IP之外
       -d:表示匹配目標地址
       -p:用于匹配協議的(這里的協議通常有3種,TCP/UDP/ICMP)
       -i eth0:從這塊網卡流入的數據
      流入一般用在INPUT和PREROUTING上
       -o eth0:從這塊網卡流出的數據
      流出一般在OUTPUT和POSTROUTING上
              
      2.擴展匹配
      2.1隱含擴展:對協議的擴展
          -p tcp :TCP協議的擴展。一般有三種擴展
      --dport XX-XX:指定目標端口,不能指定多個非連續端口,只能指定單個端口,比如
      --dport 21  或者 --dport 21-23 (此時表示21,22,23)
      --sport:指定源端口
      --tcp-fiags:TCP的標志位(SYN,ACK,FIN,PSH,RST,URG)
          對于它,一般要跟兩個參數:
      1.檢查的標志位
      2.必須為1的標志位
      --tcpflags syn,ack,fin,rst syn   =    --syn
      表示檢查這4個位,這4個位中syn必須為1,其他的必須為0。所以這個意思就是用于檢測三次握手的第一次包的。對于這種專門匹配第一包的SYN為1的包,還有一種簡寫方式,叫做--syn
          -p udp:UDP協議的擴展
              --dport
              --sport
          -p icmp:icmp數據報文的擴展
              --icmp-type:
      echo-request(請求回顯),一般用8 來表示
      所以 --icmp-type 8 匹配請求回顯數據包
      echo-reply (響應的數據包)一般用0來表示
                        
      2.2顯式擴展(-m)
           擴展各種模塊
            -m multiport:表示啟用多端口擴展
            之后我們就可以啟用比如 --dports 21,23,80
                        
              
      六:詳解-j ACTION
       
       常用的ACTION:
       DROP:悄悄丟棄
      一般我們多用DROP來隱藏我們的身份,以及隱藏我們的鏈表
       REJECT:明示拒絕
       ACCEPT:接受
      custom_chain:轉向一個自定義的鏈
       DNAT
       SNAT
       MASQUERADE:源地址偽裝
       REDIRECT:重定向:主要用于實現端口重定向
       MARK:打防火墻標記的
       RETURN:返回
      在自定義鏈執行完畢后使用返回,來返回原規則鏈。
       
                (policy ACCEPT 804K packets,402M bytes)          接受的包數據量
                ACCEPT       (接受)
                DROP          (落下,丟下)
                REJECT        (拒絕,駁回)
                iptables -P INPUT DROP          (危險:請注意這條語句的參數,是-P ,-P的作用是定義鏈的默認規則,也就是通過所有規則后還沒有匹配到的數據包,將按照默認規則來執行。
      -P DROP后,只有滿足定義了ACCEPT規則的包才能通行,其他的包都按照默認的DROP干掉了。)
       
           2.4cron計劃任務
                
           2.5系統服務
                yum install -y ntsysv          安裝系統管理服務軟件
                ntsysv               打開管理界面,設置完后需重啟系統才能生效
                chkconfig --list          查看所有系統服務
                chkconfig --
                0-6                             0:關機;1:單用戶模式;23;4:6重啟
                chkconfig 服務名 off          關閉服務,控制級別2、3、、4、5
                chkconfig 服務名 on          開啟服務,控制級別2、3、、4、5
                chkconfig --level 34 服務名 on     將某服務的34級別開啟
                chkconfig --add          添加系統服務
                chkconfig --del          刪除系統服務
                /etc/init.d          系統服務所在目錄
                
           2.6linux日志
                /var/log/messages
                /etc/logrotate.conf          日志切割文件
                kill pid                         殺死進程
                kill -9                              強制殺死進程
                dmesg                         查看某個硬件出現問題
                
           2.7xargs和exec詳解
                find /var/log/ -type f -mtime +10          查看10天以前的日志
                find /var/log/ -type f -mtime +10 -exec cp {} {}.bak \;          重命名一些文件以.bak后綴(-exec是find的一個選項)
                find /var/log/ -type f -mtime +10 | xargs -i cp {} {}.1               重命名一些文件以.1后綴(使用管道達到效果)
       
           2.8screen命令
                nohup
                yum install -y screen
                screen           新窗口執行命令,ctrl+a+d(展示退出)(虛擬終端)
                screen -ls          查看screen
                screen -r screenid          進入screen某一進程
       
           2.1curl命令
                curl -I 網站地址              不看源代碼,查看狀態
                curl -x                          代理
                curl -IV 網址                    顯示詳細信息
                curl -O 文件網址                    下載文件               (文件名為下載的名稱)
                curl -o 文件名 文件網址                    下載文件需重命名
                
           3.0rsync格式
                rsync          拷貝數據(可增量拷貝)
                rsync -av ip地址:/tmp/1.txt /tmp/          將遠程文件拉到本地
                rsync -av /tmp/1.txt  ip:/tmp/               將本地文件推到遠程
                (待補充)
       
           3.1rsync常用選項
                rsync -a
       
           3.2rsync選項詳解
               
      六、LAMP架構搭建與優化
           1.1Mysql安裝
                cat /usr/local/mysql/bin/mysqlbug|grep configuore       mysql查看編譯參數
              1、安裝
                查看有沒有安裝過:
                yum list installed mysql*
                rpm -qa | grep mysql*
      查看有沒有安裝包:
                yum list mysql*
      安裝mysql客戶端:
                yum install mysql
      安裝mysql 服務器端:
                yum install mysql-server mysql-devel
      2、啟動&&停止
      數據庫字符集設置
                mysql配置文件/etc/my.cnf中加入default-character-set=utf8
      啟動mysql服務:
                service mysqld start或者/etc/init.d/mysqld start
      開機啟動:
                chkconfig -add mysqld,查看開機啟動設置是否成功chkconfig --list | grep mysql*
                mysqld             0:關閉    1:關閉    2:啟用    3:啟用    4:啟用    5:啟用    6:關閉
      停止:
                service mysqld stop
      3、登錄
           創建root管理員:
                mysqladmin -u root password 123456
           如果root已經設置過密碼,采用如下方法
              ./mysqladmin -u root password oldpass ‘123456’   
            登錄:
                mysql -u root -p輸入密碼即可。
            忘記密碼:
                service mysqld stop
                mysqld_safe --user=root --skip-grant-tables
                mysql -u root
                use mysql
                update user set password=password("new_pass") where user="root";
                flush privileges;
      4、遠程訪問
      開放防火墻的端口號
      mysql增加權限:mysql庫中的user表新增一條記錄host為“%”,user為“root”。
      5、Linux MySQL的幾個重要目錄
      數據庫目錄
               /var/lib/mysql/
      配置文件
               /usr/share /mysql(mysql.server命令及配置文件)
      相關命令
               /usr/bin(mysqladmin mysqldump等命令)
      啟動腳本
               /etc/rc.d/init.d/(啟動腳本文件mysql的目錄)
       
       
                編譯安裝二進制包安裝mysql
            修改mysql的root用戶密碼,root初始密碼為空的:執行命令:./bin/mysqladmin -u root password '密碼'
       
       
           1.2Apache編譯安裝
                cat /usr/local/apache2/build/config.nice          查看apache編譯參數
                apachectl -v          查看apache版本
                apachectl -l          查看apache運行模式      q
                tar jxf httpd-2.2.31.tar.bz2
                ./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared --with-pcre   (apache配置選項)            
                make
                make install
       
                配置參數詳解:
                --with-included-apr          (httpd軟件依賴的包,能夠跨平臺運作linux win unix mac)
                --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared          (動態共享的模式安裝)
                --with-pcre          (正則相關的庫)
                
                /usr/local/apache2/bin/apachectl start          啟動apache
                /usr/local/apache2/modules/          apache動態模塊加載路徑
         
                /usr/local/apache2/bin/apachectl -M          查看apache加載模塊(動態和靜態模塊)
                /usr/local/apache2/bin/apachectl -l          查看apache加載模塊(靜態)
                /usr/local/apache2/bin/apachectl -t          查看apache配置文件有無錯誤
                /usr/local/apache2/bin/apachectl graceful          重新加載配置文件
                
      然后為Apache添加服務腳本:
      # cp  /usr/local/apache/bin/apachectl  /etc/init.d/httpd
               
      如果想把apache服務加入到開機自啟,可以修改服務啟動腳本:
      # vim /etc/init.d/httpd
      在第二行下添加:# chkconfig:235 85 15
      # description: This is apache server!
       
      編輯配置文件:
      # vim /etc/httpd/httpd.conf 
      添加 ServerName localhost
                
       
       安裝Apache2.4.7版本。
      下載地址為:http://mirrors.sohu.com/apache/
      tar zxvf httpd-2.4.7.tar.gz     #解壓文件
      cd httpd-2.4.7               #進入目錄
      ./configure --prefix=/usr/local/apache2/ --sysconfdir=/usr/local/apache2/etc --with-included-apr --enable-so --enable-deflate=shared --enable-expires=shared --enable-rewrite=shared   #編譯參數
       
      錯誤
      configure: error:Bundled APR requested but not found at./srclib/.
        tar zxvf apr-1.4.6.tar.gz     #解壓apr包
        tar -zxvf apr-util-1.4.1.tar.gz   #解壓apr-util包
        cp -r /lamp/apr-1.4.6 /lamp/httpd-2.4.7/srclib/apr
        cp -r /lamp/apr-util-1.4.1 /lamp/httpd-2.4.7/srclib/apr-util    # 然后把兩個包復制到httpd-2.4.7/srclib/ 里面并且取消版本號。


      錯誤:
      configure: error: in `/lamp/httpd-2.4.7/srclib/apr':
      configure: error: no acceptable C compiler found in $PATH
      See `config.log' for more details
      configure failed for srclib/apr
       
      yum -y install gcc-c++   #安裝 gcc
       
      錯誤:
      configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
      tar zxvf pcre-8.34.tar.gz
      [root@localhost lamp]# cd pcre-8.34
      [root@localhost pcre-8.34]# ./configure && make && make install


      錯誤
      checking whether to enable mod_deflate... configure: error: mod_deflate has been requested but can not be built due to prerequisite failures
       
      yum -y install openssl-devel
       
      把上面4個錯誤解決后。重新 ./configure 參數編譯 無問題就執行
      make 
      make install
       
      /usr/local/apache2/bin/apachectl start         # 啟動apache
      啟動完后用以下命令檢查apache是否正常啟動,
      ps aux |grep httpd
      netstat -an |grep :80
       
      如果不能啟動 請清空防火墻規格。關閉selinux
      iptables -F
      service iptables save
       
      通過瀏覽器輸入地址訪問:http://192.168.137.30 (我服務器的地址)  。若能顯示“It works”表明apache正常工作。
      設置Apache系統開機是自動開啟。
      vim /etc/rc.d/rc.local
      增加一行 把下面增加進去。
      /usr/local/apache2/bin/apachectl start    
       
            1.3 Apache的mpm工作模式
                 /usr/local/apache2/bin/apachectl -l
                prefork.c          子進程 (進程模式,占用內存大,高并發異常時不影響其他進程)
                worker               線程(線程模式,占用內存小,高并發異常時影響其他線程)
                event                    線程形式比worker好些 性能(線程模式,占用內存小,高并發異常時影響其他線程 )
                ps aux|grep httpd          主進程 小寫s
                ./configgure --help | grep A3 'with-mpm'     查看apache編譯參數(mpm參數)
                --with-mpm=worker          在配置安裝的時候指定apache,mpm為線程形式
                
           1.4php編譯安裝-安裝順序在最后          
           
       
            安裝php5.5版本。
      tar zxvf php-5.5.9.tar.gz  #解壓php安裝包
      cd php-5.5.9  #進入php文件
      ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6  --with-mcrypt=/usr/local/libmcrypt/    #編譯參數
       
      錯誤configure: error: xml2-config not found. Please check your libxml2 installation.yum install -y libxml2-devel錯誤configure: error: Please reinstall the BZip2 distribution
      yum install -y bzip2 bzip2-devel錯誤
      configure: error: jpeglib.h not found.
      yum install libjpeg-devel -y
       
      錯誤
      configure: error: png.h not found.
      yum install libpng-devel -y
       
      錯誤
      configure: error: freetype-config not found.
      yum install -y freetype freetype-devel
      錯誤
      configure: error: mcrypt.h not found. Please reinstall libmcrypt.
      tar zxvf mcrypt-2.6.8.tar.gz    #提示mcrypt包沒有安裝。安裝mcrypt包 又依賴依賴 libmcrypt,  mhash 這兩個包。
       
      1.首先編譯安裝  libmcrypt,  mhash,  mcrypt  二進制源碼包。
      下載libmcrypt-2.5.8.tar.gz
       
      tar zxvf libmcrypt-2.5.8.tar.gz
      cd libmcrypt-2.5.8
      ./configure --prefix=/usr/local/related/libmcrypt 
      make  
      make install
       
      安裝 libltdl,也在libmcrypt源碼包里面
      cd libmcrypt-2.5.8 /libltdl
      ./configure --enable-ltdl-install
      make
      make install
       
      下載mhash-0.9.9.9.tar.gz
      tar zxvf mhash-0.9.9.9 
      cd mhash-0.9.9.9 
      ./configrue --prefix
      make 
      make install

       

      這兩個包安裝完。然后在安裝mcrypt包。
       
      安裝mcrypt
      tar zxvf mcrypt-2.6.8.tar.gz
      LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/lib ./configure --with-libmcrypt-prefix=/usr/local/libmcrypt   #編譯參數

       

      make 
      make install
      #mcrypt 沒有安裝完成。這是php模塊。需要等php安裝完成之后。在繼續安裝。
       
      把以上的依賴關系解決完了之后在繼續安裝PHP
      ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/php/etc  --with-mysql=/usr/local/mysql --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif --disable-ipv6  --with-mcrypt=/usr/local/libmcrypt/
      make
      make install


      生成php.ini
      cp /lamp/php-5.5.9/php.ini-production  /usr/local/php/etc/php.ini
       
      apache結合php
       
      Apache的主配置文件為 :/usr/local/apache2/etc/httpd.conf   #參數編譯的時候指定到/usr/local/apache2/etc/ 這個目錄下。
      vim /usr/local/apache2/etc/httpd.conf
      找到AddType application/x-gzip .gz .tgz 這一行在下面增加
      AddType application/x-httpd-php .php
      找到:<IfModule dir_module>
          DirectoryIndex index.html
      </IfModule>
      將中間一樣的內容改為:DirectoryIndex index.html index.htm index.php
      修改完成后保存退出。
      啟動前檢測apache的配置文件是否正常。
      /usr/local/apache2/bin/apachectl -t  
      如果顯示“Syntax OK” 表示正常。
      啟動apache
      /usr/local/apache2/bin/apachectl start
      檢測是否啟動成功。
      netstart -lnp |grep httpd
      /usr/local/apache2/bin/apachectl  graceful   加載apache配置文件   不用重啟
      /usr/local/apache2/bin/apachectl  -t  查看php配置文件是否正常
      /usr/local/php/bin/php -i |more  能查看php安裝信息。。./configure 內容 等等
      cat /usr/local/apache2/build/config.nice   查看apache 安裝的編譯代碼
      cat /usr/local/mysql/bin/mysqlbug |grep -i confi     參看musql安裝的編譯參數
           
           1.5測試php解析
      Linux下查看Nginx、Napache、MySQL、PHP的編譯參數的命令如下:
      1、nginx編譯參數:
      #/usr/local/nginx/sbin/nginx -V
      2、apache編譯參數:
      # cat /usr/local/apache/build/config.nice
      3、php編譯參數:
      # /usr/local/php/bin/php -i |grep configure
      4、mysql編譯參數:
      # cat /usr/local/mysql/bin/mysqlbug|grep configure
          
           1.6安裝Discuz
                下載discuz-utf-8版本
                編輯 vim /usr/local/apache2/conf/httpd.conf
           
                編輯 vim/usr/local/apache2/conf/extra/httpd-vhosts.conf
           
                ServerAdmin 管理員郵件
                DocumentRoot     指定web目錄
                ServerName     服務器名稱
                ServerAlias          服務器別名
                vim /etc/hosts
                
                將 Deny from all改為Allow from all
                ps aux |grep httpd          查看哪個用戶運行apache
                
             更改discuz程序目錄所有者和所屬組
               vim /etc/profile.d/path.sh
                
                source           重新加載配置文件
                create databases discuz          創建數據庫
                grant all on discuz.* to 'ken'@'localhost' identified by 'ken';          賦予用戶權限
                     
      1.登錄mysql
      #mysql -u root -p
      2.新增用戶
      insert into mysql.user(Host,User,Password) values("localhost","xxx",password("***"));\
      注釋:xxx為新建用戶名,***為用戶密碼
      3.執行該句后,還需要刷新權限表
      flush privileges;
      4.賦予用戶權限
      grant all on ttt.* to xxx@localhost identified by "***";
              注意:ttt為數據庫名,當然你也可以填* 為所有數據庫
      5.賦予權限,還需要再刷新權限表
      flush privileges;
      6.通過sql語句查詢出新增結果
      select user,host,password from mysql.user;
                7.mysql 查看所有用戶
                      select * from mysql.user
                   select * from mysql.user \G;          當表的列太多現實不正常時,\G橫項顯示
       
           1.7apache用戶認證
      用vim打開/usr/local/apache2/conf/extra/httpd-vhosts.conf文件
      <Directory /data/www/abc/>
              AllowoVerride Authconfig
              Authname "ni hao xian sheng"
              AuthType Basic
              AuthUserfile /data/.htpasswd
              Require valid-user
      </Directory>
      然后從新加載一下apache就可以le
      1.##  這里設置的目錄為真實目錄,并非虛擬目錄
      2.    AllowOverride AuthConfig  為允許認證
      3.    AuthType  認證類型 Basic 由 mod_auth 提供
      4.    AuthName  這里定義的內容將在 web 彈出的登陸框中顯示
      5.    AuthUserFile  定義認證文件路徑 ,不要放在可能被下載到的地方
      6.    Require user  定義允許訪問的用戶
      配置完這一步接下來建立驗證文件
      Htpsswd -c /data/.htpasswd ken(如果要在添加一個用戶的話不加c選項)
      New password: 
      Re-type new password: 
       
           1.8默認虛擬主機
      配置默認虛擬主機
      用vim打開/usr/local/apache2/conf/extra/httpd-vhosts.conf
      <VirtualHost *:80>
          DocumentRoot "/tmp/123"
          ServerName www.23.com
          #ServerAlias www.meiqianzenmeweihuganqing.com
          #ErrorLog "logs/dummy-host.example.com-error_log"
          #CustomLog "logs/dummy-host.example.com-access_log" common
      </VirtualHost>
      指定一個不存在的目錄DocumentRoot 在/tmp/下創建123 (防止起啟動的時候報錯) /tmp/然后在降低文件的的權限 chmod 600 /tmp/123這樣就不會訪問到的,其目的是為了安全、只允許指定的域名訪問。
       
                <VirtualHost *:80>
                     DocumentRoot "/tmp/123"
                     serverName 234.com
                </VirtualHost>
                mkdir /tmp/123     創建空目錄
                chmod 600 /tmp/123          更改目錄權限
                apache      默認虛擬主機就是第一個
                
                 銘哥,看下我理解的對不對.\n視頻里演示禁止訪問虛擬主機; 在這個虛擬主機配置里寫入了兩個選項,第一個為默認的訪問,里面把指定的目錄/tmp/123權限設置為600,并且域名是隨便設置的.當windows端瀏覽器輸入的域名凡是指向到虛擬主機配置文件里默認訪問的都會因為deamon用戶沒有/tmp/123權限而出現403的訪問錯誤; 而在瀏覽器輸入的域名解析指向到配置文件里第二個訪問地址的, 因為deamon對指定目錄有足夠權限,所以能正常訪問.
       
                  位置在第一個的虛擬主機,為默認的主機,凡是域名指向過來,都會解析到這個來。所以,當有一個新的站點想在服務器上跑的時候,需要額外去配置一個新的虛擬主機配置段
           1.9域名301跳轉
                 301域名跳轉的配置
      用vim /usr/local/apache2/conf/extra/httpd-vhosts.conf中進行配置
      <VirtualHost *:80>
           ServerName www.xxx.com
           ServerAlias www.yyy.com
           DocumentRoot /var/www/html/aminglinux
      <IfModule mod_rewrite.c>
           RewriteEngine on
           RewriteCond %{HTTP_HOST} ^www.aaa.com$(條件)
           RewriteRule ^(.*)$ http://www.yyy.com$1 [R=permanent,L]或[R=301,L](規則)301永久從定向302臨時重定向L表示結束了
      </IfModule>
      </VirtualHost>
      多域名時在條件后面加[OR]或者的意思
      在linux中用curl進行測試命令格式 curl -xip 域名 -I
      301     域名永久重定向跳轉時為了讓搜索引擎更快的找到
      302     域名臨時重定向
       
           2.0apache日志切割
                將Errorlog 和Customlog     設為絕對路徑
               按天分割apache訪問日志:CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/test.com-access_%Y%m%d_log 86400" common
                date -s "2016-01-03 01:01:00"          設置時間
           
           2.1apache不記錄指定文件類型日志
                SetEnvIf Request_URI ".*\.gif$" image-request
      SetEnvIf Request_URI ".*\.jpg$" image-request
      SetEnvIf Request_URI ".*\.png$" image-request
      SetEnvIf Request_URI ".*\.bmp$" image-request
      SetEnvIf Request_URI ".*\.swf$" image-request
      SetEnvIf Request_URI ".*\.js$" image-request
      SetEnvIf Request_URI ".*\.css$" image-request
      CustomLog "|/usr/local/apache2/bin/rotatelogs -l /usr/local/apache2/logs/oem.discuz.com-access_%Y%m%d.log 86400" combined
      env=!image-request
       
           2.2apache配置靜態緩存
                curl -x127.0.0.0:80 'http://www.test.com/static/image/common/logo.png' -I
                
              <IfModule mod_expires.c>
      ExpiresActive On
      ExpiresDefault A86400
      ExpiresByType image/x-icon A2592000
      ExpiresByType application/x-javascript A2592000
      ExpiresByType text/css A2592000
      ExpiresByType image/gif A604800
      ExpiresByType image/png A604800
      ExpiresByType image/jpeg A604800
      ExpiresByType text/plain A604800
      ExpiresByType application/x-shockwave-flash A604800
      ExpiresByType video/x-flv A604800
      ExpiresByType application/pdf A604800
      ExpiresByType text/html A900
      </IfModule>
              
           
           2.3apache配置防盜鏈
                位置一般情況下在 /usr/local/apache/conf/httpd.conf
      或者apache 2.2 的 /usr/local/apache2/conf/extra/httpd-vhost.conf
      添加 
       
      SetEnvIfNoCase Referer "^http://www.ccvita.com" local_ref
      SetEnvIfNoCase Referer "^http://ccvita.com" local_refSetEnvIfNoCase Referer "^$" local_ref
      <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> 
      Order Allow,Deny 
      Allow from env=local_ref 
      </filesmatch> 
      (Allow : 允許(白名單)       Deny:拒絕 )
       
      還一種寫法,是用正則的,這種寫法在各個版本的apache比較通用。
      寫法是 
       
      SetEnvIfNoCase Referer "^http://.*\.yourdomin\.com" local_ref
      SetEnvIfNoCase Referer ".*\.yourdomin\.com" local_ref
      SetEnvIfNoCase Referer "^$" local_ref
      <filesmatch "\.(txt|doc|mp3|zip|rar|jpg|gif)"> 
      Order Allow,Deny 
      Allow from env=local_ref 
      </filesmatch> 
      本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/qianling3439/archive/2009/02/05/3864248.aspx 
         
           2.4apache訪問控制
                
                Order (排序:設置執行順序) 可以選擇 先執行allow 還是 deny
              
       
           2.5apache禁止解析php
                
              針對于 /data/www/data 目錄
                1.將php引擎關閉
                2.filesmatch 將所有ip禁止訪問,只允許127.0.0.1
           
           2.6apache禁止指定user_agent、
                設置禁止curl 和 chrome 訪問 
           
                用curl 設置user_agent模擬chrome訪問 
           
           
          2.7apache通過rewirte限制某個目錄
                
       
          2.8php.ini配置文件詳解
                php -i     可以查看php.ini文件所在路徑loaded Configuretion File => php.ini路徑
                ;     php.ini 的作為注釋符號
                 #     shell 的注釋符號
                 disable_function = (禁用的函數)
                php錯誤級別:
                
                
       
                          php錯誤日志輸出配置
       
                
                open_basedir = /data/www/discuz:/tmp          (防止入侵者訪問系統重要目錄,此處限制只能訪問/data/www/discuz或者/tmp)          
                在apache虛擬主機配置openbasedir          (與直接在php.ini里修改的好處是:可以區分不同的虛擬主機)
                
       
           2.9php擴展模塊如何安裝
                php -i |grep php.ini
                在php源碼包目錄下, 找到/usr/local/src/php-5.3.27/ext/gd          ext目錄為存放動態加載模塊的安裝包 
                進入需要的包后如:cd gd
                使用php工具/usr/local/php/bin/phpize 生成configure
                此時在gd目錄生成了configure安裝文件
                ./configure --with-php-config=/usr/local/php/bin/php-config          固定配置
                make 
                make install
                php -m           查看php加載哪些模塊
                extension_dir          php動態模塊庫的存放路徑(在php.ini中可以指定extension_dir 所在目錄)
                php -i |grep extension_dir          查看extension_dir目錄(擴展模塊目錄)
                grep '^extension=' /usr/local/php/etc/php.ini          查看哪些模塊是動態加載的
                在php.ini中添加動態模塊      
                    此處,程序會在extension_dir中尋找curl.so文件,找不到會報錯
                
           
          3.0mysql配置講解
                /etc/my.cnf               mysql配置文件
      Key_buffer_size = 256M                   存儲緩沖區大小
      Table_open_cache = 256                 打開表的數量
      graphic mysql連接數
       
      graphic 查詢超過1s 記錄 mysql慢查詢Mysql調優帖子地址
       
          3.1mysql的root密碼重置
                mysqladmin -uroot -p(空可?。?password 'ken'
                忘記密碼編輯配置文件:vim /etc/my.cnf     添加一行 skip-grant
                
                直接登錄
                使用mysql庫:use mysql
                更新root用戶密碼:     update user set password=password('ken') where user='root'          
       
           3.2mysql登陸
                mysql -uroot -h192.168.1.177 -P3306 -p123456           mysql遠程登陸,-u用戶名 ,-h指定host,-P指定端口,-p密碼
                
           3.3mysql常用操作-1
                mysql -uroot -p123456;
                show databases;               查看所有數據庫
                use mysql                         選擇數據庫(可不加分號,其他時候需加分號;)
                select database()             查看自身所在哪個數據庫
                select user();                    查看用戶
                select version();               查看版本號
                show tables;                    查看所有表
                desc tablename;              查看表結構(字段,是否非空,主鍵)
                show create table tablename\G;          查看某個表是如何創建的
                insert into tablename values ''               插入表數據
                delete from tablename where clonename='cloneid'          刪除表數據
                truncate table tablename          清空表數據
                drop table tablename               刪除表
                
           3.5mysql備份與恢復
                mysqldump          mysql備份工具
                mysqldump -uroot -pken mysql > /data/mysql.sql          選項依次是:用戶名 密碼 數據庫名 重定向文件名
                mysql -uroot -pken discuz < /data/mysql.sql          利用反向重定向恢復數據庫
                數據庫表文件默認對應在 /data/mysql/mysql/   下的.frm .MYD .MYI     myisam存儲引擎
                mysqldump -uroot -pken mysql user > /data/user.sql          備份數據表
                mysql -uroot -pken mysql < /data/user.sql               利用反向重定向恢復數據表(不需要加表名)
                
      六、LNMP架構搭建與優化
            1.1php編譯安裝
                 
            1.4nginx啟動腳本和配置文件
                在/usr/local/conf/nginx/nginx.conf          目錄下寫入腳本文件,然后去掉server部分,添加外部引入語句:         include vhost/*.conf;
                保存退出在當前目錄下創建vhost文件夾,vhost目錄下創建default.conf,并將訪問目錄設置成一個(nginx用戶)不可訪問的目錄,作為默認虛擬主機,防止誤解析。去掉php解析部分代碼(設置默認虛擬主機后php解析沒有用了)
                創建test.conf虛擬主機配置文件
                
                注意第一個為默認虛擬主機     root:/tmp/www; deny all          做限制解析
       
            1.5php-fpm配置文件
                php-fpm.conf     和 php.ini          前者是php服務配置文件,后者是php全局配置文件
                 /usr/local/php/etc/php-fpm.conf         
       
            1.6常見502問題解決
                Permission denied          不可讀
                
                在php-fpm.conf文件中添加下面兩行
                listen.owner = nobody
                listen.group = nobody
                php-fpm -t     查看配置是否正確
                
           1.7nginx用戶認證
                curl -x127.0.0.1:80 uken:1 www.test.com/admin.php          使用curl的用戶名密碼登陸訪問控制的文件,-u用戶名:后跟密碼,x指定ip
                
                打紅線部分為nginx解析php的代碼
       
           1.8nginx域名跳轉
                直接在server_name 后添加如:
              301重定向語句
              if ($host !='www.test.com')
           {
                   rewite ^/(.*)$ http://www.test.com/$1 permanent; 
            }
           1.9nginx不記錄指定文件類型日志
                在nginx虛擬主機配置文件root /data/www     下一行添加訪問日志路徑: access_log /tmp/access.log combined_realip;
                然后再添加不記錄指定文件類型日志如下:
                
                
           2.0nginx日志切割
                vim /usr/local/sbin/nginx_logrotate.sh
                #!/bin/bash
                d=`date -d "-1 day" +%F`
                [-d /tmp/nginx_log] || mkdir /tmp/nginx_log
                mv /tmp/access.log /tmp/nginx_log/$d.log
                /etc/init.d/nginx reload > /dev/null
                cd /tmp/nginx_log/
                gzip -f $d.log
                
                gzip -f          如果日志已經壓縮過,使用-f選項可以強制壓縮覆蓋不提醒
                
           2.1nginx配置靜態文件過期時間
                location ~ \.(js|css)
                {
                     access_log off;
                     expires 2h;
                }
       
           2.2nginx配置防盜鏈
                location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|rar|zip|gz|bz2)$
                {
                     access_log off;
                     expires 15d;
                     valid_referers none bloked *.test.com *.aaa.com;
                     if ($invalid_referer)
                     {
                          return 403;
                     } 
                }
                測試:curl -e "http://baidu.com/erwds" -I -x192.168.1.178:80 'http://test.com/static/image/logo.png
                curl -e選項可以指定referer
       
          2.3nginx的訪問控制
                location ~ .*admin\.php$ {
                     allow 127.0.0.1;
                     deny all;
                     include fastcgi_parems;
                     fastcgi_pass unix:/tmp/www.sock;
                     fastcgi_index index.php;
                     fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
                }
                curl -x192.168.1.178          指定來源ip
                白名單和黑名單
           
           2.4nginx禁止指定user_agent
                if ($http_user_agent ~ 'curl|baidu|1111')
                {
                     return 403;
                     }
                測試curl -A "fsdjlksdfbaidu" -x192.168.1.178:80 test.com -I     curl -A選項指定user_agent
       
           2.5nginx代理詳解
                vim proxy.conf
      upstream ken {
         server 61.135.169.125:80;
         server 61.135.169.121:80;           
      }
                server  {
          listen 80;
          server_name baidu.com www.baidu.com;
          
          location / {
                proxy_pass http://ken/;
                proxy_set_header Host $host;
           }
      }
                     (待整理)
       
      七、linux常用服務部署與優化
            1.1nfs部署和優化-1
                NFS == network file system
                yum install -y nfs-utils rpcbind          客戶端與服務端通信rpcbind
                vim /etc/exports
                寫入:/mnt 192.168.1.177(rw,sync)                選項rw可讀可寫,ro可讀
                /etc/init.d/rpcbind start
                /etc/init.d/nfs start
                在客戶端安裝:yum install -y nfs-utils
                showmount -e 192.168.1.178
                mount -t nfs 192.168.1.178:/mnt /opt
                df -h          查看磁盤使用情況
       
           2.2nfs部署和優化-2
                /mnt 192.168.1.177(rw,sync,all_squash,anonuid=500,anongid=500)
              客戶端執行:umount /opt/          (出現:umount.nfs: /opt: device is busy     加上-l選項:umount -l /opt/ )
              重新掛載:mount -t nfs -onolock,nfsvers=3 192.168.1.178:/mnt /opt          (-o:不加鎖,nfsvers指定版本)
           2.7mysql主從配置-1
                replication          主從也叫AB復制(把主的日志復制到從上,從根據日志將數據復制,從而的達到兩個數據庫數據保持一致)。
                需要把A操作的動作記錄下來,然后把數據推到從上去。
                rm rf /usr/local/mysql          刪除舊版本mysql
                cd /usr/local/src               下載源碼包保存路徑
                
           3.5iredmail安裝
                iRedmail:postfix 發郵件 dovecot 收郵件 apache mysql openldap policyd amavisd
           roundcube awstat fail2ban iRedAdmin
                cd patches
                sed -i 's/iredmail.org/106.187.51.47/g' get_all.sh
                cd ..
                sh iRedMail.sh
      posted @ 2016-01-11 19:32  罌粟花的博客  閱讀(1403)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产a在视频线精品视频下载| 老熟妇乱子交视频一区| 嵊州市| 99久久婷婷国产综合精品青草漫画 | 五寨县| 久久夜色精品国产网站| 日韩av综合中文字幕| 国产精品久久久一区二区| 人人做人人澡人人人爽| 久久精品国产国产精品四凭| 国产极品美女网站在线观看| 成年女人片免费视频播放A| 国产无遮挡猛进猛出免费软件| 开心一区二区三区激情| 色欲精品国产一区二区三区av| 久久国产国内精品国语对白| av一区二区中文字幕| 成人亚欧欧美激情在线观看 | 亚洲国产精品一区二区久| 国产尤物精品自在拍视频首页| 日本丰满护士bbw| 国产成人精品亚洲高清在线| 国产亚洲国产精品二区| 国偷自产av一区二区三区| 亚洲精品综合一区二区三区| 国产乱码1卡二卡3卡四卡5| 无码中文字幕乱码一区| 日韩亚洲国产激情一区二区| 十八禁午夜福利免费网站| 亚洲免费观看视频| 日韩精品一区二区三区vr| 欧美日韩精品一区二区视频| 奇米777四色影视在线看| 亚洲老妇女亚洲老熟女久| av一区二区中文字幕| 亚洲精品美女久久久久99| 一区二区三区日本久久九| 日韩精品国产中文字幕| 精品综合久久久久久98| 一区二区三区鲁丝不卡| 欧美韩中文精品有码视频在线 |