導航:首頁 > 編程系統 > linuxshell特殊符號

linuxshell特殊符號

發布時間:2023-01-13 09:45:32

linux shell中 ~ 符號代表什麼

shell命令中 代表用戶的家目錄 使用cd ~ 或者cd 可以轉到這個目錄
在bash shell awk命令中,~代表匹配正則表達式,例:awk 『$0 ~ /.*/ {print}』 test.txt

⑵ Linux shell 中單引號字元串裡面有單引號字元怎麼辦

Linux shell 中單引號字元串裡面有單引號字元解決:

$echo"mocha。reporter('spec')"|sed"s/'spec'/'json'/"

mocha.reporter('json')

有單引號的情況就用雙引號唄

$echo"mocha.reporter('spec')"|sed$'s/'spec'/'json'/'

mocha.reporter('json')

或者也可以這樣、加個$讓bash轉義

控制字元

轉義字元不屬於控制字元;控制字元也不屬於轉義字元。如果控制字元的定義是非圖形的字元,或者對輸出設備(列印機、文本終端)有特殊意義的字元,那麼針對這些設備的轉義字元也是控制字元。但是程序設計用的轉義字元是圖形字元,因此它們不是控制字元。相反地,大多數ASCII控制字元單獨都具有控制功能,因此它們不是轉義字元。

⑶ linux shell中'""和`的區別

和現在的開發語言一樣,語法上有些差異!

三種主要的 Shell 與其分身

在大部份的UNIX系統,三種著名且廣被支持的shell 是Bourne shell(AT&T shell,在 Linux 下是BASH)、C shell(Berkeley shell,在 Linux 下是TCSH)和 Korn shell(Bourne shell的超集)。這三種 shell 在交談(interactive)模式下的表現相當類似,但作為命令文件語言時,在語法和執行效率上就有些不同了。

Bourne shell 是標準的 UNIX shell,以前常被用來做為管理系統之用。大部份的系統管理命令文件,例如 rc start、stop 與shutdown 都是Bourne shell 的命令檔,且在單一使用者模式(single user mode)下以 root 簽入時它常被系統管理者使用。Bourne shell 是由 AT&T 發展的,以簡潔、快速著名。 Bourne shell 提示符號的默認值是 $。

C shell 是柏克萊大學(Berkeley)所開發的,且加入了一些新特性,如命令列歷程(history)、別名(alias)、內建算術、檔名完成(filename completion)、和工作控制(job control)。對於常在交談模式下執行 shell 的使用者而言,他們較喜愛使用 C shell;但對於系統管理者而言,則較偏好以 Bourne shell 來做命令檔,因為 Bourne shell 命令檔比 C shell 命令檔來的簡單及快速。C shell 提示符號的默認值是 %。

Korn shell 是Bourne shell 的超集(superset),由 AT&T 的 David Korn 所開發。它增加了一些特色,比 C shell 更為先進。Korn shell 的特色包括了可編輯的歷程、別名、函式、正規表達式萬用字元(regular expression wildcard)、內建算術、工作控制(job control)、共作處理(coprocessing)、和特殊的除錯功能。Bourne shell 幾乎和 Korn shell 完全向上兼容(upward compatible),所以在 Bourne shell 下開發的程序仍能在 Korn shell 上執行。Korn shell 提示符號的默認值也是 $。在 Linux 系統使用的 Korn shell 叫做 pdksh,它是指 Public Domain Korn Shell。

除了執行效率稍差外,Korn shell 在許多方面都比 Bourne shell 為佳;但是,若將 Korn shell 與 C shell 相比就很困難,因為二者在許多方面都各有所長,就效率和容易使用上看,Korn shell 是優於 C shell,相信許多使用者對於 C Shell 的執行效率都有負面的印象。

在shell 的語法方面,Korn shell 是比較接近一般程序語言,而且它具有子程序的功能及提供較多的資料型態。至於 Bourne shell,它所擁有的資料型態是三種 shell 中最少的,僅提供字元串變數和布爾型態。在整體考量下 Korn shell 是三者中表現最佳者,其次為 C shell,最後才是 Bourne shell,但是在實際使用中仍有其它應列入考慮的因素,如速度是最重要的選擇時,很可能應該採用 Bourne shell,因它是最基本的 shell,執行的速度最快。
作者: benny_feng 發布日期: 2006-10-17
tcsh 是近幾年崛起的一個軟體(Linux 下的C shell 其實就是使用 tcsh)執行,它雖然不是UNIX 的標准配備,但是從許多地方您都可以下載到它。如果您是 C shell 的擁護者,筆者建議不妨試試 tcsh,因為您至少可以將它當作是 C shell 來使用。如果您願意花點時間學習,您還可以享受許多它新增的優越功能,例如:

1. tcsh 提供了一個命令列(command line)編輯程序。

2. 提供了命令列補全功能。

3. 提供了拼字更正功能。它能夠自動檢測並且更正在命令列拼錯的命令或是單字。

4. 危險命令偵測並提醒的功能,避免您一個不小心執行了rm* 這種殺傷力極大的命令。

5. 提供常用命令的快捷方式(shortcut)。

bash 對 Bourne shell 是向下兼容(backward compatible),並融入許多C shell 與Korn shell 的功能。這些功能其實 C shell(當然也包括了tcsh)都有,只是過去 Bourne shell 都未支持。以下筆者將介紹 bash 六點重要的改進(詳細的使用說明筆者會在以後的章節介紹):

1. 工作控制(job contorl)。bash 支持了關於工作的訊號與指令,本章稍後會提及。

2. 別名功能(aliases)。alias 命令是用來為一個命令建立另一個名稱,它的運作就像一個宏,展開成為它所代表的命令。別名並不會替代掉命令的名稱,它只是賦予那個命令另一個名字。

3. 命令歷程(command history)。BASH shell 加入了C shell 所提供的命令歷程功能,它以 history 工具程序記錄了最近您執行過的命令。命令是由 1 開始編號,默認值為500。history 工具程序是一種短期記憶,記錄您最近所執行的命令。要看看這些命令,您可以在命令列鍵入 history,如此將會顯示最近執行過之命令的清單,並在前方加上編號。

這些命令在技術上每個都稱為一個事件。事件描述的是一個已經採取的行動(已經被執行的命令)。事件是依照執行的順序而編號,越近的事件其編號碼越大,這些事件都是以它的編號或命令的開頭字元來辨認的。history 工具程序讓您參照一個先前發生過的事件,將它放在命令列上並允許您執行它。最簡單的方法是用上下鍵一次放一個歷程事件在您的命令列上;您並不需要先用 history 顯示清單。按一次向上鍵會將最後一個歷程事件放在您的命令列上,再按一次會放入下一個歷程事件。按向下鍵則會將前一個事件放在命令列上。

⑷ Linux系統shell工具列印輸出

Linux系統shell工具列印輸出

shell腳本都是以#!/bin/bash開頭;這是固定的寫法,其中/bin/bash是bash命令的路徑。那麼Linux系統shell工具如何列印輸出呢?跟我一起來看看吧!

一般都會通過chmod授予shell腳本的可執行許可權。

在shell腳本中的列印輸出通常會有echo和printf兩種,前者會自動換行。

在shell中如果用雙引號("")作為列印輸出的內容時,如果雙引號中有特殊字元需要在特殊字元前加上轉義字元,當然也可以使用單引號或者不使用引號直接輸出,使用單引號或者不使用就不需要用到轉義字元。

格式替代符

有一些常用的格式替代符會經常在列印輸出中被用到,格式替代符只能用在printf輸出中。

%-5s:表示5個字元寬度,其中的-表示左對齊

%-4.2f:其中的f表示浮點型,4.2代表長度為4個字元且小數點2位,如果小數點超過2會進行四捨五入,-表示左對齊。

整形:

%d:整數的參數會被轉成一有符號的十進制數字

%u:整數的參數會被轉成一無符號的十進制數字

%o:整數的參數會被轉成一無符號的八進制數字

%x:整數的參數會被轉成一無符號的十六進制數字,並以小寫abcdef表示

%X:整數的參數會被轉成一無符號的十六進制數字,並以大寫ABCDEF表示

浮點型數:

%fdouble型的參數會被轉成十進制數字,默認取小數點以下六位,四捨五入

%edouble型的參數以指數形式列印,有一個數字會在小數點前,六位數字在小數點後,而在指數部分會以小寫的e來表示.

%E與%e作用相同,唯一區別是指數部分將以大寫的'E來表示.

%gdouble型的參數會自動選擇以%f或%e的格式來列印,其標準是根據欲列印的數值及所設置的有效位數來決定.

%G與%g作用相同,唯一區別在以指數形態列印時會選擇%E格式.

字元及字元串:

%c讀字元串的第一個字元

%s輸出指定寬度的字元內容.

%p如果是參數是"void*"型指針則使用十六進制格式顯示

列印輸出

在寫腳本的時候更多的會使用echo作為列印輸出,且習慣性的會使用雙引號。

echo

[root@localhosttmp]#echo"helloword"

helloword

printf

默認printf是不換行的

[root@localhosttmp]#printf"helloword"

helloword[root@localhosttmp]#

需要換行加上 參數

[root@localhosttmp]#printf"helloword "

helloword

[root@localhosttmp]#

編寫shell腳本

vimscrip.sh

#!/bin/bash

printf"%-5s%-10s%-4s "NoNameMark;

printf"%-5s%-10s%-4.2f "1aaa10.111;

printf"%-5s%-10s%-4.2f "2bbb20.146;

授予腳本執行許可權:chmo+xscrip.sh

如果使用echo就不能用格式替代符

#!/bin/bash

echoNoNameMark;

echo1aaa10.111;

echo2bbb20.146;

注意事項

在echo,printf中使用-e,-n參數時,-e,-n應該出現在命令行其它字元之前。

-e:如果要在echo的雙引號使用轉義序列作為參數得需要使用-e參數

-n:忽略末尾的換行符

不使用-e參數

[root@localhosttmp]#echo"1 2"

1 2

使用-e參數

[root@localhosttmp]#echo-e"1 2"

轉義序列:

/n:換行

/t:tab鍵

彩色輸出

字體顏色包括:0=重置,30=黑色,31=紅色,32=綠色,33=黃色,34=藍色,35=洋紅,36=青色,37=白色

背景顏色包括:0=重置,40=黑色,41=紅色,42=綠色,43=黃色,44=藍色,45=洋紅,46=青色,47=白色

echo-e"e[1;32mhelloworde[0m"

e[1;32m:將字體顏色設為綠色,e[0m:將顏色重置

;

⑸ Linux Shell 腳本編程最佳實踐

IT路邊社

前言

與其它的編碼規范一樣,這里所討論的不僅僅是編碼格式美不美觀的問題, 同時也討論一些約定及編碼標准。這份文檔主要側重於我們所普遍遵循的規則,對於那些不是明確強制要求的,我們盡量避免提供意見。

編碼規范對於程序員而言尤為重要,有以下幾個原因:

本文檔中的准則致力於最大限度達到以下原則:

盡管本文檔涵蓋了許多基礎知識,但應注意的是,沒有編碼規范可以為我們回答所有問題,開發人員始終需要再編寫完代碼後,對上述原則做出正確的判斷。

:未明確指明的則默認為必須(Mandatory)

主要參考如下文檔:

僅建議Shell用作相對簡單的實用工具或者包裝腳本。因此單個shell腳本內容不宜太過復雜。

在選擇何時使用shell腳本時時應遵循以下原則:

可執行文件不建議有擴展名,庫文件必須使用 .sh 作為擴展名,且應是不可執行的。

執行一個程序時,無需知道其編寫語言,且shell腳本並不要求具有擴展名,所以更傾向可執行文件沒有擴展名。

而庫文件知道其編寫語言十分重要,使用 .sh 作為特定語言後綴的擴展名,可以和其他語言編寫的庫文件加以區分。

文件名要求全部小寫, 可以包含下劃線 _ 或連字元 - , 建議可執行文件使用連字元,庫文件使用下劃線。

正例:

反例:

源文件編碼格式為UTF-8。避免不同操作系統對文件換行處理的方式不同,一律使用 LF 。

每行最多不超過120個字元。每行代碼最大長度限制的根本原因是過長的行會導致閱讀障礙,使得縮進失效。

除了以下兩種情況例外:

如出現長度必須超過120個字元的字元串,應盡量使用here document或者嵌入的換行符等合適的方法使其變短。

示例:

除了在行結束使用換行符,空格是源文件中唯一允許出現的空白字元。

對從來沒有用到的或者被注釋的方法、變數等要堅決從代碼中清理出去,避免過多垃圾造成干擾。

Bash 是唯一被允許使用的可執行腳本shell。

可執行文件必須以 #!/bin/bash 開始。請使用 set 來設置shell的選項,使得用 bash echo "Process $: Done making $$$."
# 示例7:命令參數及路徑不需要引號 grep -li Hugo /dev/ "$1"
# 示例8:常規變數用雙引號,ccs可能為空的特殊情況可不用引號 git send-email --to "${reviewers}" ${ccs:+"--cc" "${ccs}"}
# 示例9:正則用單引號,$1可能為空的特殊情況可不用引號 grep -cP '([Ss]pecial||?characters*) ${1:+"$1"}
# 示例10:位置參數傳遞推薦帶引號的"$@",所有參數作為單字元串傳遞用帶引號的"$*" # content of t.sh func_t { echo num: $# echo args: 1:$1 2:$2 3:$3 }
func_t "$@" func_t "$*" # 當執行 ./t.sh a b c 時輸出如下: num: 3 args: 1:a 2:b 3:c num: 1 args: 1:a b c 2: 3:

使用 $(command) 而不是反引號。

因反引號如果要嵌套則要求用反斜杠轉義內部的反引號。而 $(command) 形式的嵌套無需轉義,且可讀性更高。

正例:

反例:

條件測試

使用 [[ ... ]] ,而不是 [ , test , 和 /usr/bin/[ 。

因為在 [[ 和 ]] 之間不會出現路徑擴展或單詞切分,所以使用 [[ ... ]] 能夠減少犯錯。且 [[ ... ]] 支持正則表達式匹配,而 [ ... ] 不支持。參考以下示例:

盡可能使用變數引用,而非字元串過濾。

Bash可以很好的處理空字元串測試,請使用空/非空字元串測試方法,而不是過濾字元,讓代碼具有更高的可讀性。正例:

反例:

正例:

反例:

正例:

反例:

文件名擴展

當進行文件名的通配符擴展時,請指定明確的路徑。

當目錄中有特殊文件名如以 - 開頭的文件時,使用帶路徑的擴展通配符 ./* 比不帶路徑的 * 要安全很多。

應該避免使用eval。

Eval在用於分配變數時會修改輸入內容,但設置變數的同時並不能檢查這些變數是什麼。反例:

請使用進程替換或者for循環,而不是通過管道連接while循環。

這是因為在管道之後的while循環中,命令是在一個子shell中運行的,因此對變數的修改是不能傳遞給父shell的。

這種管道連接while循環中的隱式子shell使得bug定位非常困難。反例:

如果你確定輸入中不包含空格或者其他特殊符號(通常不是來自用戶輸入),則可以用for循環代替。例如:

使用進程替換可實現重定向輸出,但是請將命令放入顯式子 shell,而非 while 循環創建的隱式子 shell。例如:

總是檢查返回值,且提供有用的返回值。

對於非管道命令,使用 $? 或直接通過 if 語句來檢查以保持其簡潔。

例如:

當內建命令可以完成相同的任務時,在shell內建命令和調用外部命令之間,應盡量選擇內建命令。

因內建命令相比外部命令而言會產生更少的依賴,且多數情況調用內建命令比調用外部命令可以獲得更好的性能(通常外部命令會產生額外的進程開銷)。

正例:

反例:

載入外部庫文件不建議用使用.,建議使用source,已提升可閱讀性。正例:

反例:

除非必要情況,盡量使用單個命令及其參數組合來完成一項任務,而非多個命令加上管道的不必要組合。常見的不建議的用法例如:cat和grep連用過濾字元串; cat和wc連用統計行數; grep和wc連用統計行數等。

正例:

除特殊情況外,幾乎所有函數都不應該使用exit直接退出腳本,而應該使用return進行返回,以便後續邏輯中可以對錯誤進行處理。正例:

反例:

推薦以下工具幫助我們進行代碼的規范:

原文鏈接:http://itxx00.github.io/blog/2020/01/03/shell-standards/

獲取更多的面試題、腳本等運維資料點擊: 運維知識社區 獲取

腳本之---簡訊轟炸機

腳本之---QQ微信轟炸機

ansible---一鍵搭建redis5.0.5集群

elk7.9真集群docker部署文檔

全球最全loki部署及配置文檔

最強安全加固腳本2.0

一鍵設置iptbales腳本

⑹ linux shell中的比較符號與特殊符號介紹

shell字元串比較、判斷是否為數字

二元比較操作符,比較變數或者比較數字。注意數字與字元串的區別。

整數比較

-eq 等於,如:if [ "$a" -eq "$b" ]

-ne 不等於,如:if [ "$a" -ne "$b" ]

-gt 大於,如:if [ "$a" -gt "$b" ]

-ge 大於等於,如:if [ "$a" -ge "$b" ]

-lt 小於,如:if [ "$a" -lt "$b" ]

-le 小於等於,如:if [ "$a" -le "$b" ]

< 小於(需要雙括弧),如:(("$a" < "$b"))

<= 小於等於(需要雙括弧),如:(("$a" <= "$b"))

> 大於(需要雙括弧),如:(("$a" > "$b"))

>= 大於等於(需要雙括弧),如:(("$a" >= "$b"))

字元串比較

= 等於,如:if [ "$a" = "$b" ]

== 等於,如:if [ "$a" == "$b" ],與=等價

注意:==的功能在[[]]和[]中的行為是不同的,如下:

1 [[ $a == z* ]] # 如果$a以"z"開頭(模式匹配)那麼將為true

2 [[ $a == "z*" ]] # 如果$a等於z*(字元匹配),那麼結果為true

3

4 [ $a == z* ] # File globbing 和word splitting將會發生

5 [ "$a" == "z*" ] # 如果$a等於z*(字元匹配),那麼結果為true

一點解釋,關於File globbing是一種關於文件的速記法,比如"*.c"就是,再如~也是.

但是file globbing並不是嚴格的正則表達式,雖然絕大多數情況下結構比較像.

!= 不等於,如:if [ "$a" != "$b" ]

這個操作符將在[[]]結構中使用模式匹配.

< 小於,在ASCII字母順序下.如:

if [[ "$a" < "$b" ]]

if [ "$a" \< "$b" ]

注意:在[]結構中"<"需要被轉義.

> 大於,在ASCII字母順序下.如:

if [[ "$a" > "$b" ]]

if [ "$a" \> "$b" ]

注意:在[]結構中">"需要被轉義.

具體參考Example 26-11來查看這個操作符應用的例子.

-z 字元串為"null".就是長度為0.

-n 字元串不為"null"

鏈接:https://www.jianshu.com/p/6322715ad196

⑺ linux的shell編程中的符號`是什麼

`` 符號在shell裡面正式的名稱叫做backquote , 一般叫做命令替換
其作用是將引用命令的輸出替換到字元串或者變數
通常的 你需要在一個序列中需要用到其它命令的輸出,就可以用``

⑻ 4、liunx系統基礎命令及特殊符號知識考題


什麼是PATH環境變數,它有什麼作用?

LANG PS1 PATH

######PATH含義

存放的是命令的位置/路徑

[root@oldboye01-nb ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

第二個里程牌-liunx 下面運行命令過程

####1、輸入命令

####2、在PATH裡面 路徑進行查找

####3、找到了就運行

####4、找不到就提示 command not found

第1題

如何過濾出已知當前目錄下oldboy中的所有一級目錄(提示:不包含oldboy目錄下面目錄的子目錄及隱藏目錄,即只能是第一級目錄)?

mkdir /oldboy -p

cd /oldboy

mkdir ext/oldboy test xiaodong xingfujie -p

touch jeacen olaboy wodi.gz yingsui.gz

yum install tree -y

[root@oldboye01-nb oldboy]# #如何查詢某個軟體是否安裝了?

[root@oldboye01-nb oldboy]# rpm -qa ( 查找所有安裝軟體 )

[root@oldboye01-nb oldboy]# rpm -qa

[root@oldboye01-nb oldboy]# rpm -qa |grep tree ( 查找具體的軟體安裝包 )

tree-1.5.3-3.el6.x86_64

[root@oldboye01-nb oldboy]# rpm -qa tree

tree-1.5.3-3.el6.x86_64

[root@oldboye01-nb oldboy]# rpm -qa |grep ipt

initscripts-9.03.58-1.el6.centos.x86_64

iptables-ipv6-1.4.7-16.el6.x86_64

plymouth-scripts-0.8.3-29.el6.centos.x86_64

iptables-1.4.7-16.el6.x86_64

[root@oldboye01-nb oldboy]# #查看某個軟體包裡面的內容

[root@oldboye01-nb oldboy]# rpm -ql tre

package tre is not installed

[root@oldboye01-nb oldboy]# rpm -ql tree ( 查看具體安裝包裡面的內容 )

/usr/bin/tree

/usr/share/doc/tree-1.5.3

/usr/share/doc/tree-1.5.3/LICENSE

###方法1

[root@oldboye01-nb oldboy]# tree -d /oldboy/

/oldboy/

ext

oldboy

test

xiaodong

xingfujie

5 directories

[root@oldboye01-nb oldboy]#

[root@oldboye01-nb oldboy]# tree -dL 1 /oldboy/

/oldboy/

ext

test

xiaodong

xingfujie

##方法2

[root@oldboye01-nb oldboy]# find -type d

.

./ext

./ext/oldboy

./xiaodong

./test

./xingfujie

[root@oldboye01-nb oldboy]# find -maxdepth 1 -type d ! -name "." ( 找出名字不是點 )

./ext

./xiaodong

./test

./xingfujie

###方法3

[root@oldboye01-nb oldboy]# ls -l

total 28

-rw-r--r--. 1 root root 0 Jun 9 07:06 alex.txt

-rw-r--r--. 1 root root 292 Jun 9 06:34 ett.txt

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

-rw-r--r-- 1 root root 0 Jun 22 23:44 jeacen

-rw-r--r-- 1 root root 0 Jun 22 23:44 olaboy

-rw-r--r--. 1 root root 0 Jun 9 07:06 oldboy.txt

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

-rw-r--r--. 1 root root 8 Jun 9 07:26 test.sh

-rw-r--r--. 1 root root 8 Jun 9 07:26 t.sh

-rw-r--r-- 1 root root 0 Jun 22 23:44 wodi.gz

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

-rw-r--r-- 1 root root 0 Jun 22 23:44 yingsui.gz

[root@oldboye01-nb oldboy]# ls -l |grep "^d" ( 找出目錄為d開頭的文件 )

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

[root@oldboye01-nb oldboy]#

#方法4

[root@oldboye01-nb oldboy]# ls -l|awk '$2>1' ( 第二列大於1 )

total 28

drwxr-xr-x 3 root root 4096 Jun 22 21:55 ext

drwxr-xr-x. 2 root root 4096 Jun 9 07:26 test

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xiaodong

drwxr-xr-x 2 root root 4096 Jun 22 21:55 xingfujie

[root@oldboye01-nb oldboy]#

#第2題假如當前目錄[root@oldboye01-nb oldboy]# pwd #==>這是列印當前目錄的,最菜的命令

/oldboy

現在因為需要進入到/tmp目錄下進行操作,執行的命令如下:

[ root@oldboy oldboy]# cd /tmp/

[ root@oldboy tmp]#pwd

/tmp/

操作完畢後,希望快速返回上一次進入的目錄,即/oldboy目錄,如何操作(不使用cd/oldboy)

[root@oldboye01-nb tmp]# #快速回到上一次的所在的位置/目錄

[root@oldboye01-nb tmp]# cd -

/oldboy

[root@oldboye01-nb oldboy]# pwd

/oldboy

[root@oldboye01-nb oldboy]#

cd -

cd . =====當前目錄 復制/移動 cp/etc/host.

cd.. =====進入到當前目錄的上一級目錄

cd~ =====進入當前用戶的家目錄,回老家

(root用戶)~ ====/root

(普通用戶)~ ====/home/

cd =====回老家 回家

cd - #快速回到上一次的所在位置/目錄

[root@oldboye01-nb oldboy]##進入到/etc/sysconfig/network-scripts/目錄,並查看你所在的位置

[root@oldboye01-nb oldboy]#進入到上一級目錄,並查看你所在位置

[root@oldboye01-nb oldboy]##進入到/root目錄下面,並顯示你所在位置

[root@oldboye01-nb oldboy]#回到老家

[root@VM-8-6-centos ~]# cd /oldboy/

[root@VM-8-6-centos oldboy]# cd /etc/sysconfig/network-scripts/

[root@VM-8-6-centos network-scripts]# pwd

/etc/sysconfig/network-scripts

[root@VM-8-6-centos network-scripts]# cd ..

[root@VM-8-6-centos sysconfig]# pwd

/etc/sysconfig

[root@VM-8-6-centos sysconfig]# cd /root/

[root@VM-8-6-centos ~]# pwd

/root

[root@VM-8-6-centos ~]# cd -

/etc/sysconfig

#第3題一個目錄中有多文件(ls查看時好多屏),想最快速度查看到最近更新的文件,怎麼查

ls -lrt

第5題 調試系統服務時,希望能實時查看系統日誌/var/log/messages的更新,如何做?

tail -f 顯示文件的實時更新

taillf ====tail -f

第4題 列印配置文件nginx.conf 內容的行號及內容,該如何做?

[root@oldboye01-nb oldboy]# echo {1..5}

1 2 3 4 5

[root@oldboye01-nb oldboy]# echo stu {01..10}

stu 01 02 03 04 05 06 07 08 09 10

[root@oldboye01-nb oldboy]# echo stu{01..10}

stu01 stu02 stu03 stu04 stu05 stu06 stu07 stu08 stu09 stu10

[root@oldboye01-nb oldboy]# echo stu{01..10}xargs -n1

stu01xargs stu02xargs stu03xargs stu04xargs stu05xargs stu06xargs stu07xargs stu08xargs stu09xargs stu10xargs -n1

[root@oldboye01-nb oldboy]# echo stu{01..10}|xargs -n1

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboye01-nb oldboy]# echo stu{01..10}|xargs -n1 >nginx.conf

[root@oldboye01-nb oldboy]# cat nginx.conf

stu01

stu02

stu03

stu04

stu05

stu06

stu07

stu08

stu09

stu10

[root@oldboye01-nb oldboy]#

###方法1

[root@oldboye01-nb oldboy]# cat -n nginx.conf (-n表示行號)

1 stu01

2 stu02

3 stu03

4 stu04

5 stu05

6 stu06

7 stu07

8 stu08

9 stu09

10 stu10

###方法2 -vi/vim

:set nu #顯示行號 number

:set monu #取消小時行號

###方法3 -grep -n參數

[root@oldboye01-nb oldboy]# grep -n "stu" nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

6:stu06

7:stu07

8:stu08

9:stu09

10:stu10

[root@oldboye01-nb oldboy]# grep -n "." nginx.conf

1:stu01

2:stu02

3:stu03

4:stu04

5:stu05

6:stu06

7:stu07

8:stu08

9:stu09

10:stu10

小結:

1.cat -n;vi/vim顯示行號

2、grep -n

3、awk NR $ print

###第5題,裝完系統後,希望讓網路文件共享伺服器NFS(iptables),僅在3級別上開機自啟動,如何操作?

chkconfig iptables off

###第6題,liunx系統中查看中文,但是亂碼,請問如何解決?

解決:

方法1:推薦修改xshell 字元集

方法2:修改系統字元集

1:命令行 export LANG=en_us.utf-8

2.寫入配置文件

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.bat

echo 『LANG=en_us.UTF-8'>/etc/sysconfig/i18n

3、生效

source /etc/sysconfig/i18n

###第7題; /etc/目錄為liunx系統默認的配置文件及服務啟動命令的目錄

a、請用tar 打包/etc整個目錄(打包及壓縮)

b、請把a點命令的壓縮包,解壓到/tmp指定目錄下(最好只用tar命令實現)

c、請用tar打包/etc整個目錄(打包及壓縮,但需要排除/etc/services文件)。

tar 創建查看解壓壓縮包

[root@oldboye01-nb oldboy]# tar zcvf /tmp/etc.tar.gz /etc/

創建壓縮包 壓縮包存放的位置 壓縮能夠目錄

zcvf 注釋:

z----通過gzip工具進行壓縮 ,

c-----表示create創建 壓縮包 ,

v---表示verbose顯示執行過程

f-----顯示file 接上壓縮包的名字

[root@oldboye01-nb oldboy]# ls -l /tmp/ (查看文件)

total 9508

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

查看壓縮包的內容

[root@oldboye01-nb oldboy]# tar ztf /tmp/etc.tar.gz

ztf注釋: t----表示list 顯示壓縮包的內容

解壓

[root@oldboye01-nb oldboy]# cd /tmp/

[root@oldboye01-nb tmp]# tar zxf etc.tar.gz (解壓)

創建

tar zcf

查看

tar tf

解壓

tar xf

[root@oldboye01-nb tmp]# tar zxf etc.tar.gz

[root@oldboye01-nb tmp]# tar zcf /tmp/sysconfig.tar.gz /etc/sysconfig/

tar: Removing leading /' from member names tar: Removing leading /' from hard link targets

[root@oldboye01-nb tmp]# tar tf /tmp/sysconfig.tar.gz

[root@oldboye01-nb tmp]# ls -l

total 9568

drwxr-xr-x 78 root root 4096 Jun 23 03:39 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# rm -fr etc

do not use rm -fr etc

[root@oldboye01-nb tmp]# ll

total 9568

drwxr-xr-x 78 root root 4096 Jun 23 03:39 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# rm -fr etc

[root@oldboye01-nb tmp]# ll

total 9564

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# tar xf sysconfig.tar.gz

[root@oldboye01-nb tmp]# ll

total 9568

drwxr-xr-x 3 root root 4096 Jun 23 06:02 etc

-rw-r--r-- 1 root root 9736182 Jun 23 05:48 etc.tar.gz

-rw-r--r-- 1 root root 53851 Jun 23 06:00 sysconfig.tar.gz

[root@oldboye01-nb tmp]# ls etc

sysconfig

[root@oldboye01-nb tmp]# ls etc

sysconfig

[root@oldboye01-nb tmp]# ls etc/sysconfig/

acpid i18n kernel quota_nld sshd

atd init keyboard raid-check sysstat

auditd ip6tables moles readahead sysstat.ioconf

authconfig ip6tables-config netconsole readonly-root system-config-firewall

cbq ip6tables.old network rngd system-config-firewall.old

clock iptables networking rsyslog udev

console iptables-config network-scripts sandbox

cpuspeed iptables.old ntpd saslauthd

crond irqbalance ntpdate selinux

grub kmp prelink smartmontools

請把A點命令的壓縮包,解壓到/tmp指定目錄下(最好用tar命令實現)

[root@oldboye01-nb tmp]# tar xf etc.tar.gz -C /opt/ (指定目錄)

[root@oldboye01-nb tmp]# ls -l /opt/ (查看解壓後的目錄情況)

請用tar打包/etc整個目錄(打包及壓縮,但需要排除/etc/services文件)

[root@oldboye01-nb tmp]# tar zcf /tmp/etc.tar.gz /etc/

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]#

[root@oldboye01-nb tmp]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]# tar zcf /tmp/etc-paichu.tar.gz /etc/ --exclude=/etc/services

tar: Removing leading `/' from member names

tar: Removing leading `/' from hard link targets

[root@oldboye01-nb tmp]# tar tf /tmp/etc.tar.gz |grep services

etc/init/readahead-disable-services.conf

etc/services

[root@oldboye01-nb tmp]# tar tf /tmp/etc-paichu.tar.gz|grep services

etc/init/readahead-disable-services.conf

[root@oldboye01-nb tmp]#

cd /

tar zcf /tmp/etc.tar.gz etc/

小結:

1、tar 打包壓縮

2、創建壓縮包 查看壓縮包, 解壓

3、解壓到指定的文件夾

4、創建壓縮包排除

#第8題如何查看etc/services文件的有多少行?

[root@oldboye01-nb ~]# cd /oldboy/

[root@oldboye01-nb oldboy]# wc -l /etc/services

10774 /etc/services、

屌絲去洗浴中心之路

3、

(1) 查看22埠是否開啟telnet

(2) sshd遠程連接進程是否在運行

ps -ef

[root@oldboye01-nb oldboy]# ps -ef |grep "sshd" (過濾進程sshd)

root 1436 1 0 Jun22 ? 00:00:00 /usr/sbin/sshd

root 2461 1436 0 05:11 ? 00:00:00 sshd: root@pts/0

root 2588 1436 0 06:45 ? 00:00:00 sshd: root@pts/1

root 2656 1436 0 07:30 ? 00:00:00 sshd: root@pts/2

root 2701 2658 0 08:01 pts/2 00:00:00 grep sshd

[root@oldboye01-nb oldboy]# ps -ef |grep "/sshd"

root 1436 1 0 Jun22 ? 00:00:00 /usr/sbin/sshd

root 2705 2658 0 08:03 pts/2 00:00:00 grep /sshd

[root@oldboye01-nb oldboy]# ps -ef |grep "/sshd"|wc -l (顯示進程出現幾個;次數)

2

第9題:過濾出/etc/services 文件包含3306和1521兩數字所在行號的內容

[root@oldboye01-nb oldboy]# grep "3306" /etc/services

mysql 3306/tcp # MySQL

mysql 3306/udp # MySQL

[root@oldboye01-nb oldboy]# egrep "3306|1521" /etc/services

mysql 3306/tcp # MySQL

mysql 3306/udp # MySQL

ncube-lm 1521/tcp # nCube License Manager

ncube-lm 1521/udp # nCube License Manager

[root@oldboye01-nb oldboy]# #egrep ==grep -E支持高級正則(公雞里的戰斗機)

[root@oldboye01-nb oldboy]#

第10題命令行及shell中不加引號、加單引號和加雙引號的區別小結

單引號 所見即所得 吃啥吐啥

雙引號 裡面的特殊符號會被解析

[root@VM-8-6-centos oldboy]# echo 'hello lls $LANG $(hostname) 'pwd''

hello lls $LANG $(hostname) pwd

⑼ liunx 下的shell語句 if [ ! -d /$1/$2/$3/ ]是什麼意思

liunx 下的shell語句 if [ ! -d /$1/$2/$3/ ]這是判斷某文件夾是否存在,$1, $2, $3都是變數,操作方法如下:

1、判斷文件的基本格式。[ 操作符 文件或目錄 ]。

⑽ shell腳本中的美元符號什麼意思

linux shell腳本中的美元符號$,是作為shell中特殊變數使用的,具體含義:

$0 shell的命令本身(包括完專整路徑)
$1到$9 數字表屬示shell 的第幾個參數
$# 傳遞到腳本的參數個數
$* 以一個單字元串顯示所有向腳本傳遞的參數
$$ 腳本運行的ID號
$! 後台運行的最後一個進程的ID號
$@ 與$*相同。
$- 顯示shell使用的當前選項。
$? 顯示最後命令的執行狀況。0表示沒有錯誤。

閱讀全文

與linuxshell特殊符號相關的資料

熱點內容
windows8網路連接 瀏覽:442
怎麼快速增加qq群人數 瀏覽:919
錘子視頻播放器文件不存在 瀏覽:707
蘋果手機怎麼清理app緩存 瀏覽:682
花園戰爭2豪華升級包 瀏覽:517
電腦無法向u盤傳輸文件 瀏覽:823
bpn配置文件 瀏覽:932
501完美越獄工具 瀏覽:119
中間夾菜單裡面不能顯示壓縮文件 瀏覽:952
如何指導小學生參加編程比賽 瀏覽:275
物業的招標文件有哪些 瀏覽:452
保存游戲文件名非法或只讀 瀏覽:258
js怎麼做圖片時鍾 瀏覽:451
華為應用裡面有了app說明什麼 瀏覽:801
資料庫中xy是什麼意思 瀏覽:893
u盤打不開提示找不到應用程序 瀏覽:609
網站功能介紹怎麼寫 瀏覽:954
word在試圖打開文件時錯誤 瀏覽:108
主板無vga插槽怎麼連接編程器 瀏覽:521
錄視頻文件在哪裡刪除 瀏覽:881

友情鏈接