Unix & Linux

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

3
การจับคู่คำที่มี / ไม่มีช่องว่างต่อท้ายแตกต่างกันอย่างไร
ฉันกำลังเรียนรู้การเขียนสคริปต์เชลล์และฉันใช้ HackerRank อยู่ มีคำถามที่เกี่ยวข้องsedกับเว็บไซต์เดียวกันคือ: 'Sed' command # 1 : สำหรับแต่ละบรรทัดในไฟล์อินพุตที่กำหนดให้แปลงคำแรก 'the' with 'this' การค้นหาและการแปลงควรคำนึงถึงขนาดตัวพิมพ์ ก่อนอื่นเลยฉันลอง sed 's/the/this/' แต่ในกรณีทดสอบตัวอย่างนั้นล้มเหลว จากนั้นฉันก็ลอง sed 's/the /this /' และมันก็ใช้งานได้ ดังนั้นคำถามเกิดขึ้นช่องว่างที่สร้างขึ้นต่างกันอย่างไร ฉันทำอะไรบางอย่างหายไปหรือเปล่า
12 sed  whitespace 

2
ออกจากเชลล์ด้วยทางลัด (ไม่พิมพ์ exit) ซึ่งปิดเซสชันอย่างถูกต้อง
ฉันใช้คำสั่ง ProxyJump สำหรับจำนวนเซสชัน ssh ที่ฉันใช้ทุกวันและสลับผู้ใช้จำนวนมากบนเซสชันเหล่านี้และต้องพิมพ์exit3 หรือ 4 ครั้งในแถวไม่สนุกเกินไป ฉันรู้ว่าnewline+ ~+ .เพื่อยุติเซสชัน ssh ฉันยังต้องตรวจสอบว่ามันจบลงด้วยความเป็นมิตรexitแต่คุณจะออกจากเซสชันทั้งหมดในเชลล์ปัจจุบันด้วยคำสั่งเดียวหรือทางลัดเช่นพิมพ์exit3 หรือ 4 ครั้งได้อย่างไร ในกรณีของฉันกลายเป็นสิ่งที่ครั้งเดียว?
12 bash  shell  session 

1
Linux มีการเรียกของระบบเพื่อเข้าถึงคุณลักษณะทั้งหมดของระบบไฟล์ที่รองรับหรือไม่?
Linux รองรับระบบไฟล์จำนวนมาก (เช่น ext3, NTFS, FAT32 เป็นต้น) แผนภาพต่อไปนี้แสดงให้เห็นว่า Linux อนุญาตให้กระบวนการเข้าถึงไฟล์ได้อย่างไร: ดังนั้นสมมติว่ากระบวนการที่เรียกว่าการเรียกread()ระบบเพื่ออ่านไฟล์สิ่งที่จะเกิดขึ้นคือเลเยอร์ VFS จะเข้าถึงได้และเลเยอร์ VFS จะตัดสินใจว่าไดรเวอร์ระบบไฟล์ใดที่จะเข้าถึงตามระบบไฟล์ของพาร์ติชันที่ไฟล์นั้นไป จะอ่านอยู่บน ลินุกซ์ให้สายระบบจำนวนมากในการเข้าถึงไฟล์ (ตัวอย่างเช่น: read(), write(), rename()ฯลฯ ) ตอนนี้read()และwrite()และrename()การทำงานในทุกระบบแฟ้มที่สนับสนุนลินุกซ์ แต่มีคุณสมบัติเฉพาะที่มีอยู่ในระบบไฟล์บางระบบเท่านั้น แต่ไม่มีอยู่ในระบบอื่น ตัวอย่างเช่น: บนระบบไฟล์ NTFS คุณสามารถตั้งค่าบิตเก็บถาวรสำหรับไฟล์ในขณะที่ไม่สามารถทำได้บนระบบไฟล์ ext3 ตอนนี้คำถามของฉันคือ Linux มีการเรียกระบบเพื่อเข้าถึงคุณลักษณะทั้งหมดของระบบไฟล์ที่รองรับหรือไม่? ตัวอย่างเช่น: Linux มีการเรียกระบบเพื่อตั้งค่าบิตเก็บถาวรสำหรับไฟล์บนระบบไฟล์ NTFS หรือไม่?

3
ทำไม“ rm -r” ไม่สามารถลบโฟลเดอร์นี้ได้?
ฉันมีโฟลเดอร์ที่มี-wxสิทธิ์เรียกว่าfolder1และอีกโฟลเดอร์หนึ่งเรียกว่าfolder2มีrwxสิทธิ์ ฉันพยายามลบfolder1โดยใช้คำสั่งนี้: rm -r folder1 แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: rm: cannot remove 'folder1': Permission denied เหตุผลที่ฉันคิดว่าฉันได้รับข้อผิดพลาดนี้เนื่องจากrmโปรแกรมจำเป็นต้องได้รับเนื้อหาของfolder1(รับชื่อของไฟล์และโฟลเดอร์ที่อยู่ภายในfolder1) เพื่อที่จะสามารถลบเนื้อหานั้น (เพราะคุณไม่สามารถลบไฟล์ได้ หรือโฟลเดอร์โดยไม่ทราบชื่อฉันคิดว่า) จากนั้นrmโปรแกรมสามารถลบfolder1ตัวเอง แต่เนื่องจากfolder1ไม่มีreadสิทธิ์rmโปรแกรมจึงไม่สามารถรับเนื้อหาได้ดังนั้นจึงไม่สามารถลบเนื้อหาและเนื่องจากไม่สามารถลบเนื้อหาได้จึงไม่สามารถลบเนื้อหาได้ ฉันถูกไหม?
12 linux  permissions  rm 

1
ทำไมเคอร์เนล Linux Debian 9 (ยืด) ของฉันไม่ได้รับการอัพเกรดหลังจาก 'apt install'
ผมใช้เวลาส่วนที่ดีของเดือนพยายามที่จะติดตั้งติดตั้งลบด้วยตนเองและติดตั้งลินุกซ์ใหม่ล่าสุดภาพ 4.9.0-8 (หรือมัน) บนของฉันDebian 9 (ยืด) แต่มันจะเสมอ (อีกครั้ง) บูต ไปเป็นรุ่นที่ผิดของ Linux 3.16.0-5 ฉันยังลบ/bootเนื้อหาไดเรกทอรีทั้งหมดและติดตั้งใหม่ ฉันมีการติดตั้ง Debian 9 มาตรฐานลงใน/dev/sdaไดรฟ์ซึ่ง/dev/sda1เป็น/bootพาร์ติชันแบบสแตนด์อโลน รายการตรวจสอบของฉัน: ตรวจสอบDebian บริหารคู่มือ ไม่มี UEFI bootloader ในฮาร์ดแวร์ ปิดตัวเลือก imageramfs ใน /etc/kernel-img.conf ไม่มีโมดูลเคอร์เนลแฟนซี (ไม่ใช่แม้แต่ NVIDIA หรือ ATI) ใช้อย่างถูกต้องaptแทนapt-get นั่นคือระบบจิ๊กซอว์เดียวที่นี่ที่ฉันเจอ ไดเรกทอรีล่าสุด/bootคือ: $ ls -lat /boot total 106000 drwxr-xr-x 23 root root 4096 Jan 17 12:25 …

1
ค้นหาคำอธิบายใน man page สำหรับตัวแปรสภาวะแวดล้อมที่แสดงด้วยคำสั่ง env
ใน man pages ฉันจะหาคำอธิบายโดยละเอียดของตัวแปรสภาพแวดล้อมที่แสดงรายการเมื่อenvคำสั่งรันได้อย่างไร? ฉันลองแล้วman envแต่มันมีเพียงตัวอย่างเดียวสำหรับTZตัวแปรสภาพแวดล้อม

1
การเข้ารหัสประเภทใดที่งานศิลปะ ANSI เหล่านี้ใช้
ฉันพบเว็บไซต์นี้แล้ว มันมีไฟล์ซิป (ลิงค์ในหน้าหลัก ) พร้อมงานศิลปะทั้งหมด บางคนมี.ansส่วนขยายและพวกเขาดูเหมือนรหัสหลบหนี ANSI ที่ใช้บน Linux / Unix แต่เมื่อฉันเปิดหนึ่งในนั้นใช้catใน terminal XFce มันสร้างขยะ (แต่ในสี) พวกเขาดูเหมือนคลังภาพ บรรทัดแรกของงานศิลปะหลักจากลิงค์มีลักษณะดังนี้ (คัดลอกมาจาก Emacs): [0;1m[30mthere is no substitute [0;33mÜܲ[1;43m°±²²[40mÛ[43mÛ²±[0;33mÝ ßÜ[1;43m²²²[40mÛÛ²[40m[K ประเภทไฟล์คือ DOS แต่สามารถสร้างได้บน Windows เมื่อค้นหางานศิลปะของ ANSI ฉันยังพบเว็บไซต์นี้ที่มีไฟล์ซิปที่มีเฉพาะไฟล์ที่มี.ansนามสกุลและพวกเขาก็แสดงผลไม่ถูกต้องบน Linux (แกลเลอรีในหน้า 2) คำถามของฉันคือ: การเข้ารหัสแบบนี้เป็นแบบไหนสำหรับคอมพิวเตอร์เครื่องใด ฉันต้องใช้ตัวแสดงพิเศษเพื่อดูบนเทอร์มินัล Linux หรือไม่ คุณรู้หรือไม่ว่างานศิลปะประเภทนี้ถูกสร้างขึ้นสำหรับเทอร์มินัล Linux / Unix หรือไม่ ฉันพบศิลปะ ASCII เท่านั้น เป็นไปได้หรือไม่ที่จะแปลงให้ดูบนเทอร์มินัล …
12 linux  ansi-term  ansi 


4
เป็นไปได้ไหมที่จะติดตั้ง Debian 5 ในปี 2018
ฉันต้องการติดตั้ง Debian 5 บนพีซีรุ่นเก่าเพราะฉันคาดหวังว่าเคอร์เนลของ Debian 5 จะทำงานได้ดีขึ้นในคอมพิวเตอร์เครื่องนี้ ฉันดาวน์โหลด netinstall ISO จากdebian.orgและฉันพยายามติดตั้งลงในVirtualboxเครื่อง ฉันได้รับข้อผิดพลาดนี้: Bad mirror. ฉันเปลี่ยนมิเรอร์archive.debian.orgเป็นชื่อโฮสต์แล้ว/debian/และปัญหาได้รับการแก้ไข ปัญหาของฉันตอนนี้คือการติดตั้งติดอยู่Please wait...บนหน้าจอของSelect and install(หลังจากเลือกสิ่งที่จะติดตั้ง - เท่านั้นStandard System- ที่ 13%) ฉันไม่ได้รับข้อผิดพลาดใด ๆ ฉันไม่รู้วิธีตรวจสอบบันทึกหรืออย่างอื่นถ้ามีอยู่บ้าง เมื่อฉันกดCTRL+ ALT+ F4ฉันเห็นสิ่งต่อไปนี้บนหน้าจอ: > sep 14 15:36:00 in-target: You should only proceed with the installation if you re certain that > sep 14 …

1
ความสัมพันธ์ระหว่างกระบวนการเคอร์เนลเธรดกระบวนการที่มีน้ำหนักเบาและเธรดผู้ใช้ใน Unix คืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา Unix Internal โดย Vahalia มีตัวเลขแสดงความสัมพันธ์ระหว่างกระบวนการเคอร์เนลเธรดกระบวนการน้ำหนักเบาและเธรดผู้ใช้ หนังสือเล่มนี้ให้ความสนใจมากที่สุดกับ SVR4.2 และยังสำรวจ 4.4BSD, Solaris 2.x, Mach และ Digital UNIX โดยละเอียด โปรดทราบว่าฉันไม่ได้ถามเกี่ยวกับ Linux สำหรับแต่ละกระบวนการมีกระบวนการที่มีน้ำหนักเบาอย่างน้อยหนึ่งกระบวนการอ้างอิงหรือไม่? รูปที่ 3.4 ดูเหมือนจะบอกว่าใช่ ทำไมรูปที่ 3.5 (a) แสดงกระบวนการโดยตรงที่ด้านบนของ CPU โดยไม่มีกระบวนการที่มีน้ำหนักเบาในระหว่างนั้น สำหรับกระบวนการที่มีน้ำหนักเบาแต่ละครั้งจะมีเคอร์เนลเธรดเดียวที่อ้างอิงกระบวนการที่มีน้ำหนักเบาหรือไม่ รูปที่ 3.4 ดูเหมือนจะบอกว่าใช่ ทำไมรูปที่ 3.5 (b) แสดงกระบวนการที่มีน้ำหนักเบาโดยตรงบนกระบวนการโดยที่ไม่มีเคอร์เนลเธรด เคอร์เนลเธรดเป็นเอนทิตีเดียวที่สามารถกำหนดเวลาได้หรือไม่? กระบวนการที่มีน้ำหนักเบาถูกกำหนดเวลาโดยอ้อมผ่านการกำหนดตารางเวลาเธรดเคอร์เนลพื้นฐานหรือไม่? กระบวนการที่กำหนดไว้ทางอ้อมผ่านการกำหนดเวลากระบวนการน้ำหนักเบาพื้นฐานหรือไม่ ปรับปรุง: ฉันถามคำถามที่คล้ายกันสำหรับ Linux กระบวนการน้ำหนักเบาติดอยู่กับเคอร์เนลเธรดใน …

3
การสูญเสียความแม่นยำด้วย dc
ฉันต้องการใช้dcเพื่อจัดการกับฐาน 16 จำนวนด้วยจุดเลขฐานสิบหก แต่ฉันพบปัญหาที่แม่นยำ ตัวอย่างด้านล่างฉันคูณF423F.FDด้วย100เลขฐานสิบหกทั้งคู่ คำตอบที่คาดหวังคือF423FFDแทนที่จะให้F423FFA.E1ปิด แต่ไม่แม่นยำพอแม้หลังจากปัดเศษ $ dc 16 d i o F423F.FD 100 * p F423FFA.E1 ฉันอ่านว่าdcเป็นเครื่องคิดเลขที่มีความแม่นยำไม่ จำกัด และนี่ไม่ใช่วิธีการใด ๆ มีบางอย่างที่ฉันทำผิดหรือเปล่า? ขอบคุณสำหรับคำตอบของคุณ เมื่อให้ปัญหากับdcฉันฉันกระสุนและเขียน parser ของฉันเองสำหรับตัวเลขจริงในฐานอื่น ๆ หากใครสนใจรหัสฉันสามารถโพสต์ได้ที่นี่
12 dc 

3
ทำไม“ cat {foo}” ไม่ส่งออก foo แต่“ cat {foo, bar}” ทำเช่นนั้น
ฉันพยายามเชื่อมไฟล์ข้อความในโฟลเดอร์ย่อยและพยายาม: cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1}/book.txt > out$var อย่างไรก็ตามสิ่งนี้ไม่ได้ส่งคืนสิ่งใด ดังนั้นลองเพิ่ม 'subfolder2' ที่ไม่มีอยู่ cat ./{mainfolder1,mainfolder2,mainfolder3}/{subfolder1,subfolder2}/book.txt > out$var และในครั้งนี้มันได้ผลโดยทำการต่อไฟล์เข้าด้วยกัน ทำไมสิ่งนี้เกิดขึ้น

3
Bash brace expansion หลังพา ธ สแลช
ฉันกำลังพยายามคัดลอกไฟล์ไปยังชื่ออื่นในไดเรกทอรีเดียวกันโดยใช้การขยายรั้ง ฉันใช้ bash 4.4.18 นี่คือสิ่งที่ฉันทำ: cp ~/some/dir/{my-file-to-rename.bin, new-name-of-file.bin} แต่ฉันได้รับข้อผิดพลาดนี้: cp: cannot stat '/home/xyz/some/dir/{my-file-to-rename.bin,': No such file or directory แม้แต่การขยายรั้งอย่างง่ายเช่นนี้ก็ทำให้ฉันมีข้อผิดพลาดเดียวกัน cp {my-file-to-rename.bin, new-name-of-file.bin} ผมทำอะไรผิดหรือเปล่า?

2
การใช้ jq ภายใน chain pipe จะไม่สร้างเอาต์พุต
ปัญหาของการjqต้องการตัวกรองที่ชัดเจนเมื่อมีการกล่าวถึงผลลัพธ์ของการเปลี่ยนเส้นทางไปทั่วเว็บ แต่ฉันไม่สามารถเปลี่ยนเส้นทางผลลัพธ์หากjqเป็นส่วนหนึ่งของไพพ์เชนแม้ว่าจะใช้ตัวกรองอย่างชัดเจนก็ตาม พิจารณา: touch in.txt tail -f in.txt | jq '.f1' # in a different terminal: echo '{"f1":1,"f2":2}' >> in.txt echo '{"f1":3,"f2":2}' >> in.txt ตามที่คาดไว้เอาต์พุตในเทอร์มินัลดั้งเดิมจากjqคำสั่งคือ: 1 3 แต่ถ้าฉันเพิ่มการเปลี่ยนเส้นทางหรือการวางท่อใด ๆ ที่ส่วนท้ายของjqคำสั่งเอาต์พุตจะเงียบ rm in.txt touch in.txt tail -f in.txt | jq '.f1' | tee out.txt # in a different terminal: echo '{"f1":1,"f2":2}' …

6
ฉันจะเพิ่มสตริงแบบสุ่มสำหรับแต่ละบรรทัดได้อย่างไร
ฉันกำลังพยายามเพิ่มสตริงแบบสุ่มสำหรับแต่ละบรรทัดในขณะที่ทำงาน: awk '{print "name" "'$ran'" "-"$0}' 'myfile' ก่อนหน้านั้นสตริงสุ่มจะถูกสร้างขึ้น: ran="$(tr -dc '[:alnum:]' </dev/urandom | head -c 6)" ปัญหาคือมันจะพิมพ์สตริงสุ่มเดียวกันสำหรับแต่ละบรรทัด: nameGQz3Ek- nameGQz3Ek- nameGQz3Ek- ฉันควรทำอย่างไรเพื่อให้ได้สตริงสุ่มที่แตกต่างกันสำหรับแต่ละบรรทัด
12 awk 

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