《Shell指令碼學習指南》學習筆記
Shell指令碼學習
讀
《Shell指令碼學習指南》
一書
基本語法
- 環境變數
$PATH
- IO重定向:
- 以
<
改變標準輸入
- 如:
tr -d '\r' < dos-file.txt
- 如:
- 以
>
改變標準輸出
- 如:
tr -d '\r' < dos-file.txt > UNIX-file.txt
(如果>
的目的檔案不存在,將自動建立,若存在,將覆蓋原檔案)
- 如:
- 以
>>
附加到檔案(檔案末尾追加)
- 若檔案不存在,則自動建立,若存在,則在檔案末尾追加
- 以
|
建立管道
- 前一個program的輸出作為後一個program的輸入(
program1 | program2
ls | grep a
- 前一個program的輸出作為後一個program的輸入(
- 以
特殊檔案:
/dev/null
和/dev/tty
/dev/tty:輸入密碼時,預設不列印輸入的密碼到終端,例如:(-echo 用來關閉列印輸入,echo開啟)
printf "Enter new password: " stty -echo read pass < /dev/tty printf "Enter again: " read pass2 < /dev/tty stty echo ...
常用命令:
- who:查詢系統的登陸使用者
- cat > 檔名 :將後面的輸入資訊重定向到檔案中,以 ^D 結束
- tr:轉換字元
-d
:刪除source-char-list所列舉的字元,如:tr -d '\r' < dos-file.txt | sort > UNIX-file.txt
,將dos-file.txt中的回車符全部刪掉,再排好序重定向到UNIX-file.txt檔案中
- sh (執行一個指令碼)
-x
顯示指令碼中的每個命令,以+
開頭,可以在指令碼中開啟追蹤功能,set -x
,用set +x
關閉追蹤
- grep
- sed
- cut
- awk
- sort
- uniq :(去重)
- head -n n 檢視前n行
tail -n n 檢視後n行
umask
命令使用注意事項
- 以
-
開頭表示選項,以--
- 多條命令寫在一行,以
;
分隔
指令碼的語法說明:
- 以
#! 指令碼直譯器路徑
開頭,如:#! /bin/sh
- 變數
- 命名:字母或下劃線開頭,後面可以是字母數字,下劃線
- 賦值:變數名=值(注意等號前後不能有任何空格,變數值之間有空格時,需要用引號括起來),單行多次賦值,之間用空格分隔
- 使用變數:以
$變數名
- 輸出:
echo
- echo 引數(引數以空格分隔)
printf
- 不會自動換行,需要換行,需在末尾加上
\n
- 例句:
printf "the first program always print %s,%s" hello world
(\d
表示十進位制整數)
- 不會自動換行,需要換行,需在末尾加上
- 再shell指令碼中訪問shell指令碼的引數
- 讀取第
n
個引數,通過$n
讀取,若n
的數值大於9,則需用大括號括起來,如${10}
,讀取第10個引數
- 讀取第
未完–
相關推薦
Shell指令碼學習指南讀書筆記(一)
第1章 背景知識略 第2章 入門 編譯型語言 優點:高效 缺點:多半運作於底層,處理位元組、整數或其他機器層級的物件(C++中就很難將一個目錄所有檔案複製到另一個目錄中) 指令碼程式語言 通常是解釋型的
Linux Unix shell 編程指南學習筆記(第四部分)
fcm 驗證 () only arguments line div 反饋 sed 第十六章 shell腳本介紹 此章節內容較為簡單,跳過。 第十七章 條件測試 test命令 expr命令 test 格式 test condition 或者 [
linux shell指令碼攻略 學習筆記3 -- 第三章 以檔案之名
第三章主要跟檔案的處理相關,小結各節內容如下: 1,簡介 概念:Unix將系統中的一切都視為檔案;如普通檔案、目錄、終端、符號連結、命名管道等等,都是一種檔案; 2, 生成測試用的檔案 1)某些時候,需要製作一些測試用的檔案,我們不用單獨寫程式去生成,可以直接採用現有的
bash shell 指令碼變數的學習
Shell 指令碼(shell script),是一種為 shell 編寫的指令碼程式。 業界所說的 shell 通常都是指 shell 指令碼,但讀者朋友要知道,shell 和 shell script 是兩個不同的概念。 (需要有一丁點點點點的 Linux命令 基礎,
git 學習指南 學習資料筆記
學習資料地址 王爵的技術小黑屋 https://www.youtube.com/watch?v=29q6zwRGywk 01.什麼是Git Git是一個分散式的版本管理系統 每次修改後必須commit 本地資料庫 02.萌新也看的懂的 Git 基本操作 安裝git : brew insta
shell指令碼專家指南筆記#6_測試變數和設定預設值
## # 本文為《shell指令碼專家指南》一書的學習筆記。 ## 6. 測試變數和設定預設值 6.1. 設定預設值 設定變數預設值的幾種形式,複雜程度遞減。 # if [ -z "$var" ]; then
shell指令碼專家指南筆記#5_接受命令列選項_開關_引數
## # 本文為《shell指令碼專家指南》一書的學習筆記。 ## 5.接受命令列選項_開關_引數 原文示例有兩部分值得借鑑的內容: 1. app的目錄佈局; 2. getopts的用法。 app的目錄佈局  
shell指令碼專家指南筆記#4_比較和測試
## # 本文為《shell指令碼專家指南》一書的學習筆記。 ## 4. 比較和測試 通用形式 if [ "$string" = "some_string" ]; then ... if [ $integer -eq 15 ]; then
shell指令碼專家指南筆記#3.日期和時間操作
## # 本文為《shell指令碼專家指南》一書的學習筆記。 ## 3.1. 用天數來計算日期 unix和linux以1970年1月1日0時0分開始計算時間,也就是所謂的時間戳,單位是 秒。在系統中,可以使用 d
shell指令碼專家指南筆記#2.使用函式庫
## # 本文為《shell指令碼專家指南》學習筆記。 ## 2.1. 使用庫 可以將常用函式,封裝如庫檔案中,在需要用對應函式時,只要匯入對應庫檔案即可。 示例:通過匯入庫檔案,就可以引用已寫好的函式。 比如,匯入OSTYPE環境變數。 #!/bin/echo WARN: this lib
shell指令碼專家指南筆記#1.shell指令碼錯誤檢測
## # 本文為《shell指令碼專家指南》一書的學習筆記。 ## 1.1. shell跟蹤 使用set -x和set -v。僅在當前指令碼生效。 set -x # 開啟程式碼跟蹤。個人理解為,顯示當前執行的程式碼。
SpringMVC學習指南【筆記1】建立bean例項的方法和依賴注入
Spring MVC 主要從Spring框架、Servlet、JSP這3個方面來講。 Java企業版技術包括JMS、EJB、JSF、JPA。 Java企業版容器:GlassFish、JBoss、Oracle、Weblogic、IBM WebSphere T
SpringMVC學習指南【筆記2】
基於模型-檢視-控制器模式(MVC) 檢視負責應用的展示; 模型封裝了應用的資料和業務邏輯;控制器負責接收使用者輸入、改變模型、調整檢視的顯示。 控制器:springmvc和struct1使用servlet作為控制器,struct2使用filter作為控制器。 檢視:大部分使用JSP頁面作為檢視。
SpringMVC學習指南【筆記1】創建bean實例的方法和依賴註入
tro ans tex 多個 oracle sys 實例 不同的 指定 Spring MVC 主要從Spring框架、Servlet、JSP這3個方面來講。 Java企業版技術包括JMS、EJB、JSF、JPA。 Java企業版容器:GlassFish、JBoss、
SpringMVC學習指南【筆記5】EL表達式、實現免腳本JSP頁面、禁用EL計算的設置
ava session 關系運算 except conf cookie lec class 運算 EL表達式 關鍵字 and eq gt true instanceof or ne le false empty not lt
SpringMVC學習指南【筆記6】JSTL標籤
使用taglib指令 <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> out標籤 ouy標籤在運算表示式時,是將結果輸出帶當前的JspWriter。out的語法有兩種,一種是沒有body
SpringMVC學習指南【筆記8】tomcat、定義上下文、定義資源、安裝SSL證書
tomcat的啟動檔案 windows系統中是startup.bat unix/linux/mac系統中是startup.sh tomcat的終止檔案 windows系統中是shutdown.bat unix/linux/mac系統中是shutdown.sh 定義上下文 要將servlet/js
NumPy學習指南 學習筆記(二) 常用函式
1. 檔案讀寫 通常情況下,資料是以檔案形式儲存的。學會讀寫檔案是深入學習Numpy的基礎。 1.1 建立單位矩陣,並存入txt檔案i2 = np.eye(2) i2 Out[84]: array([[ 1., 0.], [ 0., 1.]]) 使用s
Linux shell指令碼攻略學習
1.陣列有關: (1)定義陣列,列印陣列 這些值將會儲存在以0為起始索引的連續位置上。 #!/bin/bash array_var=(1 2 3 4 5 6) array_y[0]="test1" array_y[1]="test2" array_y[2]="test3" array_y
shell 指令碼 輸入引數 學習
特殊變數 一般變數比較簡單哈,與Java、C/C++不一樣的地方在於不需要定義,直接使用即可。 例如: #!/bin/bash var= "wojiushimogui" echo ${var} 需要注意的兩點: 1、變數和等號之間不能有空格。 2、使用