shell的一些筆記

2021-07-04 22:39:23 字數 1682 閱讀 9589

如何使用基於ssh的scp遠端複製檔案?如何利用python傳?

scp /home/amazing/felix.tar.gz root@遠端ip:/home/dsp

python傳:pytyon -m ******httpserver 8085 +wget

如何檢視本機外網ip?curl ident.me

#返回ip和地區:curl cip.cc

如何將標準輸出和錯誤輸出同時重定向到同一位置?

方法一:

2>&1 (# ls /usr/share/doc > out.txt 2>&1 )

方法二:

&> (# ls /usr/share/doc &> out.txt )

shell遇到」>」操作符,會判斷右邊檔案是否存在,如果存在就先刪除,並且建立新檔案。不存在直接建立。 無論左邊命令執行是否成功。右邊檔案都會變為空。

「>>」操作符,判斷右邊檔案,如果不存在,先建立。以新增方式開啟檔案,會分配乙個檔案描述符[不特別指定,預設為1,2]然後,與左邊的標準輸出(1)或錯誤輸出(2) 繫結。

使用其他某個命令並將前乙個命令的輸出作為引數:xargs

例如: ls |grep -v 'nohup.out\|logs\|4.txt\|data' |xargs tar -czvf test.tar.gz

抑或:tar -czvf test.tar.gz $(ls | grep -v 'nohup.out\|logs\|4.txt\|data')

[變數系列]

#!/bin/sh

echo "number:$#"

echo "scname:$0"

echo "first :$1"

echo "second:$2"

echo "argume:$@"

echo "show parm list:$*"

echo "show process id:$$"

echo "show precomm stat: $?"

說明:

$# 是傳給指令碼的引數個數

$0 是指令碼本身的名字

$1 是傳遞給該shell指令碼的第乙個引數

$2 是傳遞給該shell指令碼的第二個引數

$@ 是傳給指令碼的所有引數的列表

$* 是以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,引數可超過9個

$$ 是指令碼執行的當前程序id號

$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤

安裝軟體:rpm -ivh ***.rpm

檢視安裝目錄:rpm -ql ***

清除掉原配置資訊:> /***/***/***.conf

關閉防火牆:service iptables stop

chkconfig iptables off

啟動程式:service ***  start

跟 service相關的目錄和檔案

/etc/init.d :在這裡邊可以新增新的服務配置,

服務啟動前先更改預設許可權:chmod 750 ***

檢視機器資訊:uname -a

負載均衡的三個功能:

1、請求**

2、故障移除(切備)

3、恢復新增

多台伺服器session的共享:

放在快取中,如:redis(必須為集群)

shell一些筆記

1 getopts可以編寫指令碼,使控制多個命令列引數更加容易 如 檔案get.sh bin sh name false age false odd false false while getopts nao s arg do case arg in n echo name is true a ec...

shell的一些符號

string string command 輸入輸出重導向 2 2 2 井號 comments 這幾乎是個滿場都有的符號。bin bash 井號也常出現在一行的開頭,或者位於完整指令之後,這類情況表示符號後面的是註解文字,不會被執行。this line is comments.echo a a a ...

一些shell符號

傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,此選項引數可超過9個 指令碼執行的當前程序id號 後台執行的最後乙個程序的程序id號 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 顯示最後命令的退出狀態。0表示...