一、首先要弄清幾個(gè)概念:
創(chuàng)新互聯(lián)主要從事網(wǎng)頁(yè)設(shè)計(jì)、PC網(wǎng)站建設(shè)(電腦版網(wǎng)站建設(shè))、wap網(wǎng)站建設(shè)(手機(jī)版網(wǎng)站建設(shè))、成都響應(yīng)式網(wǎng)站建設(shè)公司、程序開發(fā)、網(wǎng)站優(yōu)化、微網(wǎng)站、小程序制作等,憑借多年來在互聯(lián)網(wǎng)的打拼,我們?cè)诨ヂ?lián)網(wǎng)網(wǎng)站建設(shè)行業(yè)積累了豐富的做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)絡(luò)營(yíng)銷經(jīng)驗(yàn),集策劃、開發(fā)、設(shè)計(jì)、營(yíng)銷、管理等多方位專業(yè)化運(yùn)作于一體。
1. “系統(tǒng)時(shí)間”與“硬件時(shí)間”
系統(tǒng)時(shí)間: 一般說來就是我們執(zhí)行 date 命令看到的時(shí)間,linux系統(tǒng)下所有的時(shí)間調(diào)用(除了直接訪問硬件時(shí)間的命令)都是使用的這個(gè)時(shí)間。
硬件時(shí)間: 主板上BIOS中的時(shí)間,由主板電池供電來維持運(yùn)行,系統(tǒng)開機(jī)時(shí)要讀取這個(gè)時(shí)間,并根據(jù)它來設(shè)定系統(tǒng)時(shí)間(注意:系統(tǒng)啟動(dòng)時(shí)根據(jù)硬件時(shí)間設(shè)定系統(tǒng)時(shí)間的過程可能存在時(shí)區(qū)換算,這要視具體的系統(tǒng)及相關(guān)設(shè)置而定)。
2. “UTC時(shí)間”與“本地時(shí)間”
UTC時(shí)間:Coordinated Universal 8 e2 i( H7 t0 ^/ ^Time 世界協(xié)調(diào)時(shí)間(又稱世界標(biāo)準(zhǔn)時(shí)間、世界統(tǒng)一時(shí)間),在一般精度要求下,它與GMT(Greenwich Mean Time,格林威治標(biāo)準(zhǔn)時(shí)間)是一樣的,其實(shí)也就是說 GMT≈UTC,但 UTC 是以原子鐘校準(zhǔn)的,更精確。
本地時(shí)間:由于處在不同的時(shí)區(qū),本地時(shí)間一般與UTC是不同的,換算方法就是
本地時(shí)間 = UTC + 時(shí)區(qū) 或 UTC = 本地時(shí)間 - 時(shí)區(qū)
時(shí)區(qū)東為正,西為負(fù),例如在中國(guó),本地時(shí)間都使用北京時(shí)間,在linux上顯示就是 CST(China Standard Time,中國(guó)標(biāo)準(zhǔn)時(shí),注意美國(guó)的中部標(biāo)準(zhǔn)時(shí)Central Standard Time也縮寫為CST,與這里的CST不是一回事?。?,時(shí)區(qū)為東八區(qū),也就是 +8 區(qū),所以 CST=UTC+(+8小時(shí)) 或 UTC=CST-(+8小時(shí))。
二、設(shè)置硬件時(shí)鐘 UTC
硬件時(shí)間 /sbin/hwclock
直接調(diào)用 /sbin/hwclock 顯示的時(shí)間就是 BIOS 中的時(shí)間嗎?未必!這要看 /etc/sysconfig/clock 中是否啟用了UTC,如果啟用了UTC(UTC=true),顯示的其實(shí)是經(jīng)過時(shí)區(qū)換算的時(shí)間而不是BIOS中真正的時(shí)間,如果加上 --localtime 選項(xiàng),則得到的總是 BIOS 中實(shí)際的時(shí)間.
[12-01 19:07 ~]# hwclock
2009年12月07日 星期一 14時(shí)28分43秒 -0.611463 seconds
[12-01 19:07 ~]# hwclock --utc
2009年12月07日 星期一 14時(shí)28分46秒 -0.594189 seconds
[12-01 19:07 ~]# hwclock --localtime
2009年12月07日 星期一 06時(shí)28分50秒 -0.063875 seconds
三、最后總結(jié)
1)/etc/sysconfig/clock 文件,只對(duì) hwclock 命令有效,且只在系統(tǒng)啟動(dòng)和關(guān)閉的時(shí)候才有用(修改了其中的 UTC=true 到 UTC=false 的前后,執(zhí)行 hwclock (--utc, 或 --localtime) 都沒有變化,要重啟系統(tǒng)后才生效);
2)/etc/rc.d/rc.sysinit 文件,run once at boot time,其中有從硬件時(shí)鐘同步時(shí)間到系統(tǒng)時(shí)間的操作;
3)hwclock --localtime 的輸出,才是硬件時(shí)鐘真正的時(shí)間。如果輸出結(jié)果帶時(shí)區(qū)(比如CST),還要看/etc/sysconfig/clock里的UTC參數(shù),如果 UTC=false,那時(shí)區(qū)有意義;如果 UTC=true,那時(shí)區(qū)沒意義,實(shí)際上是UTC時(shí)間。
4)在 /etc/sysconfig/clock 中 UTC=false 時(shí),date、hwclock、hwclcok --localtime 輸出的時(shí)間應(yīng)該都一致,且此時(shí) hwclock --utc是沒有意義的;
5)在 /etc/sysconfig/clock 中 UTC=ture 時(shí),date、hwclock 的輸出是一致的,hwclock --localtime 的輸出則是UTC時(shí)間;
6)如果不想在輸出中帶時(shí)區(qū),則 export LANG=C ,然后再運(yùn)行 hwclock 就沒有什么CST了,免得時(shí)區(qū)誤導(dǎo)你;
7)hwclock --utc 容易理解出錯(cuò)
8)系統(tǒng)關(guān)閉時(shí)會(huì)同步系統(tǒng)時(shí)間到硬件時(shí)鐘,系統(tǒng)啟動(dòng)時(shí)會(huì)從硬件時(shí)鐘讀取時(shí)間更新到系統(tǒng),這2個(gè)步驟都要根據(jù) /etc/sysconfig/clock 文件中UTC的參數(shù)來設(shè)置時(shí)區(qū)轉(zhuǎn)換。
. 前言
如果你想修改Linux系統(tǒng)里的時(shí)間,本文合適你。Linux上有多種修改時(shí)間的命令工具,本文介紹最常用、最通用的方法。
?
linux修改時(shí)間
先來了解世界時(shí)間的標(biāo)準(zhǔn),包括GMT、UTC、CST、DST、以及操作系統(tǒng)同步時(shí)間的方式
1.1 UTC
整個(gè)地球分為二十四時(shí)區(qū),每個(gè)時(shí)區(qū)都有自己的本地時(shí)間。在國(guó)際無線電通信場(chǎng)合,為了統(tǒng)一起見,使用一個(gè)統(tǒng)一的時(shí)間,稱為通用協(xié)調(diào)時(shí)(UTC, Universal Time Coordinated)。
1.2 GMT
格林威治標(biāo)準(zhǔn)時(shí)間 (Greenwich Mean Time)指位于英國(guó)倫敦郊區(qū)的皇家格林尼治天文臺(tái)的標(biāo)準(zhǔn)時(shí)間,因?yàn)楸境踝游缇€被定義在通過那里的經(jīng)線。
UT(世界時(shí))和GMT(格林威治標(biāo)準(zhǔn)時(shí))是相同的時(shí)間標(biāo)準(zhǔn),都是基于天體觀察的。
UT 是相同標(biāo)準(zhǔn)的“科學(xué)”名稱。GMT:格林威治時(shí)間,是標(biāo)準(zhǔn)的“民間”名稱。
因此,格林威治標(biāo)準(zhǔn)時(shí)(GMT)和世界時(shí) (UT) 是相等的。
UTC是我們現(xiàn)在用的時(shí)間標(biāo)準(zhǔn),GMT是老的時(shí)間計(jì)量標(biāo)準(zhǔn)。UTC是根據(jù)原子鐘來計(jì)算時(shí)間,而GMT是根據(jù)地球的自轉(zhuǎn)和公轉(zhuǎn)來計(jì)算時(shí)間,也就是太陽每天經(jīng)過位于英國(guó)倫敦郊區(qū)的皇家格林威治天文臺(tái)的時(shí)間就是中午12點(diǎn)。由于現(xiàn)在世界上最精確的原子鐘50億年才會(huì)誤差1秒,可以說非常精確。而GMT因?yàn)槭歉鶕?jù)地球的轉(zhuǎn)動(dòng)來計(jì)算時(shí)間的,而地球的自轉(zhuǎn)正在緩速變慢,所以使用GMT的話,會(huì)不太精準(zhǔn),一般情況那感覺不到差異,但是UTC更加科學(xué)和精確。
1.3 CST
中國(guó)標(biāo)準(zhǔn)時(shí)間 (China Standard Time)
1.4 DST
夏令時(shí)(Daylight Saving Time) 指在夏天太陽升起的比較早時(shí),將時(shí)鐘撥快一小時(shí),以提早日光的使用。(中國(guó)不使用)
我們需要知道的是:
GMT + 8 = UTC + 8 = CST
1.5 操作系統(tǒng)時(shí)間
以Linux為例,其實(shí)Windows或者其他操作系統(tǒng)也是類似的。
Linux時(shí)間有兩個(gè)時(shí)間:
Wall Time:系統(tǒng)時(shí)間,該時(shí)間由系統(tǒng)維護(hù),可以是臨時(shí),也可以是網(wǎng)絡(luò)上同步回來的,也可以是從硬件讀取出來的,前提條件是系統(tǒng)服務(wù)正常運(yùn)行,如果系統(tǒng)關(guān)機(jī)了,那就不存在Wall Time
RTC Time:RTC(Real-Time Clock)或CMOS時(shí)間,即硬件時(shí)間,你可以理解為主板BIOS在一聲聲哀嚎聲中,數(shù)學(xué)老師帶著一摞試卷走了進(jìn)來。
好像是因?yàn)槎焯炖?,體育老師凍感冒了。
所以變成了兩節(jié)數(shù)學(xué)課,順便考個(gè)試。
數(shù)學(xué)老師名叫歐島,一個(gè)很富有數(shù)學(xué)氣息的名字,常年帶著一個(gè)黑框眼睛。
卷子陸續(xù)分發(fā)。
作為一個(gè)學(xué)渣,蘇牧無奈的拿出了數(shù)學(xué)參考資料,想碰碰運(yùn)氣看能不能找到原題。
“叮!查看了數(shù)學(xué)題目,數(shù)學(xué)積分+1,當(dāng)前積分1/100,等級(jí):一級(jí)”
突然,從腦海中冒出來的聲音,將他嚇了一大跳,差點(diǎn)沒從凳子上滑落下來。
一旁的同桌顏小珂忍住沒有笑場(chǎng)。
歐島則是狠狠的瞪了蘇牧一眼。
“???…”
蘇牧瞪大了眼睛,有些不可置信。
“這是什么鬼東西?這是系統(tǒng)??居然真的有系統(tǒng)這種東西?”
蘇牧繼續(xù)翻動(dòng),又出現(xiàn)了同樣的聲響。
“叮!您查看了數(shù)學(xué)題目,數(shù)學(xué)積分+1,當(dāng)前積分2/100,等級(jí):一級(jí)”
他只是瞟了一眼,居然就增加了積分?
蘇牧覺得自己的腦子清明了些。
這些陌生的數(shù)學(xué)題目,似乎看起來也熟悉了幾分。
他越發(fā)的激動(dòng)起來。
這些都是真正出現(xiàn)在他眼前的變化!
蘇牧翻書的動(dòng)作越來越快,積分也越來越多,直到歐島走過來站到了他的面前,才反應(yīng)過來迅速收了回去。
這個(gè)時(shí)候,他的積分已經(jīng)達(dá)到了81/100。
他并沒有慌張,而是繼續(xù)將試卷上的題目查看了一遍。
終于,系統(tǒng)迎來了新的提示音。
“叮,您的數(shù)學(xué)積分已經(jīng)足夠,等級(jí):二級(jí),當(dāng)前積分0/1000!”
這一瞬間,蘇牧仿佛像醍醐灌頂一般,曾經(jīng)那些陌生的數(shù)學(xué)題,仿佛變成了多年的好友!
他居然!
看懂了!
看懂了??!
居然看懂了?。?/p>
蘇牧的內(nèi)心頓時(shí)內(nèi)流滿面,頗有苦盡甘來的感覺。
仿佛是要檢驗(yàn)自己的成果,蘇牧的心思完全沉寂在了試卷之中,這是一個(gè)學(xué)渣對(duì)于知識(shí)的渴望。
時(shí)間一點(diǎn)一滴的過去,就連蘇牧自己都沒有發(fā)現(xiàn)。
可惜的是,雖然他的數(shù)學(xué)已經(jīng)達(dá)到了二級(jí),但還是有些題目沒辦法運(yùn)算出來。
“?!?.”
這一次不是系統(tǒng)的提示音,而是下課的鈴聲。
蘇牧真的是頭一次感受到了時(shí)間過的如此之快。
曾經(jīng)漫長(zhǎng)的兩個(gè)小時(shí),現(xiàn)在居然還讓他有些意猶未盡。
這就是學(xué)霸的感覺嗎?他默默的想到。
這張?jiān)嚲?,蘇牧覺得自己應(yīng)該是103分。
因?yàn)椴粫?huì)的題目他都空著。
而那些簡(jiǎn)單一點(diǎn)的題目,蘇牧有一種迷之自信。
他得出的答案,一定是正確答案!
……
“我要好好學(xué)習(xí)了。”
強(qiáng)忍住內(nèi)心的激動(dòng),蘇牧擺正了
1 TIMEDATECTL命令
該命令是作為systemd系統(tǒng)和服務(wù)管理器的一部分分發(fā)的工具,可以用它來查看和更改系統(tǒng)時(shí)鐘的配置,包括更改當(dāng)前的日期和時(shí)間、設(shè)置時(shí)區(qū)以及可以激活與遠(yuǎn)端服務(wù)器系統(tǒng)時(shí)鐘的自動(dòng)同步,是紅帽企業(yè)版 7 版本新增的命令。
1.1 展示當(dāng)前日期和時(shí)間
可以使用timedatectl命令來展示當(dāng)前日期和時(shí)間,并且有系統(tǒng)和硬件時(shí)鐘的配置的詳細(xì)信息。
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 15:02:27 CST
Universal time: Sat 2019-09-21 07:02:27 UTC
RTC time: Sat 2019-09-21 07:02:27
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
1.2 更改當(dāng)前時(shí)間
更改當(dāng)前時(shí)間,命令格式為:timedatectl set-time HH:MI:SS。
該命令同時(shí)更改系統(tǒng)時(shí)間和硬件時(shí)鐘,執(zhí)行結(jié)果與使用命令date --set 和hwclock --systohc的效果相同。
[root@strong ~]# timedatectl set-time 20:00:00
[root@strong ~]# timedatectl
Local time: Sat 2019-09-21 20:00:04 CST
Universal time: Sat 2019-09-21 12:00:04 UTC
RTC time: Sat 2019-09-21 12:00:05
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@strong ~]# timedatectl set-time 2019-09-15
[root@strong ~]# timedatectl
Local time: Sun 2019-09-15 00:00:03 CST
Universal time: Sat 2019-09-14 16:00:03 UTC
RTC time: Sat 2019-09-14 16:00:03
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
僅僅更改日期,時(shí)間會(huì)變?yōu)?0:00:00,故更改日期時(shí)需把對(duì)應(yīng)的時(shí)間加上,例如:timedatectl set-time "2019-09-21 15:16:00"。
1.4 更改時(shí)區(qū)
1.4.1 列出所有時(shí)區(qū)
[root@strong ~]# timedatectl list-timezones
1.4.2 更改時(shí)區(qū)
[root@strong ~]# timedatectl set-timezone Asia/Shanghai
2 DATE命令
該命令在所有Linux系統(tǒng)都可用,用于設(shè)置和查看當(dāng)前日期和時(shí)間,常用于腳本中以格式化的形式用于展示系統(tǒng)時(shí)間的詳細(xì)信息。
2.1 展示當(dāng)前日期和時(shí)間
1)不帶任何格式展示
[root@strong ~]# date
Sat Sep 21 15:24:57 CST 2019
默認(rèn)展示的是本地時(shí)間,以UTC的方式展示,需使用date --utc或date -u。
[root@strong ~]# date --utc
Sat Sep 21 07:25:50 UTC 2019
2)格式化展示
客制化日期和時(shí)間的展示格式,使用命令:date +"格式"。
常用的格式為:
控制格式
描述
%H
以HH格式展示小時(shí);
%M
以MM格式展示分鐘;
%S
以SS格式展示秒;
%d
以DD格式展示天數(shù);
%m
以MM格式展示月;
%Y
以YYYY格式展示年;
%Z
時(shí)區(qū);
%F
以YYYY-MM-DD格式展示日期,和%Y-%m-%d等價(jià);
%T
以HH:MM:SS格式展示時(shí)間,和%H:%M:%S等價(jià);
[root@strong ~]# date
Sat Sep 21 15:37:18 CST 2019
[root@strong ~]# date +"%Y-%m-%d %H:%M:%S"
2019-09-21 15:38:00
2.2 更改當(dāng)前時(shí)間
更改當(dāng)前時(shí)間,命令格式為:date --set HH:MM:SS。
[root@strong ~]# date --set 15:40:20
Sat Sep 21 15:40:20 CST 2019
2.3 更改當(dāng)前日期
更改當(dāng)前日期,命令格式為:date --set YYYY-MM-DD。
[root@strong ~]# date --set 2019-09-25
Wed Sep 25 00:00:00 CST 2019
僅僅更改日期,時(shí)間會(huì)變?yōu)?0:00:00,故更改日期時(shí)需把對(duì)應(yīng)的時(shí)間加上,例如:
[root@strong ~]# date --set "2019-09-21 15:42:35"
Sat Sep 21 15:42:35 CST 2019。
3 CLOCK命令
該命令是用于訪問硬件時(shí)鐘的工具,也稱為Real Time Clock(RTC),對(duì)應(yīng)的設(shè)置保存在/etc/adjtime文件中。硬件時(shí)鐘獨(dú)立于操作系統(tǒng),即使系統(tǒng)關(guān)閉,它仍然工作,用于從硬件時(shí)鐘展示時(shí)間。
3.1 展示當(dāng)前日期和時(shí)間
[root@strong ~]# hwclock
Sat 21 Sep 2019 03:51:24 PM CST -0.368709 seconds
3.2 設(shè)置日期和時(shí)間
設(shè)置日期和時(shí)間的命令為:hwclock --set --date "dd mmm yyyy HH:MM"
[root@strong ~]# hwclock --set --date "21 Sep 2019 16:02:25"
[root@strong ~]# hwclock
Sat 21 Sep 2019 04:02:35 PM CST -0.342764 seconds
3.3 同步日期和時(shí)間
可以使用hwclock命令在硬件時(shí)鐘和當(dāng)前系統(tǒng)時(shí)間直接互相同步。
3.3.1 系統(tǒng)時(shí)間同步到硬件時(shí)鐘
[root@strong ~]# hwclock --systohc
3.3.2 硬件時(shí)鐘同步到系統(tǒng)時(shí)間
[root@strong ~]# hwclock --hctosys
我們一般使用“date -s”命令來修改系統(tǒng)時(shí)間。比如將系統(tǒng)時(shí)間設(shè)定成1996年6月10日的命令如下。
#date -s 06/10/96
將系統(tǒng)時(shí)間設(shè)定成下午1點(diǎn)12分0秒的命令如下。
#date -s 13:12:00
注意,這里說的是系統(tǒng)時(shí)間,是linux由操作系統(tǒng)維護(hù)的。
在系統(tǒng)啟動(dòng)時(shí),Linux操作系統(tǒng)將時(shí)間從CMOS中讀到系統(tǒng)時(shí)間變量中,以后修改時(shí)間通過修改系統(tǒng)時(shí)間實(shí)現(xiàn)。為了保持系統(tǒng)時(shí)間與CMOS時(shí)間的一致性,Linux每隔一段時(shí)間會(huì)將系統(tǒng)時(shí)間寫入CMOS。由于該同步是每隔一段時(shí)間(大約是11分鐘)進(jìn)行的,在我們執(zhí)行date -s后,如果馬上重起機(jī)器,修改時(shí)間就有可能沒有被寫入CMOS,這就是問題的原因。如果要確保修改生效可以執(zhí)行如下命令。
#clock -w
這個(gè)命令強(qiáng)制把系統(tǒng)時(shí)間寫入CMOS
如果你的 Linux 系統(tǒng)時(shí)區(qū)配置不正確,必需要手動(dòng)調(diào)整到正確的當(dāng)?shù)貢r(shí)區(qū)。NTP 對(duì)時(shí)間的同步處理只計(jì)算當(dāng)?shù)貢r(shí)間與 UTC 時(shí)間的偏移量,因此配置一個(gè) NTP 對(duì)時(shí)間進(jìn)行同步并不能解決時(shí)區(qū)不正確的問題。所以大家在用了國(guó)外云計(jì)算服務(wù)商如 Microsoft Azure 或其它 VPS、虛擬機(jī)時(shí),需要注意是否與中國(guó)大陸的時(shí)區(qū)一致。
查看Linux當(dāng)前時(shí)區(qū)
你可以使用如下命令非常容易地就查看到 linux 系統(tǒng)的當(dāng)前時(shí)區(qū):
date
ls -l /etc/localtime
linux-time02
獲取時(shí)區(qū)TZ值
要更改 Linux 系統(tǒng)時(shí)區(qū)首先得獲知你所當(dāng)?shù)貢r(shí)區(qū)的 TZ 值,使用 tzselect 命令即可查看并選擇已安裝的時(shí)區(qū)文件。
執(zhí)行 tzselect 命令
linux-time03
通過向?qū)нx擇你所在大洲、國(guó)家和城市
tzselect 最終將以 Posix TZ 格式(例如 Asia/Shanghai)輸出你所在的時(shí)區(qū)值,將此記錄下來。
linux-time03
更改每個(gè)用戶的時(shí)區(qū)
Linux 用戶一個(gè)多用戶系統(tǒng),每個(gè)用戶都可以配置自己所需的時(shí)區(qū),你可以為自己新增一個(gè) TZ 環(huán)境變量:
export TZ='Asia/Shanghai'
執(zhí)行完成之后需要重新登錄系統(tǒng)或刷新 ~/.bashrc 生效。
source ~/.bashrc
更改Linux系統(tǒng)時(shí)區(qū)
要更改 Linux 系統(tǒng)整個(gè)系統(tǒng)范圍的時(shí)區(qū)可以使用如下命令:
sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
注意:/usr/share/zoneinfo/Asia/Shanghai 中的具體時(shí)區(qū)請(qǐng)用自己獲取到的 TZ 值進(jìn)行替換。
使用Systemd更改Linux系統(tǒng)時(shí)區(qū)
如果你使用的 Linux 系統(tǒng)使用 Systemd,還可以使用 timedatectl 命令來更改 Linux 系統(tǒng)范圍的時(shí)區(qū)。在 Systemd 下有一個(gè)名為 systemd-timedated 的系統(tǒng)服務(wù)負(fù)責(zé)調(diào)整系統(tǒng)時(shí)鐘和時(shí)區(qū),我們可以使用 timedatectl 命令對(duì)此系統(tǒng)服務(wù)進(jìn)行配置。
sudo timedatectl set-timezone 'Asia/Shanghai'
linux-time05
最后,如果你發(fā)現(xiàn) Ubuntu 與 Windows 雙系統(tǒng)時(shí)間不同步,可以參考我們之前的文章說明和解決辦法。
在前面的兩個(gè)章節(jié)中,我們主要介紹了Linux基本知識(shí)和虛擬機(jī)的安裝,從當(dāng)前章節(jié)開始,我們一起學(xué)習(xí)下Linux的基本命令,在當(dāng)前章節(jié),我們先簡(jiǎn)單的學(xué)習(xí)下一些系統(tǒng)的基本命令,慢慢的由淺入深,在后面的章節(jié)中我們將學(xué)習(xí)其他的命令比如文件操作、備份壓縮等
命令我們可以理解成在Windows中我們常常為了查看ip輸入的ipconfig,在Linux中也有很多的命令,比如操作目錄、文件、網(wǎng)絡(luò)、磁盤等等命令
使用者權(quán)限:管理員用戶
參數(shù)說明:
添加用戶czbk(傳智播客的首拼)執(zhí)行
我們使用useradd命令創(chuàng)建了一個(gè)用戶czbk
useradd 可用來建立用戶帳號(hào)。帳號(hào)建好之后,再用 passwd 設(shè)定帳號(hào)的密碼。
執(zhí)行如下
由上圖我們發(fā)現(xiàn),我們?cè)谑褂胾seradd新增用戶的時(shí)候,出現(xiàn)了權(quán)限不足,也就是說我們使用用戶itcast沒有創(chuàng)建用戶的權(quán)限。
我們通過管理員賬號(hào)root進(jìn)行創(chuàng)建,首先我們從控制臺(tái)中切換到root
在 密碼的地方輸入我們的root密碼【root】即可進(jìn)入到root用戶下。
我們?cè)趓oot下繼續(xù)創(chuàng)建czbk用戶
以下是useradd常用選項(xiàng)
用戶管理的一項(xiàng)重要內(nèi)容是用戶口令的管理。用戶賬號(hào)剛創(chuàng)建時(shí)沒有口令,但是被系統(tǒng)鎖定,無法使用,必須為其指定口令后才可以使用
使用者權(quán)限:管理員用戶
指定和修改用戶口令的Shell命令是 passwd 。超級(jí)用戶可以為自己和其他用戶指定口令,普通用戶只能用它修改自己的口令。命令的格式為:
可使用的選項(xiàng):
設(shè)置當(dāng)前用戶的口令
此處我們?cè)O(shè)置密碼和itcast賬號(hào)密碼一致,為【Itheima888】
usermod 命令通過修改系統(tǒng)帳戶文件來修改用戶賬戶信息
修改用戶賬號(hào)就是根據(jù)實(shí)際情況更改用戶的有關(guān)屬性,如用戶號(hào)、主目錄、用戶組、登錄Shell等。
使用者權(quán)限:管理員用戶
修改已有用戶的信息使用 usermod 命令,其格式如下:
下面命令將用戶czbk用戶名修改成czbk2019
以下是usermod常用選項(xiàng)
假如我們其中一個(gè)用戶的賬號(hào)不再使用,可以從系統(tǒng)中刪除。刪除用戶賬號(hào)就是要將/etc/passwd等系統(tǒng)文件中的該用戶記錄刪除,必要時(shí)還刪除用戶的主目錄。
使用者權(quán)限:管理員用戶
刪除一個(gè)已有的用戶賬號(hào)使用 userdel 命令,其格式如下:
-f:強(qiáng)制刪除用戶,即使用戶當(dāng)前已登錄;
-r:刪除用戶的同時(shí),刪除與用戶相關(guān)的所有文件
此命令刪除用戶czbk2019
成功刪除用戶czbk2019
以下是userdel常用選項(xiàng)
引子:
為了方便用戶管理, 提出了 組 的概念, 如下圖所示
比如新建賬戶【張三】,那么它默認(rèn)對(duì)應(yīng)的組就是張三
一個(gè)用戶可以有一個(gè)或者多個(gè)組
假如說(如上圖),我們?cè)谄髽I(yè)級(jí)開發(fā)過程中,我們有多個(gè)組,其中一個(gè)開發(fā)組對(duì)應(yīng)三個(gè)賬戶,張三、李四、王五、如果就像上面提到的,一個(gè)用戶默認(rèn)對(duì)應(yīng)一個(gè)組,那么三個(gè)賬戶張三、李四、王五就有了三個(gè)不同的組,如果大家都操做一個(gè)文件,在進(jìn)行權(quán)限分配的時(shí)候,就要對(duì)不同的三個(gè)組進(jìn)行授權(quán),顯然這樣是不合理的,因?yàn)樘^繁瑣。
所以,才有了組(新建組)的概念,我們把張三、李四、王五統(tǒng)一放到【開發(fā)組】,在對(duì)文件授權(quán)的時(shí)候,我們只對(duì)【開發(fā)組】進(jìn)行授權(quán)由此,這樣的話【張三、李四、王五】都有相等的權(quán)利操作了。
新增一個(gè)用戶組(組名可見名知意,符合規(guī)范即可),然后將用戶添加到組中
使用者權(quán)限:管理員用戶
使用的選項(xiàng)有:
新增用戶組czbk-it
上面的命令向系統(tǒng)中增加了一個(gè)新組czbk-it,新組的組標(biāo)識(shí)號(hào)是在當(dāng)前已有的最大組標(biāo)識(shí)號(hào)的基礎(chǔ)上加1
以下是groupadd常用選項(xiàng)
使用者權(quán)限:管理員用戶
常用的選項(xiàng)有:
上面的命令將組czbk-it的組名修改為czbk-it-2019。
以下是groupmod常用選項(xiàng)
在查詢用戶所屬的用戶組前,我們先增加一個(gè)用戶ituser-groups
要查詢一個(gè)用戶屬于哪個(gè)用戶組,使用groups命令,其格式如下
查詢用戶ituser-groups屬于某個(gè)用戶組,執(zhí)行g(shù)roups命令
由此可見,ituser-groups用戶屬于用戶組ituser-groups(用戶組默認(rèn)與用戶名一樣)
使用者權(quán)限:管理員用戶
要?jiǎng)h除一個(gè)已有的用戶組,使用groupdel命令,其格式如下
刪除czbk-it-2019用戶組
刪除成功
以下是groupdel常用選項(xiàng)
1、創(chuàng)建一個(gè)新的組,并添加組ID(需要切換到root用戶)
執(zhí)行效果如下
2、創(chuàng)建3個(gè)用戶(需要切換到root用戶)
3、將上面三個(gè)用戶添加到組itbj2020group
我們通過passwd命令將三個(gè)用戶添加到組
什么是gpasswd:
gpasswd 是 Linux 下工作組文件 /etc/group 和 /etc/gshadow 管理工具,用于將一個(gè)用戶添加到組或者從組中刪除。
語法
將上面的三個(gè)用戶使用gpasswd添加到組(需要切換到root用戶)
執(zhí)行如下
查看用戶組下所有用戶(所有用戶)
執(zhí)行效果如下(或者直接打開/etc/group文件都可以)
由上圖可知:三個(gè)用戶全部都加入到了itbj2020group組。
date 可以用來顯示或設(shè)定系統(tǒng)的日期與時(shí)間
使用者權(quán)限:所有用戶
語法如下:
參數(shù)
-d字符串:顯示字符串所指的日期與時(shí)間。字符串前后必須加上雙引號(hào);
-s字符串:根據(jù)字符串來設(shè)置日期與時(shí)間。字符串前后必須加上雙引號(hào);
-u:顯示GMT;
--help:在線幫助;
--version:顯示版本信息
1、設(shè)置時(shí)間
用 -s選項(xiàng)可以設(shè)置系統(tǒng)時(shí)間,如下:
2、顯示時(shí)間
協(xié)調(diào)世界時(shí),又稱世界統(tǒng)一時(shí)間、世界標(biāo)準(zhǔn)時(shí)間、國(guó)際協(xié)調(diào)時(shí)間。由于英文(CUT)和法文(TUC)的縮寫不同,作為妥協(xié),簡(jiǎn)稱UTC。。
(2)GMT
即 格林尼治 平太陽時(shí)間,是指格林尼治所在地的標(biāo)準(zhǔn)時(shí)間,也是表示地球自轉(zhuǎn)速率的一種形式
外文名: Universal Time
其他外文名 G.M.T.(Greenwich Mean Time)
(3)CST
北京時(shí)間 (中國(guó)國(guó)家標(biāo)準(zhǔn)時(shí)間) 北京時(shí)間是中國(guó)采用國(guó)際時(shí)區(qū)東八時(shí)區(qū)的區(qū)時(shí)作為標(biāo)準(zhǔn)時(shí)間 。 北京時(shí)間并不是北京(東經(jīng)116.4°)的地方時(shí)間,而是東經(jīng)120°的地方時(shí)間,故東經(jīng)120度地方時(shí)比北京的地方時(shí)早約14分半鐘。因?yàn)楸本┨幱趪?guó)際時(shí)區(qū)劃分中的東八區(qū),同格林尼治時(shí)間(世界時(shí))整整相差8小時(shí)(即北京時(shí)間=世界時(shí)+8小時(shí)),故命名為“北京時(shí)間”。東八區(qū)包括的范圍從東經(jīng)112.5°到東經(jīng)127.5°,以東經(jīng)120°為中心線,東西各延伸7.5°,總寬度為15°的區(qū)域。 而中國(guó)幅員遼闊,東西相跨5個(gè)時(shí)區(qū)(即東五區(qū)、東六區(qū)、東七區(qū)、東八區(qū)、東九區(qū)5個(gè)時(shí)區(qū))授時(shí)臺(tái)必須建在地理中心地帶,從而也就產(chǎn)生了長(zhǎng)短波授?!氨本r(shí)間”與“北京當(dāng)?shù)貢r(shí)間”是兩個(gè)概念, “北京時(shí)間”的發(fā)播不在北京,而在陜西蒲城(處于東七區(qū))
(4)東八區(qū)
東八區(qū)( UTC / GMT +08:00)是比 世界協(xié)調(diào)時(shí)間 (UTC)/ 格林尼治時(shí)間 (GMT)快8小時(shí)的時(shí)區(qū),理論上的位置是位于 東經(jīng) 112.5度至127.5度之間,是東盟標(biāo)準(zhǔn)的其中一個(gè)候選時(shí)區(qū)。當(dāng)格林尼治標(biāo)準(zhǔn)時(shí)間為0:00時(shí),東八區(qū)的標(biāo)準(zhǔn)時(shí)間為08:00
pre class="md-fences md-end-block ty-contain-cm modeLoaded" spellcheck="false" lang="" cid="n486" mdtype="fences" style="font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; orphans: auto; text-indent: 0px; text-transform: none; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; text-decoration: none; box-sizing: border-box; overflow: visible; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; white-space: normal; background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); border: 1px solid rgb(231, 234, 237); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit; caret-color: rgb(51, 51, 51); color: rgb(51, 51, 51); position: relative !important; background-position: inherit; background-repeat: inherit;"總結(jié):
上面提到了很多知識(shí):即UTC/GMT/CST/東八區(qū)
總結(jié)一下就是,北京時(shí)間(中國(guó)國(guó)家標(biāo)準(zhǔn)時(shí)間CST)采用東八區(qū)區(qū)時(shí),即:
協(xié)調(diào)世界時(shí)(UTC)+8 / 格林尼治時(shí)間(GMT)+8
也就是說+8后的時(shí)間才是北京時(shí)間/pre
logname命令用于顯示用戶名稱。
執(zhí)行l(wèi)ogname指令,它會(huì)顯示目前用戶的名稱
語法為如下:
參數(shù) :
顯示登錄賬號(hào)的信息
su命令用于變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼。
使用權(quán)限:所有使用者。
語法如下:
變更帳號(hào)為 root 并在執(zhí)行 ls 指令后退出返回原使用者
切換到root
這樣的話,我們就進(jìn)入到了root用戶下。
id命令用于顯示用戶的ID,以及所屬群組的ID。
id會(huì)顯示用戶以及所屬群組的實(shí)際與有效ID。若兩個(gè)ID相同,則僅顯示實(shí)際ID。若僅指定用戶名稱,則顯示目前用戶的ID。
使用者權(quán)限:所有用戶
語法
參數(shù)說明:
顯示當(dāng)前用戶信息
執(zhí)行效果如下
sudo:控制用戶對(duì)系統(tǒng)命令的使用權(quán)限,root允許的操作。
通過sudo可以提高普通用戶的操作權(quán)限
使用者權(quán)限:普通用戶
語法如下:
sudo -V
sudo -h
sudo -l
sudo -v
sudo -k
sudo -s
sudo -H
sudo [ -b ] [ -p prompt ] [ -u username/#uid] -s
sudo command
參數(shù)說明 :
sudo命令使用
指定root用戶執(zhí)行指令
修改網(wǎng)卡配置文件
比如,在下面的例子中,我們使用普通用戶修改網(wǎng)卡的配置文件,在進(jìn)行保存的時(shí)候,提示我們【無法打開并寫入文件】,那么此時(shí),我們可以通過sudo命令來提升自己的寫入權(quán)限
執(zhí)行:
執(zhí)行效果如下(保存)
然后點(diǎn)擊回車
執(zhí)行效果如下(鍵入itcast密碼)
執(zhí)行保存
top命令用于實(shí)時(shí)顯示 process 的動(dòng)態(tài)。
使用權(quán)限:所有使用者。
顯示進(jìn)程信息
執(zhí)行效果如下
顯示完整命令,與top命令不同的就是command屬性像是進(jìn)行了命令補(bǔ)全
執(zhí)行效果如下
執(zhí)行效果如下
Linux ps命令用于顯示當(dāng)前進(jìn)程 (process) 的狀態(tài)信息
使用者權(quán)限:所有用戶
語法如下:
顯示進(jìn)程信息
顯示指定用戶信息
顯示所有進(jìn)程信息
Linux kill命令用于刪除執(zhí)行中的程序或工作(可強(qiáng)制中斷)
使用者權(quán)限:所有用戶
語法如下:
參數(shù)說明 :
殺死一個(gè)進(jìn)程
強(qiáng)制殺死進(jìn)程
徹底殺死進(jìn)程
殺死指定用戶所有進(jìn)程
1.方法一 過濾出itcast用戶進(jìn)程
2.方法二,直接殺死
shutdown命令可以用來進(jìn)行關(guān)閉系統(tǒng),并且在關(guān)機(jī)以前傳送訊息給所有使用者正在執(zhí)行的程序,shutdown 也可以用來重開機(jī)
使用者權(quán)限:管理員用戶
語法如下:
參數(shù)說明 :
立即關(guān)機(jī)
指定1分鐘后關(guān)機(jī),1分鐘關(guān)機(jī)并顯示警告信息
指定1分鐘后重啟,并發(fā)出警告信息
reboot命令用于用來重新啟動(dòng)計(jì)算機(jī)
使用者權(quán)限:管理員、普通(需要驗(yàn)證)用戶
語法如下:
參數(shù) :
開始重新啟動(dòng)
重啟效果如下
who命令用于顯示系統(tǒng)中有哪些使用者正在上面,顯示的資料包含了使用者 ID、使用的終端機(jī)、從哪邊連上來的、上線時(shí)間、呆滯時(shí)間、CPU 使用量、動(dòng)作等等
使用者權(quán)限:所有使用者都可使用。
語法如下:
參數(shù)說明 :
顯示當(dāng)前登錄系統(tǒng)的用戶
顯示明細(xì)(標(biāo)題)信息
由上圖可知,截止到現(xiàn)在只有itcast在線。
引子:
timedatectl是用于控制系統(tǒng)時(shí)間和日期??梢杂脕聿樵兒透南到y(tǒng)時(shí)鐘于設(shè)定,同時(shí)可以設(shè)定和修改時(shí)區(qū)信息。
在實(shí)際開發(fā)過程中,系統(tǒng)時(shí)間的顯示會(huì)和實(shí)際出現(xiàn)不同步;我們一般為了校正服務(wù)器時(shí)間、時(shí)區(qū)的時(shí)候會(huì)使用timedatectl命令/pre
使用者權(quán)限:所有使用者都可使用,設(shè)置時(shí)間需要管理員,下面會(huì)標(biāo)注。
幾個(gè)常見的概念,進(jìn)行總結(jié)如下:
顯示系統(tǒng)的當(dāng)前時(shí)間和日期,使用命令行中的timedatectl命令
執(zhí)行效果如下
上圖顯示中國(guó)時(shí)區(qū)