Linux常用命令及部分詳解


1、總結部分

常用指令

 ls        顯示文件或目錄

-l            列出文件詳細信息l(list)

-a            列出當前目錄下所有文件及目錄,包括隱藏的a(all)

mkdir         創建目錄

-p            創建目錄,若無父目錄,則創建p(parent)

cd             切換目錄

touch          創建空文件

echo            創建帶有內容的文件。

cat              查看文件內容

nl                 顯示行號

tac                倒敘查看文件內容

cp                拷貝

mv               移動或重命名

rm               刪除文件

-r                遞歸刪除,可刪除子目錄及文件

-f                強制刪除

find              在文件系統中搜索某文件

wc                統計文本中行數、字數、字符數

grep             在文本文件中查找某個字符串

rmdir            刪除空目錄

tree              樹形結構顯示目錄,需要安裝tree包

pwd               顯示當前目錄

ln                  創建鏈接文件

more、less           分頁顯示文本文件內容

head、tail           顯示文件頭、尾內容

ctrl+alt+F1           命令行全屏模式

 

系統管理命令

stat               顯示指定文件的詳細信息,比ls更詳細

who               顯示在線登陸用戶

whoami           顯示當前操作用戶

hostname        顯示主機名

uname            顯示系統信息

top                動態顯示當前耗費資源最多進程信息

ps                  顯示瞬間進程狀態 ps -aux

du                 查看目錄大小 du -h /home帶有單位顯示目錄信息

df                 查看磁盤大小 df -h 帶有單位顯示磁盤信息

ifconfig           查看網絡情況

ping              測試網絡連通

netstat           顯示網絡狀態信息

man              命令不會用了,找男人  如:man ls

clear              清屏

alias             對命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit

kill                 殺死進程,可以先用ps 或 top命令查看進程的id,然后再用kill命令殺死進程。

查看系統信息

lsb_release -a

uname -a  可顯示電腦以及操作系統的相關信息。 

cat /etc/issue  顯示的是發行版本信息

 

打包壓縮相關命令

gzip:

bzip2:

tar:                打包壓縮

     -c              歸檔文件

     -x              壓縮文件

     -z              gzip壓縮文件

     -j              bzip2壓縮文件

     -v              顯示壓縮或解壓縮過程 v(view)

     -f              使用檔名

例:

tar -cvf /home/abc.tar /home/abc              只打包,不壓縮

tar -zcvf /home/abc.tar.gz /home/abc        打包,並用gzip壓縮

tar -jcvf /home/abc.tar.bz2 /home/abc      打包,並用bzip2壓縮

當然,如果想解壓縮,就直接替換上面的命令  tar -cvf  / tar -zcvf  / tar -jcvf 中的“c” 換成“x” 就可以了。

 

關機/重啟機器

shutdown

     -r             關機重啟

     -h             關機不重啟

     now          立刻關機

halt               關機

reboot          重啟

 

管道

將一個命令的標准輸出作為另一個命令的標准輸入。也就是把幾個命令組合起來使用,后一個命令除以前一個命令的結果。

例:grep -r "close" /home/* | more       在home目錄下所有文件中查找,包括close的文件,並分頁輸出。

 

軟件包管理

dpkg (Debian Package)管理工具,軟件包名以.deb后綴。這種方法適合系統不能聯網的情況下。

比如安裝tree命令的安裝包,先將tree.deb傳到Linux系統中。再使用如下命令安裝。

sudo dpkg -i tree_1.5.3-1_i386.deb         安裝軟件

sudo dpkg -r tree                                     卸載軟件

 

注:將tree.deb傳到Linux系統中,有多種方式。VMwareTool,使用掛載方式;使用winSCP工具等;

APT(Advanced Packaging Tool)高級軟件工具。這種方法適合系統能夠連接互聯網的情況。

依然以tree為例

sudo apt-get install tree                         安裝tree

sudo apt-get remove tree                       卸載tree

sudo apt-get update                                 更新軟件

sudo apt-get upgrade        

 

將.rpm文件轉為.deb文件

.rpm為RedHat使用的軟件格式。在Ubuntu下不能直接使用,所以需要轉換一下。

sudo alien abc.rpm

 

vim使用

vim三種模式:命令模式、插入模式、編輯模式。使用ESC或i或:來切換模式。

命令模式下:

:q                      退出

:q!                     強制退出

:wq                   保存並退出

:set number     顯示行號

:set nonumber  隱藏行號

/apache            在文檔中查找apache 按n跳到下一個,shift+n上一個

yyp                   復制光標所在行,並粘貼

h(左移一個字符←)、j(下一行↓)、k(上一行↑)、l(右移一個字符→)

 

用戶及用戶組管理

/etc/passwd    存儲用戶賬號

/etc/group       存儲組賬號

/etc/shadow    存儲用戶賬號的密碼

/etc/gshadow  存儲用戶組賬號的密碼

useradd 用戶名

userdel 用戶名

adduser 用戶名

groupadd 組名

groupdel 組名

passwd root     給root設置密碼

su root

su - root 

/etc/profile     系統環境變量

bash_profile     用戶環境變量

.bashrc              用戶環境變量

su user              切換用戶,加載配置文件.bashrc

su - user            切換用戶,加載配置文件/etc/profile ,加載bash_profile

更改文件的用戶及用戶組

sudo chown [-R] owner[:group] {File|Directory}

例如:還以jdk-7u21-linux-i586.tar.gz為例。屬於用戶hadoop,組hadoop

要想切換此文件所屬的用戶及組。可以使用命令。

sudo chown root:root jdk-7u21-linux-i586.tar.gz

 

文件權限管理

三種基本權限

R           讀         數值表示為4

W          寫         數值表示為2

X           可執行  數值表示為1

-rw-rw-r--一共十個字符,分成四段。

第一個字符“-”表示普通文件;這個位置還可能會出現“l”鏈接;“d”表示目錄

第二三四個字符“rw-”表示當前所屬用戶的權限。   所以用數值表示為4+2=6

第五六七個字符“rw-”表示當前所屬組的權限。      所以用數值表示為4+2=6

第八九十個字符“r--”表示其他用戶權限。              所以用數值表示為2

所以操作此文件的權限用數值表示為662 

更改權限

sudo chmod [u所屬用戶  g所屬組  o其他用戶  a所有用戶]  [+增加權限  -減少權限]  [r  w  x]   目錄名 

例如:有一個文件filename,權限為“-rw-r----x” ,將權限值改為"-rwxrw-r-x",用數值表示為765

sudo chmod u+x g+w o+r  filename

上面的例子可以用數值表示

sudo chmod 765 filename

改變文件的所屬群組:chgrp

改變文件擁有者:chown

改變文件的權限:chmod

 

GZIP,TAR區別

tar是打包,不是壓縮,只是把一堆文件打成一個文件而已GZIP用在HTTP協議上是一種用來改進WEB應用程序性能的技術,將網頁內容壓縮后再傳輸。

zip就不用說了,主流的壓縮格式。

zip最新的壓縮算法還是很好的,建議還是用zip格式化,全平台通用。

tar沒有怎樣壓縮,壓縮率100%,主要是永遠打包,

zip壓縮率看文件類型,jpg就沒怎么壓縮率,但bmp很高

gzip一般比zip高

假設一個目錄/home下有文件mm.txt、sort.txt、xx.com

例1:把/home目錄下的每個文件壓縮成.gz文件。

$ cd /home

$ gzip *

$ ls m.txt.gz sort.txt.gz xx.com.gz

例2:把例1中每個壓縮的文件解壓,並列出詳細的信息。

$ gzip -dv *

 

 2、詳解部分

查找命令對比及詳解

1、find

find是最常見和最強大的查找命令,你可以用它找到任何你想找的文件。

find的使用格式如下:

  $ find <指定目錄> <指定條件> <指定動作>

  - <指定目錄>: 所要搜索的目錄及其所有子目錄。默認為當前目錄。

  - <指定條件>: 所要搜索的文件的特征。

  - <指定動作>: 對搜索結果進行特定的處理。

如果什么參數也不加,find默認搜索當前目錄及其子目錄,並且不過濾任何結果(也就是返回所有文件),將它們全都顯示在屏幕上。

find的使用實例:

  $ find . -name 'my*'

搜索當前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。

  $ find . -name 'my*' -ls

搜索當前目錄中,所有文件名以my開頭的文件,並顯示它們的詳細信息。

  $ find . -type f -mmin -10

搜索當前目錄中,所有過去10分鍾中更新過的普通文件。如果不加-type f參數,則搜索普通文件+特殊文件+目錄。

 

2. locate

locate命令其實是"find -name"的另一種寫法,但是要比后者快得多,原因在於它不搜索具體目錄,而是搜索一個數據庫(/var/lib/locatedb),這個數據庫中含有本地所有文件信息。Linux系統自動創建這個數據庫,並且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數據庫。

locate命令的使用實例:

  $ locate /etc/sh

搜索etc目錄下所有以sh開頭的文件。

  $ locate ~/m

搜索用戶主目錄下,所有以m開頭的文件。

  $ locate -i ~/m

搜索用戶主目錄下,所有以m開頭的文件,並且忽略大小寫。

 

3. whereis

whereis命令只能用於程序名的搜索,而且只搜索二進制文件(參數-b)、man說明文件(參數-m)和源代碼文件(參數-s)。如果省略參數,則返回所有信息。

whereis命令的使用實例:

  $ whereis grep

 

4. which

which命令的作用是,在PATH變量指定的路徑中,搜索某個系統命令的位置,並且返回第一個搜索結果。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。

which命令的使用實例:

  $ which grep

 

5. find詳解

·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \;

find命令的參數;

pathname: find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統根目錄。

-print: find命令將匹配的文件輸出到標准輸出。

-exec: find命令對匹配的文件執行該參數所給出的shell命令。相應命令的形式為'command' { } \;,注意{ }和\;之間的空格。

-ok: 和-exec的作用相同,只不過以一種更為安全的模式來執行該參數所給出的shell命令,在執行每一個命令之前,都會給出提示,讓用戶來確定是否執行。

#-print 將查找到的文件輸出到標准輸出

#-exec   command   {} \;      —–將查到的文件執行command操作,{} 和 \;之間有空格

#-ok 和-exec相同,只不過在操作前要詢用戶

例:find . -name .svn | xargs rm -rf

====================================================

-name   filename             #查找名為filename的文件

-perm                        #按執行權限來查找

-user    username             #按文件屬主來查找

-group groupname            #按組來查找

-mtime   -n +n                #按文件更改時間來查找文件,-n指n天以內,+n指n天以前

-atime    -n +n               #按文件訪問時間來查GIN: 0px">

-ctime    -n +n              #按文件創建時間來查找文件,-n指n天以內,+n指n天以前

-nogroup                     #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在

-nouser                     #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存

-newer   f1 !f2              找文件,-n指n天以內,+n指n天以前 

-ctime    -n +n               #按文件創建時間來查找文件,-n指n天以內,+n指n天以前 

-nogroup                     #查無有效屬組的文件,即文件的屬組在/etc/groups中不存在

-nouser                      #查無有效屬主的文件,即文件的屬主在/etc/passwd中不存

-newer   f1 !f2               #查更改時間比f1新但比f2舊的文件

-type    b/d/c/p/l/f         #查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件

-size      n[c]               #查長度為n塊[或n字節]的文件

-depth                       #使查找在進入子目錄前先行查找完本目錄

-fstype                     #查更改時間比f1新但比f2舊的文件

-type    b/d/c/p/l/f         #查是塊設備、目錄、字符設備、管道、符號鏈接、普通文件

-size      n[c]               #查長度為n塊[或n字節]的文件

-depth                       #使查找在進入子目錄前先行查找完本目錄

-fstype                      #查位於某一類型文件系統中的文件,這些文件系統類型通常可 在/etc/fstab中找到

-mount                       #查文件時不跨越文件系統mount點

-follow                      #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件

-cpio                %;      #查位於某一類型文件系統中的文件,這些文件系統類型通常可 在/etc/fstab中找到

-mount                       #查文件時不跨越文件系統mount點

-follow                      #如果遇到符號鏈接文件,就跟蹤鏈接所指的文件

-cpio                        #對匹配的文件使用cpio命令,將他們備份到磁帶設備中

-prune                       #忽略某個目錄

=====================================================

$find   ~   -name   "*.txt"   -print    #在$HOME中查.txt文件並顯示

$find   .    -name   "*.txt"   -print

$find   .    -name   "[A-Z]*"   -print   #查以大寫字母開頭的文件

$find   /etc   -name   "host*"   -print #查以host開頭的文件

$find   .   -name   "[a-z][a-z][0–9][0–9].txt"    -print   #查以兩個小寫字母和兩個數字開頭的txt文件

$find .   -perm   755   -print

$find   .   -perm -007   -exec ls -l {} \;   #查所有用戶都可讀寫執行的文件同-perm 777

$find   . -type d   -print

$find   .   !   -type   d   -print 

$find   .   -type l   -print

$find   .   -size   +1000000c   -print        #查長度大於1Mb的文件

$find   .   -size   100c         -print       # 查長度為100c的文件

$find   .   -size   +10   -print              #查長度超過期作廢10塊的文件(1塊=512字節)

$cd /

$find   etc   home   apps    -depth   -print   | cpio   -ivcdC65536   -o   /dev/rmt0

$find   /etc -name "passwd*"   -exec grep   "cnscn"   {}   \;   #看是否存在cnscn用戶

$find . -name "yao*"   | xargs file

$find   . -name "yao*"   |   xargs   echo    "" > /tmp/core.log

$find   . -name "yao*"   | xargs   chmod   o-w

======================================================

find   -name april*                     在當前目錄下查找以april開始的文件

find   -name   april*   fprint file        在當前目錄下查找以april開始的文件,並把結果輸出到file中

find   -name ap* -o -name may*   查找以ap或may開頭的文件

find   /mnt   -name tom.txt   -ftype vfat   在/mnt下查找名稱為tom.txt且文件系統類型為vfat的文件

find   /mnt   -name t.txt ! -ftype vfat   在/mnt下查找名稱為tom.txt且文件系統類型不為vfat的文件

find   /tmp   -name wa* -type l            在/tmp下查找名為wa開頭且類型為符號鏈接的文件

find   /home   -mtime   -2                 在/home下查最近兩天內改動過的文件

find /home    -atime -1                  查1天之內被存取過的文件

find /home -mmin    +60                  在/home下查60分鍾前改動過的文件

find /home   -amin   +30                  查最近30分鍾前被存取過的文件

find /home   -newer   tmp.txt             在/home下查更新時間比tmp.txt近的文件或目錄

find /home   -anewer   tmp.txt            在/home下查存取時間比tmp.txt近的文件或目錄

find   /home   -used   -2                  列出文件或目錄被改動過之后,在2日內被存取過的文件或目錄

find   /home   -user cnscn                列出/home目錄內屬於用戶cnscn的文件或目錄

find   /home   -uid   +501                  列出/home目錄內用戶的識別碼大於501的文件或目錄

find   /home   -group   cnscn              列出/home內組為cnscn的文件或目錄

find   /home   -gid 501                   列出/home內組id為501的文件或目錄

find   /home   -nouser                    列出/home內不屬於本地用戶的文件或目錄

find   /home   -nogroup                   列出/home內不屬於本地組的文件或目錄

find   /home    -name tmp.txt    -maxdepth   4   列出/home內的tmp.txt 查時深度最多為3層

find   /home   -name tmp.txt   -mindepth   3   從第2層開始查

find   /home   -empty                     查找大小為0的文件或空目錄

find   /home   -size   +512k                查大於512k的文件

find   /home   -size   -512k               查小於512k的文件

find   /home   -links   +2                查硬連接數大於2的文件或目錄

find   /home   -perm   0700                查權限為700的文件或目錄

find   /tmp   -name tmp.txt   -exec cat {} \;

find   /tmp   -name   tmp.txt   -ok   rm {} \;

find    /   -amin    -10     # 查找在系統中最后10分鍾訪問的文件

find    /   -atime   -2        # 查找在系統中最后48小時訪問的文件

find    /   -empty             # 查找在系統中為空的文件或者文件夾

find    /   -group   cat        # 查找在系統中屬於 groupcat的文件

find    /   -mmin   -5         # 查找在系統中最后5分鍾里修改過的文件

find    /   -mtime   -1       #查找在系統中最后24小時里修改過的文件

find    /   -nouser           #查找在系統中屬於作廢用戶的文件

find    /   -user    fred     #查找在系統中屬於FRED這個用戶的文件

find / -name filename| rm -rf,不成功,請問為什么不成功?

find / -name filename -exec rm -rf {} \;

\; 則相當於“憲法”,沒什么說頭,就是這么規定的,在 -exec 后面需要一個表示該命令終結的的符號。可以在 man find 中找到答案。

要讓rm識別find的結果,如下:

find / -name filename |xargs rm -rf

之所以find . -name filename |rm -rf不通過,是因為rm命令不接受從標准輸入傳過來的指令

查找含特定字符串的文件

日志查詢命令詳解

http://www.cnblogs.com/Genesisx/p/7457571.html

TOP命令詳解

第四行中使用中的內存總量(used)指的是現在系統內核控制的內存數,空閑內存總量(free)是內核還未納入其管控范圍的數量。納入內核管理的內存不見得都在使用中,還包括過去使用過的現在可以被重復利用的內存,內核並不把這些可被重新使用的內存交還到free中去,因此在linux上free內存會越來越少,但不用為此擔心。

如果出於習慣去計算可用內存數,這里有個近似的計算公式:第四行的free + 第四行的buffers + 第五行的cached,按這個公式此台服務器的可用內存:530668+79236+4231276 = 4.7GB。

對於內存監控,在top里我們要時刻監控第五行swap交換分區的used,如果這個數值在不斷的變化,說明內核在不斷進行內存和swap的數據交換,這是真正的內存不夠用了。

第七行以下:各進程(任務)的狀態監控
PID — 進程id
USER — 進程所有者
PR — 進程優先級
NI — nice值。負值表示高優先級,正值表示低優先級
VIRT — 進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
RES — 進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
SHR — 共享內存大小,單位kb
S — 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=跟蹤/停止 Z=僵屍進程
%CPU — 上次更新到現在的CPU時間占用百分比
%MEM — 進程使用的物理內存百分比
TIME+ — 進程使用的CPU時間總計,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)

 

VIRT:virtual memory usage 虛擬內存
1、進程“需要的”虛擬內存大小,包括進程使用的庫、代碼、數據等
2、假如進程申請100m的內存,但實際只使用了10m,那么它會增長100m,而不是實際的使用量

RES:resident memory usage 常駐內存
1、進程當前使用的內存大小,但不包括swap out;進程使用的物理內存總和
2、包含其他進程的共享
3、如果申請100m的內存,實際使用10m,它只增長10m,與VIRT相反
4、關於庫占用內存的情況,它只統計加載的庫文件所占內存大小

SHR:shared memory 共享內存
1、除了自身進程的共享內存,也包括其他進程的共享內存
2、雖然進程只使用了幾個共享庫的函數,但它包含了整個共享庫的大小
3、計算某個進程所占的物理內存大小公式:RES – SHR
4、swap out后,它將會降下來

free命令



其中的相關說明:  

Mem:表示物理內存統計
-/+ buffers/cached:表示物理內存的緩存統計
Swap:表示硬盤上交換分區的使用情況(這里我們不去關心)
系統的總物理內存:255268Kb(256M),但系統當前真正可用的內存並不是第一行free 標記的 16936Kb,它僅代表未被分配的內存。
我們使用total1、used1、free1、used2、free2 等名稱來代表上面統計數據的各值,1、2 分別代表第一行和第二行的數據。

total1:    表示物理內存總量。
used1:     表示總計分配給緩存(包含buffers 與cache )使用的數量,但其中可能部分緩存並未實際使用。
free1:     未被分配的內存。
shared1:   共享內存,一般系統不會用到,這里也不討論。
buffers1: 系統分配但未被使用的buffers 數量。
cached1:   系統分配但未被使用的cache 數量。buffer 與cache 的區別見后面。

used2:     實際使用的buffers 與cache 總量,也是實際使用的內存總量。
free2:     未被使用的buffers 與cache 和未被分配的內存之和,這就是系統當前實際可用內存。

  可以整理出如下等式:
total1 = used1 + free1
total1 = used2 + free2
used1   = buffers1 + cached1 + used2
free2   = buffers1 + cached1 + free1

buffer是用於存放要輸出到disk(塊設備)的數據的,而cache是存放從disk上讀出的數據。這二者是為了提高IO性能的,並由OS管理。

因為被系統cache和buffer占用的內存可以被快速回收,所以通常free2比free1會大很多。

vmstat 命令

vmstat 3

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------

r b swpd free buff cache si so bi bo in cs us sy id wa st

0 0 320 42188 167332 1534368 0 0 4 7 1 0 0 0 99 0 0

0 0 320 42188 167332 1534392 0 0 0 0 1002 39 0 0 100 0 0

0 0 320 42188 167336 1534392 0 0 0 19 1002 44 0 0 100 0 0

0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0

0 0 320 42188 167336 1534392 0 0 0 0 1002 41 0 0 100 0 0

 

 

字段說明:

Procs(進程)

  • r: 運行隊列中進程數量,這個值也可以判斷是否需要增加CPU。(長期大於1)
  • b: 等待IO的進程數量。

Memory(內存)

  • swpd: 使用虛擬內存大小,如果swpd的值不為0,但是SI,SO的值長期為0,這種情況不會影響系統性能。
  • free: 空閑物理內存大小。
  • buff: 用作緩沖的內存大小。
  • cache: 用作緩存的內存大小,如果cache的值大的時候,說明cache處的文件數多,如果頻繁訪問到的文件都能被cache處,那么磁盤的讀IO bi會非常小。

Swap

  • si: 每秒從交換區寫到內存的大小,由磁盤調入內存。
  • so: 每秒寫入交換區的內存大小,由內存調入磁盤。

注意:內存夠用的時候,這2個值都是0,如果這2個值長期大於0時,系統性能會受到影響,磁盤IO和CPU資源都會被消耗。有些朋友看到空閑內存(free)很少的或接近於0時,就認為內存不夠用了,不能光看這一點,還要結合si和so,如果free很少,但是si和so也很少(大多時候是0),那么不用擔心,系統性能這時不會受到影響的。

IO(現在的Linux版本塊的大小為1kb)

  • bi: 每秒讀取的塊數
  • bo: 每秒寫入的塊數

注意:隨機磁盤讀寫的時候,這2個值越大(如超出1024k),能看到CPU在IO等待的值也會越大。

system(系統)

  • in: 每秒中斷數,包括時鍾中斷。
  • cs: 每秒上下文切換數。

注意:上面2個值越大,會看到由內核消耗的CPU時間會越大。

CPU(以百分比表示)

  • us: 用戶進程執行時間百分比(user time)

us的值比較高時,說明用戶進程消耗的CPU時間多,但是如果長期超50%的使用,那么我們就該考慮優化程序算法或者進行加速。

  • sy: 內核系統進程執行時間百分比(system time)

sy的值高時,說明系統內核消耗的CPU資源多,這並不是良性表現,我們應該檢查原因。

  • wa: IO等待時間百分比

wa的值高時,說明IO等待比較嚴重,這可能由於磁盤大量作隨機訪問造成,也有可能磁盤出現瓶頸(塊操作)。

  • id: 空閑時間百分比

3、工作中總結的奇淫絕技

按文件大小排序取前五

ls -hlS|head -n 5

保留列頭

例如:ps aux|head -n 1; ps aux | grep 'java'

統計日志中關鍵詞出現的次數並排序

cat requstParams-2017-10-30-2.log | grep -i 'method'  |sort -nr| uniq  -c |sort -k1 -nr

 

!!:執行上一條命令
!num:執行歷史命令中第num條命令
!-num:執行歷史命令中倒數第num條命令
!?string?:執行最近一條包含有string字符串的命令
Ctrl+r:搜索上一條匹配的命令
!$:代表上一個命令的最后一個字符串
Esc+.:顯示上一個命令的最后一個字符串
 
移動相關命令
Ctrl+a:將光標移到行首
Ctrl+e:將光標移到行尾
Ctrl+右箭頭:向右移動一個單詞
Ctrl+左箭頭:向左移動一個單詞
Ctrl+f:向右移動一個字符,相當於按向右按鍵
Ctrl+b:向左移動一個字符,相當於按向左按鍵
Esc+f:移動到當前單詞的尾部
Esc+b:移動到當前單詞的首部
 
編輯相關的命令
tab:補全命令
Ctrl+c:中斷當前的操作(最常用)
Ctrl+u:剪切光標所在位置到行首間的字符,如果光標在最后,相當於剪切當前命令行
Ctrl+k:剪切光標所在位置到行尾間的字符,如果光標在行首,相當於剪切當前命令行
Ctrl+y:粘貼之前被剪切的字符串
Ctrl+d:刪除光標處所在的字符
Ctrl+h:刪除光標處所在的前一個字符
Ctrl+w:刪除光標前的單詞
 
操作相關命令
Ctrl+d:注銷當前shell並關閉
clear:清屏
exit:退出當前shell
Ctrl+l:清屏操作(將當前的顯示全部清除,保留當前行命令)
Ctrl+s: 掛起當前shell
Ctrl+q:重新啟動掛起的shell


 

 


文章內容均為網上收集整理,如有侵權告知必刪

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM