Linux 入門操作(二)

一、命令行Tab自動補全

很多初學(xué)者會覺得在Linux下面輸入很長的一個文件名是一件很麻煩的事情,那其實是你沒掌握Tab的用法嘗試在輸入部分文件名時按下Tab鍵

Tab

命令補全
內(nèi)部命令:
外部命令: bash根據(jù)PATH環(huán)境變量定義的路徑,自左而右在每個路徑搜尋以給定命令名命名的文件,第一次找到的命令即為要執(zhí)行的命令
用戶給定的字符串只有一條惟一對應(yīng)的命令,直接補全,否則,再次Tab會給出列表

例:
當(dāng)輸入cd 后不知道后面是什么文件時,可以摁Tab鍵,會顯示此目錄下一層文件。輸入cd后,只記得目錄首字母也可以摁Tab鍵,會自動補全。忘記命令時也可以摁Tab幫助。

目錄提示補全

[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 

路徑補全
把用戶給出的字符串當(dāng)做路徑開頭,并在其指定上級目錄下搜索以指定的字符串開頭的文件名
如果惟一:則直接補全
否則:再次Tab給出列表

雙擊Tab鍵
command 2Tab 所有子命令或文件補全
string2Tab 以string開頭命令
/2Tab 顯示所有根目錄下一級目錄,包括隱藏目錄
./2Tab 當(dāng)前目錄下子目錄,包括隱藏目錄
*2Tab 當(dāng)前目錄下子目錄,不包括隱藏目錄
~2Tab 所有用戶列表
$2Tab 所有變量
@2Tab /etc/hosts記錄 ( centos7不支持)
=2Tab 相當(dāng)于ls –A ( centos7不支持)

二、命令行歷史

保存你輸入的命令歷史??梢杂盟鼇碇貜?fù)執(zhí)行命令 登錄shell 時,會讀取命令歷史文件中記錄下的命令~/.bash_history
登錄進shell 后新執(zhí)行的命令只會記錄在緩存中;這些命令會用戶退出時“追加”至命令歷史文件中
重復(fù)前一個命令,有4 種方法:
重復(fù)前一個命令 使用上方向鍵,并回車執(zhí)行。
按 !! 并回車執(zhí)行。
入 輸入 !-1 并回車執(zhí)行。
按 Ctrl+p 并回車執(zhí)行。

! 字符串: 重復(fù)前一個以“字符串”開頭的命令
例:

[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 命令輸出中的序號重復(fù)對應(yīng)命令
!? 字符串: 重復(fù)前一個包含abc 的命令
!-n : 重復(fù)n
使用up (向上)和down (向下)鍵來上下瀏覽從前輸入的命令
鍵入ctrl-r 來在命令歷史中搜索命令
( (reverse-i-search )`’: :
要重新調(diào)用前一個命令中最后一個參數(shù):
!$ 表示
Esc, . (點擊Esc擊 鍵后松開,然后點擊 . 鍵)
Alt+ . (按住Alt擊 鍵的同時點擊 . 鍵)

!cat 重復(fù)前一個以“ 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ù)前一個包含string的命令
!cat:p 僅打印命令歷史,而不執(zhí)行
!$:p 打印輸出 !$ (上一條命令的最后一個參數(shù))的內(nèi)容
!:p 打印輸出 !(上一條命令的所有參數(shù))的內(nèi)容
^cat 刪除上一條命令中的第一個cat
cat1cat2 將上一條命令中的第一個cat1替換為
cat2
!:gs/cat1/cat2 將上一條命令中所有的cat1都替換
為 cat2

使用up(向上)和down(向下)鍵來上下瀏覽從前輸入的命令
ctrl-r來在命令歷史中搜索命令
? ( reverse-i-search) `’:
Ctrl+g:從歷史搜索模式退出
要重新調(diào)用前一個命令中最后一個參數(shù):
!$ 表示
Esc, .(點擊Esc鍵后松開,然后點擊 . 鍵)
Alt+ .(按住Alt鍵的同時點擊 . 鍵)

三、調(diào)用歷史參數(shù)

command !^ : 利用上一個命令的第一個參數(shù)做cmd的參數(shù)
command !$ : 利用上一個命令的最后一個參數(shù)做cmd的參數(shù)
例:pwd是最后一個參數(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 !* : 利用上一個命令的全部參數(shù)做cmd的參數(shù)
command !:n : 利用上一個命令的第n個參數(shù)做cmd的參數(shù)

command !n:^ 調(diào)用第n條命令的第一個參數(shù)
command !n:$ 調(diào)用第n條命令的最后一個參數(shù)
例:history查看313歷史命令,最后一個參數(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個參數(shù)
command !n:* 調(diào)用第n條命令的所有參數(shù)
command !string:^ 從命令歷史中搜索以 string 開頭的命令,并獲取它的第一個參數(shù)
command !string:$ 從命令歷史中搜索以 string 開頭的命令,并獲取它的最后一個參數(shù)
command !string:n 從命令歷史中搜索以 string 開頭的命令,并獲取它的第n個參數(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個命令
n: 顯示最近的n條歷史
-a: 追加本次會話新執(zhí)行的命令歷史列表至歷史文件
-n: 讀歷史文件中未讀過的行到歷史列表
-r: 讀歷史文件附加到歷史列表
-w: 保存歷史列表到指定的歷史文件
-p: 展開歷史參數(shù)成多行,但不存在歷史列表中
例:歷史記錄中沒有這個命令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 “ 顯示時間
例: 可以保存到編輯器里面方便查看

[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)向右移動一個字符
Ctrl + b 光標(biāo)向左移動一個字符
Alt + f 光標(biāo)向右移動一個單詞尾
Alt + b 光標(biāo)向左移動一個單詞首
Ctrl + xx 光標(biāo)在命令行首和光標(biāo)之間移動
Ctrl + u 從光標(biāo)處刪除至命令行首
Ctrl + k 從光標(biāo)處刪除至命令行尾
Alt + r 刪除當(dāng)前整行

六、gnome-terminal

應(yīng)用程序->附件->終端
支持多個“標(biāo)簽” shell的圖形化終端模擬器
Ctrl-Shift-n 創(chuàng)建新窗口
Ctrl-Shift-q 關(guān)閉當(dāng)前窗口
Ctrl-Shift-t 創(chuàng)建一個標(biāo)簽頁
Ctrl-Shift-w 關(guān)閉一個標(biāo)簽頁
Ctrl-PaUp/PgUn 切換到下一個/前一個標(biāo)簽頁
Ctrl-Shift-c 復(fù)制選中的文本
Ctrl-Shift-v 把文本粘帖到當(dāng)前光標(biāo)處

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音。了解發(fā)音是有意...
    螢火蟲de夢閱讀 100,605評論 9 468
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,200評論 2 33
  • 上午: 交通醫(yī)院風(fēng)機盤管的殼子,纏膠帶 下午: 盤點中區(qū)的六臺空調(diào) 和 地下餐廳的空調(diào),扎線 晚上:焊接冷凝管
    小炮樓閱讀 203評論 0 0
  • #龍木子日記# 2017.9.21 第23日 1.一大早就出門,雨后的清晨,空氣清新,行人來來往往,各自走在自己的...
    龍木子閱讀 252評論 0 0
  • Java的運算符 數(shù)學(xué)是整個程序的基礎(chǔ),所以各種常用的計算符號,Java都會提供。但是如果你想要進行更加復(fù)雜的計算...
    大魚魚閱讀 155評論 0 0

友情鏈接更多精彩內(nèi)容