Unix & Linux

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

1
วิธีแยก /etc/nixos/configuration.nix เป็นโมดูลแยกกันได้อย่างไร
สมมติว่าฉันมีไฟล์กำหนดค่า NixOSง่ายมาก: { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # SOME STUFF environment.systemPackages = with pkgs; [ emacs gitFull ]; # SOME STUFF } ฉันรู้ว่า NixOS ใช้ระบบโมดูลและโมดูลเป็น.nixไฟล์ ทุก.nixไฟล์ควรมีนิพจน์ห้ามที่ถูกต้อง(เช่นฟังก์ชั่นหรือชุด) นี่หมายความว่าไฟล์กำหนดค่า NixOS /etc/nixos/configuration.nixเป็นโมดูลซึ่งมีนิพจน์ Nix ฉันก็รู้ว่าเพื่อให้นิพจน์ห้ามในโมดูลอื่นมองเห็นโมดูลที่ฉันทำงานด้วยฉันสามารถใช้importฟังก์ชั่นในตัว ฉันต้องการที่จะแยกการประกาศของแพคเกจระบบ (รายการที่มีemacsและgitFull) packages.nixออกเป็นไฟล์ ฉันจะแบ่งไฟล์คอนฟิกูเรชัน NixOS …
14 nixos  nix 

4
การทุบตีเสร็จสมบูรณ์ไม่สมบูรณ์ใน centos 7
yum install --enablerepo=epel bash-completionผมได้ติดตั้งเสร็จสิ้นทุบตีใช้ ในขณะที่ใช้งานได้กับคำสั่งพื้นฐานบางอย่าง (git & yum) แต่ฉันก็ขาดคอมไพเลอร์ส่วนใหญ่ไป ฉัน/etc/bash_completion.dมีดังต่อไปนี้: bash_completion.d] $ ls git iprutils redefine_filedir yum yummain.py yum-utils.bash แต่ผมรู้ว่ามี bash_completion สำหรับ IE แต่งหน้า (ซึ่งมีการติดตั้ง) และอื่น ๆ อีกมากมายการเปรียบเทียบเช่นกับผลลัพธ์ตัวอย่างที่นี่ ฉันจะรับสคริปต์คอมไพเลอร์ที่ขาดหายไปได้อย่างไร (โดยเฉพาะกับ yum ดังนั้นฉันไม่ต้องอัปเดตด้วยตนเอง) หากเป็นเรื่อง: การทำให้แท็บเสร็จสมบูรณ์ แต่ฉันไม่ได้จัดหาอะไรใน. bashrc ของฉัน มันเพิ่งเริ่มทำงานหลังจากติดตั้งแพคเกจ UPDATE:หลังจากตรวจสอบเวอร์ชั่นของ bash เสร็จแล้วฉันได้ติดตั้งตามที่ @fduff แนะนำแล้วฉันเห็นสิ่งต่อไปนี้: ติดตั้ง $ yum list | การเติม grep …

2
การกระจายที่แตกต่างกันจะแก้ไขตำแหน่งของไฟล์กำหนดค่าสำหรับโปรแกรมอย่างไร
โปรแกรม Linux จำนวนมากระบุว่าตำแหน่งไฟล์ config นั้นขึ้นอยู่กับการกระจาย ฉันสงสัยว่าการกระจายที่แตกต่างกันทำสิ่งนี้อย่างไร พวกเขาปรับเปลี่ยนรหัสต้นฉบับจริงหรือไม่ มีพารามิเตอร์บิลด์ที่กำหนดตำแหน่งเหล่านี้หรือไม่ ฉันค้นหาสิ่งนี้แล้ว แต่ไม่พบข้อมูลใด ๆ ฉันรู้ว่ามันอยู่ที่นั่นฉันไม่สามารถหามันเจอ "วิธี Linux" ในเรื่องนี้คืออะไร?

2
มีเชลล์ล็อกอินที่ไม่มีการโต้ตอบหรือไม่?
ฉันรู้ว่าความแตกต่างระหว่างเชลล์แบบโต้ตอบ / ไม่โต้ตอบและเปลือกหอยเข้าสู่ระบบ / ไม่ใช่ลงชื่อเข้าใช้เป็นอย่างไร แต่ดูเหมือนว่าในทางปฏิบัติแล้วจะไม่มีเปลือกหอยเข้าสู่ระบบที่ไม่ใช่แบบโต้ตอบเว้นแต่ว่าคุณมี/bin/bash --login some-script.shสคริปต์ในสคริปต์ แปลก ๆ ) สิ่งนี้ถูกต้องหรือเป็นเรื่องธรรมดามากขึ้นหรือไม่
14 shell 

3
เคอร์เนลทั้งหมดถูกโหลดเข้าสู่หน่วยความจำขณะบูตหรือไม่
ฉันอ่านIBM doc ที่เป็นที่นิยม (ฉันเห็นว่ามีการอ้างอิงค่อนข้างบ่อยบนเว็บ) อธิบายการทำงานของดิสก์ RAM เริ่มต้น ฉันตีกำแพงในการกำหนดแนวคิดว่ามันทำงานอย่างไร ในเอกสารมันบอกว่า ตัวโหลดบูตเช่น GRUB ระบุเคอร์เนลที่จะโหลดและคัดลอกอิมเมจเคอร์เนลนี้และ initrd ที่เกี่ยวข้องใด ๆ ลงในหน่วยความจำ ฉันสับสนแล้ว: มันคัดลอกเคอร์เนลทั้งหมดไปยังหน่วยความจำหรือเพียงแค่ส่วนหนึ่งของมันได้หรือไม่ หากเคอร์เนลทั้งหมดอยู่ในหน่วยความจำแล้วทำไมเราถึงต้องใช้ RAM ดิสก์เริ่มต้นด้วยซ้ำ ฉันคิดว่าจุดประสงค์ของการเริ่มต้นเพื่อให้สามารถมีเคอร์เนลอิมเมจขนาดเล็กทั่วไปและ initrd จะติดตั้งโมดูลที่ถูกต้องก่อนที่จะโหลดอิมเมจเคอร์เนล แต่ถ้าเคอร์เนลทั้งหมดอยู่ในหน่วยความจำแล้วทำไมเราถึงต้องเริ่มต้น? นั่นยังทำให้เกิดสิ่งอื่นที่ทำให้ฉันสับสน - โมดูลที่โหลดลงในเคอร์เนลตั้งอยู่ที่ไหน โมดูลเคอร์เนลทั้งหมดถูกเก็บไว้ภายใน initrd หรือไม่?

5
ฉันจะค้นหาไดเรกทอรีที่ขาดหายไปเป็นครั้งแรกในเส้นทางที่ยาวได้อย่างไร
ลองนึกภาพฉันมีเส้นทางที่ไม่มีอยู่: $ ls /foo/bar/baz/hello/world ls: cannot access /foo/bar/baz/hello/world: No such file or directory แต่ขอบอกว่า/foo/bar ไม่มีอยู่ มีวิธีที่รวดเร็วสำหรับฉันในการพิจารณาว่าbazเป็นจุดแตกหักในเส้นทางหรือไม่ ฉันกำลังใช้ Bash
14 bash  shell  directory  ls 

1
วิธีการทำสำเนาไฟล์โดยไม่คัดลอกข้อมูลด้วย btrfs
ฉันไม่มีประสบการณ์กับ btrfs แต่โฆษณาเพื่อให้สามารถยกเลิกการทำซ้ำไฟล์ได้ ในใบสมัครของฉันฉันจะต้องทำซ้ำแผนผังไดเรกทอรีทั้งหมด จากสิ่งที่ฉันได้เรียนรู้ btrfs ทำซ้ำเฉพาะในบางโพสต์สแกนไม่ใช่ทันที แม้กระทั่งการใช้cpก็ไม่ได้ทำให้เกิดการซ้ำซ้อน (อย่างน้อยก็dfแสดงการใช้งานดิสก์ที่เพิ่มขึ้นในขนาดของไฟล์ที่คัดลอก) ฉันสามารถหลีกเลี่ยงการย้ายข้อมูลไปด้วยกันและบอกbtrfsให้ทำซ้ำไฟล์ที่ตำแหน่งอื่นได้โดยตรงโดยการโคลนข้อมูลเมตา ในสาระสำคัญคล้ายกับฮาร์ดลิงก์ แต่มีเมตาดาต้าอิสระ (สิทธิ์, mod. ครั้ง, ... )

6
วิธีสร้างตัวพิมพ์เล็ก pi (“ π”) ด้วยคีย์เขียนได้อย่างไร
ฉันค่อนข้างแน่ใจว่าฉันเคยสามารถสร้างตัวอักษร pi ตัวพิมพ์เล็กโดยใช้Composepi(ตามที่อธิบายไว้ในตัวอย่างเช่นfsymbols.com ) แต่มันใช้งานไม่ได้อีกต่อไป คีย์การเขียนของฉันใช้ได้กับตัวละครอื่น ๆ (เช่นComposeaa“ å”) ดังนั้นจะมีอะไรผิดปกติได้บ้าง ฉันไม่มี/usr/share/X11/locale/en_GB.utf8/Compose(หรือ~/.XCompose) เป็นสิ่งที่ควรได้รับการติดตั้ง / สร้าง? มี/usr/share/X11/locale/en_US.utf8/Compose; มันจะเพียงพอที่จะเชื่อมโยงจากที่/usr/share/X11/locale/en_GB.utf8/Composeจะแก้ไขปัญหานี้? $ locale LANG=en_GB.utf8 LC_CTYPE="en_GB.utf8" LC_NUMERIC="en_GB.utf8" LC_TIME="en_GB.utf8" LC_COLLATE="en_GB.utf8" LC_MONETARY="en_GB.utf8" LC_MESSAGES="en_GB.utf8" LC_PAPER="en_GB.utf8" LC_NAME="en_GB.utf8" LC_ADDRESS="en_GB.utf8" LC_TELEPHONE="en_GB.utf8" LC_MEASUREMENT="en_GB.utf8" LC_IDENTIFICATION="en_GB.utf8" LC_ALL= คำถามปั่น

5
ผสานสองไฟล์ทีละบรรทัดด้วยสัญลักษณ์สามท่อคั่น "|||"
|||ฉันมีสองไฟล์แบบคู่ขนานกับจำนวนเดียวกันของเส้นในสองภาษาและแผนการที่จะผสานเหล่านี้สายสองไฟล์โดยสอดคล้องกับตัวคั่น เช่นทั้งสองไฟล์มีดังนี้: ไฟล์ A: 1Mo 1,1 I love you. 1Mo 1,2 I like you. Hi 1,3 I am hungry. Hi 1,4 I am foolish. ไฟล์ B: 1Mo 1,1 Ich liebe dich. 1Mo 1,2 Ich mag dich. Hi 1,3 Ich habe Durst. Hi 1,4 Ich bin neu. ผลลัพธ์ที่คาดหวังเป็นดังนี้: 1Mo 1,1 I …

8
ตรวจสอบตัวแปรเป็นอาร์เรย์ใน Bourne like shell หรือไม่
ใน Bourne like shell ซึ่งสนับสนุนตัวแปรอาเรย์เราสามารถใช้การวิเคราะห์คำเพื่อตรวจสอบว่าตัวแปรเป็นอาร์เรย์หรือไม่ a=(1 2 3)คำสั่งทั้งหมดด้านล่างนี้ถูกเรียกใช้หลังจากการทำงาน zsh: $ declare -p a typeset -a a a=( 1 2 3 ) bash: $ declare -p a declare -a a='([0]="1" [1]="2" [2]="3")' ksh93: $ typeset -p a typeset -a a=(1 2 3) pdksh และอนุพันธ์: $ typeset -p a set -A a …
14 bash  shell  zsh  ksh  yash 

3
ทำไมเคอร์เนลที่รันไม่สามารถเริ่มต้นได้
ฉันดาวน์โหลดรูปภาพ Raspbian ในหน้านี้แล้ว ฉันพยายามรวบรวมเคอร์เนลที่สามารถใช้เพื่อบูตอิมเมจภายใน qemu ฉันดาวน์โหลด Linux kernel kernel จากkernel.orgและวิ่งไปที่: make versatile_defconfig make menuconfig ฉันเพิ่มคุณสมบัติต่อไปนี้ในเคอร์เนล: รองรับ PCI (CONFIG_PCI) การสนับสนุนอุปกรณ์ SCSI (CONFIG_SCSI) การสนับสนุนดิสก์ SCSI (CONFIG_BLK_DEV_SD) SYM53C8XX เวอร์ชัน 2 รองรับ SCSI (CONFIG_SCSI_SYM53C8XX_2) ระบบไฟล์ Extended 3 (ext3) (CONFIG_EXT3_FS) ระบบไฟล์ Extended 4 (ext4) (CONFIG_EXT4_FS) ฉันยังวนรอบเมานต์อิมเมจของดิสก์และ: แสดงความคิดเห็น /etc/ld.so.preload ปรับ/etc/fstabให้ใช้/dev/sda1และ/dev/sda2 จากนั้นฉันก็ถอนการติดตั้งภาพและพยายามเริ่มต้นเครื่องด้วย: qemu-system-arm \ -M versatilepb \ …
14 linux-kernel  arm  qemu  init 

3
ชื่อไฟล์ 'find -exec' pass มีช่องว่างอย่างไร
หากฉันมีไดเรกทอรีที่มีไฟล์บางไฟล์ที่ชื่อมีช่องว่างเช่น $ ls -1 dir1 file 1 file 2 file 3 ฉันสามารถคัดลอกทั้งหมดไปยังไดเรกทอรีอื่นเช่นนี้ได้สำเร็จ: $ find dir1 -mindepth 1 -exec cp -t dir2 {} + อย่างไรก็ตามการส่งออกของfind dir1 -mindepth 1มีช่องว่างที่ไม่หนี: $ find dir1 mindepth 1 dir1/file 1 dir1/file 3 dir1/file 3 หากฉันใช้print0แทนprintเอาต์พุตยังคงมีช่องว่างที่ไม่ได้ใช้ Escape: $ find dir1 mindepth 1 -print0 dir1/file 1dir1/file 2dir1/file 3 …

1
เหตุใดการล็อกเดสก์ท็อปหยุดทำงานหลังจากผ่านไประยะหนึ่ง
xautolockกำลังทำงานอย่างชัดเจน : $ ps wafux | grep [x]autolock user 21410 0.0 0.0 20124 2628 ? S Nov05 0:04 xautolock -time 10 -notify 30 -notifier notify-send --urgency low --expire-time=10000 -- 'Locking screen in 30 seconds' -locker slock อย่างไรก็ตามเมื่อฉันพยายามล็อคมัน : $ xautolock -locknow Could not locate a running xautolock. ถ้าฉันปั่นxautolockมันอีกมันใช้งานได้: $ xautolock …


2
ฉันจะสร้างและเข้าถึงไฟล์ temp จาก shell script ได้อย่างปลอดภัยได้อย่างไร?
ฉันได้อ่านแล้วว่าการเปลี่ยนเส้นทางเอาต์พุตไปยังไฟล์ชื่อคงที่/tmpอาจเป็นความเสี่ยงด้านความปลอดภัยเพราะหากผู้โจมตี (หรือผู้กระทำความผิด) สังเกตเห็นว่าไฟล์/tmp/tmpfileformyscript.tmpถูกสร้างขึ้นเมื่อฉันเรียกใช้สคริปต์ของฉัน (แม้ว่าเขาจะไม่สามารถเข้าถึงการอ่านของฉัน สคริปต์) ตัวอย่างเช่นเขาสามารถสร้าง symlink ln -s ~wildcard/.bashrc /tmp/tmpfileformyscript.tmpซึ่งจะทำให้ฉันทำลาย.bashrcไฟล์ของฉันเมื่อฉันเรียกใช้สคริปต์ของฉัน ดังนั้นฉันสามารถใช้สิ่งที่ชอบfilename="tmpfile.tmp.$RANDOM" ; echo outputtext > "$filename"แทน อย่างไรก็ตามฉันต้องการใช้ไฟล์ tmp สำหรับการแคชในบางครั้งซึ่งในกรณีนี้ฉันต้องการทราบว่า "tmpfile.tmp. *" ตรงกับทุกอย่างใน/tmpนั้นหรือไม่และใช้ไฟล์นั้นแทนการสร้างไฟล์ใหม่หรือไม่ น่าเสียดายtestและสิ่งที่เทียบเท่า[ -f filename ]ไม่สนับสนุนไฟล์ที่ทำให้กลมกลืนไปเท่าที่ฉันสามารถบอกได้ ดังนั้นคำถามของฉันคือสองเท่า: ฉันจะสร้าง tempfile อย่างปลอดภัยได้อย่างไร คือ"predictablename.$RANDOM"การปฏิบัติที่ได้รับการยอมรับหรือมีที่ดีกว่า (ความปลอดภัยมากขึ้นง่ายขึ้น) วิธี? ฉันจะเข้าถึงไฟล์และ / หรือสร้างการมีอยู่ของไฟล์ได้ในภายหลังโดยการตรวจสอบได้predictablenameอย่างไร?

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