linux雜魚知識

2021-08-10 04:23:48 字數 2710 閱讀 2635

今天在linux上寫指令碼什麼的碰到了一點問題,就心血來潮,記一下今天碰到的問題。

首先是完善指令碼的時候使用到了if語句,格式大概這樣:

if [something];then

code

elif [anotherthing];then

code

else

code

fi

然後使用了乙個-n引數判空,使用的時候遇到了乙個報錯

[:too many arguments

改為if [ -n "$sign" ]

問題解決

原因是,使用單純的$sign拉取的是一串字元,直接放到判斷條件裡,if語句就以為每個單詞都是乙個變數,加上「」後,就是乙個字串了。

檔案第一行

#! / bin/sh

解釋:#! —->告訴系統後面的引數是用來執行該檔案的程式,在這裡我們使用/ bin / sh來執行指令碼,也可以使用bash

指令碼執行需要許可權

chmod u+x 指令碼檔名

即可./指令碼檔名—— 執行指令碼

雖然我在指令碼最後一行使用了

cd /

但是指令碼執行完畢還是在指令碼的當前路徑下,沒有變化,這裡使用的是./*.sh命令使用的。

這裡解釋為什麼兩種執行方式會出現差異。

首先,./*.sh執行指令碼必須要有相應的檔案許可權,否則無法執行;而使用source(也就是.)不需要檔案許可權。

其次,source執行指令碼,是在當前指令碼程序下執行的,所以,使用source執行指令碼,就是純粹的命令堆疊,什麼命令都和手敲沒什麼區別。

但是使用./*.sh的方式執行指令碼,是在當前指令碼程序下建立了乙個子shell執行指令碼,該子shell繼承父shell的環境變數,但子shell新建的、改變的變數不會被帶回父shell,除非使用export

這就好比,你的指令碼執行後,指令碼本身有對應的path變數,用來儲存你現在的當前路徑,然後它有新建乙個子shell,來執行你在指令碼中寫的命令,操作都可以正常執行,然後子shell執行最後一句cd,之後子shell結束,回到父shell,然後父shell通過path變數回到你的指令碼所在路徑,父shell結束,最後整個指令碼執行完畢。(不知道理解是否有誤,這塊有點繞,剛開始沒讀懂)

location ~ .*.(js|css)$

然後就搞定了。。。

這裡~表示後面是乙個正規表示式,相當於乙個識別符號

.代表任意字元

*代表重複多次

後面那個.是檔案字尾帶的那個點

|代表選擇,就是或

$代表的是字串結束

再一次證明了學好正則的重要性,需要花點時間把這塊知識空缺補充一下。。。

nohup 你的shell命令 &
這裡面最後的&是關鍵。

然後檢視任務使用命令job

1.echo 在顯示器上顯示一段文字

2.sudo netstat -antup 檢視伺服器各埠使用情況

3.ps -ef|grep 程序名 查詢相關程序的運**況

4.使用xshell的時候有個清屏命令,ctrl+l 清屏,將螢幕滾動到顯示屏最上方

5.|管道命令,是將乙個命令的標準輸出管道為另外乙個命令的標準輸入

6.grep命令是一種強大的文字搜尋工具,全稱是global regular expression print,它能在檔案中搜尋符合要求的文字,並把匹配的行列印出來。

使用方法是grep 引數 查詢條件 檔名

7.>命令和>>

簡單說>是覆蓋,>>是追加.

>是定向輸出到檔案,如果檔案不存在,就建立檔案;如果檔案存在,就將其清空;

>>是將輸出內容追加到目標檔案中。如果檔案不存在,就建立檔案;如果檔案存在,則將新的內容追加到那個檔案的末尾,該檔案中的原有內容不受影響。

8.awk命令

awk是乙個強大的文字分析工具,相對於grep的查詢,sed的編輯,awk在其對資料分析並生成報告時,顯得尤為強大。簡單來說awk就是把檔案逐行的讀入,以空格為預設分隔符將每行切片,切開的部分再進行各種分析處理。

awk工作流程是這樣的:讀入有』\n』換行符分割的一條記錄,然後將記錄按指定的域分隔符劃分域,填充域,$0則表示所有域,$1表示第乙個域,$n表示第n個域。預設域分隔符是」空白鍵」 或 「[tab]鍵」

今天就這些,以後在加料吧,爭取燉好這鍋雜魚湯:)

linux工具命令總結雜雜雜

pwd 當前工作目錄 tar zxvf 解壓tar zcvf 壓縮檔案名 要壓縮檔案1 要壓縮檔案2 壓縮上傳檔案 rz輸入sudo yum y install lrzsz 安裝 輸入rz 即可上傳 在scurecrt alt p 在scurecrt alt p 在原會話cd 到要上傳的目錄 然後在...

PHP面試題之小雜魚

這裡的題目都是比較老的,但是做筆試題時經常碰到,因為這些題目比較凌亂,考的知識點不好分類,就放一塊了 題目 最少 實現求3個數的最大值 三目運算子實現 function getmax a,b,c echo getmax 3,9,6 題目 列印前一天的時間 格式 2015年10月15日 11 09 3...

js知識整理 雜)

mapactions stage 3 物件展開運算子,mapactions函式返回乙個物件,然後對返回物件使用展開符 解構 可以快速取得陣列或者物件當中的元素或者屬性,無需藉由arr x 或者obj key 等方式進行賦值 var a,b,c arr 變數名與物件屬性名不一致解構 var obj v...