Unix & Linux

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

1
ฉันจะย่อขนาดหน้าต่าง GNOME / Wayland ทั้งหมดจากบรรทัดคำสั่งได้อย่างไร
ก่อนที่จะเปลี่ยนมาใช้ Wayland ฉันจะย่อขนาดหน้าต่าง GNOME Shell ทั้งหมดด้วยคำสั่งต่อไปนี้: wmctrl -k on ... แต่ทั้งคู่wmctrlและxdotoolเป็นแอปพลิเคชัน X11 เท่านั้น คำสั่ง CLI ใดที่ฉันสามารถใช้เพื่อลดหน้าต่างทั้งหมดในเซสชั่นเชลล์ / Wayland ของ GNOME อ้างอิง: ฉันสามารถย่อขนาดหน้าต่างจากบรรทัดคำสั่งได้หรือไม่ (ถาม Ubuntu)

3
เชลล์: ขึ้นบรรทัดใหม่ต่อท้าย ('\ n') ในการทดแทนคำสั่ง
ฉันต้องการที่จะสามารถที่จะจับเอาท์พุทแน่นอนของแทนคำสั่งรวมทั้งตัวอักษรต่อท้ายบรรทัดใหม่ ฉันรู้ว่าพวกเขาถูกปล้นโดยค่าเริ่มต้นดังนั้นการจัดการบางอย่างอาจจำเป็นต้องเก็บไว้และฉันต้องการเก็บรหัสทางออกดั้งเดิมไว้ ตัวอย่างเช่นกำหนดคำสั่งด้วยจำนวนตัวแปรของการขึ้นบรรทัดใหม่และรหัสออก: f(){ for i in $(seq "$((RANDOM % 3))"); do echo; done; return $((RANDOM % 256));} export -f f ฉันต้องการเรียกใช้บางสิ่งเช่น: exact_output f และมีผลลัพธ์เป็น: Output: $'\n\n' Exit: 5 ฉันสนใจทั้งในbashและ shPOSIX
14 bash  shell 

1
bash: คำเตือน: ระดับเชลล์ (1,000) สูงเกินไปตั้งค่าเป็น 1
ฉันพยายามเรียกใช้คำสั่งนี้: /etc/ssl/acme/acme.sh --log /var/log/p3x/acme/acme.sh.log --home /etc/ssl/acme --force --issue -d patrikx3.tk -w /var/www/acme-challenge ฉันได้รับข้อผิดพลาดนี้: bash: คำเตือน: ระดับเชลล์ (1,000) สูงเกินไปตั้งค่าเป็น 1 ข้อผิดพลาดนี้คืออะไร?
14 bash 

1
สิ่งใดที่สามารถอธิบายการจัดการไฟล์ที่กระจัดกระจายของ / in tmpfs นี้ได้
ในext4พาร์ติชันระบบแฟ้มของฉันฉันสามารถเรียกใช้รหัสต่อไปนี้: fs="/mnt/ext4" #create sparse 100M file on ${fs} dd if=/dev/zero \ of=${fs}/sparse100M conv=sparse seek=$((100*2*1024-1)) count=1 2> /dev/null #show its actual used size before echo "Before:" ls ${fs}/sparse100M -s #setting the sparse file up as loopback and run md5sum on loopback losetup /dev/loop0 ${fs}/sparse100M md5sum /dev/loop0 #show its actual used size …

1
ทำไม Debian ถึงตั้งค่าล็อกอินเชลล์ของการซิงค์ผู้ใช้เป็น / bin / sync
syncเป็นหนึ่งในบัญชีผู้ใช้ที่ Debian สร้างขึ้นเอง ฉันสงสัยว่าทำไม Debian ชุดเปลือกเข้าสู่ระบบเพื่อแทน/bin/sync /bin/falseDebian ใช้บัญชีผู้ใช้นี้อย่างไร
14 debian  users  passwd 

5
จัดเรียงไฟล์ข้อความที่มีหลายบรรทัดเป็นแถว
ฉันมีไฟล์ข้อความในรูปแบบนี้: #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 ฉันต้องการเรียงลำดับไฟล์นี้ตามKEYบรรทัดและเก็บ 4 บรรทัดถัดไปไว้ในผลลัพธ์ดังนั้นผลลัพธ์ที่เรียงควรเป็น: #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 มีวิธีทำเช่นนี้หรือไม่?

1
รหัสข้อผิดพลาดมาตรฐานใน Linux คืออะไร
เมื่อฉันเขียนรหัสในทุบตีเช่นคัดลอกไฟล์เมื่อไม่มีไฟล์ใน terminal ฉันเห็นข้อผิดพลาดคล้ายกับ "ไม่พบไฟล์" หากผู้ใช้สคริปต์ไม่ได้รับอนุญาตข้อผิดพลาดที่แสดง ขึ้นคล้ายกับ "ปฏิเสธสิทธิ์" โดยทั่วไปไม่ว่าภาษาการเขียนโปรแกรมเมื่อคุณเขียนรหัสเพื่อคัดลอกไฟล์เช่นภาษาการเขียนโปรแกรมที่คุณใช้จะขอให้ OS (linux ในกรณีของฉัน) ทำเช่นนั้นหากมีสิ่งผิดปกติเกิดขึ้น OS จะตอบสนองกับ ข้อผิดพลาดที่สะดวก (รหัส + ข้อความ) มีคำสั่งที่ฉันสามารถเรียกใช้ซึ่งจะแสดงรายการรหัสข้อผิดพลาดมาตรฐานทั้งหมดในระบบหรือไม่

1
การทำความเข้าใจตำแหน่งไฟล์การกำหนดค่าโฮม: ~ /, ~ / .config / และ ~ / .local / share /
มีไฟล์การกำหนดค่าที่ซ่อนอยู่จำนวนหนึ่งในโฮมไดเรกทอรีของฉัน: บางส่วนอยู่ใน~/(เช่น~/.cinnamon) บางส่วนอยู่ใน~/.config/(เช่น~/.config/cinnamon-session) บางส่วนอยู่ใน~/.local/share/(เช่น~/.local/share/cinnamon-session) ตรรกะของไฟล์กำหนดค่าโฮมคืออะไร a) ความแตกต่างระหว่างไฟล์ที่ซ่อนในสามที่นี้คืออะไร? b) "ท้องถิ่น" หมายถึงอะไรในบริบทนี้ vs config, vs home c) ในโฮมไดเร็กตอรี่, ยังมีไดเรคทอรีการกำหนดค่าทั่วไปที่สำคัญอื่น ๆ ที่ใช้งานโดยหลายแอพพลิเคชั่นหรือไม่? Debian 8.6 Cinnamon 2.2.16

4
วิธีการทำให้ bash glob เป็นตัวแปรสตริง
ข้อมูลระบบ ระบบปฏิบัติการ: OS X bash: GNU bash, รุ่น 3.2.57 (1) - ปล่อย (x86_64-apple-darwin16) พื้นหลัง ฉันต้องการให้ไทม์แมชชีนแยกชุดไดเรกทอรีและไฟล์ออกจากโครงการ git / nodejs ทั้งหมดของฉัน ไดเรกทอรีโครงการของฉันอยู่ใน~/code/private/และดังนั้นฉันพยายามที่จะใช้ทุบตีวนลูปที่จะทำ~/code/public/tmutil ปัญหา เวอร์ชั่นสั้น หากฉันมีตัวแปรสตริงที่คำนวณได้kฉันจะทำให้มันกลมกลืนไปหรือขวาก่อน for-loop ได้อย่างไร: i='~/code/public/*' j='*.launch' k=$i/$j # $k='~/code/public/*/*.launch' for i in $k # I need $k to glob here do echo $i done k=$i/$jในรุ่นยาวด้านล่างนี้คุณจะเห็น ดังนั้นฉันไม่สามารถเข้ารหัสสตริงใน for for loop …

2
วิธีรับชื่ออุปกรณ์บล็อกจากชื่ออุปกรณ์พาร์ทิชัน?
ฉันกำลังมองหาวิธีพกพาที่จะได้รับชื่ออุปกรณ์บล็อกแม่ (เช่น/dev/sda) ให้ชื่ออุปกรณ์พาร์ทิชัน (เช่น/dev/sda1) ฉันรู้ว่าฉันสามารถทิ้งอักขระตัวสุดท้ายได้ แต่นั่นอาจไม่ได้ผลในบางกรณี: โดยทั่วไปแล้วเครื่องอ่านการ์ด MMC จะมีชื่อเหมือน/dev/mmcblk0ในขณะที่พาร์ทิชันของพวกเขามีชื่อเช่น/dev/mmcblk0p1(สังเกตเห็นพิเศษp) ทางเลือก: อุปกรณ์บล็อกบางตัวไม่มีตารางพาร์ติชั่นเลยและมีการจัดรูปแบบเป็นพาร์ติชันเดียว ในกรณีนี้อุปกรณ์พาร์ทิชันและอุปกรณ์บล็อกหลักเหมือนกัน ปริมาตร LVM เป็นปลาที่แตกต่างกันอย่างสิ้นเชิง ฉันไม่ต้องการสนับสนุนพวกเขาในตอนนี้ แต่ถ้าคำนึงถึงพวกเขาต้องการความพยายามเพิ่มเล็กน้อยฉันก็ไม่รังเกียจ

1
เรียกใช้ฟังก์ชันทุบตีหลายอย่างในพื้นหลังและรอจนกระทั่งพวกเขากลับมา
นี่เป็นสคริปต์อย่างง่ายที่รันnvidia-smiคำสั่งบนหลายโฮสต์และบันทึกเอาต์พุตไปยังไฟล์ทั่วไป เป้าหมายที่นี่คือการทำให้มันทำงานแบบไม่พร้อมกัน อยู่ใน&ตอนท้ายของprocess_host()ฟังก์ชั่นโทรเพียงพอ? สคริปต์ของฉันถูกต้องหรือไม่ #!/bin/bash HOSTS=(host1 host2 host3) OUTPUT_FILE=nvidia_smi.txt rm $OUTPUT_FILE process_host() { host=$1 echo "Processing" $host output=`ssh ${host} nvidia-smi` echo ${host} >> $OUTPUT_FILE echo "$output" >> $OUTPUT_FILE } for host in ${HOSTS[@]}; do process_host ${host} & done; wait cat $OUTPUT_FILE

3
การกำหนดที่อยู่ IP คงที่โดยใช้ nmcli
ดังนั้นฉันจึงพยายามที่จะให้ที่อยู่ IP แบบคงที่ VM กรณีนี้ได้ปากแข็งโดยเฉพาะ VM กำลังทำงานบนคลัสเตอร์ ESXi ที่มีช่วง IP สาธารณะของตนเอง ฉันมี (sorta) ทำงานกับที่อยู่ IPv4 ยกเว้นว่าจะกำหนดใหม่ทุกครั้งที่บูตตอนนี้หลังจากเล่นซอกับ nmcli ฉันไม่สามารถรับที่อยู่ IPv4 ใด ๆ ได้ อินเทอร์เฟซคือens32และฉันได้เปลี่ยนipv4.addressesเป็นXXX.XXX.120.44/24(ต้องการให้มีที่อยู่120.44), เกตเวย์XXX.XXX.120.1และตั้งค่าด้วยตนเอง ไม่มีใครมีข้อมูลเชิงลึกว่าทำไมจึงไม่ทำงาน คู่มือออนไลน์ทั้งหมดใช้สำหรับบริการเครือข่ายรุ่นเก่าไม่ใช่ NetworkManager

2
ความแตกต่างระหว่างการตั้งค่าสถานะตัวเลือกและอาร์กิวเมนต์คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ls -a(ฉันพิจารณา-aตัวเลือก) sudo -u username( -u= ตัวเลือกusername= arg) chmod 664 my-dir( 664= ตัวเลือกmy-dir= arg) ฉันไม่สามารถนึกถึงตัวอย่างที่อาจพูดว่า "นี่คือธง" ยกเว้นบางทีเมื่อดูรายชื่อ dir: -r--------. 1 david david 3344 May 19 17:48 611056.pdf สิ่งนี้มีการตั้งค่า "อ่านธง" สำหรับเจ้าของ แต่นั่นคือทั้งหมด จะหยุดฉันไม่ให้เรียกสิ่งนั้นว่า "ตัวเลือกการอ่าน" ฉันเขียนและแก้ไขเอกสารทางเทคนิคเป็นหลักใน DocBook XML และฉันกำลังมองหาคำอธิบายของความแตกต่างซึ่งสอดคล้องและถูกต้องที่สุด อย่างไรก็ตามฉันเห็นรูปแบบการขึ้นรูปแล้ว: ธงมีแนวโน้มที่จะเป็นบูลีน เช่น,setenforce 0 ตัวเลือกช่วยกำหนดวิธีการทำงานของคำสั่ง บางคนอาจจะเป็นตัวเลือก …

1
ส่งคืนเจ้าของกระบวนการที่ได้รับ PID
ฉันพยายามที่จะคว้าเจ้าของกระบวนการจากรายการฉันมีคำสั่งpidof nmapเพื่อให้ได้สิ่งps -u <PID> | grep USERที่ฉันกำลังเล่นด้วย แต่เมื่อฉันเรียกใช้มันจะจบลงด้วยการพิมพ์ชื่อเรื่อง (บรรทัดบนสุด) ฉันจะคว้าชื่อเจ้าของที่ให้รหัสกระบวนการได้อย่างไร

3
กับดักได้รับมรดกโดย subshell หรือไม่
ฉันลองใช้สคริปต์ต่อไปนี้: #!/bin/bash trap 'echo "touching a file" && touch $FILE' EXIT foo1(){ echo "foo1" } foo(){ echo "foo" export FILE=${FILE:-/tmp/file1} } (foo1) foo ผลลัพธ์สำหรับสคริปต์ข้างต้นคือ: [root@usr1 my_tests]# ./test.sh foo1 foo touching a file อย่างไรก็ตามฉันคาดหวังว่ากับดักจะถูกเรียกเมื่อออกจากfoo1เช่นกันซึ่งเรียกว่าใน subshell คาดหวังหรือไม่ มีการtrapสืบทอดโดย subshell หรือไม่ ถ้าใช่แล้วในกรณีใดที่trapสืบทอดโดย subshell?
14 shell  trap  subshell 

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