Unix & Linux

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

2
เชลล์อื่นที่ไม่ใช่ Bash และ Zsh สนับสนุนการอ้างอิง ANSI-C หรือไม่ เช่น $ 'string'
ฉันมีเชลล์สคริปต์ที่ใช้สิ่งต่อไปนี้เพื่อพิมพ์เครื่องหมายถูกสีเขียวในผลลัพธ์: col_green="\e[32;01m" col_reset="\e[39;49;00m" echo -e "Done ${col_green}✓${col_reset}" หลังจากที่ได้อ่านเกี่ยวกับการทุบตีของANSI-C Quotingผมรู้ว่าผมสามารถใช้มันเมื่อตั้งค่าตัวแปรสีของฉันและเอา-eธงจากฉันก้อง col_green=$'\e[32;01m' col_reset=$'\e[39;49;00m' echo "Done ${col_green}✓${col_reset}" ดูเหมือนว่าน่าสนใจเพราะมันหมายถึงข้อความที่พิมพ์อย่างถูกต้องไม่ว่ามันจะถูกส่งผ่านไปยังเสียงสะท้อนในตัวของ Bash หรือการใช้งานภายนอก/bin/echo(ฉันใช้บน macOS) แต่สิ่งนี้ทำให้สคริปต์พกพาน้อยลงหรือไม่ ฉันรู้ว่า Bash และ Zsh สนับสนุนรูปแบบการอ้างอิงนี้ แต่ฉันไม่แน่ใจเกี่ยวกับคนอื่น

1
@anaconda repo ในรายการยำติดตั้งหมายความว่าอย่างไร
ในผลลัพธ์ของyum list installedฉันได้ wget.x86_64 1.14-13.el7 @base which.x86_64 2.20-7.el7 @anaconda แต่อนาคอนดาไม่ได้อยู่ในรายชื่อที่เก็บข้อมูล ฉันสงสัยว่าพื้นที่เก็บข้อมูลถูกกำหนดเวลาการติดตั้ง แต่ฉันไม่สามารถหาการยืนยัน
13 centos  yum 

1
ไม่พบไฟล์ที่บันทึกโดยใช้ Gnome Sound Recorder
ฉันใช้ซอฟต์แวร์ชื่อ Gnome Sound Recorder เพื่อบันทึกเสียง อย่างไรก็ตามมันไม่มีทางเลือกให้ฉันทำอะไรกับการบันทึกนอกเหนือจากการลบมัน ฉันดูสูงและต่ำสำหรับไฟล์แม้จะใช้whereisคำสั่งและ poking รอบในไดเรกทอรีที่เกี่ยวข้อง แต่ไม่พบอะไรเลย ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชมอย่างมาก - ฉันบันทึกการบันทึกยาวครึ่งชั่วโมงและไม่ต้องการสูญเสียมัน! นี่คือภาพหน้าจอ:
13 gnome  audio 

2
ความแตกต่างระหว่าง pidof และ pgrep คืออะไร?
เมื่อฉันใช้คำสั่งเหล่านี้อย่างใดอย่างหนึ่งกับอาร์กิวเมนต์เป็นชื่อของกระบวนการพวกเขาทั้งสองกลับหมายเลขเดียวกันแน่นอน พวกเขาเป็นคำสั่งเดียวกันหรือไม่ พวกเขาสองคำสั่งต่างกันที่ทำสิ่งเดียวกัน เป็นหนึ่งในนั้นนามแฝงอื่น ๆ ? pidof firefox pgrep firefox
13 process 

7
ค้นหารายการไดเรกทอรีหนึ่งระดับลึกจากไดเรกทอรีที่ตรงกัน
ฉันพยายามรับรายการไดเรกทอรีที่อยู่ในโฟลเดอร์เฉพาะ รับโฟลเดอร์ตัวอย่างเหล่านี้: foo/bar/test foo/bar/test/css foo/bar/wp-content/plugins/XYZ foo/bar/wp-content/plugins/XYZ/js foo/bar/wp-content/plugins/XYZ/css baz/wp-content/plugins/ABC baz/wp-content/plugins/ABC/inc baz/wp-content/plugins/ABC/inc/lib baz/wp-content/plugins/DEF bat/bar/foo/blog/wp-content/plugins/GHI ฉันต้องการคำสั่งที่จะกลับมา: XYZ ABC DEF GHI โดยพื้นฐานแล้วฉันกำลังมองหาโฟลเดอร์ที่อยู่ใน wp-content / plugins / การใช้findทำให้ฉันใกล้เคียงที่สุด แต่ฉันไม่สามารถใช้-maxdepthเพราะโฟลเดอร์แตกต่างจากที่ฉันค้นหา การรันสิ่งต่อไปนี้จะคืนค่าไดเรกทอรีลูกทั้งหมดซ้ำ find -type d -path *wp-content/plugins/* foo/bar/wp-content/plugins/XYZ foo/bar/wp-content/plugins/XYZ/js foo/bar/wp-content/plugins/XYZ/css baz/wp-content/plugins/ABC baz/wp-content/plugins/ABC/inc baz/wp-content/plugins/ABC/inc/lib baz/wp-content/plugins/DEF bat/bar/foo/blog/wp-content/plugins/GHI
13 bash  find  directory  ls 

2
เซิร์ฟเวอร์ Linux อัพเดทเคอร์เนลอย่างไรโดยไม่ต้องบูตเครื่องใหม่
ตามข้อมูลของฉันการอัพเกรดเคอร์เนล linux ต้องทำการรีบูต การรีบูตคอมพิวเตอร์ที่บ้านไม่ใช่ปัญหา แต่ฉันไม่คิดว่ามันเป็นสิ่งเดียวกันสำหรับเซิร์ฟเวอร์ เซิร์ฟเวอร์ที่ใช้ลีนุกซ์รุ่นบูทรีบูตหลังจากอัพเกรดเคอร์เนลหรือว่าพวกมันใช้กลอุบายบางอย่างเพื่อหลีกเลี่ยงการบูท ??

4
ฉันจะแยกอาร์กิวเมนต์ตัวเลือกในสคริปต์ทุบตีหากไม่มีการสั่งซื้อได้อย่างไร
ฉันสับสนวิธีรวมอาร์กิวเมนต์ / แฟล็กเผื่อเลือกเมื่อเขียนสคริปต์ทุบตีสำหรับโปรแกรมต่อไปนี้: โปรแกรมต้องการสองอาร์กิวเมนต์: run_program --flag1 <value> --flag2 <value> อย่างไรก็ตามมีแฟล็กเผื่อเลือกหลายรายการ: run_program --flag1 <value> --flag2 <value> --optflag1 <value> --optflag2 <value> --optflag3 <value> --optflag4 <value> --optflag5 <value> ฉันต้องการเรียกใช้สคริปต์ทุบตีเพื่อให้ได้อาร์กิวเมนต์ของผู้ใช้ หากผู้ใช้ป้อนเพียงสองอาร์กิวเมนต์ตามลำดับก็จะเป็น: #!/bin/sh run_program --flag1 $1 --flag2 $2 แต่จะเกิดอะไรขึ้นถ้ามีอาร์กิวเมนต์ตัวเลือกใด ๆ รวมอยู่ด้วย? ฉันคิดว่ามันจะเป็น if [ --optflag1 "$3" ]; then run_program --flag1 $1 --flag2 $2 --optflag1 $3 …

3
mv เป็นอะตอมบน fs ของฉันหรือไม่
ฉันจะตรวจสอบว่าmvอะตอมของ fs (ext4) ของฉันได้อย่างไร? ระบบปฏิบัติการคือ Red Hat Enterprise Linux Server รีลีส 6.8 โดยทั่วไปฉันจะตรวจสอบสิ่งนี้ได้อย่างไร ฉันได้ดูไปรอบ ๆ และไม่พบว่าระบบปฏิบัติการของฉันเป็น POSIX มาตรฐานหรือไม่
13 posix  mv  move 


2
ตามสมาร์ทฮาร์ดดิสก์ไม่เสียหาย แต่ฉันมีข้อผิดพลาดใน dmesg
บางครั้งฉันมีปัญหาแปลกในการบูตเครื่องคอมพิวเตอร์ของฉัน (ซึ่งทำงาน Debian) ดังนั้นฉันจึงออกคำสั่ง "dmesg" ในผลลัพธ์ที่ฉันเห็นข้อผิดพลาดมากมาย อย่างไรก็ตามเมื่อฉันรันการทดสอบ SMART เพิ่มเติมบนฮาร์ดดิสก์ (โดยใช้คำสั่ง "smartctl -t long / dev / sda") ผลลัพธ์ก็คือดิสก์ของฉันจะไม่เสียหาย อะไรคือสาเหตุของข้อผิดพลาดเหล่านั้น? นี่คือข้อผิดพลาด: (...) [ 505.918537] ata3.00: exception Emask 0x50 SAct 0x400 SErr 0x280900 action 0x6 frozen [ 505.918549] ata3.00: irq_stat 0x08000000, interface fatal error [ 505.918558] ata3: SError: { UnrecovData HostInt 10B8B …
13 hard-disk  smart 

4
จะใช้คำสั่ง "cat" บนเอาต์พุตของคำสั่ง "find" ได้อย่างไร
ฉันต้องการเปลี่ยนทิศทางเอาต์พุตของfindคำสั่งไปยังcatคำสั่งเพื่อให้ฉันสามารถพิมพ์ข้อมูลของไฟล์ที่กำหนด ดังนั้นสำหรับตัวอย่างเช่นถ้าผลลัพธ์ของการค้นหาเป็นแล้วแมวควรจะตีความว่าเป็น/aFile/readme cat ./aFile/readmeฉันจะทำสิ่งนั้นทันทีได้อย่างไร ฉันต้องใช้ท่อหรือไม่ ฉันลองรุ่นนี้: cat | find ./inhere -size 1033c 2> /dev/null แต่ฉันคิดว่ามันผิดอย่างสิ้นเชิงเหรอ? แน่นอนฉันแน่ใจว่าผลลัพธ์เป็นไฟล์เดียวเท่านั้นและไม่ใช่หลายไฟล์ ดังนั้นฉันจะทำอย่างไร ฉันค้นหาใน Google และไม่พบวิธีแก้ปัญหาอาจเป็นเพราะฉันค้นหาไม่ถูกต้อง: P
13 find  cat 

2
วิธีรับ pinentry-curses เพื่อเริ่มต้น tty ที่ถูกต้อง?
ฉันใช้gpg-agentสำหรับการจัดการทั้งอัตลักษณ์ของ PGP e SSH เอเจนต์เริ่มต้นด้วยสคริปต์เช่นนี้ gpg_agent_env="$XDG_CACHE_HOME/gpg-agent.env" export GPG_TTY="$(tty)" if ! ps -U "$USER" -o ucomm | grep -q gpg-agent; then eval "$({gpg-agent --daemon | tee $gpg_agent_env} 2> /dev/null)" else source "$gpg_agent_env" 2> /dev/null fi ซึ่งมีที่มาเมื่อใดก็ตามที่ฉันเรียกใช้เปลือกโต้ตอบ ทุกอย่างทำงานได้ดีกับการตั้งค่านี้ แต่มีปัญหา สมมติว่าฉัน: เปิดเทอร์มินัล (เรียกตัวแทนในพื้นหลัง) และเริ่มทำงาน หลังจากที่ในขณะที่เปิดสถานีที่สอง ดำเนินการที่ต้องป้อนวลีรหัสผ่านในเทอร์มินัลที่สอง ณ จุดนี้gpg-agentจะเริ่มpinentry-cursesพร้อมท์ข้อความรหัสผ่าน แต่จะทำเช่นนี้ในเทอร์มินัลแรกซึ่งส่งผลให้เอาต์พุตผสมกับสิ่งที่กำลังทำงานอยู่ (โดยปกติจะเป็นตัวแก้ไขข้อความ) โดยไม่มีวิธีการเริ่มโปรแกรมหรือหยุด pinentry (เริ่มใช้ …
13 tty  gpg  pinentry 

1
เรียกใช้แอปพลิเคชัน Mac OS X บน Linux
ตามบทความ Wikipedia นี้ : OS X เป็นชุดของระบบปฏิบัติการส่วนต่อประสานกราฟิกที่ใช้ Unix ซึ่งพัฒนาและทำการตลาดโดย Apple Inc. ดังนั้นฉันจึงคิดว่า: มีแอปพลิเคชันที่คล้ายกันกับWineแต่ใช้งานแอปพลิเคชัน Mac หรือไม่ เป็นไปได้ไหมที่จะใช้งานแอพพลิเคชั่น Mac OS X บนเครื่องLinux ?

3
เล่นคำบรรยายโดยอัตโนมัติด้วย mpv
ไฟล์คำบรรยายมีหลายรูปแบบตั้งแต่. srt ถึง. sub ถึง. ass และอื่น ๆ มีวิธีที่จะบอก mpv เพื่อค้นหาไฟล์คำบรรยายพร้อมกับไฟล์สื่อและถ้ามันจะเริ่มเล่นไฟล์โดยอัตโนมัติ ขณะนี้ฉันต้องทำอะไรแบบนี้ซึ่งอาจจะค่อนข้างยาวขึ้นอยู่กับชื่อไฟล์ - [$] mpv --list-options | grep sub-file (null) requires an argument --sub-file String list (default: ) [file] หวังว่าจะได้คำตอบ อัปเดต 1 - ภาพยนตร์ทั่วไปที่มี. srt (หรือตัวห้อย) [$] mpv Winter.Sleep.\(Kis.Uykusu\).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv (null) requires an argument Playing: Winter.Sleep.(Kis.Uykusu).2014.720p.BrRip.2CH.x265.HEVC.Megablast.mkv (+) Video --vid=1 (*) (hevc) …

2
เป็นไปได้ไหมที่จะกำหนดค่า bash ให้เติมข้อความอัตโนมัติด้วยหนึ่งแท็บอย่าง zsh?
ตามที่คนส่วนใหญ่รู้เมื่อใช้ bash ที่พรอมต์คำสั่งหากคุณพิมพ์ชื่อไฟล์คำสั่งหรือตัวเลือกให้กับคำสั่ง ฯลฯ บางส่วน bash จะทำคำให้สมบูรณ์หากมีหนึ่งตรงกันทั้งหมด เมื่อมีมากกว่าหนึ่งการแข่งขันคุณต้องกด<Tab>สองครั้งและทุบตีจะสร้างรายการการแข่งขันที่เป็นไปได้ ฉันต้องการที่จะกำหนดค่าทุบตีเพียงแค่ให้ตัวเลือกเหล่านั้นในครั้งแรก เป็นไปได้โดยไม่ต้องเขียนสคริปต์หรือไม่ เช่นตัวเลือกเปลือก?<Tab> man bash มีส่วน "การทำโปรแกรมให้เสร็จสมบูรณ์" แต่ฉันทำไม่ได้ถ้ามีตัวเลือกในการเปิดใช้งาน

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