Unix & Linux

คำถาม & คำตอบสำหรับผู้ใช้ Linux, FreeBSD และระบบปฏิบัติการ Un * x อื่น ๆ

2
ทำไมกลุ่มคำสั่ง brace ต้องการช่องว่างหลังจากเปิดวงเล็บปีกกาใน POSIX Shell Grammar
TL; DR : ทำไมช่องว่างกลุ่ม POSIX รั้งจำเป็นหลังจาก{คำสงวน แต่ subshell ไม่หลังจากคำสงวน(? ไวยากรณ์ของ POSIX เชลล์กำหนดกลุ่มวงเล็บปีกกาและ subshell ดังนี้ brace_group : Lbrace compound_list Rbrace subshell : '(' compound_list ')' ทีนี้ถ้าเราอ่านว่าช่องว่างนั้นสำคัญมาก นี่หมายความว่าจะต้องมีพื้นที่ที่แยกเปิดและปิดวงเล็บปีกกาและวงเล็บเช่นเดียวกับใน { echo hello world; } ( echo hello world ) สิ่งนี้จะสอดคล้องกับคำสั่งคำสั่งผสม : คำสั่งผสมเหล่านี้แต่ละคำมีคำที่สงวนไว้หรือผู้ดำเนินการควบคุมในตอนเริ่มต้นและคำที่สงวนไว้สำหรับคำสั่งสุดท้ายหรือคำว่าผู้ประกอบการที่เกี่ยวข้องในตอนท้าย อย่างไรก็ตามสิ่งที่ไม่สมเหตุสมผลคือเหตุผล(list)และ( list )ทำงานได้ดี ( (ไม่จำเป็นต้องใช้พื้นที่นั้นหลังจากนั้น) อย่างไรก็ตามการขยายตัวของรั้งต้องมีพื้นที่ชั้นนำเช่น{echo hello;}ไม่ทำงาน แน่นอนว่าคำที่สงวนไว้ซึ่งได้รับการปฏิบัติเหมือนคำว่าเชลล์จำเป็นต้องเว้นวรรคเพื่อให้สอดคล้องกับแนวคิดของการแยกฟิลด์อย่างไรก็ตามคำจำกัดความของตัวเองไม่ได้พูดถึงช่องว่าง นอกจากนี้หาก{และ(ทั้งคู่ถือว่าคำที่สงวนไว้โดยนิยาม POSIX ของคำสั่งผสมทำไมพวกเขาถึงได้รับการปฏิบัติที่แตกต่างกันเกี่ยวกับอักขระช่องว่างหลังจากคำที่สงวนไว้เหล่านี้? …
10 shell  posix  subshell  syntax 

3
`/ etc / hosts` และ DNS ทำงานร่วมกันเพื่อแก้ไขชื่อโฮสต์ให้เป็นที่อยู่ IP ได้อย่างไร
ใน Linux จะทำอย่างไร/etc/hostsและ DNS ทำงานร่วมกันเพื่อแก้ไขชื่อโฮสต์ให้เป็นที่อยู่ IP ได้อย่างไร หากชื่อโฮสต์สามารถแก้ไขได้/etc/hostsDNS จะนำไปใช้หลังจาก/etc/hosts แก้ไขชื่อโฮสต์หรือจัดการที่อยู่ IP ที่ได้รับการแก้ไขแล้วด้วยการ /etc/hostsเป็น "ชื่อโฮสต์" เพื่อแก้ไขปัญหาซ้ำ ๆ หรือไม่ ในเบราว์เซอร์ของฉัน (firefox และ google chrome) เมื่อฉันเพิ่มไปที่ /etc/hosts: 127.0.0.1 google.com www.google.com พิมพ์ www.google.com ลงในแถบที่อยู่ของเบราว์เซอร์และกดปุ่ม Enter จะไม่เชื่อมต่อกับเว็บไซต์ หลังจากที่ฉันลบบรรทัดนั้นออก/etc/hostsแล้วฉันสามารถเชื่อมต่อกับเว็บไซต์ได้ หมายความว่า/etc/hostsแทนที่ DNS สำหรับการแก้ไขชื่อโฮสต์หรือไม่ หลังจากที่ฉันเพิ่มบรรทัดอีกครั้ง/etc/hostsฉันยังคงสามารถเชื่อมต่อกับเว็บไซต์ได้แม้หลังจากรีเฟรชหน้าเว็บแล้ว เหตุใดจึงไม่ /etc/hostsใช้อีกครั้งดังนั้นฉันจึงไม่สามารถเชื่อมต่อกับเว็บไซต์ได้ ขอบคุณ

1
รับชื่อวันสามตัวอักษรจากคำสั่ง date
date +%b ให้อักษรย่อสามตัวของชื่อเดือนปัจจุบัน (ฉันพบว่าออนไลน์ไม่อยู่ในฉันman dateหรือฉันจะหาคำตอบสำหรับคำถามนี้ได้man date) ฉันจะรับชื่อวันปัจจุบันได้อย่างไร เช่น Sun, Mon, Tue เป็นต้น


2
เหตุใด sudoedit จึงเขียนลงในไดเรกทอรีชั่วคราว
ฉันเคยsudoeditสร้างไฟล์: $ sudoedit /etc/systemd/system/apache2.service แต่เมื่อฉันไปบันทึกไฟล์มันเขียนไว้ในไดเรกทอรีชั่วคราว (/ var / temp / blahblah) เกิดอะไรขึ้น? เหตุใดจึงไม่บันทึกลงในไดเรกทอรีระบบ
10 sudoedit 

2
การรันซอฟต์แวร์ userland แบบ 64 บิตบนเคอร์เนลแบบ 32 บิตคืออะไร
บน Linux และ Windows ฉันคุ้นเคยกับสถานการณ์ที่ฉันต้องการเคอร์เนล 64 บิตเพื่อให้ระบบมี multiarch / WoW ที่ฉันสามารถเรียกใช้ซอฟต์แวร์แบบ 32 บิตและ 64 บิตแบบเคียงข้างกัน และเมื่อหลายปีก่อนมันทำให้ฉันรู้สึกเครียดเมื่อมีคนบอกฉันว่า MacOS 10.6 Snow Leopard สามารถเรียกใช้แอปพลิเคชัน 64 บิตด้วยเคอร์เนลในโหมด 32 บิต สิ่งนี้อาจถูกลืมไปแล้วในตอนนี้เพราะเป็นการเปลี่ยนแปลงเทคโนโลยีครั้งเดียว ด้วยฮาร์ดแวร์ที่ก้าวล้ำในพื้นที่มือถือเท่าที่ฉันรู้ว่าสิ่งนี้ไม่จำเป็นในการย้ายไป 64- บิตสำหรับ iOS และ Android คำถามของฉัน: อะไรจะได้รับความสามารถเดียวกันในเคอร์เนล 32 บิต (i386 หรือ armhf) ฉันเข้าใจว่านี่อาจไม่สำคัญ ถ้าเป็นเช่นนั้น Microsoft อาจนำคุณลักษณะนี้ไปใช้ใน Windows XP 32 บิต ข้อกำหนดทั่วไปมีอะไรบ้าง เคยมีการเสนอแพทช์หรือพิสูจน์แนวคิดหรือไม่? ในโลกที่ฝังตัวฉันคิดว่าสิ่งนี้จะเป็นประโยชน์อย่างยิ่งเนื่องจากการสนับสนุน …

1
การอนุญาตไดเรกทอรี macOS Mojave
MacOS Mojave ได้เพิ่มเอฟเฟกต์ของ SIP ลงในโฮมไดเรกทอรีของผู้ใช้ โดยค่าเริ่มต้นการเข้าถึงถูกปฏิเสธไปยังไดเรกทอรีต่างๆในไดเรกทอรีบ้านของผู้ใช้ ตัวอย่างบางส่วนของไดเรกทอรีเหล่านี้เป็นไปตาม ~/Library/Messages ~/Library/Mail ~/Library/Safari [… etc.] ในการเข้าถึงไดเรกทอรีเหล่านี้จากเทอร์มินัลจะต้องกำหนดแอปพลิเคชันเทอร์มินัลในการตั้งค่าระบบ> ความปลอดภัยและความเป็นส่วนตัว> ความเป็นส่วนตัว> การเข้าถึงดิสก์ทั้งหมด การกำหนดค่าใช้งานได้ยกเว้นไดเรกทอรีต่อไปนี้บนระบบของฉัน พฤติกรรมเดียวกันอาจมีอยู่สำหรับข้อมูลอื่นในภาชนะบรรจุ - ไม่แน่ใจ ~/Library/Containers/com.apple.mail/Data/DataVaults พฤติกรรมที่น่าสนใจเป็นเรื่องง่ายที่จะทำซ้ำ ไดเรกทอรีไม่สามารถมองเห็นได้ cd ~/Library/Containers/com.apple.mail/Data ls ls: DataVaults: Operation not permitted ฉันใช้rsyncเพื่อสะท้อนไดเรกทอรีบ้านของฉันไปยังฮาร์ดไดรฟ์ภายนอก แต่ฉันไม่สามารถทำได้อีกต่อไปเพราะrsyncบ่นว่า "พบข้อผิดพลาดของ IO - การข้ามการลบไฟล์" ซึ่งทำให้เอฟเฟกต์การมิเรอร์ ฉันไม่พบเอกสารใด ๆ เกี่ยวกับปัญหานี้ ฝ่ายสนับสนุนของ Apple ไม่มีความคิด เหตุใดไดเรกทอรีนี้จึงพิเศษและเราจะเข้าถึงโดยไม่ปิดการใช้งาน SIP ได้อย่างไร ผลลัพธ์ของการตรวจสอบเพิ่มเติมด้วยการปิดใช้งาน SIP ตามข้อมูลระบบการอัปเกรด …
10 permissions  osx 

3
ฉันจะปิดการใช้งานปุ่ม poweroff และ reboot ใน sddm บน Debian ได้อย่างไร?
สิ่งที่ฉันพยายาม: ฉันสร้างไฟล์/etc/sddm/sddm.conf(พยายามแล้ว/etc/sddm.conf) ด้วยเนื้อหาต่อไปนี้: [General] HaltCommand=true RebootCommand=true น่าเสียดายที่ไม่ได้ช่วย - ปุ่มรีบูตยังคงทำงานต่อไป โดยเฉพาะอย่างยิ่งปุ่มควรจะหายไป แก้ไข: ฉันต้องการชี้แจงว่าฉันไม่ได้คาดหวังว่าtrueจะถูกตีความว่าเป็นค่าบูลีนฉันคาดว่ามันจะถูกตีความว่าเป็นคำสั่ง และtrueเป็นคำสั่งที่ถูกต้องเนื่องจากมีความสามารถในการปฏิบัติการ/bin/trueบนระบบ Linux ส่วนใหญ่ที่ไม่ทำอะไรเลยยกเว้นการกลับมาสถานะความสำเร็จ เพียงเพื่อให้แน่ใจว่านี่ไม่ใช่ปัญหาของเส้นทางฉันยังลองตั้งค่า/bin/trueที่ไม่ได้ช่วยด้วย
10 debian  sddm 

3
. ssh / config Host สามารถมีหลายชื่อโฮสต์ได้หรือไม่?
ฉันได้ตั้งค่าการส่งต่อ ssh และเราเตอร์พอร์ตดังนั้นฉันจึงสามารถ ssh ลงในคอมพิวเตอร์บนเครือข่ายภายในบ้านของฉันเมื่อฉันไม่ได้อยู่บ้าน ปัจจุบันฉันมีสองรายการใน.ssh/configไฟล์ของฉันรายการหนึ่งสำหรับเมื่อฉันอยู่ในเครือข่ายในบ้านของฉันและอีกรายการหนึ่งสำหรับเมื่อฉันไม่ได้: Host mycomputer HostName 192.168.X.X Host mycomputerathome HostName my.no-ip.dynamic ใช้งานได้ แต่ฉันสงสัยว่าฉันจะทำให้ตัวเองง่ายขึ้นได้ไหม ฉันหวังว่าจะมีวิธีในการแสดงรายการ HostName หลายรายการเช่นถ้ารายการแรกล้มเหลวจะกลับไปเป็นรายการที่สอง: Host mycomputer HostName 192.168.X.X HostName my.no-ip.dynamic เพื่อที่จะพยายามเชื่อมต่อกับโฮสต์บนเครือข่ายท้องถิ่นของฉันก่อนและหากยังไม่มีอยู่มันจะพยายามเชื่อมต่อโดยใช้ชื่อโฮสต์แบบไดนามิก no-ip ของฉัน ฉันได้ลองป้อนชื่อโฮสต์สองรายการ แต่การรันssh mycomputerบล็อกเพียงแค่ไม่ทำอะไรเลย ฉันได้ปิดการรับรองความถูกต้องของรหัสผ่านเพื่อให้ได้รับกุญแจดังนั้นการเชื่อมต่อกับคอมพิวเตอร์บนเครือข่ายท้องถิ่นโดยไม่ตั้งใจเมื่อฉันไม่ได้อยู่ในเครือข่ายในบ้านของฉันไม่ควรเสี่ยงต่อรหัสผ่านที่จะไปทุกที่ที่มันไม่ควร เป็นไปได้ไหมที่จะระบุชื่อโฮสต์สำรองเพื่อลองใช้หากชื่อแรกไม่ทำงาน
10 ssh 

1
เหตุใดกระบวนการพื้นหลังของ nohup จึงถูกฆ่า?
ฉันพยายามเริ่มเชลล์สคริปต์ผ่านเซสชันระยะไกลซึ่งเริ่มกระบวนการในพื้นหลังโดยใช้คำสั่ง nohup python3 run.py > nohup.out & เมื่อปิดเซสชันระยะไกลกระบวนการกำลังถูกฆ่าด้วยข้อความ: จับสัญญาณ SIGHUP พบ SIGHUP แล้ว แต่ไม่ได้รับการทำผิด ออกจาก ฉันไม่เข้าใจ ทำไมกระบวนการการฆ่าเมื่อมันถูกเริ่มต้นในพื้นหลังโดยใช้nohup & ?

3
จะถามเมนูการตั้งค่า Terminator ได้อย่างไร?
ฉันเป็นแฟนตัวยงของTerminator โดยค่าเริ่มต้นเมนูการตั้งค่าสามารถเข้าถึงได้โดยคลิกขวาบน terminal ฉันเพิ่งกำหนดค่า Terminator ให้ทำสำเนาวางเมื่อคลิกขวา (คล้ายกับสีโป๊ว) น่าเสียดายที่ทำให้เมนูการตั้งค่าไม่สามารถเข้าถึงได้อีกต่อไป ทางออกคืออะไร?

4
รหัสผ่านของผู้ใช้คนใดที่ `sudo 'ถามหา
$ ls -l /usr/bin/sudo -rwsr-xr-x 1 root root 136808 Jul 4 2017 /usr/bin/sudo ดังนั้นsudoสามารถรันsudoได้โดยผู้ใช้ใด ๆ และผู้ใช้ที่รันใด ๆจะมีรูตเป็น ID ผู้ใช้ที่มีประสิทธิภาพของกระบวนการเนื่องจากเซ็ตบิตผู้ใช้/usr/bin/sudoตั้งค่าของ จากhttps://unix.stackexchange.com/a/11287/674 ความแตกต่างที่เห็นได้ชัดเจนที่สุดระหว่าง sudo และ su คือsudo ต้องการรหัสผ่านของผู้ใช้และ su ต้องใช้รหัสผ่านของ root รหัสผ่านของผู้ใช้ใดsudoถาม เป็นผู้ใช้ที่แสดงโดย ID ผู้ใช้จริงของกระบวนการหรือไม่ ถ้าใช่ผู้ใช้จะไม่ได้รับสิทธิ์ superuser โดยการเรียกใช้sudoแล้วระบุรหัสผ่านของตนเอง? Linux สามารถ จำกัด สิ่งนั้นกับผู้ใช้บางคนได้หรือไม่? มันถูกต้องที่sudoจะขอรหัสผ่านหลังจากที่ execve()เริ่มต้นในการดำเนินการmain()ของ/usr/bin/sudo? เนื่องจาก euid ของกระบวนการเปลี่ยนเป็นรูท (เนื่องจากบิต set-user-id ของ / usr …

3
สิ่งที่เทียบเท่า Wayland ของรายการ xinput คืออะไร
ฉันใช้ไดรเวอร์ userspace สำหรับอุปกรณ์ / dev / uinputในเซสชันเดสก์ท็อป Wayland คำแนะนำแนะนำให้ใช้xinput listเพื่อยืนยันว่าอุปกรณ์ตรวจพบ แน่นอน xinput เป็นแอปพลิเคชั่น X.org คำสั่งที่เทียบเท่าสำหรับ Wayland คืออะไร (ยอมรับ GUI เทียบเท่า GNOME ได้)
10 x11  wayland  libinput 

3
เมนูทั่วไปของ KDE หายไปใน Plasma 5.12
ฉันอัพเกรดเป็นพลาสมา 5.12 และเมนูทั่วโลกหายไปและรายการในการตั้งค่า (สไตล์แอปพลิเคชัน -> สไตล์วิดเจ็ต -> ปรับจูน) ก็หายไปเช่นกัน ฉันพยายามลบไฟล์ plasma * จาก ~ / .config และทั้งโฟลเดอร์ ~ / .kde โดยคิดว่าอาจเป็นการตั้งค่าผิดพลาด แต่ก็ไม่ได้ช่วยอะไร
10 kde  kde5  plasma5  appearance 

2
PAM: การตรวจสอบล้มเหลวด้วยรหัสผ่านที่ถูกต้อง
คำสั่ง pamtester -v auth pknopf authenticate pamtester: invoking pam_start(auth, pknopf, ...) pamtester: performing operation - authenticate Password: pamtester: Authentication failure journctl Feb 06 13:22:17 PAULS-ARCH unix_chkpwd[31998]: check pass; user unknown Feb 06 13:22:17 PAULS-ARCH unix_chkpwd[31998]: password check failed for user (pknopf) Feb 06 13:22:17 PAULS-ARCH pamtester[31997]: pam_unix(auth:auth): authentication failure; logname= …
10 pam 

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