版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
復(fù)習(xí)
2023/2/311.3Linux操作環(huán)境-8Linux文件類型流式文件,即把文件的內(nèi)容看做是一系列有序的無格式的字節(jié)流。普通文件普通文件指的是計算機用戶和操作系統(tǒng)用于存放數(shù)據(jù)、程序等信息的文件。文本文件,基于字符編碼的文件,ASCII,UNICODE,UTF-8,GBK,GB2312,GB18030.二進制文件,基于值編碼的文件,由具體的應(yīng)用程序指定或區(qū)分某個值是什么意思目錄文件鏈接文件,又稱符號鏈接文件。設(shè)備文件,Linux系統(tǒng)把每一種I/O設(shè)備映射為一個設(shè)備文件。(命名)管道文件,又稱先進先出(FIFO)文件,主要用于在進程間傳遞數(shù)據(jù)。如何查看文件類型?ls-l-,d,l,b,c,分別代表普通、目錄、鏈接、塊設(shè)備、字符設(shè)備22023/2/3leo@leo-VirtualBox:~$ls-l/bin總用量8632-rwxr-xr-x1rootroot9207884月32012bash-rwxr-xr-x1rootroot3021612月152011bunzip2-rwxr-xr-x1rootroot16396724月142012busybox-rwxr-xr-x1rootroot3021612月152011bzcatlrwxrwxrwx1rootroot66月222014bzcmp->bzdiff…leo@leo-VirtualBox:~$ls-l/dev總用量0brw-rw1rootdisk8,09月615:33sdacrw-rw-rw-1roottty5,09月615:33ttydrwxr-xr-x2rootroot809月615:33bsgcrwT1rootroot10,2349月615:33btrfs-controldrwxr-xr-x3rootroot609月615:33bus1.3Linux操作環(huán)境-93Linux的文件訪問權(quán)限3類用戶文件所有者,組用戶,其他用戶3種權(quán)限讀,寫,執(zhí)行用戶與權(quán)限的組合3種特殊權(quán)限SUID,SGID,Stickybitleo@leo-VirtualBox:~$ls-l/etc/shadow-rw-r1rootshadow118510月232014/etc/shadowleo@leo-VirtualBox:~$ls-l/usr/bin/passwd-rwsr-xr-x1rootroot412844月92012/usr/bin/passwdleo@leo-VirtualBox:~$ls-l-d/tmpdrwxrwxrwt9rootroot40969月620:49/tmpmanLinux的系統(tǒng)手冊基本用法:man[選項][章節(jié)]手冊頁…man–i1Ls9個章節(jié)命令文檔一般都保存在/usr/share/man目錄或其子目錄下$man-wls/usr/share/man/man1/ls.1.gz2.1
獲取幫助2023/2/34man顯示一個man手冊頁有哪些章節(jié)在所有手冊頁中查找指定的關(guān)鍵字$man-fmanman(7)-macrostoformatmanpagesman(1)-aninterfacetotheon-linereferencemanuals$man-ksprintfasprintf(3)-printtoallocatedstringsprintf(3)-formattedoutputconversionvasprintf(3)-printtoallocatedstringvsprintf(3)-formattedoutputconversion在文檔中瀏覽翻閱2.1
獲取幫助5管道Linux中很重要的一種通信方式。作用是把左邊命令1的輸出直接作為右邊命令2的的輸入。使用格式: 命令1|命令2$ls-l|wc-l2.2通配符、引號、管道和輸入輸出重定向2023/2/36輸入、輸出重定向三個標準文件0
標準輸入 鍵盤1
標準輸出 終端屏幕2
標準錯誤輸出
終端屏幕輸入重定向輸入可以不來自鍵盤,而來自一個指定的文件。格式: 命令<文件名$wc-l</etc/passwd2.2通配符、引號、管道和輸入輸出重定向2023/2/372023/2/32.6編輯文本文件vi“VisualInterface”的縮寫。類Unix系統(tǒng)中最常用的編輯器。vim:VIImproved.Linux下的vi命令實際是一個vim命令別名或到vim命令文件的符號連接。和一般文本編輯器的不同之處:多模式編輯器,尤其適合編碼。命令模式輸入模式末行模式8sort對文本文件的各行進行排序。文本的順序由系統(tǒng)所使用的字符集決定。格式: sort[option]…[file]…如果不指定文件,則排序內(nèi)容來自標準輸入。排序的比較操作是依據(jù)從每一行中提取的一個或多個字段來進行的。默認情況下,以空白字符分隔每個字段。2023/2/392.7文件內(nèi)容操作命令2.8文件的復(fù)制、移動、鏈接和歸檔cp選項-d 保留符號鏈接(拷貝鏈接本身)-f,--force 覆蓋目標文件并且不提示-i,--interactive 覆蓋前詢問-n 不覆蓋已存在的文件-p 保留文件的屬性--parents 復(fù)制前在目標目錄創(chuàng)建源文件路徑中的所有
目錄-R,-r,--recursive遞歸復(fù)制目錄-u,--update 只在源文件比目標文件新,或目標文件不存
在時才進行復(fù)制-v,--verbose 顯示詳細的進行步驟2023/2/310$cp*.txtsubdir/$mkdirrecurse$cp-rsubdir/recurse/$lsrecurse/subdir$lsrecurse/subdir/1.txt2.txt3.txtcreate_by_cat.txttosort2.txttosort.txt$cp-asubdir/archive$lsarchive/1.txt2.txt3.txtcreate_by_cat.txttosort2.txttosort.txt$mkdirother$cp-tother/1.txt3.txt$lsother1.txt3.txtmv將源文件重命名為目標文件,或?qū)⒃次募苿又林付夸洝8袷?mv[OPTION]...SOURCEDEST or mv[OPTION]...SOURCE...DIRECTORY or mv[OPTION]...-tDIRECTORYSOURCE...選項-f,--force 覆蓋前不詢問-i,--interactive 覆蓋前詢問-v,--verbose 顯示詳細信息示例$mv1.txtone.txt$ls-l1.txtone.txtls:1.txt:Nosuchfileordirectory.-rw-r--r--1leoleo32182012-09-2021:34one.txt$mv-f*.txtother/$lsother/1.txt2.txt3.txtcreate_by_cat.txtone.txttosort2.txttosort.txt112.8文件的復(fù)制、移動、鏈接和歸檔mv將源文件重命名為目標文件,或?qū)⒃次募苿又林付夸?。格?mv[OPTION]...SOURCEDEST or mv[OPTION]...SOURCE...DIRECTORY or mv[OPTION]...-tDIRECTORYSOURCE...選項-f,--force 覆蓋前不詢問-i,--interactive 覆蓋前詢問-v,--verbose 顯示詳細信息示例$mv1.txtone.txt$ls-l1.txtone.txtls:1.txt:Nosuchfileordirectory.-rw-r--r--1leoleo32182012-09-2021:34one.txt$mv-f*.txtother/$lsother/1.txt2.txt3.txtcreate_by_cat.txtone.txttosort2.txttosort.txt122.8文件的復(fù)制、移動、鏈接和歸檔133.2Shell變量變量的賦值與引用命名:由字母、數(shù)字或下劃線組成,并且只能以字母或下劃線開頭,大小寫的意義是不同的。弱類型的語言,變量存儲的一切值都是字符串。但是必要的時候,只要是由數(shù)值構(gòu)成的字符串,也可對其執(zhí)行數(shù)值操作。變量賦值的方式: 變量名=變量值“=”兩邊不能有任何空格;當變量值中包含空格時,應(yīng)為其加上引號。引用變量: $變量名$str="Hello,world"$echo$strHello,worldShell變量不需要預(yù)先定義,而且可以引用未賦過值的變量。14變量的賦值與引用$str='world!'$echoHello,$strHello,world!在字符串中可以引用變量,使其值成為本字符串的一部分。在變量名后面緊跟一個由非空白字符開始的字符串時,應(yīng)該用花括號“{}”將變量名括起來.$position=/usr/include/$cat${position}termio.h3.2Shell變量15命令替換將一個或多個命令的執(zhí)行結(jié)果賦值給變量兩種方式反引號$(…)$str=`pwd;who`$echo$str/home/leo/shleopts/162015-10-2422:27(:0)$position=$(pwd||who)$echo$position/home/leo/sh3.2Shell變量變量屬性聲明16使用內(nèi)部命令declare或typeset
限定變量的屬性。常用選項-r 只讀-i 整數(shù)-a 數(shù)組-f 函數(shù)-x 導(dǎo)出變量$declare-rSIZE=100$SIZE=20-bash:SIZE:readonlyvariable$n=20$n=n+30$echo$nn+30$declare-in$n=20$n=n+30$echo$n503.2Shell變量17變量引用操作符在引用變量時進行額外的判斷或替換操作。字符串替換${varname:-word}如果varname存在且非空串,則返回varname的值,否則返回word。作用: 如果變量未定義,則取默認值。$unsetstr$echo${str:-"blank"}blank$str="somecontent"$echo${str:-"blank"}somecontent3.2Shell變量18變量引用操作符模式匹配替換${varname%pattern}如果pattern匹配varname的尾部,則刪除最短匹配部分,并返回剩余部分,varname本身不變。$filepath=/home/alice/major.minor.ext$echo${filepath%.*}/home/alice/major.minor${varname%%pattern}如果pattern匹配varname的尾部,則刪除最長匹配部分,并返回剩余部分,varname本身不變。$filepath=/home/alice/major.minor.ext$echo${filepath%%.*}/home/alice/major3.2Shell變量19變量引用操作符模式匹配替換${variable/pattern/string}${variable//pattern/string}將varname的最長匹配部分替換為string,并返回替換后的串,varname本身不變。第一種格式僅替換第一次匹配的子串,第二種格式會替換所有匹配的子串。如果模式以“#”開頭,則意為必須匹配varname的首部,如果模式以“%”開頭,則意為必須匹配varname的尾部。如果string為空串,匹配部分將被刪除。如果varname為“@”或“*”,操作將被依次用于每個位置參數(shù),并且擴展為結(jié)果列表。$filepath=/home/alice/major.minor.ext$echo${filepath/alice/tom}/home/tom/major.minor.ext$echo$PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME/bin$echo-e${PATH//:/\n}/usr/local/sbinn/usr/local/binn/usr/sbinn/usr/binn/sbinn/binn/usr/gamesn$JAVA_HOME/bin$echo-e${PATH//:/"\n"}/usr/local/sbin/usr/local/bin/usr/sbin/usr/bin/sbin/bin/usr/games$JAVA_HOME/bin3.2Shell變量20位置參數(shù)和特殊變量位置參數(shù)也稱位置變量。運行Shell腳本程序時,命令行Shell傳遞給腳本的參數(shù),以及在Shell腳本程序中調(diào)用函數(shù)時傳遞給函數(shù)的參數(shù)。位置變量的名稱是以0,1,2,...這些整數(shù)命名的,相應(yīng)地以$0,$1,$2,…等進行引用。0對應(yīng)命令名(腳本名),1對應(yīng)第一個實參,2對應(yīng)第二個實參,...。cmd p1 p2 p3 p4… p10 p11$0 $1 $2 $3 $4… ${10} ${11}3.2Shell變量21條件測試test,文件屬性測試$[-d/tmp];echo$?0$[-w/etc/passwd];echo$?13.3控制結(jié)構(gòu)22if語法program3-6:if.sh#!/bin/bashecho'typeintheusername.'readuserifgrep$user/etc/passwd>/tmp/null&&who|grep$user;thenecho"$userhasloggedinthesystem."cp/tmp/null~/me.tmprm/tmp/nullelseecho"$userhasnotloggedinthesystem."fiif語句唯一可測試的內(nèi)容是命令退出狀態(tài),也就是說,測試條件是一或多條命令。if測試條件1;then命令組1[elif測試條件2];then
命令組2][else命令x]fi3.3控制結(jié)構(gòu)if測試條件1then命令組1[elif測試條件2]then
命令組2][else命令x]fi$sourceif.shtypeintheusername.leoleopts/02012-09-2510:23(12)leohasloggedinthesystem.$sourceif.shtypeintheusername.alicealicehasnotloggedinthesystem.23case語法program3-7:case.sh#!/bin/bashecho"pleasechoseeither1,2or3"echo"[1]ls-l$1"echo"[2]cat$1"echo"[3]quit"readresponsecase$responsein1)ls-l$1;;2)cat$1;;3)echo"goodbye"esac每個模式字符串后面可有一條或多條命令,其中最后一條命令必須以兩個分號(即;;)結(jié)束。case的退出狀態(tài)(返回值)是整個結(jié)構(gòu)中最后執(zhí)行的那個命令的退出狀態(tài),若沒有執(zhí)行任何命令,則退出狀態(tài)為零。case
字符串in模式字符串1)
命令
...
命令;;模式字符串2) 命令
…
命令;;…模式字符串n)
命令 …
命令;;
esac3.3控制結(jié)構(gòu)24while語法while測試條件do
命令表doneprogram3-10:while.sh#!/bin/bashwhile[$1]doif[-f$1];thenecho-e"\ndisplay:$1"cat$1elseecho"$1isnotafilename."fishiftdone測試條件的使用方式和”if”語句一樣。while測試條件;do
命令表done$sourcewhile.shfirst.shposvar.shdisplay:first.sh#!/bin/bashcd/tmpecho"Hello,world!"display:posvar.sh#!/bin/bashecho'Parameternumber:'$#echo'Alldigitvariables:'$0$1$2$3$4$5$6$7$8$9${10}${11}echo'$*:'"$*"echo'$@:'"$@"3.3控制結(jié)構(gòu)25until語法program3-11:until.sh#!/bin/bashuntil[-z"$2"];docp$1$2shift2doneif[-n"$1"];thenecho"badparameter!"fi同“while”,但循環(huán)在測試條件為真時結(jié)束until測試條件;do
命令表done$sourceuntil.shif.shif2.shwhile.shwhile2.sh$ls*2.shif2.shwhile2.sh3.3控制結(jié)構(gòu)until測試條件do
命令表done26for兩種使用方式:值表方式&算術(shù)表達式方式值表方式語法program3-12:for.sh#!/bin/bashfordayinMondayWednesdayFridaySundaydoecho$daydone循環(huán)變量的值依次取自<值表>。for變量[in<值表>];do命令表done$sourcefor.shMondayWednesdayFridaySunday$week=(MonTueWed)$foriin"${week[@]}";doecho$i;doneMonTueWed3.3控制結(jié)構(gòu)27第一個C程序編譯選項-E 僅進行預(yù)處理,不進行其他操作。助于發(fā)現(xiàn)宏錯誤。-S 編譯到匯編語言,不進行其他操作。-c 編譯、匯編到目標代碼,不進行鏈接-Wall 盡可能多地顯示警告信息。-Werror 將所有的警告當作錯誤處理。-g 在可執(zhí)行文件中包含標準調(diào)試信息。-I
設(shè)置頭文件的路徑,可以設(shè)置多個,默認路徑“/usr/include”。-L
設(shè)置庫文件的路徑,可以設(shè)置多個,默認路徑“/usr/lib”。-l
設(shè)定編譯所需的庫名稱,如果一個庫的文件名為“l(fā)ibxxx.so”那
么它的庫名稱為“xxx”。4.1gcc編譯器$gcc-op.c-Efirst.c$catp.c#1"first.c"#1"<built-in>"#1"<command-line>"#1"first.c"#1"/usr/include/stdio.h"134…externvoidfunlockfile(FILE*__stream)__attribute__((__nothrow__));#936"/usr/include/stdio.h"34#2"first.c"2intmain(void){printf("Helloworld!\n");}$gcc-Sfirst.c$catfirst.s.file"first.c".section.rodata.LC0:.string"Helloworld!".text.globlmain.typemain,@functionmain:…….LFE0:.sizemain,.-main.ident"GCC:(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1".section.note.GNU-stack,"",@progbits$gcc-cfirst.c$ls-lfirst.o-rw-rw-r--1leoleo102811月2009:39first.o$gcc-Wall-ofirstfirst.cfirst.c:Infunction‘main’:first.c:6:1:warning:controlreachesendofnon-voidfunction[-Wreturn-type]$rmfirst$ls1.txtfirst.cfirst.ofirst.sp.c$gcc-Werror-Wall-ofirstfirst.cfirst.c:Infunction‘main’:first.c:6:1:error:controlreachesendofnon-voidfunction[-Werror=return-type]cc1:allwarningsbeingtreatedaserrors$ls1.txtfirst.cfirst.ofirst.sp.c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物業(yè)財務(wù)工作總結(jié)與計劃怎么寫
- 2025學(xué)生會文藝部部長工作計劃書例文
- 高中英語教師校本研修計劃
- 2025年四年級音樂教學(xué)計劃
- 校園環(huán)保協(xié)會工作計劃
- 工廠每天工作計劃
- 培優(yōu)輔差工作計劃總結(jié) 培優(yōu)輔差工作總結(jié)
- 2025中學(xué)工作計劃范本怎么寫
- 《復(fù)雜控制策略》課件
- 合同背書模版
- 體檢報告樣表
- 《外科護理》-關(guān)節(jié)脫位病人護理
- 高血壓與體重管理
- 阿根廷文化習(xí)俗課件
- 小米智能家居裝修方案
- tpu涂層布加工工藝
- 河道整治工程監(jiān)理大綱
- sapho綜合癥護理查房
- 高中美術(shù)選修第四課 人間生活【全國一等獎】
- 《未來汽車》課件
- 神經(jīng)外科疼痛護理查房
評論
0/150
提交評論