天天看點

個人筆記-Linux基礎常用快捷鍵與指令終端常用指令說明遠端管理指令說明使用者、組及權限系統資訊相關指令其他指令VI編輯器

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會在之前選中的每一行代碼前插入#

繼續閱讀