Unix & Linux

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

5
การรวมไฟล์จำนวนมากเข้าด้วยกัน
ฉันมีไฟล์± 10,000 ไฟล์ ( res.1- res.10000) ทั้งหมดประกอบด้วยหนึ่งคอลัมน์และจำนวนแถวเท่ากัน สิ่งที่ฉันต้องการคือโดยพื้นฐานแล้วเรียบง่าย final.resรวมไฟล์ทุกคอลัมน์ที่ชาญฉลาดในไฟล์ใหม่ ฉันได้ลองใช้: paste res.* อย่างไรก็ตาม (ถึงแม้ว่าสิ่งนี้ดูเหมือนว่าจะทำงานกับไฟล์ย่อยเล็ก ๆ ของไฟล์ผลลัพธ์ แต่ก็ให้ข้อผิดพลาดต่อไปนี้เมื่อดำเนินการกับทั้งชุด: Too many open files. จะต้องมีวิธี 'ง่าย' ในการทำสิ่งนี้ แต่น่าเสียดายที่ฉันค่อนข้างใหม่กับยูนิกซ์ ขอบคุณล่วงหน้า! PS: เพื่อให้คุณมีความคิดเกี่ยวกับสิ่งที่ (หนึ่งใน) ของฉัน datafile (s) ดูเหมือนว่า: 0.5 0.5 0.03825 0.5 10211.0457 10227.8469 -5102.5228 0.0742 3.0944 ...

3
“ sudo: source: ไม่พบคำสั่ง”
$ source /etc/environment $ sudo source /etc/environment [sudo] password for t: sudo: source: command not found ดูเหมือนว่าเชลล์ที่แตกต่างจากที่bashใช้ในการดำเนินการsource /etc/environmentและเชลล์นั้นไม่มีsourceในตัว bashแต่ฉันและรากของเปลือกหอยเริ่มต้นมีทั้ง $ echo $SHELL /bin/bash ถ้าsudoindeeds ใช้เชลล์ที่ต่างกันทำไมมันถึงเป็นเช่นนั้น? ฉันเห็นคำตอบของ slmแต่ไม่เข้าใจในกรณีของฉัน
15 shell  sudo 

2
ค้นหาไฟล์ที่สร้างโดยผู้ใช้เฉพาะ
ฉันจะไปเกี่ยวกับการค้นหาไฟล์ทั้งหมดที่สร้างโดยผู้ใช้เฉพาะและแสดงบนหน้าจอได้อย่างไร ฉันได้เริ่มสคริปต์ที่แจ้งให้ผู้ใช้ปัจจุบันป้อนชื่อผู้ใช้ที่พวกเขาต้องการดูไฟล์ทั้งหมดของ ฉันคิดถึงการใช้คำสั่ง if หากพิจารณาว่าฉันต้องการรวมการตรวจสอบข้อผิดพลาด echo -e "Option 11: Display all the Files a Particular User Has Created\n\n" echo -e "Enter Username below\n" read username
15 files  find  users 

4
วิธีแก้จุดบกพร่องกฎ udev (ใน/etc/udev/rules.d/…)
ฉันกำลังสร้างกฎพื้นฐานใหม่ /etc/udev/rules.d/10-myrule.rules ที่มี: KERNEL!="sdb*", GOTO="auto_mount_end" ACTION=="add", RUN+="/usr/bin/mount /dev/sdb1 /media" LABEL="auto_mount_end" ฉันบันทึกรีบูทและใส่การ์ด SD (ยอมรับโดย/dev/sdb1ฉันเห็นด้วยdmesg) แต่ไม่มีอะไรเกิดขึ้น เมื่อฉันทำด้วยตนเองmount /dev/sdb1 /mediaมันทำงานได้ ฉันจะแก้ไขปัญหา / แก้ไขข้อบกพร่องดังกล่าวได้udevอย่างไร หมายเหตุ: ฉันใช้ ArchLinux แต่ควรจะเหมือนกันใน distro ใด ๆ
15 arch-linux  mount  udev 

2
ไฟล์ .serverauth คืออะไร ##### ไฟล์ในโฮมไดเร็กตอรี่ของฉัน?
ไฟล์อยู่.serverauth.#####ที่ไหนโดย#####มีหมายเลข 5 หลัก ฉันมีไฟล์เหล่านี้เพียงไม่กี่ไฟล์ในโฮมไดเร็กตอรี่ของฉันพร้อมวันสร้างที่หลากหลายซึ่งครอบคลุมระยะเวลาสองถึงสามปี ไฟล์เหล่านี้มาจากอะไร? การลบมันปลอดภัยหรือไม่
15 ssh  files  x11  home 

3
จับภาพการรับส่งข้อมูลของโพรโทคอล X11
ฉันจะจับปริมาณการใช้โพรโทคอลX11ได้อย่างไร ฉันต้องการวิธีในการจับภาพการรับส่งข้อมูล X11 ระหว่างเครื่องสองเครื่องและระหว่างเซิร์ฟเวอร์ X11 และไคลเอนต์ X11 บนเครื่องภายใน
15 x11 

3
วิธีอ่านไฟล์ dash
ฉันจะอ่านไฟล์เส้นประจากเทอร์มินัลอื่นนอกเหนือจากการลบด้วย ./ ตัวอย่างเช่นการอ่าน- fileเราสามารถอ่านได้โดย cat ./-file_name ถาม:มีวิธีอื่นในการทำสิ่งเดียวกันหรือไม่?
15 bash  cat 

3
วางไข่ - ไม่พบคำสั่ง!
ฉันใช้ Mac OS X 10.9.4 ต่อไปนี้เป็นสคริปต์ของฉันเพื่อคัดลอกไฟล์จากเครื่องท้องถิ่นไปยังโฮสต์อื่น #!/bin/bash #!/usr/bin/expect echo "I will fail if you give junk values!!" echo " " echo "Enter file name: " read filePath echo " " echo "Where you want to copy?" echo "Enter" echo "1. if Host1" echo "2. if Host2" echo "3. if Host3" …

3
การปฏิบัติที่ดีที่สุดในการแสดงค่าบูลีนในเชลล์สคริปต์คืออะไร
ฉันรู้ว่ามีค่าบูลีนในbashแต่ฉันไม่เคยเห็นพวกเขาใช้ที่ใดก็ได้ ฉันต้องการเขียน wrapper สำหรับข้อมูลบางอย่างที่ค้นหาบนเครื่องของฉันเช่นมีการเสียบ / ติดตั้งไดรฟ์ USB นี้หรือไม่ อะไรคือวิธีปฏิบัติที่ดีที่สุดในการบรรลุเป้าหมาย สตริง? drive_xyz_available=true ตัวเลข (0 สำหรับจริง, ≠ 0 สำหรับเท็จ)? drive_xyz_available=0 # evaluates to true ฟังก์ชั่น? drive_xyz_available() { if available_magic; then return 0 else return 1 fi } ฉันส่วนใหญ่สงสัยเกี่ยวกับสิ่งที่คาดหวังโดยคนอื่นที่ต้องการใช้เสื้อคลุม พวกเขาจะคาดหวังว่าค่าบูลีนคำสั่งเช่นตัวแปรหรือฟังก์ชั่นที่จะเรียก? จากมุมมองด้านความปลอดภัยฉันคิดว่าตัวเลือกที่สองนั้นปลอดภัยที่สุด แต่ฉันชอบที่จะได้ยินประสบการณ์ของคุณ

3
`1 >> 'และ' 2 >> 'หมายถึงอะไรในสคริปต์ทุบตี?
ฉันมีสคริปต์ทุบตีต่อไปนี้จากสิ่งที่ฉันเข้าใจ >> ใช้เพื่อผนวกเอาท์พุทของคำสั่งไปยังไฟล์ที่มีอยู่แทนที่จะเขียนทับ แต่สิ่งที่ทำในกรณีนี้คืออะไร สคริปต์นี้กำลังเรียกไฟล์ exe บางไฟล์ให้แปลงจากรูปแบบหนึ่งไปยังอีกรูปแบบหนึ่ง แต่ละไฟล์มีหลายปีดังนั้นมันจึงวนซ้ำแต่ละไฟล์โดยดูที่ชื่อไฟล์ นอกจากนี้เมื่อฉันเรียกใช้สคริปต์นี้ฉันได้รับ "การเปลี่ยนเส้นทางคลุมเครือ" #!/bin/bash source $HOME/.bashrc jobout=${1} joberr=${2} # Set some paths and prefixes yr_bgn=2000 yr_end=2000 yr=${yr_bgn} pth_data='/mnt/' pth_rst='/mnt/' while [ ${yr} -le ${yr_end} ] do ./executable1 ${pth_data}file${yr}-${yr}.nc ${yr} ${pth_rst} 1>> ${jobout} 2>> ${joberr} ./executable2 ${pth_data}file${yr}-${yr}.nc ${yr} ${pth_rst} 1>> ${jobout} 2>> ${joberr} ./executable3 …

3
วิธีการขอรหัสผ่านกุญแจ SSH ครั้งเดียวและเมื่อจำเป็นเท่านั้น?
(ฉันได้อ่านคำถามมากมายในเว็บไซต์นี้ที่มีลักษณะเกี่ยวข้องและฉันเชื่อว่านี่เป็นคำถามใหม่อย่างแท้จริง) ฉันมีกุญแจจำนวนมากในเซิร์ฟเวอร์จำนวนมากและพวกเขาทั้งหมดได้รับการป้องกันด้วยวลีรหัสผ่าน ฉันชอบป้อนวลีรหัสผ่านประมาณเท่าที่ฉันต้องการป้อนรหัสผ่านซึ่งเป็นประสิทธิภาพการทำงานที่แท้จริง คำสั่งssh-agent + ssh-addสามารถใช้บนเชลล์ล็อกอินเพื่อหมายความว่าคุณจะต้องป้อนข้อความรหัสผ่านของคุณเพียงครั้งเดียวเมื่อเข้าสู่ระบบ พวงกุญแจสามารถใช้เพื่อเก็บเอเจนต์ ssh- ยังมีชีวิตอยู่นอกเหนือจากการออกจากระบบดังนั้นตัวอย่างเช่นคุณสามารถมีมันดังนั้นคุณจะต้องป้อนข้อความรหัสผ่านเพียงครั้งเดียวเมื่อบูตหรือคุณสามารถทำให้มันมีชีวิตอยู่เป็นเวลาหนึ่งชั่วโมง ปัญหาที่ฉันมีคือทั้งสองโซลูชั่นเหล่านี้มักจะเริ่มต้นในการเข้าสู่ระบบเชลล์ (เช่น.zshrc) พึ่งพาฉันป้อนข้อความรหัสผ่านของฉันเมื่อฉันเข้าสู่ระบบแม้ว่าฉันจะไม่ต้องการปลดล็อค (ฉันไม่มีความสุขกับพวงกุญแจที่ทำให้ตัวแทนมีชีวิตอยู่อย่างไม่มีกำหนด) สิ่งที่ฉันต้องการคือการถามรหัสผ่าน (สำหรับตัวแทน) เมื่อจำเป็นเท่านั้น ดังนั้นฉันสามารถเข้าสู่เซิร์ฟเวอร์ A ทำบางสิ่งจากนั้น ssh ไปยังเซิร์ฟเวอร์ B และณ จุดนั้นขอรหัสผ่าน ทำสิ่งต่าง ๆ บนเซิร์ฟเวอร์ B ออกจากระบบ กลับไปที่ A ทำอะไรเพิ่มอีก ssh ไปที่ B อีกครั้งและไม่ต้องการข้อความรหัสผ่านของฉัน (มันเป็นตัวแทนโดย) ฉันทราบว่าสิ่งนี้เป็นไปได้บนเดสก์ท็อปแบบกราฟิกเช่น Gnome คุณจะได้รับป๊อปอัพเพื่อขอข้อความรหัสผ่านเพื่อปลดล็อคกุญแจส่วนตัวของคุณทันทีที่คุณลองใช้ ssh ดังนั้นนี่คือสิ่งที่ฉันเป็น แต่มาจากคอนโซล
15 ssh  ssh-agent 

6
วิธีรับไฟล์ N ล่าสุดในไดเรกทอรี?
ฉันมีไฟล์หลายไฟล์ที่เรียงลำดับโดยชื่อไฟล์ในไดเรกทอรี ฉันต้องการคัดลอกไฟล์ N สุดท้าย (พูด, N = 4) ไปยังโฮมไดเร็กตอรี่ของฉัน ฉันควรทำอย่างไร cp ./<the final 4 files> ~/

2
เหตุใด USB ที่เตรียมมาเหมือนกันของฉันจึงแตกต่างกันในหนึ่งไบต์
ฉันมีสอง USB sticks ได้เหมือนกัน ( TREKSTOR 16GB ) เตรียมเป็นต่อไปนี้ด้วยc't ภาพ bankix การเตรียมการโดยใช้GParted : ลบพาร์ติชันที่มีอยู่ สร้างตารางพาร์ติชัน DOS ใหม่ ฟอร์แมทไม้ด้วย FAT32 ซึ่งเป็นพาร์ติชันหลัก usb-creator-kdeโหลดภาพไปติดผ่านทาง ดังนั้นฉันจึงทำตามขั้นตอนที่เหมือนกันสำหรับไม้ทั้งสอง แต่มีบูทหนึ่งอันและอีกอันขัดข้องด้วยข้อผิดพลาด: (initramfs) mount: mounting /dev/loop0 on //filesystem.squashfs failed: No such device Can not mount /dev/loop0 (/cdrom/casper/filesystem.squashfs) on //filesystem.squashfs sudo cmp /dev/sdb /dev/sdcแล้วฉันพยายามที่จะเปรียบเทียบพวกเขาผ่านทาง สิ่งนี้ส่งผลให้: /dev/sdb /dev/sdc differ: byte 441, …

5
ฉันจะทดสอบว่ารายการอยู่ในอาร์เรย์ทุบตีได้อย่างไร
ช่วยสคริปต์ง่าย ๆ #!/bin/bash array1=( prova1 prova2 slack64 ) a="slack64" b="ab" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" fi สคริปต์นี้ใช้งานไม่ได้ฉันต้องการสคริปต์ที่ตรวจสอบว่า slack64 มีอยู่ในรายการ (ฉันใช้อาร์เรย์) และให้ฉันใช่มีอยู่หรือไม่ ฉันไม่รู้วิธีเปรียบเทียบอาเรย์กับตัวแปรตัวเดียว
15 bash  array 

2
เอาต์พุตของ stat บน OSX
ฉันต้องการใช้statคำสั่งเพื่อรับข้อมูลเกี่ยวกับไฟล์ ฉันทำอย่างนี้: Josephs-MacBook-Pro:Desktop Joseph$ echo 'hello' > info.txt Josephs-MacBook-Pro:Desktop Joseph$ stat info.txt 16777220 21195549 -rw-r--r-- 1 Joseph staff 0 6 "Dec 21 20:45:31 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" "Dec 21 20:45:30 2014" 4096 8 0 info.txt บรรทัดที่ 3 และ 4 เป็นผลลัพธ์ที่ฉันได้รับ สิ่งนี้จะเกิดขึ้นทุกครั้งที่ฉันใช้statคำสั่ง ในขณะที่ทุกคนบนอินเทอร์เน็ตได้รับสิ่งที่ชอบ: File: `index.htm' Size: …
15 osx  stat  portability 

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