Unix & Linux

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

3
จะทำการแทนที่ข้อความในลำดับชั้นของโฟลเดอร์ขนาดใหญ่ได้อย่างไร
ฉันต้องการค้นหาและแทนที่ข้อความในไฟล์จำนวนมากยกเว้นบางกรณี สำหรับแต่ละบรรทัดฉันต้องการให้ฉันถามว่าฉันต้องการแทนที่บรรทัดนั้นหรือไม่ บางสิ่งที่คล้ายกับเสียงเรียกเข้า:%s/from/to/gc(พร้อมกับcเพื่อให้พร้อมรับคำยืนยัน) แต่ข้ามชุดโฟลเดอร์ มีเครื่องมือบรรทัดคำสั่งหรือสคริปต์ที่ดีที่สามารถใช้ได้หรือไม่?

2
ความแตกต่างระหว่างการโทรที่เป็นไปได้และไม่น่าเป็นไปได้ในเคอร์เนลคืออะไร?
การโทรที่เป็นไปได้และไม่น่าเป็นไปได้ใน Kernel คืออะไร ในขณะที่ค้นหาผ่านแหล่งเคอร์เนลฉันพบคำสั่งเหล่านี้ # define likely(x) __builtin_expect(!!(x), 1) # define unlikely(x) __builtin_expect(!!(x), 0) มีใครบางคนส่องแสงเข้าไปบ้างไหม?
11 linux  kernel 

5
การทำดัชนีและการปรับเปลี่ยนอาร์เรย์พารามิเตอร์ Bash $ @
เป็นไปได้$@หรือไม่ที่จะอ้างถึงดัชนีใน ฉันไม่พบการอ้างอิงใด ๆ ที่จะใช้สิ่งต่อไปนี้ในวิกิของ GrayCatและคู่มือการใช้สคริปต์ขั้นสูงและอื่น ๆกำหนดค่านี้ให้กับตัวแปรที่แตกต่างกันก่อนที่จะทำการแก้ไขแทน $ echo ${@[0]} -bash: ${@[0]}: bad substitution เป้าหมายคือDRY : อาร์กิวเมนต์แรกใช้สำหรับสิ่งหนึ่งและส่วนที่เหลือเป็นอย่างอื่นและฉันต้องการหลีกเลี่ยงการทำซ้ำรหัสเพื่อทำให้เป็นมาตรฐาน$@อาร์เรย์หรือเพื่อสร้างฟังก์ชันแยกต่างหากสำหรับสิ่งนี้ ชี้ว่ามันอาจเป็นวิธีที่ง่ายที่สุด) ชี้แจง: วัตถุคือการปรับเปลี่ยนค่าของความยาวตัวแปร $@เพื่อให้รหัสง่ายต่อการตรวจแก้จุดบกพร่อง เวอร์ชันปัจจุบันค่อนข้างแฮ็คเกินไปสำหรับความชอบของฉันแม้ว่ามันจะทำงานได้แม้ในเส้นทางที่แปลกประหลาดเช่น $'--$`\! *@ \a\b\e\E\f\r\t\v\\\"\' \n' อัปเดต : ดูเหมือนว่าจะเป็นไปไม่ได้ รหัสนี้ใช้ทั้งรหัสและการทำสำเนาข้อมูล แต่อย่างน้อยก็ใช้งานได้: path_common() { # Get the deepest common path. local common_path="$(echo -n "${1:-}x" | tr -s '/')" common_path="${common_path%x}" shift # $1 …
11 bash  parameter 

4
โปรแกรมสร้างไดเรกทอรีระยะไกลโดยใช้ ssh
ใช้เชลล์สคริปต์ฉันจะสร้างไดเรกทอรีระยะไกลจาก serverA -> serverB ด้วย ssh ได้อย่างไร ฉันสามารถส่งคำสั่งสร้างไดเรกทอรีด้วยคำสั่ง ssh ได้หรือไม่ อย่างไร? โดยทั่วไปฉันต้องการสร้างไดเรกทอรีจากระยะไกลตามวันที่ (เช่น 20110304) หากยังไม่มีอยู่
11 shell  ssh  directory 

2
คุณจะสร้าง RPROMPT ใน zsh ได้อย่างไรเมื่ออัพเดททุกครั้ง
ฉันRPROMPTถูกตั้งค่าให้แสดงข้อมูล SVN vcs_infoใช้ RPROMPT=${vcs_info_msg_0_}มันอ่าน เรียกว่าใช้vcs_info precmd()อย่างไรก็ตาม RPROMPT จะไม่อัปเดตเมื่อฉันเปลี่ยนไดเรกทอรี มันทำงานได้ก็ต่อเมื่อฉันเรียกใช้พรอมต์อีกครั้ง (โดยแหล่งที่มา ~ / .zshrc หรือพรอมต์) และจะไม่เปลี่ยนแปลงตาม chdir เว้นแต่ว่าฉันจะเรียกใช้พรอมต์อีกครั้ง มีวิธีใดบ้างที่จะเปลี่ยนพฤติกรรมนี้

2
จะลบหลายบรรทัดต่อการเกิดขึ้นในไฟล์ได้อย่างไร?
สมมติว่าฉันมีไฟล์บรรทัดนี้ 857835 มีเนื้อหาดังนี้: a1 rubbish1 rubbish2 rubbish3 rubbish4 a1 rubbish5 rubbish6 rubbish7 rubbish8 และฉันต้องการที่จะลบสิ่งที่เกิดขึ้นทั้งหมดa1และบรรทัดถัดไป ( rubbish1และrubbish5ในตัวอย่างนี้) ฉันต้องทำอย่างไร? ฉันพยายามที่grep 'a1' -v -A1จะไม่เกิดประโยชน์และความสามารถของฉันไม่ดีนัก:} Google-fu ของฉันไม่สามารถช่วยฉันได้ในครั้งนี้มีคนช่วยด้วย!

3
ฉันจะเปลี่ยนภาษาเป็นโครเมียมได้อย่างไร
ฉันติดตั้งโครเมียม แต่มันแย่มากที่ใช้ภาษาแม่ของฉัน (เยอรมัน) ใน UI และเว็บไซต์เป็นค่าเริ่มต้น ฉันต้องการภาษาอังกฤษกลับเหมือนที่ firefox ทำ ฉันใช้แพ็คเกจเริ่มต้นของ archlinux ฉันดูในกล่องโต้ตอบการตั้งค่า แต่ฉันไม่พบสิ่งใดมีประโยชน์
11 chrome  i18n 

1
จะเกิดอะไรขึ้นเมื่อรหัสผ่านของคุณหมดอายุและคุณใช้การตรวจสอบสิทธิ์ที่สำคัญ
ในหนึ่งในกล่องที่ฉันไม่สามารถควบคุมได้ในที่ทำงานฉันใช้sshปุ่มเพื่อเข้าสู่ระบบรหัสผ่านของเราถูกตั้งค่าให้หมดอายุหลังจากไม่กี่เดือน จะเกิดอะไรขึ้นหากฉันไม่รีเซ็ตรหัสผ่านและรหัสผ่านหมดอายุ ฉันจะยังสามารถเข้าสู่ระบบได้หรือไม่ เกิดอะไรขึ้นกับsshdการตั้งค่าบางอย่าง? หรือการตั้งค่าแพมบางอย่าง?
11 linux  ssh  security  pam 

3
การให้ / bin และ / lib ภายในคุก chroot
ฉันต้องสามารถให้ไดเรกทอรี / bin และ / lib ภายในคุก chroot เพื่อให้โปรแกรมสามารถเชื่อมโยงอย่างถูกต้องแบบไดนามิก มีวิธีการที่จะทำสิ่งนี้ให้สำเร็จโดยไม่ทำการคัดลอก / bin และ / lib dirs ไปยังคุก chroot หรือไม่? ฉันได้ลองใช้ symlink แล้วและมันไม่ทำงานจากภายในคุก chroot และไดเรกทอรีไม่สามารถเชื่อมโยงได้
11 symlink  chroot 

4
Bash script เพื่อตรวจหาระบบควบคุมเวอร์ชันโดยการทดสอบสถานะการส่งคืนคำสั่ง
ฉันกำลังทำงานกับสคริปต์ทุบตีที่ฉันต้องการทำงานกับ VCS หลายประเภท ฉันคิดว่าการทดสอบว่าไดเรกทอรีเป็น repo สำหรับระบบโดยใช้คำสั่งข้อมูลทั่วไปและตรวจสอบรหัสส่งคืนสำเร็จหรือข้อผิดพลาด ในรหัสหลอก: if a svn command succeded; Then run svn commands elif a darcs command succeded; Then run darcs commands elif a mercurial command succeded; then run hg commands else something else fi ฉันสามารถเรียกใช้คำสั่งเช่น darcs show repoและใช้$?เพื่อรับรหัสส่งคืน คำถามของฉันคือมีวิธีเรียกใช้และส่งคืนหมายเลขรหัสส่งคืนในบรรทัดเดียวหรือไม่ ตัวอย่างเช่น if [ 0 -eq `darcs show …

1
มาโครคีย์บอร์ดสำหรับ X และ / หรือ KDE
ฉันกำลังมองหายูทิลิตี้ในการบันทึกและเล่นคีย์บอร์ดมาโครในแอปพลิเคชั่น X (โดยเฉพาะ KDE) ฉันได้พยายามxmacrorecและxmacroplayแต่หลังจากการทำงานพวกเขาเมาส์และแป้นพิมพ์ของฉันไม่ตอบสนองอย่างถูกต้อง(เช่นปุ่มซ้ายของเมาส์ได้รับการติดอยู่ใน "คลิก" รัฐ)และฉันต้องรีสตาร์ทเอ็กซ์ ทางเลือกสมัยใหม่ใด ๆ ที่ทำงานภายใต้KDE 4.5และopenSUSE 11.3หรือไม่
11 xorg  kde  keyboard 


1
ฉันจะรู้ได้อย่างไรว่าไฟล์ unistd.h ใดที่ถูกโหลด?
ฉันมีหลายunistd.hไฟล์ใน Ubuntu Linux /usr/include/asm/unistd.hฉันหนึ่ง ไฟล์นี้มีคำสั่งนี้: # ifdef __i386__ # include "unistd_32.h" # else # include "unistd_64.h" # endif ในโฟลเดอร์นั้นฉันสามารถค้นหาไฟล์เหล่านั้น ( unistd_32.hและunistd_64.h) แต่/usr/src/linux-headers-2.6.31-22/include/asm-generic/มีอีกสิ่งหนึ่งunistd.hที่เริ่มต้นด้วยคำสั่งนี้: #if !defined(_ASM_GENERIC_UNISTD_H) || defined(__SYSCALL) #define _ASM_GENERIC_UNISTD_H ดังนั้นคำถามคือฉันจะรู้ได้อย่างไรว่าอันไหนที่โหลด? มีวิธีการตรวจสอบใด ๆ ในรันไทม์กับ Java?
11 linux  c  java 

2
วิธีการเปลี่ยนไฟล์ในสถานที่โดยใช้ awk? (เช่นเดียวกับ“ sed -i”)
ฉันมีawkสคริปต์new.awk: BEGIN { FS=OFS="," } NR==1 { for (i=1; i<=NF; i++) { f[$i] = i } } NR > 1 { begSecs= mktime(gensub(/[":-]/," ","g",$(f["DateTime"]))) endSecs = begSecs + $(f["TotalDuration"]) $(f["CallEndTime"]) = strftime("%Y-%m-%d %H:%M:%S", endSecs) } { print } ฉันกำลังเรียกสิ่งนี้ในเปลือก awk new.awk sample.csv ... แต่ฉันเห็นการเปลี่ยนแปลงในเครื่อง วิธีการเปลี่ยนแปลงแบบแทนที่ไฟล์เช่นเมื่อใช้sed -i?
11 linux  shell  awk 

2
มีปัญหากับ appstreamcli เมื่อเรียกใช้การปรับปรุง apt
ฉันมีปัญหากับการทดสอบ debian วันนี้เมื่อฉันเรียกใช้การปรับปรุง apt โดยให้ผลตอบแทนดังนี้ E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi' E: Sub-process returned an error code
11 debian  apt  upgrade 

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