亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

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

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

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

相關(guān)文章

  • 詳解adb shell 常用命令

    詳解adb shell 常用命令

    這篇文章主要介紹了詳解adb shell 常用命令,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • git 刪除分支和回滾的實(shí)例詳解

    git 刪除分支和回滾的實(shí)例詳解

    這篇文章主要介紹了git 刪除分支和回滾的實(shí)例詳解的相關(guān)資料,希望通過(guò)本文大家能理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-09-09
  • 一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn)

    一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn)

    這篇文章主要介紹了一個(gè)Shell小腳本精準(zhǔn)統(tǒng)計(jì)Mysql每張表的行數(shù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 建立基于虛擬用戶的VSftpd服務(wù)

    建立基于虛擬用戶的VSftpd服務(wù)

    這篇文章主要介紹了建立基于虛擬用戶的VSftpd服務(wù)的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • Shell腳本讀取標(biāo)準(zhǔn)ini配置文件Demo

    Shell腳本讀取標(biāo)準(zhǔn)ini配置文件Demo

    這篇文章主要介紹了Shell腳本讀取標(biāo)準(zhǔn)ini配置文件Demo,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • cpu時(shí)鐘預(yù)取實(shí)例代碼分享

    cpu時(shí)鐘預(yù)取實(shí)例代碼分享

    cpu時(shí)鐘預(yù)取實(shí)例代碼分享,大家參考使用吧
    2013-12-12
  • Shell腳本自動(dòng)備份MySQL到FTP并定期清理過(guò)期備份

    Shell腳本自動(dòng)備份MySQL到FTP并定期清理過(guò)期備份

    這篇文章主要介紹了Shell腳本自動(dòng)備份MySQL到FTP并定期清理過(guò)期備份,本文中的腳本同時(shí)實(shí)現(xiàn)了定期清理舊備份數(shù)據(jù)的功能,這是一大特色,需要的朋友可以參考下
    2014-12-12
  • GitBook 制作電子書詳細(xì)教程

    GitBook 制作電子書詳細(xì)教程

    本文主要介紹GitBook如何制作電子書,在使用過(guò)程中經(jīng)常出現(xiàn)的問(wèn)題以及解決辦法,希望能幫助到有需要的同學(xué)
    2016-07-07
  • linux目錄管理方法介紹

    linux目錄管理方法介紹

    這篇文章介紹了linux目錄管理的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)

    shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn)

    這篇文章主要介紹了shell腳本返回值及其使用場(chǎng)景的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05

最新評(píng)論