【Shell】-- 基礎知識(2)

来源:http://www.cnblogs.com/weiser/archive/2017/11/30/7931506.html
-Advertisement-
Play Games

1、Shell腳本運行方式 創建Shell腳本文件,一般以.sh結尾(如:example.sh) Shell腳本運行方式如下: 添加 ‘x’ 執行許可權(相對或絕對路徑執行) 使用bash或source(.)命令調用腳本文件 2、Bash的基本功能 (1)、歷史命令history -c:清空歷史命令 ...


1、Shell腳本運行方式

  創建Shell腳本文件,一般以.sh結尾(如:example.sh)

  Shell腳本運行方式如下:

  • 添加 ‘x’ 執行許可權(相對或絕對路徑執行)
  • 使用bash或source(.)命令調用腳本文件

2、Bash的基本功能

  (1)、歷史命令history

     -c:清空歷史命令

    -w:將緩存中的歷史命令保存到配置文件當中(~/.bash_history)

    調用歷史命令的方法:

      ①、使用上、下鍵調用

      ②、使用“!n”重覆執行第n條歷史命令

      ③、使用“!!”重覆執行上一條命令

      ④、使用“!字元”重覆執行最近一條以此字元開頭的命令

  (2)、命令別名alias

    格式:alias  別名=‘原命令’    [選項]

     例:alias   ls=‘ls -l’

    配置文件:

      單個用戶:~/.bashrc

      所有用戶:/etc/bashrc

      (對此處兩個配置文件不太明白同學,可以理解為一個為全局變數,一個為局部變數。)

    不同類型的命令執行優先順序:

      No.1、相對或絕對路徑的方式執行命令

      No.2、別名命令

      No.3、bash內置命令

      No.4、根據環境變數定義的目錄查詢到的命令

  (3)、Bash常用快捷鍵

    

    

3、輸入輸出重定向 

   (1)、Bash的標準輸入輸出

    設備    設備文件名    文件描述符   類型

    鍵盤    /dev/stdin        0      標準輸入

    顯示器   /dev/stdout      1      標準正確輸出

    顯示器   /dev/stderr       2      標準錯誤輸出

  (2)、輸出重定向

    

  (3)、輸入重定向

    命令:wc  【選項】 【文件名】

        -c:統計字數(字元)

        -w:統計單詞數(字元串)

        -l  :統計行數

    例如:

       wc   <   文件(統計文件中的字數,單詞數,行數)

          

       wc  <<  字元(統計從開始字元到結束字元中的單詞,字,行數)

           

4、多命令順序執行

  

5、管道符

  格式:命令1 | 命令2(將命令1的標準輸出作為命令2的標準輸入)

   xargs實現將命令1的標準輸出作為命令2的選項

   例如:

    echo  “--help”  |  cat

      

    echo   “--help”  | xargs cat

      

6、通配符

  

7、Bash中其他特殊符號

  

  父Shell和子Shell(使用pstree查看)

    

    使用Shell不影響父Shell,在()中執行的命令,在新開啟Shell中執行,不影響本Shell

8、變數

  (1)、變數規範

    可以由字母、數字和下劃線組成,但是不能以數字開頭,變數中間不能有空格。

  (2)、註意事項  

    v  在Bash中,變數的預設類型都是字元串型,如果需要進行數值運算,則需要轉換為數值型

    v  變數用等號鏈接值,等號左右兩側不能有空格

    v  變數若有空格,需要使用單引號或雙引號包括

    v  雙引號“”括起來的$、|、``都有特殊含義

    v  單引號括起來的都是普通字元

    v  如果需要增加變數值,進行變數值疊加,”$變數名”或”${變數名}”,eg:PATH=$PATH:/sh

    v  變數名建議大寫,易於區分

  (3)、變數分類

    v  用戶自定義變數

    v  環境變數

    v  位置參數變數

    v  預定義變數

  1. 用戶自定義變數

    a)         調用:

      echo  $變數名

      例如:echo  $PATH

 

    b)        查看:

      set [選項]  ----  直接回車顯示系統中所有變數

             -u   調用沒有聲明的變數時會報錯(建議使用)

             -x    命令執行前,先將命令輸出一次

                           

    c)         刪除:

      unset 變數名

 

   2、環境變數

    a)         設置:

      export  變數名=值------(聲明~/.bash_profile)

      #export聲明的是環境變數

    b)        查看:

      env

      常用格式: env | grep 變數

      #set中包括env,env查詢環境變數,set查詢所有變數

    c)         PS1變數:定義命令提示符

         

                          PS1可支持以下選項:

        v  \d:顯示日期,格式為“星期月日”

        v  \H:顯示完整的主機名。如預設主機名“localhost.localdomain”

        v  \h:顯示簡寫主機名。如預設主機名“localhost”

        v  \t:顯示24小時制時間,格式為“HH:MM:SS”

        v  \T:顯示12小時制時間,格式為“HH:MM:SS”

        v  \A:顯示24小時制時間,格式為“HH:MM”

        v  \@:顯示12小時制時間,格式為“HH:MM am/pm”

        v  \u:顯示當前用戶名

        v  \v:顯示Bash的版本信息

        v  \w:顯示當前所在目錄的完整名稱

        v  \W:顯示當前所在目錄的最後一個目錄

        v  \#:執行的第幾個命令

        v  \$:提示符。如果是root提示符為“#”,如果是普通用戶提示符為“$”

  3、調用格式:

      

    d) LANG語系變數----定義主語系環境變數

                            i.查看Linux支持的語系

          locale –a | more

                            ii.當前使用可用語系

          locale

                            iii.查詢預設語系

          cat  /etc/sysconfig/i18n

                            iv.修改桌面版中文為英文

  1. 將當前語系改為en_US,預設是zh_CN

     export LANG=en_US.UTF-8

  1. 執行命令進行文件名轉換

     xdg-user-dirs-gtk-update

 

  4、位置參數變數

    v  $*顯示所有參數(作為整體接收)

    v  $@顯示所有參數(分開接收)

    v  $#顯示參數個數

  預定義變數

     

    v  $? 判斷上一條命令是否正常執行

      錯誤數值非0,正確的是0

    v  $$ 當前進程的PID

    v  $!最後一個後臺執行的命令的進程

 

                    註意事項:

    v  變數名可以自定義,如果不指定變數名,會把輸入保存入預設變數REPLY

    v  如果只提供了一個變數名,則整個輸入行賦予該變數

    v  如果提供了一個以上的變數名,則輸入行分為若幹字,一個接一個地賦予各個變數,而命令行上的最後一個變數取得剩餘的所有值

 

 

  5、接受鍵盤輸入

    格式:read  [選項]   [變數名]

                     選項:-p “提示信息”:在read等待時輸入的信息

                      -t  秒數       :read等待的秒數(到達秒數自動跳轉下一條)

                      -n  字元數    :read最多能接收的字元數

                      -s            :隱藏輸入的信息

                    註:若特殊選項不換行,使用\n控制轉換符

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在我們開發項目的時候,經常會遇到大塊數據的問題(2M-100M),比如說保存報表中1w個人的ID號,他就像一個腫瘤一樣,存儲在伺服器哪裡都 覺得噁心,放在redis,mongodb中吧,一下子你就會收到報警,因為記憶體滿了。。。放在mysql吧???你還得建立一個text欄位,和一些小欄位混在一起, ...
  • 1 ;SQL Server 2014 Configuration File 2 [OPTIONS] 3 4 ; 指定安裝程式的工作流,如 INSTALL、UNINSTALL 或 UPGRADE。這是必需的參數。 5 6 ACTION="Install" 7 8 ; 尚未定義命令行參數 ROLE 的詳 ...
  • [20171130]關於rman備份疑問.txt--//前面測試太亂,重新做一些rman as copy相關測試.1.環境:SCOTT@book> @ &r/ver1PORT_STRING VERSION BANNER x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Da ...
  • 聲明局部變數語法:DECLARE @variable_name DataType其中 variable_name為局部變數的名稱,DataType為數據類型。給局部變數賦值有兩種方法:1、SET @variable_name=value2、SELECT @variable_name=value兩者的 ...
  • 這篇主要講如何將數據保存回Mysql,但是裡面還會涉及到如何將錯誤信息以及提示信息保存到文件里,方便以後的運維,再有就是如何使用PHP寫進程BAT。 Redis數據刷回資料庫前的知識準備 首先針對上篇提到的關於redis刷回資料庫的安全性的設計模式,因為我們使用的是list來做數據索引,所以在我們將 ...
  • 註意要先關閉 selinux 和 防火牆 創建掛載點 mkdir /opt/gua 掛載光碟 mount /dev/cdrom /opt/gua/ 進入目錄 cd /opt/gua/CentOS/ 安裝samba服務 rpm -ivh samba-3.0.33-3.28.el5.i386.rpm - ...
  • 1.1 ISO/OSI 七層模型 筆記: 打入ipconfig: mac地址:Media Access Control 也是物理地址,這是由網卡決定的。負責的是內網,也就是區域網通信。 IPv4地址:是負責外網的,也就是公網通信。 埠是來確定你伺服器給的哪個服務的 1.2 Linux網路基礎之TC ...
  • 性能監測著重於電腦系統資源監測,是對系統進行預防性維護的必要工作,可通過分析監視數據來瞭解系統存在哪些瓶頸,應當採取何種措施來調整或更新受影響的資源, Linux系 統提供了多種性能監測工具來幫助管理員完成系統監控工作; 1》性能監測概述: 系統性能監測與調整是Linux系統管理員日常維護工作的一 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...