自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

15 個(gè)你非了解不可的 Linux 特殊字符,媽媽再也不用擔(dān)心我看不懂這些符號了!

系統(tǒng) Linux
不知道大家接觸 Linux 系統(tǒng)有多久了,可曾了解過 Linux 中有哪些特殊的字符呢?今天的文章就給大家簡單地科普一下 Linux 中你需要了解的 15 個(gè)特殊字符,想學(xué)或剛學(xué) Linux 的小伙伴趕緊上車了為!

不知道大家接觸 Linux 系統(tǒng)有多久了,可曾了解過 Linux 中有哪些特殊的字符呢?其實(shí)啊,那些特殊字符都大有用處呢,今天的文章就給大家簡單地科普一下 Linux 中你需要了解的 15 個(gè)特殊字符,想學(xué)或剛學(xué) Linux 的小伙伴趕緊上車了為!

主目錄

這個(gè)波浪號 ~ 指的是主目錄,也就是我們用戶的個(gè)人目錄,無論你身在何方,輸入 cd ~ 它將帶你回家!

  1. cd ~ 

更高端的玩法就是在它后面加上具體的路徑,直接定位到家目錄中的指定位置,是不是很方便呢?

  1. cd ~/work/archive 

 

.當(dāng)前目錄

英文句號 . 代表當(dāng)前目錄,我們來看一下當(dāng)前目錄下的全部文件:

  1. ls -al 

紅圈里的 . 就是指當(dāng)前目錄,不過這沒什么意義,我們更多的是在命令中使用它,如下:

  1. ./script.sh 

這樣做是在告訴 bash 只要在當(dāng)前目錄中查找并執(zhí)行 script.sh 文件就好了,不用在路徑中找了。

 

.. 父目錄

兩個(gè)英文句號 .. 代表父目錄,也就是當(dāng)前目錄的上一級目錄。假設(shè)我們要回到上一級目錄:

  1. cd .. 

跟前面一樣,你可以在它后面加具體的目錄,這里的意思就是定位到與當(dāng)前目錄同級的其它目錄:

  1. cd ../projects/ 

/ 路徑目錄分隔符

斜杠 "/" 指的是路徑目錄分隔符,這里沒什么好說的。

  1. ls ~/work/tests/ 

但是,有意思的是,如果 / 路徑目錄分隔符前面沒有東西的話,是不是就是意味著這是最上級的目錄了?由于 Linux 系統(tǒng)的目錄樹均始于 / ,所以僅僅一個(gè) / 代表了我們常說的系統(tǒng)根目錄。

  1. cd / 

# 注釋

以 # 開頭,代表這句話是注釋。

  1. # This will be ignored by the Bash shell 

雖然上面那段話就被忽略了,但它還是會添加到您的命令歷史記錄中。

更厲害的做法如下:

先定義一個(gè)變量并給它賦值字符串 “amazing alvin”

  1. this_string="amazing alvin" 

${this_string#amazing} 返回的是被注釋掉 amazing 的 this_string 字符串變量,可以 echo 輸出看下結(jié)果:

  1. echo awsome ${this_string#amazing} 

amazing 只是被注釋掉而已,它并未被刪除,去掉注釋它就回來了:

  1. echo $this_string 

? 單字符通配符

問號 "?",指的是單字符通配符。Bash Shell 支持三種通配符。

它代表文件名中任意一個(gè)字符的匹配,例如:

  1. ls badge?.txt 

注意,它與 badge.txt 是不匹配滴,因?yàn)?badge 后面沒有字符。

 

正因?yàn)?"?" 匹配單個(gè)字符,所以這里有個(gè)看似很厲害的玩法,就是你想要的找的文件的文件名有多少個(gè)字符,你就輸入多少個(gè) "?" 。

  1. ls ?????.txt 

看著挺厲害,不過我怎么感覺這好別扭?????

* 字符序列通配符

星號 * 代表的是任意字符序列,匹配任意字符,包括空字符,以剛才的 badge 為例:

  1. ls badge* 

可以看到,badge.txt 都匹配到了。

匹配任意類型的文件:

  1. ls source.* 

[] 字符集通配符

方括號 "[]" 指的是字符集通配符,文件名中的相關(guān)字符必須與字符集中的至少一個(gè)字符匹配。通過例子來體會一下它的作用吧:

  1. ls badge_0[246].txt 

  1. ls badge_[01][789].txt 

  1. ls badge_[23][1-5].txt 

; 命令分隔符

這跟我們?nèi)粘J褂玫?";" 差不多,就不細(xì)說了,主要是用來分隔命令的。

  1. ls > count.txt; wc -l count.txt; rm count.txt 

這里注意,用 ; 分隔命令時(shí),即使第一個(gè)命令失敗,第二個(gè)命令也會運(yùn)行,即使第二個(gè)命令失敗,第三個(gè)命令也會運(yùn)行,依此類推。

如果要在一個(gè)命令失敗的情況下就停止,請使用 "&&" ,如下:

  1. cd ./doesntexist && cp ~/Documents/reports/* . 

& 后臺處理

有時(shí)候在終端正在運(yùn)行一個(gè)命令時(shí),例如 vim,你想運(yùn)行另外一個(gè)命令怎么辦?這里有個(gè)小技巧就是在命令后面加一個(gè) "&" 符號,將這個(gè)程序放在后臺啟動,這樣你就能在終端實(shí)現(xiàn)后臺多任務(wù)的效果了。

  1. vim command_address.page & 

上面顯示的是這個(gè)后臺進(jìn)程的 ID 。

< 輸入重定向

許多 Linux 命令接受一個(gè)文件作為參數(shù),并從該文件中獲取數(shù)據(jù)。這些命令中的大多數(shù)還可以從流中獲取輸入。要?jiǎng)?chuàng)建一個(gè)流,可以使用左尖括號 "<" ,如下將文件重定向到命令中:

  1. sort < words.txt 

上面將 words.txt 文件的內(nèi)容并進(jìn)行了排序。

注意:它是不顯示數(shù)據(jù)來源文件的文件名的。

  1. wc words.txt 
  2. wc < words.txt 

> 輸出重定向

輸入和輸出是相反的,很好理解。用右尖括號 ">" 將命令的輸出重定向,通常是重定向到文件中。

  1. ls > files.txt 
  2. cat files.txt 

高端玩家還可以和數(shù)字一同使用:

  1. wc doesntexist.txt 2> errors.txt 
  2. cat errors.txt 


這里的 2 是一個(gè)文件描述符,表示標(biāo)準(zhǔn)錯(cuò)誤(stderr)

大家感興趣的可以去搜索下文件描述符 stdin,stdout,stderr 是什么?

| 連接命令

我們可以將 " | " 看成將命令鏈接在一起的管道。它從一個(gè)命令獲取輸出,并將其作為輸入送入下一個(gè)命令。管道命令的數(shù)量是任意的。

  1. cat words.txt | grep [cC] | sort -r 

解釋下,上面先使用 cat 將 words.txt 文件的內(nèi)容輸入 grep , 然后 grep 提取包含小寫或大寫(C/c)的任何行,接著 grep 將這些行傳遞給 sort ,最后 sort 進(jìn)行 -r 反向排序。

! 邏輯非

這跟編程語言中的 " ! " 差不多,我們直接拿個(gè)例子來說吧:

  1. [ ! -d ./backup ] && mkdir ./backup 

第一個(gè)命令 -d 判斷當(dāng)前目錄是否存在 backup 的目錄文件,外面加個(gè)邏輯非 ! 判斷, 第二個(gè)命令是創(chuàng)建 backup 目錄文件, 中間的 && 上面說過。 總的來說就是當(dāng) backup 目錄不存在時(shí),創(chuàng)建 backup 目錄;當(dāng)不存在時(shí)則不執(zhí)行第二條命令。

不妨看下文件夾的備份狀態(tài):

  1. ls -l -d backup 

" ! " 的另一個(gè)用法就是重新運(yùn)行歷史命令:

  1. !24 
  2. !! 

" !! " 是重新運(yùn)行上一條命令的意思。

$ 變量表達(dá)式

"$" 開頭通常表示變量,下面是一些系統(tǒng)變量:

  1. echo $USER 
  2. echo $HOME 
  3. echo $PATH 

當(dāng)然,你也可以自己定義變量然后輸出:

  1. ThisDistro=Ubuntu 
  2. MyNumber=2001 
  3. echo $ThisDistro 
  4. echo $MyNumber 

我們還可以通過 "{}" 解鎖更高級的玩法:

先定義一個(gè)變量 MyString 并給它賦值 123456qwerty

  1. MyString=123456qwerty 

正常輸出

  1. echo ${MyString} 

加個(gè) ":6" 返回從索引位置 6 開始的一直到最后的字符串

  1. echo ${MyString:6} 

顯示從索引位置從 0 開始往后 6 個(gè)字符的字符串

  1. echo ${MyString:0:6} 

顯示從索引位置從 4 開始往后 4 個(gè)字符的字符串

  1. echo ${MyString:4:4} 

引用特殊字符

說了那么多,那么就有個(gè)問題了,就是我只想在命令里面將這些特殊字符作為一般的符號顯示怎么辦?這種我們稱之為引用,Linux 中有三種引用方法。

用雙引號 "" 括起來,不過這對 "$" 無效。

  1. echo "Today is $(date)" 

用單引號 '' 括起來,停止所有特殊字符的功能。

  1. echo 'Today is $(date)' 

反斜杠 \ 轉(zhuǎn)義,這在很多場合都有通用的。

  1. echo "Today is \$(date)" 

今天的科普文章有點(diǎn)長,大家慢慢消化哈。

責(zé)任編輯:趙寧寧 來源: 良許Linux
相關(guān)推薦

2020-04-02 10:43:30

Linux數(shù)據(jù)字符

2021-06-08 07:48:26

數(shù)據(jù) Python開發(fā)

2019-09-04 10:00:07

手機(jī)人臉識別

2016-08-09 16:17:37

高德地圖TFBOYS大數(shù)據(jù)

2015-10-22 10:38:43

Wi-Fi燃?xì)鈭?bào)警器

2021-12-21 09:05:46

命令Linux敲錯(cuò)

2021-06-11 07:14:04

QQ音樂微信翻譯

2019-12-14 15:50:51

編程元知識代碼開發(fā)

2020-06-15 08:03:17

大文件OOM內(nèi)存

2015-05-29 09:01:48

2021-08-13 22:38:36

大數(shù)據(jù)互聯(lián)網(wǎng)技術(shù)

2022-09-14 08:02:25

加密算法Bcryp

2020-04-30 09:19:56

Docker容器虛擬機(jī)

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2020-03-30 16:45:06

代碼看不懂

2022-06-01 10:09:39

Linux網(wǎng)絡(luò)延遲

2023-06-30 08:01:04

Reactuse關(guān)鍵詞

2020-04-10 09:55:28

Git 工具黑魔法

2019-01-14 00:43:08

可視化圖表數(shù)據(jù)分析數(shù)據(jù)可視化
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號