bashell基礎,bashell

來源:互聯網
上載者:User

bashell基礎,bashell

身為一個iOS程式員,雖然iOS相關技術十分重要,但是bash也是不可不瞭解的,因為技能的成長,除了深度,還需要廣度。下面就來介紹下bash。

Shell是C語言編寫的,所以他是解釋性語言,運行在Linux系統下,在Mac下,一般使用的是bashell。

bashell都是運行在Terminal下,本文的所有指令碼也都是運行在Terminal下的。

常用的命令列
pwd         //當前路徑ls -l          //列出目前的目錄下所有檔案mkdir TestFolder           //建立檔案夾touch file.txt file1.txt file2.txt           //建立3個檔案,空格分隔ls -l | grep txt | wc -l            //列出所有檔案,然後尋找檔案名稱包含txt的檔案,然後計算總共有多少個結果

 註:|就是將左邊的結果作為右邊的輸入

man  command  //man後面接命令則顯示該命令的所有協助資訊,再輸入q則返回history  //顯示之前輸入的所有曆史資訊clear    //清空所有行du 檔案    //顯示檔案大小cat 檔案    //顯示檔案內容less 檔案    //分頁顯示檔案內容,適合大檔案cp 檔案  新檔案    //複製檔案到新檔案mv 檔案  目錄    //移動檔案到目錄rm 檔案1 檔案2 檔案3    //刪除檔案1,檔案2,檔案3rm -rf /* 或者 rm -rf /    //刪除所有檔案,千萬不要執行這一句!!!!!千萬不要!!!!sudo su   //成為root使用者chomd +x 檔案    //給檔案執行許可權,在做shell的時候十分有用
wc -m << END    //從鍵盤讀入資料並統計讀入資料的大小,以END符號來結束ps -ef    //顯示所有進程列表top       //顯示進程動態列表kill 進程PID    //結束一個進程tar -cvf archive.tar file1.txt file2.txt file3.txt    //歸檔tar -xvf tutorial.tar    //解檔gzip tutorial.tar    //壓縮gunzip tutorial.tar.gz    //解壓縮unzip archive.zip    //解壓縮

基礎的命令列就介紹到這裡,下面開始shell

Shell基礎

在介紹shell之前,需要先瞭解vim

輸入vim,然後會進入操作介面,這個操作介面分三種模式:互動式,插入式,命令式。其中互動式和命令式我個人覺得比較接近,都是通過命令來作為輸入,區別是命令式需要先輸入:

我們先輸入

vim 檔案    //一般以.sh結尾,你用txt結尾也可以然後按下i,就進入插入模式了,就可以開始寫shell了

我們輸入一些代碼來分別講講基礎shell文法:

#指明運行shell的解譯器#!/bin/bash        #輸出文本echo "your name"     #格式化方式輸入文本printf "%d %s" 123 "abcds"   #從鍵盤輸入read PERSON        #列印輸入的內容echo "hello $PERSON"       #val是變數,expr是運算子,反引號表示val可以將內容先存到記憶體中,以後使用再將結果從記憶體中讀出來;等號左右都不能有空格,expr後面空格不能少val=`expr 2 + 2`    #$引用變數,雙引號和單引號用法相同,不過如果含有變數,要用雙引號  echo "value : $val"    #if文法,空格不能少;eq表示相等,fi表示if結束if [ 10 -eq 100 ]       then        echo "equal"else        echo "not equal"fi          file="test.sh"#-f 表示是否普通檔案if [ -f $file  ]      then        echo "ordinary file"else        echo "not ordinary file"fistring="79838924kfdsldjslfjdslfs"#字串長度echo ${#string}      #字串第1到5位,輸出98389echo ${string:1:5}   name[0]="a"name[1]="b"name[2]="c"#列印數組name的成員echo ${name[*]}   length=${#name[*]}#列印數組長度echo "array length is $length"    #for文法,./*是目前的目錄所有檔案,mm表示迴圈體內單個檔案for mm in ./*       do        echo $mmdone count=0#while文法結構, -lt表示less thanwhile [ $count -lt 5 ]     do        count=`expr $count + 1`        echo $countdone #case文法結構aNum=1case $aNum in    1)  echo 'abc'    ;;    *)  echo 'default'    ;;esac#shell函數,帶參數的寫法,$1表示第一個參數,$2表示第二個#注意,$10 不能擷取第十個參數,擷取第十個參數需要${10}。當n>=10時,需要使用${n}來擷取參數functionWithParam(){        echo "first param $1"        echo "second param $2"        return 123}#函數傳參functionWithParam 1 2#擷取函數傳回值ret=$?echo $ret#$#    傳遞給函數的參數個數#$*    顯示所有傳遞給函數的參數#接收.sh的第一個參數option="${1}"    

當這些指令碼都輸入完畢以後,按下esc鍵,然後輸入:wq   表示儲存並退出vim的意思

然後輸入:

chmod +x test.sh   //給sh檔案以執行許可權

./test.sh    //開始執行指令碼 ./為執行路徑,如果你的指令碼放在/bin, /sbin, /usr/bin,/usr/sbin等PATH裡,才可以省略./

如果想要調試執行,則輸入:

bash -x test.sh

 

基本的命令列和基本的bash就介紹到這裡

 

參考文章:

http://www.jianshu.com/p/7c3a4f56f671

http://c.biancheng.net/cpp/view/6994.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.