本文你能夠?qū)W到
1. ssh登錄讀取的配置文件
2. date命令的基本用法與計(jì)算兩個(gè)日期間隔的天數(shù)的方法。如,計(jì)算紀(jì)念日等
3. Linux時(shí)區(qū)的一點(diǎn)小科普
本文適用環(huán)境 :
Debian GNU/Linux又碌。
虛擬機(jī)是因?yàn)閯傞_始學(xué)習(xí)Linux虛擬機(jī)上手簡單,不存在硬件兼容問題兜粘,而用ssh登錄則方便切換窗口袖扛。虛擬系統(tǒng)打開之后關(guān)掉虛擬機(jī)所有窗口,用PUTTY鏈接節(jié)約內(nèi)存?蛆封!
幾天前突發(fā)奇想搜索了半天才弄明白的一點(diǎn)東西唇礁,最近幾天忙別的事情,怕忘記了惨篱,趁夜深人靜記錄于此盏筐,鄙人系自學(xué)若有不對(duì)或者語言不通順之處請各位大牛斧正。
正文
ssh登錄成功后砸讳,Linux會(huì)打印一段歡迎信息琢融,然后給出一個(gè)shell如我的BackBox(基于Ubuntu)是這樣的
Welcome to BackBox Linux 4.5 (GNU/Linux 3.19.0-32-generic x86_64)
* Documentation: http://www.backbox.org/
現(xiàn)在是 Thu Apr 7 20:37:03 JST 2016
親愛的周肇南先生,你已經(jīng)離開故土 【909】 天
歸國倒計(jì)時(shí)【188】天 ご無事に帰國してください
6 packages can be updated.
0 updates are security updates.
Last login: Wed Mar 30 00:45:48 2016 from 192.168.192.1
Hacker@lxs-BamBoo:~ 01 $
其中主要是歡迎信息簿寂、內(nèi)核版本漾抬、發(fā)行版預(yù)留的信息等,而下面要講的就是中間我添加的那幾行常遂。
這是我的機(jī)器最后的效果纳令,非常簡單,如果你覺得早就懂了克胳,請無視下面的文字平绩,節(jié)約時(shí)間就是延長生命。
閑話少敘漠另,之前看文章稱Linux三大設(shè)計(jì)思想之一就是一切皆文件捏雌,那么ssh登錄的文件在什么路徑呢?
Hacker@lxs-BamBoo:~ 056 $ cd /etc/update-motd.d/
Hacker@lxs-BamBoo:/etc/update-motd.d 057 $ l
00-header* 10-help-text.backup* 91-release-upgrade* 98-reboot-required*
10-help-text* 90-updates-available* 98-fsck-at-reboot*
Hacker@lxs-BamBoo:/etc/update-motd.d 058 $
我的發(fā)行版中是上面這樣的
00—header文件主要是開頭的一行笆搓,
$ cat 00-header
!/bin/sh
printf "Welcome to %s (%s %s %s)\\n" "BackBox Linux 4.5" "$(uname -o)" "$(uname -r)" "$(uname -m)"
主要就是一個(gè)uname -o -r -m 命令打印內(nèi)核版本性湿,$將變量傳遞給printf命令打印到屏幕上。
開頭的第一行是一條注釋砚作,也非常的簡單窘奏。
10-help-text 文件更是只是打印了超鏈接那一句話。為了美觀我選擇了添加在這個(gè)文件后尾葫录,只需要用cat >> 10 [teb]追加就可以了着裹。或者也可以touch一個(gè)名稱如:11-help-text的文件米同。不過需要權(quán)限和所有者骇扇。這里演示追加文件的方法,一個(gè)不明白的地方是
"$ sudo cat >> 10-help-text
提示 權(quán)限不夠
又由于安全問題BackBox發(fā)行版禁用了root面粮,su -c 也不方便少孝,而sudo -i 卻可以,只是多一步logout熬苍。
Hacker@lxs-BamBoo:/etc/update-motd.d 069 $ sudo -i
[sudo] password for lxs:
root@lxs-BamBoo:~# cat >> /etc/update-motd.d/10-help-text
#test
^C
root@lxs-BamBoo:~# logout
Hacker@lxs-BamBoo:/etc/update-motd.d 070 $
在講具體添加內(nèi)容之前先講一下date命令稍走,
要顯示系統(tǒng)日期,只要輸入:
$ date
2016年 4月 9日 土曜日 00:42:42 JST
其中JST為日本時(shí)區(qū)袁翁,鄙人離家已久,思鄉(xiāng)心切婿脸,所以想讓ssh登錄之后顯示一下還有多少時(shí)間回國粱胜。
$ date +%s
顯示當(dāng)前Unix時(shí)間戳,說個(gè)題外話 今年2月中旬64位iPhone設(shè)置時(shí)間為1970年左右會(huì)出現(xiàn)白蘋果就是因?yàn)閷?duì)于Unix時(shí)間戳的儲(chǔ)存造成的詳情見鏈接http://www.ifanr.com/620262
顯示特定日期的Unix時(shí)間戳 date --date="2013/10/12" +%s
或者 date -d "2013/10/12" +%s
鄙人的思路是兩個(gè)時(shí)間戳相減除以一天的秒數(shù)加一即可狐树。
具體date命令 參見這篇文章https://linux.cn/article-2406-1.html
最后還有一個(gè)時(shí)區(qū)的問題焙压,我的機(jī)器上面剛開始登錄的時(shí)候讀取的時(shí)區(qū)并不是你這個(gè)賬號(hào)的變量。
設(shè)置輸出時(shí)間的時(shí)區(qū)在date前加TZ指定抑钟,
$ TZ=UTC-9 date
僅生效一次涯曲。詳見http://chenpeng.info/html/3521
下面是我的一個(gè)范例,時(shí)區(qū)的地方并不太理解在塔,所以每個(gè)地方都指定了UTC-9幻件,不知道是不是必要的,夜深了有點(diǎn)懵心俗,時(shí)區(qū)的擴(kuò)展閱讀https://blog.gesha.net/archives/221/
如果使用請按照自己的需要更改
如替換一下文字傲武,將日期更改為一些紀(jì)念日等等,或者用作簡單的備忘錄都是可以的城榛。
printf "\\n 現(xiàn)在是 %s \\n \\n 親愛的周 肇南先生揪利,你已經(jīng)離開故土 【%s】 天 \\n \\n 歸國倒計(jì)時(shí)【%s】天 ご無事に帰國してく ださい \\n" "$(TZ=UTC-9 date -d today)" "$((($(TZ=UTC-9 date +%s)-$(TZ=UCT-9 date --date="2013/10/12" +%s))/86400+1))" "$((($(TZ=UTC-9 date -d "2016/10/12" +%s)-$(TZ=UTC-9 date -d today +%s))/86400+1))"
一個(gè)簡單的例子
echo $((($(date +%s)-$(date -d 2018/2/22 +%s))/86400))