<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Linux常用命令 ## 1.日常操作指令 ### 1.pwd >查看當前所在的目錄 ### 2.date > 查看當前系統時間 ### 3.who last > who 查看當前在線 (whoami查看當前登錄的用戶) > > last 查看最近的登錄歷史 ### 4.ls > ls / 查看根目錄下的所有內容 > > ls -l 以列表的方式展示 -a 顯示隱藏文件 -h 顯示文件大小 ## 2.常用操作 ### 1.創建文件夾 > 創建文件 。 > > mkdir abc 相對路徑的寫法 > > mkdir -p aaa/bbb/ccc 可以創建多層文件 > > mkdir /data 絕對路徑的寫法 ### 2.刪除文件夾 > rmdir 可以刪除空目錄 > > rm -r aaa 可以把整個文件夾以及其中所有的子節點刪除。(帶有刪除提示) > > 注意:r表示遞歸。(recursion) > > rm -rf aaa 強制刪除(無提示) > > rm -rf /* 刪除全部 ### 3.修改文件夾名稱 > mv aaa hhh 修改文件名稱 > > mv file.1 /data/hello.1 移動文件到指定目錄并修改文件名 ### 4.創建文件 > touch file.1 創建一個空文件 > > echo "hello linux ..." > file.1 利用重定向將輸出內容寫入到file.1文件中 > > echo "bye,bye!" >> file.1 將指定內容重定向到目標,不覆蓋原有內容 > > (> 會覆蓋文件原有內容,>> 在文件原有內容的基礎上進行追加) > > 可以使用cat 命令查看文件內容。 > > ls > file.2 也是可以的,關于>用法:只要前面有輸出內容都可以重定向到后面的文件中 ``使用vi創建文件:`` > vi file.3 > > 1.一般模式:只接受快捷鍵 ,進入vi編輯器的默認模式。 > > ``gg:``直接跳到首行 > > ``G:``直接跳到尾行 > > ``i:``進入編輯模式 > > ``a:``在光標的后一位開始插入 > > ``A:``在該行的最后插入 > > ``dd:``刪除當前行 3dd 一次刪除光標后3行 > > ``yy:``復制當前行 3yy 一次復制3行 ``p:``進行粘貼 > > ``v Ctrl+v Shift+v:``分別對應字符模式,塊模式,行模式。該模式下y復制,p粘貼 > > 2.編輯模式:Esc退出編輯模式回到一般模式。 > > 3.底行模式 : 輸入: 表示進入底行模式。 > > ``%s/haha/sbsbsb:``查到所有haha字符并替換成sbsbsb > > ``/指定內容:``直接查找到指定內容 > > ``wq`` 保存文件并退出vi > > ``wq!`` 強制保存文件,并退出vi > > q!強制退出 > > ``e!`` 放棄所有修改,從上次保存文件開始再編輯 > cat 查看文件 。 > > cat -n 文件名稱 顯示行號查看文件。 > > cat -n test.log | more 使用管道命令 查看并分頁顯示文件。 > more /etc/profile more 指令是一個基于 VI 編輯器的文本過濾器,以全屏幕的方式按頁顯示文本文件內容 > > 空格 向下翻一頁。 > > 回車 向下翻一行。 > > q 退出more 不再顯示文件內容。 > > Ctrl + F 向下滾動一屏幕。 > > Ctrl + B 返回上一屏。 > > = 輸出當前行號。 > > :f 輸出文件名和當前行號。 > > > > less 指令用來分屏查看文件內容,它的功能與 more 指令類似,但是比 more 指令更加強大,支持 各種顯示終端。less 指令在顯示文件內容時,并不是一次將整個文件加載之后才顯示,而是根據顯示 需要加載內容,對于顯示大型文件具有較高的效率。 > > less 要查看的文件 > > 空格 向下翻動一頁。 > > pagedow 下翻一頁 > > pageup 上翻 > > q 退出 。 > > /字符串 向下查找 > > ?字符串 向上查找。 > head -n 5 /etc/profile 顯示頭五行。 > > tail 文件名 查看文件后10行 。 > > tail -n 5 文件名 > > tail -f 文件 實時追蹤該文檔的更新 。 > 軟鏈接也叫符號鏈接,類似于 windows 里的快捷方式,主要存放了鏈接其他文件的路徑 > > 基本語法 > > ln -s 原文件或目錄 軟鏈接名 (功能描述:給原文件創建一個軟鏈接) > > ln -s /root linktoroot > > rm -rf linktoroot (注意 linktoroot 后不要加/) > history 查看歷史命令 。 > > history 10 > > !155 > date > > 1) date (功能描述:顯示當前時間) > > 2) date +%Y (功能描述:顯示當前年份) > > 3) date +%m (功能描述:顯示當前月份) > > 4) date +%d (功能描述:顯示當前是哪一天) > > 5) date "+%Y-%m-%d %H:%M:%S"(功能描述:顯示年月日時分秒) > > date -s 字符串時間 date -s "2019-10-10 10:10:10" 設置當前系統時間。 > cal 顯示本月日歷 calendar > locate 指令可以快速定位文件路徑。locate 指令利用事先建立的系統中所有文件名稱及路徑的 locate 數據庫實現快速定位給定的文件。Locate 指令無需遍歷整個文件系統,查詢速度較快。為了保 證查詢結果的準確度,管理員必須定期更新 locate 時刻。 ?基本語法locate 搜索文件 ?特別說明 由于 locate 指令基于數據庫進行查詢,所以第一次運行前,必須使用 updatedb 指令創建 locate 數 據庫。 > > updatedb 更新locate 數據庫 。 > > locate 文件名稱。 > grep 和管道指令 。 > > grep 過濾查找 , 管道符,“|”,表示將前一個命令的處理結果輸出傳遞給后面的命令處理。 > > grep [選項] 查找內容 源文件 > > -n number 顯示匹配行及行號。 > > -i ignore 忽略大小寫比較。 > > cat hello.txt | grep -ni haha > > ### 5.文件權限操作 > 權限解讀:drwxr-xr-x > > d:標識節點類型(d:文件夾 -:文件 l:鏈接) > > r:可讀 w:可寫 x:可執行 > > 第一組rwx: 表示這個文件的擁有者對它的權限 > > 第二組rwx: 表示這個文件的所屬組對它的權限 > > 第三組rwx: 表示這個文件的其他用戶(相對于上面兩類用戶)對它的權限 > > 修改權限 > > ? 有權限就是1 沒權限就是0 > > ? rwx 111 7 > > ? r-x 101 5 > > ? r-x 101 5 > > chmod 755 文件名稱 。 > > u 表示文件的擁有者 。 > > g 表示組的權限 。 > > o 表示其他人。 > > a 所有 。 > > chmod u-w,g+r ### 6.基本用戶管理 >1、添加用戶 > >? useradd 用戶名 > >? passwd 密碼 > >useradd -d /home/pet tom 添加用戶的同時指定家目錄。 > >userdel -r xm 刪除小明 連同家目錄 。 > >userdel xm 刪除小明保留家目錄。 > >查詢用戶。 id 用戶名 > >顯示用戶id 所在組的id 組名。 > 添加組 groupadd 組名 > > 刪除組 groupdel 組名 > useradd -g 用戶組 用戶名 創建用戶的時候就指定用戶組。 > > usermod -g 用戶組 用戶名 修改用戶組 > /etc/passwd 文件 用戶(user)的配置文件 > > 記錄用戶的各種信息 每行的含義:用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄 Shell > > /etc/shadow 口令的配置文件 > > 每行的含義:登錄名:加密口令:最后一次修改時間:最小時間間隔:最大時間間隔:警告時間:不活動 時間:失效時間:標志 > > /etc/group 組(group)的配置文件,記錄 Linux 包含的組的信息 > > 每行含義:組名:口令:組標識號:組內用戶列表 ject >2、用戶的切換   > >? su 用戶名 切換成指定用戶 > >? exit 切換回原來的用戶。 從高權限到低權限用戶不需要密碼,反之需要。 > >? su 切換成root > >? sudo 執行當前命令的時候使用root權限 > >? 權限配置的文件在/etc/sudoers文件中 > >3、主機名稱 > >? hostname 查看主機名稱 > >? /etc/sysconfig/network 可以永久修改主機名稱 > >4、IP地址修改 > >? ifconfig 查看ip信息 > >? /etc/sysconfig/network-scripts/ifcfg-eth0 ### 7.掛載 >rpm是由紅帽公司開發的軟件包管理方式,使用rpm我們可以方便的進行軟件的安裝、查詢、卸載、升級等工作。 但是rpm軟件包之間的依賴性問題往往會很繁瑣,尤其是軟件由多個rpm包組成時。 > >Yum 能夠從指定的服務器自動下載RPM包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。 > >1.當有圖形化界面的時候,會自動掛載到/media文件夾中,里面的packages就有我們需要的各種rpm安裝包 > >2.當我們安裝非圖形化界面的Linux后則需要手動掛載 > >? 1.首先創建掛載后存放光盤內容的目錄。 > >? mkdir /mnt/cdrom > >? 2.使用掛載命令,將光盤中的內容掛載到指定目錄。 > >? mount -t iso9660 -o ro /dev/cdrom /mnt/cdrom > >? (-t 表示文件系統的設備類型,iso9660 為光盤。) > >? (-o 表示文件掛上來后的模式,是可讀還是可寫 ro 只讀) > >? 3.取消掛載 > >? umount /mnt/cdrom ### 8.查看文件大小 >du -s /opt 查看匯總之后的文件大小 > >du -sh /opt 查看匯總之后的人能看懂的。(帶單位)而不是顯示當前文件在linux文件系統中占多少元數據 ### 9.查看分區大小 >df -h 查看分區使用情況 ### 10.關機,重啟 > shutdown > > shutdown -h now : 表示立即關機 > > shutdown -h 1 : 表示 1 分鐘后關機 > > shutdown -r now: 立即重啟 > > halt > > 就是直接使用,效果等價于關機 > > reboot > > 就是重啟系統。 > > syn : 把內存的數據同步到磁盤 > > 當我們關機或者重啟時,都應該先執行以下 sync 指令,把內存的數據寫入磁盤,防止數據丟失。 x ### 11.壓縮,解壓縮。 > gzip 將文件壓縮 。 > > gzip a.txt 壓縮文件,壓縮之后不保留原文件 。將生成 a.txt.gz 后綴文件。 > > gunzip 解壓。 > > gunzip a.txt.gz 解壓文件,不保留原文件。 > 壓縮文件或目錄的指令 。 > > zip -r aa.zip a 將當前目錄下的a文件夾 ,壓縮成aa.zip > > zip -r package.zip /home/ 將home下的所有內容壓縮成package.zip 。 > > 解壓縮文件或者目錄的指令。 > > unzip -d /opt/ package.zip 將指定zip包中的內容解壓到指定目錄。 > tar 打包指令,最后打包文件是.tar.gz的文件。 > > -c 產生.tar打包文件 > > -v 顯示詳細信息 > > -f 指定壓縮后的文件名 > > -z 打包同時壓縮 > > -x 解包.tar文件 > > tar -zcvf ab.tar.gz a.txt b.txt 將a.txt 和 b.txt 打包成tar.gz格式 > > tar -zcvf home.tar.gz /home/ 將home目錄下的所有文件打包成 home.tar.gz >tar -zxvf a.tar.gz 將a.tar.gz文件解壓到當前路徑下 。 > >tar -zxvf a.tar.gz -C /opt/ 解壓到指定目錄下,需要加入 -C 參數,并且指定文件要事先存在。 ## 3.Linux目錄結構 /bin:存放必要的命令、標準系統實用程序、增加的用戶程序。 /boot:存放啟動Linux時使用的一些核心文件、內核。 /dev:存放設備文件。 /etc:存放設置文件、系統管理所需要的配置文件和子目錄。 /home:用戶文件的主目錄,存放用戶數據。 /lib:存放系統最基本的動態鏈接共享庫、必要的運行庫。 /lost+found:存放系統意外關機時未保存的文件。 /media: linux系統會自動識別一些設備,例如U盤、光驅等等,當識別后,linux會把識別的設備掛載到這個目錄下。 /mnt:系統提供該目錄是為了讓用戶臨時掛載別的文件系統的,我們可以將光驅掛載在/mnt/上,然后進入該目錄就可以查看光驅里的內容了。 /opt:這是給主機額外安裝軟件所擺放的目錄。比如你安裝一個ORACLE數據庫則就可以放到這個目錄下。默認是空的。 /proc:這個目錄是一個虛擬的目錄,它是系統內存的映射,我們可以通過直接訪問這個目錄來獲取系統信息。 /root:該目錄為系統管理員,也稱作超級權限者的用戶主目錄。 /sbin:s就是Super User的意思,這里存放的是系統管理員使用的系統管理程序。 /selinux:這個目錄是Redhat/CentOS所特有的目錄,Selinux是一個安全機制,類似于windows的防火墻,但是這套機制比較復雜,這個目錄就是存放selinux相關的文件的。 /srv:該目錄存放一些服務啟動之后需要提取的數據。 /sys:這是linux2.6內核的一個很大的變化。該目錄下安裝了2.6內核中新出現的一個文件系統 sysfs 。sysfs文件系統集成了下面3種文件系統的信息:針對進程信息的proc文件系統、針對設備的devfs文件系統以及針對偽終端的devpts文件系統。該文件系統是內核設備樹的一個直觀反映。當一個內核對象被創建的時候,對應的文件和目錄也在內核對象子系統中被創建。 /tmp:這個目錄是用來存放一些臨時文件的。 /usr:這是一個非常重要的目錄,用戶的很多應用程序和文件都放在這個目錄下,類似于windows下的program files目錄。 /usr/bin:系統用戶使用的應用程序。 /usr/sbin:超級用戶使用的比較高級的管理程序和系統守護程序。 /usr/src:內核源代碼默認的放置目錄。 /var:這個目錄中存放著在不斷擴充著的東西,我們習慣將那些經常被修改的目錄放在這個目錄下。包括各種日志文件。 /run:是一個臨時文件系統,存儲系統啟動以來的信息。當系統重啟時,這個目錄下的文件應該被刪掉或清除。如果你的系統上有 /var/run 目錄,應該讓它指向 run。 # shell編程 ## 1、變量 注意,變量名和等號之間不能有空格,這可能和你熟悉的所有編程語言都不一樣。同時,變量名的命名須遵循如下規則: - 命名只能使用英文字母,數字和下劃線,首個字符不能以數字開頭。 - 中間不能有空格,可以使用下劃線(_)。 - 不能使用標點符號。 - 不能使用bash里的關鍵字(可用help命令查看保留關鍵字)。 1.變量可以被重新定義 2.使用readonly可以將變量定義為只讀 3.unset可以刪除變量 不能刪除只讀變量 ```shell echo "hello the world!" your_name="zhangchaomiao" echo ${your_name} myWeb="http://www.baidu.com" readonly myWeb #myWeb="http://www.sohu.com" echo ${myWeb} home="hubei" unset home echo ${home}//空 ``` 除了顯式地直接賦值,還可以用語句給變量賦值,如: ```shell for file in ls /etc 或 for file in $(ls /etc) ``` ## 2、變量類型 運行shell時,會同時存在三種變量: - **1) 局部變量** 局部變量在腳本或命令中定義,僅在當前shell實例中有效,其他shell啟動的程序不能訪問局部變量。 - **2) 環境變量** 所有的程序,包括shell啟動的程序,都能訪問環境變量,有些程序需要環境變量來保證其正常運行。必要的時候shell腳本也可以定義環境變量。 - **3) shell變量** shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行 ## 3、shell字符串 **字符串是shell編程中最常用最有用的數據類型(除了數字和字符串,也沒啥其它類型好用了),字符串可以用單引號,也可以用雙引號,也可以不用引號。** 單引號字符串的限制: - 單引號里的任何字符都會原樣輸出,單引號字符串中的變量是無效的; - 單引號字串中不能出現單獨一個的單引號(對單引號使用轉義符后也不行),但可成對出現,作為字符串拼接使用。 ```shell your_name='runoob' str="Hello, I know you are \"$your_name\"! \n" echo -e $str ``` 輸出結果為 ```shell Hello, I know you are "runoob"! ``` 雙引號的優點: - 雙引號里可以有變量 - 雙引號里可以出現轉義字符 ### 拼接字符串 ```shell your_name="runoob" # 使用雙引號拼接 greeting="hello, "$your_name" !" greeting_1="hello, ${your_name} !" echo $greeting $greeting_1 # 使用單引號拼接 greeting_2='hello, '$your_name' !' greeting_3='hello, ${your_name} !' echo $greeting_2 $greeting_3 輸出結果為 hello, runoob ! hello, runoob ! hello, runoob ! hello, ${your_name} ! ``` ### 獲取字符串長度 ```shell string="abcde" echo ${#string} #輸出 5 ``` ### 提取子字符串 ```shell #參數1表示從索引1處開始提取 參數4表示截取4個字符 string="runoob is a great site" echo ${string:1:4} # 輸出 unoo ``` ### 查找子字符串 ```shell #查找字符 i 或 o 的位置(哪個字母先出現就計算哪個): string="runoob is a great site" echo expr index "$string" io # 輸出 4 ``` ## 4、shell數組 ### 創建數組 ```shell array_name=(value0 value1 value2 value3) array_name[0]=value0 array_name[1]=value1 array_name[n]=valuen 可以不使用連續的下標,而且下標的范圍沒有限制。 ``` ### 讀取數組 ```shell #使用 @ 符號可以獲取數組中的所有元素 echo ${array_name[@]} ``` ### 獲取數組長度 ```shell #*或@都可以 echo ${#array_name[*]} ``` ### 獲取數組單個元素長度 ```shell #獲取第n個數組元素的長度 echo ${#array_name[n]} ``` ## 5、傳遞參數 ```shell #$0為執行的文件名 $n為第n個參數 echo "執行的文件名:$0"; echo "第一個參數為:$1"; echo "第二個參數為:$2"; echo "第三個參數為:$3"; echo "傳遞到腳本的參數個數:$#"; #使用""將$*括起來傳的參數等價于一個參數"a b c" #使用""將$@括起來傳的參數等價于三個參數"a""b""c" echo "顯示所有向腳本傳遞的參數:"$*""; echo "腳本運行的當前進程ID號:$$"; echo "后臺運行的最后一個進程的ID號:$!"; echo "顯示shell使用的當前選項:$-"; echo "顯示最后命令的退出狀態0表示無錯誤:$?"; ``` ## 6、運算符 1.expr是一款表達式計算工具 2.表達式和運算符之間必須要有空格 3.完整的表達式要被``包含而不是單引號 ```shell val=`expr 2 + 2` echo "兩數之和為 : $val" ``` ### 算術運算符 ```shell a=10 b=20 val=`expr $a + $b` echo "a + b : $val" val=`expr $a - $b` echo "a - b : $val" #乘號做運算時需在前邊加上\ val=`expr $a \* $b` echo "a * b : $val" #a/b結果為0 val=`expr $b / $a` echo "b / a : $val" val=`expr $b % $a` echo "b % a : $val" #if與括號與變量間全都要加上空格 if [ $a == $b ] then echo "a 等于 b" fi if [ $a != $b ] then echo "a 不等于 b" fi ``` ### 關系運算符 ```shell :<<EOF -eq:檢測兩個數是否相等,相等返回 true -ne:檢測兩個數是否不相等,不相等返回 true -gt:檢測左邊的數是否大于右邊的 -lt:檢測左邊的數是否小于右邊的 -ge:檢測左邊的數是否大于等于右邊的 -le:檢測左邊的數是否小于等于右邊的 EOF a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi ``` ### 邏輯運算符 ```shell #-O 邏輯或運算 || 短路或 #-a 邏輯與運算 && 短路與 a=10 b=20 if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a == $b: a 等于 b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a 小于 100 且 $b 大于 15 : 返回 true" else echo "$a 小于 100 且 $b 大于 15 : 返回 false" fi if [[ $a -lt 100 || $b -gt 100 ]] then echo "返回 true" else echo "返回 false" fi ``` ### 字符串運算符 ```shell :<<EOF =檢測字符串是否相等 != -z檢測字符串長度是否為0 為0返回true -n長度不為0返回true $ 檢測字符串是否為空 不為空返回true EOF a="abc" b="efg" if [ -n "$a" ] then echo "-n $a : 字符串長度不為 0" else echo "-n $a : 字符串長度為 0" fi ``` ### 文件測試運算符 ```shell :<<! 文件測試運算符 -b 檢測文件是否是塊設備文件 -c 檢測文件是否是字符設備文件 -d 檢測文件是否是目錄 -f 檢測文件是否是普通文件 -g 檢測文件是否設置了SGID位 -k 檢測文件是否設置了粘著位 -p 檢測文件是否是有名管道 -u 檢測文件是否設置了SUID位 -r 檢測文件是否可讀 -w 檢測文件是否可寫 -x 檢測文件是否可執行 -s 檢測文件是否為空 不為空返回true -e 檢測文件(包括目錄)是否存在 ! file="/root/桌面/test.sh" if [ -r $file ] then echo "文件可讀" else echo "文件不可讀" fi if [ -w $file ] then echo "文件可寫" else echo "文件不可寫" fi if [ -x $file ] then echo "文件可執行" else echo "文件不可執行" fi if [ -f $file ] then echo "文件為普通文件" else echo "文件為特殊文件" fi if [ -d $file ] then echo "文件是個目錄" else echo "文件不是個目錄" fi if [ -s $file ] then echo "文件不為空" else echo "文件為空" fi if [ -e $file ] then echo "文件存在" else echo "文件不存在" fi ``` ## 7、echo命令 ```shell #最外層雙引號可以省略 echo \"It is a test\" #read命令從標準輸入中讀取一行 并把每個字段的值指定給shell變量 #-p輸入提示文字 -n輸入字符長度限制 -t輸入限時 -s隱藏輸入內容 read -p "請輸入一段文字" -n 6 name echo "$name It is a test" #-e開啟轉義 -n換行 -c不換行 echo -e "OK! \n" echo "It is a test" #命令使用`` echo `date` ``` ## 8、printf命令 ```shell :<<! 轉義序列 \a 警告字符,通常為ASCII的BEL字符 \b 后退 \c 不顯示輸出結果中任何結尾的換行字符 \f 換頁 \n 換行 \r 回車 \t 水平制表符 \v 垂直制表符 \\ 一個字面上的反斜杠字符 \ddd 表示1到3位數八進制值的字符,僅在格式字符串中有效 \0ddd 表示1到3位的八進制值字符 ! printf "%-10s %-8s %-4s\n" 姓名 性別 體重kg printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234 printf "%-10s %-8s %-4.2f\n" 楊過 男 48.6543 printf "%-10s %-8s %-4.2f\n" 郭芙 女 47.9876 # format-string為雙引號 printf "%d %s\n" 1 "abc" # 單引號與雙引號效果一樣 printf '%d %s\n' 1 "abc" # 沒有引號也可以輸出 printf %s abcdef # 格式只指定了一個參數,但多出的參數仍然會按照該格式輸出,format-string 被重用 printf %s abc def printf "%s\n" abc def printf "%s %s %s\n" a b c d e f g h i j # 如果沒有 arguments,那么 %s 用NULL代替,%d 用 0 代替 printf "%s and %d \n" ``` ## 9、流程控制 ### if語句 ```shell a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "沒有符合的條件" fi ``` ### for循環 ? 當變量值在列表里,for循環即執行一次所有命令,使用變量名獲取列表中的當前取值。命令可為任何有效的shell命令和語句。in列表可以包含替換、字符串和文件名。in列表是可選的,如果不用它,for循環使用命令行的位置參數。 ```shell #一般格式 for var in item1 item2 ... itemN do command1 command2 ... commandN done #寫成一行 for var in item1 item2 ... itemN; do command1; command2… done; ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看