Unix & Linux

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

4
คำสั่ง exit ทำงานบนเทอร์มินัล Unix อย่างไร
ใครช่วยกรุณาอธิบายว่าexitคำสั่งทำงานอย่างไรในเทอร์มินัล Unix? การค้นหาman exit และwhich exitไม่เป็นประโยชน์และฉันได้เจอปัญหาต่อไปนี้ หลังจากติดตั้ง add บนแพ็คเกจสำหรับ Anaconda และ PyCharm ในระบบ Red Hat ใหม่ของฉันฉันสังเกตเห็นว่าเมื่อใดก็ตามที่ฉันถูกเรียกexitให้ออกจากเซสชันเทอร์มินัลฉันจะได้รับข้อผิดพลาดหลายชุดจากนั้นเทอร์มินัลจะหยุด ข้อผิดพลาดดูเหมือนจะแนะนำว่าการโทรของฉันexitกำลังเรียกการโทรrm ~/anaconda3/.../และrm ~/PyCharm/....ทำให้เกิดข้อผิดพลาด ไดเรกทอรีทั้งหมดดูเหมือนจะเป็นที่ตั้งของแพ็คเกจที่ฉันดาวน์โหลดสำหรับโปรแกรมเหล่านี้ (เช่นจำนวนมาก) ดูด้านล่าง $ exit rm: cannot remove ‘~/anaconda3/lib/python3.5/site-packages/numpy/core’: Is a directory ... ... การแก้ไข ใน~/.bash_logoutไฟล์ของฉันมีบรรทัด find ~ -xdev ( -name *~ -o -name .*~ -o -name core ) -exec \rm …

1
ฉันสามารถจัดกลุ่มตามหมวดหมู่ได้หรือไม่?
ฉันมีไดเรกทอรีพร้อมรูปภาพจำนวนมากในนั้น โดยเฉพาะdu -sh --apparent-size /path/to/myfolder331G ให้ฉัน อันไหนดี แต่ตอนนี้ฉันต้องการได้รายชื่อที่จัดกลุ่มตามเดือนเช่นบางสิ่งเช่นนี้: 2016-01 20MB 2016-02 520MB 2016-03 312MB ... มีวิธี (สมเหตุสมผล) ในการทำเช่นนี้กับ linux builtins หรือฉันควรเขียนยูทิลิตี้ Python ของตัวเองเพื่อทำมัน?

2
คำขอเริ่มบริการซ้ำเร็วเกินไปปฏิเสธที่จะเริ่ม
ฉันได้สร้างบริการบน Debian 8.6 และเมื่อฉันพยายามเริ่มใช้งานโดยใช้คำสั่งบริการฉันได้รับข้อผิดพลาด ฉันพยายามsystemctl daemon-reloadแล้ว แต่ก็ยังได้ผลลัพธ์เหมือนเดิม $ sudo service cloud9 start $ sudo service cloud9 status ● cloud9.service - cloud9 Loaded: loaded (/etc/systemd/system/cloud9.service; enabled) Active: failed (Result: start-limit) since Thu 2016-10-13 07:21:02 UTC; 2s ago Process: 2610 ExecStart=/opt/bitnami/nodejs/bin/node /home/user/c9sdk/server.js -w /home/user -l 0.0.0.0 -a admin:admin (code=exited, status=216/GROUP) Main PID: …

2
เป็นไปได้หรือไม่ที่จะเข้ารหัสฮาร์ดดิสก์ด้วยไฟล์คีย์แทนที่จะใช้รหัสผ่าน?
มองเข้าไปในการเข้ารหัสฮาร์ดดิสก์ วิธีแก้ปัญหาดูเหมือนจะเป็น DM-crypt กับ LUKS โดยใช้รหัสผ่าน ฉันทำงานกับฮาร์ดดิสก์อิสระหลายตัวที่ติดตั้งในดิสก์พูลเพื่ออ่าน ในกรณีนี้ฉันต้องพิมพ์รหัสผ่านหลายครั้ง มีวิธีที่ฉันจะเข้ารหัสฮาร์ดดิสก์ด้วยไฟล์คีย์อาจวางไว้ในไดรฟ์ USB และเพียงแค่เสียบเมื่อจำเป็น?


8
สลับลำดับขององค์ประกอบที่คั่นด้วยจุดในสตริง
ฉันมีสตริงการป้อนข้อมูลเช่น: arg1.arg2.arg3.arg4.arg5 ผลลัพธ์ที่ฉันต้องการคือ: arg5.arg4.arg3.arg2.arg1 มันไม่เสมอ 5 arg's อาจเป็น 2 ถึง 10 ฉันจะทำสิ่งนี้ในสคริปต์ทุบตีได้อย่างไร

2
วิธีการส่งพารามิเตอร์เพื่อทำงานในสคริปต์ทุบตี?
ฉันต้องการเขียนฟังก์ชั่นที่ฉันสามารถโทรหาจากสคริปต์ที่มีตัวแปรต่าง ๆ มากมาย ด้วยเหตุผลบางอย่างฉันมีปัญหาในการทำเช่นนี้ ตัวอย่างที่ฉันอ่านเสมอใช้ตัวแปรทั่วโลก แต่นั่นจะไม่ทำให้โค้ดของฉันอ่านง่ายขึ้นเท่าที่ฉันเห็น ตัวอย่างการใช้งานที่ตั้งใจไว้: #!/bin/bash #myscript.sh var1=$1 var2=$2 var3=$3 var4=$4 add(){ result=$para1 + $para2 } add $var1 $var2 add $var3 $var4 # end of the script ./myscript.sh 1 2 3 4 ฉันลองใช้$1และในฟังก์ชั่น แต่หลังจากนั้นมันก็ใช้ทั่วโลกที่สคริปต์ทั้งหมดถูกเรียกจาก โดยทั่วไปสิ่งที่ฉันกำลังมองหาสิ่งที่ต้องการ$1, $2และอื่น ๆ แต่ในบริบทของท้องถิ่นของฟังก์ชั่น ฟังก์ชั่นทำงานในภาษาที่เหมาะสม

1
เครื่องกำเนิดภาพแบบสุ่ม
ฉันกำลังสร้างข้อมูลสุ่มและพยายามแปลงเป็นภาพ PNG โดยใช้: head -c 1MB < /dev/urandom | hexdump -e '16/1 "_x%02X"' | sed 's/_/\\/g; s/\\x //g; s/.*/ "&"/' | tr -d "\"" | display -depth 8 -size 1000x1000+0 rgb:- คำสั่งนี้แสดงภาพสีเทาที่มีพิกเซล RGB อยู่เสมอ ผมทำอะไรผิดหรือเปล่า ? เป้าหมายสุดท้ายของฉันคือการสร้างภาพอย่างน้อยหนึ่งภาพด้วยข้อมูลแบบสุ่ม

5
หนึ่งจะแยกสถานะการออกของคำสั่งลงในตัวแปรได้อย่างไร
ฉันเริ่มเรียนรู้การทุบตีเมื่อสองสามวันก่อน ฉันพยายามรับสถานะทางออกของgrepการแสดงออกเป็นตัวแปรเช่นนี้ check=grep -ci 'text' file.sh และผลลัพธ์ที่ฉันได้รับคือ No command '-ic' found ฉันควรทำด้วยคำสั่งไพพ์หรือไม่?

3
ทุบตี: ฉันยากจน [[<]]
ฉันกำลังเขียนสคริปต์ทุบตีและทันใดนั้นพฤติกรรมนี้ก็เริ่มต้น: [[ 1 &lt; 2 ]]; echo $? # outputs 0 [[ 2 &lt; 13 ]]; echo $? # outputs 1 แต่ใช้-ltงานได้ดี: [[ 1 -lt 2 ]]; echo $? # outputs 0 [[ 2 -lt 13 ]]; echo $? # outputs 0 ฉันเขียนทับ&lt;อย่างใดโดยบังเอิญหรือไม่? นี่คือสคริปต์ที่ฉันเขียนเพื่อทดสอบพฤติกรรมนี้: #!/bin/bash for a in {1..5} do …
14 bash  test 

1
มีวิธีใดที่จะบอกได้ว่าเชลล์สคริปต์ถูกฆ่าด้วยสัญญาณ 9
ฉันมีสคริปต์ทุบตี (เรียกจากโปรแกรมจาวา) ที่ยังคงถูกฆ่า ฉันมักจะจับsignal 15ด้วยtrapแต่แล้วบางส่วนสัญญาณอื่น ๆ ที่มาพร้อมที่ฉันสงสัยว่าเป็นแต่ฉันในพื้นตาบอดเป็นไปได้ถ้ามันเป็นจริงsignal 9signal 9 ฉันรู้ว่าคุณไม่สามารถtrap signal 9มีวิธีอื่นที่ฉันสามารถบอกได้ว่าsignal 9กำลังฆ่าเชลล์สคริปต์ของฉันหรือไม่

2
วิธีเพิ่มแอปพลิเคชั่นเริ่มต้นด้วยตนเองใน Mint 17.3
ฉันได้อัพเดท Linux Mint 17.3 แล้ว ฉันต้องเพิ่มแอปพลิเคชั่นจำนวนมากเพื่อเริ่มต้น ปัญหาคือกล่องโต้ตอบต่อไปนี้ใช้งานไม่ได้ - จะไม่เพิ่มแอปพลิเคชันจากรายการและจะเพิ่มคำสั่งที่กำหนดเองใด ๆ อย่างไรก็ตามต้องมีวิธีอื่นที่ฉันสามารถเพิ่มแอปพลิเคชันเหล่านั้นด้วยตนเองอาจแก้ไขไฟล์เริ่มต้นบางอย่าง

1
POSIX เทียบเท่ากับการหมดเวลาของ GNU หรือไม่
timeoutคำสั่งGNU coreutils มีประโยชน์อย่างยิ่งสำหรับสถานการณ์การเขียนสคริปต์บางอย่างซึ่งอนุญาตให้ใช้เอาต์พุตของคำสั่งหากมันรวดเร็วในการเรียกใช้และข้ามมันหากมันใช้เวลานานเกินไป ฉันจะประมาณพฤติกรรมพื้นฐานของการtimeoutใช้ยูทิลิตี้ที่ระบุเฉพาะ POSIX ได้อย่างไร (ฉันคิดว่ามันอาจจะเกี่ยวข้องกับการรวมกันของwait, sleep, killและผู้ที่รู้สิ่งอื่น แต่บางทีฉันหายไปวิธีการที่ง่ายขึ้น.)

3
ฉันจะทำงานกับไบนารีใน bash เพื่อคัดลอกไบต์คำต่อคำโดยไม่มีการแปลงได้อย่างไร
ฉันพยายามแปลรหัส c ++ เป็น bash อย่างทะเยอทะยานด้วยเหตุผลมากมาย รหัสนี้อ่านและจัดการไฟล์ประเภทเฉพาะสำหรับฟิลด์ย่อยของฉันที่เขียนและจัดโครงสร้างอย่างสมบูรณ์ในไบนารี งานที่เกี่ยวข้องกับไบนารีครั้งแรกของฉันคือการคัดลอกส่วนหัว 988 ไบต์แรกตามที่เป็นจริงและใส่ลงในไฟล์เอาต์พุตที่ฉันสามารถเขียนต่อไปได้ในขณะที่ฉันสร้างข้อมูลที่เหลือ ฉันค่อนข้างมั่นใจว่าโซลูชันปัจจุบันของฉันใช้งานไม่ได้และในความเป็นจริงฉันไม่ได้คิดวิธีที่ดีในการพิจารณาสิ่งนี้ ดังนั้นแม้ว่ามันจะถูกเขียนขึ้นอย่างถูกต้องฉันต้องรู้ว่าฉันจะทดสอบสิ่งนี้อย่างไรเพื่อให้แน่ใจ! นี่คือสิ่งที่ฉันกำลังทำอยู่ตอนนี้: hdr_988=`head -c 988 ${inputFile}` echo -n "${hdr_988}" &gt; ${output_hdr} headInput=`head -c 988 ${inputTrack} | hexdump` headOutput=`head -c 988 ${output_hdr} | hexdump` if [ "${headInput}" != "${headOutput}" ]; then echo "output header was not written properly. exiting. please …
14 bash  binary  head 

2
ปัญหาด้านความปลอดภัยและสภาพการแข่งขันในการใช้งาน 'find -exec`' มีอะไรบ้าง?
จากfindหน้าคน : -exec command ; There are unavoidable security problems surrounding use of the -exec action; you should use the -execdir option instead. -execdir command {} + Like -exec, but the specified command is run from the subdirectory containing the matched file, which is not normally the directory in which …
14 shell  find  security 

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