Unix & Linux

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


8
จะเรียงลำดับคอลัมน์ตามบรรทัดแรกได้อย่างไร
ฉันต้องการเรียงลำดับคอลัมน์ของชุดข้อมูลที่มีขนาดใหญ่มาก (1,000 บรรทัดและ 700,000 คอลัมน์) ตัวอย่างเช่นคอลัมน์ของฉันถูกจัดเรียงแบบสุ่มเช่น: col1 col4 col3 col2 และฉันต้องเรียงลำดับนั้น ฉันลองใช้คำสั่งแล้ว แต่ไม่ประสบความสำเร็จ ตัวอย่าง: ID M2 M5 M8 M1 M3 M9 .....M7000000 Animal1 1 0 2 1 0 2 .....1 Animal2 0 1 2 0 1 1 .....0 Animal3 2 1 0 1 2 1 .....0 . . . . …

1
จะมีการแจ้งเตือนปกติผ่านแอปพลิเคชันแบบเต็มหน้าจอใน Gnome 3 ได้อย่างไร
ในเวิร์กโฟลว์ของฉันฉันใช้แอปพลิเคชันในโหมดเต็มหน้าจอเกือบตลอดเวลา ข้อเสียเปรียบอย่างเดียวที่ฉันมีคือวิธีที่ Gnome 3 จัดการการแจ้งเตือนบนเดสก์ท็อปฉันไม่สามารถรับการแจ้งเตือนปกติได้เฉพาะเมื่อฉันเปลี่ยนจากแอปพลิเคชันหนึ่งไปยังอีกแอปหนึ่งในเวลาที่ไม่ค่อยพบ การแจ้งเตือนของ Gnome 3 แสดงเฉพาะพวกเขาผ่านหน้าต่างเต็มหน้าจอเมื่อการแจ้งเตือนเป็นเรื่องเร่งด่วน แต่ไม่มี มีวิธีการสลับการแจ้งเตือนปกติเพื่อให้แสดงบนหน้าจอเต็มหรือไม่

3
ไวยากรณ์ที่ถูกต้อง“ $ {PS1-}” และแตกต่างจากธรรมดา“ $ PS1” อย่างไร
ฉันกำลังดูสคริปต์ที่มี: if [ "${PS1-}" ]; then การติดตามนั้นทำให้-ฉันรำคาญเล็กน้อยเพราะดูเหมือนว่าจะไม่ได้ Posix หรือ Bash ไวยากรณ์มาตรฐาน นี่คือไวยากรณ์ที่ซ่อนเร้นอยู่ตลอดกาลหรือเป็นตัวพิมพ์ผิด การอ้างอิงใด ๆ ถึงมาตรฐาน / เอกสารจะได้รับการชื่นชม ปกติฉันจะรหัสมัน if [ "$PS1" ]; then ข้อใดถูกกว่าหรือมีข้อแตกต่างระหว่างกัน

1
ฉันมี. bash_profile หลายชุดซึ่งเป็นชุดที่ใช้จริง (ถ้ามี)
ฉันคิดว่าในบางครั้งฉันทำให้ฉันสับสน.bash_profileและตอนนี้ฉันมีหลายอย่าง ฉันกำลังพยายามปรับแต่งเชลล์ของฉัน แต่ฉันไม่แน่ใจว่า.bash_profileจะใช้ถ้ามี ฉันคิดว่า.bashrcไฟล์ถูกใช้บ่อยกว่านี้ไหม? ฉันใช้ OSX - El Capitan ls -la | more total 480 -rw------- 1 Matthew staff 6404 Feb 16 23:57 .bash_history -rw-r--r-- 1 Matthew staff 719 Jan 19 20:18 .bash_profile -rw-r--r-- 1 Matthew staff 335 Oct 7 12:35 .bash_profile.macports-saved_2017-01-19_at_20:18:05 -rw-r--r-- 1 Matthew staff 167 Jul 16 2015 …
12 shell  bashrc 

1
ความผิดเพี้ยนที่ระดับเสียงสูงบนหูฟัง
ฉันสงสัยว่าจะมีวิธีกำจัดความบิดเบี้ยวของเสียงที่ระดับเสียงสูงบนหูฟังหรือไม่ เมื่อฉันบูตด้วย Linux กับ Windows ฉันมักจะบู๊ตเป็น Windows ก่อนที่จะทำการบูทกลับไปที่ Linux เพื่อแก้ไขปัญหาของฉันและไม่ผิดเพี้ยนในระดับที่สูงขึ้นของหูฟัง ตอนนี้ฉันเพิ่งมีเครื่องที่ใช้ Linux บนมันและดูเหมือนจะไม่สามารถหยุดเสียงจากการบิดเบือนในระดับที่สูงขึ้นเมื่อใดก็ตามที่ฉันเสียบหูฟังเพราะฉันเคยยุ่งกับปริมาณ alsa mixer pcm เปลี่ยนระดับเสียงของหูฟังใน alsamixer และยัง ลองใช้หูฟังแบบอื่น แม้ว่าฉันจะมีความผิดเพี้ยนที่จะหยุดโดยการปรับระดับเสียงของหูฟัง, มาสเตอร์หรือ pcm, เสียงก็มีแนวโน้มที่จะค่อนข้างอ่อนแอแม้ว่าฉันจะเปิดหูฟังของฉันไปจนสุด ฉันยังสงสัยด้วยว่าฉันต้องรอการอัปเดตเฟิร์มแวร์หรือเคอร์เนลหรือไม่เนื่องจากฉันใช้ฮาร์ดแวร์ที่ค่อนข้างใหม่ด้วยการ์ดเสียง Realtek ALC 295 หรือเพียงแค่เปลี่ยนการ์ดแม้ว่าฉันไม่แน่ใจว่าฉันควร ทำเช่นนี้หากมีวิธีที่ง่ายกว่าในการแก้ไขปัญหา ขอบคุณ!
12 linux  audio  alsa  pulseaudio 

2
การเจริญเติบโตของราก LVM
ฉันพยายามที่จะขยายรูทพาร์ติชัน LVM (บนลุค) ด้วย lvresize -L +5G -r /dev/vg/lv-root และพบว่าระบบไฟล์จะไม่เติบโตเพราะติดตั้งอยู่ ตอนนี้ฉันพบสิ่งนี้แล้ว https://ubuntuforums.org/showthread.php?t=1537569 ที่บอกว่าฉันควรบูตจากสิ่งอื่นและทำ resize2fs /dev/vg/lv-root <size> คำถามของฉันคือฉันสามารถละเว้นขนาดและปล่อยให้ระบบไฟล์เติมพาร์ติชันได้ (ซึ่งขยายได้สำเร็จก่อนหน้านี้) ฉันจะลอง แต่ก็กลัวว่าจะทำเรื่องยุ่ง ๆ การใช้ (จนถึงปัจจุบัน) Arch และระบบไฟล์ ext4
12 linux  debian  lvm 

3
วิธีการหยุดสคริปต์ในเวลาที่กำหนดจนกว่าจะเริ่ม cron อีกครั้ง?
ฉันมี Raspberry Pi ที่ใช้ OSMC อยู่ (Debian based) ฉันได้ตั้งค่างาน cron เพื่อเริ่มสคริปต์ sync.sh เมื่อเวลาเที่ยงคืน 0 0 * * * /usr/local/bin sync.sh ฉันต้องหยุดสคริปต์ตอนเจ็ดโมงเช้า ขณะนี้ฉันกำลังใช้: 0 7 * * * shutdown -r now มีวิธีที่ดีกว่า? ฉันรู้สึกว่าการรีบูตเครื่องเกินความจำเป็น ขอบคุณ
12 debian  cron  shutdown 

2
`du -s. 'และ` du -hs.' ให้ผลลัพธ์ที่แตกต่าง (บน OS X)
ความแตกต่างที่มีและไม่มี-hควรเป็นหน่วยที่มนุษย์อ่านได้ใช่ไหม เห็นได้ชัดว่าไม่มี ... $ du -s . 74216696 . $ du -hs . 35G . หรือบางทีฉันเข้าใจผิดและผลลัพธ์ที่du -s .ไม่ได้อยู่ในหน่วย KB?
12 osx  coreutils 

2
bluez: หูฟังบลูทู ธ ไม่สามารถเชื่อมต่อใหม่ได้หลังจากยกเลิกการเชื่อมต่อ
ฉันสามารถจับคู่หูฟังบลูทู ธ กับแล็ปท็อปของฉันได้หนึ่งครั้ง แต่เมื่อฉันถอดชุดหูฟังฉันไม่สามารถเชื่อมต่ออีกครั้งได้ วิธีเดียวที่ใช้ได้คือการรีสตาร์ทบลูทู ธ ภูต: service bluetooth restart เมื่อฉันทำเช่นนั้นฉันเห็นสิ่งต่อไปนี้ในบันทึกของฉัน: bluetoothd: Terminating bluetoothd: Stopping hci0 event socket bluetoothd: Stopping SDP server bluetoothd: Exit bluetoothd: Bluetooth daemon 4.99 bluetoothd: Starting SDP server bluetoothd: Excluding (conf) network bluetoothd: Excluding (conf) gatt_example bluetoothd: Excluding (conf) time bluetoothd: Excluding (conf) alert bluetoothd: Failed …

2
ทำไม `grep -v 'ถึงไม่ทำงานอย่างที่คาดไว้
ฉันมีปัญหาแปลก ๆ เกี่ยวกับgrep -vข้อความค้นหา ให้ฉันอธิบาย: ในการแสดงการเชื่อมต่อฉันใช้who: $ who harry pts/0 2016-12-08 20:41 (192.168.0.1) james pts/1 2016-12-08 19:28 (192.168.0.1) timothy pts/2 2016-12-08 02:44 (192.168.0.1) กระแสttyของเทอร์มินัลของฉันคือpts/0 $ tty /dev/pts/0 $ tty | cut -f3-4 -d'/' pts/0 grep -v $(tty | cut -f3-4 -d'/')ผมพยายามที่จะไม่รวมการเชื่อมต่อของตัวเองโดยใช้ ผลลัพธ์ที่คาดหวังของคำสั่งนี้ควรจะเป็นwhoโดยไม่ต้องเชื่อมต่อของฉัน อย่างไรก็ตามผลลัพธ์ไม่คาดคิดมากที่สุด: $ who | grep -v $(tty | …
12 command-line  grep  tty 

2
กลับมาไบนารีแทน html หรือไม่
ฉันใช้ wget เพื่อดาวน์โหลดหน้า html คงที่ เครื่องมือตรวจสอบ W3C บอกฉันว่าหน้านั้นเข้ารหัสใน UTF-8 แต่เมื่อฉันแมวไฟล์หลังจากดาวน์โหลดฉันได้รับพวงของไบนารีไร้สาระ ฉันใช้ Ubuntu และฉันคิดว่าการเข้ารหัสเริ่มต้นคือ UTF-8 นั่นคือสิ่งที่ไฟล์ภาษาของฉันดูเหมือนว่าจะพูด เหตุใดสิ่งนี้จึงเกิดขึ้นและฉันจะแก้ไขได้อย่างไร Content-Encoding: gzipนอกจากนี้ดูเหมือนว่า บางทีนี่อาจจะทำให้ต่าง นี่คือคำขอที่เรียบง่าย: wget https://www.example.com/page.html ฉันก็ลองทำเช่นนี้: wget https://www.example.com/page.html -q -O - | iconv -f utf-16 -t utf-8 > output.html ซึ่งส่งคืน: iconv: illegal input sequence at position 40 cat'ing ไฟล์คืนค่าไบนารีที่มีลักษณะดังนี้: l�?חu�`�q"�:)s��dġ__��~i��6n)T�$H�#���QJ ผลลัพธ์ของxxd output.html | …

1
ฉันจะหาเส้นทางแบบเต็มของโปรแกรมบนเส้นทางได้อย่างน่าเชื่อถือได้อย่างไร
ฉันต้องการค้นหาเส้นทางของโปรแกรมที่กำหนดในการPATHใช้เชลล์สคริปต์ เส้นทางที่จะต้องเป็นเส้นทางจริงเต็มรูปแบบของโปรแกรมซึ่งสามารถส่งผ่านต่อมาหนึ่งในexec*ฟังก์ชั่นที่ไม่ได้ค้นหาตัวเองเช่นPATHexecv มีโปรแกรมเช่นkillซึ่งมีให้เป็นโปรแกรมจริงและเชลล์ในตัวในเวลาเดียวกัน หากเป็นกรณีนี้ฉันต้องการเส้นทางแบบเต็มไปยังโปรแกรมจริง มีสาธารณูปโภคหลายอย่างที่สามารถหาโปรแกรมบนเป็นPATHตามที่ระบุไว้ในมาตรา 2.9.1.1 คำสั่งค้นหาและการดำเนินการของมาตรฐาน มีwhichซึ่งไม่ได้เป็นส่วนหนึ่งของมาตรฐานใด ๆ มันสามารถเป็นโปรแกรมปกติในบางระบบในขณะที่บางเชลล์ให้มันเป็น builtin ดูเหมือนว่าจะมีอยู่ในระบบและเชลล์ส่วนใหญ่ แต่เชลล์ที่มีเวอร์ชันในตัวก็แค่ส่งคืนชื่อของบิวด์อินแทนที่จะเป็นพา ธ ไปยังไฟล์ที่เรียกใช้งานได้ นอกจากนี้ยังไม่ได้มาตรฐานในทางใดทางหนึ่งและอาจส่งคืนผลลัพธ์ใด ๆ และใช้ตัวเลือกที่แตกต่างกัน bash# which kill /usr/bin/kill dash# which kill /usr/bin/kill fish# which kill /usr/bin/kill mksh# which kill /usr/bin/kill tcsh# which kill kill: shell built-in command. zsh# which kill kill: shell built-in command มีwhenceซึ่งเป็นในตัวของเปลือกหอยไม่กี่คน แต่ไม่สามารถใช้ได้กับกระสุนจำนวนมาก …
12 shell  path 

1
อ่านไฟล์ท้ายสุดเพื่อกู้คืนข้อมูล
ไฟล์. swp ที่เก่ามากย้อนกลับไฟล์ที่ฉันแก้ไขดังนั้นตอนนี้จึงสั้นลงอย่างมาก ฉันไม่ได้ทำสิ่งใดในไดเรกทอรีนั้นเลยดังนั้นไบต์ที่ตามหลังจุดสิ้นสุดของไฟล์ควรมีข้อมูลของฉันอยู่ ฉันสามารถใช้ฟังก์ชันใดเพื่ออ่าน N ไบต์จากที่อยู่หน่วยความจำที่ให้ไว้ ddและreadหยุดที่ขอบเขตไฟล์เว้นแต่ฉันจะพลาดตัวเลือก ขนาดไฟล์ปัจจุบันคือ 3.2 KB ฉันจำไม่ได้ว่าไฟล์มีขนาดใหญ่เพียงใดก่อนที่จะถูกตัดทอน แต่อาจไม่เกิน 10 KB ฉันจะอ่าน 10 KB จากจุดเริ่มต้นของไฟล์โดยไม่สนใจขอบเขตไฟล์ได้อย่างไร มันก็ดีถ้าข้อมูลไม่ได้ถูกเก็บรักษาไว้อย่างสมบูรณ์ตราบใดที่ฉันไม่ต้องเริ่มต้นจากศูนย์

1
เหตุใดฉันจึงได้รับข้อความแสดงข้อผิดพลาดเมื่อพยายามดักจับสัญญาณ SIGINT
ฉันใช้งานสคริปต์ด้านล่างเพื่อดาวน์โหลดไฟล์จากเซิร์ฟเวอร์โดยอัตโนมัติโดยใช้ lftp มันทำงานยกเว้นว่าเมื่อมันทำงานฉันได้รับข้อความแสดงข้อผิดพลาด trap: SIGINT: bad trap ถ้าฉันแทนที่ SIGINT และ SIGTERM ด้วย INT และ TERM มันจะทำงานได้ แต่ฉันไม่รู้ว่ามันจะบรรลุวัตถุประสงค์เดียวกันหรือไม่ นี่คือบน Linux Debian 4.9.2-10 #!/bin/sh login="login" pass="password" host="server.server.com" remote_dir='~/remote/dir' local_dir="/local/dir" base_name="$(basename "$0")" lock_file="/tmp/$base_name.lock" trap "rm -f $lock_file" SIGINT SIGTERM if [ -e "$lock_file" ] then echo "$base_name is running already." exit else touch …
12 shell  trap 

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