1. 程式人生 > >《Shell指令碼學習指南》學習筆記

《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
  • 特殊檔案:/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

命令使用注意事項

  • -開頭表示選項,以--
    開頭表示長選項
  • 多條命令寫在一行,以;分隔

指令碼的語法說明:

  1. #! 指令碼直譯器路徑開頭,如:#! /bin/sh
  2. 變數
    • 命名:字母或下劃線開頭,後面可以是字母數字,下劃線
    • 賦值:變數名=值(注意等號前後不能有任何空格,變數值之間有空格時,需要用引號括起來),單行多次賦值,之間用空格分隔
    • 使用變數:以$變數名
    • 輸出:
      • echo
        • echo 引數(引數以空格分隔)
      • printf
        • 不會自動換行,需要換行,需在末尾加上\n
        • 例句:printf "the first program always print %s,%s" hello world (\d表示十進位制整數)
  3. 再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、使用