Linux read命令用于從標(biāo)準(zhǔn)輸入讀取數(shù)值。
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、郾城ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的郾城網(wǎng)站制作公司
read 內(nèi)部命令被用來從標(biāo)準(zhǔn)輸入讀取單行數(shù)據(jù)。這個(gè)命令可以用來讀取鍵盤輸入,當(dāng)使用重定向的時(shí)候,可以讀取文件中的一行數(shù)據(jù)。
參數(shù)說明:
1、簡單讀取
測試結(jié)果為:
2、-p 參數(shù),允許在 read 命令行中直接指定一個(gè)提示。
測試結(jié)果為:
3、-t 參數(shù)指定 read 命令等待輸入的秒數(shù),當(dāng)計(jì)時(shí)滿時(shí),read命令返回一個(gè)非零退出狀態(tài)。
執(zhí)行程序不輸入,等待 5 秒后:
4、除了輸入時(shí)間計(jì)時(shí),還可以使用 -n 參數(shù)設(shè)置 read 命令計(jì)數(shù)輸入的字符。當(dāng)輸入的字符數(shù)目達(dá)到預(yù)定數(shù)目時(shí),自動退出,并將輸入的數(shù)據(jù)賦值給變量。
該例子使用了-n 選項(xiàng),后接數(shù)值 1,指示 read 命令只要接受到一個(gè)字符就退出。只要按下一個(gè)字符進(jìn)行回答,read 命令立即接受輸入并將其傳給變量,無需按回車鍵。
只接收 2 個(gè)輸入就退出:
執(zhí)行程序輸入兩個(gè)字符:
5、 -s 選項(xiàng)能夠使 read 命令中輸入的數(shù)據(jù)不顯示在命令終端上(實(shí)際上,數(shù)據(jù)是顯示的,只是 read 命令將文本顏色設(shè)置成與背景相同的顏色)。輸入密碼常用這個(gè)選項(xiàng)。
執(zhí)行程序輸入密碼后是不顯示的:
6.讀取文件
每次調(diào)用 read 命令都會讀取文件中的 "一行" 文本。當(dāng)文件沒有可讀的行時(shí),read 命令將以非零狀態(tài)退出。
通過什么樣的方法將文件中的數(shù)據(jù)傳給 read 呢?使用 cat 命令并通過管道將結(jié)果直接傳送給包含 read 命令的 while 命令。
測試文件 test.txt 內(nèi)容如下:
測試代碼:
執(zhí)行結(jié)果為:
使用 -e 參數(shù),以下實(shí)例輸入字符 a 后按下 Tab 鍵就會輸出相關(guān)的文件名(該目錄存在的):
與crond不同的是,at任務(wù)調(diào)度是一次性的,而crond是重復(fù)性的
1.1 at命令是一次性定時(shí)計(jì)劃任務(wù),at的守護(hù)進(jìn)程atd會以后臺模式運(yùn)行,檢查作業(yè)隊(duì)列來運(yùn)行
1.2 默認(rèn)情況下,atd守護(hù)進(jìn)程每60s檢查作業(yè)隊(duì)列,有作業(yè)時(shí),會檢查作業(yè)運(yùn)行時(shí)間,如果時(shí)間與當(dāng)前時(shí)間匹配,則運(yùn)行此作業(yè)
1.3 at命令是一次性定時(shí)計(jì)劃任務(wù),執(zhí)行完一個(gè)任務(wù)后就不再執(zhí)行這個(gè)任務(wù)了
1.4 在使用at命令的時(shí)候,一定要保證atd進(jìn)程的啟動,可以使用相關(guān)指令查看
ps -ef | grep atd 可以檢查atd是否在運(yùn)行
at [選項(xiàng)] [時(shí)間]
按兩次 ctrl+d 結(jié)束at命令的輸入
4.1 當(dāng)天的hh:mm(小時(shí):分鐘),假如這個(gè)時(shí)間已經(jīng)過去,那么就第二天的這個(gè)時(shí)間執(zhí)行。例如04:00
4.2 模糊的詞語,例如midnight、noon、teatime(下午茶時(shí)間,16:00左右)
4.3 采用12小時(shí)計(jì)時(shí)制,例如8am
4.4 指定執(zhí)行命令的具體日期,格式為month dat(月 日)或者mm/dd/yy或者dd.mm.yy,指定的日期必須跟著寫在在指定時(shí)間的后面,例如:04:00 2021-3-1就是2021年3月1日凌晨4點(diǎn)整執(zhí)行
4.5 相對計(jì)時(shí)法,指定格式為now + count time-units,now就是當(dāng)前時(shí)間,time-units是時(shí)間單位,可以是minutes、hours、days、weeks。count是時(shí)間的數(shù)量,例如:now + 5 minutes
4.6 直接用today、tomorrow來指定完成命令的時(shí)間
5.1 2天后的下午5點(diǎn),執(zhí)行/bin/ls /home指令
at 5pm + 2 days 按回車鍵
然后寫下那個(gè)時(shí)刻要執(zhí)行命令 /bin/ls /home
最后按兩次ctrl+d退出at指令
5.2 atq指令可以直接執(zhí)行,查看系統(tǒng)中待執(zhí)行的工作任務(wù)
5.3 明天17:00輸出時(shí)間到指定文件內(nèi) /root/date100.log
at 17:00 tomorrow 按回車鍵
date /root/date100.log
按兩次ctrl+d退出at指令的輸入
5.4 2分鐘后
at now + 2 minutes
5.5 刪除已經(jīng)設(shè)置的任務(wù),atrm 編號
可以用atq列出待執(zhí)行的任務(wù),列出后第一列就是job編號
如果是想知道需要大約多長時(shí)間才能復(fù)制過去的話,就用被粘貼存儲器的平均寫入速度÷文件大小(單位一樣)就可以算出來大約時(shí)間了
如果你是想計(jì)時(shí)的話,在Manjaro Linux之類的系統(tǒng)終端上因?yàn)閱⒂昧藌sh的powerlevel10k主題,所以自帶一個(gè)命令執(zhí)行時(shí)間計(jì)時(shí)器,會在執(zhí)行結(jié)束后告訴你時(shí)間,或者可以使用time命令
如果是dd這個(gè)命令的話可以在后面多加一個(gè)status=progress參數(shù)來看到目前寫入進(jìn)度跟預(yù)計(jì)時(shí)間
linux有個(gè)系統(tǒng)級的定時(shí)任務(wù)服務(wù),叫cron,終端里的命令是crontab。
crontab
-u
root
-l
查看root用戶的所有定時(shí)任務(wù)。
crontab
-u
root
-e是編輯root用戶的定時(shí)任務(wù),輸入這條會進(jìn)入vi編輯模式。
編輯是有固定格式的,具體你可以搜索cron命令的用法。