幾例實用的Shell指令碼
日常工作中,經常編寫一些shell命令或指令碼以完成重複性操作,本文分享了最近用到的幾例shell實用指令碼。
1 特殊檔名的遠端複製
伺服器之間複製檔案經常使用scp命令,其命令格式:
(1)scp filename [user@]host:dir
(2)scp [user@]host:dir1/filenamedir2
格式(1)將本地檔案filename複製到遠端伺服器host的dir目錄下,格式(2)將遠端伺服器host的dir1目錄下的檔案filename,複製到本地dir2目錄下。
如果複製的檔名包含特殊字元,比如ecs-eos-base:1.0.tar,冒號:屬於特殊字元。直接使用格式(1)的命令進行複製,命令將ecs-eos-base識別為主機名稱而命令執行報錯,如下:
[root@PHY91 docker]
# scp ecs-eos-base:1.0.tar root
@PHY94:/root/docker/
ssh: Could not resolve hostname ecs-eos-base: Temporary failure in name resolution
此時使用./表示當前目錄即可解決該報錯,命令如下:
[root@PHY91 docker]#
scp ./
ecs-eos-base
:1.0.tar
root@
PHY94:/
root/
docker/
ecs-eos-base
:1.0.tar
100%
84MB
172
.7MB/
s
00
:00
使用./代表當前目錄,scp命令就不會將ecs-eos-base識別為主機名稱。
2 Base64編碼和解碼
在Centos或Redhat Linux作業系統中,如果要進行字串的Base64編碼和解碼,可以使用base64命令即可簡單實現。
(1)編碼
[root@PHY91 ~]
# echo “PHY91” | base64
UEhZOTEK
(2)解碼
[root@PHY91 ~]
# echo “UEhZOTEK” | base64 -d
PHY91
base64既可以編碼解碼字串,也可以對檔案內容進行編碼和解碼。-d引數是表示解碼。
對檔案編碼解碼命令如下:
[root@PHY91 test]#
echo “12345” >
test
.txt
[root@PHY91 test]#
base64
test
.txt
MTIzNDUK
[root@PHY91 test]#
base64
test
.txt >
test2
.txt
[root@PHY91 test]#
more
test2
.txt
MTIzNDUK
[root@PHY91 test]#
base64
-d
test2
.txt
12345
3 版本號自增長的實現
使用docker build進行應用映象構建時,為便於映象版本管理,每次構建的映象版本號會增加1。可以使用指令碼實現版本號的自增1,首先建立一個version.txt檔案,內容如下:
[eos@host-132 eos]$ more version.txt
1.0.0
獲取版本號命令如下:
version=cat version.txt
版本號賦值給version變數。
版本號自動增加1,指令碼命令如下:
echo $version | awk -F’.’ ‘{print($1"."$2"."($3+1));}’ > version.txt
命令說明:
(1)使用awk命令,分隔符為點“.”;
(2)$1,$2和$3分別是版本號的第1,2,3個數字;
(3)$3+1表示版本號增加1。
4 sed配置執行環境
在動靜完全分離的web應用專案中,前端使用nginx部署靜態資源即可,專案前端程式碼的基準URL(baseUrl)需要根據不同執行環境(開發、測試、生產)進行相應的修改,例如baseUrl賦值的js程式碼如下:
define([“jquery”],
function (
$) {
return {
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2703731/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 7 個日常實用的 Shell 拿來就用指令碼例項!指令碼
- shell指令碼例項指令碼
- shell指令碼舉例指令碼
- 9個實用shell指令碼指令碼
- 分享兩個實用的shell指令碼指令碼
- shell指令碼例項(2)指令碼
- Linux shell:執行shell指令碼的幾種方式Linux指令碼
- mysql便於管理的幾個shell指令碼MySql指令碼
- 3個例項介紹shell指令碼中幾個特殊引數的用法指令碼
- Shell指令碼應用(三)指令碼
- 幾個shell自動化指令碼(轉)指令碼
- 自動化指令碼安裝mysql shell指令碼範例指令碼MySql
- unix下幾個有用的小shell指令碼(轉)指令碼
- Shell指令碼最佳實踐指令碼
- MySQL實時計算QPS,TPS的SHELL指令碼兩例MySql指令碼
- Bash Shell指令碼中的陣列使用例項指令碼陣列
- Shell 中 $ 關於指令碼引數的幾種用法指令碼
- 有點用的linux shell 指令碼Linux指令碼
- 一個shell 指令碼用來同步表用的指令碼
- shell 指令碼實現的守護程式指令碼
- shell指令碼指令碼
- MySQL的一些功能實用的Linux shell指令碼分享MySqlLinux指令碼
- Shell指令碼應用兩個例子指令碼
- 用Shell指令碼&sqlloader做ETL指令碼SQL
- shell指令碼中的變數及應用指令碼變數
- 用shell指令碼傳送帶附件的email指令碼AI
- 用於管理應用程式得shell指令碼指令碼
- [Shell] Shell 生成 HTML指令碼HTML指令碼
- 【Linux】【Shell】主控指令碼實現Linux指令碼
- shell指令碼實現DNS正向解析指令碼DNS
- 能用js實現的最終用js實現,Shell指令碼也不例外JS指令碼
- 【Linux】什麼是shell指令碼?shell變數分為哪幾類?Linux指令碼變數
- [shell例項]——用指令碼實現向多臺伺服器批量複製檔案(nmap、scp)指令碼伺服器
- Shell指令碼之for迴圈語句的應用指令碼
- shell指令碼的一則簡單運用案例指令碼
- 用shell指令碼來給mysql加索引指令碼MySql索引
- shell指令碼(二)指令碼
- shell指令碼心得指令碼