使用者工具

網站工具


computer:cli

這是本文件的舊版!


命令字元

Terminal

Shell

fish

Bash

Zsh

設定

Tool

介面

排版

時間

排程

計算

檔案管理

搜尋

資料

設定

系統資訊

SSH

資源

書籍

LINUX

監控

路徑

檔案操作

  • 清除Windows的Thumbs.db
    find -depth -type f -name "Thumbs.db" -exec rm {} \;
  • 刪除空資料夾
    find -depth -type d -empty -exec rmdir {} \;
  • 刪除SVN資料夾
    find -depth -type d -name .svn -exec rm -rf {} \;
    find -depth -type d -name .svn -exec rm -rf {} +


    Using ; vs + with exec in find

    find -type d -name .svn -delete
  • 檔名字串片段取代更名:rename
  • 轉換檔名編碼或大小寫:convmv
  • PNG最佳化:optipng
  • find -newermt yesterday -ls
  • diff -rq DIR1 DIR2

遠端備份

    • rsync -avzh --progress -e ssh wm@localhost:~ /home/.
    • rsync -a src/ dest

      for renaming folder, a trailing slash on the source avoids creating an additional directory level at the destination.

    • ssh-keygen -t rsa
      cat ~/.ssh/id_rsa.pub | ssh server-user@server-host "cat >> ~/.ssh/authorized_keys"

      特別注意的是“Enter passphrase”的地方請直接壓enter,這樣才能不用輸入密碼。

    • ssh-copy-id
  • scp -p 帳號@主機位址:/home/who/xxx.file /home/who/.

常用指令

  • 在Linux中最常使用到的指令,和最常用到的參數。

※ ls 列出目錄

  • -a 連隱藏檔都列出
  • -l 列出詳細資訊
  • -d 只顯示目錄訊息而非目錄下的檔案
  • -R 遞迴列出檔案及子目錄其下的所有子目錄和檔案

※ pwd 顯示使用者目前的目錄

  • -p 則將結徑目錄顯示出來 (專門用在連結目錄)

※ mkdir 建立目錄

  • -m 直接設定目錄屬性 (mkdir -m 700 test)
  • -p 建立目錄中的子目錄 (mkdir -p test1/test2)

※ mv 移動檔案或改檔名

  • -f 強制移動
  • -i 已存在目的檔,會詢問是否over wirte

※ cp 檔案複製

  • -i 若已存在則會詢問要否over write
  • -f 強制複製或取代
  • -a 完全複裂含使用人,屬性一樣的複制過來 (用在root)
  • -r 用於目錄copy (重要)
  • -d 若來源檔為連結檔的屬性,則複製連結檔而非檔案本身
  • -s 複製成符號連結檔
  • -l 複製成硬式連結檔

※ rm 移除檔案

  • -f 強制移除
  • -r 用於移除目錄
  • -i 會詢問使用者是否真的要移除

※ cat 看檔

  • -n 印出行號
  • -A 可列出一些特殊字元

※ more 分頁顯示檔案內容

  • enter 下翻一行
  • space 下翻一頁
  • :f 顯示目前行數和檔名
  • q 離開
  • / 尋找字串
  • n 符合字串下一筆
  • N 反向尋找符合字串下一筆

※ less 分頁顯示檔案內容 (可上翻)

  • enter 下翻一行
  • space 下翻一頁
  • page up 上翻一頁
  • page down 下翻一頁
  • q 離開
  • / 尋找字串
  • n 符合字串下一筆
  • N 反向尋找符合字串下一筆

※ chmod, chown 改變檔案屬性, 改變檔案所有人

  • -R 連同子目錄都更新為同屬性

※ file 顯示某個檔案的基本資料

※ which 尋找某指令在那裡 (依所脫定的環境path去找)

※ whereis 尋找某指令

  • -b 只找binary檔
  • -m 只找man檔
  • -s 只找source檔
  • -u 找沒有說明的文件

※ locate 尋找檔案 (找資料庫)

  • 使用前先updatedb

※ find 尋找檔案 (找檔案系統)

  • -name 尋找檔名
  • ex: find / -name test1.c

※ df 檢查磁碟使用量

  • -a 列出所有使用量
  • -h 容量以k, m, g顯示
  • -T 連fs name都顯示出來
  • -i 使用掉的i-node數量

※ du 檢查資料夾用量

  • -a 列出目錄下所有子目錄檔案的所有用量
  • -h 容量以k, m, g顯示
  • -s 只顯示目錄總量 (和-a不能共用)

※ ln 製做符號連結和硬式連結

  • -s 符號連結
  • -f 目標檔有在的話移除再建立
  • 不加參數則是建立硬式連結
  • ex: ln -s test s_test

※ gzip 建立gun zip壓縮檔 (只能對單一檔案)

  • -c 壓縮後輸出到銀目,配合資料流重導向
  • -d 解壓縮
  • -t 檢查有沒有錯誤
  • -1~9 壓縮比
  • ex:(壓) gzip test
  • ex:(解) gzip -d test

※ tar 打包加壓縮 (重要)

  • -j 使用bzip壓縮
  • -z 使用gzip壓縮
  • -c 建立打包
  • -x 解開打
  • -v 看檔案打包過程
  • -f 輸出檔案的檔名
  • -p 包留原來屬性
  • ex:(包) tar -zcvf test.tar.gz test/
  • ex:(解) tar -zxvf test.tar.gz

Shell Script

SED

  • 從第N行取到最後一行
    sed -n 'N,$ p'
  • 找到SEARCH字串後,印出該行之後的內容
    sed '0,/SEARCH/d'
  • 找到SEARCH字串後,去掉該行之後的內容
    sed '/SEARCH/q'

AWK

Windows

製作檔案清單

=== By niguy ===
in M$ OS:  開始→執行,"cmd",[Enter]

<<tree 指令說明>>

以圖形顯示磁碟機或路徑的資料夾架構。

TREE [drive:][path] [/F] [/A]

   /F   顯示各資料夾中檔案的名稱。
   /A   使用 ASCII 取代延伸字元。

試試看吧...

會用tree指令後,再控制輸出目標

ex:
     tree c:\mydoc /f >> c:\showtree.txt

   下這個指令就會把 c:\mydoc 資料夾的樹狀結構以及其檔案列表
   輸出到 c:\showtree.txt 這個檔案裡 (原來的輸出目標是螢幕)

希望幫的上忙..(根本不用其他軟體 XD)

dir /b  > 檔名
dir/b/s/on/a-d > list.txt  加這些參數比較好看
computer/cli.1642119670.txt.gz · 上一次變更: 2022/01/14 00:21 由 wm