文中所有的shell命令都是在centos7下執(zhí)行的
創(chuàng)新互聯(lián)建站專(zhuān)注于祥符企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。祥符網(wǎng)站建設(shè)公司,為祥符等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站開(kāi)發(fā),專(zhuān)業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專(zhuān)業(yè)和態(tài)度為您提供的服務(wù)
crond是linux下用來(lái)周期性的執(zhí)行某種任務(wù)或等待處理某些事件的一個(gè)守護(hù)進(jìn)程,和windows下的計(jì)劃任務(wù)類(lèi)似,一般安裝完操作系統(tǒng)之后,crond也就被安裝好了,并且會(huì)自動(dòng)啟動(dòng)crond進(jìn)程,crond進(jìn)程每分鐘會(huì)定期檢查是否有要執(zhí)行的任務(wù),如果有要執(zhí)行的任務(wù),則自動(dòng)執(zhí)行該任務(wù)。
crontab是一個(gè)命令,用于設(shè)置需要周期性被執(zhí)行的操作。crontab可能沒(méi)有被默認(rèn)安裝,可以自己安裝。
crontab打開(kāi)任務(wù)列表,然后可以使用vi來(lái)編輯文本,定時(shí)任務(wù)語(yǔ)法入門(mén)參考以下文章:
一文精通 crontab從入門(mén)到出坑
Linux crontab 命令
我這里寫(xiě)了一個(gè)定時(shí)任務(wù),每分鐘執(zhí)行一次自己編寫(xiě)的sync_data.sh腳本
/home/myshell/error.log 是將標(biāo)準(zhǔn)輸出寫(xiě)入到error.log這個(gè)文件中
21 是將標(biāo)準(zhǔn)錯(cuò)誤也給輸出到標(biāo)準(zhǔn)輸出中,所以最終就可以在error.log里面看到錯(cuò)誤日志
我寫(xiě)了一個(gè)sync_data.sh腳本,主要功能是去請(qǐng)求一個(gè)接口并判斷響應(yīng)的httpcode是否正確。
測(cè)試crontab表達(dá)式的網(wǎng)站
crontab定時(shí)任務(wù)
shell腳本:監(jiān)控HTTP服務(wù)的狀態(tài)
創(chuàng)建和編輯 crontab 文件
我們先從相對(duì)比較復(fù)雜的服務(wù)器執(zhí)行php談起。服務(wù)器上安裝了php,就可以執(zhí)行php文件,無(wú)論是否安裝了nginx或Apache這樣的服務(wù)器環(huán)境軟件。而Linux中,使用命令行,用CronTab來(lái)定時(shí)任務(wù),又是絕佳的選擇,而且也是效率最高的選擇。
首先,進(jìn)入命令行模式。作為服務(wù)器的linux一般都默認(rèn)進(jìn)入命令行模式的,當(dāng)然,我們管理服務(wù)器也一般通過(guò)putty等工具遠(yuǎn)程連接到服務(wù)器,為了方便,我們用root用戶(hù)登錄。在命令行中鍵入:
crontab -e
之后就會(huì)打開(kāi)一個(gè)文件,并且是非編輯狀態(tài),則是vi的編輯界面,通過(guò)敲鍵盤(pán)上的i,進(jìn)入編輯模式,就可以編輯內(nèi)容。這個(gè)文件中的每一行就是一個(gè)定時(shí)任務(wù),我們新建一行,就是新建一條定時(shí)任務(wù)(當(dāng)然是指這一行內(nèi)按照一定的格式進(jìn)行書(shū)寫(xiě))。我們現(xiàn)在來(lái)舉個(gè)例子,增加一行,內(nèi)容如下:
00 * ** * lynx -dump
這是什么意思呢?實(shí)際上上面這一行由兩部分組成,前面一部分是時(shí)間,后面一部分是操作內(nèi)容。例如上面這個(gè),
00 * ** *
就是指當(dāng)當(dāng)前時(shí)間的分鐘數(shù)為00時(shí),執(zhí)行該定時(shí)任務(wù)。時(shí)間部分由5個(gè)時(shí)間參數(shù)組成,分別是:
分 時(shí) 日 月 周
第1列表示分鐘1~59 每分鐘用或者 */1表示,/n表示每n分鐘,例如*/8就是每8分鐘的意思,下面也是類(lèi)推
第2列表示小時(shí)1~23(0表示0點(diǎn))
第3列表示日期1~31
第4列表示月份1~12
第5列標(biāo)識(shí)號(hào)星期0~6(0表示星期天)
整個(gè)句子的后面部分就是操作的具體內(nèi)容。
lynx -dump
意思就是說(shuō)通過(guò)lynx訪(fǎng)問(wèn)這個(gè)url。我們?cè)谑褂弥兄饕玫絣ynx、curl、wget來(lái)實(shí)現(xiàn)對(duì)url的遠(yuǎn)程訪(fǎng)問(wèn),而如果要提高效率,直接用php去執(zhí)行本地php文件是最佳選擇,例如:
00 */2 * * * /usr/local/bin/php /home/www/script.php
這條語(yǔ)句就可以在每2小時(shí)的0分鐘,通過(guò)linux內(nèi)部php環(huán)境執(zhí)行script.php,注意,這里可不是通過(guò)url訪(fǎng)問(wèn),通過(guò)服務(wù)器環(huán)境來(lái)執(zhí)行哦,而是直接執(zhí)行,因?yàn)槔@過(guò)了服務(wù)器環(huán)境,所以效率當(dāng)然要高很多。
好了,已經(jīng)添加了幾條需要的定時(shí)任務(wù)了吧。點(diǎn)擊鍵盤(pán)上的Esc鍵,輸入“:wq”回車(chē),這樣就保存了設(shè)置的定時(shí)任務(wù),屏幕上也能看到提示創(chuàng)建了新的定時(shí)任務(wù)。接下來(lái)就是好好寫(xiě)你的script.php了。
關(guān)于CronTab的更多用法這里就不介紹了,如果你想更靈活的使用這個(gè)定時(shí)任務(wù)功能,應(yīng)該自己再去深入學(xué)習(xí)一下crontab。
* 23 * * 1-6 root ls
每周的周一到周六二十三點(diǎn)以root執(zhí)行l(wèi)s命令
《Linux就該這樣學(xué)》
Linux計(jì)劃任務(wù)入門(mén)詳解 Linux操作系統(tǒng)定時(shí)任務(wù)系統(tǒng) Cron 入門(mén)
cron是一個(gè)linux下的定時(shí)執(zhí)行工具,可以在無(wú)需人工干預(yù)的情況下運(yùn)行作業(yè)。由于Cron 是Linux的內(nèi)置服務(wù),但它不自動(dòng)起來(lái),可以用以下的方法啟動(dòng)、關(guān)閉這個(gè)服務(wù):
/sbin/service crond start //啟動(dòng)服務(wù)
/sbin/service crond stop //關(guān)閉服務(wù)
/sbin/service crond restart //重啟服務(wù)
/sbin/service crond reload //重新載入配置
你也可以將這個(gè)服務(wù)在系統(tǒng)啟動(dòng)的時(shí)候自動(dòng)啟動(dòng):
在/etc/rc.d/rc.local這個(gè)腳本的末尾加上:
/sbin/service crond start
現(xiàn)在Cron這個(gè)服務(wù)已經(jīng)在進(jìn)程里面了,我們就可以用這個(gè)服務(wù)了,Cron服務(wù)提供以下幾種接口供大家使用:
1.直接用crontab命令編輯
cron服務(wù)提供crontab命令來(lái)設(shè)定cron服務(wù)的,以下是這個(gè)命令的一些參數(shù)與說(shuō)明:
crontab -u //設(shè)定某個(gè)用戶(hù)的cron服務(wù),一般root用戶(hù)在執(zhí)行這個(gè)命令的時(shí)候需要此參數(shù)
crontab -l //列出某個(gè)用戶(hù)cron服務(wù)的詳細(xì)內(nèi)容
crontab -r //刪除沒(méi)個(gè)用戶(hù)的cron服務(wù)
crontab -e //編輯某個(gè)用戶(hù)的cron服務(wù)
比如說(shuō)root查看自己的cron設(shè)置:crontab -u root -l
再例如,root想刪除fred的cron設(shè)置:crontab -u fred -r
在編輯cron服務(wù)時(shí),編輯的內(nèi)容有一些格式和約定,輸入:crontab -u root -e
進(jìn)入vi編輯模式,編輯的內(nèi)容一定要符合下面的格式:*/1 * * * * ls /tmp/ls.txt
任務(wù)調(diào)度的crond常駐命令
crond 是linux用來(lái)定期執(zhí)行程序的命令。當(dāng)安裝完成操作系統(tǒng)之后,默認(rèn)便會(huì)啟動(dòng)此任務(wù)調(diào)度命令。crond命令每分鍾會(huì)定期檢查是否有要執(zhí)行的工作,如果有要執(zhí)行的工作便會(huì)自動(dòng)執(zhí)行該工作。
1、linux任務(wù)調(diào)度的工作主要分為以下兩類(lèi):
*系統(tǒng)執(zhí)行的工作:系統(tǒng)周期性所要執(zhí)行的工作,如備份系統(tǒng)數(shù)據(jù)、清理緩存
*個(gè)人執(zhí)行的工作:某個(gè)用戶(hù)定期要做的工作,例如每隔10分鐘檢查郵件服務(wù)器是否有新信,這些工作可由每個(gè)用戶(hù)自行設(shè)置。
2.crontab命令選項(xiàng):
-u指定一個(gè)用戶(hù),
-l列出某個(gè)用戶(hù)的任務(wù)計(jì)劃,
-r刪除某個(gè)用戶(hù)的任務(wù),
-e編輯某個(gè)用戶(hù)的任務(wù)
3.cron文件語(yǔ)法:
分 小時(shí) 日 月 星期 命令
0-59 0-23 1-31 1-12 0-6 command (取值范圍,0表示周日一般一行對(duì)應(yīng)一個(gè)任務(wù))
4.記住幾個(gè)特殊符號(hào)的含義:
"*"代表取值范圍內(nèi)的數(shù)字,
"/"代表"每",
"-"代表從某個(gè)數(shù)字到某個(gè)數(shù)字,
","分開(kāi)幾個(gè)離散的數(shù)字
一、任務(wù)調(diào)度設(shè)置文件的寫(xiě)法
可用crontab -e命令來(lái)編輯,編輯的是/var/spool/cron下對(duì)應(yīng)用戶(hù)的cron文件,也可以直接修改/etc/crontab文件
具體格式如下:
Minute Hour Day Month Dayofweek command
分鐘 小時(shí) 天 月 天每星期 命令
每個(gè)字段代表的含義如下:
Minute 每個(gè)小時(shí)的第幾分鐘執(zhí)行該任務(wù)
Hour 每天的第幾個(gè)小時(shí)執(zhí)行該任務(wù)
Day 每月的第幾天執(zhí)行該任務(wù)
Month 每年的第幾個(gè)月執(zhí)行該任務(wù)
DayOfWeek 每周的第幾天執(zhí)行該任務(wù)
Command 指定要執(zhí)行的程序
在這些字段里,除了“Command”是每次都必須指定的字段以外,其它字段皆為可選字段,可視需要決定。對(duì)于不指定的字段,要用“*”來(lái)填補(bǔ)其位置。
舉例如下:
5 * * * * ls 指定每小時(shí)的第5分鐘執(zhí)行一次ls命令
30 5 * * * ls 指定每天的 5:30 執(zhí)行l(wèi)s命令
30 7 8 * * ls 指定每月8號(hào)的7:30分執(zhí)行l(wèi)s命令
30 5 8 6 * ls 指定每年的6月8日5:30執(zhí)行l(wèi)s命令
30 6 * * 0 ls 指定每星期日的6:30執(zhí)行l(wèi)s命令[注:0表示星期天,1表示星期1,以此類(lèi)推,也可以用英文來(lái)表示,sun表示星期天,mon表示星期一等。]
30 3 10,20 * * ls 每月10號(hào)及20號(hào)的3:30執(zhí)行l(wèi)s命令[注:“,”用來(lái)連接多個(gè)不連續(xù)的時(shí)段]
25 8-11 * * * ls 每天8-11點(diǎn)的第25分鐘執(zhí)行l(wèi)s命令[注:“-”用來(lái)連接連續(xù)的時(shí)段]
*/15 * * * * ls 每15分鐘執(zhí)行一次ls命令 [即每個(gè)小時(shí)的第0 15 30 45 60分鐘執(zhí)行l(wèi)s命令 ]
30 6 */10 * * ls 每個(gè)月中,每隔10天6:30執(zhí)行一次ls命令[即每月的1、11、21、31日是的6:30執(zhí)行一次ls命令。 ]
每天7:50以root 身份執(zhí)行/etc/cron.daily目錄中的所有可執(zhí)行文件
50 7 * * * root run-parts /etc/cron.daily [ 注:run-parts參數(shù)表示,執(zhí)行后面目錄中的所有可執(zhí)行文件。 ]
二、新增調(diào)度任務(wù)
新增調(diào)度任務(wù)可用兩種方法:
1、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤(pán)退出。
2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)。
三、查看調(diào)度任務(wù)
crontab -l //列出當(dāng)前的所有調(diào)度任務(wù)
crontab -l -u jp //列出用戶(hù)jp的所有調(diào)度任務(wù)
四、刪除任務(wù)調(diào)度工作
crontab -r //刪除所有任務(wù)調(diào)度工作
五、任務(wù)調(diào)度執(zhí)行結(jié)果的轉(zhuǎn)向
例1:每天5:30執(zhí)行l(wèi)s命令,并把結(jié)果輸出到/jp/test文件中
30 5 * * * ls /jp/test 21
注:21 表示執(zhí)行結(jié)果及錯(cuò)誤信息。
編輯/etc/crontab 文件配置cron
cron服務(wù)每分鐘不僅要讀一次/var/spool/cron內(nèi)的所有文件,還需要讀一次/etc/crontab,因此我們配置這個(gè)文件也能運(yùn)用cron服務(wù)做一些事情。用crontab配置是針對(duì)某個(gè)用戶(hù)的,而編輯/etc/crontab是針對(duì)系統(tǒng)的任務(wù)。此文件的文件格式是:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //如果出現(xiàn)錯(cuò)誤,或者有數(shù)據(jù)輸出,數(shù)據(jù)作為郵件發(fā)給這個(gè)帳號(hào)
HOME=/ //使用者運(yùn)行的路徑,這里是根目錄
# run-parts
01 * * * * root run-parts /etc/cron.hourly //每小時(shí)執(zhí)行/etc/cron.hourly內(nèi)的腳本
02 4 * * * root run-parts /etc/cron.daily //每天執(zhí)行/etc/cron.daily內(nèi)的腳本
22 4 * * 0 root run-parts /etc/cron.weekly //每星期執(zhí)行/etc/cron.weekly內(nèi)的腳本
42 4 1 * * root run-parts /etc/cron.monthly //每月去執(zhí)行/etc/cron.monthly內(nèi)的腳本
大家注意"run-parts"這個(gè)參數(shù)了,如果去掉這個(gè)參數(shù)的話(huà),后面就可以寫(xiě)要運(yùn)行的某個(gè)腳本名,而不是文件夾名了
例如: 1、在命令行輸入: crontab -e 然后添加相應(yīng)的任務(wù),wq存盤(pán)退出。
2、直接編輯/etc/crontab 文件,即vi /etc/crontab,添加相應(yīng)的任務(wù)
11 2 21 10 * rm -rf /mnt/fb
方法/步驟
1、進(jìn)入linux,使用“ cat /etc/services ”命令,可以查看所有服務(wù)默認(rèn)的端口列表信息。
2、使用“netstat”命令,查看正在連接的端口【連接】列表信息。
3、使用“nestat -a”命令,查看所有服務(wù)端口【監(jiān)聽(tīng)、連接】列表信息。
4、套接字的種類(lèi)除了t(TCP)、u(UDP)之外,還有w(RAW)、x(UNIX)套接字。
5、使用" netstat -ap"查看所有服務(wù)端口和對(duì)應(yīng)的程序名稱(chēng)。
一、ifconfig
自u(píng)buntu17起,已經(jīng)不提供這個(gè)命令了,要自動(dòng)安裝
sudo apt install net-tools
ifconfig -a :查看當(dāng)前系統(tǒng)所有的網(wǎng)絡(luò)接口
ifconfig interface(PS:這里是網(wǎng)絡(luò)接口的名稱(chēng)) down:禁用當(dāng)前網(wǎng)絡(luò)接口
ifconfig interface up :啟用網(wǎng)絡(luò)接口
二、ip命令
1、管理網(wǎng)絡(luò)接口
1)、ip link list 顯示網(wǎng)絡(luò)設(shè)備的運(yùn)行狀態(tài)
2)、ip -s link list 顯示更詳細(xì)的網(wǎng)絡(luò)設(shè)備運(yùn)行狀態(tài)
4)、ip link set dev ens33 mtu 1600: 改變網(wǎng)絡(luò)設(shè)備最大傳輸單元 MTU的值為1600
2、管理ip地址
1)、ip a show dev ens33 顯示指定網(wǎng)絡(luò)接口的ip
2)、ip addr ls ens33
5)、ip -4 addr flush ens33
通過(guò)id修改的ip地址重啟后會(huì)消失。如果要永久保存,則需要修改配置文件
3、管理路由表
1)、ip route show 顯示main 路由表的路由信息
每行定義一個(gè)路由表,前面的數(shù)字為路由編號(hào),后面為路由名稱(chēng)
以上的幾個(gè)路由表為默認(rèn)路由表,用戶(hù)不可以修改
默認(rèn)所有的路由表都會(huì)被插入到254的main表中。在進(jìn)行路由查詢(xún)時(shí),內(nèi)核只使用路由表main
3)、ip route show table local 指定顯示路由表
4、管理策略路由
1)、ip route list 列出當(dāng)前系統(tǒng)的策略路由規(guī)則
2、添加一條到達(dá)網(wǎng)絡(luò)224.0.0.0/28的路由
route add -net 224.0.0.0/28 netmask 224.0.0.0 dev docker0
3、刪除指定的路由記錄224.0.0.0
route del -net 224.0.0.0 netmask 224.0.0.0
route -n 查看路由
5、刪除默認(rèn)網(wǎng)關(guān)
route del default gw 172.17.0.0 dev docker0
route -n
四、netstat命令
1、netstat(network status) 查看各種網(wǎng)絡(luò)信息的,包括網(wǎng)絡(luò)連接、路由表以及網(wǎng)絡(luò)接口的各種統(tǒng)計(jì)數(shù)據(jù)
netstat [options]
常用的幾個(gè)選項(xiàng):
-a :顯示所有處于活動(dòng)狀態(tài)的套接字
-t :顯示TCP/IP協(xié)議的連接信息
-l:列出所有處于監(jiān)聽(tīng)狀態(tài)的套接字
-n:直接顯示ip地址,不轉(zhuǎn)換成域名
-i :列出所有的網(wǎng)絡(luò)接口
-p:顯示使用套接字的進(jìn)程id和程序名
-r:顯示路由表信息
2、netstat -a
顯示所有的端口,包含未監(jiān)聽(tīng)的和監(jiān)聽(tīng)的
3、nestat -at
只顯示TCP/IP協(xié)議的連接
4、netstat -tl
只顯示處于監(jiān)聽(tīng)狀態(tài)的TCP連接
5、netstat -tlanx
顯示數(shù)字形式的ip地址
6、netstat -anp | grep ":80"
排查處于某個(gè)端口被占用導(dǎo)致服務(wù)器無(wú)法啟動(dòng)
7、netstat -i
列出當(dāng)前系統(tǒng)的所有網(wǎng)絡(luò)接口
8、netstat -r
查看路由表信息
該命令是向某臺(tái)主機(jī)( )發(fā)送ICMP數(shù)據(jù)包,并接收響應(yīng)
Ctrl+C退出ping 命令
基本linux命令有哪些呢?
1、ls命令
就是 list 的縮寫(xiě),通過(guò) ls 命令不僅可以查看 linux 文件夾包含的文件,而且可以查看文件權(quán)限(包括目錄、文件夾、文件權(quán)限)查看目錄信息等等。
常用參數(shù)搭配:
ls -a 列出目錄所有文件,包含以.開(kāi)始的隱藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改時(shí)間排序
ls -S 以文件大小排序
ls -h 以易讀大小顯示
ls -l 除了文件名之外,還將文件的權(quán)限、所有者、文件大小等信息詳細(xì)列出來(lái)
實(shí)例:
(1) 按易讀方式按時(shí)間反序排序,并顯示文件詳細(xì)信息
ls -lhrt
(2) 按大小反序顯示文件詳細(xì)信息
ls -lrS
(3)列出當(dāng)前目錄中所有以"t"開(kāi)頭的目錄的詳細(xì)內(nèi)容
ls -l t*
(4) 列出文件絕對(duì)路徑(不包含隱藏文件)
ls | sed "s:^:`pwd`/:"
(5) 列出文件絕對(duì)路徑(包含隱藏文件)
find $pwd -maxdepth 1 | xargs ls -ld
2、cd 命令
cd(changeDirectory) 命令語(yǔ)法:
cd [目錄名]
說(shuō)明:切換當(dāng)前目錄至 dirName。
實(shí)例:
(1)進(jìn)入要目錄
cd /
(2)進(jìn)入 "home" 目錄
cd ~
(3)進(jìn)入上一次工作路徑
cd -
(4)把上個(gè)命令的參數(shù)作為cd參數(shù)使用。
cd !$
3、pwd 命令
pwd 命令用于查看當(dāng)前工作目錄路徑。
實(shí)例:
(1)查看當(dāng)前路徑
pwd
(2)查看軟鏈接的實(shí)際路徑
pwd -P
4、mkdir 命令
mkdir 命令用于創(chuàng)建文件夾。
可用選項(xiàng):
-m: 對(duì)新建目錄設(shè)置存取權(quán)限,也可以用 chmod 命令設(shè)置;
-p: 可以是一個(gè)路徑名稱(chēng)。此時(shí)若路徑中的某些目錄尚不存在,加上此選項(xiàng)后,系統(tǒng)將自動(dòng)建立好那些尚不在的目錄,即一次可以建立多個(gè)目錄。
實(shí)例:
(1)當(dāng)前工作目錄下創(chuàng)建名為 t的文件夾
mkdir t
(2)在 tmp 目錄下創(chuàng)建路徑為 test/t1/t 的目錄,若不存在,則創(chuàng)建:
mkdir -p /tmp/test/t1/t
5、rm 命令
刪除一個(gè)目錄中的一個(gè)或多個(gè)文件或目錄,如果沒(méi)有使用 -r 選項(xiàng),則 rm 不會(huì)刪除目錄。如果使用 rm 來(lái)刪除文件,通常仍可以將該文件恢復(fù)原狀。
rm [選項(xiàng)] 文件…
實(shí)例:
(1)刪除任何 .log 文件,刪除前逐一詢(xún)問(wèn)確認(rèn):
rm -i *.log
(2)刪除 test 子目錄及子目錄中所有檔案刪除,并且不用一一確認(rèn):
rm -rf test
(3)刪除以 -f 開(kāi)頭的文件
rm -- -f*
6、rmdir 命令
從一個(gè)目錄中刪除一個(gè)或多個(gè)子目錄項(xiàng),刪除某目錄時(shí)也必須具有對(duì)其父目錄的寫(xiě)權(quán)限。
注意:不能刪除非空目錄
實(shí)例:
(1)當(dāng) parent 子目錄被刪除后使它也成為空目錄的話(huà),則順便一并刪除:
rmdir -p parent/child/child11
7、mv 命令
移動(dòng)文件或修改文件名,根據(jù)第二參數(shù)類(lèi)型(如目錄,則移動(dòng)文件;如為文件則重命令該文件)。
當(dāng)?shù)诙€(gè)參數(shù)為目錄時(shí),第一個(gè)參數(shù)可以是多個(gè)以空格分隔的文件或目錄,然后移動(dòng)第一個(gè)參數(shù)指定的多個(gè)文件到第二個(gè)參數(shù)指定的目錄中。
實(shí)例:
(1)將文件 test.log 重命名為 test1.txt
mv test.log test1.txt
(2)將文件 log1.txt,log2.txt,log3.txt 移動(dòng)到根的 test3 目錄中
mv llog1.txt log2.txt log3.txt /test3
(3)將文件 file1 改名為 file2,如果 file2 已經(jīng)存在,則詢(xún)問(wèn)是否覆蓋
mv -i log1.txt log2.txt
(4)移動(dòng)當(dāng)前文件夾下的所有文件到上一級(jí)目錄
mv * ../
8、cp 命令
將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。
注意:命令行復(fù)制,如果目標(biāo)文件已經(jīng)存在會(huì)提示是否覆蓋,而在 shell 腳本中,如果不加 -i 參數(shù),則不會(huì)提示,而是直接覆蓋!
-i 提示
-r 復(fù)制目錄及目錄內(nèi)所有項(xiàng)目
-a 復(fù)制的文件與原文件時(shí)間一樣
實(shí)例:
(1)復(fù)制 a.txt 到 test 目錄下,保持原文件時(shí)間,如果原文件存在提示是否覆蓋。
cp -ai a.txt test
(2)為 a.txt 建議一個(gè)鏈接(快捷方式)
cp -s a.txt link_a.txt
9、cat 命令
cat 主要有三大功能:
1.一次顯示整個(gè)文件:
cat filename
2.從鍵盤(pán)創(chuàng)建一個(gè)文件:
cat filename
只能創(chuàng)建新文件,不能編輯已有文件。
3.將幾個(gè)文件合并為一個(gè)文件:
cat file1 file2 file
-b 對(duì)非空輸出行號(hào)
-n 輸出所有行號(hào)
實(shí)例:
(1)把 log2012.log 的文件內(nèi)容加上行號(hào)后輸入 log2013.log 這個(gè)文件里
cat -n log2012.log log2013.log
(2)把 log2012.log 和 log2013.log 的文件內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 log.log 里
cat -b log2012.log log2013.log log.log
(3)使用 here doc 生成新文件
cat log.txt EOF
Hello
World
PWD=$(pwd)
EOF
ls -l log.txt
cat log.txt
Hello
World
PWD=/opt/soft/test
(4)反向列示
tac log.txt
PWD=/opt/soft/test
World
Hello
10、more 命令
功能類(lèi)似于 cat, more 會(huì)以一頁(yè)一頁(yè)的顯示方便使用者逐頁(yè)閱讀,而最基本的指令就是按空白鍵(space)就往下一頁(yè)顯示,按 b 鍵就會(huì)往回(back)一頁(yè)顯示。
命令參數(shù):
+n 從笫 n 行開(kāi)始顯示
-n 定義屏幕大小為n行
+/pattern 在每個(gè)檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開(kāi)始顯示
-c 從頂部清屏,然后顯示
-d 提示“Press space to continue,’q’ to quit(按空格鍵繼續(xù),按q鍵退出)”,禁用響鈴功能
-l 忽略Ctrl+l(換頁(yè))字符
-p 通過(guò)清除窗口而不是滾屏來(lái)對(duì)文件進(jìn)行換頁(yè),與-c選項(xiàng)相似
-s 把連續(xù)的多個(gè)空行顯示為一行
-u 把文件內(nèi)容中的下畫(huà)線(xiàn)去掉
常用操作命令:
Enter 向下 n 行,需要定義。默認(rèn)為 1 行
Ctrl+F 向下滾動(dòng)一屏
空格鍵 向下滾動(dòng)一屏
Ctrl+B 返回上一屏
= 輸出當(dāng)前行的行號(hào)
:f 輸出文件名和當(dāng)前行的行號(hào)
V 調(diào)用vi編輯器
!命令 調(diào)用Shell,并執(zhí)行命令
q 退出more
實(shí)例:
(1)顯示文件中從第3行起的內(nèi)容
more +3 text.txt
(2)在所列出文件目錄詳細(xì)信息,借助管道使每次顯示 5 行
ls -l | more -5
按空格顯示下 5 行。
11、less 命令
less 與 more 類(lèi)似,但使用 less 可以隨意瀏覽文件,而 more 僅能向前移動(dòng),卻不能向后移動(dòng),而且 less 在查看之前不會(huì)加載整個(gè)文件。
常用命令參數(shù):
-i 忽略搜索時(shí)的大小寫(xiě)
-N 顯示每行的行號(hào)
-o 文件名 將less 輸出的內(nèi)容在指定文件中保存起來(lái)
-s 顯示連續(xù)空行為一行
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
N:反向重復(fù)前一個(gè)搜索(與 / 或 ? 有關(guān))
-x 數(shù)字 將“tab”鍵顯示為規(guī)定的數(shù)字空格
b 向后翻一頁(yè)
d 向后翻半頁(yè)
h 顯示幫助界面
Q 退出less 命令
u 向前滾動(dòng)半頁(yè)
y 向前滾動(dòng)一行
空格鍵 滾動(dòng)一行
回車(chē)鍵 滾動(dòng)一頁(yè)
[pagedown]: 向下翻動(dòng)一頁(yè)
[pageup]: 向上翻動(dòng)一頁(yè)
實(shí)例:
(1)ps 查看進(jìn)程信息并通過(guò) less 分頁(yè)顯示
ps -aux | less -N
(2)查看多個(gè)文件
less 1.log 2.log
可以使用 n 查看下一個(gè),使用 p 查看前一個(gè)。
12、head 命令
head 用來(lái)顯示檔案的開(kāi)頭至標(biāo)準(zhǔn)輸出中,默認(rèn) head 命令打印其相應(yīng)文件的開(kāi)頭 10 行。
常用參數(shù):
-n行數(shù) 顯示的行數(shù)(行數(shù)為復(fù)數(shù)表示從最后向前數(shù))
實(shí)例:
(1)顯示 1.log 文件中前 20 行
head 1.log -n 20
(2)顯示 1.log 文件前 20 字節(jié)
head -c 20 log2014.log
(3)顯示 t.log最后 10 行
head -n -10 t.log
13、tail 命令
用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用查看日志文件。
常用參數(shù):
-f 循環(huán)讀?。ǔS糜诓榭催f增的日志文件)
-n行數(shù) 顯示行數(shù)(從后向前)
(1)循環(huán)讀取逐漸增加的文件內(nèi)容
ping 127.0.0.1 ping.log
后臺(tái)運(yùn)行:可使用 jobs -l 查看,也可使用 fg 將其移到前臺(tái)運(yùn)行。
tail -f ping.log
(查看日志)
14、which 命令
在 linux 要查找某個(gè)文件,但不知道放在哪里了,可以使用下面的一些命令來(lái)搜索:
which 查看可執(zhí)行文件的位置。
whereis 查看文件的位置。
locate 配合數(shù)據(jù)庫(kù)查看文件位置。
find 實(shí)際搜尋硬盤(pán)查詢(xún)文件名稱(chēng)。
which 是在 PATH 就是指定的路徑中,搜索某個(gè)系統(tǒng)命令的位置,并返回第一個(gè)搜索結(jié)果。使用 which 命令,就可以看到某個(gè)系統(tǒng)命令是否存在,以及執(zhí)行的到底是哪一個(gè)位置的命令。
常用參數(shù):
-n 指定文件名長(zhǎng)度,指定的長(zhǎng)度必須大于或等于所有文件中最長(zhǎng)的文件名。
實(shí)例:
(1)查看 ls 命令是否存在,執(zhí)行哪個(gè)
which ls
(2)查看 which
which which
(3)查看 cd
which cd(顯示不存在,因?yàn)?cd 是內(nèi)建命令,而 which 查找顯示是 PATH 中的命令)
查看當(dāng)前 PATH 配置:
echo $PATH
或使用 env 查看所有環(huán)境變量及對(duì)應(yīng)值
15、whereis 命令
whereis 命令只能用于程序名的搜索,而且只搜索二進(jìn)制文件(參數(shù)-b)、man說(shuō)明文件(參數(shù)-m)和源代碼文件(參數(shù)-s)。如果省略參數(shù),則返回所有信息。whereis 及 locate 都是基于系統(tǒng)內(nèi)建的數(shù)據(jù)庫(kù)進(jìn)行搜索,因此效率很高,而find則是遍歷硬盤(pán)查找文件。
常用參數(shù):
-b 定位可執(zhí)行文件。
-m 定位幫助文件。
-s 定位源代碼文件。
-u 搜索默認(rèn)路徑下除可執(zhí)行文件、源代碼文件、幫助文件以外的其它文件。
實(shí)例:
(1)查找 locate 程序相關(guān)文件
whereis locate
(2)查找 locate 的源碼文件
whereis -s locate
(3)查找 lcoate 的幫助文件
whereis -m locate