天天看點

bash基礎特性:快捷鍵&通配符

bash基礎特性:快捷鍵

ctrl+a:跳轉至指令行行首

ctrl+e:跳轉至指令行行尾

ctrl+c:取消指令的執行

ctrl+w: 移除光标前的一個單詞

Ctrl+u:删除行首至光标所在處之間的所有字元

ctrl+k:删除光标所在處至行尾的所有字元

Ctrl+l:清屏,相當于clear

ctrl+s:鎖定鍵盤

ctrl+q:解鎖鍵盤

通配符:*,?,[],[^]

*:比對任意長度的任意字元

    pa*,*pa*,*pa,*p*a*

    pa,paa,passwd

?:比對任意單個字元

    pa?

[]:比對指定範圍内的任意單個字元

    [0-9]

    [a-z]:不區分字元大小寫

    [A-Z]:大寫字母

[^]:比對指定範圍外的任意單個字元

    [^[:upper:]]

    [^0-9]

    [^[:alnum:]]

有幾種特殊格式,常用。(外面中括号是範圍比對的)

    [a-z],[A-Z],[0-9],[a-z0-9]

    [[:upper:]]:任意大寫字母A-Z

    [[:lower:]]:任意小寫字母a-z

    [[:alpha:]]:任意大小寫字母A-Z,a-z

    [[:digit:]]:任意數字,相當于0-9

    [[:alnum:]]:任意數字或字母0-9,A-Z,a-z

    [[:space:]]:任何會産生空白的字元,包括空格鍵[Tab]CR等

    [[:punct:]]:标點符号,即"'?!;:#$

不常用的:

    [[:blank:]]:代表空格鍵與[Tab]鍵

    [[:graph:]]:代表鍵盤上面的控制按鍵,即包括CR,LF,Tab,Del等

    [[:graph:]]:除了空格符(空格鍵與[Tab]按鍵)外的其他所有按鍵

    [[:xdigit:]]:代表十六進制的數字類型,是以包括0-9,A-F,a-f的數字與字元

練習:

1:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現一位做任意字元的檔案或目錄;

<code>[root@note1 ~]</code><code># ls -d /var/l?[[:lower:]]</code>

<code>/var/lib</code>  <code>/var/log</code>

練習1:顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間出現至少一位數字的檔案或目錄;

<code>[root@node1 ~]</code><code># ls -d /var/l*[0-9]*[[:lower:]]</code>

<code>/var/l86c</code>

練習2:顯示/etc目錄下,以任意一位數字開頭,且以非數字結尾的檔案或目錄

<code>[root@note1 ~]</code><code># touch /etc/6abcd8948x</code>

<code>[root@note1 ~]</code><code># ls -d /etc/[0-9]*[^0-9]</code>

<code>/etc/6abcd8948x</code>

練習3:顯示/etc目錄下,以非字母開頭,後面跟一個字母及其它任意字元的檔案或目錄

<code>[root@note1 ~]</code><code># touch /etc/8eabc</code>

<code>[root@node1 ~]</code><code># ls /etc/[^[:alpha:]][[:alpha:]]*</code>

<code>[root@note1 ~]</code><code># ls -d /etc/[^a-z][a-z]*</code>

<code>/etc/8eabc</code>

練習4:複制/etc目錄下,所有以m開頭,以非數字結尾的檔案或目錄至/tmp/magedu.com目錄

<code>[root@note1 ~]</code><code># ls -d /etc/m*[^0-9]</code>

<code>/etc/machine-id</code>                <code>/etc/mke2fs</code><code>.conf     </code><code>/etc/mtab</code>

<code>/etc/magic</code>                     <code>/etc/modprobe</code><code>.d      </code><code>/etc/my</code><code>.cnf</code>

<code>/etc/makedumpfile</code><code>.conf.sample  </code><code>/etc/modules-load</code><code>.d  </code><code>/etc/my</code><code>.cnf.d</code>

<code>/etc/man_db</code><code>.conf               </code><code>/etc/motd</code>

<code>[root@note1 ~]</code><code># cp -r /etc/m*[^0-9] /tmp/magedu.com/</code>

練習5:複制/etc目錄下,所有以.d結尾的檔案或目錄至/tmp/magedu.com目錄中

<code>[root@node1 ~]</code><code># ls -d /etc/*.p        #.d結尾的檔案太多了,改成.p結尾的檔案</code>

<code>/etc/123</code><code>.p</code>

<code>[root@node1 ~]</code><code># cp -a /etc/*.p /tmp/magedu.com/</code>

5:複制/usr/share/man目錄下,所有以man開頭,後跟一個數字結尾的檔案或目錄至/tmp/man/目錄下

<code>[root@note1 ~]</code><code># ls -d /usr/share/man/man[0-9]</code>

<code>/usr/share/man/man1</code>  <code>/usr/share/man/man4</code>  <code>/usr/share/man/man7</code>

<code>/usr/share/man/man2</code>  <code>/usr/share/man/man5</code>  <code>/usr/share/man/man8</code>

<code>/usr/share/man/man3</code>  <code>/usr/share/man/man6</code>  <code>/usr/share/man/man9</code>

<code>[root@note1 ~]</code><code># cp -r /usr/share/man/man[0-9] /tmp/man/</code>

練習6:複制/etc目錄下,所有以.conf結尾,且以m,n,r,p開頭的檔案或目錄至/tmp/conf.d/目錄下

<code>[root@note1 ~]</code><code># ls -d /etc/[mnrp]*.conf</code>

<code>/etc/man_db</code><code>.conf  </code><code>/etc/nsswitch</code><code>.conf  </code><code>/etc/rsyslog</code><code>.conf</code>

<code>/etc/mke2fs</code><code>.conf  </code><code>/etc/resolv</code><code>.conf</code>

<code>[root@note1 ~]</code><code># cp -r /etc/[mnrp]*.conf /tmp/conf.d/</code>

      本文轉自cix123  51CTO部落格,原文連結:http://blog.51cto.com/zhaodongwei/1837143,如需轉載請自行聯系原作者