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

Unix เป็นระบบปฏิบัติการคอมพิวเตอร์แบบหลายผู้ใช้ที่พัฒนาขึ้นในปี 2512 โดยกลุ่มพนักงานของ AT&T ที่ Bell Labs

1
โครงสร้างไดเร็กทอรีถูกเก็บไว้ในระบบไฟล์ UNIX อย่างไร?
ฉันได้อ่านแล้วว่าแต่ละไดเรกทอรีเก็บเนื้อหา (ไฟล์และไดเรกทอรีย่อย) โดยใช้รายการชื่อไฟล์และ inode pair แต่ไม่มีการอ้างอิงที่ฉันได้พูดอะไรเกี่ยวกับวิธีการจัดเก็บ พวกเขาถูกเก็บไว้ใน inode ของไดเรกทอรีแม่ของพวกเขาโดยใช้บล็อกข้อมูลเช่นไฟล์ปกติหรืออาจใช้วิธีอื่น ๆ ที่ฉันไม่ทราบ? ขอขอบคุณสำหรับการชี้แจง.

4
จะเปลี่ยนชื่อไฟล์ภายในโฟลเดอร์โดยใช้คำสั่ง shell ได้อย่างไร?
some/long/path/to/file/myfiel.txtฉันมีไฟล์ที่ some/long/path/to/file/myfile.txtฉันต้องการที่จะเปลี่ยนชื่อเป็น ขณะนี้ฉันทำได้โดยmv some/long/path/to/file/myfiel.txt some/long/path/to/file/myfile.txtแต่การพิมพ์เส้นทางสองครั้งไม่มีประสิทธิภาพมากนัก (แม้จะเสร็จสิ้นการแท็บ) ฉันจะทำสิ่งนี้เร็วขึ้นได้อย่างไร (ฉันคิดว่าฉันสามารถเขียนฟังก์ชันเพื่อเปลี่ยนเซ็กเมนต์ชื่อไฟล์เท่านั้น แต่นั่นคือแผน B)
8 unix  shell  zsh 

4
การเรียงลำดับตัวเลขในไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคด้วย Unix
ฉันมีไฟล์ที่คั่นด้วยเครื่องหมายจุลภาคซึ่งมีลักษณะดังนี้: 100,00869184 6492,8361 1234,31 200,04071 ฉันต้องการที่จะใช้sortในการจัดเรียงไฟล์นี้ตัวเลขจากคอลัมน์แรกเท่านั้น ผลลัพธ์ที่ต้องการ: 100,00869184 200,04071 1234,31 6492,8361 ฉันจะบรรลุสิ่งนี้โดยใช้การเรียงลำดับได้อย่างไร ดูเหมือนว่าเครื่องหมายจุลภาคจะถูกปฏิบัติเหมือนตัวคั่นหลายพันแทนที่จะเป็นตัวคั่นแม้ว่าฉันจะเรียกพวกเขาออกเช่นนี้ ทั้งสองsort -t',' -nและsort -t',' -nk1'ให้สิ่งนี้กับฉัน: 1234,31 200,04071 6492,8361 100,00869184 เรียงตามค่าเริ่มต้น (ไม่มีพารามิเตอร์) หรือใช้sort -t','ให้ฉันนี้: 100,00869184 1234,31 200,04071 6492,8361 และการเรียงลำดับเป็นตัวเลขsort -nให้สิ่งนี้แก่ฉัน: 1234,31 200,04071 6492,8361 100,00869184 ฉันจะใช้การเรียงลำดับเพื่อให้ได้ผลลัพธ์ตามที่ต้องการได้อย่างไร แก้ไขเพื่อเพิ่ม: นี่เป็นการดำเนินการครั้งเดียวเพื่อสร้างรายการที่เรียงลำดับประมาณ 7 ล้านบรรทัดดังนั้นการแก้ปัญหาหรือวิธีการนอกรีตอื่น ๆ จึงเป็นที่ยอมรับอย่างสมบูรณ์
8 unix  csv  sorting  hp-ux 

2
คำสั่ง dd ทำอะไรกันแน่
ไม่กี่วันที่ผ่านมาฉันดีใจที่พบว่าไม่ใช่เรื่องยากที่จะเขียนภาพ iso ไปยัง USB โดยปราศจากความช่วยเหลือของโปรแกรมของบุคคลที่สามที่ออกแบบมาอย่างชัดเจน แต่คำสั่ง (หรือโปรแกรม) ที่สนับสนุนสิ่งนี้ - dd - ไขปริศนาให้ฉัน ตามวิกิพีเดียมันถูกออกแบบมาเพื่อคัดลอกและแปลงข้อมูลดิบ แต่โดยสุจริตฉันพบคำจำกัดความที่ชัดเจนและคลุมเครือ ฉันเข้าใจว่ามันช่วยให้คุณสามารถเปลี่ยนข้อมูลหนึ่งชิ้นเป็นอีกส่วนหนึ่งได้ แต่จะเกิดอะไรขึ้นถ้าไฟล์เอาต์พุตที่ระบุมีขนาดเล็กเกินไปที่จะกลายเป็นไฟล์อินพุตที่ระบุได้ dd if=giant_file of=tiny_file นอกจากนี้เมื่อฉันสร้าง USB ที่สามารถบู๊ตได้พร้อมไฟล์ภาพ USB จะได้รับชนิดของระบบไฟล์ของisofsแต่ถ้าฉันเขียนไฟล์เก็บถาวรหรือเรียกใช้งานไดรฟ์มันจะยังคงประเภทระบบไฟล์ปกติ การชี้แจงสิ่งที่คำสั่ง dd ทำจริง ๆ หรือวิธีการทำงานในระดับต่ำกว่าจะได้รับการชื่นชมมาก ขอบคุณ!
8 linux  usb  unix  filesystems  dd 

4
Linux ทั้งตัวพิมพ์เล็กและใหญ่และตัวพิมพ์เล็กและไม่สะดวกเสมอ?
ฉันใช้ Ubuntu 10 และฉันพบว่าตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เมื่อไม่สะดวก (เช่นเมื่อทำการปรับเส้นทางไฟล์โดยอัตโนมัติด้วยแท็บในเทอร์มินัล) แต่ยังใช้งานไม่ได้เมื่อใช้คำสั่ง MV และ CP เมื่อพยายามทำซ้ำชื่อไฟล์ด้วยกรณีอื่น) ในสาระสำคัญฉันต้องการคำสั่งนี้ทำงาน แต่ไม่ cp ./filename.txt ./FileName.txt ฉันจบลงด้วยfilename.txt: ฉันจะรับไฟล์เดียวกันโดยใช้ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ แต่ชื่อเดียวกันในไดเรกทอรีเดียวกันได้อย่างไร แก้ไข: ความคิดเห็นของ Maerics ด้านล่างช่วยให้ฉันจำได้ว่าจริง ๆ แล้วฉันกำลังพัฒนาบนไดรฟ์ที่ใช้ร่วมกันของ Windows ที่ใช้ NTFS ซึ่งเป็นกรณีที่ไม่สำคัญ นี่คือสาเหตุที่แม้ว่า CP และ MV จะไม่สร้างข้อผิดพลาด แต่ไฟล์จะไม่ถูกคัดลอก (หรือมีแนวโน้มว่าจะถูกคัดลอก แต่ Windows จะแทนที่ไฟล์ที่มีอยู่แล้ว)
8 linux  unix  ubuntu 

3
ค้นหาการกระจาย Linux / Unix ที่คุณใช้ (จากบรรทัดคำสั่ง) [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : ฉันจะรู้ได้อย่างไรว่าฉันใช้ Linux รุ่นใด (9 คำตอบ) ปิดให้บริการใน6 ปีที่ผ่านมา เมื่อใช้คอมพิวเตอร์ Linux / BSD / Unix ที่ไม่คุ้นเคย (เช่นโดย SSH) จากบรรทัดคำสั่งคุณจะบอกได้อย่างไรว่าคุณใช้การกระจายแบบใด (และการกระจายแบบนั้น) คุณกำลังใช้งานอย่างไร ตัวเลือกบางอย่างที่ฉันได้ลอง: lsb_release --all: ไม่มีอยู่ใน OpenSuSE 11.3; ใช้ได้กับ Debian squeeze และ Ubuntu 10.10 uname --all: ไม่ให้ข้อมูล distro เกี่ยวกับ SuSE และ Debian ทำงานใน Ubuntu cat /etc/apt/sources.listในคุณสามารถดูเซิร์ฟเวอร์ของการแจกจ่ายที่เครื่องเชื่อมต่อเพื่อรับการอัพเดต เห็นได้ชัดว่าใช้งานได้กับการแจกแจงแบบเดเบียนเท่านั้น จะไม่ทำงานหากคอมพิวเตอร์ได้รับการกำหนดค่าให้ใช้เซิร์ฟเวอร์ที่เก็บข้อมูลที่กำหนดเอง น่าเสียดายที่สิ่งเหล่านี้ดูเหมือนจะไม่ทำงานในการแจกแจงหลายอย่าง มีคำสั่งง่ายๆในการตรวจสอบหรือไม่?

5
เป็นไปได้หรือไม่ที่จะได้รับที่อยู่ IP ภายนอกของเราเตอร์โดยไม่ต้องใช้เว็บไซต์
ฉันสงสัยว่ามีวิธีหาที่อยู่ IP ของเราเตอร์ของคุณโดยไม่ใช้เว็บไซต์เช่น www.whatismyip.com หรือไม่ ฉันค้นหาไปรอบ ๆ และฉันเริ่มคิดว่ามันเป็นไปไม่ได้ ถ้าเป็นเช่นนั้นมีใครอธิบายได้ไหม

1
sudo chown ล้มเหลวด้วยการดำเนินการที่ไม่ได้รับอนุญาต
ฉันพบคำถามที่คล้ายกันที่นี่ แต่คำตอบสำหรับคำถามเหล่านั้นไม่สามารถแก้ปัญหาของฉันได้ ถ้าฉันทำ: sudo chown <username> main.m ฉันได้รับการดำเนินการที่ไม่อนุญาตให้เกิดข้อผิดพลาด วิธีแก้ไขปัญหาทั่วไปสำหรับข้อผิดพลาดก่อนหน้าคือ: sudo chflags nouchg main.m เพื่อล้างธงล็อค อย่างไรก็ตามหลังจากทำสิ่งนี้ฉันยังคงไม่สามารถ chown ไฟล์ได้ ฉันได้ลองด้วย: chflags noschg main.m ในโหมดผู้ใช้คนเดียวโดยไม่มีโชค - ฉันได้รับการดำเนินการที่ไม่ได้รับอนุญาตข้อผิดพลาด หากใครมีความคิดฉันจะสนใจ

4
ฉันจะรันคำสั่ง 'find` นี้ได้อย่างไร แต่เฉพาะในไฟล์ที่ไม่ใช่ไบนารี
ฉันต้องการลบช่องว่างต่อท้ายออกจากไฟล์ทั้งหมดในลำดับชั้นไดเรกทอรีซ้ำ ฉันใช้สิ่งนี้: find * -type f -exec sed 's/[ \t]*$//' -i {} \; วิธีนี้ใช้ได้ผล แต่จะลบ "ช่องว่าง" ต่อท้ายออกจากไฟล์ไบนารีที่พบซึ่งไม่พึงประสงค์ ฉันจะบอกfindให้หลีกเลี่ยงการรันคำสั่งนี้ในไฟล์ไบนารีได้อย่างไร?
8 unix  find 

6
ตัวแสดง CSV บรรทัดคำสั่ง Unix [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับผู้ใช้ขั้นสูง ปิดให้บริการใน2 ปีที่ผ่านมา มีตัวแสดง csv บรรทัดคำสั่งที่สะดวกหรือไม่อาจเป็นเครื่องมือ unix หรือ mod ของเครื่องมือบางอย่าง (เช่น vim หรือ python)? ฉันคิดว่ามันง่ายมากที่จะแก้ไขไฟล์ CSV ด้วยการเขียนมันเอง (เนื่องจากคุณต้องทำเครื่องหมายจุลภาคคั่นคอลัมน์) แต่มีวิธีดูใน UI ที่ดีกว่าเล็กน้อยบนบรรทัดคำสั่งหรือไม่

4
ฉันจะบันทึกคำสั่งเชลล์ UNIX ทั้งหมดที่ส่งโดยผู้ใช้ทั้งหมดได้อย่างไร
มีวิธีที่ฉลาดในการบันทึกทุกคำสั่งที่ส่งในเชลล์ทั้งหมดบนเครื่องหรือไม่? นี่คือบริบทของเซิร์ฟเวอร์อูบุนตูที่ใช้บ่อยซึ่งฉันเป็นผู้ใช้คนเดียว (มีบัญชีผู้ใช้หลายบัญชีที่ระบบอัตโนมัติใช้) scriptฉันต้องการนี้จะสร้างความรำคาญและค่าใช้จ่ายต่ำดังนั้นฉันรักมันถ้ามีวิธีการที่ง่ายที่เกี่ยวข้องกับสิ่งที่ชอบ
8 unix  shell  logging 

2
ฉันจะรันคำสั่งอื่นได้อย่างไร แต่มีอาร์กิวเมนต์เดียวกัน
ตัวอย่างเช่นฉันแก้ไขแล้วเรียกใช้แหล่งเดียวกัน vim arbit.py python arbit.py ฉันรู้ว่าฉันสามารถเรียกใช้ได้จากภายในvimแต่ฉันต้องการโซลูชันทั่วไปเกี่ยวกับ Bash ฉันค้นหาสถานการณ์ที่ฉันนำข้อโต้แย้งมาใช้ซ้ำ ฉันจะทำสิ่งนั้นได้อย่างไร


2
เปลี่ยนเขตเวลาเป็นการชั่วคราวเพื่อแสดงวันที่ / เวลาที่แสดงในระหว่างเซสชัน SSH
มีวิธีใดที่ฉันสามารถกำหนดเขตเวลา (ซึ่งจะเปลี่ยนวิธีแสดงเวลา) สำหรับเซสชัน SSH ที่กำหนด สถานการณ์: ฉันเกือบจะเข้าสู่กล่อง Unix ซึ่งอยู่ในสหรัฐอเมริกาและเวลาที่แสดงสำหรับทุกคำสั่งที่ใช้ (เช่นวันที่แก้ไขเมื่อใช้ls) อยู่ในรูปแบบสหรัฐอเมริกา มีวิธีใดบ้างที่ฉันสามารถเปลี่ยนเขตเวลาชั่วคราวสำหรับเซสชันที่กำหนดเพื่อให้ฉันสามารถดูเวลาที่แสดงเป็นคำสั่งเอาต์พุตสำหรับเขตเวลาของฉัน (เช่น Japan Time Zone JST)
8 unix 

4

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