linux shell 學習__linux

來源:互聯網
上載者:User

Linux 常用命令

ls -F:目錄會顯示/

[root@milab ~]# ls -iFl總用量 12 69199780 -rw-------. 1 root root 1496 6月   8 2016 anaconda-ks.cfg 77471938 drwxr-xr-x. 2 root root    6 9月  18 21:49 svntest/ 74325841 -rw-r--r--. 1 root root    7 5月  31 20:03 wer  1455733 drwxr-xr-x. 2 root root    6 6月   8 2016 公用/103304633 drwxr-xr-x. 2 root root    6 6月   8 2016 模板/  1455734 drwxr-xr-x. 2 root root    6 6月   8 2016 視頻/103304634 drwxr-xr-x. 2 root root 4096 9月  30 2016 圖片/ 35680426 drwxr-xr-x. 2 root root    6 6月   8 2016 文檔/ 71066179 drwxr-xr-x. 2 root root    6 6月   8 2016 下載/ 71066180 drwxr-xr-x. 2 root root    6 6月   8 2016 音樂/ 35680425 drwxr-xr-x. 2 root root   41 9月   1 2016 案頭/

[root@milab ~]# cat test.sh #/bin/bashecho "input a:"read a echo "input b:"read b result=$[ $a + $b  ]echo "result:"$result

逐行查看 

set | more

shell 中單引號 列印所有字元,雙引號 可列印變數

[root@milab ~]# set |grep HISTHISTCONTROL=ignoredupsHISTFILE=/root/.bash_historyHISTFILESIZE=1000HISTSIZE=1000

PS1 定製命令提示字元的樣式

PS1=[root@milab ~ 21:23:12]#  PS1='[\u@\h \w \t]\$ 'PS1=[root@milab ~ 21:23:23]# cd /PS1=[root@milab / 21:23:28]# cd /usr/src/PS1=[root@milab /usr/src 21:23:38]#

自訂變數只能在目前使用者的當前shell中生效 想升級當前shell生效需要 export ,永久生效需修改profile

echo  "PS1='[\u@\h \t \w]\$ '">>/etc/profilesource /etc/profile

[root@milab 22:03:20 /]# ls -l /dev/std*lrwxrwxrwx. 1 root root 15 10月 21 20:46 /dev/stderr -> /proc/self/fd/2    //2> 錯誤輸出lrwxrwxrwx. 1 root root 15 10月 21 20:46 /dev/stdin -> /proc/self/fd/0//1> 正確輸出lrwxrwxrwx. 1 root root 15 10月 21 20:46 /dev/stdout -> /proc/self/fd/1

[root@milab 22:08:22 ~]# ccc 2>err  //[root@milab 22:08:38 ~]# cat err bash: ccc: 未找到命令...相似命令是: 'cc'[root@milab 22:08:42 ~]# bbb 2>>err[root@milab 22:08:54 ~]# cat errbash: ccc: 未找到命令...相似命令是: 'cc'bash: bbb: 未找到命令...

[root@milab 22:10:49 ~]# ls test.sh 1>suc[root@milab 22:10:54 ~]# cat suc test.sh

[root@milab 22:14:41 /usr/src]# find /usr/src/ 123 1>suc 2>err[root@milab 22:15:08 /usr/src]# cat suc/usr/src//usr/src/debug/usr/src/kernels/usr/src/suc/usr/src/err[root@milab 22:15:11 /usr/src]# cat err find: ‘123’: 沒有那個檔案或目錄[root@milab 22:15:17 /usr/src]# find /usr/src/ 123 >all 2>&1[root@milab 22:15:47 /usr/src]# cat all /usr/src//usr/src/debug/usr/src/kernels/usr/src/suc/usr/src/err/usr/src/allfind: ‘123’: 沒有那個檔案或目錄[root@milab 22:15:50 /usr/src]# find /usr/src/ 123 &>all1[root@milab 22:16:42 /usr/src]# cat all1/usr/src//usr/src/debug/usr/src/kernels/usr/src/suc/usr/src/err/usr/src/all/usr/src/all1find: ‘123’: 沒有那個檔案或目錄

[root@milab 22:34:20 /bin]# expr length "12345678"8
字串匹配

[root@milab 22:37:51 /bin]# str="abcdefffff"[root@milab 22:40:36 /bin]# echo $sr [root@milab 22:40:44 /bin]# echo $strabcdefffff[root@milab 22:40:47 /bin]# expr substr "$str" deexpr: 語法錯誤[root@milab 22:41:07 /bin]# expr substr "$str" 3expr: 語法錯誤[root@milab 22:41:25 /bin]# expr substr "$str" 3 5cdeff[root@milab 22:41:36 /bin]# str="abcdefffff"[root@milab 22:41:42 /bin]# expr substr "$str" 3 5cdeff[root@milab 22:41:44 /bin]# expr $str: cdeffexpr: 語法錯誤[root@milab 22:43:09 /bin]# expr $str :cdeffexpr: 語法錯誤[root@milab 22:43:18 /bin]# expr $str : cdeff0[root@milab 22:43:20 /bin]# expr $str : '.*'// 單引號中Regex10

[root@milab 22:47:23 /bin]# n1=10[root@milab 22:49:19 /bin]# n2=11[root@milab 22:49:24 /bin]# n3=10[root@milab 22:49:27 /bin]# expr $n1 < $n2bash: 11: 沒有那個檔案或目錄[root@milab 22:49:43 /bin]# expr $n1 \< $n21[root@milab 22:49:48 /bin]# expr $n1 \= $n20[root@milab 22:49:53 /bin]# expr $n1 \= $n31[root@milab 22:49:56 /bin]# expr $n1 == $n31[root@milab 22:50:00 /bin]# expr $n1 == 101[root@milab 22:50:47 /bin]# re=$[ $n1 == 10][root@milab 22:51:21 /bin]# echo $re1[root@milab 22:51:27 /bin]# re=$[ $n1 = 10]bash: 10 = 10: 嘗試給非變數賦值 (錯誤符號是 "= 10")[root@milab 22:51:37 /bin]# 

bc命令(實現浮點數計算)
[root@milab 22:52:59 /bin]# bcbc 1.06.95Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.This is free software with ABSOLUTELY NO WARRANTY.For details type `warranty'. 1*221.1*5.555556.11110   100/333scale=5100/333.33333quit
[root@milab 23:03:03 /bin]# resule=`bc<<EOFscale=4a1 = $v1 * $v2b1 = $v3 * $v1a1+b1EOF`[root@milab 23:03:27 /bin]# echo $bc [root@milab 23:03:38 /bin]# echo $resule6.16
函數使用
function fun1(){        echo "function1" }fun2(){        echo "function2"}fun1fun2
函數傳回值

echo "$?"  0 為正確執行,否則出錯
函數退出狀態代碼  

[root@milab 23:15:32 ~]# cat test.sh #/bin/bashfunction fun1{        echo "function1"        return 10}fun2(){        echo "function2"        return 20}fun1echo "$?" fun2echo "$?"value=`fun2`echo $value   #輸出fun2的文本  function2[root@milab 23:15:41 ~]# ./test.sh function110function220function2


函數參數的處理:  $# 參數個數; $1  第一個參數  $2 第二個參數

[root@milab 23:23:07 ~]# cat test2.sh #!/bin/bash add(){        if [ $# -eq 2 ];then                result=$[ $1 + $2]                echo $result        else                echo "please input 2 parame"                return 1        fi} value=`add $1 $2`if [ $? -eq 0 ];then        echo $valueelse         echo "ERR:$value"fi[root@milab 23:23:23 ~]# ./test2.sh 1ERR:please input 2 parame[root@milab 23:23:29 ~]# ./test2.sh 1 23[root@milab 23:23:31 ~]# 

引用函數庫

source  檔案路徑  或者  . 檔案路徑  或者在指令碼中加入。

shell 的風格,用倒序的字母單詞和 正序的單詞配對。
比如 if 語句, 結束時用 fi 來配對
esac是和case配對的,是多路分支的語句







相關文章

聯繫我們

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