最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

shell腳本學(xué)習(xí)與總結(jié)

 更新時間:2013年01月28日 14:33:01   投稿:mdxy-dxy  
shell腳本學(xué)習(xí)和總結(jié),東西很多,供初學(xué)者參考

1.shell 腳本是區(qū)分小寫的
2.Unix特殊字符有: ( ; $ ? & * () [] ` ‘ “ + 使用其時要進行轉(zhuǎn)義()
3.Shell的注釋以#開頭
4.函數(shù)的定義
Function fuction_name(){
Command to execute
}
調(diào)用時直接用function_name.
5.控制結(jié)構(gòu)
1)If...then語句
If [ test_command ]
Then
Commands
if
2)If...then...else語句
If [ test_command ]
Then
Commands
Else
commands
if
3)If...then...elif...then...(else)語句
If [ test_command ]
Then
Commands
Elif [ test_command ]
Then
Commands
Else
Commands
Fi
4)for ... In語句
For loop_varible in argument_list
Do
Commands
done
5)while語句
While test_command_is_true
Do
Commands
Done
6)until 語句
Until test_command_is_true
Do
Commands
Done
7)case語句
Case $variable in
Match_1)
Commands_for_1
;;
Match_2)
Commands_for_2
;;
.
.
.
*) #option for other values
Commands_for_no_match
;;
esac
6.break、continue、exit和return語句
Break跳出整個循環(huán)體,然后執(zhí)行循環(huán)體外接下來的代碼;
Continue 結(jié)束本次循環(huán),繼續(xù)下次循環(huán);
Exit 退出整個腳本,一般在其后加入一個整數(shù)(如exit 0),作為返回代碼發(fā)送給系統(tǒng);
Return 用于在函數(shù)中返回數(shù)據(jù),或返回一個結(jié)果給調(diào)用函數(shù)
7.here文檔
用于將輸入重定向到某個交互式shell腳本或程序,而不需要用戶介入。
Program_name << LABLE
Program_input_1
Program_input_2
.
.
Program_input_#
LABLE
注意,程序輸入行中的LABLE標(biāo)記之間是沒有空白的,且輸入的必須是程序所期望的準(zhǔn)確數(shù)據(jù),否則可能會失效。
8.符號命令
( )  在一個子shell中運行括號所括起來的命令
(( ))  在某個shell中對變量進行求值和賦值,并進行數(shù)學(xué)
$(( )) 對括起來的表達式進行求值
[ ]   與test命令相同
[[ ]]  用于字符串比較
$( )   命令替換
` `    命令替換
9.命令行參數(shù)
命令行參數(shù)$0,$1,$2,...,$9是位置參數(shù),$0指向的是命令本身。
命令shift用于位置參數(shù)向左移動,如shift命令命令$2成為$1。Shift加入一個數(shù)字來移動多個位置,如shift 3使得$4成為$1。shift是一種按照參數(shù)列出順序來處理每個位置參數(shù)的良好方式。
10.特殊參數(shù)
$* 指定所有的命令行參數(shù),與$@的意義一樣。兩者只有在加雙引號時意義不同,如
“$*”將整個參數(shù)列表作為一個參數(shù)來獲取,”$@”獲取整個參數(shù)列表,并將它分隔成不同的參數(shù)。
$? 檢查返回代碼。一個成功執(zhí)行完的命令返回代碼為0,不成功是一個非0值。
11.雙引號,單引號和 `(esc下面的按鍵)
單引號’’對內(nèi)容進行全引用,也就是說,對變量工命令語句使用文字正文,不進行任何替換;而雙引號則進行部分引用,則允許字符替換或命令替換。
`(esc下面的按鍵)用于執(zhí)行某個命令或腳本并替換其輸出結(jié)果,即命令替換,相同功能有$( )。此外,如果希望每次使用某個變量時重新讀取它的值,也可使用它,如`$PWD`,則每次使用這個變量時都會重新讀取它的新值。
12.文件權(quán)限和粘滯位(suid,sgid)
文件權(quán)限有讀,寫,執(zhí)行三種權(quán)限。將文件操作模式設(shè)為總是作為某個特定的用戶(suid),或總是作為某個特定的組成員(sgid)來執(zhí)行稱為設(shè)置粘滯位。可以用命令chmod進行修改文件權(quán)限。
13.在遠程主機上運行命令
Ssh user@hostname command_to_execute
如:ssh jack@192.168.1.3 “uptime”
14.設(shè)置陷阱
當(dāng)某個程序中止時,會有一個退出信號,這個信號稱為一個陷阱(trap)。這樣我們可以在捕捉到退出信號時執(zhí)行命令,如捕獲到退出信號1,2,3,15時退出:
Trap `echo “nEXITTING on a TRAPPED SINGAL”; exit` 1 2 3 15
注意不能捕獲到kill -9.的退出信號。
15.查看用戶信息
Who 提供每個登錄用戶的用戶名、tty、登錄時間及用戶登錄地(IP)
W 對who的擴展,包括作業(yè)進程時間,總用戶進程時間等,但沒有用戶登錄地信息。
Last 顯示自wtmp文件創(chuàng)建開始登錄過的用戶名單信息,包括登錄時間,退出時間,tty等。
    16.ps命令
顯示當(dāng)前系統(tǒng)進程的信息。
17.與用戶通信
Wall,rwall,write,talk
18.大小寫文本
用tr或typeset命令。
VALUES = “AFCDLD”
Echo $VALUES | tr ‘[A-Z]’ ‘[a-z]’  #將大寫轉(zhuǎn)換成小寫;tr ‘[a-z]’ ‘[A-Z]’則小寫轉(zhuǎn)換成大寫

在VALUES前使用
Typeset -l VALUES  #將大寫轉(zhuǎn)換成小寫;typeset -u 則小寫轉(zhuǎn)換成大寫。
19.定時運行腳本cron
Crontab -e進入用戶cron表添加定時腳本,如
在1月15日星期天0:12執(zhí)行腳本/usr/bin/test.sh
#分(0-59) 時(0-23)日(1-31) 月(1-12) 星期(0-6for Sunday-saturday) 
12 0 15 1 0 /usr/bin/test.sh
定時任務(wù)還可作用at命令。
20.輸出控制
靜默運行,即不輸出任何內(nèi)容到屏幕上: 2>&1 > /dev/null
輸出到系統(tǒng)指定的控制臺: > /dev/console
21.解析命令行參數(shù)getopts
Getopts optionstring VARIABLE
Optionstring 是所需的各種參數(shù),用冒號隔開,如果不需要參數(shù),則冒號可以省略。如果optionstring前有一個冒號,則任何未匹配到時會在VARIBLE中加載一個?號
使用getopts的作用是解析出參數(shù),然后作用此參數(shù)做不同的操作。如:
While getopts :s:m:h:d:p: TM

Case $TM in
S)
Do something
;;
M)
Do something
;;
.
.
.
?)
Exit 1
;;
Esac
22.逐行處理文件
While read LINE
Do
Echo “$LINE”
Done <$FILENAME
23.作用select命令創(chuàng)建菜單
Select menu in Yes No Quit
Do
Case $menu in
Yes)
Do something
;;
No)
Do something
;;
Quit)
Break
;;
*)
Do something
;;
Esac
done

shell腳本學(xué)習(xí)

1,設(shè)置運行環(huán)境

在腳本的頂部寫入:#!/bin/bash2,SHELL中變量與賦值str=hello  
linux中變量不需定義,要用時直接賦值使用。如:str,注意等號兩邊不能有空格str=`ls -l /tmp/sh`  如果要把某個命令的執(zhí)行結(jié)果賦給某個變量時,=號右邊要用``括起來
echo "$str"  
查看變量的值,此處結(jié)果為:hello3,從鍵盤輸入字符或數(shù)值賦給指定的變量read name   如:從鍵盤輸入lishi,則name的值為:lishi4,"",'',``雙引號,單引號,倒引號之間區(qū)別
echo "my name is $name"
顯示字符串,但含有轉(zhuǎn)義字符引用其變量的值。例中結(jié)果:my name is tom
echo 'my name is $name'
把單引號中的內(nèi)容原樣顯示出來,結(jié)果:my name is $name
echo `ls -l`  
把倒引號中字符當(dāng)作命令來執(zhí)行,并把執(zhí)行結(jié)果顯示出來。5,加,減,乖,除,求模運算。注意要用倒引號括起來
expr `5 + 4`
expr `5 - 4`
expr `5 \* 4`
expr `5 / 4`
expr `5 % 4`
如果是在腳本里面進行運算時,倒引號要包括=號右邊全部內(nèi)容。如:sum=0sum=`expr $sum + 1`6,對文本操作的命令

less 能上下翻
more 能一屏一屏的翻
head 看文本的頭10行  參數(shù)-n 5 表示只顯示頭5行
tail 看文本的尾10行,加 -f參數(shù),能實時看日志文件的變化。如看tomcat日志文件變化。tail -f /usr/tomcat/logs/canitsl.out

參數(shù)-n 5 表示只顯示頭5行7,$?表示上一個命令是否正確執(zhí)行,0表示正常,1表示錯誤
ls /tmp/hello,如果/tmp/下沒有hello這個文件或目錄。則$?為1,反之為08,./test lishi wangwu
$0程序名,$1第一個參數(shù)的名稱,例中$0為test
$*參數(shù)組成的字符串,例中$*為lishiwangwu
$#傳遞給程序參數(shù)的總數(shù)目,例中$#為29,linux中變量分為全局環(huán)境變量和用戶配置變量
全局環(huán)境變量針對系統(tǒng)中所有用戶而設(shè)置的工作環(huán)境目錄,在/etc/profile中
用戶配置變量針對某一用戶的。在用戶登錄的目錄下,.bash_profile中10,重定向重定向就是改變原來輸入輸出的方向,默認都是屏幕輸出設(shè)備,鍵盤是輸入設(shè)備。“>”是輸出重定向符。“<”是輸入重定向符。“>”只存放正確的信息,“2>”存放錯誤的信息,每次存入前都會把之前文件內(nèi)容清空再放入如:ls /usr > /tmp/aaa   把/usr目錄下的所有文件和文件夾名稱信息放到期/tmp/aaa文件中。
如:ls /test 2> /tmp/aaa  如果沒有/test文件夾,這時就會發(fā)生錯誤,那么2>就會把錯誤信息存入aaa文件中。
“>”能創(chuàng)建新文件,如:>hello.java
“>”能清空一個文件 如hello.java文件中有內(nèi)容,我再>hello.java這時,hello.java內(nèi)容清空“>>”雙大于號在一起就變成了追加功能,在之前的文件內(nèi)容后面追加內(nèi)容。如:cat /tmp/sh >> /tmp/aaa   把/tmp/sh目錄中的所有文件和目錄信息追加到aaa文件中。aaa文件之前的內(nèi)容不會被清除。cat > hello.java時,能在屏幕上輸入很多的內(nèi)容,按ctrl+D時就會退出。再cat hello.java時
剛才輸入的內(nèi)容,全在hello.java文件中11,輸入重定向如:cat > a.txt <<EEE,從屏幕上輸入內(nèi)容到a.txt中,直到輸入EEE時才結(jié)束!!!!像這種結(jié)合方式,經(jīng)常被用在自動執(zhí)行記錄某些日志,或者寫入信息時用到。

相關(guān)文章

  • Shell腳本字符串單引號和雙引號的區(qū)別淺析

    Shell腳本字符串單引號和雙引號的區(qū)別淺析

    這篇文章主要介紹了Shell腳本字符串單引號和雙引號的區(qū)別淺析,,并羅列了一些字符串的操作方法,需要的朋友可以參考下
    2014-07-07
  • Linux查看端口、進程情況及kill進程的方法

    Linux查看端口、進程情況及kill進程的方法

    下面小編就為大家?guī)硪黄狶inux查看端口、進程情況及kill進程的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • Shell腳本批量重命名文件后綴的3種實現(xiàn)

    Shell腳本批量重命名文件后綴的3種實現(xiàn)

    這篇文章主要介紹了Shell腳本批量重命名文件后綴的3種實現(xiàn),本文分別使用find + xargs +sed、for循環(huán)、rename等3種方法實現(xiàn)重命名文件后綴,需要的朋友可以參考下
    2014-09-09
  • Shell腳本之進制轉(zhuǎn)換器的實現(xiàn)

    Shell腳本之進制轉(zhuǎn)換器的實現(xiàn)

    本文主要介紹了Shell腳本之進制轉(zhuǎn)換器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • Shell腳本實現(xiàn)獲取網(wǎng)頁快照并生成縮略圖

    Shell腳本實現(xiàn)獲取網(wǎng)頁快照并生成縮略圖

    這篇文章主要介紹了Shell腳本實現(xiàn)獲取網(wǎng)頁快照并生成縮略圖,本文獲取網(wǎng)頁快照使用phantomjs、生成縮略圖使用ImageMagick,需要的朋友可以參考下
    2015-02-02
  • 一個測試下載速度的shell腳本

    一個測試下載速度的shell腳本

    這篇文章主要介紹了一個測試下載速度的shell腳本,需要的朋友可以參考下
    2014-03-03
  • 進程狀態(tài)ps -ef中的e、f含義講解

    進程狀態(tài)ps -ef中的e、f含義講解

    這篇文章主要介紹了進程狀態(tài)ps -ef中的e、f含義講解,通過本文學(xué)習(xí)我們知道-e和-A都顯示有關(guān)其他用戶進程的信息,包括那些沒有控制終端的進程,-f顯示用戶id,進程id,父進程id,最近CPU使用情況,進程開始時間等等,具體含義及更多命令跟隨小編通過本文學(xué)習(xí)
    2022-11-11
  • Linux下Shell編程之sed命令的用法詳解

    Linux下Shell編程之sed命令的用法詳解

    sed(stream?editor)是一種流編輯器,它能夠?qū)ξ谋具M行過濾和轉(zhuǎn)換,sed?非常適合于在管道中處理文本數(shù)據(jù),下面小編來和大家聊聊它的具體用法吧
    2025-01-01
  • Shell腳本傳遞參數(shù)的4種方式實例說明

    Shell腳本傳遞參數(shù)的4種方式實例說明

    Shell腳本是一種命令語言,可以用于自動化執(zhí)行各種任務(wù),在腳本中,我們可以通過參數(shù)來傳遞信息,本文將介紹如何在shell腳本中傳遞參數(shù),包括位置參數(shù)、特殊變量、環(huán)境變量和命名參數(shù),需要的朋友可以參考下
    2023-06-06
  • linux 中more、less 和 most 的區(qū)別

    linux 中more、less 和 most 的區(qū)別

    more 是一個老式的、基礎(chǔ)的終端分頁閱讀器,它可以用于打開指定的文件并進行交互式閱讀。這篇文章主要給大家介紹linux 中more、less 和 most 的區(qū)別,感興趣的朋友跟隨小編一起看看吧
    2018-11-11

最新評論

岗巴县| 嘉鱼县| 曲水县| 萍乡市| 兴国县| 陆良县| 乐业县| 万盛区| 镇原县| 临汾市| 巴里| 襄汾县| 武宁县| 行唐县| 灵璧县| 安乡县| 红安县| 会东县| 嘉荫县| 邯郸县| 北海市| 含山县| 文水县| 乐都县| 五莲县| 汉阴县| 石柱| 济南市| 长沙县| 萝北县| 宁夏| 于都县| 汤原县| 大庆市| 新河县| 安多县| 西乌珠穆沁旗| 突泉县| 巩留县| 宁晋县| 靖远县|