【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
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...