Linux
linux基礎用法
第一個輸入大多為命令(command),後面家的通常為跟著這個命令的參數,參數都是用空格分開,不管加多少空格,terminal都會認為只加了一個空格。在最一開此使,@前面是用戶名,在@後面是計算機名 ### @
at在 ### computer:後第一個字元(Home Directory):為所在文件夾的名字 ###
computer:後第二個字元(Prompt):提示符 ### uname 1. uname :會印出內核名字。 2. uname -a == uname
--all:會印出系統的所有的資訊,會忽略未知的處理器與未知的硬件平台。
3. uname -s == uname
--kernel-name:會印出顯示於網路上的主機名稱。 4. uname -r == uname
--kernel-release:會印出內核的版本。 5. uname -v == uname
--kernel-version:會印出內核運行於哪個linux上,和實際發行的日期。
6. uname -m == uname
--machine:會印出電腦類型:x86_64(為64位元架構,如為32位元會如:x86_32)
7. uname -p == uname
--processor:會印出處理器類型:x86_64(為64位元架構,如為32位元會如:x86_32)
8. uname -i == uname
--hardware-platform:會印出硬件平台類型:x86_64(硬件平台包括如CPU、儲存裝置、主機板等等硬體)
9. uname -o == uname
--operating-system:會印出操作系統名稱:GNU/Linux(作業系統,如windows)
10. uname -h == uname
--help:會印出這個指令的幫助,與各個參數的功能 11. uname --version
:會印出這個指令(uname)的版本與其他訊息(包括聲明、授權等等) ### ctrl+c
:強制中斷某一支程式。 ### exit :離開系統。 ### cal :看月曆 。 ### cal
:年份 :看某年的年曆。 ### cal :年份 月份 :看某年某月的月曆。 ### bc
:計算機(此情況不能用小數)。 #### scale = 小數位數。 #### quit :退出bc。
### file :查看文件訊息。 ### pwd(Print Working Directory) 取得目前的路徑
### ls(list) 取得當前資料夾與檔案名稱 #### ls -l:
顯示出的資料的第一個區塊為顯示使用者權限,排除第一個字元(第一個字元如果是dash(-),此檔案即為文件,如果是d,則為目錄),剩下字元為三個三個一組,共三組,第一組是user,第二組是group,第三組是other。順序必為rwx,r(read),w(write),x(execute),若有權限則會顯示出該字元,若沒有權限則會顯示'-'(dash),而這三組的權限分別為第一個是文件所有者的權限、第二個為用戶組的權限,第三組為其他人的權限。
### chmod(change mode)
如果你想要更換權限,可以使用這個命令,command:chmod u+r
t.py,用法是第一個加入chmod指令,第二個是輸入你想更改權限的對象,user是u,group是g,other是o,接著+後面是加上你要給予的權力,注意如果是要刪除某項權力,就加上-減號,接著加上以下就是給予的權力,r(read),w(write),x(execute),最後加上檔案名稱。
### 直接執行檔案 ./file.py
如果要直接執行某個檔案時可以直接使用這個指令,假設有一個檔案叫做test.py,然後我們想要執行他,所以輸入:./test.py,此時會發現出錯了,原因是你要在test.py的第一行加入一段指令,代表說這份文件要通過什麼來運行,而這邊我輸入#!/usr/bin/python3,之後再輸入:./test.py,即完成。
### linux有一個特性,就是所有東西都是一個文件。 ###
linux大小寫必須區分,在linux中大小寫是不一樣的東西。 ###
在terminal中可使用TAB鍵來補齊一些物件或檔名(善用TAB鍵)。 ### lscpu :查詢
CPU 規格。 ### / :根目錄。 #### bin :放置執行文件。 #### boot
:放置開機會運用到的文件。 #### dev :接口設備都會存取在dev中。 #### etc
:系統主要配置文件,例如用戶的帳號密碼、服務的起始文件。 #### home
:主文件夾的位置。 #### lib :開機時會用到的主函式庫。 #### media
:放置可以刪除的設備。 #### opt :第三方程式的放置目錄。 #### root
:系統管理員的主文件夾。 #### sbin
:放置一些只有系統管理員才可以執行的執行命令。 #### srv
:服務取用數據的目錄。 #### tmp :放置一些臨時的文件,需定時清理。 ####
usr :unix操作系統的支援(不是user!!!!!),可放置一些系統默認程式。 ####
var :放置快取 ### cd(Change Directory) :切換目錄。 #### 絕對路徑
:是由根目錄也就是最前面的那一個目錄開始向下輸入的(要加/),不管在哪裡,只要有絕對路徑都可以去。
#### 相對路徑 :相對於當前工作目錄(pwd),不是從根目錄開始。 #### cd .
:當前目錄。 #### cd .. :該目錄的上一層目錄。 ### man(manual page)
:指令查詢 ### mkdir :創造路徑 #### 創造多層目錄: ##### -p
:可以幫你把上一層目錄也創建好(如果上一層目錄不存在的話)。 ##### -pv
:v的功能可以幫你顯示他正在執行甚麼。 ### rmdir :刪除目錄。 #### -p
:可一次刪除多個目錄 ### touch
:創建空文件,主要功能為修改文件,如果該文件不存在,則會創造一個空文件。
#### -a :修改訪問時間。 #### -c :修改文件時間,若不存在則不創建新文件。
#### -d :使用指定日期,而不是當前日期。 #### -m :僅修改mtime。 #### -t
:使用指定的時間而不是當前的時間。 ### cp :複製,用法 cp a b
,將a複製給b。 ### echo發送文字: 用法 echo "word"。而且會換行。 ####
將文字輸入進一個檔案裡: 用法 echo "word" > data.txt。 如果是用 >
寫入的話會將原本的覆蓋,所以要使用 >> 才能延續檔案原本的資料 echo
"word" >> data.txt。 ### cat(concatenate)顯示出檔案裡的文字 用法
cat data.txt #### cat 合併資料輸出 用法 cat first.txt second.txt ####
將兩個檔案合併出一個新的檔案 方法 cat first.txt second.txt >>
third.txt,要加 >> 。 若要合併更多檔案,就以此類推 ###
用printf輸出 用echo和printf的最大差別是echo會換行而printf不會換行。
也可以使用printf輸入一個檔案,和echo一樣 ### vim文字編輯器
vi和vim.tiny和vim這三個功能極為相似,不同的地方是有些功能比較多,通常在linux中vim要另外裝。
此處使用vim.tiny,要進行文字編輯的方法:vim.tiny
data.txt,按enter鍵後再按 i
即可進行編輯,當編輯完之後想要結束編輯,先按Esc,再按 :
,接著如果想要將剛剛編輯的資料寫進去,則按w,如果想直接退出,按q,如果進行編輯後不想儲存,就輸入q!即可強制退出。若想退出又要寫入,就按wq。
### 下載vim
首先到ubuntu商店下載vim,接著去terminal輸出apt-get,apt-get會去網站上找有關你要下載的套件,但是如果apt-get沒有更新,他上去找的網站還是舊的,此時要把你的apt-get更新,因此輸入apt-get
update,但此時又會出現錯誤,因為update此動作為較高階的動作,所以以目前的狀態是沒有權限執行的,所以要在apt-get前加sudo,此時作業系統會嘗試以超級使用者的方式幫你去做執行,所以輸入完sudo
apt-get update即可完成網站的更新,更新完之後輸入sudo apt-get install
vim,即可進行安裝,如果要移除,就輸入sudo apt-get remove vim ### whereis
查看東西在哪裡,會顯示所有相關的路徑。 whereis name ### which
會明確跟你說東西的實際路徑。 ### 查看物品的實際位置 以vim為例 方法 : ls
-al /usr/bin/vim 接著會顯示一個箭頭
->會指向一個地方,這就是軟連結,會指向更精確的地方,可以再繼續使用那個位置尋找更精確的位置。
### vim 基本用法和vim.tiny一致,接著為vim的一些基礎指令。 :set nu
在每一行前面加數字編號。 輸入 dd 即可快速刪去該行。
輸入d2d可以快速刪除兩行 在前面加 / 後面加你想搜尋的文字。 按u可以undo
按ctrl+r是redo ## linux ssh
首先要再其中一台linux上獲取ip位置(稍後要給其他電腦做連接),首先先下載net-tools(稍後要使用的ifconfig是其中一部分),接著輸入ifconfig,然後往下滑可以找到你的ip位置,或者輸入ip
addr show,也可以看到你的ip位置。接著在另一台電腦輸入:ssh
username@ip,username是你linux的名稱,ip是你的ip位置。 mac 用戶:
如果是mac用戶且同時想要利用ssh在自己的mac上看到matplotlib的結果,要先安裝XQuartz,安裝完後在terminal裡輸入的不再是ssh
user@ip 了,是要改輸入ssh -X
user@ip,這樣才能看到matplotlib的效果。 ### linux查詢gpu型號 輸入
lspci | grep -i nvidia ,會顯示出幾行文字,例如: 01:00.0 VGA compatible
controller: NVIDIA Corporation Device 1e84 (rev a1) 01:00.1 Audio
device: NVIDIA Corporation Device 10f8 (rev a1) 01:00.2 USB controller:
NVIDIA Corporation Device 1ad8 (rev a1) 01:00.3 Serial bus controller
[0c80]: NVIDIA Corporation Device 1ad9 (rev a1) 然後看第一行的最後面
1e84
,這個就是型號,但我們還是看不出來實際的型號,所以去這個網站上輸入你的型號:http://pci-ids.ucw.cz/mods/PC/10de?action=help?help=pci
可以查到這張gpu是GeForce RTX 2070 Super。 ### 查看ubuntu版本 cat
/etc/issue ### 更改檔案名稱 mv 原檔案名稱 更改的名稱 ###
查看目錄裡資料的數量 1. ls -l|grep "^-"| wc -l , find ./ -type f | wc
-l: 查看當前目錄的所有資料數量(不包括子目錄資料數量)。 2. ls -lR|grep "^-"|
wc -l : 查看當前目錄的所有資料數量(包括子目錄資料數量)。 3. ls -l|grep "^d"| wc
-l : 查看當前目錄的所有資料夾目錄個數(包括子資料夾目錄個數)。 ## tmux 1.
tmux:進入tmux。 2. tmux attach:進入預設第一個Session。 3. tmux new -s
"tmp":新增、進入一個名為tmp的Session。 4. tmux ls:列出所有的Session。 5.
tmux detach:暫時離開目前的Session。 6.
Ctrl
+D
:關閉/結束目前的Session。 7. tmux
kill-session -t "tmp":關閉、結束名稱維tmp的Session。 ### Panes分割視窗
1. Ctrl
+b
+%
:垂直分割視窗。 2.
Ctrl
+b
+"
:水平分割視窗。 3.
Ctrl
+b
+o
:輪流切換pane。 4.
Ctrl
+b
+方向鍵
:切換指定方向的pane。
5. Ctrl
+b
+空白鍵
:切換佈局。 6.
Ctrl
+b
+!
:將目前的pane抽出來,並獨立建立一個window視窗。
7. Ctrl
+b
+x
:關閉目前的pane。 ###
Windows視窗 1.
Ctrl
+b
+c
:建立新的window視窗。 2.
Ctrl
+b
+w
:以視覺化選單切換window視窗。
3.
Ctrl
+b
+n
:切換至下一個window視窗。
4.
Ctrl
+b
+p
:切換至上喔個window視窗。
5.
Ctrl
+b
+數字鍵
:切換至指定的window視窗。
6.
Ctrl
+b
+&
:關閉目前的window視窗。
### Session 1.
Ctrl
+b
+$
:重新命名目前的Session。
2. Ctrl
+b
+d
:離開tmux環境。 3.
Ctrl
+b
+s
:視覺化選單切換Session。
4.
Ctrl
+b
+L
:切換上一個使用過的Session。
5. Ctrl
+b
+(
:切換上一個Session。
6. Ctrl
+b
+)
:切換下一個Session。
7. 想回去特定的Session: tmux attach -t "session name"
(請忽略雙引號) 8.
修改Session名稱:tmux rename-session -t "origin seesion name" "new name"
(請忽略雙引號) 9. 刪除某一個Session:
tmux kill-session -t 0
或是
tmux kill-session -t <session_name>
10.
刪除所有Session: tmux kill-session -a
11. 快捷鍵:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17快捷鍵/視窗管理
C-b ? Help
C-b c 新增視窗
C-b, 視窗命名
C-b w 視窗列表
C-b f 尋找視窗
C-b & 刪除視窗
C-b % 垂直分割區塊
C-b “ 水平分割區塊
C-b <方向鍵>
C-b p 上一個視窗
C-b n 下一個視窗
C-b <number> 依照編號直接切換(編號顯示於狀態列)
C-b d 離開 session
C-b x 關閉 Pane
C-d 關閉 Pane
C-b z 讓一個 Pane 變成全螢幕,在輸入一次則回到剛剛的尺寸