linux tips
tags: linux
Terminal
文件目錄管理
ls list files 列出目錄及文件名:ls [options] [name]
-l將資料以列表形式呈現,並且包含檔案細部資料。-a列出所有檔案,包含隱藏檔。-h可將檔案容易以易讀式呈現;-r:反向排序;-S:用檔案大小排序;-t:用時間排。序。
cd change directory 切換目錄:cd [dirName]
~是切換 home 目錄的意思。/換到絕對路徑,..則表示目前目錄位置的上一層目錄;.則是表示目前所在的目錄。-切換到上次訪問的目錄;$VAR_NAME切換到環境變量指定的目錄。
pwd print work directory 顯示目前的目錄
mkdir make directory 創建一個新的目錄:mkdir [-p] dirName
-p確保目錄名稱存在,不存在的就建一個。
rmdir remove directory 刪除一個空的目錄:rmdir [-p] dirName
-p是當子目錄被刪除後使它也成為空目錄的話,則順便一併刪除。
cp copy file 複製文件或目錄:cp [options] [source] [directory]
-r或--recursive用於復制目錄及其所有的子目錄和文件,如果要復制目錄,需要使用該選項。-i或--interactive在復制前提示確認,如果目標文件已存在,則會詢問是否覆蓋,回答y時目標文件將被覆蓋;-f或--force強制複製,即使目標文件已存在也會覆蓋,而且不給出提示。-a此選項通常在復制目錄時使用,它保留鏈接、文件屬性,並複制目錄下的所有內容。-v或--verbose顯示詳細的複製過程;-u或--update僅複製源文件中更新時間較新的文件。-p或--preserve保留源文件的權限、所有者和時間戳信息;-l不復製文件,只是生成鏈接文件。
rm remove 刪除文件或目錄:rm [options] name
-i刪除前逐一詢問確認。-f即使原檔案屬性設為唯讀,亦強制刪除,無需確認。-r將目錄及以下之檔案亦逐一刪除。
mv move file 移動文件與目錄,或修改文件與目錄的名稱:mv [options] [source] [directory]
-f強制搬移,如果檔案存在,不會詢問直接覆蓋;-i如果目標檔案存在,會詢問是否覆蓋。-u當源文件比目標文件新或者目標文件不存在時,才執行移動操作。-n不要覆蓋任何已存在的文件或目錄;-b當目標文件或目錄存在時,在執行覆蓋前,會為其創建一個備份。
硬碟管理
df disk free 顯示目前系統上各個硬碟分割區的狀況:df [options] [name]
-a列出所有的文件系統。-h根據大小格式調整顯示單位;-k以 KBytes 的單位顯示各個文件系統;-m以 MBytes 的單位顯示各個文件系統。-H以 M=1000K 替換 M=1024K 的進位方式;-T顯示文件系統類型。
fdisk 磁碟分區表操作工具:df [options] [device]
-l輸出後面接的裝置的所有分區內容。若不是fdisk -l時,則係統將會把整個系統內能夠搜索到的裝置的分區均啟動來。
由於 MBR 分割表不支援超過 2TB 的磁碟,如果您的硬碟大小超過 2TB,就無法使用 fdisk 分割硬碟,請改用 parted 以 GPT 的方式分割。
du disk used 查看資料夾或檔案大小:du [options] [name]
-a列出所有的檔案大小。-h根據大小格式調整顯示單位;-k以 KBytes 的單位顯示各個文件系統;-m以 MBytes 的單位顯示各個文件系統。-s只顯示總和;-S顯示目錄內容時, 不包含子目錄大小。
tree 命令用於以樹狀圖列出目錄的內容
-a顯示所有文件和目錄。-d顯示目錄名稱而非內容。-f顯示完整的相對路徑名稱,-s:列出文件或目錄大小,-h:可將檔案容易以易讀式呈現;
uname unix name 命令用於顯示操作系統信息
-a或--all顯示全部的信息,包括內核名稱、主機名、操作系統版本、處理器類型和硬件架構等。-r或--release顯示內核版本號;-v顯示操作系統的版本。-n或--nodename顯示主機名;-m或--machine顯示處理器類型,-s或--sysname顯示操作系統名稱。
ftp 命令設置文件系統相關功能。ftp [- dignv][主機名稱或IP地址]
-d詳細顯示指令執行過程,便於除錯或分析程序執行的情形;-i關閉互動模式,不詢問任何問題;-v顯示指令執行過程;-g關閉本地主機文件名稱支持特殊字符的擴充特性;-n不使用自動登陸。quit結束遠端伺服器的 ftp 會話,然後結束。- 常用 FTP 命令
!對本地電腦下 command。e.g.!lsopen連接到指定的 ftp 伺服器。open [computer] [port]close結束與遠端伺服器的 ftp 會話,並保留在提示字元中ftp>。help命令或?列出所有可用的FTP命令;cd命令切換遠端伺服器目錄;lcd命令切換本地電腦目錄;ls命令列出當前遠程目錄文件與目錄;pwd顯示遠端伺服器上的當前工作目錄。delete命令刪除當前遠程目錄中的文件;mkdir命令在當前遠程目錄中創建一個新目錄;rmdir刪除當前遠程目錄中的目錄。get將一個文件從遠程複製到本地電腦;mget命令將多個文件從遠程複製到本地電腦;put命令將一個文件從本地上傳到遠端伺服器;mput命令將多個文件從本地上傳到遠端伺服器。
tar 用於打包檔案產生 tar 包,也可以將檔案打包並壓縮
- 以下五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。
-c建立壓縮檔案-x解壓-t查看內容-r向壓縮歸檔文件末尾追加文件-u更新原壓縮包中的文件
- 下面的參數是根據需要在壓縮或解壓檔案時可選的。
-z有gzip屬性的;-j有bz2屬性的;-Z有 compress 屬性的;-v顯示所有過程;-O將文件解開到標準輸出
-f目標檔案,這個參數是最後一個參數,後面只能接檔案名。
grep global regular expression 命令用於查找文件裡符合條件的字符串或正則表達式。grep [ options ] pattern [ files ]
pattern - 表示要查找的字符串或正則表達式。
files - 表示要查找的文件名,可以同時查找多個文件,如果省略files 參數,則默認從標準輸入中讀取數據。
-r遞歸查找子目錄中的文件。-i忽略大小寫進行匹配;-v反向查找,只打印不匹配的行。-n顯示匹配行的行號;-l只打印匹配的文件名。-c只打印匹配的行數。
find 用於在指定目錄下查找文件和目錄。find [path] [expression]
path是要查找的目錄路徑,可以是一個目錄或文件名,也可以是多個路徑,多個路徑之間用空格分隔,如果未指定路徑,則默認為當前目錄。 expression是可選參數,用於指定查找的條件,可以是文件名、文件類型、文件大小等等。
-namepattern:按文件名查找,支持使用通配符*和?。-typetype:按文件類型查找,可以是f(普通文件)、d(目錄)、l(符號鏈接)等。-size[+-]size[cwbkMG]:按文件大小查找,支持使用+或-表示大於或小於指定大小,單位可以是c(字節)、w(字數)、b(塊數)、k(KB)、M(MB)或G(GB)。-mtime days:按修改時間查找,支持使用+或-表示在指定天數前或後,days是一個整數表示天數;-user username:按文件所有者查找;-group groupname:按文件所屬組查找。
man manual 後面加上其他指令,就可以看到指令的文件及其他說明。
time 命令的用途,在於量測特定指令執行時所需消耗的時間及系統資源等資訊。
lshw
lspci
htop
tmux
touch
chmod
ssh
scp
net-tools
ifconfig
ethtool
netstat
nameif
ipmaddr
route
vi/vim
git
後臺相關
& 這個用在一個命令的最後,可以把這個命令放到後臺執行;
ctrl + z 可以將一個正在前臺執行的命令放到後臺,並且暫停;
jobs 檢視當前有多少在後臺執行的命令;
fg 將後臺中的命令調至前臺繼續執行;
bg 將一個在後臺暫停的命令,變成繼續執行;
ps 列出系統中正在執行的程序;
kill 傳送訊號給一個或多個程序(經常用來殺死一個程序),kill還能給程序傳送其它訊號,使用kill -l 可以察看kill支援的訊號;
watch 一個可以定期執行指令的實用工具,臨時需要定期執行指令時特別有用,-n:更新間隔時間,時間精細度可支援到 0.1 秒,-d:每次畫面更新時,將產生差異的部分輸出反白顯示;
Nvidia
nvidia-smi Nvidia 所提供的 NVIDIA System Management Interface 管理工具可以直接查詢驅動程式與顯示卡的資訊,-L 參數可列出所有插在電腦上的 GPU 卡,-q 參數可列出 GPU 卡非常詳細的資訊;
GCC
-c : 只做編譯(不做連結)
-S : 輸出組譯碼
-E : 將預處理結果顯示
-o filename : 指定輸出檔名
-ansi : 程式要求依據ansi c標準
-Dmacro : 使定義巨集(marco)為有效
-Dmarco=defn : 使定義巨集(marco)為defn
-Wa,option : 將選項(option)傳給組譯器
-wl,option : 將選項(option)傳給連結器
-I : 追加include檔案的搜尋路徑
-L : 追加library檔案的搜尋路徑
-l : 指定連結的函式庫
-Wall : 顯示所有的警告訊息
-g : 編入除錯資訊(要使用GDB除錯一定要加)
-O2 : 做最佳化
虛擬機安裝步驟
開啟VM軟體後建立新機器,將映像檔掛載到光碟機進行安裝,之後按步驟安裝。 (圖形控制器選擇VBoxSVGA可以任意縮放模擬器視窗)
- linux終端機快捷鍵
|
|
- 安裝 vim
|
|
- 安裝 git
|
|
- 安裝 clip
|
|
- 下載 chrome
|
|
- 安裝 chrome
|
|
- 建立捷徑
|
|
- 將路徑指向
|
|
SSH key 產生的方法
($ 開頭的表示法,就是說明在 Linux 終端機輸入命令)
:::info 透過以下命令檢查是否有現存的 ssh key
|
|
- 如果已有 ssh key,跳到步驟 5
- 若沒有從步驟 1 開始 :::
1. 輸入命令
|
|
後面那是自己申請 Github 所使用的信箱。之後 ssh 程式會要求輸入 passphrase
2. 直接按下 Enter 鍵即可。
Enter file in which to save the key (/Users/[you]/.ssh/id_rsa): [Press enter]
3. 輸入一個 passphrase,如不想輸入直接按下 Enter 鍵即可。
|
|
4. 此時顯示的是你 SSH Key 的 fingerprint
|
|
5. 將剛剛產生的 key 加入 ssh-agent 中
- 如果你使用的是 Linux 或 msysgit 等軟體,則輸入以下命令
|
|
- 將剛剛產生的 key 加入
ssh-agent中
|
|
6. 到 Github 網站加入你的 SSH key
將 SSH key 複製到你的剪貼簿,如果你的 key 檔案名稱不為 id_rsa.pub,請自行將以下程式碼中 id_rsa.pub 修改成你的檔案名稱。
|
|
-
登入github點選右上角settings
-
點選SSH and GPG Keys
-
選擇 Add SSH key
-
Title 可以自己命名辨識,然後貼上key!!!!
-
按下 Add key就完成啦!
7. 驗證你有沒有綁定
- 輸入
ssh -T [email protected]
|
|
- 你會看到這個 warning,然後輸入"yes"
|
|
- 你將會看到
|
|
這樣就成功囉!
- Ctrl+Alt+T => 開terminal
- tmux => 多視窗
- Ctrl+L => clear
- cat =>列印出文件
- ls =>清單
- rm =>刪除
- cd =>改變路徑
- cp =>複製
Docker–從入門到實踐
docker build -t image名稱 . 根據dockerfile產生images。"-t" 為指定名稱, “.“為當前位置
docker images 查看所有images。
docker ps -a 列出當前container。"-a"所有檔案, “-s"顯示大小
docker container ls -a 列出當前container。“ls"表列, “-a"所有檔案
docker run -it --shm-size 大小 --rm --gpus all --name container_name -p container_port:local_port -v /home/使用者/data:/data image名稱 bash創建一個container並運行指令。"-i"為互動模式, “-t"為配置虛擬終端, “-d"為後台運行, “–shm-size"為容器可使用共享記憶體大小, “–gpus all"為使用GPU, “–name"container名稱, “-p"為port映射, “–rm"為container終止時自動刪除, “-v 本機位置:container位置"為將主機位置映射到container, “bash"為使用bash shell終端
docker start container名稱 bash 運行已存在container。
docker stop container名稱 bash 停止運行container。
docker restart container名稱 bash 重啟container。
docker exec -it container名稱 bash 進入運行中container。"-i"為互動模式, “-t"為配置虛擬終端, “-d"為後台運行, “bash"為使用bash shell終端
docker rm container_id刪除container。
docker rmi images_id刪除images。