天天看點

Linux常用指令及部分詳解-print 将查找到的檔案輸出到标準輸出-exec command {} \; —–将查到的檔案執行command操作,{} 和 \;之間有空格-ok 和-exec相同,隻不過在操作前要詢使用者

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參數,則搜尋普通檔案+特殊檔案+目錄。

  1. locate

locate指令其實是"find -name"的另一種寫法,但是要比後者快得多,原因在于它不搜尋具體目錄,而是搜尋一個資料庫(/var/lib/locatedb),這個資料庫中含有本地所有檔案資訊。Linux系統自動建立這個資料庫,并且每天自動更新一次,是以使用locate指令查不到最新變動過的檔案。為了避免這種情況,可以在使用locate之前,先使用updatedb指令,手動更新資料庫。

locate指令的使用執行個體:

  $ locate /etc/sh

搜尋etc目錄下所有以sh開頭的檔案。

  $ locate ~/m

搜尋使用者主目錄下,所有以m開頭的檔案。

  $ locate -i ~/m

搜尋使用者主目錄下,所有以m開頭的檔案,并且忽略大小寫。

  1. whereis

whereis指令隻能用于程式名的搜尋,而且隻搜尋二進制檔案(參數-b)、man說明檔案(參數-m)和源代碼檔案(參數-s)。如果省略參數,則傳回所有資訊。

whereis指令的使用執行個體:

  $ whereis grep

  1. which

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

which指令的使用執行個體:

  $ which grep

  1. 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天以前

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

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

-type b/d/c/p/l/f #查是塊裝置、目錄、字元裝置、管道、符号連結、普通檔案

-size n[c] #查長度為n塊[或n位元組]的檔案

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

-fstype #查更改時間比f1新但比f2舊的檔案

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

-mount #查檔案時不跨越檔案系統mount點

-follow #如果遇到符号連結檔案,就跟蹤連結所指的檔案

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

-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-z0–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 指令

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

字段說明:

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