Unix & Linux

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

4
การสร้างสตรีมเอาต์พุตเดี่ยวจากสามสตรีมอื่นที่สร้างแบบขนาน
ฉันมีข้อมูลสามชนิดที่มีรูปแบบต่างกัน สำหรับแต่ละชนิดข้อมูลมีสคริปต์ Python ที่แปลงเป็นรูปแบบรวมเป็นหนึ่งเดียว สคริปต์ Python นี้ช้าและ CPU ที่ถูกผูกไว้ (เพื่อหลักเดียวในเครื่องแบบ multi-core) ดังนั้นฉันต้องการที่จะทำงานสามกรณีของมัน - หนึ่งสำหรับแต่ละชนิดข้อมูล - sortและรวมการส่งออกของพวกเขาจะผ่านมันเข้าไป โดยทั่วไปเทียบเท่ากับสิ่งนี้: { ./handle_1.py; ./handle_2.py; ./handle_3.py } | sort -n แต่ด้วยสามสคริปต์ที่ทำงานในแบบคู่ขนาน ฉันพบคำถามนี้ที่ GNU splitถูกใช้เพื่อปัดเศษสตรีม stdout บางส่วนระหว่าง n อินสแตนซ์ของสคริปต์ที่จัดการสตรีม จากหน้าแยกคน: -n, --number=CHUNKS generate CHUNKS output files. See below CHUNKS may be: N split into N files …

1
ใช้ UUID กับ mdadm
ฉันใช้ GPT เป็นรูปแบบการแบ่งพาร์ติชันของฉัน ฉันตรวจสอบพาร์ติชันของ UUID ของฉัน: # ls -l /dev/disk/by-partuuid/ total 0 lrwxrwxrwx 1 root root 10 Oct 18 22:39 0793009a-d460-4f3d-83f6-8103f8ba24e2 -> ../../sdb3 lrwxrwxrwx 1 root root 10 Oct 18 22:39 13f83c47-ad62-4932-8d52-e93626166e7f -> ../../sdc3 lrwxrwxrwx 1 root root 10 Oct 18 22:39 1b247b1f-0b7b-419e-bc3b-0f90cbadb87c -> ../../sdc2 lrwxrwxrwx 1 root root 10 …
10 mdadm  gpt 

2
มีความเสถียรหรือไม่ที่จะใช้ epel และ rpmforge ในเวลาเดียวกัน?
ดังนั้นหลังจากติดตั้ง Scientific Linux 6.3 Desktop ใหม่แล้วฉัน: yum install rpmforge-release && yum update และ yum install epel-release.noarch แล้ว: yum install wine gparted cups-pdf && echo 'includepkgs=nss-mdns wine* gparted cups-pdf' >> /etc/yum.repos.d/epel.repo ตกลง! หลังจากนี้ฉัน: vi /etc/yum.repos.d/epel.repo includepkgs=nss-mdns wine* gparted cups-pdf ดังนั้นนี่คือวิธีที่ฉันติดตั้งไวน์สด (+ cups-pdf) และ gparted ถาม : นี่เป็นเรื่องที่จะต้องทำไหม? ฉันหมายถึงนี่จะทำให้เกิดปัญหาในอนาคตหรือไม่ (นั่นมีบางแพคเกจ epel ติดตั้ง …

4
คำนวณตัวแปรและส่งออกไปยังตัวแปรอื่น
bcเครื่องคิดเลขเดียวที่ผมรู้ก็คือ ฉันต้องการเพิ่ม1ตัวแปรและส่งออกไปยังตัวแปรอื่น ฉันได้รับnextnumตัวแปรจากการนับสตริงในไฟล์: nextnum=`grep -o stringtocount file.tpl.php | wc -w` ช่วยบอกว่าค่าnextnum 1เมื่อเพิ่มเข้ามาด้วยก็จะกลายเป็น1 2ในการคำนวณฉันทำงาน: rownum=`$nextnum+1 | bc` แต่มีข้อผิดพลาด: 1+1: command not found ฉันเพิ่งล้มเหลวในส่วนการคำนวณ ฉันลองเปลี่ยน backtick แล้วแต่ยังใช้งานไม่ได้ ฉันไม่ทราบวิธีการคำนวณตัวแปรและส่งออกไปยังตัวแปรอื่น


4
ตรรกะและในสคริปต์ทุบตี
ฉันมีifในสคริปต์ทุบตีของฉันที่ต้องตรวจสอบว่า EITHER ของ 2 ไฟล์ที่มีอยู่หากพวกเขาไม่อยู่มันควรจะสะท้อน รหัสฉันมี: if [[ ! -f /etc/benchmarking/code ]] && [[ ! -f /etc/benchmarking/code.class ]]; then echo "match" fi แต่นี่ดูเหมือนจะไม่ทำงานด้วยเหตุผลบางอย่าง ฉันแน่ใจว่า 110% ว่าไม่มีไฟล์ 2 ไฟล์นี้ ฉันไม่ได้รับข้อผิดพลาดใด ๆ ifมันก็ไม่ได้ใส่ ฉันยังใหม่กับการเขียนสคริปต์ทุบตีดังนั้นฉันไม่แน่ใจว่าจะเกิดอะไรขึ้น

5
ปิดใช้งานการล็อกหน้าจออัตโนมัติใน XFCE ใน Centos
ฉันมี Centos 5.8 ติดตั้งทั่วไปพร้อม XFCE 4.4 ค่าเริ่มต้นทั้งหมดค่อนข้างมาก ตามที่เป็นอยู่หลังจากเวลาที่ไม่ได้ใช้งานเป็นระยะเวลาหนึ่งการล็อคหน้าจอ (เป็นสีดำต้องใช้รหัสผ่านเพื่อดำเนินการต่อ) ฉันจะปิดการใช้งานการล็อกหน้าจออัตโนมัติได้อย่างไร ฉันค้นหาและอ่านคำแนะนำเพื่อใช้ตัวจัดการการตั้งค่าเพื่อแก้ไขการตั้งค่า Power Manager หรือ Screen Saver แต่ไม่มีการติดตั้งตัวจัดการ / การติดตั้ง / ไอคอนเหล่านั้นบนเดสก์ท็อปของฉัน UPDATE: ปรากฏว่าgnome-screensaverกำลังเริ่มต้นโดยอัตโนมัติ แน่นอนว่าฉันสามารถลบโปรแกรมนั้นออกจากระบบได้ แต่ฉันต้องการที่จะเข้าใจว่าเกิดอะไรขึ้นและใช้วิธีการกำหนดค่าแบบธรรมดามากขึ้นเพื่อป้องกันไม่ให้โปรแกรมเริ่มทำงานโดยอัตโนมัติและในเวลาเดียวกัน

3
เริ่มเป็นกลุ่มในฐานะผู้ใช้ของฉันด้วยสิทธิ์พิเศษ
ฉันมีไฟล์เสียงเรียกเข้าที่กำหนดเอง~/.vimและการตั้งค่าของ~/.vimrcฉัน อย่างไรก็ตามบางครั้งฉันต้องแก้ไขไฟล์บางไฟล์ใน/etcนั้น ถ้าฉันเริ่มเป็นกลุ่มแบบนี้: $ sudo vim /etc/rc.conf ฉันทำ config ของฉันหายไปเพราะ Vim ใช้ค่าเริ่มต้น ดังนั้น: ฉันจะเรียกใช้ Vim ด้วยสิทธิ์ root เพื่อแก้ไขไฟล์โดยไม่สูญเสียการตั้งค่าของผู้ใช้ (ซึ่งอยู่ในโฮมไดเร็กตอรี่ของฉัน) ได้อย่างไร? ฉันเหนื่อย: $ su username -c "vim /usr/lib/python2.7/setuptools/dist.py" Permission deniedแต่ทุบตีให้ฉัน อย่างไรก็ตามคำสั่งดังกล่าวใช้งานได้สำหรับตัวอย่าง: /etc/acpi/handler.sh. ทำไมถึงเป็นอย่างนั้น? หมายเหตุ: ชื่อผู้ใช้ไม่ได้เป็นรูท

2
ลบคำนำหน้าจากชื่อไฟล์
ฉันมีไฟล์มากมายดังนี้: 04602635_b0294.DAT20120807164534 04602637_b0297.DAT20120807164713 04602638_b0296.DAT20120807164637 04602639_b0299.DAT20120807164819 04602640_b0298.DAT20120807164748 04602641_b0300.DAT20120807164849 04602650_b0301.DAT20120807164921 04602652_b0302.DAT20120807164956 ฉันต้องเปลี่ยนชื่อพวกเขาเพื่อไม่รวมคำนำหน้า มันต้องมีหน้าตาแบบนี้ .. b0294.DAT20120807164534 b0297.DAT20120807164713 b0296.DAT20120807164637 b0299.DAT20120807164819 b0298.DAT20120807164748 b0300.DAT20120807164849 b0301.DAT20120807164921 b0302.DAT20120807164956 แก้ไข ฉันลืมที่จะเพิ่มว่าฉันใช้โซลาริส

2
ล้างพื้นที่ที่ไม่ได้ใช้ด้วยค่าศูนย์ (btrfs)
วิธีการล้างช่องว่างที่ไม่ได้ใช้ด้วยเลขศูนย์ (ฉันขอเครื่องมือสำหรับระบบไฟล์btrfs ) ฉันกำลังมองหาบางสิ่งที่ฉลาดกว่า cat /dev/zero > /mnt/X/big_zero ; sync; rm /mnt/X/big_zero เช่นเดียวกับFSArchiverกำลังมองหา "พื้นที่ใช้แล้ว" และไม่สนใจที่ไม่ได้ใช้ แต่เป็นเว็บไซต์ที่ตรงกันข้าม จุดประสงค์: ฉันต้องการบีบอัดภาพพาร์ติชันดังนั้นขอแนะนำให้เติมที่ว่างที่ไม่ได้ใช้ด้วยค่าศูนย์ Btw สำหรับ ext3, ext4: เคลียร์พื้นที่ไม่ได้ใช้ด้วยศูนย์ (ext3, ext4) ที่นี่ฉันขอ btrfs ความชัดเจนของ "อัลกอริทึมที่ชาญฉลาด": เมื่อฉันเห็นว่า "อัลกอริทึมที่ชาญฉลาด" นำไปสู่ความสับสนในที่สุดฉันก็ตัดสินใจที่จะเพิ่มบรรทัดเกี่ยวกับเรื่องนี้ ผู้อ่านที่รักโปรดคิดถึงระบบไฟล์เป็นโครงสร้างข้อมูล เพื่อจุดประสงค์ในการทำให้เข้าใจง่ายลองจินตนาการถึงการสร้างแผนที่ต้นไม้แดง - ดำที่สมดุลซึ่งถูกใช้เป็นชุดการเชื่อมโยงคีย์ -> ค่าที่มีค่าเป็นจำนวนเต็ม เป้าหมายคือการล้างค่าลบทั้งหมดด้วยศูนย์ อัลกอริทึม "ไม่ใช่สมาร์ท" จะวนซ้ำและเพิ่มคีย์: คู่ค่าลงในแผนที่ใหม่ (ด้วยการเปลี่ยนค่าลบเป็นศูนย์) อัลกอริทึมสมาร์ทก็จะตรวจสอบสถานที่ที่ค่าลบจะถูกเก็บไว้และล้างพวกเขาในสถานที่

7
เข้ารหัสหลายไฟล์พร้อมกัน
ฉันกำลังเขียนสคริปต์ที่สร้างที่เก็บถาวรโครงการแล้วสร้างที่เก็บถาวร 7z เพื่อให้ง่ายต่อการบันทึกรุ่นที่ระบุและเก็บสำรองข้อมูลที่เข้ารหัส หลังจากที่ฉันสร้างที่เก็บถาวรและฉันได้รับการเข้ารหัสฉันต้องการเข้ารหัสไฟล์ด้วยการโทรเพียงครั้งเดียวgpgถ้าเป็นไปได้เพื่อให้ผู้ใช้ป้อนข้อความรหัสผ่านของพวกเขาเพียงครั้งเดียว มิฉะนั้นเราอาจต้องใส่ข้อความรหัสผ่านของผู้ใช้ในหน่วยความจำ (ซึ่งฉันไม่ต้องการทำ) หรือให้พวกเขาป้อนข้อมูลและยืนยันข้อความรหัสผ่านของพวกเขาสำหรับทุกโครงการที่ถูกเก็บถาวร (ซึ่งแย่กว่า) มีวิธีการส่งชื่อไฟล์หลาย ๆ ไฟล์เพื่อgpgเข้ารหัสมันทั้งหมดในครั้งเดียวหรือไม่? ถ้าฉันลองทำสิ่งนี้: $ gpg --cipher-algo AES256 --compression-algo BZIP2 -c project1.7z project2.7z ... ฉันเห็นข้อผิดพลาดต่อไปนี้ในเชลล์: usage: gpg [options] --symmetric [filename] มีวิธีการทำสิ่งที่ฉันต้องการสำเร็จหรือไม่
10 gpg 

4
ฉันจะรีสตาร์ทอินเทอร์เฟซเครือข่ายได้อย่างไร
ฉันจะรีสตาร์ทอินเทอร์เฟซเครือข่ายได้อย่างไร ฉันมี vm ที่ไม่อัปเดตที่อยู่ IP ของมันอย่างถูกต้องเมื่อสลับระหว่างบ้านและที่ทำงาน vm ใช้งานเซิร์ฟเวอร์ Ubuntu และใช้อะแดปเตอร์เครือข่ายบริดจ์
10 networking  ip 

3
ใช้ `ln 'เพื่อสร้างไดเรกทอรีที่ขาดหายไป
ดังนั้นฉันจึงเขียนผู้จัดการแพ็คเกจเล็ก ๆ และปัญหาที่ฉันพบก็คือการสร้างลิงก์สัญลักษณ์ไปยังไฟล์ มันติดตั้งแพคเกจ/usr/pkg/name-versionและจากนั้นอ่านไฟล์เพื่อตรวจสอบการเชื่อมโยงสัญลักษณ์ที่จะทำ ฉันใช้lnเพื่อสร้างลิงก์และฉันพบปัญหาเมื่อพยายามติดตั้งส่วนหัว Linux API ฉันจำเป็นต้องเชื่อมโยงไฟล์ส่วนหัวด้วยตัวเองไม่ใช่โฟลเดอร์ที่มีพวกเขา (ดังนั้นหาก 2 แพ็คเกจจำเป็นต้องวางไฟล์ในไดเรกทอรีย่อยเดียวกันของไฟล์รวมพวกเขาสามารถทำได้โดยไม่ต้องขันหนึ่งแพ็คเกจขึ้นไป) ปัญหานั้นฉันแก้ไข แต่lnข้อผิดพลาดเพียงถ้าเส้นทางไม่สมบูรณ์ซึ่งน่ารำคาญเพราะไดเรกทอรีเหล่านั้นไม่ควรอยู่จนกว่าจะมีการติดตั้งแพคเกจ มีการตั้งค่าสถานะสำหรับlnที่จะสร้างไดเรกทอรีใด ๆ ที่ขาดหายไปหรือฉันจะต้องไปกับสคริปต์ทุบตีซับซ้อน

6
ฉันจะใช้ค้นหาเฉพาะสำหรับไดเรกทอรีได้อย่างไร
พบไฟล์จำนวนมากที่อยู่ภายใต้ไดเรกทอรีย่อยต่างๆของ "Dropnot" $ locate Dropnot ฉันสามารถค้นหาเฉพาะตำแหน่งไดเรกทอรีด้วยได้locateหรือไม่ (ซึ่งไดเรกทอรี "Dropnot" อยู่ใน) ดังนั้นหากDropnotอยู่ใน/home/me/นั่นเป็นรายการเดียวที่ได้รับคืน ถ้าเป็นอย่างนั้นวิธีที่ง่ายที่สุด / สั้นที่สุดคืออะไร? โดยเฉพาะอย่างยิ่งผ่านการตั้งค่าสถานะหรือสัญลักษณ์แทนการ piping และ greping สำหรับมัน ฯลฯ แต่ฉันจะใช้ทุกอย่างเป็นตัวเลือก บางที Dropnot $ สำหรับการวางสายบางอย่าง? (แต่ไม่ได้ผล)
10 directory  locate 

5
ฉันจะทำโปรไฟล์เชลล์สคริปต์ได้อย่างไร
ฉันมีหลายโปรแกรมที่ฉันเรียกใช้งานในเชลล์สคริปต์: ./myprogram1 ./myprogram2 ... ฉันรู้ว่าฉันสามารถโปรไฟล์แต่ละโปรแกรมโดยแก้ไขซอร์สโค้ด แต่ฉันต้องการทราบว่ามีวิธีที่ฉันสามารถวัดเวลาทั้งหมดที่ดำเนินการโดยการทำโปรไฟล์สคริปต์เองหรือไม่ มีโปรแกรมจับเวลาที่ฉันสามารถใช้เพื่อวัตถุประสงค์นี้หรือไม่? ถ้าเป็นเช่นนั้นการวัดของมันแม่นยำแค่ไหน?

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