linux shell入門

來源:互聯網
上載者:User

標籤:linux shell

第一個shell指令碼
  • 程式

    #!/bin/sh       #第一行統一這樣寫echo ‘abc‘      #輸出abc
  • 運行(是因為目錄不對)

    [email protected]:~$ test.shtest.sh: command not found
  • 方案一

    [email protected]:~$ sh test.shabc
  • 方案二(沒有許可權)

    [email protected]:~$ ~/test.sh -bash: /home/liuil/test.sh: Permission denied
  • 方案二問題解決(賦予許可權後再執行即可)

    [email protected]:~$ chmod u+x test.sh
變數
  • 例子

    [email protected]:~$ vim test.sh#!/bin/shi=0             #變數名由字母數字底線組成,不能數字開頭echo ‘$i‘       #單引號不解析echo "$i"       #雙引號解析echo ${i}1234echo $PATH      #環境變數echo $(date)echo `date`echo $1         #位置變數echo $2
  • 結果

    [email protected]:~$ sh test.sh hello world$i001234/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/gamesFri Jan 2 09:35:27 CST 2015Fri Jan 2 09:35:27 CST 2015
  • 位置變數

date函數的使用
  • 顯示目前時間

    [email protected]:~$ date +%Y-%m-%d_%H:%M:%S2015-01-02_19:00:42
  • 顯示目前時間與自1970-01-01 00:00:00以來的秒數差

    [email protected]:~$ date +%s1420196538
  • 指定時間輸出

    [email protected]:~$ date --date=‘2009-01-01 11:11:11‘Thu Jan  1 11:11:11 CST 2009[email protected]:~$ date --date=‘3 days ago‘Tue Dec 30 19:04:22 CST 2014
  • 時間格式

    %%    一個文字的 %%a    當前locale 的星期名縮寫(例如: 日,代表星期日)%A    當前locale 的星期名全稱 (如:星期日)%b    當前locale 的月名縮寫 (如:一,代表一月)%B    當前locale 的月名全稱 (如:一月)%c    當前locale 的日期和時間 (如:2005年3月3日 星期四 23:05:25)%C    世紀;比如 %Y,通常為省略當前年份的後兩位元字(例如:20)%d    按月計的日期(例如:01)%D    按月計的日期;等於%m/%d/%y%e    按月計的日期,添加空格,等於%_d%F    完整日期格式,等價於 %Y-%m-%d%g    ISO-8601 格式年份的最後兩位 (參見%G)%G    ISO-8601 格式年份 (參見%V),一般只和 %V 結合使用%h    等於%b%H    小時(00-23)%I    小時(00-12)%c    按年計的日期(001-366)%k    時(0-23)%l    時(1-12)%m    月份(01-12)%M    分(00-59)%n    換行%N    納秒(000000000-999999999)%p    當前locale 下的"上午"或者"下午",未知時輸出為空白%P    與%p 類似,但是輸出小寫字母%r    當前locale 下的 12 小時時鐘時間 (如:11:11:04 下午)%R    24 小時時間的時和分,等價於 %H:%M%s    自UTC 時間 1970-01-01 00:00:00 以來所經過的秒數%S    秒(00-60)%t    輸出定位字元 Tab%T    時間,等於%H:%M:%S%u    星期,1 代表星期一%U    一年中的第幾周,以周日為每星期第一天(00-53)%V    ISO-8601 格式規範下的一年中第幾周,以周一為每星期第一天(01-53)%w    一星期中的第幾日(0-6),0 代表周一%W    一年中的第幾周,以周一為每星期第一天(00-53)%x    當前locale 下的日期描述 (如:12/31/99)%X    當前locale 下的時間描述 (如:23:13:48)%y    年份最後兩位元位 (00-99)%Y    年份%z +hhmm              數字時區(例如,-0400)%:z +hh:mm            數字時區(例如,-04:00)%::z +hh:mm:ss        數字時區(例如,-04:00:00)%:::z                 數字時區帶有必要的精度 (例如,-04,+05:30)%Z                    按字母表排序的時區縮寫 (例如,EDT)
標準輸入輸出
    0表示標準輸入,1表示標準輸出,2表示錯誤    [email protected]:~$ ls 1>a.txt    [email protected]:~$ ls    a.txt    devProgram  Downloads         Music     Public     test.sh    Desktop  Documents   examples.desktop  Pictures  Templates  Videos    [email protected]:~$ more a.txt     a.txt    Desktop    devProgram    Documents    Downloads    examples.desktop    Music    Pictures    Public    Templates    test.sh    Videos
定時任務
  • 編輯定時任務

    crontab  -e
  • 查看定時任務

    crontab -l
  • 定時任務樣本

    一共6列,分別是:分 時 日 月 周 命令* * * * * date>~/date.txt           #每分鐘執行一次0,15,30,45 * * * * date>~/date.txt  #每15分鐘一次
判斷和迴圈
  • if

    [email protected]:~$ vim test.sh#!/bin/shif [ ‘a‘=‘a‘ ]then echo ‘=‘fi[email protected]:~$ sh test.sh =
  • for(在ubuntu下可能會失敗,需要 sudo dpkg-reconfigure dash 選擇no)

    #!/bin/shfor ((i=0;i<3;i++))do  echo $idone[email protected]:~$ ~/test.sh 012
函數
  • 最後一行語句是預設返回值
  • 引用自訂函數檔案時,使用source func.sh

    #!/bin/shfunction dayAgo(){        date --date="$1 days ago" +%Y-%m-%d}dayAgo 3[email protected]:~$ sh test.sh 2014-12-30
  • 查看函數

    [email protected]:~$ man dateDATE(1)                          User Commands                         DATE(1)NAMEdate - print or set the system date and time

linux shell入門

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.