Unix & Linux

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

1
ฉันจะเรียกใช้คุณสมบัติการล็อกของสกรีนเซฟเวอร์โดยใช้ D-BUS จากบรรทัดคำสั่งได้อย่างไร
ฉันจะทริกเกอร์โปรแกรมรักษาหน้าจอด้วยตนเองจากบรรทัดคำสั่งได้อย่างไร ฉันใช้ GNOME 3.8.4 กับ Fedora 19 แต่โซลูชันไม่ควรเจาะจงเฉพาะกับ distro นี้

2
วิธีการรีเฟรชหรือโหลด rc.conf ในตัวจัดการไฟล์เรนเจอร์?
ในขณะที่ฉันกำลังเปลี่ยนแปลงrc.confและrifle.confไฟล์อยู่ตลอดเวลา แต่ทุกครั้งที่ฉันต้องการทดสอบการกำหนดค่าใหม่ฉันต้องออกจากแรนเจอร์และเริ่มต้นใหม่อีกครั้ง มีวิธีแก้ปัญหาสำหรับเรื่องนี้หรือไม่? ในกลุ่มฉันใช้:source ~/.vimrcเพื่อโหลดไฟล์การกำหนดค่าใหม่ แต่มันไม่ทำงานในเรนเจอร์
11 ranger 

2
คุณผ่านโหมด VGA / VESA ด้วย GRUB2 ได้อย่างไร
หนึ่งในเครื่องของฉันมีการตั้งค่า HD 3 TB เพื่อบูตสามครั้งเป็น Mint 14 (ตัวแปร Ubuntu 12.10), Slackware 14.1 และ Arch Linux HD ถูกฟอร์แมตโดยใช้ระบบ GPT / Guid เทคนิคของ Grub2 "เป็นของ" ในการติดตั้ง Linux Mint แต่ใช้สำหรับการบูตสามระบบทั้ง 3 ระบบ การตั้งค่าเมื่อประมาณ 1 ปีที่ผ่านมาเป็นขั้นตอนที่เจ็บปวดอย่างยิ่งและต้องใช้เวลา 2-3 วันในการต่อสู้กับมันและปรับแต่งมันเพื่อให้มันจดจำการติดตั้ง Slackware และ Arch; มันรู้จักการติดตั้ง Mint Linux อย่างง่ายดายเสมอ ฉันต้องสามารถผ่านโหมด VGA / VESA ไปยัง Slackware และ Arch ฉันใช้ …

1
ล้างบรรทัดพรอมต์เก่าในทุบตีเพื่อประหยัดพื้นที่เลื่อน
ชุดรูปแบบเทอร์มินัลของฉันเคยเป็นเช่นนี้ แต่ฉันคิดว่าพรอมต์เสียพื้นที่มากมาย และต่อมาฉันก็มีความคิดว่าฉันสามารถทำความสะอาดพรอมต์ทุกครั้งที่ฉันมีคำสั่ง ฉันใช้ทุบตีวิธีหนึ่งคือใช้preexec_invoke_execฟังก์ชั่น ฉันใช้คำสั่งต่อไปนี้เพื่อทำความสะอาดตัวอักษรพรอมต์ล่าสุด: echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m" เพื่อให้เครื่องนั้นสะอาดมากเช่นนี้ แต่ตอนนี้ปัญหาของฉันจะมีปัญหาถ้าผมต้องการที่จะใช้คำสั่งหลายในหนึ่งบรรทัดfor i in ...กล่าวว่าเมื่อผมใช้ นี่คือเวอร์ชั่นเต็มของฟังก์ชั่นใน. bashrc ของฉัน preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; } preexec_invoke_exec () { [ -n "$COMP_LINE" ] && return # do nothing …
11 bash  shell  terminal  prompt 

3
มันจะดีกว่าที่จะตั้งกฎใน ip6tables หรือปิดการใช้งาน ipv6?
ฉันมีการกำหนดค่าเครือข่ายต่อไปนี้: # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09 inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:858600 errors:0 dropped:0 overruns:0 frame:0 TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0 collisions:0 txqueuelen:1000 RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB) lo Link encap:Local Loopback inet …
11 iptables  ipv6 

2
ใบสั่งเอาท์พุทที่มีการทดแทนกระบวนการ
นี่คือสิ่งที่ฉันมักจะทำเพื่อเรียกใช้grepและwcบนไฟล์โดยไม่ต้องสแกนสองครั้ง <file.txt tee >(grep LITERAL) >(wc -l) >/dev/null อย่างไรก็ตามอัตราผลตอบแทนนี้ EXEC LITERAL 32 บางครั้งและ 32 EXEC LITERAL ในเวลาอื่น ๆ (เอาต์พุตจากgrepนำหน้าเอาต์พุตจากwcในอินสแตนซ์แรกและกลับกันในวินาที) ในขณะที่มีการเปลี่ยนเส้นทางและอธิบายไฟล์ { { <file.txt tee /dev/fd/3 | grep LITERAL >&4; } 3>&1 | wc -l ;} 4>&1 ฉันมักจะได้รับเสมอ EXEC LITERAL 32 ฉันชอบที่คำสั่งเอาท์พุทสามารถคาดเดาได้ แต่รับประกันด้วยแนวทางที่สองหรือไม่?

4
ผ่านฟังก์ชั่นไปยังผู้ใช้คนอื่นใน Bash?
มีวิธีใดบ้างที่ฉันสามารถส่งผ่าน Function จากผู้ใช้รายหนึ่งไปยังผู้ใช้รายอื่น? ตัวอย่างเช่นฉันมีสคริปต์ Bash ขนาดเล็กที่ฉันเรียกใช้เป็นรูต: #!/bin/bash user_func(){ whoami exit } su vagrant -c 'user_func' อย่างไรก็ตามฟังก์ชั่น user_func ไม่ได้ถูกกำหนดไว้สำหรับผู้ใช้ Vagrant เฉพาะสำหรับรูทและไม่สามารถดำเนินการได้ ตัวเลือกอื่นของฉันจะมีหลายบรรทัด su vagrant -c 'cmd1' su vagrant -c 'cmd2' , etc หรือดำเนินการหลายคำสั่งเช่น: su vagrant -c 'cmd1; cmd2; cmd3;'แต่ฉันไม่ต้องการมีส่วนเกินโดยเฉพาะเมื่อพยายามเรียกใช้คำสั่งมากกว่า 5 คำสั่งในฐานะผู้ใช้ Vagrant เป็นไปได้ไหมที่จะส่ง Function ให้กับผู้ใช้รายอื่นจากภายในสคริปต์เดียวกัน (เช่นไม่ได้สร้างสคริปต์บนดิสก์ในฐานะผู้ใช้รายอื่นแล้วเรียกใช้งานสคริปต์ที่สร้างขึ้น) หรือมีตัวเลือกอื่นที่ฉันสามารถมองเห็นได้?
11 bash 

3
การกำหนดเวอร์ชันไฟล์ Linux?
เรากำลังย้ายจากสภาพแวดล้อม A VMS ไปเป็นสภาพแวดล้อม Linux สำหรับเซิร์ฟเวอร์อัลฟ่าเก่าที่เรากำลังรื้อถอน ความท้าทายอย่างหนึ่งที่ฉันไม่สามารถเอาชนะได้คือการกำหนดเวอร์ชันไฟล์ VMS เก็บไฟล์เดียวกันหลายสำเนาโดยใช้การตั้งค่าสถานะรุ่น ฉันได้พบตัวเลือกมากมายในแหล่งข้อมูลปลอม แต่ฉันไม่พบใครที่มีประสบการณ์กับสิ่งเหล่านี้ในสภาพแวดล้อมการผลิตที่สำคัญ reson นี้จำเป็นเพราะฟีดจากระบบอื่น ๆ ไม่ได้ใช้ชื่อไฟล์ที่ไม่ซ้ำกันในการพิจารณา เราพยายามรักษาขอบเขตของเราให้เบาที่สุดเท่าที่จะทำได้ ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก 2 รายการหลักที่ปรากฏว่ามีให้บริการ ได้แก่ : ทางกลับ EtcKeeper - ไม่แน่ใจว่าคุณสามารถใช้กับไดเรกทอรีเดียวหรือหลายรายการ มีใครใช้สิ่งเหล่านี้ในสภาพแวดล้อมขององค์กรหรือไม่ มีตัวเลือกอื่น ๆ ที่ฉันควรพิจารณาหรือไม่

6
สคริปต์เพื่อแยกรายการที่เลือกจากไฟล์ bibtex
ฉันมีไฟล์ bibtex ขนาดใหญ่ที่มีหลายรายการที่แต่ละรายการมีโครงสร้างทั่วไป @ARTICLE{AuthorYear, item = {...}, item = {...}, item = {...}, etc } (ในบางกรณีARTICLEอาจเป็นคำอื่นเช่นBOOK) สิ่งที่ฉันต้องการจะทำคือเขียนสคริปต์ง่ายๆ (โดยเฉพาะอย่างยิ่งสคริปต์ shell) เพื่อแยกรายการที่มี AuthorYear ที่กำหนดและใส่ลงในไฟล์. ibib ใหม่ ฉันสามารถจินตนาการได้ว่าฉันสามารถจำประโยคแรกของรายการโดย AuthorYear และประโยคสุดท้ายด้วยการปิดครั้งเดียว}และอาจใช้sedเพื่อแยกรายการ แต่ฉันไม่รู้วิธีการทำสิ่งนี้อย่างแท้จริง มีคนบอกฉันได้ไหมว่าฉันจะทำสิ่งนี้ได้อย่างไร มันน่าจะเป็นอะไรซักอย่าง sed -n "/AuthorYear/,/\}/p" file.bib แต่นั่นจะหยุดเนื่องจากการปิด}ในรายการแรกของรายการจึงให้ผลลัพธ์นี้: @ARTICLE{AuthorYear, item = {...}, ดังนั้นฉันจึงจำเป็นต้องรู้ว่า}ตัวละครตัวนี้เป็นตัวเดียวในบรรทัดหรือไม่และมีเพียง 'sed' ที่จะหยุดอ่านเมื่อเป็นกรณีนี้

2
ฉันจะติดตามไฟล์ประมวลผลที่สร้างโดยผู้ใช้ของฉันบน Linux ได้อย่างไร
ใช้ Linux ฉันต้องการติดตามไฟล์ที่เรียกใช้งานในชื่อของฉันรวมถึงบรรทัดคำสั่งทั้งหมด (ในทางปฏิบัติทุก ๆ exec * () ทำในฐานะผู้ใช้ของฉันเอง) ควรมีโปรแกรมที่ฉันไม่ได้ควบคุมเพื่อจัดการงานเพื่อดำเนินการโปรแกรมที่ฉันผ่าน แต่ฉันต้องการให้แน่ใจว่ามันทำเช่นนั้นและตัวเลือกที่ใช้ โปรแกรมที่ฉันไม่ควบคุมนั้นดูถูกและดูเหมือนว่าจะเปลี่ยนพฤติกรรมขึ้นอยู่กับชื่อของโปรแกรมที่ควรจะเรียกใช้งานดังนั้นฉันจึงไม่สามารถส่งผ่านเชลล์สคริปต์ที่จะบันทึกข้อมูลและเรียกใช้งานจริง โปรแกรม. เป็นไปได้หรือไม่ที่ฉันจะได้รับแจ้งให้ทราบถึงการดำเนินการทั้งหมด * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * …

2
CapsLock เป็นคีย์ตัวดัดแปลงสำหรับแอปพลิเคชันคีย์แม็พ
ฉันเป็นนักพัฒนาและขณะนี้ฉันกำลังใช้ Ubuntu Linux กับ PyCharm IDE สำหรับการพัฒนาเว็บไซต์ เพื่อปรับปรุงประสิทธิภาพการพิมพ์ฉันพิจารณาเปลี่ยน CapsLock เป็น Hyper_L และกำหนดให้ mod3 โดยใช้ xmodmap หลังจากนี้ฉันต้องการแมป mod3 สำหรับปุ่ม 'i' ถึง 'Up' จนถึงสิ่งที่ฉันทำคือ: xmodmap -e "keysym Caps_Lock = Hyper_L" ผลลัพธ์เป็นเช่นนี้: shift Shift_L (0x32), Shift_R (0x3e) lock Hyper_L (0x42) control Control_L (0x25), Control_R (0x69) mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd) mod2 …
11 x11  keyboard  xkb  xmodmap 

3
เหตุใด top และ ps จึงแสดง PID ที่แตกต่างกันสำหรับกระบวนการเดียวกัน
เมื่อฉันเรียกใช้top -Hฉันเห็นว่าหลายmysqlเธรดของฉันทั้งหมดมี PID เดียวกัน อย่างไรก็ตามในps -eLfฉันเห็นแต่ละคนมี PID ที่แตกต่างกัน: ps -eLf UID PID PPID LWP C NLWP STIME TTY TIME CMD mysql 1424 1 1424 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld mysql 1424 1 1481 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld mysql 1424 1 1482 0 17 18:41 ? 00:00:00 /usr/sbin/mysqld …

3
เปลี่ยนเส้นทางเอาต์พุตจากคำสั่งทั้งหมดไปยังไฟล์ไม่ใช่เพียงครั้งสุดท้าย
ฉันต้องการเพิ่มส่วนหัวในไฟล์ที่มี echo จากนั้นใช้คำสั่งเพื่อสร้างไฟล์ที่เหลือ หมายความว่าฉันจะใช้สองคำสั่งแยกกัน ฉันจะเขียนเอาต์พุตจากคำสั่งทั้งสองไปยังไฟล์ที่มีการเปลี่ยนเส้นทางได้อย่างไร ฉันพยายามแล้ว echo "header line" | cut -c 1-5 input_file > output_file echo "header line"; cut -c 1-5 input_file > output_file นี่จะเปลี่ยนเส้นทางเอาต์พุตจากคำสั่ง cut เท่านั้น คำสั่งต่อไปนี้ใช้งานได้ แต่รู้สึกเงอะงะ: echo "header line" > output_file; cut -c 1-5 input_file >> output_file วิธีที่ชาญฉลาดในการแก้ปัญหาของฉันคืออะไร?

1
git มีข้อมูลเกี่ยวกับ id ที่ใช้ / กลุ่มที่มีการเปลี่ยนแปลงหรือไม่?
ฉันมี googling สักครู่ แต่ไม่สามารถหาข้อมูลดังกล่าวได้ ดูเหมือนว่าคอมไพล์ไม่มีผู้ใช้และกลุ่มเท่านั้นสิทธิ์ ฉันถูกไหม?
11 git 


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