1.變量
所謂變量就是計(jì)算機(jī)中用于記錄一個(gè)值(不一定是數(shù)值,也可以是字符或字符串)的符號(hào),而這些符號(hào)將用于不同的運(yùn)算處理中。通常變量與值是一對(duì)一的關(guān)系名党,可以通過(guò)表達(dá)式讀取它的值并賦值給其它變量,也可以直接指定數(shù)值賦值給任意變量挠轴。
1.1創(chuàng)建變量?
declare + 變量名
變量賦值? 變量名=所賦值
讀取變量? echo? $變量名? ($表示引用一個(gè)變量值)
變量名只能是英文字母传睹、數(shù)字或者下劃線,且不能以數(shù)字作為開(kāi)頭岸晦。
1.2環(huán)境變量
所有變量都有作用域欧啤,環(huán)境變量是一種特殊變量,相對(duì)于自定義變量其作用于大启上,在一個(gè)進(jìn)程下若創(chuàng)建了子進(jìn)程邢隧,若在處理創(chuàng)建過(guò)程中明確指定(僅是指創(chuàng)建這一過(guò)程)。這個(gè)子進(jìn)程幾乎繼承了原本進(jìn)程全部環(huán)境變量冈在。
環(huán)境變量相關(guān)命令
set?? 顯示當(dāng)前shell所有環(huán)境變量
env?? 顯示與當(dāng)前用戶相關(guān)的環(huán)境變量
export???? 顯示從 Shell 中導(dǎo)出成環(huán)境變量的變量
所涉及變量范圍{set? >? env? >? export }
1.3環(huán)境變量永久存在方式
1.3.1
/etc/bashrc????? 存放shell變量
/etc/profile??????? 存放環(huán)境變量倒慧。寫在這里面的是永久存在的
想要使該變量永久存在,打開(kāi)/etc/profile讥邻,添加想添加的環(huán)境變量
2命令的查找路徑與順序
通過(guò)環(huán)境變量 PATH (大寫)來(lái)搜索迫靖。系統(tǒng)會(huì)依照所列順序依次查找然后執(zhí)行。
3.關(guān)于shell 腳本
① $ gedit hello_shell.sh? ? ? ? ? ? (創(chuàng)建名稱為 hello_shell.sh 的腳本)
② #!/bin/bash? ?
??? for ((i=0; i<10; i++));
?? do? ?
? echo "hello shell"? ?
done
exit 0? ? ? ? ? ? ? ? ? ? ? ? ? ?
:wq? ? ? ? ? ? ? ? ? ? ? ? ? (第一行不能去省略兴使,保存并退出)
③? $ chmod 755 hello_shell.sh? ? ? (為文件添加可執(zhí)行權(quán)限)
④? $ ./hello_shell.sh? ? ? ? ? ? ? (執(zhí)行腳本)
⑤? $ gedit hello_world.c? ? ? ? ? (創(chuàng)建程序系宜, 以創(chuàng)建C語(yǔ)言程序?yàn)槔樱?/p>
⑥? #includeint main(void)
{
printf("hello world!\n");
return 0;
}
:wq? ? ? ? ? ? ? ? ? ? ? ? ? (編輯C語(yǔ)言程序,然后保存并退出)
⑦? $ gcc -o hello_world hello_world.c (生成可執(zhí)行文件发魄,此文件為二進(jìn)制盹牧,不必修改權(quán)限)
⑧ ./hello_world? ? ? ? ? ? ? ? ? (執(zhí)行文件)
{
Linux中的退出保存有兩種方式
第一種: ?:wq 保存且退出 ? ? ? :q!不保存強(qiáng)行退出
第二種: ?:x 保存退出
第二種與第一種的不同就是:x只有在真正修改了文檔的內(nèi)容才會(huì)更新最新修改時(shí)間励幼,而:wq每次都會(huì)更新最新修改時(shí)間汰寓。
}
該設(shè)置的文件只能存在于所在目錄下執(zhí)行,想要隨時(shí)執(zhí)行苹粟,需要將命令所在路徑添加到PATH
4.添加自定義到PATH
$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
(這是將/home/shiyanlou/mybin加入PATH有滑,該目錄下文件就可以隨時(shí)使用了,必須絕對(duì)路徑)
5.修改和刪除已有變量
變量設(shè)置方式 說(shuō)明
${變量名#匹配字串} 從頭向后開(kāi)始匹配嵌削,刪除符合匹配字串的最短數(shù)據(jù)
${變量名##匹配字串} 從頭向后開(kāi)始匹配毛好,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名%匹配字串} 從尾向前開(kāi)始匹配,刪除符合匹配字串的最短數(shù)據(jù)
${變量名%%匹配字串} 從尾向前開(kāi)始匹配苛秕,刪除符合匹配字串的最長(zhǎng)數(shù)據(jù)
${變量名/舊的字串/新的字串} 將符合舊字串的第一個(gè)字串替換為新的字串
${變量名//舊的字串/新的字串} 將符合舊字串的全部字串替換為新的字串
刪除
unset? +? 變量名
6.搜索文件
whereis 搜索二進(jìn)制文件(-b)肌访,幫助文件(-m),源代碼文件(-s)
locate 快速全面
which 通常用來(lái)確定是否安裝某軟件
find 最為全面