journalctl: วิธีป้องกันข้อความไม่ให้ถูกตัดทอนในเทอร์มินัล


59

ฉันจะป้องกันไม่ให้สตริงยาวถูกตัดในเทอร์มินัลได้อย่างไร เช่นถ้าฉันวิ่ง

journalctl -xn

มีข้อความมากมายที่ฉันอ่านไม่ออก ฉันเปิดให้ใช้โปรแกรม / เครื่องมืออื่น ๆ


การใช้งานjournalctl -x, -nเริ่มต้น 10 สายในบันทึกเท่านั้น
cuonglm

คำตอบ:


62

จากjournalctlmanpage:

   The output is paged through less by default, and long lines are
   "truncated" to screen width. The hidden part can be viewed by using the
   left-arrow and right-arrow keys. Paging can be disabled; see the
   --no-pager option and the "Environment" section below.

หากคุณไม่ต้องการใช้ปุ่มลูกศรซ้ายและขวาอย่างต่อเนื่องเพียงแค่ไพพ์ไปที่less:

$ journalctl -xn | less

นี้จะตัดสายที่ยาวเกินไปสำหรับ terminal ของคุณ (พฤติกรรมเริ่มต้นของlessซึ่งjournalctlแทนที่)

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

$ journalctl -xn --no-pager

อ่าใช่ ฉันเห็น.
cuonglm

3
มันน่าผิดหวังจริงๆ หากเพจเจอร์ถูกตั้งค่าเป็นlessและLESSไม่รวม-Sjournalctl ไม่ควรใช้-Sกับการร้องขอของless!! นั่นคือการตั้งค่า PAGER = less และ LESS = $ x (โดยที่ $ x เป็นสตริงใด ๆ ที่ไม่มี S) ควรให้พฤติกรรมที่ต้องการ
วิลเลียม Pursell

1
นั่นคือ journalctl ควรให้เกียรติ LESS และผู้ใช้ไม่ควรตั้งค่า SYSTEMD_LESS! (ขอโทษ, ลูกบิดประตู, นี่เป็นคำพูดที่น่ารำคาญเล็กน้อยที่อาจไม่ได้เป็นความเห็นต่อคำตอบของคุณ)
William Pursell

วิลเลียมโง่ นายพอตเตอร์ริ่งรู้ว่าอะไรดีที่สุดสำหรับคุณและถ้าคุณไม่ชอบคุณก็ผิดอย่างแน่นอน </rant>
dannysauer

15

ฉันยังทำ:

journalctl -xn | less

แต่คุณสามารถตั้งค่าSYSTEMD_LESSตัวแปรสภาพแวดล้อมได้:

SYSTEMD_LESS=FRXMK journalctl -xn
# Or even
# SYSTEMD_LESS="" journalctl -xn
# The environment variable needs to be there, but can be the empty string

ฉันได้มาจาก: [systemd-devel] [PATCH] เพจเจอร์: ตัดบรรทัดยาวตามค่าเริ่มต้น

ตั้งไว้ใน. bashrc ของคุณและทำได้ด้วย! :-)

ที่systemdต้องมีการติดตั้งlessมาเป็นพิเศษและไม่เพียง แต่ให้เกียรติเป็นค่าเริ่มต้นน้อยและLESSสภาพแวดล้อมที่ดูเหมือนหยิ่งเล็ก ๆ น้อย ๆ กับผม แต่เดี๋ยวก่อนทำงานนี้ ...


มีการเพิ่มการรองรับ SYSTEMD_LESS เมื่อเร็ว ๆ นี้เช่น CentOS 7 ไม่มีรุ่นที่รองรับ
jnas

ทำงานอย่างน้อยใน CentOS 7.5
Vertigo

วิธีการแก้ปัญหาที่ดีฉันยังเพิ่มการDefaults env_keep += "LESS SYSTEMD_LESS" /etc/sudoersมันสำหรับบรรดาครั้งเมื่อฉันตั้งใจใส่ในด้านหน้าของเช่นsudo systemctl status
Metamorphic

มันไม่ใช่แค่ "หยิ่งตัวน้อย" มันน่ารำคาญอย่างไม่น่าเชื่อ ฉันหวังว่ามันจะไม่ใช่ความเย่อหยิ่ง แต่เป็นความไม่รู้ที่ขับเคลื่อนพฤติกรรมนี้
William Pursell

เหลือบมองไปที่ซอร์สโค้ด การเอาชนะตัวเลือกของผู้ใช้ใน LESS นั้นเป็นเรื่องธรรมดา ฉันยังไม่แน่ใจว่ามันเป็นความเย่อหยิ่งหรือความเขลา แต่อาจเป็นการผสมผสานที่ดีต่อสุขภาพของทั้งสอง
วิลเลียม Pursell

2

หากโปรแกรมใช้อยู่แล้วless(หากไม่ใช่ให้ไพพ์เอาท์พุทลงไป) คุณสามารถเปิด / ปิดการใช้งานการตัดบรรทัดโดยการพิมพ์-S(ในless) ใช้งานได้กับlessตัวเลือกอื่นเช่นกัน


0

โปรดทราบว่า:

journalctl -f

จะแสดงให้คุณเห็นล่าสุดตามที่ปรากฏและห่อหุ้มเหมือนมนุษย์ทั่วไป (หรือแม้กระทั่งระบบดูแลระบบ) ที่คาดว่าจะอนุญาตให้อ่านง่ายคัดลอกวางและทุกอย่างอื่น


-1

ฉันพิมพ์เทอร์มินัลใช้
journalctl | moreงานได้ดีสำหรับฉันจากนั้นฉันใช้ลูกศรขึ้นหรือลง

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