Linux cp命令主要用于復(fù)制文件或目錄
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比江夏網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式江夏網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋江夏地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
1.語法
2.參數(shù)說明
3.案例
3.1. cp 命令基本用法
3.2 復(fù)制目錄
3.3 復(fù)制軟鏈接文件
3.4. 保留源文件屬性復(fù)制
3.5. "-l" 和 "-s" 選項(xiàng)
4.cat
6.linux快速刪除大量文件
Shell腳本基本知識(shí)
概述:shell其實(shí)是內(nèi)核與用戶之間的一個(gè)接口,
shell腳本
如果有一系列經(jīng)常使用的linux命令,你可以把它們存儲(chǔ)在一個(gè)文件腫。shenll可以讀取這個(gè)文件,并執(zhí)行其中的命令。這樣的文件成為腳本文件。
執(zhí)行shell腳本
要?jiǎng)?chuàng)建一個(gè)shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。
為了使用bash shell賴執(zhí)行腳本magic,其命令是:bash magic或者./magic
echo命令:
echo “this is an example of the echo command!”
屏幕上就會(huì)回顯“this is an example of the echo command!”
#符號(hào)
用于在shell腳本腫可以包含注解入口
echo “hello”
#this is a comment line. this would not produce any output!
echo “world!”
第二行是一個(gè)注解的例子。它將被shell忽略,而且不產(chǎn)生任何消息
變量:
可以在任何時(shí)間通過簡單的賦值來創(chuàng)建。
語法:
variable name-value
Linux 中的所有變量都被當(dāng)作字符串
引用變量:
$符號(hào)用于引用一個(gè)變量的內(nèi)容
variable1 = ${variable2}
讀入值給變量
在執(zhí)行shell腳本時(shí),shell還允許用戶直接從鍵盤讀入一個(gè)值給變量,還可以使用read命令來作。
$read fname
本地和全局shell變量
局部變量
當(dāng)引用shell時(shí),只有創(chuàng)建它的shell能夠知道變量的存在
全局變量
稱為子shell
shell中創(chuàng)建的變量局部于創(chuàng)建它的shell,除非使用export命令特別指出是全局的。
環(huán)境變量:
通過改變這些變量的值,用戶能夠定制此環(huán)境
一些環(huán)境變量的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL
HOME變量
Linux系統(tǒng)中的每個(gè)用戶都有一個(gè)相關(guān)的稱作HOME的目錄
當(dāng)一個(gè)用戶登錄后,進(jìn)入相應(yīng)的HOME的目錄
$ echo $HOME
PATH變量
包含一列用冒號(hào)定界的目錄的路徑名字,便于可執(zhí)行程序的搜索。
PS1變量
PS1(Prompt String 1)變量包含了shell提示符,$符號(hào)
$ PS1 = “HELLO”
HELLO
PS2變量
是為第二個(gè)提示符設(shè)置值的環(huán)境變量
LOGNAME變量
包含用戶的注冊(cè)名字
$echo “${LOGNAME}”
SHLVL 變量
該變量包含當(dāng)前工作的shell level
SHELL變量
環(huán)境變量存儲(chǔ)了用戶缺省的shell
env命令
可用來查看所有的已移出的環(huán)境變量表和它們各自的值!
命令替換
在單個(gè)命令行中使用多個(gè)命令的另外一種方法(非Pipes)是通過命令替換
echo “the data is `date`”
expr命令
用于求之算術(shù)表達(dá)式。該命令的輸出被送到標(biāo)準(zhǔn)輸出
$ expr 4 + 5
將在屏幕上顯示9
算術(shù)展開:
你可以在$((…)) 中括一個(gè)表達(dá)式,用下面的命令來計(jì)算它的值;
$((expression))
example1
編寫一個(gè)shell腳本用于計(jì)算呼叫中心未應(yīng)答的詢問的數(shù)量。該腳本應(yīng)該接受一天那所報(bào)告的詢問的總數(shù)和應(yīng)答的詢問的數(shù)量,以便計(jì)算未應(yīng)答的詢問的數(shù)量。
所有未應(yīng)答的詢問總數(shù)=所有詢問的總數(shù)-應(yīng)答的詢問的數(shù)量
!--[if !supportLists]--※ !--[endif]--※※※※※※※※※※※※※※※※※※※※※※※
條件執(zhí)行
test和[]
求值表達(dá)式,并返回true(0)或false()
數(shù)值測試:
-eq 等于則為真
-ne 不等于則為真
-gt 大于則為真
-ge 大于等于則為真
-lt 小于則為真
-le 小于等于則為真
if構(gòu)造
Linux shell提供了循環(huán)和判定的構(gòu)造,可以在shell腳本中使用
算術(shù)測試
結(jié)合if構(gòu)造,它可以用于測試變量的數(shù)字值
串測試
test命令也可以用于字符串
= 等于則為真
!= 不相等則為真
-z 字符串 長度為零則為真
-n 字符串 長度不為零則為真
文件測試
test命令也可以用于檢查文件的狀態(tài)
-e 文件存在則為真
-r 文件存在并且可讀則為真
-w 文件存在并且可寫則為真
-x 文件存在并且可執(zhí)行則為真
-s 文件存在并且至少有一個(gè)字符則為真
-d 文件存在并且為目錄則為真
-f 文件存在并且為普通文件則為真
-c 文件存在并且為字符型文件則為真
-b 文件存在并且為塊特殊文件則為真
-a并且 -o或者 !非
exit命令
用于終止shell腳本的執(zhí)行并返回到$提示符下
case 。。。esac
shell腳本中使用的這個(gè)構(gòu)造依據(jù)變量的值而執(zhí)行一組特定指令
當(dāng)變量的值和其中的一個(gè)值匹配的時(shí)候,就執(zhí)行寫在該值下的一組命令。
example3
迭代
while構(gòu)造
while 條件
do
命令(s)
done
只有條件為真的時(shí)候,才能執(zhí)行do與done之間的命令
until構(gòu)造
until循環(huán)構(gòu)造的求值模式于while循環(huán)相反
until循環(huán)將繼續(xù)執(zhí)行直到求值的條件為真的時(shí)候
for構(gòu)造
for variable_name in list_of_values
do
…
done
for循環(huán)取一列值作為輸入并對(duì)循環(huán)中每個(gè)值執(zhí)行循環(huán)
break和contineu命令
同其他語言中的用法
example4
控制進(jìn)程的執(zhí)行
請(qǐng)求后臺(tái)處理
用于請(qǐng)求后臺(tái)進(jìn)程的符號(hào)是 ()
$ wc tempfile
[1] 2082
$ vi newfile
檢查后臺(tái)進(jìn)程
ps(進(jìn)程狀態(tài))命令為每個(gè)當(dāng)前的活動(dòng)的每個(gè)進(jìn)程產(chǎn)生一行入口。
終止后臺(tái)進(jìn)程
可用kill,如下所示
kill 278
查看完成一個(gè)命令所花的時(shí)間
你可以使用time命令來查看一個(gè)命令從開始到結(jié)束所花的時(shí)間
time fine /etc –name “passwd” 2 /dev/null /dev/null表明忽略錯(cuò)誤信息。
管道的介紹
垂直條(|)是管道字符
它只是shell:“|”前面命令的輸出作為“|”之后命令的輸入發(fā)送
ls –l | more
用管道組合命令,功能強(qiáng)大
原文及更新:
直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可
上面這腳本實(shí)際上在使用時(shí)出現(xiàn)了問題, /home/neucrack/software/ss/start_ss_local.sh 這個(gè)命令始終沒有被執(zhí)行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了進(jìn)程,導(dǎo)致后面一句始終沒有執(zhí)行,可以將他們分別放到后臺(tái)執(zhí)行就行了,如何在后臺(tái)執(zhí)行可以看文章最后一部分
也可以自己手動(dòng)在rc*.d中建立軟連接
桌面系統(tǒng)搜索 啟動(dòng) ,打開啟動(dòng)管理器 添加刪除即可
一般有以下幾種方法:
1)在輸入命令的最前面加上 nohup 命令
如 nohup your_command 這樣命令在你退出后仍然會(huì)在后臺(tái)執(zhí)行
2) setsid 命令
setsid your_command 該命令的結(jié)果是使你所運(yùn)行的命令的父進(jìn)程為init,所以只有關(guān)機(jī)該進(jìn)程才會(huì)停止
3) (your_command )
就是用括號(hào)將你的命令括起來,這樣做也是使命令的父進(jìn)程為init
4) disown
當(dāng)你在命令行下輸入 your_command 后命令就在后臺(tái)執(zhí)行了,然后執(zhí)行jobs命令,該命令會(huì)列出當(dāng)前正在后臺(tái)執(zhí)行的命令。例如輸入命令“top”
然后執(zhí)行"jobs"
輸出結(jié)果是
[1] + Suspended (tty output) top
注意行開頭方括號(hào)內(nèi)的數(shù)字,該數(shù)字叫做jobspec,是給當(dāng)前后臺(tái)運(yùn)行的job的編號(hào)。這是你只要在命令行下輸入"disown -h 1" 后臺(tái)運(yùn)行的top命令就不會(huì)受到hangup信號(hào)的影響了。
5)使用 screen 命令
在命令行下輸入screen命令就開啟了一個(gè)screen進(jìn)程,它就好像是一個(gè)全新的命令運(yùn)行環(huán)境,在該環(huán)境中你可以像在正常的terminal下那樣執(zhí)行
命令,但是這個(gè)screen是不受其父進(jìn)程的hangup信號(hào)的影響的,既然screen不受其父進(jìn)程影響,當(dāng)你意外掉線或者退出系統(tǒng)時(shí),在screen
中仍在執(zhí)行的命令仍然會(huì)繼續(xù)執(zhí)行。關(guān)于screen命令的使用方法你可以再去查閱相關(guān)資料。
在Linux下,如果你需要執(zhí)行shell腳本,那么應(yīng)該使用那個(gè)命令呢?下面由我為大家整理了linux shell腳本執(zhí)行命令的相關(guān)知識(shí),希望對(duì)大家有幫助!
linux shell腳本執(zhí)行
linux shell腳本執(zhí)行方法一: 切換到shell腳本所在的目錄(此時(shí),稱為工作目錄)執(zhí)行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當(dāng)前的工作目錄下執(zhí)行hello.sh。如果不加上./,bash可能會(huì)響應(yīng)找到不到hello.sh的錯(cuò)誤信息。因?yàn)槟壳暗墓ぷ髂夸?/data/shell)可能不在執(zhí)行程序默認(rèn)的搜索路徑之列,也就是說,不在環(huán)境變量PASH的內(nèi)容之中。查看PATH的內(nèi)容可用 echo $PASH 命令。現(xiàn)在的/data/shell就不在環(huán)境變量PASH中的,所以必須加上./才可執(zhí)行。
linux shell腳本執(zhí)行方法二: 以絕對(duì)路徑的方式去執(zhí)行bash shell腳本:
/data/shell/hello.sh
linux shell腳本執(zhí)行方法三: 直接使用bash 或sh 來執(zhí)行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執(zhí)行,那么,可以不必事先設(shè)定shell的執(zhí)行權(quán)限,甚至都不用寫shell文件中的第一行(指定bash路徑)。因?yàn)榉椒ㄈ菍ello.sh作為參數(shù)傳給sh(bash)命令來執(zhí)行的。這時(shí)不是hello.sh自己來執(zhí)行,而是被人家調(diào)用執(zhí)行,所以不要執(zhí)行權(quán)限。那么不用指定bash路徑自然也好理解了啊。
linux shell腳本執(zhí)行方法四: 在當(dāng)前的shell環(huán)境中執(zhí)行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執(zhí)行shell腳本時(shí)都是在當(dāng)前shell(稱為父shell)開啟一個(gè)子shell環(huán)境,此shell腳本就在這個(gè)子shell環(huán)境中執(zhí)行。shell腳本執(zhí)行完后子shell環(huán)境隨即關(guān)閉,然后又回到父shell中。而方法四則是在當(dāng)前shell中執(zhí)行的。
1、首先電腦中需要安裝的是git的應(yīng)用程序,安裝完成之后,可以在開始菜單進(jìn)行查看。
2、并需要配置好git的bin,配置環(huán)境變量,把bin的絕對(duì)路徑復(fù)制到環(huán)境變量中path。
3、配置git的環(huán)境變量之后,在任意文件進(jìn)行創(chuàng)建一個(gè)為mkdir.sh,文件名可以是隨意的結(jié)尾需要為.sh。
4、然后在sh的文件中進(jìn)行輸入#!/bin/shtoucha.txtsleep10echo"testtesttesttest"a.txt
創(chuàng)建一個(gè)為txt文件后testtesttesttest寫入到txt文件中。
5、然后進(jìn)行雙擊.sh的文件,會(huì)彈出git的命令窗口,根據(jù)代碼的執(zhí)行的時(shí)間窗口顯示多久。
6、然后就會(huì)自動(dòng)生成一個(gè)a.txt的文件。
7、并會(huì)在a.txt文件中寫入為“testtesttesttest”的一段文字,即代表運(yùn)行l(wèi)inuxshell腳本成功。
在安裝完P(guān)HP和Apache2后,需要安裝PHP命令行解釋器。
可以直接在Linux命令行使用 phpinfo()
這個(gè)十分有價(jià)值的調(diào)試工具而不需要從文件來調(diào)用,只需執(zhí)行以下命令:
3. 以交互模式運(yùn)行PHP并做一些數(shù)學(xué)運(yùn)算。這里,‘-a‘ 選項(xiàng)用于以交互模式運(yùn)行PHP。
4. 可以僅僅將PHP腳本作為shell腳本來運(yùn)行。首先,創(chuàng)建在當(dāng)前工作目錄中創(chuàng)建一個(gè)PHP樣例腳本。
5. 可以完全靠自己通過交互shell來創(chuàng)建簡單函數(shù)。