Unix & Linux

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

1
ในสถานการณ์ใดที่ใช้ PS2, PS3, PS4
เมื่อฉันเข้าสู่เชลล์ฉันเห็นพรอมต์ที่มีค่าถูกเก็บไว้ใน PS1 ฉันยังพบพรอมต์อื่น (แต่ไม่ทราบว่าอันไหน) เมื่อฉันใช้ไวยากรณ์เอกสารที่นี่: bc << HERE > แต่นั่นคือพรอมต์ทุกประเภท ฉันเคยพบมาแล้ว สถานการณ์ประเภทใดทำให้เกิดพรอมต์ที่แตกต่างกัน

2
ค้นหา (1): สัญลักษณ์ตัวแทนของดาวมีการใช้งานอย่างไรเพื่อให้ล้มเหลวในชื่อไฟล์บางส่วน
ในระบบไฟล์ที่ชื่อไฟล์อยู่ใน UTF-8 ฉันมีไฟล์ที่มีชื่อผิดพลาด มันจะแสดงเป็น: D�sinstaller, ชื่อจริงตาม zsh D$'\351'sinstaller:, Latin1 สำหรับDésinstaller, ตัวเองป่าเถื่อนฝรั่งเศสสำหรับ "ถอนการติดตั้ง" Zsh จะไม่เข้าคู่กับมัน[[ $file =~ '^.*$' ]]แต่จะจับคู่กับก้อนกลม*- นี่คือพฤติกรรมที่ฉันคาดหวัง ตอนนี้ฉันยังคงคาดหวังว่าจะพบมันเมื่อทำงานfind . -name '*'- ในความเป็นจริงฉันไม่เคยคาดหวังว่าชื่อไฟล์จะล้มเหลวในการทดสอบนี้ อย่างไรก็ตามด้วยLANG=en_US.utf8ไฟล์ไม่ปรากฏขึ้นและฉันต้องตั้งค่าLANG=C(หรือen_USหรือ'') เพื่อให้มันทำงาน คำถาม: การดำเนินการที่อยู่เบื้องหลังคืออะไรและฉันจะคาดการณ์ผลลัพธ์ได้อย่างไร ข้อมูล: Arch Linux 3.14.37-1-lts, find (GNU findutils) 4.4.2

1
ตัวแทน GPG ทำงานอย่างไร
ฉันมีบรรทัดในไฟล์ gpg.conf use-agentของฉันที่กล่าวว่า ฉันเข้าใจว่านี่หมายถึง gpg-agent ซึ่งเป็น daemon man page กล่าวว่า "gpg-agent เป็น daemon ในการจัดการคีย์ลับ (ส่วนตัว) อย่างอิสระจากโปรโตคอลใด ๆ มันถูกใช้เป็นแบ็กเอนด์สำหรับ gpg และ gpgsm เช่นเดียวกับโปรแกรมอรรถประโยชน์อื่น ๆ สองสามอย่าง" ใครช่วยอธิบายสิ่งนี้ได้ในบริบทของ gpg จุดประสงค์ของ gpg-agent คืออะไร? ฉันมี GPG 1.4 ในปัจจุบัน ฉันจะรู้ได้อย่างไรว่าตัวแทนกำลังทำงานอยู่? ฉันยังไม่ชัดเจนว่า gpg-agent ติดตั้งมากับแพ็คเกจ GPG 1.4 พื้นฐานหรือไม่ ฉันจะเริ่มต้นอย่างไรถ้ามันไม่ทำงาน ฉันจะหยุดมันได้อย่างไรถ้ามันทำงานอยู่
31 gpg  gpg-agent 

5
วิธีหลีกเลี่ยงความยุ่งยาก“ ยำล็อค”?
ฉันมักจะพบข้อความ "แอปอื่นกำลังถือล็อค yum อยู่และกำลังรอให้ออกจาก ... " เมื่อพยายามติดตั้งแอปและฉันต้องฆ่ายัมด้วยตนเอง ฉันจะหลีกเลี่ยงสิ่งนั้นได้อย่างไร มีวิธีง่าย ๆ ในการปลดล็อคยำหรือไม่? ดูเหมือนว่า yum เดียวเท่านั้นที่สามารถทำงานได้ มันเหมือนกันกับแพ็คเกจอื่น ๆ (apt-get, pacman) หรือไม่?
31 centos  yum 

2
เหตุใดการปิดเครื่องของฉันหลังจากที่ `` RM 'ไม่ดีบันทึกไฟล์ของฉัน
สถานการณ์แบบคลาสสิก: ฉันวิ่งได้ไม่ดีrmและรับรู้ได้ทันทีหลังจากนั้นฉันก็ลบไฟล์ผิด (ไม่มีอะไรสำคัญและฉันมีการสำรองข้อมูลล่าสุดอย่างอดทน แต่ก็น่ารำคาญ) รู้ว่ากิจกรรมของดิสก์ต่อไปเป็นศัตรูของฉันถ้าฉันต้องการกู้คืนไฟล์ด้วยextundeleteหรือเครื่องมือดังกล่าวฉันก็ขับเคลื่อนเครื่องลงทางกายภาพทันที (เช่นด้วยปุ่มเปิดปิดไม่ใช่ด้วยhaltหรือคำสั่งใด ๆ ) นี่เป็นแล็ปท็อปที่ไม่มีงานสำคัญที่ทำงานอยู่หรือมีอะไรเปิดอยู่ดังนั้นจึงเป็นการทำงานที่ยอมรับได้ (โดยวิธีการที่ฉันได้เรียนรู้ตั้งแต่นั้นมาสิ่งแรกที่ต้องทำในสถานการณ์ดังกล่าวจะประเมินก่อนหากไฟล์ที่หายไปอาจจะยังคงเปิดโดยกระบวนการhttps://unix.stackexchange.com/a/101247 - หากเป็นเช่นนั้นคุณควรกู้คืนด้วยวิธีนี้แทนที่จะปิดเครื่อง) ถึงกระนั้นเมื่อเครื่องถูกปิดฉันคิดว่าในขณะที่และตัดสินใจว่าไฟล์ไม่คุ้มค่ากับการลงทุนในการบูทระบบสดเพื่อการพิสูจน์หลักฐานที่เหมาะสม ดังนั้นฉันจึงขับเคลื่อนเครื่องสำรอง แล้วฉันก็ค้นพบว่าไฟล์ของฉันยังคงนั่งอยู่บนดิสก์: สิ่งที่rmไม่ได้แพร่กระจายไปยังดิสก์ก่อนที่ฉันจะปิดตัวลง ฉันเต้นเล็กน้อยและขอบคุณพระเจ้าแห่งดูแลระบบสำหรับการให้อภัยที่ไม่คาดคิดของเขา คำถามของฉันคือตอนนี้เพื่อทำความเข้าใจว่ามันเป็นไปได้อย่างไรและอะไรคือความล่าช้าทั่วไปก่อนที่rmจะแพร่กระจายสู่ดิสก์ ฉันรู้ว่าดิสก์ IO ไม่ได้ถูกลบทิ้งทันที แต่มันอยู่ในหน่วยความจำระยะหนึ่ง แต่ฉันคิดว่าดิสก์เจอร์นัลจะทำให้แน่ใจได้อย่างรวดเร็วว่าการดำเนินการที่ค้างอยู่จะไม่สูญหายทั้งหมด https://unix.stackexchange.com/a/78766ดูเหมือนจะบอกกล่าวกับกลไกแยกต่างหากเพื่อล้างหน้าสกปรกและเพื่อล้างการดำเนินการของวารสาร แต่ไม่ได้ให้รายละเอียดที่เพียงพอเกี่ยวกับวิธีที่วารสารจะเกี่ยวข้องกับrmและความล่าช้าที่คาดไว้ก่อนหน้า การดำเนินการจะถูกล้างออก รายละเอียดเพิ่มเติม: ข้อมูลอยู่ในพาร์ติชัน ext4 ภายในโวลุ่ม LUKS และเมื่อบูตเครื่องสำรองข้อมูลฉันเห็นสิ่งต่อไปนี้ในsyslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: …

2
“ export var = value” ไม่สามารถใช้ได้ที่ไหน
ฉันหยิบขึ้นมา - อาจจะเป็น Usenet ในช่วงกลางปี ​​1990 (!) - สิ่งก่อสร้างนั้น export var=value เป็น Bashism และการแสดงออกแบบพกพาคือ var=value export var ฉันได้รับการสนับสนุนมาหลายปี แต่เมื่อเร็ว ๆ นี้มีคนท้าทายฉันเกี่ยวกับเรื่องนี้และฉันไม่สามารถหาเอกสารใด ๆ เพื่อสำรองสิ่งที่เคยเป็นความเชื่อที่มั่นคงของฉัน Googling สำหรับ"export: command not found"ดูเหมือนจะไม่เกิดกรณีใด ๆ ที่ใครบางคนมีปัญหานี้จริง ๆ ดังนั้นแม้ว่ามันจะเป็นของแท้ แต่ฉันคิดว่ามันไม่ธรรมดา (ความนิยมที่ฉันได้รับดูเหมือนว่าเป็นมือใหม่ที่คัดลอก / วางเครื่องหมายวรรคตอนและจบลงด้วย'export: command not foundหรือบางส่วนหรือพยายามใช้exportกับsudoและcshผู้ใช้มือใหม่ที่พยายามใช้ไวยากรณ์เชลล์เป้าหมาย) แน่นอนฉันสามารถบอกได้ว่าการทำงานบน OS X และ Linux distros ต่าง ๆ รวมทั้งคนที่เป็นshdash sh$ export …

1
“ E: กระบวนการย่อย / usr / bin / dpkg ส่งคืนรหัสข้อผิดพลาด (1)” สิ่งนี้หมายความว่าอย่างไร
ฉันเคยเห็นข้อความนี้หลายครั้งเมื่อมีคนติดตั้งอัปเกรดหรือลบซอฟต์แวร์บางส่วน แต่ฉันสงสัยว่ามันหมายความว่าอย่างไรและที่สำคัญกว่านั้นเป็นไปได้ที่จะแก้ไขได้ (Reading database ... 81657 files and directories currently installed.) Removing mongodb-10gen ... arg: remove invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. dpkg: error processing mongodb-10gen (--remove): subprocess installed pre-removal script returned error exit status 100 invoke-rc.d: unknown initscript, /etc/init.d/mongodb not found. dpkg: error while cleaning up: subprocess installed post-installation …
31 apt  dpkg 

5
การตั้งค่าหลายกลุ่มเป็นเจ้าของไดเรกทอรี
/srv/svnบนเซิร์ฟเวอร์ของฉันฉันมีไดเรกทอรี มันเป็นไปได้ที่จะตั้งไดเรกทอรีนี้จะมีกรรมสิทธิ์ในกลุ่มได้หลากหลายเช่นdevFirmA, devFirmBและdevFirmC? ประเด็นก็คือฉันต้องการsubversionควบคุมเวอร์ชันจัดการผู้ใช้หลายคนในที่เก็บหลายแห่งและฉันไม่ทราบวิธีผสาน /srv/svnไดเรกทอรีรากของที่เก็บสิทธิ์ ผมมีตัวอย่างเช่นสาม บริษัทFirmA, และFirmB FirmCตอนนี้ภายใน/srv/svnฉันได้สร้างสามไดเรกทอรีFirmA, FirmB, FirmCและภายในพวกเขาฉันได้สร้างพื้นที่เก็บข้อมูลสำหรับแต่ละโครงการและตอนนี้ผมไม่ทราบวิธีการสร้างโครงการที่ได้รับอนุญาตตั้งแต่ elementes ทั้งหมดภายใน/srv/svnเป็นเจ้าของโดยroot:rootที่ไม่ได้ตกลงหรือฉัน ไม่ถูกต้อง?

2
บันทึกการกดแป้นทุกครั้งและเก็บไว้ในไฟล์
ฉันต้องบันทึกทุกการกดแป้นและเก็บไว้ในไฟล์ในไดเรกทอรีผู้ใช้ ~ เมื่อใช้บัญชีของฉันฉันไม่ใช่ sudoer และฉันไม่สามารถติดตั้งโปรแกรม (เช่นlogKeys ) ในทางใดทางหนึ่ง ฉันจะใช้เทอร์มินัลได้อย่างไร หมายเหตุ:คำถามนี้ไม่ใช่คำถามที่กล่าวถึงอื่น ๆ ในคำถามนี้ฉันถามเกี่ยวกับการกดแป้นทุกครั้งในขณะที่ผู้ถามอีกคนถามเกี่ยวกับการกดแป้นในเซสชันเทอร์มินัล
31 x11  logs  keyboard  input 

1
จะเกิดอะไรขึ้นเมื่อคุณซิงค์โดยไม่มีปลายทาง
เพื่อทำให้เรื่องสั้นฉันได้ทำ rsync: rsync -avP user@exampleserver.com:/tmp/ และฉันลืมใส่ในไดเรกทอรีแหล่งที่มาของฉัน ... ฉันตั้งใจจะวิ่งจริงๆ: rsync -avP /tmp/ user@exampleserver.com:/tmp/ มันพิมพ์ไฟล์จำนวนมาก แต่ฉันไม่รู้ว่ามันจะคัดลอกไปที่ไหนเพราะฉันไม่ได้ระบุปลายทาง ไม่มีใครรู้ว่าเกิดอะไรขึ้น? ฉันทำlsในโฟลเดอร์ปัจจุบัน แต่ฉันไม่พบอะไรเลย
31 linux  rsync  file-copy 

7
ฉันจะหลอกให้กระบวนการคิดว่าไฟล์ไม่มีอยู่ได้อย่างไร
ฉันมีโปรแกรมที่จัดเก็บการตั้งค่าใน ~/.config/myprogramฉันใช้ทั้งแบบโต้ตอบและกับระบบคิวแบบแบตช์ เมื่อเรียกใช้แบบโต้ตอบฉันต้องการให้โปรแกรมนี้ใช้ไฟล์การกำหนดค่าของฉัน แต่เมื่อทำงานในโหมดแบทช์ไฟล์การกำหนดค่าไม่จำเป็นเพราะฉันระบุตัวเลือกบรรทัดคำสั่งที่เขียนทับการตั้งค่าที่เกี่ยวข้องทั้งหมด นอกจากนี้การเข้าถึงไฟล์กำหนดค่าผ่านเครือข่ายจะเพิ่มเวลาเริ่มต้นของโปรแกรมเป็นเวลาหลายวินาที หากไฟล์ไม่มีอยู่โปรแกรมจะเริ่มเร็วขึ้นมาก (เนื่องจากแต่ละงานใช้เวลาเพียงหนึ่งนาทีเท่านั้น แต่เนื่องจากฉันใช้โปรแกรมแบบโต้ตอบฉันไม่ต้องการย้าย / ลบไฟล์การกำหนดค่าตลอดเวลา ขึ้นอยู่กับเวลาที่งานแบ็ตช์ของฉันถูกกำหนดเวลาไว้ในคลัสเตอร์ (ขึ้นอยู่กับการใช้งานของผู้ใช้รายอื่น) (นอกเหนือจาก: ประสิทธิภาพของไฟล์เครือข่ายช้ามากอาจเป็นข้อบกพร่อง แต่ฉันเป็นเพียงผู้ใช้ของคลัสเตอร์ดังนั้นฉันสามารถแก้ไขได้เท่านั้นไม่สามารถแก้ไขได้) ฉันสามารถสร้างเวอร์ชันของโปรแกรมที่ไม่อ่านไฟล์การกำหนดค่า (หรือมีตัวเลือกบรรทัดคำสั่งไม่ให้ใช้) สำหรับการใช้แบทช์ แต่สภาพแวดล้อมการสร้างของโปรแกรมนี้ออกแบบมาไม่ดีและติดตั้งยาก ฉันชอบที่จะใช้ไบนารีที่ติดตั้งผ่านผู้จัดการแพ็คเกจของระบบของฉัน ฉันจะหลอกลวงอินสแตนซ์ของโปรแกรมนี้โดยเฉพาะเพื่อแกล้งทำเป็นไฟล์การกำหนดค่าของฉันไม่มีอยู่ (โดยไม่ต้องแก้ไขโปรแกรม) ฉันหวังว่าจะได้รูปแบบ pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...แต่ฉันเปิดให้โซลูชั่นอื่น ๆ
31 files 

3
สร้างเชลล์ย่อยด้วยเครื่องหมายปีกกา
ตามนี้ , วางรายการของคำสั่งระหว่างวงเล็บปีกกาทำให้เกิดรายการที่จะดำเนินการในบริบทเปลือกปัจจุบัน ไม่มี subshell จะถูกสร้างขึ้น ใช้psเพื่อดูสิ่งนี้ในการทำงาน นี่คือลำดับชั้นกระบวนการสำหรับไพพ์ไลน์กระบวนการดำเนินการโดยตรงบนบรรทัดคำสั่ง 4398 เป็น PID สำหรับเชลล์ล็อกอิน: sleep 2 | ps -H; PID TTY TIME CMD 4398 pts/23 00:00:00 bash 29696 pts/23 00:00:00 sleep 29697 pts/23 00:00:00 ps ตอนนี้ตามลำดับชั้นกระบวนการสำหรับไพพ์ไลน์กระบวนการระหว่างวงเล็บปีกกาที่ดำเนินการโดยตรงบนบรรทัดคำสั่ง 4398 เป็น PID สำหรับเชลล์ล็อกอิน มันคล้ายกับลำดับชั้นด้านบนเพื่อพิสูจน์ว่าทุกอย่างถูกดำเนินการในบริบทเชลล์ปัจจุบัน : { sleep 2 | ps -H; } PID TTY TIME …
31 bash  subshell 

2
เวอร์ชันใหม่ของไฟล์กำหนดค่า / etc / default / grub พร้อมใช้งานแล้ว แต่รุ่นที่ติดตั้งในปัจจุบันได้รับการแก้ไขในเครื่อง
ฉันใช้ 3.2.0-4-amd64 # 1 SMP Debian 3.2.46-1 x86_64 GNU / Linux Debian GNU / Linux 7.1 (เสียงฮืด ๆ ) Release: 7.1 ฉันพิมพ์ "sudo apt-get upgrade" และหวังว่าจะดีที่สุด (ฉันอัพเดตแพ็คเกจทั้งหมดก่อนที่จะทำเช่นนั้นด้วย "sudo ap-get update") ฉันไม่ทราบว่ามีการเปลี่ยนแปลงใด ๆ กับด้วงที่ฉันสามารถทำได้แม้ว่าฉันจะไม่ได้เป็นเจ้าของเครื่องนี้ฉันก็มีสิทธิ์ใช้ sudo และใช้งานได้ ได้โปรดฉันควรทำอย่างไรดี? ฉันกลัวที่จะทำลายระบบของฉัน :( A new version of configuration file /etc/default/grub is available, but the version …
31 grub 

3
sed - วิธีที่จะทำการทดแทนต่อเนื่องหลายรายการ แต่ประมวลผลไฟล์เพียงครั้งเดียว?
หากฉันกำลังทำการทดแทนหลายอย่างซึ่งจำเป็นต้องต่อเนื่องกันเช่น sed -i '/^[[:space:]]*browser.*\.should/s/browser/expect(browser/' t1_spec.rb sed -i '/expect(browser.*\.should/s/\.should/).should/' t1_spec.rb sed -i 's/\.should/\.to/' t1_spec.rb sed -i 's/==/eq/' t1_spec.rb มีวิธีที่ดีกว่าในการทำเช่นนี้ที่จะผ่าน t1_spec.file เพียงครั้งเดียวและทำการทดแทน 4 ครั้งสำหรับแต่ละบรรทัดแทนที่จะไปผ่านไฟล์ 4 ครั้งหรือไม่
31 sed 

4
จะตรวจสอบชีวิตที่เหลืออยู่ใน SSD หรือระดับการสึกหรอของสื่อได้อย่างไร?
เราทุกคนรู้ว่า SSD มีช่วงชีวิตที่กำหนดไว้อย่าง จำกัด ฉันจะตรวจสอบ Linux ได้อย่างไรสถานะสุขภาพปัจจุบันของ SSD คืออะไร ผลการค้นหาของ Google ส่วนใหญ่จะขอให้คุณค้นหาข้อมูล SMART สำหรับฟิลด์เปอร์เซ็นต์ที่ชื่อว่า Media_Wearout_Indicator หรือตัวบ่งชี้ศัพท์แสงอื่น ๆ เช่น Longterm Data Endurance - ซึ่งไม่มีอยู่ - ใช่ฉันตรวจสอบ SSD สองตัวแล้วทั้งสองไม่มีฟิลด์เหล่านี้ ฉันสามารถค้นหา SSD ตัวที่สามได้ แต่ฉันรู้สึกว่าฟิลด์ไม่ได้มาตรฐาน เพื่อแสดงให้เห็นถึงปัญหาที่นี่เป็นสองตัวอย่าง ด้วย SSD ตัวแรกมันไม่ชัดเจนว่าฟิลด์ใดแสดงถึงระดับการสึกหรอ อย่างไรก็ตามมี Unknown_Attribute เพียงหนึ่งรายการที่มีค่า RAW VALUE อยู่ระหว่าง 1 ถึง 100 ดังนั้นฉันสามารถสรุปได้ว่านั่นคือสิ่งที่เรากำลังมองหา: $ sudo smartctl -A /dev/sda …

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