คำถามติดแท็ก terminal

เทอร์มินัลคือสภาพแวดล้อมสำหรับการป้อน / ส่งข้อความ ภายในเทอร์มินัลหนึ่งรันโปรแกรมบรรทัดคำสั่งและโหมดข้อความ (รวมถึงเปลือกหอย)

1
เทอร์มินัลใดที่ใช้โปรโตคอล / มาตรฐาน?
ฉันสงสัยว่า "GUI" ของแอปพลิเคชันบรรทัดคำสั่งนั้นสื่อสารผ่านเครือข่ายอย่างไร ส่วนใหญ่มันค่อนข้างง่าย (ข้อความ / อินพุตธรรมดา) แต่บางครั้งมันก็ซับซ้อนกว่า (ความถนัด) มันถูกกำหนดโดยมาตรฐานบางประเภทเพื่อให้ทุกคนสามารถเขียนเทอร์มินัลของตนเองและการใช้งานเทอร์มินัลทั้งหมดทำงานในลักษณะเดียวกัน (สีการวางตำแหน่ง ฯลฯ ) หรือไม่?

1
เทอร์มินัล Linux และฟอนต์โอเพนซอร์สใด ๆ รองรับภาษาหรือไม่?
PragmataPro อักษรมีตัวอย่างบางส่วนฆาตกรจริงๆที่พวกเขาทำให้==เป็นตัวเดียวและทำความสะอาดมากของสิ่งอื่น ๆ เทอร์มินัล Linux ใด ๆ ที่สนับสนุนสิ่งนี้หรือไม่ และมีทางเลือกอื่นในการ PragmataPro หรือไม่?

4
อะไรเป็นสาเหตุให้คัดลอก / วางในเทอร์มินัลเพื่อเรียกใช้คำสั่งในบางครั้ง
เมื่อคุณวางคำสั่งบางรายการในเทอร์มินัลบางครั้งมันจะดำเนินการคำสั่งโดยอัตโนมัติ (เช่นถ้ากดปุ่ม "Enter") บางครั้งก็ไม่ ฉันใช้ลีนุกซ์มาหลายปี, วางคำสั่งหลายพันคำในคอนโซลต่าง ๆ บน distros หลาย ๆ อัน, และฉันยังไม่สามารถบอกได้ว่าคำสั่งที่ฉันจะวางจะถูกดำเนินการโดยอัตโนมัติหรือไม่ อะไรเป็นสาเหตุของพฤติกรรมนี้

2
วิธีการยุติแบบระยะไกลเรียกว่า“ tail -f” เมื่อการเชื่อมต่อถูกปิด
ฉันเพิ่งสังเกตเห็นว่าถ้าฉันรันssh user@remote_host tail -f /some/fileแล้วtail -f /some/fileยังคงทำงานบน remote_host แม้ว่าการเชื่อมต่อ ssh ถูกปิด! ดังนั้นหลังจากหลายการเชื่อมต่อและยกเลิกการเชื่อมต่อจำนวนการทำงานtail -f /some/fileจะเพิ่มขึ้น วิธีการยุติจริงtail -fเมื่อการเชื่อมต่อ ssh ถูกปิด?

2
การตั้งค่าโหมดเคอร์เนลเทียบกับ Framebuffer?
ด้วย KMS ไดรเวอร์กราฟิกจะถูกย้ายไปยังเคอร์เนล เนื่องจาก framebuffer อยู่ในเคอร์เนลอยู่แล้วฉันไม่คาดหวังว่าสิ่งนี้จะส่งผลกระทบต่อการทำงานของ framebuffer ถึงกระนั้นฉันอ่านว่า KMS จะควบคุม fb ให้เพิ่ม fb ต้องใช้ fb และต้องการการสนับสนุน fb เพื่อลบออก ห่า? คำตอบที่ฉันกำลังมองหาคือคำอธิบายของความสัมพันธ์ระหว่าง KMS และ framebuffer ฉันใช้ uvesafb เพื่อให้ได้ความละเอียดดั้งเดิมที่ tty จุดประสงค์ของฉันที่นี่คือเพื่อทำความเข้าใจว่าระบบทำงานอย่างไรกับ KMS นอกจากนี้ยังช่วยครอบคลุมสิ่งต่าง ๆ เช่น .. การเลื่อน KMS เร็วขึ้นหรือไม่ ยูทิลิตี้อย่าง fbterm และ fbida ทำงานเหมือนกันหรือไม่? เสถียรภาพดีขึ้นหรือไม่

5
ฉันใช้ `&`: ทำไมกระบวนการไม่ทำงานในพื้นหลัง
ฉันรู้ว่าฉันสามารถต่อท้าย&คำสั่งเพื่อเรียกใช้กระบวนการในพื้นหลัง ฉันกำลังเข้า SSH ในกล่อง Ubuntu 12.04 และรันโปรแกรมไพ ธ อนด้วย$python program.py &- แต่เมื่อฉันไปปิดหน้าต่างเทอร์มินัลฉันได้รับข้อความแจ้งว่าการปิดเทอร์มินัลจะเป็นการฆ่ากระบวนการที่กำลังทำงานอยู่ ทำไมนี้ ฉันใช้เครื่องหมายและการเรียกใช้กระบวนการในพื้นหลัง ฉันจะให้มันทำงานได้อย่างไรโดยไม่คำนึงว่าฉันเป็น SSH หรือไม่

2
จะเปลี่ยนเนื้อหาของบรรทัดบนเทอร์มินัลได้อย่างไรเมื่อเทียบกับการเขียนใหม่?
ดังนั้นเมื่อwgetได้รับหน้าเว็บมันจะแสดงแถบสถานะที่ระบุจำนวนไฟล์ที่ดาวน์โหลด / ดาวน์โหลด ดูเหมือนว่านี้: 25%[=============>______________________________________] 25,000 100.0K/s (ขีดล่างเป็นช่องว่างฉันไม่สามารถหาวิธีที่จะได้พื้นที่มากกว่าหนึ่งช่องติดต่อกัน) อย่างไรก็ตามแทนที่จะเขียนบรรทัดอื่นไปยัง stdout และเพิ่มแถบความคืบหน้าอีกอันบรรทัดนั้นจะอัพเดตเช่นนี้: 50%[===========================>________________________] 50,000 100.0K/s และwgetไม่ได้เป็นเพียงตัวอย่างเดียวของเรื่องนี้เช่นกัน ตัวอย่างเช่นเมื่อคุณไพพ์สิ่งใดสิ่งหนึ่งเข้าlessและออกแล้วพรอมต์ดั้งเดิมของคุณจะยังคงอยู่ที่นั่นพร้อมกับผลลัพธ์ของคำสั่งใดก็ตามที่คุณรันก่อนหน้านี้ มันเหมือนกับว่าคุณไม่เคยจากไป ดังนั้นคำถามของฉันคือสิ่งนี้เรียกว่าฉันจะใช้มันได้อย่างไรมันทำงานได้ครั้งละหนึ่งบรรทัดเท่านั้นและฉันสามารถใช้มันใน C ได้ไหม?
24 terminal 

8
เป็นไปได้หรือไม่ที่จะตรวจสอบว่ามีการกำหนดนามแฝงหรือไม่?
นามแฝงเช่นllถูกกำหนดด้วยaliasคำสั่ง ฉันสามารถตรวจสอบคำสั่งด้วยสิ่งต่าง ๆtype llที่พิมพ์ได้ ll is aliased to `ls -l --color=auto' หรือcommand -v llที่พิมพ์ alias ll='ls -l --color=auto' หรือalias llที่พิมพ์ alias ll='ls -l --color=auto' แต่ฉันไม่สามารถหาตำแหน่งที่กำหนดนามแฝงได้เช่นไฟล์เช่น.bashrcหรืออาจด้วยตนเองในเชลล์ที่กำลังรัน ณ จุดนี้ฉันไม่แน่ใจว่าจะเป็นไปได้ ฉันควรผ่านไฟล์ทั้งหมดที่โหลดbashและตรวจสอบไฟล์ทุกไฟล์หรือไม่?
24 bash  terminal  bashrc 

6
การมีโหลด tmux ตามค่าดีฟอลต์เมื่อเปิดใช้งานเทอร์มินัล zsh
เวิร์กโฟลว์ปัจจุบันของฉันคือ: CTRL+ SHIFT+ Tเพื่อเปิดหน้าต่างเทอร์มินัลใหม่ ที่เริ่มต้นสถานี zsh ใหม่ พิมพ์tmuxเพื่อเริ่ม tmux ฉันจะโหลด tmux เป็นค่าเริ่มต้นด้วยหน้าต่างเทอร์มินัลใหม่ได้อย่างไร
23 terminal  zsh  tmux 

1
อะไรคือ scrollback และ scrollback buffer?
อะไรคือ "scrollback" และ "scrollback บัฟเฟอร์" ในโปรแกรมเช่นbashและscreenและวิธีการทำพวกเขาเกี่ยวข้องกับ TTY ที่โปรแกรมถูกเรียกใช้และ stdin / stdout / stderr? นี่คือคำจำกัดความเดียวของ "scrollback" ที่ฉันพบจนถึงตอนนี้ (ในarchlinux wiki ): Scrollback เป็นฟังก์ชั่นที่นำมาใช้ในคอนโซลข้อความเพื่อให้ผู้ใช้กลับไปดูบรรทัดข้อความที่เลื่อนออกจากหน้าจอ สิ่งนี้เกิดขึ้นได้โดยบัฟเฟอร์ที่สร้างขึ้นสำหรับวัตถุประสงค์นี้ระหว่างอะแดปเตอร์วิดีโอและอุปกรณ์แสดงผลเท่านั้น บัฟเฟอร์ scrollback แต่นี่ทำให้เกิดคำถามเพิ่มเติมสำหรับฉัน: มันหมายความว่า "ฟังก์ชั่น" ใน "subroutine" หรือใน "คุณสมบัติ"? มีมาตรฐาน Unix หรือ API สำหรับบัฟเฟอร์การเลื่อนนี้หรือไม่? ใน "สแต็ค" ของโปรแกรมเช่นvimเปิดตัวในscreenเปิดตัวในbashเปิดตัวในsshเปิดตัวเทอร์มินัลอีมูเลเตอร์โปรแกรมใดบ้างที่ควบคุมการเลื่อนบัฟเฟอร์? ฉันยังใช้screenในการถ่ายโอนข้อมูล scrollback ไปยังแฟ้ม ไฟล์นี้มีพื้นที่สีขาวจำนวนมากที่ด้านบนและดูเหมือนว่า "มุมมอง" ตัวจำลองเทอร์มินัลของฉันแสดงให้ฉันเห็นว่าเป็นเพียงไม่กี่บรรทัดด้านล่างของบัฟเฟอร์ นี่เป็นสาเหตุที่โปรแกรมอย่างเช่นvim"ล้าง" หน้าต่างเทอร์มินัลทั้งหมดของฉันเพราะได้รับการเข้าถึงชั่วคราวกับบัฟเฟอร์การเลื่อนกลับของพาเรนต์เชลล์หรือไม่? หรือไม่vimใช้ buffer scrollback …

2
สามารถแทนที่ช่องว่าง / พื้นหลังในเทอร์มินัลด้วยรูปแบบแบบสุ่ม (แต่สวย) ของอักขระ ASCII ได้หรือไม่?
บริบทและคำถาม มีหลายวิธีในการปรับสีเทอร์มินัลและสภาพแวดล้อมเชลล์ เอาต์พุตของคำสั่งแต่ละคำสั่งเช่นlsและgrepยังสามารถทำให้เป็นสี ไม่เกี่ยวข้องโดยตรง แต่ที่น่าสนใจอย่างไรก็ตามความคิดของการเล่นสื่อที่คอนโซลแต่ดูเหมือนจะอาศัยกรอบ (ห้องสมุด) บางส่วนที่ด้านบนของระบบหน้าต่าง คำถามต่อไปนี้มุ่งที่bashเชลล์เท่านั้นและการนำไปใช้ในกรอบงานเทอร์มินัล Linux และการสนับสนุน โปรดพิจารณาการตัดต่อ ASCII ของ "การเรนเดอร์" ของฉากหนึ่งในเกม 2D : นี่ไม่ใช่ฉากที่สร้างแบบสุ่ม กลุ่มที่ฉันเลือกทั้งหมดแสดงให้เห็นถึงรูปแบบของภูมิประเทศ "ทุ่งหญ้า" (ต้นไม้พุ่มไม้และพุ่มไม้ดอกไม้หญ้า ฯลฯ ) จากเกมที่ใช้อักขระ ASCII เพื่อเป็นตัวแทนวัตถุดังกล่าว 4 ฉากสุดท้ายที่ผู้ใช้แสดงสร้างชุดไพ่เรียงซึ่งโดยทั่วไปแล้วเป็นตัวละคร ASCII ที่มีสเปคสี (รายละเอียดดังกล่าวไม่สำคัญ - ก็เพียงพอแล้วที่จะบอกว่านี่เป็นแรงบันดาลใจทางสายตาสำหรับสิ่งที่ฉันพยายามทำให้สำเร็จในแง่ภาพและ " รูปแบบ ") คุณสมบัติทั่วไปฉากเหล่านั้นในการตัดต่อแบ่งปันคือ: มากที่สุด 5-6 ตัวอักษร ASCII ที่แตกต่างกัน (เครื่องหมายจุลภาค, เครื่องหมายคำพูดและอื่น ๆ ) ใช้ 2-4 สี สำหรับตัวละคร …
23 bash  terminal  colors  tty 

2
เหตุใดจึงมีหกกระบวนการ Getty ที่ทำงานบนเดสก์ท็อปของฉัน
ระบบเดสก์ท็อปของฉันคือ: $ uname -a Linux xmachine 3.0.0-13-generic #22-Ubuntu SMP Wed Nov 2 13:25:36 UTC 2011 i686 i686 i386 GNU/Linux เมื่อทำงานps a | grep gettyฉันจะได้ผลลัพธ์นี้: 900 tty4 Ss+ 0:00 /sbin/getty -8 38400 tty4 906 tty5 Ss+ 0:00 /sbin/getty -8 38400 tty5 915 tty2 Ss+ 0:00 /sbin/getty -8 38400 tty2 917 tty3 …

1
ใช้ rsync ซ้ำ - เอาต์พุตที่รันช้าเพื่อเพิ่มความเร็วในการถ่ายโอนจริงในภายหลัง
ฉันมักจะทำก่อนที่จะทำจริงrsync -n rsyncสิ่งคือฉันจะทำให้การรันครั้งที่สองโดยอัตโนมัติเพื่อนำรายการที่สร้างขึ้นมาใหม่ได้--dry-runอย่างไร ฉันหมายความว่าถ้าฉันวิ่งrsync -nแล้วฉันจะได้รับการจำลองว่าrsyncจะทำอย่างไรความคิดของฉันก็คือเอาผลลัพธ์นั้นมาประมวลผลมันก็จะสร้างrsyncเฉพาะ--include-fromผลผลิตนั้นดังนั้นรายการทั้งหมดจะต้องคำนวณเพียงครั้งเดียว หากนี่ไม่สมเหตุสมผลโปรดแจ้งให้เราทราบ rsync -hva --progress --stats --delete --exclude-from "$EXCLUDEFILE"โดยวิธีการที่ฉันมักจะใช้ หากคุณมีข้อเสนอแนะเกี่ยวกับตัวเลือกที่คุณจะใช้โปรดแจ้งให้เราทราบ ฉันพยายามทำซ้ำเนื้อหาของฮาร์ดไดรฟ์ภายนอก (ซึ่งมีเฉพาะภาพวิดีโอและเอกสาร) ไปยังฮาร์ดไดรฟ์ภายนอกอื่น

3
วิธีการป้องกันเอาท์พุทคอนโซลแบบสุ่มไม่ให้แตกขั้ว?
มีคำถามมากมายเกี่ยวกับ SE cat /dev/urandomที่แสดงวิธีการกู้คืนจากสถานีทำลายโดยมี สำหรับผู้ที่ไม่คุ้นเคยกับปัญหานี้ - นี่คือสิ่งที่เกี่ยวกับ: คุณดำเนินการcat /dev/urandomหรือเทียบเท่า (ตัวอย่างcat binary_file.dat) ขยะถูกพิมพ์ ที่จะโอเค ... ยกเว้น terminal ของคุณยังคงพิมพ์ขยะแม้กระทั่งหลังจากที่คำสั่งเสร็จเรียบร้อยแล้ว! นี่คือภาพหน้าจอของข้อความที่พิมพ์ผิดที่อยู่ในความเป็นจริงเอาต์พุต g ++: ฉันเดาว่าคนที่ถูกต้องเกี่ยวกับข้อผิดพลาด C ++ บางครั้งก็เป็นความลับเกินไป! วิธีการแก้ปัญหาตามปกติคือการเรียกใช้stty sane && resetแม้ว่ามันจะน่ารำคาญที่จะเรียกใช้ทุกครั้งที่เกิดเหตุการณ์นี้ ด้วยเหตุนี้สิ่งที่ฉันต้องการมุ่งเน้นในคำถามนี้คือเหตุผลดั้งเดิมว่าทำไมสิ่งนี้จึงเกิดขึ้นและวิธีป้องกันมิให้เครื่องแตกหลังจากคำสั่งดังกล่าวออก ฉันไม่ได้มองหาวิธีแก้ปัญหาเช่นการส่งคำสั่งที่ละเมิดไปtrหรือxxdเพราะคุณต้องรู้ว่าโปรแกรม / ไฟล์เอาต์พุตไบนารีก่อนที่คุณจะเรียกใช้ / พิมพ์จริงและจำเป็นต้องจดจำทุกครั้งที่คุณส่งออกข้อมูลดังกล่าว . ฉันสังเกตเห็นพฤติกรรมเดียวกันใน URxvt, PuTTY และ Linux frame buffer ดังนั้นฉันไม่คิดว่านี่เป็นปัญหาเฉพาะเทอร์มินัล ผู้ต้องสงสัยหลักของฉันคือการที่เอาท์พุทแบบสุ่มมีบางส่วนหลบหนีรหัส ANSI ที่พลิกเข้ารหัสอักขระ (ในความเป็นจริงถ้าคุณเรียกใช้cat /dev/urandomอีกครั้งโอกาสที่มันจะUnbreakขั้วซึ่งดูเหมือนจะยืนยันทฤษฎีนี้) หากนี่ถูกต้องรหัสหลบหนีนี้คืออะไร มีวิธีมาตรฐานในการปิดการใช้งานหรือไม่

1
มีหน้าคู่มือใด ๆ สำหรับเอาต์พุตเชลล์สีหรือไม่?
คุณรู้ไหมว่าเอาต์พุตที่เป็นสีที่ทำโดยลำดับอักขระพิเศษเช่น: echo -e "\e[34m Hello\n \e[0m" สิ่งนี้จะสร้างคำว่า "Hello" ที่มีสีฟ้า เมื่อต้องการทำสิ่งนี้ฉันต้องค้นหาบนเว็บและมันยากเพราะแหล่งที่มาที่แตกต่างกันอาจพูดอะไรที่แตกต่างออกไป ฉันคิดว่าต้องมีคู่มือบางอย่าง แต่ฉันหาไม่เจอ แม้จะมีapropos colorหรือสิ่งที่คล้ายกัน ดังนั้นคำถามคือ - ฉันจะหาคู่มือที่เชื่อถือได้ที่ไหน?

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