Linux基礎操作
- 常用快捷鍵與指令
- 終端常用指令說明
-
- ls指令說明
- cd指令說明
- mkdir參數說明
- rm參數說明
- tree選項說明
- cp選項說明
- mv選項說明
- cat選項說明
- more操作鍵說明
- grep選項及參數說明
- 管道|使用說明
- 遠端管理指令說明
-
- shutdown指令說明
- ifconfig指令說明
- ping指令說明
- ssh指令說明
- scp指令說明
- 使用者、組及權限
-
- 權限清單
- 超級使用者
- 建立/删除組
- 使用者管理
- 檢視使用者資訊
- usermod指令說明
- which指令說明
- 修改檔案權限
- 系統資訊相關指令
-
- 時間和日期
- 磁盤資訊
- 程序資訊
- 其他指令
-
- 查找檔案
- 軟連結
- 打包和壓縮
- 軟體安裝
- VI編輯器
-
- 打開和建立檔案
- 三種工作模式
- 指令模式指令
- 末行模式指令
- 編輯模式指令
常用快捷鍵與指令
終端指令格式:command [-options] [parameter] 即 指令名 + 選項(對指令進行控制,可省略)+ 參數(可以是0個、1個、多個)
終端相關::
1.調用終端:Ctrl/Command + Alt + T
2.放大終端字型:Ctrl/Command + Shift + =
3.縮小終端字型:Ctrl/Command + -
4.自動補全:Tab
5.曾用指令:↑ / ↓
6.退出執行目前指令: Ctrl + C
檔案操作:
1.檢視目前檔案夾下的内容:ls (list)
2.檢視目前所在檔案夾:pwd (print work directory)
3.切換檔案夾:cd (chang directory)
4.如果檔案夾不存在,建立檔案:touch
5.建立目錄:mkdir (make directory)
6.删除指定檔案名:rm (remove)
7.清屏:clear
8.以樹狀圖列出檔案目錄結構:tree
9.複制檔案或目錄:cp 源檔案 目标檔案
10.移動檔案或目錄/重命名:mv 源檔案 目标檔案
11.檢視檔案内容、建立檔案、檔案合并、追加檔案内容等功能:cat(concatenate)
12.分屏顯示檔案内容:more
13.搜尋文本檔案内容:grep
14.在終端中顯示參數指定的文字,通常會和重定向聯合使用:echo
15.重定向:
> | 表示輸出,會覆寫原有的内容 |
---|---|
>> | 表示追加,會将内容追加到已有檔案的末尾 |
例1:
例2:
16.管道:|
17.使用gedit打開檔案:gedit 檔案名
18.執行目前路徑下的某個檔案:./檔案名
遠端管理:
1.關機/重新開機:shutdown 選項 時間
2.檢視或配置網卡資訊:
指令 | 作用 |
---|---|
ifconfig | 檢視/配置計算機目前網卡配置資訊 |
ping ip位址 | 檢測目标ip位址的連接配接是否正常 |
3.遠端登入和複制檔案:
指令 | 對應英文 | 作用 |
---|---|---|
ssh 使用者名@ip | secure shell | 關機/重新啟動 |
scp 使用者名@ip:檔案名或路徑 使用者名@ip:檔案名或路徑 | secure copy | 遠端複制檔案 |
權限管理:
1.修改使用者/組對檔案/目錄的權限:chmod +/-rwx 檔案名|目錄名
2.使用另一個使用者的身份,預設身份為root:sudo
終端常用指令說明
ls指令說明
Linux檔案或者目錄名稱最長可以有256個字元
以.開頭的檔案為隐藏檔案
.代表目前目錄
…代表上級目錄
參數 | 含義 |
---|---|
-a | 顯示指定目錄下的所有子目錄與檔案,包含隐藏檔案 |
-l | 以清單方式顯示檔案的詳細資訊 |
-h | 配合-l以人性化的方式顯示檔案大小 |
通配符 | 含義 |
---|---|
* | 代表任意個字元 |
? | 代表任意一個字元,至少1個 |
[] | 表示可以比對字元組中的任意一個 |
[abc] | 比對a、b、c中的任意一個 |
[a-f] |
cd指令說明
指令 | 含義 |
---|---|
cd | 切換到目前使用者的主目錄(/home/使用者目錄) |
cd ~ | 切換到目前使用者的主目錄(/home/使用者目錄) |
cd . | 保持目前目錄不變 |
cd … | 切換到上級目錄 |
cd - | 可以再最近兩次工作目錄之間來回切換 |
mkdir參數說明
參數 | 含義 |
---|---|
-p | 可以遞歸建立目錄 |
注意:建立目錄的名稱不能與目前目錄中的已有的目錄或者檔案同名(如:目前目錄已有一個123檔案則無法在目前目錄建立123檔案夾)
rm參數說明
參數 | 含義 |
---|---|
-f | 強制删除,忽略不存在的檔案,無需提示 |
-r | 遞歸地删除目錄下的内容,删除檔案夾時必須加此參數 |
tree選項說明
選項 | 含義 |
---|---|
-d | 隻顯示目錄 |
cp選項說明
選項 | 含義 |
---|---|
-i | 覆寫檔案前提示(執行時如果目标檔案夾有同名,會提示是否覆寫) |
-r | 若給出的源檔案是目錄檔案,則cp 将遞歸複制該目錄下的所有子目錄和檔案,目标檔案必須為一個目錄名字 |
mv選項說明
參數 | 含義 |
---|---|
-i | 覆寫檔案前提示(執行時如果目标檔案夾有同名,會提示是否覆寫) |
cat選項說明
cat會一次顯示所有的内容,适合檢視内容較少的文本檔案
選項 | 含義 |
---|---|
-b | 對非空輸出行編号 |
-n | 對輸出的所有行編号 |
more操作鍵說明
操作鍵 | 功能 |
---|---|
空格鍵 | 顯示下一屏 |
Enter鍵 | 一次滾動一行 |
b . | 復原一屏 |
f | 前滾一屏 |
q | 退出 |
/word | 搜尋word字元串 |
grep選項及參數說明
選項 | 含義 |
---|---|
-n | 顯示比對行及行号 |
-v | 顯示不包含比對文本的所有行(相當于求反) |
-i | 忽略大小寫 |
參數 | 含義 |
---|---|
^a | 行首,搜尋以a開頭的行 |
ke$ | 行尾,搜尋以ke結束的行 |
管道|使用說明
Linux允許将一個指令的輸出通過管道作為另一個指令的輸入
常用的管道指令有:
more:分屏顯示内容
grep:在指令執行結果的基礎上查詢指定的文本
例1:
ls -alh | more *将目前檔案夾的檔案資訊分屏顯示
例2:
ls -alh | grep Do | more *将目前檔案夾的檔案資訊中包含“Do”的檔案資訊分屏顯示出來
遠端管理指令說明
shutdown指令說明
選項 | 含義 |
---|---|
-r | 重新啟動 |
-c | 取消關閉/重新開機計算機 |
例1:
例2:
例3:
注1:不指定選項及參數,預設1分鐘後關閉電腦
注2:遠端維護伺服器時,最好不要關閉系統,而應該重新啟動系統
ifconfig指令說明
例1:
>>ifconfig # 檢視網卡配置資訊
>ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.232.128 netmask 255.255.255.0 broadcast 192.168.232.255
inet6 fe80::7427:8383:c614:c712 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:ee:cd:97 txqueuelen 1000 (Ethernet)
RX packets 4291 bytes 4807232 (4.8 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1268 bytes 108998 (108.9 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 257 bytes 21103 (21.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 257 bytes 21103 (21.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
例2:
>>ifconfig | grep inet # 檢視網卡對應的ip位址
> inet 192.168.232.128 netmask 255.255.255.0 broadcast 192.168.232.255
inet6 fe80::7427:8383:c614:c712 prefixlen 64 scopeid 0x20<link>
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
提示:一台計算機中可能會有一個實體網卡和多個虛拟網卡,在Linux中實體網卡的名字通常以ensXX表示
127.0.0.1被稱為本地回環/環回位址,一般用來測試本機網卡是否正常
ping指令說明
ping一般用于檢測目前計算機到目标計算機之間的網絡是否通暢,數值越大,速度越慢
原理:網絡上的機器都有位移确定的ip位址,我們給目标ip位址發送一個資料包,對方就要傳回一個資料包,根據傳回的資料包以及時間,我們可以确定目标主機的存在
例1:本機ip位址:192.168.2.112
>>ping 192.168.2.112
>PING 192.168.2.112 (192.168.2.112) 56(84) bytes of data.
64 bytes from 192.168.2.112: icmp_seq=1 ttl=128 time=4.94 ms
64 bytes from 192.168.2.112: icmp_seq=2 ttl=128 time=1.48 ms
64 bytes from 192.168.2.112: icmp_seq=3 ttl=128 time=2.06 ms
64 bytes from 192.168.2.112: icmp_seq=4 ttl=128 time=1.51 ms
64 bytes from 192.168.2.112: icmp_seq=5 ttl=128 time=1.93 ms
^C
--- 192.168.2.112 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.489/2.389/4.948/1.300 ms
注:如需停止,按 Ctrl + C 終止運作
ssh指令說明
ssh用戶端是一種使用“Secure Shell(SSH)”協定連接配接到遠端計算機的軟體程式,資料傳輸是加密壓縮的
相關概念:
域名:由一串用點分隔的名字組成,例如 www.baidu.com,是ip位址的别名,友善使用者記憶
端口号:通過端口号可以找到計算機上運作的應用程式,SSH伺服器的預設端口号是22,如果是預設端口号,在連接配接的時候可以省略
常見服務端口号清單:
服務 | 端口号 |
---|---|
SSH伺服器 | 22 |
Web伺服器 | 80 |
HTTPS | 443 |
FTP伺服器 | 21 |
SSH用戶端的簡單使用:
格式:
ssh [-p port] [email protected]
#user 是遠端機器上的使用者名,如果不指定的話預設為目前使用者
#remote 是遠端及其的位址,可以試試IP/域名,或者是别名
#port 是SSH Sever 監聽的端口,如果不指定,預設值是22
提示:使用“exit”退出推出目前使用者的登入
如何免密碼登入
1.配置公鑰:執行ssh-keygen即可生成SSH要是,一路回車即可
2.上傳公鑰到伺服器:執行ssh-copy-id -p port [email protected],可以讓遠端伺服器記住我們的公鑰
注1:ssh這個終端指令隻能在Linux或者UNIX系統下使用
注2:如果在Windows系統中,可以安裝PuTTY或者XShell用戶端軟體即可
在XShell使用中,如輸入ip位址無誤,仍無法連接配接,顯示如下:
Connecting to 192.168.232.128:22...
Could not connect to '192.168.232.128' (port 22): Connection failed.
Type `help' to learn how to use Xshell prompt.
則可按照以下順序進行操作:
1.ifconfig 如果有eth0網卡 就說明打開了 否則輸入ifup eth0打開網卡
2.再判斷有沒有安裝了ssh服務(因為UBANTU預設不安裝) 輸入:ps -e | grep ssh 如果服務已經啟動,則可以看到“sshd”,否則表示沒有安裝服務,或沒有開機啟動
3.安裝ssh服務,輸入指令:sudo apt-get install openssh-server
4.啟動服務:/etc/init.d/ssh start
配置計算機别名
配置别名來代替ssh後-p port [email protected]内容
方法:在~/.ssh/config裡追加以下内容
Host mac
HostName ip位址
User itheima
Port 22
儲存後即可使用ssh mac實作遠端登入了,scp同樣可以使用
scp指令說明
scp的位址格式與ssh基本相同,需要注意的是,在指定端口時用的是大寫的-P而不是小寫的
選項 | 含義 |
---|---|
-r | 若給出的源檔案是目錄檔案,則scp将遞歸複制該目錄下的所有子目錄和檔案 目标檔案必須為一個目錄名 |
-P | 若遠端SSH伺服器的端口不是22,需要使用大寫字母-P選項指定端口 |
例1:
scp -P port 01.py [email protected]:Desktop/01.py
# 将本地目前目前目錄下的01.py檔案複制到遠端家目錄下的Desktop/01.py
scp -P port [email protected]:Desktop/01.py 01.py
# 将檔案遠端家目錄下的Desktop/01.py複制到本地目前目前目錄下的01.py
注1:scp注1:ssh這個終端指令隻能在Linux或者UNIX系統下使用
注2:如果在Windows系統中,可以安裝PuTTY,使用pscp指令行工具或者安裝FileZilla使用FTP進行檔案傳輸(FTP的端口号為21)
使用者、組及權限
權限清單
權限 | 英文 | 縮寫 | 數字代号 |
---|---|---|---|
讀 | read | r | 4 |
寫 | write | w | 2 |
執行 | excute | x | 1 |
>>ls -l
>total 4
drwxr-xr-x 3 jackson26 jackson26 4096 6月 17 18:28 123
-rw-r--r-- 1 jackson26 jackson26 0 6月 17 18:26 aaa.txt
執行ls -l後,從左到右依次是:
·權限,第1個字元如果是d表示目錄,之後的9個字元可分為三組,第一組代表目前檔案/目錄擁有者的權限(即第一個jackson26),第二組代表這個檔案/目錄對應的組的權限(即第二個jackson),第三組為其他人(即除了對應使用者群組之外的)的權限
·硬連結數,通俗講就是有多少種方式可以通路到目前目錄/檔案
>>tree
>.
├── 123
│ ├── 222
│ │ └── ttt.txt
│ ├── 77
│ ├── ddd.txt
│ └── qqq.txt
└── aaa.txt
3 directories, 4 files
>>ls -l
>drwxr-xr-x 4 jackson26 jackson26 4096 6月 17 18:41 123
-rw-r--r-- 1 jackson26 jackson26 0 6月 17 18:26 aaa.txt
如上所示,123的硬連結數為4,即有4種途徑通路該檔案夾,分别為:1.絕對路徑;2.“cd .”;3.在222檔案夾中使用“cd …”;4.在77檔案夾中使用“cd …”
·擁有者,家目錄下檔案/目錄的擁有者通常都是目前使用者
·組,在Linux中,很多時候會出現組名和使用者名相同的情況
·大小
·時間
·名稱
超級使用者
在LInux系統中,root賬号通常用于系統的維護和管理(如添加使用者/組,安裝軟體等),對作業系統的所有資源具有所有通路權限
在大多數版本的Linux中,都不推薦直接使用root賬号登入系統
在LInux安裝的過程中,系統會自動建立一個使用者賬号,而這個預設的使用者就稱為“标準使用者”(即隻能在自身家目錄下活動的使用者,不能修改系統設定相關)
使用者在使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過則必須重新輸入密碼
注:若未經授權的使用者企圖使用sudo,則會發出警告郵件給管理者
建立/删除組
提示:建立/删除組的指令都需要通過sudo執行
指令 | 作用 |
---|---|
groupadd 組名 | 添加組 |
groupdel 組名 | 删除組 |
cat /etc/group | 确認組資訊 |
chgrp -R 組名 檔案/目錄名 | 修改檔案/目錄的所屬組 |
使用者管理
提示:建立/删除使用者/修改其他使用者密碼的指令都需要通過sudo執行
指令 | 作用 | 說明 |
---|---|---|
useradd -m -g 組 建立使用者名 | 添加新使用者 | -m 自動建立使用者家目錄 -g 指定使用者所在的組,否則會建立一個同名的組 |
passwd 使用者名 | 設定使用者密碼 | 如果是普通使用者,直接用passwd可以修改自己的賬戶密碼 |
userdel -r 使用者名 | 删除使用者 | -r 選項會自動删除使用者家目錄 |
cat /etc/passwd 管道符号+grep 使用者名 | 确認使用者資訊 | 建立使用者後,使用者資訊會儲存在 /etc/passwd檔案夾中 |
提示:
1.建立使用者時,如果忘記添加-m選項指定新使用者的家目錄,最簡單的方法就是删除使用者,重新建立
切換使用者
指令 | 作用 說明 | |
---|---|---|
su - 使用者名 | 切換使用者,并且切換目錄 | - 可以切換到使用者家目錄,額否則保持位置不變 |
exit | 退出目前登入使用者 | 如曾多次切換使用者,則每次輸入exit,依次退出 |
檢視使用者資訊
指令 | 作用 |
---|---|
id [使用者名] | 檢視使用者UID和GID資訊 |
who | 檢視目前所有登入的使用者清單 |
whoami | 檢視目前登入使用者的賬戶名 |
passwd檔案
/etc/passwd檔案存放的是使用者的資訊,由6個分号組成的7個資訊,分别是:
1.使用者名
2.密碼(x表示加密的密碼)
3.UID(使用者辨別)
4.GID(組辨別)
5.使用者全名或本地賬号(空則表示使用者名為全名)
6.家目錄
7.登入使用的Shell,就是登入後,使用的終端指令,ubuntu預設是dash(這是一個軟體,在Windows下使用XShell登入别的使用者時會發現有些鍵盤按鍵無法使用,這就是dash在WIndows下不适用造成的,可以用之後提到的修改使用者登入Shell指令進行修改)
例1:
>>cat -n /etc/passwd | grep zhangsa
>43 zhangsan:x:1001:1001::/home/zhangsan:/bin/sh
usermod指令說明
usermod 可以用來設定使用者的主組/附加組和登入Shell
主組:通常在新家使用者時指定,在etc/passwd的第四列GID對應的組
附加組:在etc/group中最後一清單示該組的使用者清單,用于指定使用者的附權重限
提示:設定了使用者的附加組之後,需要重新登入才能生效
例1:
# 修改使用者的主組(即GID)
usermod -g 組 使用者名
# 修改使用者的附加組(就大多數時候都是修改附加組)
usermod -G 組 使用者名
# 修改使用者登入Shell
usermod -s /bin/bash 使用者名
注意:預設使用useradd添加的使用者是沒有權限使用sudo以root身份執行指令的,可以使用以下指令,将使用者添加到sudo附加組中:
usermod -G sudo 使用者名
which指令說明
提示1:etc/passwd是用于儲存使用者資訊的檔案
提示2:/usr/bin/passwd是用于修改使用者密碼的程式
利用which指令可以檢視執行指令所在位置
例1:
>>which ls
>/bin/ls
>>which passwd
>/usr/bin/passwd
>>which useradd
>/usr/sbin/useradd
bin和sbin
1.在Linux中,絕大多數可執行檔案都是儲存在/bin、/sbin、/usr/bin、/usr/sbin
2./bin(binary)是二進制執行檔案目錄,主要用于具體應用
3./sbin(system binary)是系統管理者專用的二進制代碼存放目錄,主要用于系統管理
4./usr/bin(user commands for applications)後期安裝的一些軟體
5./usr/sbin(super user commands for applications)超級使用者的一些管理程式
提示:cd這個終端指令是内置在系統核心中的,沒有獨立的檔案,是以which無法找到
修改檔案權限
指令 | 作用 |
---|---|
chown | 修改擁有者 |
chgrp | 修改組 |
chmod | 修改權限 |
指令格式如下:
# 修改檔案/目錄的擁有者
chown 使用者名 檔案名/目錄名
# 遞歸修改檔案/目錄的組
chgrp -R 組名 檔案名/目錄名 # -R即可修改目錄下所有子目錄後檔案的組
# 遞歸修改檔案權限
chmod -R 755 檔案名/目錄名
chmod在設定權限時,可以簡單地使用三個數字(上例中為755)分别對應擁有者/組和其他使用者的權限
之前提及的以“chmod +/-rwx 檔案名/目錄名”修改權限的方式無法精确到擁有者/組/其他,rwx對應的數字分别為4/2/1,而755則相當于4+2+1/4+1/4+1即rwx/rx/rx權限
常見的數字組合有(u表示使用者/g表示組/o表示其他):
777→u=rwx,g=rwx,o=rwx
755→u=rwx,g=rx,o=rx
644→u=rw,g=r,o=r
系統資訊相關指令
時間和日期
指令 | 作用 |
---|---|
cal | calender 檢視月曆,-y選項可以檢視一年的月曆 |
date | 檢視系統時間 |
磁盤資訊
指令 | 作用 |
---|---|
df -h | disk free 顯示磁盤剩餘空間 |
du -h [目錄名] | disk usage 顯示目錄下的檔案大小 |
說明:-h的作用是以人性化的方式顯示檔案大小
一般關注根目錄,即“/”路徑下的空間使用情況
程序資訊
指令 | 作用 |
---|---|
ps aux | process status 檢視程序的詳細情況 |
top | 動态顯示運作中的程序并且排序 |
kill [-9] 程序代号 | 終止指定代号的程序,-9 表示強制終止 |
預設隻會顯示目前使用者通過終端啟動的應用程式
aux選項含義
選項 | 含義 |
---|---|
a | 顯示終端上的所有程序,包括其他使用者的程序 |
u | 顯示程序的詳細狀态 |
x | 顯示沒有控制終端的程序 |
提示1:使用kill指令時,最好隻終止由目前使用者開啟的程序,而不要終止root身份開啟的程序,否則可能導緻系統崩潰:
提示2:要退出top可以直接輸入q
其他指令
查找檔案
find指令通常用來在特定的目錄下搜尋符合條件的檔案
指令 | 作用 |
---|---|
find [路徑] -name “*.py” | 查找制定路徑下擴充名是.py的檔案,包括子目錄 |
如果省略路徑,表示在目前檔案夾下查找
之前學習的通配符,在使用find指令時可同時使用
例1:
# 搜尋桌面目錄下,檔案名包含1的檔案
>>find -name "*1*"
# 搜尋桌面目錄下,所有以.txt為擴充名的檔案
>>find -nmae "*.txt"
# 搜尋桌面目錄下,以數字1開頭的檔案
>>find -name "1*"
軟連結
指令 | 作用 |
---|---|
ln -s 被連結的源檔案 連結檔案 | 建立檔案的軟連結,類似于Windows下的快捷方式 |
說明::沒有-s選項的話則會建立一個硬連結檔案,工作中幾乎不會建立檔案的硬連結
提示:在建立軟連結是要養成習慣——源檔案要使用絕對路徑,不能使用相對路徑,這樣可以友善移動連結檔案後,仍然能夠正常使用
軟硬連結科普:
在LInux中,檔案名和檔案的資料是分開存儲的,通過檔案名可以通路檔案資料,軟連結則是儲存了連結到源檔案的完整路徑,通過完整路徑就能通路到連結檔案的資料,而删除了連結的源檔案,則無法通過軟連接配接通路到原來的資料。硬連結則相當于檔案資料的另一個檔案名,也可以直接通路存儲到磁盤的資料,隻有把一個檔案資料的所有檔案名、硬連結都删除後,這個檔案資料才能被真正删除。
提示:
·在Linux中,隻有檔案的硬連結數=0才會被删除
·使用ls -l可以檢視一個檔案的硬連結數量
·在日常工作中幾乎不會建立檔案的硬連結
打包和壓縮
打包/解包
前言:在不同作業系統中,常用的打包壓縮方式是不同的
Windows常用rar
Mac常用zip
Linux常用tar.gz
說明:tar是Linux中最常用的備份工具,此指令可以把一系列檔案打包到一個大檔案夾中,也可以把一個打包的大檔案恢複成一系列檔案
例1:
# 打封包件
>>tar -cvf 打封包件.tar 被打包的檔案/路徑
# 解封包件
>>tar -xvf 打封包件.tar
選項 | 含義 |
---|---|
c | 生成檔案檔案,建立打封包件 |
x | 解開檔案檔案 |
v | 列出歸檔解檔的詳細過程,顯示進度 |
f | 指定檔案檔案名稱,f後面一定是.tar檔案,是以必須放選項最後 |
壓縮/解壓縮
1.gzip
tar與gzip指令結合可以使用實作檔案打包和壓縮
注:tar隻負責打封包件,但不壓縮,用gzip壓縮tar打包後的檔案,其擴充名一般用xxx.tar.gz
在Linux中,最常見的壓縮檔案格式就是xx.tar.gz
在tar指令中有一個選項-z可以調用gzip,進而可以友善的實作壓縮和解壓縮的功能
例1:
# 壓縮檔案
>>tar -zcvf 打封包件.tar.gz 被壓縮的檔案/路徑
# 解壓縮檔案
>>tar -zxvf 打封包件.tar.gz
# 解壓縮到制定路徑
>>tar -zxvf 打封包件.tar.gz -C 目标路徑
2.bzip2
tar與bzip2指令結合可以使用實作檔案打包和壓縮(用法和gzip一樣),擴充名為xxx.tar.bz2
在tar指令中有一個選項-j可以調用bzip2,進而可以友善的實作壓縮和解壓縮的功能
例2:
# 壓縮檔案
>>tar -jcvf 打封包件.tar.bz2 被壓縮的檔案/路徑
# 解壓縮檔案
>>tar -jxvf 打封包件.tar.bz2
# 解壓縮到制定路徑
>>tar -jxvf 打封包件.tar.bz2 -C 目标路徑
選項 | 含義 |
---|---|
-C | 解壓到指定目錄,注意:要解壓縮的目錄必須存在 |
軟體安裝
apt是Advancd Packaging Tool,是Linux下的一款安裝包管理工具
可以再終端友善的安裝/解除安裝/更新軟體包
例1:
# 安裝軟體
>>sudo apt install 軟體包
# 解除安裝軟體
>>sudo apt remove 軟體名
# 更新已安裝的包
>>sudo apt upgrade
配置軟體源
如果希望自Ubuntu中安裝軟體更加快速,可以通過設定鏡像源,選擇一個通路網速更快的伺服器,來提供下載下傳/安裝服務
提示:更換伺服器後,需要一個相對較長時間的更新過程,需要耐心等待
所謂鏡像源,就是所有伺服器的内容都是相同的(鏡像),但是根據所在位置不同,國内伺服器通常速度會更快一些
操作方法:在系統設定界面,進入軟體和更新,更改“下載下傳自”的鏡像源位址
VI編輯器
vi編輯器在系統管理,伺服器管理編輯檔案時,其功能永遠不是圖形界面的編輯器能比拟的
vim:即vi improved,是從vi發展出來的一個文本編輯器,支援代碼補全、編譯及錯誤跳轉等友善程式設計的功能,被稱為編輯器之神
打開和建立檔案
在終端中輸入vi在後面跟上檔案名即可
例:
>>vi 檔案名
>>vi 檔案名 +行數 # 打開一個檔案并定位到指定行
如果檔案已存在,會直接打開該檔案
如果檔案不存在,會建立一個檔案
三種工作模式
1.指令模式:【其他模式下按Esc進入】打開檔案即進入了指令模式,是使用vi的入口,通過指令對檔案進行正常的編輯操作,如:定位、翻頁、複制、粘貼、删除……
2.末行模式:【指令模式下按:進入】用于執行儲存、退出等操作,末行模式是vi的出口
3.編輯模式:【指令模式下按i進入】正常的編輯文字
指令模式指令
移動(基礎)
1.上下左右
指令 | 功能 | 手指 |
---|---|---|
h | 向左 | 食指 |
j | 向下 | 食指 |
k | 向上 | 中指 |
l | 向右 | 無名指 |
2.行内移動
指令 | 英文 | 功能 |
---|---|---|
w | word | 向後移動一個單詞 |
b | back | 向前移動一個單詞 |
行首 | ||
^ | 行首,第一個不是空白字元的位置 | |
$ | 行尾 |
3.行數移動
指令 | 英文 | 功能 |
---|---|---|
gg | go | 檔案頂部 |
G | Go | 檔案末尾 |
數字gg | go | 移動到數字對應行數 |
數字G | Go | 移動到數字對應行數 |
:數字 | 移動到數字對應行數 |
4.螢幕移動
指令 | 英文 | 功能 |
---|---|---|
Ctrl + b | back | 向上翻頁 |
Ctrl + f | forward | 向下翻頁 |
H | Head | 螢幕頂部 |
M | Middle | 螢幕中間 |
L | Low | 螢幕底部 |
移動(程式)
1.段落移動
vi中使用空行來區分段落
在程式開發時,通常一段功能相關的代碼會寫在一起,之間沒有空行
指令 | 功能 |
---|---|
{ | 上一段 |
} | 下一段 |
2.括号切換
在程式世界中,(),[],{}使用頻率很高,而且都是成對出現的,可以通過%在它們之間進行切換
指令 | 功能 |
---|---|
% | 括号比對及切換 |
3.标記
在開發時,某一塊代碼可能需要稍後處理,例如:編輯、檢視
此時先使用m增加一個标記,這樣可以在需要時快速的跳轉回來或者執行其他編輯操作
标記名稱可以是 a~z 或者 A~Z 之間的任意一個字母
添加了标記的行如果被删除,标記同時被删除
如果在其他行添加了相同名稱的編輯,之前添加的标記也會被替換掉
指令 | 英文 | 功能 |
---|---|---|
m | mark | 添加标記x,x可以是 a~z 或者 A~Z 之間的任意一個字母 |
'x | 直接定位到标記x所在位置 |
選中文本(可識模式)
在vi中要選擇文本,需要先使用Visual指令切換到可視模式
vi中提供了三種可視模式,可以友善程式員選擇選中文本的方式
按Esc可以放棄選中,傳回到指令模式
指令 | 模式 | 功能 |
---|---|---|
v | 可視模式 | 從光标位置開始按照正常模式選擇文本 |
V | 可視行模式 | 選中光标經過的完整行 |
Ctrl + v | 可視塊模式 | 垂直方向選中文本 |
提示:可視模式下,可以和移動指令,例如:“ggVG”能夠選中所有内容
.撤銷和恢複撤銷
指令 | 英文 | 功能 |
---|---|---|
u | undo | 撤銷上次指令 |
Ctrl + r | redo | 回複撤銷的指令 |
删除文本
指令 | 英文 | 功能 |
---|---|---|
x | cut | 删除光标所在字元,或者選中文字 |
d(移動指令) | delete | 删除移動指令對應的内容 |
dd | delete | 删除光标所在行,可以ndd複制多行(n為行數) |
D | delete | 删除至行尾 |
提示:如果使用可視模式已經選中了一段文本,那麼無論使用d還是x,都可以删除選中文本
删除指令可以和移動指令連用,以下是常見的組合指令:
>>dw #從光标位置删除到單詞末尾
>>d0 #從光标位置删除到一行的起始位置
>>d} #從光标位置删除到段落末尾
>>ndd #從光标位置向下連續删除n行
>>d代碼行G #從光标所在行删除到制定代碼行之間的所有代碼
>>d'a #從光标所在行删除到标記a之間的所有代碼
複制、粘貼
vi中提供有一個被複制文本的緩沖區
複制指令會将選中的文字儲存在緩沖區
删除指令删除的文字會被儲存在緩沖區
在需要的位置,使用粘貼指令可以将緩沖區的文字插入到光标所在位置
指令 | 英文 | 功能 |
---|---|---|
y(移動指令) | copy | 複制 |
yy | copy | 複制一行,可以nyy複制多行(n為行數) |
p | paste | 粘貼 |
替換
指令 | 英文 | 功能 | 工作模式 |
---|---|---|---|
r | replace | 替換目前字元 | 指令模式 |
R | replace | 替換目前行光标後的字元 | 替換模式 |
R指令可以進入替換模式,替換完成後,按下Ese可以回到指令模式
替換指令的作用就是不用進入編輯模式,對檔案進行輕量級的修改
縮排和重複執行
指令 | 功能 |
---|---|
>> | 向右增加縮進 |
<< | 向左增加縮進 |
. | 重複上次指令 |
在可視模式下,縮排指令隻需要使用一個>或者<
在程式中,縮進通常用來表示代碼的歸屬關系
查找
正常查找:
指令 | 功能 |
---|---|
/str | 查找str |
查找到制定内容之後,使用Next查找下一個出現的位置:
n:查找下一個
N:查找上一個
如果不想看到高亮顯示,可以随便查找一個檔案中不存在的内容即可
單詞快速比對:
指令 | 功能 |
---|---|
* | 向後查找目前光标所在單詞 |
# | 向前查找目前光标所在單詞 |
在開發中,通過單詞快速比對,可以快速看到這個單詞在其他什麼位置使用過
末行模式指令
指令 | 英文 | 功能 |
---|---|---|
w | write | 儲存 |
q | quit | 退出,如果沒有儲存,不允許退出 |
q! | quit | 強行退出,不儲存退出 |
wq | write & quit | 儲存并退出 |
x | 儲存并退出 |
提示:
1.指令d、x類似于圖形界面的剪切操作——Ctrl+x
2.指令y類似于圖形界面的複制操作——Ctrl+c
3.指令p類似于圖形界面的粘貼操作——Ctrl+v
4.vi中的文本緩沖區隻有一個,如果後續做過複制、剪切操作,之前緩沖區中的内容會被替換
注意:vi中的文本緩沖區和系統的剪貼闆不是同一個,是以在其他軟體中使用Ctrl+c複制的内容,不能在vi中通過p指令粘貼,可以再編輯模式下使用滑鼠右鍵粘貼
查找并替換
指令格式:
:%s///g
1.全局替換
一次性替換檔案中的所有出現的舊文本
:%s/舊文本/新文本/g
2.可視區域替換
先選中要替換文字的範圍
:s/舊文本/新文本/g
3.确認替換
即把末尾的“g”改成“gc”,替換時會有提示,推薦使用
:s/舊文本/新文本/gc
y=yes替換
n=no不替換
a=all替換所有
q=quit退出替換
l=last替換最後一個,并把光标移動到行首
^E向下滾屏
^Y向上滾屏
其他常用指令
指令 | 英文 | 功能 |
---|---|---|
:e . | edit | 會打開内置的檔案浏覽器,浏覽目前目錄下的檔案 |
:n 檔案名 | new | 建立檔案 |
:w 檔案名 | write | 另存為,但是仍然編輯目前檔案,并不會切換檔案 |
分屏指令
使用分屏指令,可以同時編輯和常看多個檔案
指令 | 英文 | 功能 |
---|---|---|
:sp [檔案名] | split | 橫向增加分屏 |
:vsp [檔案名] | vertical split | 縱向增加分屏 |
1.切換分屏視窗
分屏視窗都是基于Ctrl+w這個快捷鍵的
指令 | 英文 | 功能 |
---|---|---|
w | window | 切換到下一個視窗 |
r | reverse | 互換視窗 |
c | close | 關閉目前視窗,但是不能關閉最後一個視窗 |
q | quit | 退出目前視窗,如果是最後一個視窗,則關閉vi |
o | other | 關閉其他視窗 |
編輯模式指令
在vi中除了常用的i進入編輯模式外,還提供了以下指令同樣可以進入編輯模式:
指令 | 英文 | 功能 | 常用 |
---|---|---|---|
i | insert | 在目前字元前插入文本 | 常用 |
I | insert | 在行首插入文本 | 較常用 |
a | append | 在目前字元後添加文本 | |
A | append | 在行末添加文本 | 較常用 |
o | 在目前行後面插入一空行 | 常用 | |
O | 在目前行前面插入一空行 | 常用 |
連續輸入相同字元
1.在指令模式下輸入需要重複的次數n
2.按i進入編輯模式
3.輸入需要的字元x
4.按Esc傳回指令模式
5.系統會自動重複2、3步驟n次,即輸入n個x
利用可視塊給多行代碼加注釋
1.在指令模式下移動到要添加注釋的第1行代碼,按^來到行首
2.按Ctrl +v進入可視塊模式
3.用j向下連續選中要添加的代碼行
4.輸入I進入編輯模式,并在行首插入注意:一定要使用I
5.輸入#也就是注釋符号
6.按下Esc傳回指令模式,傳回之後vi會在之前選中的每一行代碼前插入#