2016年3月14日 星期一

實用的linux指令

  1. env 顯示目前系統中主要的預設變數內容
    set 顯示目前系統中全部的變數內容 (環境檔 /etc/profile)
  2. cp -arfu 來源檔 目的(檔) a維持原屬性 r遞迴複製(目錄複製用) f強制 u是目標檔案與來源檔案有差異時才會複製
  3. userdel -r 刪除帳號連同資料夾
    passwd -d username 刪除密碼
  4. ls 使用說明
    -lS 依檔案大小排序
    -lr 反向排序
    -lt 依建檔時間排序
  5. head / tail  -20 顯示文字檔案前/後之資料20筆
  6. wc -clw (位元組數/行數/字數)
  7. grep -r 'how are you' /doc 在/doc資料夾中搜尋字串
    grep 'how are you' t1.txt 在t1.txt文件中搜尋字串
    grep -v '字串' 檔案 搜尋檔案中不為字串的資料
  8. find -maxdepth 3 -name '*.jpg' 在三層資料夾中尋找副檔名為jpg的檔案(參閱資料
    -mtime n :n 為數字,意義為在 n 天之前的『一天之內』被更動過內容的檔案;(0代表1天內發生的事)
    find -name '*.jpg' -exec rm {} + 找到副檔名為jpg的檔案並刪除
    • -user username
    • -name filename
  9. nmap [掃瞄類型] [掃瞄參數] [hosts 位址與範圍]
    1. nmap -O 或 nmap -A 可偵測遠端主機之作業系統
    2. [掃瞄類型]:主要的掃瞄類型有底下幾種:
      -sP:以 ping 的方式進行掃瞄,並列出有回應的IP,不作進一步測試。
      -sS:掃瞄 TCP 封包帶有 SYN 標籤的資料,列出有回應的網路服務埠(預設tcp)。
      -sT:掃瞄 TCP 封包已建立的連線,預設的掃瞄方式。
      -sU:以 UDP 的封包格式進行掃瞄
      -sO:以 IP 的協定 ( protocol ) 進行主機的掃瞄
    3. [掃瞄參數]:主要的掃瞄參數有幾種:
      -PT:使用 TCP 裡頭的 ping 的方式來進行掃瞄,可以獲知目前有幾部電腦存活(較常用)
      -PI:使用實際的 ping (帶有 ICMP 封包的) 來進行掃瞄
      -p :這個是 port range ,例如 1024-, 80-1023, 30000-60000 等等的使用方式
    4. [Hosts 位址與範圍]
      192.168.0.100 :僅檢查一部;
      192.168.0.0/24 :為 C Class 的型態,
      192.168.0.0-50,60-100,103,200 :這種是變形的主機範圍
    5. 範例
      nmap localhost  使用預設參數掃瞄本機所啟用的 port ( 預設情況下, nmap 僅會掃瞄 TCP 的協定)
      nmap -sTU localhost (分析本機之TCP/UDP兩種通訊協定)
      nmap -sP 172.16.0.0/16 區域網路追蹤哪些電腦存活
      nmap -sS 172.16.0.0/16 列出區域網路有回應的網路服務埠
      nmap -sT -p 80 172.16.3.3-100 掃描某段網路port80
  10. 壓縮工具(壓縮 解壓縮 副檔名)
    1. gzip gunzip .gz
    2. bzip2 bunzip2 .bz2
    3. zip -r xxx.zip 資料夾  -->壓縮一個資料夾
    4. unzip xxx.zip --->解壓縮
  11. fdisk指令說明
    1. m顯示指令說明
      p切割情形
      n建立新分割區
      t改變檔案系統類型
      d刪除分割區
      w寫入
    2. 範例
      1. fdisk /dev/sdb
        n , t , w
      2. 格式化
        mkfs -t ext4 /dev/sdb1 格式化成ext4格式
      3. 掛載某個目錄
        mkdir /home1
        mount -t ext3 /dev/hdb1 /home1
        umount /home1 ->卸載home1
        fdisk -l 觀看分割表
    3. 開機自動掛載
      1. vi /etc/fstab
        分割區 掛載的目錄 ext4格式 執行dump備份時,0代表不備份,1代表備份 執行fsck檢查檔案是否毀損,0不檢查,1優先檢查,2次之
      2. mount -a 安裝所有裝置以測試 (建議)
  12. 建立與管理使用者空間
    1. vim /etc/fstab
      LABEL=/home /home ext4 defaults,usrquota,grpquota  1 2
    2. 重開機
    3. cd /home
      guotacheck -guva -->產生aquota.user aquota.group (若無法產生,可先touch aquota.user , touch aquota.group,再guotacheck -guva兩次),建議定期檢測磁碟配額
    4. edquota -u spider (edquota spider) 編輯容量
      Filesystem  blocks  soft   hard  inodes soft hard
      /dev/sdb1  4997096  5000000  5000000  12722  0   0
    5. 複製設定予其他成員
      edquota -p spider ully 複製設定予ully
      edquota -p spider * -->複製至全部成員 ,每個分割區目錄都有一個lost+found,需想辦法避開
    6. quotaon -guva 執行quota
    7. repquota -a | grep ully --> 檢視ully容量
    8. 啟用與停用
      quotaon -vaug | quotaoff -vaug
  13. 查詢網域DNS架構
    host -a wles.chc.edu.tw
  14. free -m / -g 查看記憶體使用情形(MB / GB)
  15. uptime 開機多久了
  16. last 查看登入記錄
  17. hostname 查看主機名稱
  18. chkconfig --list 顯示全部的服務
  19. 列出Apache Log之訪客IP取出IP欄位 ( cut ) 排序 ( sort ) 取出重複資料只顯示一次 ( uniq )cat access_log | cut -d ' ' -f 1 | sort  | uniq
  20. 利用sftp上傳資料夾
    1. sftp user@ip
    2. put -r 本地端dir/. (. 記得加上) 或是 put -r 資料夾 上傳整個資料夾
      lpwd lls(本地端)、pwd ls(遠端)
  21. 利用scp上傳資料(如果已知道伺服器上的檔案檔名適用)
    1. 選項與參數:-p :保留原本檔案的權限資料-r :複製來源為目錄時,可以複製整個目錄 (含子目錄)
    2. scp [-pr] 檔案(資料夾) user@ip:資料夾 -->本地端上傳
      scp [-pr] user@ip:資料夾 檔案(資料夾) -->遠端下載
  22. systemctl的用法(詳閱systemd說明
    1. systemctl enable / disable 服務(例如smb nmb),一開機自動啟動服務
    2. systemctl start / stop / restart 服務(例如smb nmb),啟動/停止/重新啟動服務
    3. systemctl list-units 列出全部已啟用的服務(或systemctl即可)
    4. systemctl list-units --type=service 只列出 service 類型的服務(常用)