Unix & Linux

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

5
การใช้อิมเมจไดรฟ์ของไดรฟ์ทำงานปัจจุบันปลอดภัยหรือไม่
ฉันต้องสำรองข้อมูลฮาร์ดดิสก์ของฉัน ฉันต้องการที่จะใช้ddและวางภาพบน HDD ภายนอก ฉันสามารถใช้สิ่งนี้ddจากระบบปฏิบัติการที่อยู่ใน hdd เองหรือฉันต้องบูตจากอุปกรณ์อื่นเช่น LiveCD หรือไม่? โดยทั่วไปแล้วการถ่ายภาพของอุปกรณ์จะปลอดภัยหรือไม่หากติดตั้งอุปกรณ์และใช้งานได้ จะทำอย่างไรถ้าอุปกรณ์ถูกเมานต์ แต่ฉันแน่ใจว่าไม่มีการดำเนินการ I / O อื่นขณะที่ddกำลังทำงานอยู่ ฉันแน่ใจว่าrsyncเป็นเครื่องมือที่ดีที่สุดที่จะใช้สำหรับการสำรองข้อมูลโดยเฉพาะอย่างยิ่งที่เพิ่มขึ้น แต่ฉันสนใจddเพราะฉันต้องการสำรองข้อมูลด้วยอุปกรณ์เก็บข้อมูลอื่นและคัดลอกข้อมูลที่เก็บไว้ในพื้นที่ว่าง ตัวอย่างเช่นเครื่องอ่าน e-book ของฉันใช้พื้นที่ที่ไม่แบ่งพาร์ติชันเพื่อเก็บ uboot เคอร์เนลและข้อมูลอื่น ๆ
12 backup  dd  disk-image 

2
autoreconf ล้มเหลวด้วย 'ไม่สามารถ exec“ libtoolize”'
ฉันต้องการเรียนรู้เกี่ยวกับเครื่องมืออัตโนมัติฉันจึงเริ่มดูบทช่วยสอนบน YouTube ฉันสร้างโฟลเดอร์ชื่อhelloแล้วสร้างconfigure.acไฟล์: AC_INIT([hello],[.01]) AC_OUTPUT autoreconf -iผมบันทึกไว้แล้ววิ่ง เห็นได้ชัดว่านี่ไม่ได้ผลในครั้งแรกเพราะไม่ได้ติดตั้ง แล้วฉันจะติดตั้งโดยคำสั่งautoconfsudo apt-get install autoconf2.13 หลังจากนี้ฉันวิ่งอีกครั้งautoreconf -iแต่ตอนนี้ฉันได้รับข้อผิดพลาดตามที่แสดงด้านล่าง: Can't exec "libtoolize": No such file or directory at /usr/bin/autoreconf2.50 line 196. Use of uninitialized value in pattern match (m//) at /usr/bin/autoreconf2.50 line 196.
12 debian  autoconf 

2
การแสดงออกปกติในสคริปต์ทุบตี
นี่เป็นครั้งแรกของฉันที่สคริปต์ทุบตีดังนั้นฉันอาจทำผิดพลาดง่าย โดยทั่วไปฉันพยายามเขียนสคริปต์ที่ได้รับกลุ่มของผู้ใช้และหากพวกเขาอยู่ในกลุ่มที่แน่นอนก็จะเข้าสู่ระบบตามนั้น เห็นได้ชัดว่ามีฟังก์ชั่นเพิ่มเติม แต่ไม่มีจุดที่สร้างเมื่อฉันไม่สามารถใช้ regex ได้! จนถึงตอนนี้ฉันมีสิ่งนี้: #!/bin/bash regex="^([a-zA-Z0-9\-_]+ : [a-zA-Z0-9\-_]+) (usergroup)$" # example output groups="username : username usergroup" echo "$groups" >> /home/jrdn/log if [[ "$groups" =~ $regex ]]; then echo "Match!" >> /home/jrdn/log else echo "No match" >> /home/jrdn/log fi ทุกที่ที่ฉันลอง regex มันใช้งานได้ แต่ในสคริปต์ทุบตีมันเท่านั้นที่เคยออกผลลัพธ์เป็นตามด้วย$groups No matchดังนั้นใครบางคนสามารถบอกฉันว่ามีอะไรผิดปกติกับมัน?

2
Bash Script เมื่อเริ่มต้น? (Linux)
มีวิธีใดบ้างในการสร้าง / เรียกใช้สคริปต์ทุบตีในการรีบูต (เช่นใน Debian / Ubuntu เป็นต้นเนื่องจากเป็นกล่อง 2 กล่องที่บ้านของฉัน) นอกจากนี้มีคำแนะนำที่แนะนำสำหรับการทำงาน cron หรือไม่ ฉันใหม่สมบูรณ์สำหรับพวกเขา (แต่พวกเขาจะใช้ประโยชน์ได้ดี)
12 linux  boot  cron  scheduling 

3
ความหมายของ“ rc5” ใน“ linux kernel 2.6.37-rc5”
เมื่อฉันเยี่ยมชมเว็บไซต์ kernel.org เพื่อดาวน์โหลดเคอร์เนล Linux ล่าสุดฉันสังเกตเห็นแพ็คเกจที่มีชื่อ2.6.37-rc5ในที่เก็บ อะไรคือความหมายของ "rc5" ในตอนท้าย?
12 linux  kernel  version 

2
ตัวเชื่อมโยง / ตัวโหลดเดอร์แบบไดนามิกสามารถลิงก์แบบไดนามิกตามที่รายงานโดย `ไฟล์ 'ได้อย่างไร
พิจารณาการพึ่งพาวัตถุที่ใช้ร่วมกัน/bin/bashซึ่งรวมถึง/lib64/ld-linux-x86-64.so.2(dynamic linker / loader): ldd /bin/bash linux-vdso.so.1 (0x00007fffd0887000) libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000) libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000) /lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000) การตรวจสอบ/lib64/ld-linux-x86-64.so.2แสดงให้เห็นว่ามันเป็น symlink ไปที่/lib/x86_64-linux-gnu/ld-2.28.so: ls -la /lib64/ld-linux-x86-64.so.2 lrwxrwxrwx 1 root root 32 May 1 19:24 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.28.so นอกจากนี้fileรายงานของ/lib/x86_64-linux-gnu/ld-2.28.soตัวเองยังเชื่อมโยงแบบไดนามิก: file -L /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2: ELF 64-bit LSB pie executable, x86-64, …

2
ฉันจะใช้คำสั่งกับ sudo โดยไม่เปลี่ยนเจ้าของไฟล์ได้อย่างไร
เมื่อฉันใช้ sudo เพื่อทำกิจกรรมกับไฟล์ไฟล์เหล่านี้เปลี่ยนความเป็นเจ้าของ ฉันจะใช้คำสั่งกับ sudo โดยไม่เปลี่ยนเจ้าของไฟล์ได้อย่างไร ตัวอย่างไฟล์ archivos35.sh มาจาก Apache แต่ฉันใช้ sed (กับ usr admin sudo) $ ls -l -rwxr-xrw-. 1 apache apache 181 Aug 5 11:56 archivos35.sh ผู้ใช้adminกับ sudo --- sudo sed -i s/old/new/g archivos35.sh แต่การทำคำสั่งนั้นด้วย sudo จะเปลี่ยนเจ้าของไฟล์ $ ls -l -rwxr-xrw-. 1 admin apache 181 Aug 5 11:56 …
12 sed  sudo  ownership 

3
ฉันสามารถย่อตัวกรองนี้ให้สั้นลงซึ่งพบว่าขนาดของดิสก์เกิน 100G หรือไม่
เป้าหมายของฉันคือการได้รับแผ่นดิสก์มากกว่า 100G จาก lsblk ฉันใช้งานได้ แต่มันอึดอัดใจ ฉันค่อนข้างมั่นใจว่ามันสั้นลงได้ ไม่ว่าจะโดยการใช้บางอย่างที่แตกต่างจาก lsblk หรือฉันอาจกรองตัวเลขที่มนุษย์อ่านได้โดยตรงด้วย awk นี่คือสิ่งที่ฉันรวบรวม: lsblk | grep disk | awk '{print$1,$4}' | grep G | sed 's/.$//' | awk '{if($2>100)print$1}' ส่งเอาต์พุตเฉพาะส่วน sdx และ nvmexxx ของดิสก์ที่มีขนาดใหญ่กว่า 100G สิ่งที่ฉันต้องการ ฉันมีความสุขกับมัน แต่ฉันกระตือรือร้นที่จะเรียนรู้เพิ่มเติมจากคุณกูรู😉
12 awk  grep  disk  lsblk 

2
พารามิเตอร์การโทรที่ถูกผูกมัดกับโปรแกรมอรรถประโยชน์ใน Bash
ฉันมีโปรแกรมยูนิกซ์กล่องดำที่ใช้ใน Bash shell ที่อ่านคอลัมน์ข้อมูลจาก stdin ประมวลผลพวกมัน (ใช้เอฟเฟกต์การปรับให้เรียบ) จากนั้นก็ส่งออกไปยัง stdout ฉันใช้มันโดย UNIX ไพพ์เช่น generate | smooth | plot สำหรับการปรับให้เรียบมากขึ้นฉันสามารถทำซ้ำแบบราบรื่นได้ดังนั้นจึงสามารถเรียกใช้จากบรรทัดคำสั่ง Bash เป็น generate | smooth | smooth | plot หรือแม้กระทั่ง generate | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | smooth | …

1
เปลี่ยนชื่อไฟล์ tar.gz โดยบังเอิญเป็นไฟล์ที่ไม่ใช่ tar.gz ไฟล์ของฉันจะถูกทำให้ยุ่งเหยิงหรือไม่
ฉันพยายามย้ายtar.gzไฟล์ไปยัง/optไดเรกทอรีและย้ายไฟล์ไปโดยไม่ตั้งใจเพราะ/root/optคิดว่ามันถูกที่แล้ว แต่ไม่มี/root/optเลยtar.gzไฟล์จึงถูกเปลี่ยนชื่อเป็นoptภายใน/rootโฟลเดอร์ ฉันเปลี่ยนชื่อมันกลับเป็นtar.gzไฟล์ ไฟล์ของฉันจะถูกทำให้ยุ่งเหยิงหรือไม่ ฉันกังวลว่าจะยังดีอยู่ไหม
12 linux  root  mv 

4
วิธีการแยกสตริงในสองสตริงย่อยที่มีความยาวเท่ากันโดยใช้ bash
ฉันต้องการแยกสตริงออกเป็นสองส่วนและพิมพ์ตามลำดับ ตัวอย่างเช่น: abcdef เข้าไป abc def มีวิธีง่าย ๆ ที่จะทำหรือต้องการการประมวลผลสตริง?
12 bash  string 

4
วิธีการเปลี่ยนชื่อหลายไฟล์ในไดเรกทอรีในเวลาเดียวกัน
ฉันมีไดเรกทอรีบอกว่า/var/tmp/abcมี 4 ไฟล์: 12345-ram-3e3r5-io9490-89adu9.csv 45434-dam-qwe35-to9490-43adu9.csv 11234-cam-yy3r5-ro9490-85adu9.csv 14423-sam-hh3r5-uo9490-869du9.csv ฉันต้องการเปลี่ยนชื่อไฟล์ CSV ทั้งหมด (ค้นหาไฟล์ทั้งหมด & เปลี่ยนชื่อไฟล์) ในวิธีที่สั้นที่สุด (อาจเป็นหนึ่งซับ) วิธีนี้: XXXXX-ram-3e3r5-io9490-89adu9.csv XXXXX-dam-qwe35-to9490-43adu9.csv XXXXX-cam-yy3r5-ro9490-85adu9.csv XXXXX-sam-hh3r5-uo9490-869du9.csv
12 shell  files  rename 

1
โปรแกรมรู้ได้อย่างไรว่า stdout เชื่อมต่อกับเทอร์มินัลหรือไปป์?
ฉันมีปัญหาในการดีบั๊กโปรแกรม segfaulting เพราะ ouput ที่ถูกต้องก่อน segfault คือสิ่งที่ฉันต้องการ แต่สิ่งนี้จะหายไปหากฉันกำลังไพพ์เอาต์พุตไปยังไฟล์ ตามคำตอบนี้: /unix//a/17339/22615นี่เป็นเพราะบัฟเฟอร์เอาต์พุตของโปรแกรมจะล้างออกทันทีเมื่อเชื่อมต่อกับเทอร์มินัล แต่จะอยู่ที่จุดเฉพาะเมื่อเชื่อมต่อกับไพพ์ คำถามสองสามข้อที่นี่: โปรแกรมกำหนดว่า stdout เชื่อมต่อกับอะไรได้อย่างไร คำสั่ง "สคริปต์" สร้างพฤติกรรมเช่นเดียวกับเมื่อโปรแกรมเขียนไปยังเทอร์มินัลอย่างไร สามารถทำได้โดยไม่ใช้คำสั่งสคริปต์หรือไม่
12 terminal  pipe 

2
เป็นไปได้ไหมที่จะค้นหาไดเรกทอรี / ไฟล์รวมกัน?
ฉันต้องการค้นหารูปภาพพูด ABC.jpg ซึ่งฉันรู้ว่าจะถูกวางทางโปรแกรมลงในไดเรกทอรีชื่อ ABC_MPSC ฉันพยายามแล้ว: cd / find . -name "ABC_MPSC/ABC.jpg" แต่นั่นไม่ได้คืนสิ่งใด (ฉันรู้จริง ๆ ว่าคนที่ฉันค้นหาคือที่ไหนฉันจึงรู้ว่ามันมีอยู่) มีคำสั่ง find ที่ทำให้ฉันไม่ต้องค้นหาด้วยตนเองหรือไม่?
12 find 

4
ทำไมไม่ใช้หลายคำสั่งด้วย || หรือ && ทำงานตามเงื่อนไขหรือไม่
ใช้งานได้ในเชลล์ (ทุบตี, เส้นประ) [ -z "" ] && echo A || echo B A อย่างไรก็ตามฉันพยายามเขียนเชลล์สคริปต์POSIXมันเริ่มต้นดังนี้: #!/bin/sh [ "${#}" -eq 1 ] || echo "Invalid number of arguments, expected one."; exit 1 readonly raw_input_string=${1} [ -z "${raw_input_string}" ] && echo "The given argument is empty."; exit 1 และฉันไม่รู้ว่าทำไม แต่ฉันไม่ได้รับข้อความ : อาร์กิวเมนต์ที่ให้นั้นว่างเปล่า …

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