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

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

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

      【學習筆記】兄弟連LINUX視屏教程(沈超 李明)

      發現自己的linux水平楞個瓜皮,找個視屏教程學習一哈

      1 linux系統簡介

      1.1 UNIX和Linux發展史

      unix發展歷史:1969年,美國貝爾實驗室的肯.湯普森開發出unix系統,1971年丹尼斯·里奇發明C語言,1973年,unix用c重寫

      硬件平臺的概念  也就是cpu架構

      PowerPC      IBM          AIX

      PA-RISC       HP        HP-UX

      SPARC         Sun          Solaris

      IA(Intel、AMD、Cyrix、RISE…)      Red Hat Linux、Ubuntu…   linux

      AIX和HP-UX是不能安裝在pc中,必須在特定的服務器上,Solaris可以

      freebsd  加州大學伯克利分校

      mac也是由unix演變來的

      linux發展歷史:1991年,Linus Torvalds和其他眾多愛好者開發完成

      Linux是開源軟件,源碼開放的UNIX

      內核官網:www.kernel.org

      版本號如  2.6.18

      目前最新  4.18.4

      次版本是偶數是穩定版奇數是開發版,這種說法在主版本更新到3就沒了

      發行版:redhat系列(yum)和debian系列(apt-get)

      fedora是rhel的實驗版本,要收費

      centos完全免費 社區維護

      gentoo linux不適合初學者

      SUSE在歐洲用的多,界面都快趕上unbuntu

      KNOPPIX不用安裝,類似livecd

      ubuntu界面漂亮,桌面用戶多點,server端并不多

      1.2 開源軟件簡介

      商業軟件是收費的

      開源軟件免費但是可以收服務費

      image

      使用、研究、散布及改良的自有

      1.3 Linux應用領域

      基于Linux的企業服務器

      www.netcraft.com 掃描和踩點網站

      嵌入式應用

      安卓、手機、平板、智能家電、航空、銀行、卡拉OK點歌系統、樹莓派

      1.4 學習方法

      善用工具

      英文

      忘掉windows思維方式

      2 Linux系統安裝

      磁盤分區

      分區類型

      主分區:最多4個

      擴展分區:最多1個,不能寫入數據,只能掛載邏輯分區

      主分區+擴展分區 最多4個

      邏輯分區

      格式化(高級格式化)又稱為邏輯格式化,是要在硬盤中寫入文件系統

      ext4  4k  數據塊 block

      i節點 inode列表

      低級格式化是硬盤操作不是操作系統操作

      硬件設備文件名:

      IDE硬盤             hd[a-d]                     

      SCSI/SATA/USB硬盤      sd[a-p]       

      光驅                    cdrom或sr0

      鼠標                     mouse

      打印機(25針)                 lp[0-2]

      打印機(USB)                 /dev/usb/lp[0-15]

      ide 133MB  最古老, scsi都淘汰了 200MB貴服務器

      SATA3 串口硬盤 500MB/s  現在一般都是這個

      邏輯分區不能占用1 2 3 4編號   5一定是第一個邏輯分區

      掛載:

      / 根分區

      swap分區 交換分區  內存1.5-2倍  不超過2G

      推薦分區/boot  啟動分區 200m即可 太大無用,系統啟動都要有空閑空間,防止系統寫滿導致無法啟動,寫完之后永遠不會往這個分區再寫入數據,他永遠有空閑空間  boot分區一定是sda1第一個分區

      掛載點必須是空目錄

      安裝日志:

      /root/install.log:存儲了安裝在系統中的軟件包及其版本信息

      /root/install.log.syslog 存儲安裝過程中留下的事件記錄

      /root/anaconda-ks.cfg 已Kickstart配置文件的格式記錄安裝過程的選項設置  作為無人值守安裝的模板

      linux 嚴格區分大小寫

      命令全是小寫

      文件名區分大小寫

      tab鍵自動補全

      linux中一切皆文件  設備文件是特殊的文件

      永久生效都要寫入文件  寫入內存的都是臨時生效

      linux不通過擴展名區分文件類型

      linux存儲設備都必須掛載后才能使用

      目錄作用

      /bin  存放系統命令,普通用戶和root都可以執行

      /sbin 保存和系統環境設置相關的命令,只有root能執行

      /usr/bin

      /usr/sbin

      /boot 系統啟動目錄

      /dev 設備文件

      /etc  配置文件

      /home 宿主目錄

      /lib 系統函數庫

      /lost+found/ 當系統崩潰或意外關機而產生的文件碎片。當系統啟動過程fsck工具會檢查這里,并修復系統   每個分區都有自己的這個目錄

      /media 掛載目錄   多媒體設備  光盤

      /mnt 掛載目錄 u盤移動硬盤或其他操作系統分區

      /misc 掛載目錄 系統建議用來掛載nfs服務的共享目錄

      /opt 第三方軟件保存位置  用處不多,現在外部軟件一般放/usr/local目錄

      /proc 虛擬文件系統  放內存中 當前系統的進程和硬件信息

      /sys  虛擬文件系統  放內存中 存放內核相關信息

      /root  root家目錄

      /srv  服務數據目錄

      /tmp 臨時

      /usr 系統軟件資源目錄

      /var 動態數據保存位置。保存緩存、日志及軟件運行產生的文件

      usr  unix system resource

      服務器不允許關機,只能重啟

      重啟時應該關閉服務

      不要在服務器訪問高峰運行高負載命令

      遠程配置防火墻時不要把自己踢出服務器

      合理分配權限

      定期備份重要數據和日志

      mint 默認不啟用root用戶,sudo passwd root來啟用

      mint也默認不啟用ssh,sudo apt-get install openssh-server然后修改配置文件vi /etc/ssh/sshd_config 修改PermitRootLogin yes行,來允許root用戶ssh遠程登陸

      3 常用命令

      3.1 文件處理命令

      命令格式  命令 [-選項] [參數] ls -al /etc     中括號表示可選

      個別命令不遵守此格式 多個選項可以寫一起  簡化選項和完整選項  -a  –all

      目錄處理命令:

      ls  list    /bin/ls  -aldh

      所有者  所屬組  其他人  ugo rwx  讀寫執行權限  777 軟鏈接 硬鏈接

      -表示文件 d表示文件 l表示link

      .開頭的文件表示隱藏文件   .當前目錄  ..父目錄

      mkdir /bin 創建目錄   -p 表示遞歸創建 -m=mode  可以同時創建多個目錄 空格分割

      cd 切換目錄 change directory  shell內置命令

      pwd  /bin 顯示當前目錄

      rmdir  remove empty directories  /bin   刪除空目錄

      cp copy /bin   -rp   r表示遞歸 p保留文件屬性 可以復制多個文件

      mv move /bin  剪切、改名 可以剪切多個

      clear ctl+l  清屏

      rm 刪除文件 remove /bin -rf f表示強制執行

      文件處理命令:

      touch /bin 創建空文件 文件名如果是有空格 加雙引號 不建議

      cat 查看文件 /bin -n 顯示行號

      tac 導致顯示

      more 分頁顯示文件內容 /bin   空格或f 翻頁 q或Q退出 enter換行

      less 同more不過可以向上翻頁  pageup 上箭頭 還可以搜索 /詞兒  高亮顯示搜索到的  n顯示下個搜索到的

      head 查看前幾行 -n  默認10行

      tail -fn  查看后幾行  -f實時監控

      鏈接命令:

      ln link /bin  ln -s [原文件] [目標文件]  -s表示軟連接  不加表示硬鏈接

      軟連接類似win快捷方式,l標記權限全是777 軟連接很小

      硬鏈接和原文件的i節點相同

      硬鏈接刪除源文件,目標文件依然可以使用。軟鏈接一旦刪除源文件,目標文件不可用

      和cp -p的不同處 修改一處后,另外一處也會同時更新。

      硬鏈接不能跨分區  硬鏈接不能對目錄使用

      3.2 權限管理命令

      chmod  root和所有者可以改權限

      change the permissions mode of a file

      /bin

      -R 遞歸修改 mode=421 {ugoa}+-={rwx}

      可以同時進行多個授權

      更多的是用數字方式 777 表示擁有全部權限

      對目錄 r表示可以列出目錄內容  w表示可以在目錄中創建 刪除文件 x可以進入目錄

      刪除文件的權限是對所在目錄有寫權限

      對目錄有r權限就一般有x權限

      chown  只有root可以改

      change file ownership

      chgrp

      useradd

      groupadd

      一般誰創建的文件 誰就是所有者

      一個用戶有多個組 單有個缺省組  文件的創建者的缺省組就是文件的所屬組

      umask -S 缺省權限   u=rwx,g=rx,o=rx

      創建目錄的權限和缺省權限一樣

      創建文件的權限是缺省權限去除x權限  防木馬病毒

      umask          0022   0 特殊權限  022  真正的權限是777-022=755

      umask 023

      3.3 文件搜索命令

      find  搜索會占用大量資源 不要在服務高峰期使用 window中everything挺好用的,不過沒有linux版本,并且只支持ntfs分區

      /bin      find [搜索范圍] [匹配條件]

      -name 根據文件名搜索  find /etc -name init

      通配符  *匹配任意字符       ?匹配單個字符

      -iname  忽略大小寫

      搜索范圍越小越好  能不在根目錄下就不要全局搜索 嚴重耗費資源

      -size 指定文件大小   +-  linux一個數據塊512B  就是0.5k   查找大于100M的文件find / -size +204800

      -user  找所有者的文件

      -group 找所屬組的文件

      根據時間屬性查找

      -amin 訪問時間 access

      -cmin 文件屬性 change

      -mmin 文件內容 modify

      find /etc -cmin -50  查找50分鐘以內修改過文件屬性的文件 +-

      連接選項  -a兩個條件同時滿足 -o兩個條件滿足任一           find / -size +163840 -a -size -204800

      find /etc -name init -exec ls -l {} \;                  -exec/-ok 命令 {} \; 對搜索結果執行操作     -ok有確認詢問

      -type 根據文件類型  f文件 d目錄 l軟連接

      -inum 根據i節點查找        可以找硬鏈接

      locate命令

      /usr/bin 在文件資料庫中查找

      yum install -y mlocate

      會定期更新

      速度快

      updatedb 初始化

      locate -i 不區分大小寫

      /tmp目錄不被收錄  某些目錄不被收錄

      which 命令搜索  which ls  還能搜到命令別名

      whereis  還能搜到幫助文件

      grep  -i 不區分大小寫  -v排除指定字符串  ^表示行首  反向查找 屏蔽

      3.4 幫助命令

      man manual /usr/bin

      可以查命令幫助 也可以查配置的幫住

      man ls

      man services  不可以寫絕對路徑

      可以    /內容   查找

      man passwd 優先查命令   1一般是命令的幫住 5一般是配置文件的幫住

      man 5 passwd 是查配置

      whatis 可以查到命令的簡短介紹  就是幫助文檔的name部分

      apropos 可以查配置文件的簡短介紹 也不要加絕對路徑

      –help  只看選項 不會man那么長

      info 和man大同小異

      help  可以查看shell內置命令的幫助

      shell內置命令找不到路徑

      3.5 用戶管理命令

      useradd 加用戶

      passwd 改密碼  普通用戶改自己密碼需要滿足復雜度要求

      who 查看哪些用戶登錄   tty表示本地登錄 pts表示遠程終端

      w 查看登錄用戶及正在干嘛

      3.6 壓縮解壓命令

      絕大多數病毒很難感染壓縮文件

      常用壓縮格式

      .gz linux中常用格式 命令gzip  gunzip解壓縮 或者gzip -d        

      壓縮比很驚人 差不多5倍

      不過gzip只能壓縮文件 不能目錄

      壓縮解壓均不保留源文件

      .zip linux和win通用格式

      zip命令 保留源文件 -r壓縮目錄

      壓縮比差于gzip

      unzip解壓縮  不區分文件和目錄

      .tar .tar.gz可以壓縮目錄

      tar命令 -z 打包同時壓縮格式為gz -c打包  -v verbose詳細  -f 指定文件名  -x解包  -j打包同時壓縮格式為bz2

      .bz2   gzip的升級版

      bzip2命令 -k可以保留原文件 壓縮比驚人

      bunzip2 解壓縮.bz2文件 -k可以保留源文件 bzip2 -d也可以解壓

      tar -xjf 可以解壓.tar.bz2文件

      3.7 網絡命令

      write  發信息給服務器上其他用戶,登錄了的用戶才能發信息  最初的及時通訊 ctrl+d結束

      wall 給所有在線用戶發信 , writeall的意思

      ping  給遠程用戶發送icmp包,檢測目標是否存在,每經過一個路由節點ttl減少1  不同系統ttl初始值不一樣 可以大概判斷對方操作系統類型 linux是64

      ifconfig 查看當前網絡 eth0是初始網卡  lo是回環網卡用戶檢測tcpip是否通暢,mac地址是固話在網卡的只讀存儲器中的地址不可變

      ifconfig eth0 192.0.0.0 可以臨時更改ip

      mail 郵件命令 用戶不在線也可以 mail用戶名發信  mail啥都不跟收信 輸入help查看幫助 輸入序列號查看信 h可以看到信列表  d 1 刪除郵件

      last 重啟信息都有 所有用戶登錄信息  非常有效 常用的命令

      lastlog 同last只記錄最后一次登錄 lastlog -u 502指定用戶

      traceroute 顯示數據包到主機間的路徑   凡走過必留痕跡  結果顯示**是被該節點屏蔽了

      netstat 顯示網絡相關信息 -t tcp協議 -u udp協議  -l 監聽 -r路由 -n 顯示ip端口

      netstat -tlun 查看本機監聽的端口

      netstat -an 查看本機所有的網絡連接

      netstat -rn 查看本機路由

      tcp 傳輸控制協議 有三次握手協議  更可靠  類似打電話

      udp 用戶數據報協議 更快  類似發短信

      tcp才可以監聽端口  udp不可以  udp可以直接發送

      發起端口是隨機的  目標端口才是22 80等端口

      setup 修改網絡, 是redhat中特有的 其他版本沒有  永久生效

      yum install -y setuptool

      安裝工具組件如 ntsysv(系統服務)system-config-networktui(網絡服務)iptables(防火墻配置)

      yum install system-config-securitylevel-tui

      yum install iptables

      yum install ntsysv

      yum install system-config-network-tui  centos7,已經setup已經無法配置網絡了,該命令中無法找到,推薦使用nmtui命令

      service network restart 重啟網卡

      mount 掛載

      mount -t iso9660 /dev/sr0 /mnt/cdrom

      /dev/cdrom 是/dev/sr0的軟連接

      -t iso9660 可以不寫 默認就是

      umount /dev/sr0

      如果正在掛載目錄中,是卸載不了提示設備忙,要退出掛載目錄

      3.8 關機重啟命令

      shutdown

      shutdown -h now

      shutdown -h 8:30

      shutdown -r now

      shutdown -r 8:30

      最早期只有shutdown 可以正確保存服務,目前其他命令也可以不過推薦使用shutdown

      -c 取消前一個關機命令

      -h 關機

      -r 重啟

      服務器不能關機 只能重啟 謹記

      halt

      poweroff  相當于直接斷電  比較危險

      init 0

      上面3個命令也可以關機

      reboot重啟

      init 6也可以重啟

      系統運行級別:表示linux啟動時候可以進入的級別號

      0 關機

      1 單用戶      類似win啟動f8安全模式,啟動最小服務,啟動最小核心程序,用戶修復系統,只能root登陸,沒有圖形界面和win安全模式不一樣

      2 不完全多用戶,不含nfs服務    nfs驗證機制弱,不建議用這個文件共享

      3 完全多用戶

      4 未分配

      5 圖形界面

      6 重啟

      cat /etc/inittab 是init的配置文件  別改0或6   改錯就不好了

      X11代表圖形界面 X表示X-window

      runlevel 查詢系統運行級別

      logout 注銷  做完操作一定要退出  防止安全隱患

      4 Vim文本編輯器

      vim是vi的增強版

      vim是功能非常強大的全屏幕文本編輯器,是linux/unix中最常用的編輯器

      vim沒有菜單只有命令

      命令模式

      插入模式  iao進入 esc退出

      編輯模式   輸入: 進入編輯模式 命令以回車結束    :set nu 顯示行號   :wq保存退出

      插入命令

      a 在后面插入

      A 在行尾插入

      i 在前面插入

      I 在行首插入

      o 在下行插入

      O 在上行插入

      定位命令:

      :set nu 顯示行號

      :set nonu 取消行號

      gg 到第一行

      G 到最后一行

      nG 到第n行

      :n 到第n行

      $ 移到行尾

      0 移到行首

      刪除命令:

      x 刪除光標出字符

      nx 刪除光標所在處后n字符

      dd 刪除當前行

      dG 刪除光標所在行到文件尾

      D 刪除光標所在處到文件尾

      :n1,n2d刪除指定范圍行

      復制和剪切命令:

      yy 復制當前行

      nyy 復制n行

      dd 剪切當前行

      ndd 剪切多行

      p、P 粘貼到當前行下或者行上

      替換和取消命令

      r 替換單個字符

      R 多個字符替換,esc結束

      u 取消上一步操作  undo

      搜索和搜索替換命令:

      /string   搜索字符串 搜索時候忽略大小寫:set ic 取消 :set noic       n下一個

      :%s/old/new/g  全文替換    %s表示全文替換

      :n1,n2s/old/new/g   范圍替換   g可以換c  表示需要詢問

      不加g表示只對搜索字符串的首次出現進行替換

      保存退出命令:

      :w 保存

      :w new_filename 另存為

      :wq 保存退出

      ZZ 是:wq的快捷鍵

      :q! 不保存退出

      :wq! 強制保存退出 文件所有者和root可以操作

      導入命令執行結果 :r !命令     :r 文件名

      定義快捷鍵  :map 快捷鍵 觸發命令

      :map ^P I#<ESC>                ^P 是ctrl+v+p 來輸入 顏色不一樣 代表快捷鍵ctrl+p

      連續注釋  :n1,n2s/^/#/g

      :n1,n2s/^#//g

      :n1,n2s/^/\/\//g  避免轉義符  可以用#或者其他字符來表示分割

      ls是別名  \ls 轉義符可以使用ls本來命令

      自動替換  :ab mymail yongestcat@126.com

      這些設置重啟失效  要永久生效 要寫入對應用戶的home目錄下的vim配置文件 /root/.vimrc   這里面只能放編輯模式的命令  不用加:

      5 軟件包管理

      軟件包分類:

      源碼包(看到源碼 安裝慢 但是更加穩定執行效率高 系統高度適配 卸載方便 可以自由選擇所需功能,安裝步驟多,編輯時間長,安裝一旦報錯新手工解決)

            >腳本安裝包  特殊的源碼包 一般是install.sh安裝 給初學者用的

      二進制包(經過編譯 安裝快 資源利用率稍低 包管理簡單  源碼不可見 功能選擇不如源碼包靈活 依賴性):rpm包、系統默認包

      rpm命令管理

      httpd-2.2.15-15.el6.centos.l.i686.rpm

      軟件包名  軟件版本 軟件發布次數 適合的linux平臺 適合的硬件平臺  noarch表示適合任何硬件平臺  沒寫linux平臺表示適用所有linux平臺

      包名 安裝過的 /var/lib/rpm/中的數據庫

      包全名 未安裝過的  絕對路徑

      rpm包依賴性

      典型的是樹形依賴  a->b->c

      環形依賴 a->b->c->a   abc用一條命令安裝可以解決

      模塊依賴   模塊依賴查詢網站 www.rpmfind.net

      1.安裝軟件:執行rpm -ivh rpm包名,如:

      #rpm -ivh apache-1.3.6.i386.rpm     -i  install 安裝   -v 詳細  -h  顯示進度   –nodeps 不檢測依賴性,一般不用

      2.升級軟件:執行rpm -Uvh rpm包名。

      3.反安裝:執行rpm -e rpm包名。

      4.查詢軟件包的詳細信息:執行rpm -qpi rpm包名    可以查未安裝的包

      5.查詢某個文件是屬于那個rpm包的:執行rpm -qf rpm包名

      6.查該軟件包會向系統里面寫入哪些文件:執行 rpm -qpl rpm包名

      rpm -qa|grep

      rpm -qi  包名

      rpm -qf 文件名

      rpm -qRp 包名   查依賴

      rpm -V 校驗

      S 文件大小是否改變

      M 文件的類型或權限是否被改變

      5 MD5校驗是否改變

      D 代碼是否改變

      L 文件路徑是否改變

      U 文件的屬主是否改變

      G 文件的屬組是否改變

      T 文件的修改時間是否改變

      文件類型:

      c 配置文件

      d 普通文件

      g ghost文件,就是該文件不應該被rpm包含,很少見

      l 授權文件

      r 描述文件

      rpm包文件提取:

      rpm2cpio 包全名 | \                將rpm格式改為cpio格式

      cpio -idv .文件絕對路徑        i copy-in模式,還原      d還原時自動新建目錄   v詳細    cpio是一個標準工具,它用于創建軟件檔案文件和從檔案文件中提取文件

      yum在線管理

      自動解決依賴性問題,不能上網 可以用光盤作為yum源

      yum在redhat中需要收費

      網絡yum源 vi /etc/yum.repos.d/CentOS-Base.repo

      [base] 容器名稱

      name 容器說明,自己隨便寫

      mirrorlist 鏡像站點 可以注釋掉

      baseurl yum源服務器地址

      enabled 是否有效  不寫默認是1 表示有效

      gpgcheck  1表示rpm的數字證書生效

      gpgkey 數字證書的公鑰文件保存位置。不用修改

      yum命令

      yum list 查詢可用軟件包

      yum search 包名     查詢

      yum中沒有包全名概念,全用包名

      yum install -y 包名   安裝包

      yum -y update  包名    升級   如果沒寫包名就是全部升級包括內核  會導致服務器崩潰 因為需要本地配置些  慎用

      yum -y remove 卸載   會把依賴的包也卸載  這些卸載的依賴包可能被別的軟件依賴  卸載命令不安全

      安裝的時候最小化安裝   盡量不卸載  不全局升級

      yum grouplist  查詢軟件組

      yum groupinstall 軟件包組

      yum groupremove 軟件包組

      光盤yum源搭建:

      掛載

      網絡yum源失效   enable=0或者改名其他yum源文件

      修改 CentOS-Media.repo  enable=1 地址改為file:///mnt/cdrom

      源碼包安裝是人為手工指定安裝位置  而rpm是默認位置

      rpm默認安裝位置

      /etc/ 配置文件安裝目錄

      /usr/bin 可執行文件安裝位置

      /usr/lib  庫文件位置

      /usr/share/doc 手冊位置

      /usr/share/man 幫助文件位置

      源碼包一般安裝在  /usr/local/軟件名   這是系統給準備的第三方軟件位置

      安裝位置不同帶來的影響  服務的管理

      rpm包安裝的服務可以用系統服務管理命令service來管理,例如rpm包安裝的apache啟動方法/etc/rc.d/init.d/httpd start   或 service httpd start

      service 命令是紅帽專有命令  別的linux發行版不一定有

      service命令不能管理源碼包安裝的服務

      源碼安裝:

      需要gcc編譯器

      下載源碼包

      解壓 進入目錄

      ./configure  –prefix=/usr/local/apache2       定制功能、檢測系統環境是否符合、將定義的功能和檢測的信息寫入Makefile文件,用戶后續的編輯

      make && make install    編譯  編譯安裝           make clean

      報錯:安裝停止且出現warning、error、no等提示

      腳本安裝:

      自動安裝的源碼包  適合新手 下一步下一步那種

      debian系列中apt是apt-get、apt-cache、apt-config的集合

      apt 命令    取代的命令    命令的功能
      apt install    apt-get install    安裝軟件包
      apt remove    apt-get remove    移除軟件包
      apt purge    apt-get purge    移除軟件包及配置文件
      apt update    apt-get update    刷新存儲庫索引
      apt upgrade    apt-get upgrade    升級所有可升級的軟件包
      apt autoremove    apt-get autoremove    自動刪除不需要的包
      apt full-upgrade    apt-get dist-upgrade    在升級軟件包時自動處理依賴關系
      apt search    apt-cache search    搜索應用程序
      apt show    apt-cache show    顯示安裝細節

      當然也有apt獨有的命令

      新的apt命令    命令的功能
      apt list    列出包含條件的包(已安裝,可升級等)
      apt edit-sources    編輯源列表

      6 用戶和用戶組管理

      相關配置文件

      /etc/passwd   用戶信息文件   7個字段

      用戶名 密碼標志x表示有密碼 如果沒有的話 不校驗密碼登陸不過只能本機登陸 不能遠程

      UID 0:超級用戶 1-499 系統用戶(偽用戶 不能登陸不能刪除) 500-65535 普通用戶

      root不一定是管理員  uid=0的一定是管理員  普通用戶改為uid0就變成管理員了

      GID:初始組id

      用戶說明

      家目錄

      登陸之后的shell

      初始組:有且只有一個一般和用戶名相同   能改 但是不推薦改

      附加組:可以有多個

      影子文件 /etc/shadow    權限000      9個字段

      用戶:

      密文密碼sha512散列加密 比之前的md5更安全(同一個密碼加密出來的也不一樣)如果!!或者*表示沒有密碼表示不能登陸:

      密碼最后一次修改日期  時間戳  1970年1月1日 沒過1天 加1算出來的時間戳

      兩次密碼的修改間隔

      密碼有效期

      密碼到期前的告警天數

      密碼到期后的寬限天數 0表示過期后立即失效 -1表示密碼永遠不失效

      賬號失效時間 時間戳表示

      保留

      時間戳換算

      date -d “1970-01-01 16066 days”

      echo $(($(date–date=”2014/01/06″+%s)/86400+1))

      組信息文件/etc/group

      組名

      組密碼標志

      GID

      組中附加用戶

      添加用戶會生成一個同名組作為用戶主組

      /etc/gshadow 組名 組密碼 組管理員用戶名 組中附加用戶

      用戶的郵箱

      /var/spool/mail/用戶名/

      用戶模板目錄

      /etc/skel/

      用戶管理命令

      useradd 選項 用戶名

      -u UID? 手工指定uid

      -d 家目錄

      -c 用戶說明

      -g 組名

      -G 附加組

      -s shell

      用戶默認值文件/etc/default/useradd

      GROUP=100  #用戶默認組            公有模式  私有模式

      HOME=/home #用戶家目錄

      INACTIVE=-1 #密碼寬限天數(shadow文件7字段)

      EXPIRE=       #密碼失效時間(8)

      SHELL=/bin/bash #默認shell

      SKEL=/etc/skel  #模板目錄

      CREATE_MAIL_SPOOL=yes  #是否建立郵箱

      /etc/login.defs 定義了shadow文件中7 8字段之外的字段

      PASS_MAX_DAYS 9999    #  5字段

      PASS_MIN_DAYS              # 4

      PASS_MIN_LEN 5???#最小8位 這個5 沒用 現在pam文件生效

      PASS_WAR_AGE 7         #6

      UID_MIN   500

      UID_MAX 60000

      ENCRYPT_METHOD    SHA512

      添加用戶默認值都靠上面兩個文件

      passwd命令

      -S 查詢用戶密碼狀態 僅root可用

      -l 暫時鎖定用戶 僅root    shadow文件密碼暗文前面加雙!!

      -u 解鎖用戶  僅root

      –stdin 可通過管道符輸出的數據作為用戶的密碼

      echo “123” | passwd –stdin lamp   一般用與shell編程

      whoami

      usermod  修改用戶信息

      -u  修改uid

      -c 說明  有空格用雙引號

      -G 加入附加組

      -L  鎖定

      -U  解鎖

      chage 修改用戶密碼狀態

      -l 列出用戶的詳細密碼狀態

      -d 日期:修改密碼最后一次更改日期(shadow 3字段)

      -m 天數: 兩次密碼修改間隔(4字段)

      -M 天數: 密碼有效期(5字段)

      -W 天數: 密碼過期前警告天數(6字段)

      -I 天數: 密碼過期后寬限天數(7字段)

      -E 日期: 賬號失效是加(8字段)

      chage -d 0 king  要求用戶一登陸必須改密碼 其他的基本都不用記  直接修改shadow文件更直觀

      userdel命令  刪除用戶

      -r 同時刪除家目錄

      手工刪除用戶

      vi /etc/passwd

      vi /etc/shadow

      vi /etc/group

      vi /etc/gshadow

      rm -rf /var/spool/mail/lamp

      rm -rf /home/lamp

      id user1  查看用戶信息

      su 切換用戶

      – 選項表示同時切換環境變量   su root   和su – root    env命令可以查看環境變量

      -c 僅執行一次命令 不切換身份  su – root -c “useradd user3”

      groupadd 添加組

      -g GID  指定組id

      groupmod 修改組

      -g GID                    改組id

      -n 新組名               改組名

      groupdel 刪除組

      如果組中有用戶,組中有初始用戶 不能刪,如果是附加組 可以刪除

      gpasswd 把用戶添加組或者從組中移除

      -a  用戶名

      -d 用戶名

      7 權限管理

      ACL權限  解決身份不足問題  所有者所屬組其他人  不夠用

      查看分區ACL權限是否開啟

      dumpe2fs -h /dev/sda1   默認支持acl   Default mount options:    user_xattr acl

      -h 僅顯示超級塊中信息,而不顯示磁盤組的詳細信息

      臨時開啟分區ACL權限

      mount -o remount,acl /    #重新掛載根分區,并掛載加入acl權限

      永久開啟ACL

      vi /etc/fstab 文件  系統開機自動掛載   寫錯了的話 系統可能崩潰  一定小心

      defaults,acl    萬一默認不支持 后面,acl   重啟生效

      查看acl命令

      getfacl 文件名   不支持絕對路徑 報錯但是不影響

      設定acl權限

      setfacl命令

      -m  設定ACL

      -x   刪除指定ACL

      -b 刪除所有acl

      -d 設定默認acl

      -k 刪除默認acl

      -R 遞歸設置acl

      chown root:tgroup /project

      chmod 770 /project

      setfacl -m u:st:rx /project   u表示用戶 g表示組

      給用戶st賦予r-x權限,u:用戶名:權限

      setfacl -m g:group2:rx /project

      drwxr-xr-x+  2 root root      4096 Sep  6 11:41 king    多個+號表示有acl權限

      最大有效權限mask

      如果給用戶賦予了acl權限,是需要和mask的權限相與才能得到真正權限

      不影響所有者的權限 但是影響acl和所屬組的權限

      setfacl -m m:rx  文件名  設置mask

      setfacl -b 文件

      setfacl -x g:tgroup2 /project/

      遞歸acl權限  -R選項 注意只能放后面     老的文件都要遞歸設置下

      默認acl權限  如果給父目錄設定了默認ACL權限,那么父目錄中所有新建的子文件都會,只針對新文件  -R可以不取消

      setfactl -m d:u:用戶名:權限 文件名

      文件特殊權限

      SetUID的功能:(危險)

      只有可以執行的二進制程序才可以設定SUID權限

      命令執行者要對該程序有x權限

      命令執行者在執行該程序時獲得該程序文件的屬主的身份(在執行程序的過程中靈魂附體為文件的屬主)

      SetUID權限只在該程序執行過程中有效,也就是說身份改變只在程序執行過程中有效

      passwd命令有SUID權限  在執行期間可暫時獲得root身份得以改寫shadow文件

      -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

      cat沒有SUID權限,所以普通用戶不能查看/etc/shadow文件內容

      設定方法 4代表SUID

      chmod 4755 文件

      chmod u+s 文件名

      用戶必須對他有執行權限,否則顯示大寫S,表示報錯

      危險的SUID權限,系統一些SUID權限的是迫不得已,輕易不能設置,并且定期巡檢

      比如給vim加SUID權限,那么普通用戶,紅色表示危險,系統警告,然后vim普通用戶也能改系統關鍵信息比如shadow文件等

      SGID也可以針對目錄:(不那么危險)(用處不大)

      普通用戶必須對此目錄有rx權限,才能進入此目錄

      普通用戶在此目錄中的有效組會變成此目錄的屬組

      若普通用戶對目錄有w權限時候,新建的文件的默認屬組是這個目錄的屬組

      SGID針對文件:(危險)

      只有二進制可執行文件可以設置SGID

      命令執行者要有x權限

      命令執行時候組身份升級為該程序屬組

      只在執行程序時候有效

      locate命令就是這樣的 有SGID權限    臨時提升為slocate用戶組

      /var/lib/mlocate/mlocate.db數據庫

      SGID  在所屬組中有s權限   2代表

      chmod 2755 文件

      chmod g+s 文件名

      SBIT權限   黏著位權限  對root無效(不危險)

      只對目錄有效

      普通母對該目錄有wx權限,即普通用戶可以在此目錄擁有寫入權限

      如果沒有黏著位,因為木桶用戶有w權限,所以可以刪除此目錄下所有文件,包括其他用戶建立的文件。一旦賦予黏著位,除了root可以刪除所有文件,普通用戶就算擁有w權限,也只能刪除自己建立的文件,不能刪除其他用戶建立的文件

      chmod 1755 目錄

      chmod o+t 目錄

      chmod 7755 文件  特殊權限位 7沒有作用 根據需要賦予

      文件系統屬性chattr權限:     對root也能限制

      chattr [-RVf] [-+=aAcCdDeijsStTu] [-v version] files…

      +-=權限

      i:針對文件,那么不允許對文件刪除改名,也不能添加和修改數據 相當于鎖起來了;針對目錄,那么只能修改目錄下文件的數據 單不允許建立和刪除文件

      a:針對文件,那么只能在文件中增加數據,但是不能刪除也不能修改數據;針對目錄,那么只能在目錄中建立和修改文件,不能刪除文件

      lsattr命令: 文件系統屬性查看 -a -d

      這也不能限制到root 只是防止誤操作

      selinux可以限制root

      sudo權限   su指的是switch user,并不是super do

      root把本來只能超級用戶執行的命令賦予普通用戶執行

      sudo的對象是系統命令

      visudo   #實際修改的是/etc/sudoers文件

      root  ALL=(ALL)  ALL

      用戶或者組(%組名)    被管理的主機=(可使用的身份)   命令 (絕對路徑)

      man 5 sudoers

      8 文件系統管理

      分區和文件系統

      主分區:總共最多4個

      擴展分區:只能有1個,并且也算主分區的一種,主分區+擴展分區最多4個。但是擴展分區不能存儲數據和格式化,必須再劃分為邏輯分區才能使用

      邏輯分區:邏輯分區是在擴展分區中劃分的,如果是IDE硬盤,linux最多支持59個邏輯分區,入股歐式scsi硬盤linux最多支持11個邏輯分區

      邏輯分區從sda5開始編號,就算主分區不足4個,sd表示sata硬盤,hd表示ide硬盤,也就是第一個邏輯分區一定是5

      文件系統:

      ext2:是ext文件系統升級版本,red hat linux 7.2版本以前系統默認都是ext2文件系統。1993年發布,最大支持16TB的分區和最大2TB的文件

      ext3:和ext2支持大小一樣,區別是支持日志功能

      ext4(現在主流分區):centos6以后的主流分區,最大支持1EB和單個16TB文件,在性能、伸縮性、可靠性方便大量改進,ext4的變化是翻天覆地的,向下兼容ext3,無限數量子目錄、extents連續數據塊概念、多塊分配、延遲分配、持久預分配、快速FSCK、日志校驗、無日志模式、在線碎片整理、inode增強、默認啟動barrier等

      常用命令:

      df 統計文件系統的占用情況

      -h 人性化顯示

      du 統計目錄大小

      du -sh /etc/

      -h

      -s 統計和

      df和du統計根分區不一樣大小,df是從文件系統考慮,不僅考慮文件占用的空間,還要統計唄命令或程序占用的空間(最常見的就是文件已經刪除但是程序并沒有釋放空間),定期重啟還原系統狀態

      df看到的剩余空間才是真正的空間

      du命令是面向文件的,只會計算文件或目錄占用的空間

      fsck 文件系統修復命令

      -a 不用顯示用戶提示,自動修復文件系統

      -y 自動修復,和-a一致,不過有些系統只支持-y

      該命令不需要人工執行,系統啟動的時候自動檢測,知道就好

      dump2fs 顯示磁盤狀態命令,最主要是的看分區數據塊大小和是否支持acl

      mount 掛載命令

      mount [-l] 查詢系統中已經掛載的設備,-l會顯示卷標名稱   這些輸出內容又叫超級塊的內容

      mount -a 根據配置文件/etc/fstab的內容,自動掛載

      命令格式

      mount [-t 文件系統] [-L 卷標名] [-o 特殊選項] 設備文件名 掛載點

      fat32識別vfat  fat16 識別fat

      -t 文件系統:加入文件系統類型來指定掛載的類型,可以ext3,ext4,iso9660等文件系統

      -L 卷標名:掛載指定卷標的分區,而不是安裝設備文件名掛載    沒啥用處 起個別名的意思

      -o 特殊選項:可以指定掛載的額外選項

      atime/noatime  更新訪問時間/不更新訪問時間。訪問分區文件時,是否更新文件的訪問時間,默認更新

      async/sync      異步/同步,默認為異步

      auto/noauto    自動/手動,mount -a命令執行時,是否會自動安裝/etc/fstab文件內容掛載,默認為自動

      defaults 定義默認值,相當于rw,suid,dev,exec,auto,nouser,async這7個選項

      exec/noexec 執行/不執行,設定是否允許在文件系統中執行可執行文件,默認exec允許   有時候程序不能運行不一定是權限的事情

      remount 重新掛載已掛載的文件系統,一般用戶指定修改特殊權限     比較常用

      rw/ro 讀寫/只讀,文件系統掛載時,是否具有讀寫權限,默認是rw

      suid/nosuid  具有/不具有SUID權限,設定文件系統是否具有SUID和SGID的權限,默認是具有

      user/nouser 允許/不允許普通用戶掛載,設定文件系統是否允許普通用戶掛載,默認不允許只有root可以

      usrquota  寫入代表文件系統支持用戶磁盤配額,默認不支持

      grpquota 寫入代表文件系統支持組磁盤配額,默認不支持

      umount 設備文件名或者掛載點     –先卸載才能彈出光盤  真機器中不卸載     不能在光盤目錄中卸載會報錯正忙

      掛載u盤

      fdisk -l

      mount -t vfat /dev/sdb1 /mnt/usb

      linux默認不支持ntfs格式

      如何支持ntfs格式 :手工編譯內核 將新的驅動加進來;下載ntfs-3g插件 http://www.tuxera.com/community/ntfs-3g-download

      手工分區fdisk

      fdisk /dev/sdb

      m 幫助

      n 新建

      l 顯示

      d 刪除

      w 保存

      partprobe命令重新讀取分區表  有時候分區表正在被占用需要重啟才能下一步,那就直接用這個命令   當做分區之后必定執行的命令

      +2G

      格式化分區

      mkfs -t ext4 /dev/sdb1

      然后創建掛載點掛載即可

      自動掛載

      /etc/fstab配置文件6個字段

      第一字段:分區設備文件名或者UUID(硬盤通用唯一識別碼)  UUID防止分區改順序 dumpe2fs -h /dev/sdb1能查到UUID

      第二字段:掛載點

      第三字段:分區類型

      第四字段:掛載參數,和mount的掛載權限一致

      第五字段:指定分區是否被dump備份,0代表不備份,1每天備份,2 不定期備份    lost+found是自動備份位置

      第六字段:指定分區是否被fsck檢測,0代表不檢測,其他數字代表檢測的優先級,那么當然1的優先級比2高

      如果弄錯,系統啟動崩潰 所以不應該先重啟 應該mount -a

      如果崩潰  恢復   啟動時候輸入root密碼可以操作 不過根分區是只讀的  remount下掛為讀寫 然后重新編輯這個文件修復錯誤

      mount -o remount,rw /

      分配swap分區

      free命令  查看內存與swap分區使用狀況  -m 以兆顯示  -h

      cached(緩存):是指把讀取出來的數據保存在內存當中,當再次讀取時,不用讀取硬盤而直接從內存中讀取,加速了數據的讀取過程

      buffer(緩沖):是指在寫入數據時,先把分散的寫入操作保存到內存中,當達到一定程度再集中寫入硬盤,減少磁盤碎片和硬盤的反復尋道,加速了數據的寫入過程

      fdisk /dev/sdb   建立個邏輯分區  83標準分區  t來改變分區id 改為82 就是swap分區   partprobe

      格式化    mkswap /dev/sdb6

      swapon /dev/sdb6  加入swap

      swapoff /dev/sdb6  取消swap

      swap開機自動掛載  /etc/fstab  和普通一樣 掛載點是swap

      9 SHELL 基礎

      Shell是一個命令行解釋器,它為用戶提供了一個向Linux內核發送請求以便運行程序的界面系統級程序,用戶可以用Shell來啟動掛起停止甚至編寫一些程序。

      硬件–>內核–>Shell–>外層應用程序

      window圖形交互界面也是shell

      Shell還是一個功能強大的編程語言,易編寫,易調試,靈活性較強。Shell是解釋執行的腳本語言,在Shell中可以直接調用Linux系統命令。

      分類:Bourne Shell(linux識別為sh),C Shell(主要用在BSD版)

      Shell的兩種主要語法類型:Bourne和C  兩個語法結構完全不同

      Bourne家族主要包括:sh(單用戶模式用的是這個)、ksh、Bash(主流,和sh兼容)、psh、zsh

      C家族主要:csh、tcsh

      /etc/shells  可以查詢到系統支持哪些shell

      Shell腳本的執行方式:

      echo輸出命令   -e  支持反斜線控制的字符轉換

      \\  輸出\本身

      \a 輸出警告音

      \b  退格鍵

      \c  取消輸出行末的換行符。和“-n”選項一致

      \e ESCAPE鍵

      \f 換頁符

      \n  換行符

      \r 回車

      \t 制表符  tab

      \v 垂直制表符

      \0nnn 按照8進制ASCII碼表輸出字符。其中0為數字0零,nnn是三位八進制數

      \xhh 按照16進制ASCII碼表輸出字符。其中hh是兩位16進制數

      echo -e “\e[1;31m abcd \e[0m”

      \e[1;開啟顏色輸出

      \e[0m關閉顏色輸出

      30m=黑色  31m=紅色  32m=綠色 33m=黃色 34m=藍色 35m=洋紅 36m=青色 37m=白色

      第一個腳本

      vi hello.sh

      #!/bin/bash                                         這不是注釋   不寫不影響運行 單要求必須寫

      #The first program

      #Author:king

      echo -e “hello world”

      sh hello.sh

      cat -A顯示包括隱藏

      win和linux的回車符不一樣

      dos2unix來轉換文件

      bash基本功能

      歷史命令和補全

      歷史命令history -c 清空歷史命令 -w 把緩存保存~/.bash_history  正常登陸退出才寫入

      默認保存1000條 /etc/profile 可以更改

      上下箭頭可以調用歷史命令    !n可以可以重復第n條命令  !!重復執行上一條命令   !字符串 執行最后一條字符串開頭的命令

      ctrl+r 可以反查歷史命令

      命令 文件 目錄  都可以tab補全  多個的話 tab兩次列出可執行的

      命令別名和常用快捷鍵

      alias 別名=’原命令’

      命令執行順序:

      1.絕對路徑或者相對路徑

      2.別名

      3.bash內部命令

      4 按照$PATH環境變量定義的目錄查找順序找到的第一個命令

      unalias 別名     刪除別名

      永久別名生效.bashrc修改

      bash常用快捷鍵:

      ctrl+a  把光標移動到命令行開頭。如果我們輸入的命令過長

      ctrl+e  把光標移動到命令行結尾

      ctrl+c 強制終止當前命令

      ctrl+l 清屏 相當于clear

      ctrl+u 刪除或者剪切光標之前的命令

      ctrl+k 刪除或者剪切光標之后的內容

      ctrl+y 粘貼ctrl+u或者k的內容

      ctrl+r 在歷史命令中搜索,命令反查

      ctrl+d 退出當前終端

      ctrl+z 暫停,并放入后臺。這個快捷鍵牽扯工作管理的內容

      ctrl+s 暫停屏幕輸出

      ctrl+q 恢復屏幕輸出

      輸入輸出重定向:

      標準輸入輸出:

      設備  設備文件名 文件描述符 類型:

      鍵盤 /dev/stdin  0  標準輸入

      顯示器 /dev/sdtout 1 標準輸出

      顯示器 /dev/sdterr 2 標準錯誤輸出

      輸出重定向:

      標準輸出重定向  命令>文件  命令>>文件           分別是覆蓋和追加,把命令的輸出輸出到指定的文件或設備中

      標準錯誤輸出重定向  錯誤命令 2>文件  錯誤命令 2>>文件

      正確輸出和錯誤輸出同時保存:

      命令>文件 2>&1

      命令>>文件 2>&1

      命令 &>文件

      命令 &>>文件    這四個命令都是把正確輸出和錯誤輸出放到同一個文件

      命令 >> 文件1 2>> 文件2   正確放1,錯誤放2

      ls &>/dev/null   不管正確錯誤 只管執行就好

      輸入重定向:用的不多 一般只給源碼包打補丁時候用

      wc [選項] [文件名]

      -c 統計字節數

      -w 統計單詞數

      -l 統計行數

      命令<文件

      命令<<符號   。。。。 符號         常見的符號用EOF

      多命令順序執行與管道符:

      命令1 ; 命令2        多個命令順序執行,命令之間無任何邏輯聯系

      命令1 && 命令2  當命令1執行正確,命令2才會執行,1執行錯誤 2不執行

      命令1 || 命令2       當命令1執行不正確,則命令2才會執行  命令1執行正確,2就不執行

      dd命令  磁盤對拷命令

      dd if=輸入文件 of=輸出文件 bs=字節數 count=個數

      選項:if=輸入文件 制定源文件或源設備

      of=輸出文件      指定目標文件或者目標設備

      bs=字節數      指定一次輸入/輸出多少字節,即把這些字節看做一個數據塊

      count=個數  指定輸入/輸出多少個數據塊

      例子:date;dd if=/dev/zero of=/root/testfile bs=1k count=100000;date  可以看命令執行多長時間

      ls && echo yes

      ./configure && make && make install

      命令 && echo yes || echo no

      管道符  |

      命令1 | 命令2

      命令1的正確輸出作為命令2的操作對象

      ll -a /etc/ | more

      netstat -an |grep ESTABLISHED

      命令1必須執行正確否則命令2不執行

      grep -i 忽略大小寫 -n輸出行號 -v反向查找 –color=auto 搜索出的關鍵字用顏色顯示

      通配符:

      ?  匹配一個任意字符

      *    匹配0個或任意多個任意字符,也就是可以匹配任何內容

      []   匹配中括號中任意一個字符。[abc] a或者b或者c

      [-]  匹配中括號中任意一個字符。-代表一個范圍。[a-z]代表匹配任意一個小寫字母

      [^] 邏輯非,表示匹配不是中括號內的一個字符。[^0-9]代表匹配一個不是數字的字符

      bash中其他特殊符號

      ” 單引號。在單引號中所有的特殊符號,如”$”、”"(反引號)都沒有特殊符號

      "" 雙引號。 在雙引號中特殊符號都沒有特殊含義,但是"$"、"“和”\”是例外,擁”調用變量的值”、”引用命令”和”轉義符”的特殊含義

      反引號。反引號括起來的內容是系統命令,在bash中會先執行他。和$()作用一樣,不過推薦使用$(),因為反引號很容易看錯

      $() 和反引號一樣,用來引用系統命令

      # 在shell腳本中 #開頭的行代表注釋

      $ 用戶調用變量的值,如需要調用變量name的值,需要用$name的方式得到變量的值

      \ 轉義符,跟在\后面的特殊符號將失去特殊含義,變為普通字符。如\$將輸出$符號,而不是當做變量引用

      bash變量:

      用戶自定義變量、

      環境變量、

      位置參數變量(這種變量主要是用來向腳本當中傳遞參數或數據的,變量名不能自定義,變量作用是固定的)(其實是預定義變量的一種,因為較多單獨分類)、

      預定義變量(是bash中已經定義好的變量,不能自定義,變量作用也是固定的)

      變量設置規則:

      變量名稱可以由字母、數字、下劃線但是不能是數字開頭

      bash中變量的默認類型都是字符串型,如果要進行數值運算,則必指定變量類型為數值型

      變量用等號連接值,等號左右兩側不能有空格

      變量的值有空格,需要用單引號或者雙引號包括

      在變量的值中,可以使用\轉義符

      如果需要增加變量的值,那么可以進行變量值的疊加。不過變量需要用雙引號包含”$變量名”或用${變量名}包含

      可以把命令結果賦予變量,用反引號或$()

      環境變量名建議大寫,便于區分

      本地變量  就是用戶自定義變量

      變量定義 name=”king kong”

      變量疊加  aa=123 aa=”$aa”456 aa=${aa}789

      變量調用 echo $name

      變量查看set

      變量刪除unset name

      環境變量 :系統環境變量、自由定義的環境變量

      用戶自定義變量又稱作本地變量,因為只在當前的shell中生效,而環境變量會在當前shell和這個shell的子shell中生效。如果把環境變量寫入相應的配置文件,那么這個環境變量就會在所有shell生效

      設置  export 變量名=變量值   #申明變量

      env     #查詢環境變量

      unset 變量名  #刪除變量

      命令pstree 確定進程樹

      PATH   :分割的一個個路徑,是用于系統查找命令的路徑

      PATH變量疊加 PATH=”$PATH”:/root/sh

      PS1 (嚴格來說不是環境變量不能用env查看只能用set 他是系統預留專門用作定義系統環境的變量 對系統有特殊含義)

      定義系統提示符的變量

      \d:顯示日期,格式為“星期 月 日”

      \h:顯示簡寫主機名。如默認主機名“localhost”

      \t:顯示24小時制時間,格式為“HH:MM:SS”

      \T:顯示12小時制時間,格式為“HH:MM:SS”

      \A:顯示24小時制時間,格式為“HH:MM”

      \u:顯示當前用戶名

      \w:顯示當前所在目錄的完整名稱

      \W:顯示當前所在目錄的最后一個目錄

      \#:執行的第幾個命令

      \$:提示符。如果是root用戶為#普通用戶$

      PS1='[\u@\t \w]\$’

      位置參數變量:

      $0 $1..0表示命令本身  1 2 表示1 2的參數,10以上用括號${10},用于從命令行傳遞參數到腳本中

      $* 代表命令行所有參數,吧所有的參數看做一個整體

      $@ 代表命令行所有參數,所有的參數區分對待

      $# 代表命令行中所有參數的個數

      $*和$@不是很常用 能看懂即可,可以在執行命令同時輸入參數

      預定義變量:

      $?  上一次命令的結果的返回狀態   0正確執行  非0表示不正確執行  具體是哪個數字由寫命令的人決定

      $$  當前進程的進程號PID

      $!  后臺運行的最后一個進程的進程號PID

      命令后跟&符號 放入后臺執行  類似window最小化窗口

      接收鍵盤輸入(較位置參數變量更常用):

      read [選項] [變量名]

      -p “提示信息”

      -t 秒數   等待時間

      -n 字符數    只接收指定的字符數,就會執行  (不加的話回車結束)

      -s: 隱藏輸入的數據 適用于機密信息

      數值運算與運算符:

      declare -p aa 可以查看變量屬性

      -:給變量設定類型屬性

      +:取消變量的類型屬性

      -i 將變量生命為整數型(integer)

      -x: 將變量生命為環境變量

      -p:顯示變量的被聲明類型

      數值運算

      方法1:定義變量類型declare -i cc=$aa+$bb

      方法2:expr或者let數值運算工具 dd=$(expr $aa + $bb)      +左右兩側空格不能省略

      方法3(推薦):$((運算式))或者$[運算式]

      運算符:

      優先級(數值越高優先級越高)  運算符   說明

      13       -,+??單目正,單目負

      12  !,~       邏輯非、按位取反或補碼

      11??*,/,%   乘,除,取模

      10   +,-???加減

      9???<<,>>??按位左移,按位右移

      8  <=,>=,<,>?小于或等于、大于或等于、小于、大于

      7        ==,!=???等于,不等于

      6??&????按位與

      5??^????按位異或

      4??|???? 按位或

      3     &&???邏輯與

      2        ||????邏輯或

      1     =,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=  賦值、運算且賦值

      可以用小括號改變優先級

      變量測試與內容替換:

      image

      通過判斷x得到y的情況

      變量測試是通過顯示x的值,判斷y的值;程序執行時用于判斷,可以用 if 判斷同樣實現

      環境變量配置文件:

      source 配置文件

      . 配置文件

      強制讓配置文件直接生效  避免重登陸過程    .就是source的縮寫

      環境變量配置文件中主要是定義對系統的操作環境生效的系統默認環境變量,比如PATH,HISTSIZE,PS1,HOSTNAME等默認環境變量

      /etc/profile

      /etc/profile.d/*.sh

      ~/.bash_profile     –只對當前用戶生效 隱藏文件

      ~/.bashrc

      /etc/bashrc

      image

      /etc/profile的作用:

      USER變量:

      LOGNAME變量:

      MAIL變量:

      PATH變量:

      HOSTNAME變量:

      HISTSIZE變量:

      umask:

      調用/etc/profile.d/*.sh文件

      其他配置文件和登陸信息:

      注銷時生效的環境變量配置文件 ~/.bash_logout

      歷史命令~/.bash_history  是重要的配錯手段   給mysql設置密碼是明文放在這兒不安全  需要清空  其他情況不推薦清空

      Shell登陸信息   不要寫歡迎的,寫警告信息比較好 法律問題

      本地終端歡迎信息:/etc/issue      \反斜杠

      \d 顯示當前系統日期

      \s 顯示操作系統名稱

      \l 顯示登陸的終端號,比較常用

      \m  顯示硬件體系結構,如i386,i686

      \n 顯示主機名

      \o  顯示域名

      \r 顯示內核版本

      \t  顯示當前系統時間

      \u  顯示當前登陸用戶的序列號

      alt+f1 f6切換6個登陸終端

      遠程終端歡迎信息:/etc/issue.net

      轉義符在/etc/issue.net不能使用

      是否顯示歡迎信息,由ssh的配置文件/etc/ssh/sshd_config決定,假如”Banner /etc/issue.net”行才能顯示(記得重啟ssh服務)

      登陸后歡迎信息:/etc/motd   是登陸后的    之前兩個是登陸前的 不管遠程還是本地都生效

      正則表達式:

      基礎正則表達式:

      grep、awk、sed等命令可以支持正則表達式,正則是包含匹配,在文件中匹配符合條件的字符串

      通配符和正則在linux中有不小的區別 ,其他語言中大概是一致的, 通配符是完全匹配,ls、find、cp不認識正則,只識別shell自己的通配符

      正則和通配符有些符號通用但是含義完全不同

      元字符??????作用

      *??前一個字符匹配0次或者任意多次

      .??匹配除了換行符外任意一個字符

      ^??匹配行首。例如^hello會匹配以hello開頭的行

      $??匹配行尾

      []      和通配符一樣,匹配中括號中指定的任意一個字符,只匹配一個字符。

      [^]    匹配除中括號的字符以外的任意字符。如[^0-9]匹配任意一位非數字字符

      \??轉義符

      \{n\}  表示其前面的字符恰好出現n次。例如:[0-9]\{4\}匹配4位數字

      \{n,\} 表示其前面的字符出現不小于n次。例如:[0-9]\{2,\}表示兩位及以上的數字

      \{n,m\} 表示其前面的字符至少出現n次,最多出現m次

      linux中() + ?是屬于擴展正則表達式,用的不多

      字符截取命令:

      cut:提取列   字段提取命令  和grep結合使用  行列提取

      -f  列號       :      提取第幾列

      -d 分隔符:?指定分隔符   (默認制表符  而不要用空格)

      cat /etc/passwd |grep /bin/bash|grep -v root|cut -d “:” -f 1

      命令局限 分隔符不定的時候不好使

      printf 格式化打印命令 常用在下面awk命令

      printf ‘輸出類型輸出格式’ 輸出內容

      %ns:輸出字符串,n是數字指代輸出幾個字符

      %ni:輸出整數。n是數字指代輸出幾個數字

      %m.nf:輸出浮點數。m n是數字,指代整數位和小數位

      輸出格式:

      \a   輸出警告聲音

      \b   輸出退格鍵

      \f?清屏

      \n?換行

      \r?回車

      \t?水平輸出退格鍵,也就是tab鍵

      \v   垂直輸出退格鍵,也就是tab鍵

      printf  ‘%s’ $(cat student.txt)   #不調整輸出格式

      printf ‘%s\t %s\t %s\t %s\t %s\t %s\t  \n’ $(cat student.txt) #調整輸出格式

      print命令會在每個輸出后加換行符,linux默認沒有這個命令

      printf是標準格式輸出命令,并不會自動加入換行符,如果需要換行,需要手工加入換行符

      awk:提取列   都不叫命令了 awk編程  相對復雜太多

      awk ‘條件1{動作1}條件2{動作2}…’  文件名

      條件 (Pattern):

      一般使用關系表達式作為條件

      動作(Action):

      格式化輸出

      流程控制語句

      awk ‘{printf  $2 “\t” $6 “\n”}’ student.txt

      df -h|awk ‘{print $1 “\t” $3}’

      print在awk內部默認是有的,在linux系統中默認沒有

      awk默認是空格和制表符作為分隔符

      BEGIN命令   awk ‘BEGIN{printf “This is a test\n”}{print $2} ‘ student.txt

      FS內置變量 指定分隔符  awk ‘BEGIN{FS=”:”}{print $1 “\t” $3}’ /etc/passwd

      END命令   所有數據讀取完后執行END動作

      支持關系運算符

      cat student.txt | grep -v Name | awk ‘$6 >= 87 {printf $2 “\n”}’

      sed命令:是一種幾乎在所有unix平臺的輕量級流編輯器,主要是用來將數據進行選取替換刪除新增的命令,可以用管道符接收數據

      和vi不同的是,vi只能修改文件

      選項:

      sed [選項] ‘[動作]’ 文件名

      -n 一般sed命令會把所有數據輸出到屏幕,如果加入此選項,則只會把經過sed命令處理的行輸出到屏幕

      -e  允許應用多條sed命令編輯 多個動作之間用;分割

      -i  同時更新源數據

      動作:

      不加行號表示整個文檔

      a \:?追加,在當前行后添加一行或多行。添加多行時,除最后一行外,每行行尾需要用”\”代表數據未完結。

      c \:?行替換,用c后面的字符串替換原數據行,替換多行時,除最后一行外,每行行尾需要用”\”代表數據未完結。

      i \:?插入,在當期行前插入一行或者多行。插入多行時,除最后一行外,每行行尾需要用”\”代表數據未完結。

      d:?刪除,刪除指定行

      p:?打印,輸出指定的行

      s:?字符替換,格式為”行范圍s/舊字串/新字串/g” 類似vi中的替換

      sed ‘2p’ student.txt

      sed -n ‘2p’ student.txt

      df -h|sed -n ‘2p’

      sed ‘2,4d’ student.txt

      sed ‘2a hello’ student.txt

      sed ‘2i hello \

      word’ student.txt

      sed ‘2c no such person’ student.txt

      字符處理命令:

      排序命令sort  可從管道符接收

      sort [選項] 文件名

      -f 忽略大小寫

      -n   以數值型排序,默認使用字符串型排序

      -r    反序

      -t?指定分隔符,默認是制表符

      -k n,[m]   按照指定的字段范圍排序。從第n字段開始,m字段結束(默認到行尾)

      sort /etc/passwd

      sort -r /etc/passwd

      sort -t “:” -k 3,3 /etc/passwd

      sort -n -t “:” -k 3,3 /etc/passwd

      統計命令wc   可從管道符接收

      -l:只統計行數

      -w:只統計單詞數

      -m:只統計字符數

      條件判斷:

      按照文件類型進行判斷:

      LINUX中的七種文件類型

      d 目錄文件。

      l 符號鏈接(指向另一個文件,類似于瘟下的快捷方式)。

      s 套接字文件。

      b 塊設備文件,二進制文件。

      c 字符設備文件。

      p 命名管道文件。

      – 普通文件,或更準確地說,不屬于以上幾種類型的文件

      image

      -d -e -f 這三個最常用

      兩種判斷格式

      test -e /root/install.log

      [ -e /root/install.log ] 前后有空格

      echo $?判斷命令執行狀態  或者  [ -d /root ] && echo “yes” || echo “no”

      按照文件權限進行判斷:

      image

      不會分那么細  只有所有者所屬組其他人有一個人有寫權限  就認為真

      兩個文件之間進行比較:

      測試選項  作用

      文件1 -nt 文件2???判斷文件1的修改時間是否比文件2的新,如果新則真

      文件1 -ot 文件2  判斷文件1的修改時間是否比文件2的舊,如果舊則true

      文件1 -ef 文件2  判斷文件1是否和文件2的inode號一致,可以判斷是否為同一文件,判斷硬鏈接是很好的辦法

      兩個整數之間比較

      測試選項?????作用

      整數1 -eq  整數2     相等則true

      整數1 -ne  整數2?不相等則true

      整數1 -gt  整數2     大于則true

      整數1 -lt  整數2??小于則true

      整數1 -ge  整數2      大于等于

      整數1 -le  整數2??小于等于

      字符串比較:

      -z 字符串     空則true

      -n 字符串??非空則true

      字串1 == 字串2   等等則true

      字串1 != 字串2?不等則true

      多重判斷:

      判斷1 -a 判斷2???邏輯與

      判斷1 -o 判斷2?? 邏輯或

      ! 判斷                         邏輯非    注意有空格

      流程控制if語句:

      1、單分支if條件語句

      if [ 條件判斷 ]; then

      程序

      fi

      或者

      if [ 條件判斷 ]

      then

      程序

      fi

      注意點:if語句使用fi結尾,和一般語言使用大括號結尾不同

      [ 條件判斷 ] 空格不能省略

      then后面跟符合條件之后執行的程序,可以放在[]之后要用;分割,也可以換行寫入就不需要;了

      例子:判斷分區使用率

      #!/bin/bash

      #統計根分區使用率

      #Author:king

      rate=$(df -h | grep “/dev/mapper/centos-root” | awk ‘{print $5}’ | cut -d “%” -f1)

      #把根分區使用率作為變量賦值給變量rate

      if [ $rate -ge 80 ]

        then

          echo “warning! root si full”

      fi

      10 服務管理


      image


      啟動與自啟動

      查詢已安裝的服務

      rpm包安裝的服務

      chkconfig –list  #查看服務自啟動狀態可以看到所有rpm包安裝的服務

      ps aux    查看進程

      netstat -tlun  查看端口

      源碼包安裝的服務 查看服務安裝位置 一般是/usr/local/下

      rmp包安裝在默認位置/etc    /etc/rc.d/init.d/

      rpm 獨立服務的管理:

      /etc/init.d/     獨立服務的啟動腳本     /etc/rc.d/init.d/是一個 鏈接

      /etc/sysconfig/?初始化環境配置文件位置

      /etc/?配置文件位置

      /etc/xinetd.d/?基于xinetd服務的啟動腳本

      /var/lib/?服務產生的數據放在這里

      /var/log 日志

      獨立服務的啟動 /etc/init.d/獨立服務名 start|stop|status|restart

      service 獨立服務名 start|stop|status|restart      #紅帽專有命令

      獨立服務自啟動3中方法:

      1:chkconfig –list

      chkconfig –level 2345 httpd on                       #off

      chkconfig httpd off #默認就是2345 可以省略

      2:  vi /etc/rc.d/rc.local                     #系統啟動輸入賬戶密碼之前 所有程序啟動完之后  就執行這個文件 環境變量是在輸入密碼之后,所以這個文件中沒有環境變量,只能輸入絕對路徑, 把啟動標準命令放入  即可自啟動,推薦該方法

      3:使用ntsysv命令管理自啟動     不僅可以管理獨立服務 也可以管理基于xinetd的服務,但是同樣不能管理源碼包的服務(不推薦,是紅毛專有命令)

      基于xinetd服務的管理:了解下 基本不常用

      xinetd 超級守護進程  這個服務本身需要安裝   隨著linux版本,現在基于xinetd的服務越來越少,現在只有不太安全的telnet和少數其他的使用

      yum -y install xinetd

      yum -y install telnet-server

      xinetd本身是常駐內存的服務

      xinetd服務的啟動

      vi /etc/xinetd.d/telnet

      image

      xinetd服務的自啟動

      chkconfig telnet on

      ntsysv

      xinetd服務的啟動和自啟動是通用的 和獨立服務不一樣 ,這很反人類

      源碼包服務的管理:

      啟動:使用絕對路徑啟動 不同服務的啟動腳本不同  查看安裝說明得知

      自啟動:vi /etc/rc.d/rc.local

      讓service命令能識別源碼包服務

      在/etc/init.d/中加入軟連接即可

      讓源碼包的服務能被chkconfig與ntsysv命令管理

      image

      chkconfig –add apache

      雖然可以,但是不推薦這么干

      image

      11 系統管理

      進程管理:

      監控服務器  當服務器數量比較多的時候用

      ps aux #查看系統中所有進程  使用BSD操作系統格式   a前臺進程 x后臺進程 u顯示命令是誰執行

      ps -le #使用Linux標準命令格式

      USER 用戶

      PID  進程id

      %CPU  占用cpu

      %MEM  占用內存

      VSZ  占用虛擬內存大小 kb

      RSS 占用實際物理內存大小kb

      TTY 終端,tty1-tty7本地終端 tty1-tty6是本地的字符界面終端,tty7是圖形終端 pts/0-255代表虛擬終端   ?表示內核直接產生的

      STAT:進程狀態。常見狀態:R運行S睡眠T停止s包含子進程+位于后臺

      START:進程啟動時間

      TIME:該進程占用cpu的運算時間,注意不是系統時間

      COMMAND 命令名

      查看系統健康狀態 TOP

      -d 秒數 指定更新秒數 默認3秒

      在top命令的交互模式中可執行的命令:

      ?或h  顯示幫助

      P?以cpu使用率排序,默認就是

      M?以內存使用率排序

      N 以PID排序

      q 退出top

      第一行信息為任務隊列信息

      image

      第二行為進程信息

      image

      第三行為cpu信息

      image

      第四行為物理內存

      image

      第五行是交換分區

      image

      內存空閑率 cpu負載和系統壓力這三個是重要指標

      查看進程樹

      pstree

      -p 顯示進程pid

      -u 顯示進程所屬用戶

      進程終止:

      kill -l  #查看可用的進程信號

      常用的 1 9 15

      image

      kill pid  默認是15

      kill -1 2332 #重啟進程

      kill -9  2332  #強制終止

      killall [選項][信號] 進程名

      #按照名稱殺死進程

      -i  交互式

      -I 忽略大小寫

      pkill  [選項][信號] 進程名               不是標準終止命令

      #按照進程名終止進程  和killall一樣

      -t 終端號:按照終端號提出用戶

      pkill -9 -t tty1

      工作管理:

      把程序放入后臺    win中最小化就是放入后臺

      tar -zcf etc.tar.gz /etc  &     #命令后加&放入后臺

      ctrl+z放入后臺暫停

      查看后臺工作

      jobs [-l]

      -l 顯示job的pid

      +表示最近一個放入后臺的工作,也是工作恢復時,默認恢復的工作。-表示倒數第二個放入后臺的job

      將后臺暫停的工作恢復到前臺執行

      fg %工作號

      %工作號:%可以省略但是注意工作號和pid區別

      將后臺暫停的工作恢復到后臺執行

      bg %工作號

      top恢復到后臺還是stop狀態  因為這個命令必須和前臺交互

      后臺恢復執行的命令,是不能和前臺有交互的,否則不能恢復到后天執行

      系統資源查看:

      vmstat命令監控系統資源

      vmstat [刷新延時 刷新次數]

      如:vmstat 1 3

      dmesg開機時內核檢測信息

      dmesg | grep CPU

      free 查看內存使用狀態

      -b -k -m -g

      cache加速讀取  緩存

      buffer加速吸入 緩沖

      查看cpu信息

      cat /proc/cpuinfo

      uptime

      實際是top w命令的第一行

      查看系統與內核相關信息:

      uname [選項]

      -a 查看系統所有相關信息

      -r 查看內核版本

      -s 查看內核名稱

      file /bin/ls    #判斷當前系統位數    linux沒有直接命令查看位數命令   隨便file一個外部命令即可

      查看當前系統發行版

      lsb_release -a

      列出進程打開或者使用的文件信息

      lsof [選項]

      -c 字符串:只列出以字符串開頭的進程打開的文件

      -u 用戶名

      -p pid

      系統定時任務:

      crond服務管理與訪問控制:service crond restart

      chkconfig crond on

      服務后面的d代表守護進程

      crontab -e #進入crontab編輯界面。會打開vim編輯你的job

      crontab -l

      crontab -r

      * * * * * command      #前面5個*代表日期

      image

      image

      image


      12 日志管理


      centos6.x中日志服務已經由rsyslogd取代了原先的syslogd服務

      rsyslogd的新特點:

      基于TCP網絡協議傳輸日志信息;

      更安全的網絡傳輸方式;

      有日志消息的及時分析框架;

      后臺數據庫;

      配置文件中可以寫簡單的判斷邏輯

      與syslog配置文件相兼容

      確定服務啟動

      ps aux|grep rsyslogd

      chkconfig –list|grep rsyslog

      image

      image

      除了系統默認日志,rpm安裝的系統服務也會默認把日志記錄在/var/log目錄(源碼安裝的服務日志是在源碼包指定的目錄中)。不過這些日志不是由rsyslogd服務來記錄和管理,而是各個服務使用自己的日志管理文檔來記錄自身日志

      常見的

      image

      rsyslogd日志服務:

      基本日志格式包含四列:

      時間產生的時間

      主機名

      服務名或程序名

      時間的具體信息

      配置文件 /etc/rsyslog.conf

      image

      image

      image

      image

      image

      image

      日志輪替:舊日志被新日志替換

      日志文件的命名規則:如果配置文件中擁有dateext參數,那么日志會用日期來作為日志文件的后綴,例如 secure-20130605,這樣的話日志文件名不會重疊,所以也就不需要日志文件名的改名,只需要保存指定的日志個數,刪除多余的日志文件即可。

      如果沒有dateext參數,那么日志文件就需要改名了。當第一次進行日志輪替時,當前的secure日志會自動改名為secure.1等,以此類推。

      大多數以第一種方法

      logrotate   /etc/logrotate.conf

      image

      image

      image

      所有rpm包安裝的都會自動輪替,源碼包安裝的要按照上面的方法加入輪替,實際上是變成了系統定時任務

      logrotate命令

      logrotate [選項] 配置文件名

      如果此命令沒有選項,則會按照配置文件中的條件進行日志輪替

      -v 顯示日志輪替過程

      -f 強制進行日志輪替。不管輪替條件是否符合,強制配置文件中所有的日志進行輪替

      13 啟動管理


      系統運行級別:

      image

      runlevel 查看當前運行級別

      init 運行級別     #改變運行級別  如果切換錯誤  運行級別也會改變 可以欺騙系統

      系統默認運行級別  vim /etc/inittab            這個文件在centos7中已經淘汰

      id:3:initdefault:

      系統啟動過程:

      image

      image

      image

      image

      image

      image

      啟動引導程序Grub配置文件

      image

      vi /boot/grub/grub.conf 或者etc下目錄的軟連接

      image

      image

      grub加密:

      grub-md5-crypt  #生成加密密碼串   還是md5   用戶密碼是sha512

      image

      純字符界面分辨率調整:

      grep “CONFIG_FRAMEBUFFER_CONSOLE” /boot/config-2.6.32-279.el6.i686   #查詢內核是否支持修改分辨率

      image

      image

      image

      有些不支持10進制 要改為16進制  redhat系列是支持10進制的

      系統修復模式:

      grub界面按b鍵進入單用戶模式:修復

      遺忘root密碼

      修改系統默認運行級別

      光盤修復模式:理論可以修復一切問題

      可以修復grub密碼

      image

      image

      image

      服務器安全指的是網絡安全,如果你拿到了真實機器,那么就認為你有它所有權

      14 備份與恢復


      image

      雞蛋不要放在同一個籃子

      企業數據要異地備份

      image

      備份策略:

      完全備份

      增量備份

      差異備份

      image

      image

      image

      目錄不支持增量備份

      image

      image

      image

      posted @ 2019-10-25 11:08  九命貓幺  閱讀(3573)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 午夜射精日本三级| 国产成人无码免费视频在线| 99国精品午夜福利视频不卡99| 日本高清视频网站www| 成人拍拍拍无遮挡免费视频| 欧洲免费一区二区三区视频| 天堂av网一区二区三区| 国产一区二区视频啪啪视频 | 精品国产成人国产在线视| 202丰满熟女妇大| 亚洲码欧洲码一二三四五| 永川市| 国产精品爽爽爽一区二区| 国产情侣激情在线对白| 亚洲 自拍 另类 欧美 综合| 国内精品久久久久久久coent| 亚洲一区二区三区在线播放无码| 男女xx00xx的视频免费观看| 久久精品蜜芽亚洲国产av| 日本一区二区三区有码视频| 亚洲欧美日韩综合久久久| 疯狂做受XXXX高潮国产| 亚洲中少妇久久中文字幕| 亚洲人成人网站色www| 国产在线无码不卡播放| 少妇午夜啪爽嗷嗷叫视频| 午夜福利国产区在线观看| 免费无码成人AV片在线| 国产成人综合欧美精品久久| 久久精品国产清自在天天线| 成人影片麻豆国产影片免费观看| 亚洲色婷婷综合开心网| 国产亚洲av夜间福利香蕉149| 成人网站免费观看永久视频下载| 崇仁县| 亚洲欧美在线一区中文字幕| 精品无码午夜福利理论片| 丰满少妇高潮无套内谢| 久久国内精品自在自线观看| 内射老阿姨1区2区3区4区| 最新av中文字幕无码专区|