จะดูรายละเอียดที่ Ubuntu แสดงเมื่อเข้าสู่ระบบได้ทุกเวลาอย่างไร?


27

เมื่อฉันเข้าสู่ระบบอูบุนตูระบบจะแสดงข้อความนี้ให้ฉันเห็นฉันทุกเวลา? ฉันพยายามเรียกใช้. .bashrcแต่ไม่ได้ผล

Welcome to Ubuntu 12.10 LTS (GNU/Linux 3.2.0-24-virtual x86_64)

 * Documentation:  https://help.ubuntu.com/

  System information as of Sat Jul 13 06:16:35 UTC 2013

  System load:  0.55              Processes:           96
  Usage of /:   8.1% of 68.74GB   Users logged in:     0
  Memory usage: 55%               IP address for eth0: 198.xx.xxx.xxx
  Swap usage:   0%                IP address for eth1: xxx.1x0.xx.xxx

  => There is 1 zombie process.

  Graph this data and manage this system at https://landscape.canonical.com/

223 packages can be updated.
134 updates are security updates.

Last login: Mon Jul  8 17:47:05 2013 

น่าเศร้าที่จริง ๆ แล้วไม่มีคำสั่งมาตรฐานให้ทำสิ่งนี้และวิธีการนั้นเปลี่ยนไปบ่อยครั้งจนคำตอบที่ยอมรับและการแทนที่นั้นได้ล้าสมัยไปแล้ว!
nealmcb

คำตอบ:


16

คุณสามารถแสดงได้ตลอดเวลาเมื่อคุณต้องการข้อความนี้ - ม.สารoเสื้อเขาd ay - ใช้คำสั่งต่อไปใน terminal:

cat /etc/motd

หรือดีกว่า:

for i in /etc/update-motd.d/*; do if [ "$i" != "/etc/update-motd.d/98-fsck-at-reboot" ]; then $i; fi; done

หากคุณต้องการที่จะเห็นข้อความนี้ทุกครั้งเมื่อคุณเปิดเทอร์มินัลเพียงแค่แทรกหนึ่งในบรรทัดข้างต้นที่ส่วนท้ายของ~/.bashrcไฟล์ (คุณสามารถเปิดได้ด้วยgedit ~/.bashrcคำสั่ง)

/ etc / motdเป็นไฟล์บน Unix เหมือนระบบที่มีข้อความ "ในวันนี้" ที่ใช้ในการส่งข้อความที่ร่วมกันกับผู้ใช้ทั้งหมดในลักษณะที่มีประสิทธิภาพมากขึ้นกว่าการส่งพวกเขาข้อความอีเมลทั้งหมด

เพิ่มเติมเกี่ยวกับ: http://en.wikipedia.org/wiki/Motd_(Unix)

ที่เกี่ยวข้อง: / etc / motd ได้รับการปรับปรุงอย่างไร


ข้อความแสดงข้อผิดพลาดที่เหมือนกัน แต่สั้นลง (เช่นในบางครั้งเนื้อหาสำหรับ /etc/update-motd.d): สำหรับ i ใน /etc/update-motd.d/*; ทำ $ i 2> / dev / null; เสร็จแล้ว
luis_js

คุณไม่สามารถcat /etc/motdโชคไม่ดีอีกต่อไป และมันก็เปลี่ยนไปสองครั้งตั้งแต่นั้น (ทำไมไม่มีคำสั่งมาตรฐานในการทำเช่นนี้ถอนหายใจ)
nealmcb

32

ดูเหมือนว่ามันจะเปลี่ยนไป ด้วย Ubuntu 16.04 ไม่มี/etc/motdแต่คุณสามารถcat /var/run/motd.dynamicแทนได้


1
ฉันต้องใช้วิธีนี้ใน Ubuntu 14.04
J Smith

9
โปรดทราบว่า/var/run/motd.dynamicเป็นเพียงเอาต์พุตสแตติกแคชของครั้งล่าสุดที่มันถูกเรียกใช้เมื่อเข้าสู่ระบบ หากต้องการดูผลลัพธ์สดอีกครั้งคุณต้องเรียกใช้สคริปต์ที่สร้างขึ้นซึ่งมีอยู่ใน/etc/update-motd.d(ตามที่เขียนนี้บน Ubuntu 16.04.4 LTS)
Aaron Wallentine

ในฐานะของ Ubuntu 19.04 มันเป็นตอนนี้cat /var/run/motd.dynamic.new
Adam Erickson

7

อูบุนตูใช้สิ่งนี้เมื่อเข้าสู่ระบบ:

/usr/bin/landscape-sysinfo

คุณสามารถรันผ่านเทอร์มินัลโดยใช้คำสั่งต่อไปนี้:

landscape-sysinfo

น่าสนใจ แต่นั่นเป็นเพียงส่วนหนึ่งของ motd เต็ม
nealmcb

3

คุณยังไม่ได้เปิดใช้งานโหมด hushedตามที่เห็น หากคุณเปิดใช้งานการเข้าสู่ระบบโหมดเงียบคำตอบในโซลูชันก่อนหน้านี้จะไม่ทำงาน

คุณสามารถเห็นmotdข้อความทั้งใน/var/run/motd.dynamicและ/run/motd.dynamicที่ถูกสร้างขึ้นครั้งสุดท้ายที่ผู้ใช้มีการบันทึกไว้ในโหมดที่ไม่ใช่เงียบหาย ไฟล์ทั้งสองชี้ไปที่ไอโหนดเดียวกันซึ่งหมายความว่ามันเป็นฮาร์ดลิงก์

ข้อมูลที่เป็นแบบคงที่เมื่อคุณเข้าสู่ระบบถ้าคุณไม่ได้เข้าสู่ระบบในโหมดเงียบ ไฟล์จะไม่ถูกสร้างขึ้นหากคุณเป็นผู้ใช้คนแรกที่เข้าสู่ระบบและหากคุณมี.hushloginไฟล์ หากคุณมีผู้ใช้ที่ไม่มี.hushloginไฟล์คุณจะเห็นเนื้อหาเก่าเมื่อคุณพยายามเข้าถึงไฟล์นั้น

วิธีที่ดีที่สุดที่ฉันสามารถคิดเป็นโดยการสร้างได้ง่ายๆโดยการทำ.hushlogintouch ~/.hushlogin

แก้ไข.bashrcไฟล์ของคุณและเพิ่มเนื้อหาตามที่ @Radu Rădeanuได้ชี้:

for i in /etc/update-motd.d/*; do if [ "$i" != "/etc/update-motd.d/98-fsck-at-reboot" ]; then $i; fi; done

ดังนั้นเมื่อใดก็ตามที่คุณเรียกใช้. .bashrcคุณจะเห็นข้อความใหม่แทนข้อความคงที่

หมายเหตุ: จะถูกดำเนินการทั้งหมดของเปลือกหอยโต้ตอบไม่ใช่การเข้าสู่ระบบและด้วยเหตุนี้คุณจะเห็นข้อความนี้เมื่อคุณเปิดเปลือกโต้ตอบโดยการพิมพ์.bashrcbash


2

ฉันคิดว่านี่จัดการโดย PAM ผ่าน/etc/pam.d/loginมองหาmotd(ข้อความประจำวัน)

คุณสามารถสร้างส่วนที่คงที่ของข้อความcat /etc/motdนั้นได้ ฉันไม่มีส่วนไดนามิกที่คุณแสดงดังนั้นฉันจึงไม่สามารถช่วยได้


2

ดังที่ระบุไว้สองสามครั้งสคริปต์ภายใต้/etc/update-motd.dเป็นสิ่งที่ให้เอาต์พุตปกติที่แสดงเมื่อเข้าสู่ระบบ เห็นupdate-motd(5)ไหม แต่ไม่จำเป็นต้องมีการคิดค้นสิ่งใหม่ ๆ โดยการเขียนสคริปต์ด้วยตัวคุณเอง ใช้run-parts(8)แทนซึ่งมีไว้เพื่อวัตถุประสงค์เพียง:

sudo run-parts /etc/update-motd.d

นี่คือสิ่งที่pam_motd(8)โมดูล PAM ทำอยู่เรียกใช้เป็นรูทหลังจากการรับรองความถูกต้องของผู้ใช้และก่อนที่จะเปิดเชลล์ล็อกอินของผู้ใช้ โดยทั่วไปสคริปต์หนึ่งตัวหรือมากกว่านั้นจำเป็นต้องถูกเรียกใช้ในฐานะรูทดังนั้นอย่าละทิ้งsudoมิฉะนั้นคุณอาจเห็นข้อผิดพลาด


1

คุณสามารถเรียกใช้ Landscape-sysinfo สำหรับข้อมูลระบบและ

/usr/lib/update-notifier/update-motd-updates-available

สำหรับข้อมูลเกี่ยวกับแพ็คเก็ต


เห็นได้ชัดว่าใช้งานได้เฉพาะในกรณีที่คุณติดตั้งแนวนอน เป็นเครื่องมือทางการค้า (ไม่ฟรี) (สำหรับผู้ที่ไม่ทราบ)
aenw

ฉันได้รับ: find: ‘/var/lib/apt/lists/partial’: Permission deniedและmktemp: failed to create file via template ‘/var/lib/update-notifier/tmp.XXXXXXXXXX’: Permission denied
nealmcb

1

ดูเหมือนว่าการส่งออกที่สร้างขึ้นโดยสคริปต์อยู่ในโฟลเดอร์/etc/update-motd.d;
หากคุณเข้าไปในไดเรกทอรีนั้นคุณสามารถเรียกใช้สคริปต์แต่ละรายการสำหรับบิตของข้อมูลที่แตกต่างกัน หรือคุณสามารถดูแหล่งที่มาของสคริปเพื่อดูคำสั่งที่มันทำงานจริงจะได้รับข้อมูลที่ซึ่งดูเหมือนจะเปลี่ยนจากการเปิดตัวที่จะปล่อย (ใช้catหรือแก้ไขข้อความเช่นnano, pico, emacs, vimฯลฯ )

ตัวอย่าง:

$ ll /etc/update-motd.d/
total 44
drwxrwxr-x   2 root root 4096 Feb 25 21:27 ./
drwxr-xr-x 110 root root 4096 Feb 25 21:33 ../
-rwxr-xr-x   1 root root 1220 Oct 22  2015 00-header*
-rwxr-xr-x   1 root root 1157 Jun 14  2016 10-help-text*
-rwxr-xr-x   1 root root  334 Jan 12 14:30 51-cloudguest*
-rwxr-xr-x   1 root root   97 May 24  2016 90-updates-available*
-rwxr-xr-x   1 root root  299 Jul 22  2016 91-release-upgrade*
-rwxr-xr-x   1 root root  111 May 11  2017 97-overlayroot*
-rwxr-xr-x   1 root root  142 May 24  2016 98-fsck-at-reboot*
-rwxr-xr-x   1 root root  144 May 24  2016 98-reboot-required*
-rwxrwxr-x   1 root root 1204 Jan 15 19:11 99-one-click*

ข้อมูลนี้เป็นข้อมูลล่าสุด ณ วันที่เขียนนี้และ Ubuntu 16.04.4 LTS


1

คำตอบของ Aaron Wallentine ทำให้ฉันไปหาทางออก "ดูเหมือนว่าเอาต์พุตนั้นสร้างขึ้นโดยสคริปต์ที่อยู่ในโฟลเดอร์/etc/update-motd.dหากคุณเข้าไปในไดเรกทอรีนั้นคุณสามารถเรียกใช้สคริปต์แต่ละตัวเพื่อหาบิตข้อมูลที่แตกต่างกัน"

/etc/update-motd.dฉันเชื่อว่าสคริปต์แต่ละตัวในโฟลเดอร์ทำงานตามลำดับหมายเลขที่มีในชื่อของพวกเขาเมื่อเข้าสู่ระบบ เป็นตัวอย่างของฉัน:

10-header 30-sysinfo  32-site  35-motd  98-autoreboot-warn

คุณสามารถเรียกใช้แยกกันเพื่อแสดงข้อมูลของพวกเขา เช่น:

cd /etc/update-motd.d
sudo ./10-header  or  sudo ./30-sysinfo**

คุณสามารถเรียกใช้พวกเขาทั้งหมดด้วยกันเช่นนี้:

sudo /etc/update-motd.d/10-header ; sudo /etc/update-motd.d/30-sysinfo ; ... ใช้สัญลักษณ์;(เซมิโคลอน) เพื่อลิงก์คำสั่ง

แต่ผู้ที่ต้องการพิมพ์ทั้งหมดนั้นฉันสิ้นสุดการเปลี่ยนสตริงคำสั่งที่เชื่อมโยงยาวเป็นเชลล์สคริปต์

เปลี่ยนเป็นไดเร็กทอรี bin:

cd /bin

สร้างไฟล์ฉันเรียกว่า "clr" ของฉันเพราะฉันใช้มันเพื่อล้างหน้าจอของฉันด้วย

sudo touch clr

ทำให้สคริปต์ของคุณทำงานได้:

sudo chmod +x clr

ฉันใช้นาโนเพื่อแก้ไขของฉันใช้รายการโปรดของคุณ:

sudo nano clr

จากนั้นเพิ่มสตริงคำสั่งที่มีความยาวจากก่อนหน้าลงในไฟล์ของคุณอย่าลืมใช้ไฟล์ motd ของคุณไม่ใช่ของฉันเพราะมันจะแตกต่างกัน:

clear ; sudo /etc/update-motd.d/10-header ; sudo /etc/update-motd.d/30-sysinfo ; sudo /etc/update-motd.d/ ; sudo /etc/update-motd.d/32-site ; sudo /etc/update-motd.d/35-motd ; sudo /etc/update-motd.d/98-autoreboot-warn

บันทึกและเรียกใช้เมื่อใดก็ตามที่เห็นการปรับปรุง motd สดของคุณโปรดทราบว่าฉันเพิ่ม clear ;ในเหมืองดังนั้นเมื่อฉันพิมพ์clrมันจะล้างหน้าจอของฉันและแสดงสถิติที่อัปเดต

ฉันคิดว่านั่นคือทั้งหมดที่ฉันได้รับหวังว่ามันจะช่วยใครซักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.