Ⅰ 什麼事位置變數shell的變數類型有哪些種
比如要運行的程序是test.sh
test.sh 1 2 3 a b
上邊的 1 2 3 a b傳遞到腳本里就是位置變數 $1 $2 $3 $4 $5
shell的變數基本上分為:全局變數,本地變數(或叫局部變數)。
Shell是一個用C語言編寫的程序,它是用戶使用linux的橋梁。Shell既是一種命令語言,又是一種程序設計語言,涵蓋的知識點多且雜,卻是雲計算開發人員必須要掌握的技術之一。接下來就給大家梳理一下Shell變數相關的知識。
(1)位置變數可以通過什麼命令設置擴展閱讀:
實際上Shell是一個命令解釋器,它解釋由用戶輸入的命令並且把它們送到內核。不僅如此,Shell有自己的編程語言用於對命令的編輯,它允許用戶編寫由shell命令組成的程序。Shell編程語言具有普通編程語言的很多特點,比如它也有循環結構和分支控制結構等,用這種編程語言編寫的Shell程序與其他應用程序具有同樣的效果。
Ⅱ linux中位置變數的作用是什麼
位置變數:用於處理命令行傳遞給shell腳本的參數,比如test.sh腳本,用命令「sh
test.sh
1
2
3」執行該腳本,則位置變數$1指代1,$2指代2,$3指代4,$0指代腳本名稱test.sh。
Ⅲ 什麼是Linux的位置變數問題,並舉例說明.
大約 7 年前,Oracle 發布了 Linux 上的第一個商業資料庫。從那時起,Oracle、Red Hat 和 Novell/SUSE 就不斷地合作更改 Linux 內核,從而提高資料庫和應用程序的性能。正因為這樣,用於 Linux 的 Oracle 資料庫 10g 才包含了與操作系統緊密相關的許多增強功能。DBA 比以往任何時候更需要了解和使用此平台來在其監視下對系統進行最佳管理。
以往,系統管理員與 DBA 之間在職責方面存在差別。但實際上,這種差別通常並不明顯。許多 IT 部門僱傭一些可解決資料庫級以及操作系統級問題的員工。當然,Oracle 資料庫本身使用操作系統資源,並能與其環境緊密交互。
此外,許多系統管理員和 DBA 發現將其工作相關的任務自動化很有必要或比較方便。軟體安裝、系統資源監視以及系統管理涉及一些重復和容易出錯的任務,而自動過程可以比手動過程更好地完成這些任務。
將這些任務自動化的方法之一是 shell 腳本。Shell 腳本自 Linux 系統安裝之初就起著重要作用。啟動和關閉系統時就會調用各種腳本。Oracle 和其他第三方供應商的實用程序也是通過 shell 腳本可調用的。由於這些腳本可以快速開發,因此歷來就用它們構建應用程序原型。系統管理員已利用通過 shell 腳本實現的功能提供針對其監視的系統的特定要求和特徵定製的解決方案了。
在本文中,我將介紹「bash」shell 腳本可以實現的、與在 Linux 平台上安裝、運行和維護 Oracle 資料庫相關的功能。注意,本文適用於 Linux 腳本初學者或對 Linux 相對陌生的 DBA;對大多數經驗豐富的 Linux 系統管理員則不適用。
Shell 腳本是什麼?
shell 腳本是一個包含命令序列的文本文件。當運行文件(或腳本)時,將執行該文件中包含的命令。術語 shell 僅指與 Linux 內核通信所使用的特定命令行用戶界面。目前有多個不同的 shell,其中包括 C shell (csh)、Korn shell (ksh)、Bourne shell (sh) 和 Bourne-Again shell (bash)。shell 本身就是一個從文件或終端讀取命令、解釋這些命令並通常執行其他命令的命令。Bourne-Again shell 合並了上述其他 shell 的特性,本文就使用該腳本進行演示。
腳本文件中的第一行可用於指定使用哪個 shell 來運行該腳本。以下是所有腳本示例中包含的第一行的含義:
#!/bin/bash
為什麼使用 Shell 腳本?
由於 shell 腳本與 DBA 的工作相關,因此您可能不會馬上看到 shell 腳本的價值,這跟您的工作經歷有關。如果您以前從未使用過 UNIX 或類似 UNIX 的系統,那麼可能會對大量含義晦澀的命令感到一愁莫展。此外,除了作為關系資料庫外,Oracle 10g 還提供了一個用於處理資料庫數據的強健平台以及幾個用於在資料庫外部與操作系統交互的方法。
但您會發現幾個探究 shell 腳本領域的原因,其中包括:
必須支持已經存在的腳本。
需要在安裝 Oracle 軟體前自動設置系統。例如,您可以編寫一個腳本來檢查 OS 的初始狀態並報告安裝軟體前必須滿足的任何前提條件。該腳本還可以創建相關的 OS 用戶和組並為用戶設置環境變數。
可以使用正在運行的 Oracle 資料庫來執行手動或計劃的任務。但在資料庫未 運行時需要運行某些任務。可以使用腳本停止或啟動資料庫(以及偵聽器或相關的資料庫進程)。無法從資料庫內部啟動此類動作。
您需要一種監視資料庫狀態(例如,是否正在運行並可進行進程查詢)的機制。這樣的腳本還可以監視非特定於 Oracle 的其他進程和資源,從而提供系統當前運行情況的更詳細信息。
需要將備份自動化。Oracle Recovery Manager (RMAN) 是一個用於開發可以在任何平台上運行的備份腳本的實用程序。可以從 shell 腳本中調用 Oracle Recovery Manager 並使用它執行各種備份和恢復活動。
您可能有一個並非特定於某個資料庫的要求。您可能在一台計算機上安裝了多個資料庫。建議您不要使用單個資料庫滿足此要求,因為那樣會引發潛在的安全性問題。在這些情況下,shell 腳本提供了一種既可以滿足此要求又不會將進程與單個資料庫關聯的方法。
什麼情況下不 使用 Shell 腳本
Oracle 資料庫包含了超出 RDBMS 傳統定義的功能。與軟體的任何其他部分一樣,它使用操作系統提供的資源,但它所「看到」並「更改」其環境的程度遠遠超過了其他軟體。SQL 和 Oracle 的固定視圖從資料庫內部提供了系統視圖,而 shell 腳本從資料庫外部提供了系統視圖。Shell 腳本並不是適用於所有問題的解決方案。
必須意識到,操作系統的許多方面可以從資料庫內部進行監視和修改。可以使用 Oracle 的固定視圖(帶 v$ 前綴的視圖)確定計算機的主機名 (v$instance) 或資料庫正在其中運行的平台的名稱 (v$database)。還可以通過這種方式確定與資料庫相關的文件的位置和其他屬性。可以直接從資料庫中查詢數據文件(v$datafile、dba_data_files)、臨時文件(v$tempfile、dba_temp_files)、重做日誌 (v$logfile)、存檔日誌 (v$archived_log) 和控制文件 (v$controlfile) 的位置和其他屬性。可以通過該視圖以及通過查看某些 init.ora 參數(db_recovery_file_dest、db_recovery_file_dest_size)確定有關閃回恢復區 ($recovery_file_dest) 的信息。還可以查詢進程 (v$process) 和內存(v$sga、v$sgastat 等)的狀態。有各種內置的 PL/SQL 程序包,並能夠創建允許對底層 OS 進行其他訪問的 Java 和 C 資料庫對象。
如果您正在考慮為一個需要大量資料庫訪問的任務編寫腳本,則腳本可能並不是最佳選擇。本文的稍後部分將介紹如何使用 SQL*Plus 訪問資料庫,但在很多情況下,使用其他語言可以更好地解決此問題。
下表歸納了可以從資料庫中訪問的信息:
Ⅳ window怎樣在命令行設置系統變數
1.單擊「開始」à」運行「彈出「運行」窗口,在「打開」一欄輸入cmd,回車。
2.進到命令提示符窗口,新建一個環境變數,比如創建一個名為JAVA_HOME的,值為JDK所在位置,則可輸入set JAVA_HOME=JDK所在位置。
3.查看指定名稱的環境變數,比如剛剛新建的JVVA_HOME,輸入set JAVA_HOME,回車即可(如果指定的名稱不存在,則會報錯)。若是查看全部環境變數則輸入set回車。
4.修改環境變數。我們在添加了JAVA_HOME變數後需要在path 環境變數最前面加上%JAVA_HOME%\bin;輸入set path=value(其中value就是在path前面上%JAVA_HOME%\bin;後的值記住bin後面的分號不能掉)。
編後語:若想刪除制定的環境變數可以輸入set JAVA_HOME=再直接回車即可。
Ⅳ 如何修改環境變數的路徑
設置環境變數有兩種方式:
第一種是在命令提示符運行窗口中設置;
第二種是通過單擊「我的電腦→屬性→高級」標簽的「環境變數」按鈕設置。需要注意的是,第一種設置環境變數的方式只對當前運行窗口有效,關閉運行窗口後,設置就不起作用了,第二種設置環境變數的方式則是永久有效。如圖所示
如何更改一個環境變數的設置呢?更改環境變數有兩種情況:
一是追加方式,即在不改變環境變數現有設置的情況下,增加變數的值,比如要給環境變數增加一個值為「D:/Python」的設置,可以輸入「path=%path%;D:/Python」。
另一種是完全修改方式,對於這種方式,可以採用直接創建一個環境變數的方法來實現。
第二種:win7下修改環境變數PATH
windows系統環境變數說明
%USERPROFILE%表示C:DocumentsandSettings當前用戶名
%ALLUSERSPROFILE%表示C:DocumentsandSettingsAllUsers
%APPDATA%表示C:DocumentsandSettings當前用戶名ApplicationData
%ALLAPPDATA%表示C:
%SYSTEMDRIVE%表示C:
%HOMEDRIVE%表示C:
%SYSTEMROOT%表示C:WINDOWS
%WINDIR%表示C:WINDOWS
%TEMP%和%TMP%表示C:DocumentsandSettings當前用戶名LocalSettingsTemp
%ProgramFiles%表示C:ProgramFiles
%CommonProgramFiles%表示C:ProgramFilesCommonFiles
Ⅵ Dos下的Debug命令下,如何修改偏移地址變數值
Debug:g (go)運行當前在內存中的程序。使用不含參數的 g 將在 CS:IP 寄存器的當前地址處開始運行。 語法g [=address] [breakpoints]參數address對於當前位於存儲器中的程序,指定它開始運行的地址。 breakpoints 指定可以設置為 g 子命令的一部分的 1 到 10 個臨時斷點。顯示debug 子命令列表。 注釋Windows XP 不使用該命令。使用它只是為了與 MS-DOS 文件兼容。 指定有效的 address 項 Address 是一個包含字母段記錄的二位名稱或一個四位欄位地址加上一個偏移量。可以忽略段寄存器或段地址。CS 是下列「調試」子命令的默認段:a、g、l、t、u 和 w。所有其它命令的默認段是 DS。所有數值均為十六進制格式。段名和偏移量之間必須包含冒號。有效地址如下:CS:010004BA:0100使用address 參數 必須在 address 參數之前使用等號 (=),以區分 address 和斷點地址 (breakpoints)。 當程序到達斷點時,Debug.exe 將所有斷點地址恢復為它們的原始指令並顯示所有寄存器的內容、所有標志的狀態以及最後執行指令的解碼形式。Debug.exe 此時顯示的信息與使用 r (register) 子命令並指定斷點地址時相同。 如果不在斷點處停止程序,Debug.exe 將不使用原始指令替換中斷代碼。 可以只在包含 8086 操作代碼(操作碼)的第一個位元組的地址上設置斷點。如果設置了 10 個以上的斷點,Debug.exe 將顯示以下信息:bp error使用用戶堆棧指針 用戶堆棧指針必須有效且必須有 6 個可用於 g 子命令的位元組。g 子命令使用 iret 指令跳轉到需要測試的程序。Debug.exe 設置用戶堆棧指針並將用戶標志、代碼段寄存器和指令指針壓入用戶堆棧。(如果用戶堆棧無效或太小,操作系統可能會失敗。Debug.exe 在指定的斷點地址處或指定的地址處放置中斷代碼 (0CCh)。 重新啟動程序 出現下述消息後,請不要重新啟動程序: Program terminated normally 要正確地運行程序,必須通過使用 n (Name) 和 l (Load) 子命令重新載入該程序。 獲取使用 p 子命令來執行循環、重復的字元串指令、軟體中斷或子常式的信息,請參閱「相關主題」 獲取使用 t 子命令來執行一個指令的信息,請參閱「相關主題」範例要運行當前內存中的程序,並要執行到 CS 段中的斷點地址 7550 為止,請鍵入:gcs:7550Debug.exe 將顯示寄存器的內容和標志的狀態,然後終止 g 子命令。 要設置兩個斷點,請鍵入:
Ⅶ 如何用set命令設置Windows 7操作系統的環境變數
1首先,我們可以查看下當前操作系統到底有哪些環境變數,依次點擊「開始」,「運行」,輸入cmd,調出命令行程序!
2接著,在彈出的cmd命令行程序中,輸入「set」,就可以查看當前操作系統的所有環境變數設置了。
3然後發現,這裡麵包含很多的系統設置,如ProgramW6432=C:\ProgramFiles,也就是說ProgramW6432這個環境變數是代表著C:\Program Files這個路徑,可以簡單驗證一下,輸入cd %ProgramW6432%這個命令就可以到達變數所代表的路徑了!當然ProgramFiles這個環境變數同樣代表的是這個路徑:
4接下來和大家分享下如何用set命令增加環境變數!假設,我們經常使用360殺毒程序,程序目錄為:C:\Program Files\360\360sd\360sd.exe,那麼在cmd程序命令中直接輸入360sd.exe是不行的,提示」不是內部或外部命令,也不是可運行的程序「,如下圖所示:
5但是,如果切換到C:\ProgramFiles\360\360sd\這個目錄下面的話,就可以正常執行了,如何
6接下來,我們要做的就是把C:\ProgramFiles\360\360sd\這個目錄設置到系統的環境變數中去,主要修改的地方就是PATH這個變數,在原來PATH變數中添加C:\Program Files\360\360sd\這個路徑,具體做法是:在命令行程序中輸入」setPath=C:\ProgramFiles\360\360sd\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static「,
7接下來我們再次查看系統的環境變數,發現系統的PATH變數已經置入了我們需要的360殺毒程序的目錄:C:\Program Files\360\360sd\。
8然後,我們再次嘗試在cmd命令行程序任意目錄輸入「360sd.exe」,看看能否執行我們需要的360殺毒程序,結果是肯定的,系統沒有報錯,
9當然了,我們如果不需要這個目錄了,也可以刪除掉,只需要在cmd命令程序中執行如下命令即可「setPath=C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles (x86)\ATI Technologies\ATI.ACE\Core-Static」
讀者其實可以發現,只要去掉360殺毒的目錄就可以了,執行之後,發現360sd.exe這個命令又不能運行了呢!
Ⅷ 如何設置PATH環境變數
分析如下:
1、點擊屏幕底部菜單欄中的「計算機」圖標。
7、點擊確定,設置完成。
(8)位置變數可以通過什麼命令設置擴展閱讀
1、環境變數相當於給系統或用戶應用程序設置的一些參數,具體起什麼作用這當然和具體的環境變數相關。比如path,是告訴系統,當要求系統運行一個程序而沒有告訴它程序所在的完整路徑時。
2、系統除了在當前目錄下面尋找此程序外,還應到哪些目錄下去尋找;再如tc或vc++中,set include=path1;path2; 是告訴編譯程序到哪裡去找.h類型的文件;當然不僅僅是指定什麼路徑,還有其它的作用的,如set dircmd=/4 設置一個環境變數的作用是在使用dir命令時會把/4作為預設的參數添加到你的dir命令之後,就像你的每個命令都加了/4參數,它實際上是給命令解釋程序command設置的一個環境變數,並且是給dir這個內部命令設置的。
3、DWORDGetEnvironmentVariable(LPCSTR lpName, LPSTR lpBuffer, DWORD dSize),參數lpName是你要求查詢的環境變數的名,lpBuffer是返回你所指定的環境變數的值的,dSize是告訴這個函數lpBuffer可以存放多少個位元組。
4、很多朋友會在自己的計算機上安裝雙系統,例如C盤安裝Windows XP,D盤安裝Windows 7。可是某些軟體往往只在Windows XP系統中安裝,Windows 7系統中是無法正常使用的,比較麻煩卻有效的方法是再安裝一遍。當我們了解了環境變數中的用途後就可以很好解決雙系統的軟體共用問題。
5、為什麼在Windows XP中安裝了的軟體在Windows 7下無法運行呢(綠色軟體除外)?原因是安裝軟體時往往須要向系統目錄中復制某些文件,而使用另外一個系統時會由於缺少這些文件而無法運行。因此,我們可以通過設置環境變數的方法來解決這個問題。
Ⅸ 什麼是位置變數shell的變數類型有哪些種
Linux Shell下的變數按其使用目的可分為3種類型:
環境變數:用於保存操作系統運行時使用的環境參數
位置變數:Bash將傳遞給腳本的參數保存在位置變數中,以便於在腳本中引用這些參數
預定義變數:由系統保留和維護的一組特殊的變數,這些變數通常用於保存程序運行狀態等
自定義變數:由用戶自行定義的變數,可用於用戶編寫的腳本,多個命令間的值傳遞等