一晕换、命令行Tab自動(dòng)補(bǔ)全
很多初學(xué)者會(huì)覺得在Linux下面輸入很長的一個(gè)文件名是一件很麻煩的事情忘苛,那其實(shí)是你沒掌握Tab的用法嘗試在輸入部分文件名時(shí)按下Tab鍵
Tab
命令補(bǔ)全
內(nèi)部命令:
外部命令: bash根據(jù)PATH環(huán)境變量定義的路徑吼拥,自左而右在每個(gè)路徑搜尋以給定命令名命名的文件早敬,第一次找到的命令即為要執(zhí)行的命令
用戶給定的字符串只有一條惟一對(duì)應(yīng)的命令歇式,直接補(bǔ)全掌眠,否則,再次Tab會(huì)給出列表
例:
當(dāng)輸入cd 后不知道后面是什么文件時(shí)寥闪,可以摁Tab鍵太惠,會(huì)顯示此目錄下一層文件。輸入cd后疲憋,只記得目錄首字母也可以摁Tab鍵凿渊,會(huì)自動(dòng)補(bǔ)全。忘記命令時(shí)也可以摁Tab幫助缚柳。
目錄提示補(bǔ)全
[root@centos7 ~]#cd
cd cd-drive cd-info cd-read
cd-create-profile cd-fix-profile cd-it8 cdrecord
cdda-player cd-iccdump cd-paranoia
[root@centos7 ~]#cd-read
路徑補(bǔ)全
把用戶給出的字符串當(dāng)做路徑開頭埃脏,并在其指定上級(jí)目錄下搜索以指定的字符串開頭的文件名
如果惟一:則直接補(bǔ)全
否則:再次Tab給出列表
雙擊Tab鍵
command 2Tab 所有子命令或文件補(bǔ)全
string2Tab 以string開頭命令
/2Tab 顯示所有根目錄下一級(jí)目錄,包括隱藏目錄
./2Tab 當(dāng)前目錄下子目錄秋忙,包括隱藏目錄
*2Tab 當(dāng)前目錄下子目錄彩掐,不包括隱藏目錄
~2Tab 所有用戶列表
$2Tab 所有變量
@2Tab /etc/hosts記錄 ( centos7不支持)
=2Tab 相當(dāng)于ls –A ( centos7不支持)
二、命令行歷史
保存你輸入的命令歷史灰追《掠模可以用它來重復(fù)執(zhí)行命令 登錄shell 時(shí),會(huì)讀取命令歷史文件中記錄下的命令~/.bash_history
登錄進(jìn)shell 后新執(zhí)行的命令只會(huì)記錄在緩存中监嗜;這些命令會(huì)用戶退出時(shí)“追加”至命令歷史文件中
重復(fù)前一個(gè)命令谐檀,有4 種方法:
重復(fù)前一個(gè)命令 使用上方向鍵,并回車執(zhí)行裁奇。
按 !! 并回車執(zhí)行桐猬。
入 輸入 !-1 并回車執(zhí)行。
按 Ctrl+p 并回車執(zhí)行刽肠。
! 字符串: 重復(fù)前一個(gè)以“字符串”開頭的命令
例:
[root@centos7 /]#ls /etc/sysconfig/network-scripts/
ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
[root@centos7 /]#cat
c^C
[root@centos7 /]#!ls
ls /etc/sysconfig/network-scripts/
ifcfg-ens33 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
!num: 按照history 命令輸出中的序號(hào)重復(fù)對(duì)應(yīng)命令
!? 字符串: 重復(fù)前一個(gè)包含abc 的命令
!-n : 重復(fù)n
使用up (向上)和down (向下)鍵來上下瀏覽從前輸入的命令
鍵入ctrl-r 來在命令歷史中搜索命令
( (reverse-i-search )`’: :
要重新調(diào)用前一個(gè)命令中最后一個(gè)參數(shù):
!$ 表示
Esc, . (點(diǎn)擊Esc擊 鍵后松開溃肪,然后點(diǎn)擊 . 鍵)
Alt+ . (按住Alt擊 鍵的同時(shí)點(diǎn)擊 . 鍵)
!cat 重復(fù)前一個(gè)以“ cat”開頭的命令
例:
[root@centos7 /app]#cat /app/d1
dddd
wwww
xxx
gggg
[root@centos7 /app]#cat /app/z1
5
2
5
[root@centos7 /app]#!cat
cat /app/z1
5
2
5
!?cat 重復(fù)前一個(gè)包含string的命令
!cat:p 僅打印命令歷史,而不執(zhí)行
!$:p 打印輸出 !$ (上一條命令的最后一個(gè)參數(shù))的內(nèi)容
!:p 打印輸出 !(上一條命令的所有參數(shù))的內(nèi)容
^cat 刪除上一條命令中的第一個(gè)cat
cat1cat2 將上一條命令中的第一個(gè)cat1替換為
cat2
!:gs/cat1/cat2 將上一條命令中所有的cat1都替換
為 cat2
使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令
ctrl-r來在命令歷史中搜索命令
? ( reverse-i-search) `’:
Ctrl+g:從歷史搜索模式退出
要重新調(diào)用前一個(gè)命令中最后一個(gè)參數(shù):
!$ 表示
Esc, .(點(diǎn)擊Esc鍵后松開音五,然后點(diǎn)擊 . 鍵)
Alt+ .(按住Alt鍵的同時(shí)點(diǎn)擊 . 鍵)
三惫撰、調(diào)用歷史參數(shù)
command !^ : 利用上一個(gè)命令的第一個(gè)參數(shù)做cmd的參數(shù)
command !$ : 利用上一個(gè)命令的最后一個(gè)參數(shù)做cmd的參數(shù)
例:pwd是最后一個(gè)參數(shù), 用命令touch 創(chuàng)建躺涝!$ (pwd) , ls查詢創(chuàng)建文件夾
[root@centos7 /app]#pwd
/app
[root@centos7 /app]#touch !$
touch pwd
[root@centos7 /app]#ls
22.txt a1 bin b.txt d1 f1 f11 f2 f3 f7.sh hello.sh pwd q7.sh Rescue.asd z1
command !* : 利用上一個(gè)命令的全部參數(shù)做cmd的參數(shù)
command !:n : 利用上一個(gè)命令的第n個(gè)參數(shù)做cmd的參數(shù)
command !n:^ 調(diào)用第n條命令的第一個(gè)參數(shù)
command !n:$ 調(diào)用第n條命令的最后一個(gè)參數(shù)
例:history查看313歷史命令厨钻,最后一個(gè)參數(shù)是bash$
313 2017-07-27 16:29:29 cat /etc/passwd |grep bash$
root@centos7 ~]#echo !313$
echo bash$
bash$
command !n:m 調(diào)用第n條命令的第m個(gè)參數(shù)
command !n:* 調(diào)用第n條命令的所有參數(shù)
command !string:^ 從命令歷史中搜索以 string 開頭的命令,并獲取它的第一個(gè)參數(shù)
command !string:$ 從命令歷史中搜索以 string 開頭的命令,并獲取它的最后一個(gè)參數(shù)
command !string:n 從命令歷史中搜索以 string 開頭的命令坚嗜,并獲取它的第n個(gè)參數(shù)
command !string:* 從命令歷史中搜索以 string 開頭的命令夯膀,并獲取它的所有參數(shù)
四、命令history
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
-c: 清空命令歷史
[root@centos7 ~]#history
1 2017-07-30 16:32:29 echo > .bash_history
2 2017-07-30 16:32:37 history
3 2017-07-30 16:32:47 cat .bash_history
4 2017-07-30 16:33:58 history
5 2017-07-30 16:34:15 hostname
[root@centos7 ~]#history -c
-d offset: 刪除歷史中指定的第offset個(gè)命令
n: 顯示最近的n條歷史
-a: 追加本次會(huì)話新執(zhí)行的命令歷史列表至歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-p: 展開歷史參數(shù)成多行苍蔬,但不存在歷史列表中
例:歷史記錄中沒有這個(gè)命令history -p echo {1..10..3}
[root@centos7 ~]#echo {1..10..3}
1 4 7 10
[root@centos7 ~]#history -p echo {1..10..3}
echo
1
4
7
10
[root@centos7 ~]#history
94 2017-07-30 17:46:30 echo
95 2017-07-30 17:46:53 echo {1..10..3}
96 2017-07-30 17:47:48 history
-s: 展開歷史參數(shù)成一行诱建,附加在歷史列表后
命令歷史相關(guān)環(huán)境變量
HISTSIZE:命令歷史記錄的條數(shù)
例:
[root@centos7 ~]#echo $HISTSIZE
1000
HISTFILE:指定歷史文件,默認(rèn)為~/.bash_history
HISTFILESIZE:命令歷史文件記錄歷史的條數(shù)
例:打開文件碟绑,找到HISTSIZE=1000俺猿,需要修改記錄數(shù)可以把1000修改你覺得合適的記錄數(shù)(用nano編輯器或者vim)
[root@centos7 ~]#cat /etc/profile
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
HISTTIMEFORMAT=“%F %T “ 顯示時(shí)間
例: 可以保存到編輯器里面方便查看
[root@centos7 ~]#HISTTIMEFORMAT="%F %T "
[root@centos7 ~]#history
1 2017-07-30 16:56:19 history -r
2 2017-07-30 16:32:29 echo > .bash_history
3 2017-07-30 16:32:37 history
4 2017-07-30 16:32:47 cat .bash_history
5 2017-07-30 16:33:58 history
HISTIGNORE=“str1:str2*:… “ 忽略str1命令茎匠, str2開頭的歷史
控制命令歷史的記錄方式:
環(huán)境變量: HISTCONTROL
ignoredups 默認(rèn),忽略重復(fù)的命令押袍,連續(xù)且相同為“重復(fù)”
ignorespace 忽略所有以空白開頭的命令
ignoreboth 相當(dāng)于ignoredups, ignorespace的組合
erasedups 刪除重復(fù)命令
例:
[root@centos7 ~]#HISTCONTROL=erasedups
[root@centos7 ~]#pwd
/root
[root@centos7 ~]#pwd
/root
[root@centos7 ~]#ls
aliasq bin etc nano.save test
anaconda-ks.cfg Desktop etc2017-07-29 Pictures testdir
B Documents initial-setup-ks.cfg Public typescript
bashrc Downloads Music Templates Videos
[root@centos7 ~]#pwd
/root
[root@centos7 ~]#history
91 2017-07-30 18:05:44 ls
92 2017-07-30 18:05:48 pwd
93 2017-07-30 18:06:08 history
export 變量名="值“
存放在 /etc/profile 或 ~/.bash_profile
五诵冒、bash的快捷鍵
Ctrl + l 清屏,相當(dāng)于clear命令
Ctrl + o 執(zhí)行當(dāng)前命令谊惭,并重新顯示本命令
Ctrl + s 阻止屏幕輸出造烁,鎖定
Ctrl + q 允許屏幕輸出
Ctrl + c 終止命令
Ctrl + z 掛起命令
Ctrl + a 光標(biāo)移到命令行首,相當(dāng)于Home
Ctrl + e 光標(biāo)移到命令行尾午笛,相當(dāng)于End
Ctrl + f 光標(biāo)向右移動(dòng)一個(gè)字符
Ctrl + b 光標(biāo)向左移動(dòng)一個(gè)字符
Alt + f 光標(biāo)向右移動(dòng)一個(gè)單詞尾
Alt + b 光標(biāo)向左移動(dòng)一個(gè)單詞首
Ctrl + xx 光標(biāo)在命令行首和光標(biāo)之間移動(dòng)
Ctrl + u 從光標(biāo)處刪除至命令行首
Ctrl + k 從光標(biāo)處刪除至命令行尾
Alt + r 刪除當(dāng)前整行
六、gnome-terminal
應(yīng)用程序->附件->終端
支持多個(gè)“標(biāo)簽” shell的圖形化終端模擬器
Ctrl-Shift-n 創(chuàng)建新窗口
Ctrl-Shift-q 關(guān)閉當(dāng)前窗口
Ctrl-Shift-t 創(chuàng)建一個(gè)標(biāo)簽頁
Ctrl-Shift-w 關(guān)閉一個(gè)標(biāo)簽頁
Ctrl-PaUp/PgUn 切換到下一個(gè)/前一個(gè)標(biāo)簽頁
Ctrl-Shift-c 復(fù)制選中的文本
Ctrl-Shift-v 把文本粘帖到當(dāng)前光標(biāo)處