成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

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

主目錄

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

  1. cd ~ 

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

  1. cd ~/work/archive 

 

.當前目錄

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

  1. ls -al 

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

  1. ./script.sh 

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

 

.. 父目錄

兩個英文句號 .. 代表父目錄,也就是當前目錄的上一級目錄。假設我們要回到上一級目錄:

  1. cd .. 

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

  1. cd ../projects/ 

/ 路徑目錄分隔符

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

  1. ls ~/work/tests/ 

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

  1. cd / 

# 注釋

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

  1. # This will be ignored by the Bash shell 

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

更厲害的做法如下:

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

  1. this_string="amazing alvin" 

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

  1. echo awsome ${this_string#amazing} 

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

  1. echo $this_string 

? 單字符通配符

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

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

  1. ls badge?.txt 

注意,它與 badge.txt 是不匹配滴,因為 badge 后面沒有字符。

 

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

  1. ls ?????.txt 

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

* 字符序列通配符

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

  1. ls badge* 

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

匹配任意類型的文件:

  1. ls source.* 

[] 字符集通配符

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

  1. ls badge_0[246].txt 

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

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

; 命令分隔符

這跟我們日常使用的 ";" 差不多,就不細說了,主要是用來分隔命令的。

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

這里注意,用 ; 分隔命令時,即使第一個命令失敗,第二個命令也會運行,即使第二個命令失敗,第三個命令也會運行,依此類推。

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

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

& 后臺處理

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

  1. vim command_address.page & 

上面顯示的是這個后臺進程的 ID 。

< 輸入重定向

許多 Linux 命令接受一個文件作為參數,并從該文件中獲取數據。這些命令中的大多數還可以從流中獲取輸入。要創建一個流,可以使用左尖括號 "<" ,如下將文件重定向到命令中:

  1. sort < words.txt 

上面將 words.txt 文件的內容并進行了排序。

注意:它是不顯示數據來源文件的文件名的。

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

> 輸出重定向

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

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

高端玩家還可以和數字一同使用:

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


這里的 2 是一個文件描述符,表示標準錯誤(stderr)

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

| 連接命令

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

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

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

! 邏輯非

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

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

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

不妨看下文件夾的備份狀態:

  1. ls -l -d backup 

" ! " 的另一個用法就是重新運行歷史命令:

  1. !24 
  2. !! 

" !! " 是重新運行上一條命令的意思。

$ 變量表達式

"$" 開頭通常表示變量,下面是一些系統變量:

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

當然,你也可以自己定義變量然后輸出:

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

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

先定義一個變量 MyString 并給它賦值 123456qwerty

  1. MyString=123456qwerty 

正常輸出

  1. echo ${MyString} 

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

  1. echo ${MyString:6} 

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

  1. echo ${MyString:0:6} 

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

  1. echo ${MyString:4:4} 

引用特殊字符

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

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

  1. echo "Today is $(date)" 

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

  1. echo 'Today is $(date)' 

反斜杠 \ 轉義,這在很多場合都有通用的。

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

今天的科普文章有點長,大家慢慢消化哈。

責任編輯:趙寧寧 來源: 良許Linux
相關推薦

2020-04-02 10:43:30

Linux數據字符

2021-06-08 07:48:26

數據 Python開發

2019-09-04 10:00:07

手機人臉識別

2016-08-09 16:17:37

高德地圖TFBOYS大數據

2015-10-22 10:38:43

Wi-Fi燃氣報警器

2021-12-21 09:05:46

命令Linux敲錯

2019-12-14 15:50:51

編程元知識代碼開發

2021-06-11 07:14:04

QQ音樂微信翻譯

2020-06-15 08:03:17

大文件OOM內存

2015-05-29 09:01:48

2021-08-13 22:38:36

大數據互聯網技術

2022-09-14 08:02:25

加密算法Bcryp

2020-04-30 09:19:56

Docker容器虛擬機

2018-10-11 15:51:32

ChromeGoogle瀏覽器

2020-03-30 16:45:06

代碼看不懂

2020-04-10 09:55:28

Git 工具黑魔法

2022-06-01 10:09:39

Linux網絡延遲

2019-01-14 00:43:08

可視化圖表數據分析數據可視化

2024-04-15 00:08:00

MySQLInnoDB數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.99热.com| 欧美日韩成人在线 | 国产美女永久免费无遮挡 | 亚洲一区综合 | 国产欧美日韩综合精品一区二区 | 国产精品毛片无码 | 成人午夜网 | 欧美日韩成人在线观看 | 日本不卡一区二区三区 | 日本精品一区二区 | 亚洲 欧美 日韩在线 | 成人免费网视频 | 欧美无乱码久久久免费午夜一区 | 久草综合在线 | 一本色道精品久久一区二区三区 | 国产激情视频在线观看 | 精品国产91| 在线观看视频91 | 99一区二区| 亚洲精品国产电影 | 国产一区二区不卡 | 成人福利视频 | 国产成人在线视频 | 亚洲精品日韩在线 | 日本一区二区高清不卡 | 91在线网站| 黄色免费在线观看网站 | 天天操天天干天天曰 | 国产精品小视频在线观看 | 欧美无乱码久久久免费午夜一区 | 九九久久久 | 国产精品成人免费 | 网色| 亚洲美女视频 | 免费看91 | 天堂综合网久久 | 国产98色在线 | 日韩 | 欧美日韩国产综合在线 | 波多野结衣一二三区 | av日韩精品| 看av网 |