Unix & Linux

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

4
แจ้งให้ผู้ใช้ล็อกอินเป็นรูทเมื่อรันเชลล์สคริปต์
ปัญหาที่ฉันได้รับคือเมื่อฉันป้อนคำสั่ง su - root ที่จุดเริ่มต้นของไฟล์เชลล์สคริปต์ของฉันจะแจ้งให้ผู้ใช้ป้อนรหัสผ่านและจากนั้นจะไม่ดำเนินการกับสคริปต์เชลล์ส่วนที่เหลือต่อไป ฉันต้องค้นหาด้วยตนเองและเรียกใช้เชลล์สคริปต์ผ่านเทอร์มินัล ฉันต้องการสคริปต์เพื่อให้แน่ใจว่าผู้ใช้เข้าสู่ระบบในฐานะ root แล้วดำเนินการต่อกับส่วนที่เหลือของสคริปต์เชลล์ กล่าวอีกนัยหนึ่งฉันต้องการเรียกใช้สคริปต์ในฐานะผู้ใช้ใด ๆ แต่ทันทีที่สคริปต์เริ่มดำเนินการผู้ใช้จะต้องเปลี่ยนเป็นรูทแล้วดำเนินการต่อโดยใช้สคริปต์ที่เหลือเป็นรูทจนกว่าจะเสร็จ สามารถทำได้หรือไม่

7
วิธีค้นหาไฟล์ที่มีการตั้งค่าแอตทริบิวต์ที่ไม่เปลี่ยนรูปแบบ?
สำหรับเหตุผลการตรวจสอบการกำหนดค่าฉันต้องการค้นหาไฟล์ระบบ ext3 ของฉันเพื่อหาไฟล์ที่มีชุดคุณลักษณะที่ไม่เปลี่ยนรูปแบบ (ผ่านchattr +i) ฉันไม่พบตัวเลือกใด ๆfindหรือคล้ายกันที่ทำสิ่งนี้ ณ จุดนี้ฉันเกรงว่าฉันจะต้องเขียนสคริปต์ของตัวเองเพื่อแยกวิเคราะห์lsattrผลลัพธ์สำหรับแต่ละไดเรกทอรี มียูทิลิตี้มาตรฐานที่ให้วิธีที่ดีกว่าหรือไม่?
17 find  ext3 

3
tee stdout ถึง stderr?
ฉันต้องการส่ง stdout จากกระบวนการหนึ่งไปยัง stdin ของกระบวนการอื่น แต่ก็รวมถึงคอนโซลด้วย ยกตัวอย่างเช่นส่ง stdout ไปที่ stdout + stderr ตัวอย่างเช่นฉันได้git editนามแฝงต่อไปนี้: git status --short | cut -b4- | xargs gvim --remote xargsฉันต้องการรายการชื่อไฟล์จะถูกส่งไปยังหน้าจอเช่นเดียวกับการ ดังนั้นมีteeยูทิลิตี้เหมือนที่จะทำเช่นนี้? เพื่อให้ฉันสามารถทำสิ่งที่ชอบ: git status --short | \ cut -b4- | almost-but-not-quite-entirely-unlike-tee | \ xargs gvim --remote

4
ประโยชน์ของการใช้ที่อยู่ IP หลายแห่งบนเซิร์ฟเวอร์คืออะไร
ด้วยifconfigผมสามารถที่จะกำหนดค่าที่อยู่ IP หลายบนการ์ดอินเตอร์เฟซเครือข่ายเดียว เหตุใดฉันจึงต้องการทำเช่นนั้นและฉันจะใช้ที่อยู่หลายแห่งในภายหลังได้อย่างไรเช่นซอฟต์แวร์ทราบได้อย่างไรว่าควรใช้ที่อยู่ใด ฉันใช้เครือข่ายอินเทอร์เฟซกับที่อยู่ IP เดียวเท่านั้น
17 networking  ip 

1
`sshfs -oworkaround = rename` ทำอะไร?
สำหรับคลาสระบบปฏิบัติการที่ฉันเรียนฉันต้องเรียกใช้ Freebsd5.4 ตั้งแต่ฉันไม่ต้องการที่จะต่อสู้กับความพยายามที่จะสร้างคอมไพล์อยู่กับรุ่นของ BSD ปล่อยออกมาก่อนคอมไพล์ได้รับการปล่อยตัวผมคิดว่ามันจะเรียบร้อยจะใช้จากประตูชัยเหนือgitsshfs ฉันพบวิธีแก้ปัญหาที่แนะนำฉันให้sshfsตัวเลือก-o workaround=renameไม่ว่าด้วยวิธีใดก็ตาม ดูเหมือนว่าจะgitมีความสุข แต่ฉันค่อนข้างสับสนว่าเกิดอะไรขึ้น ... หน้าคนทั้งหมดพูดเกี่ยวกับวิธีแก้ปัญหาคือ fix renaming to existing file แต่ฉันก็งงกับสิ่งที่แปลว่า ... ตัวเลือกนั้นทำอะไรกันแน่
17 sshfs 

2
อาร์กิวเมนต์ '-v' และ '-x' หมายถึงการทุบตีอย่างไร
ฉันได้เห็นเชลล์สคริปต์สองสามตัวด้วย shebang ต่อไปนี้ #!/bin/bash -x -v แต่man bashไม่ได้อธิบายสิ่งที่ขัดแย้งเหล่านี้-xและ-vยืนถ้าพวกเขาจะเป็นของbashที่ทุกคน ดังนั้นสิ่งเหล่านั้น-xและ-v(และข้อโต้แย้งที่เป็นไปได้อื่น ๆ ) หมายความว่าอย่างไร
17 bash  shebang 

2
tmux: เซสชันที่แชร์, ผู้ใช้หนึ่งคนในบานหน้าต่าง, อีกคนหนึ่งในบานหน้าต่างอื่น, เคอร์เซอร์สองตัวที่แตกต่างกัน
ฉันตัดสินใจลอง tmux: ได้อ่านเอกสารและ googling ไปรอบ ๆ พยายามหาวิธีที่จะให้ผู้ใช้สองคนแบ่งปันเซสชันโดยใช้เคอร์เซอร์ที่แตกต่างกัน อย่างไรก็ตามการให้สิทธิ์ 777 กับซ็อกเก็ตหรือสร้างกลุ่มchgrpไอเอ็นจีซ็อกเก็ตและการเพิ่มผู้ใช้ทั้งสองดูเหมือนว่าจะอนุญาตให้ใช้ซ็อกเก็ตเดียวกันเพื่อแชร์เซสชันด้วยเคอร์เซอร์เดียว: ผู้ใช้ทั้งสองสามารถเขียนได้ ตำแหน่งเคอร์เซอร์เดียวกัน ตอนนี้ผู้ใช้ทั้งสองอยู่ในโฮมเซิร์ฟเวอร์เดียวกันกับ ssh และแนวคิดก็คือจะต้องมี: เทอร์มินัลใน a สมมุติว่าบานหน้าต่างด้านซ้ายซึ่งฉันสามารถพิมพ์คำสั่งได้ เทอร์มินัลอื่นในบานหน้าต่างด้านขวาซึ่งฉันสามารถเห็นผู้ใช้อื่นพิมพ์คำสั่งในเทอร์มินัลของเขา สิ่งเดียวกันสำหรับผู้ใช้อื่น ๆ สิ่งที่ฉันกำลังทำอยู่ในขณะนี้คือการใช้สองเซสชัน (ไม่แบ่งปัน) และ a script -fและtail -fชุดค่าผสมที่ทำงานเพื่ออ่านจังหวะสำคัญของกันและกัน แต่ฉันคิดว่าอาจจะมีวิธีการทำสิ่งนี้โดยใช้ความสามารถในการแบ่งปัน tmux มีวิธีที่จะทำให้แนวคิดนี้ทำงานร่วมกับการสนับสนุนการเขียนในเทอร์มินัลของอีกฝ่ายหรือไม่? วิธีที่ดีกว่าในการทำเช่นนี้คืออะไร?

3
rsyslog ไม่ได้เข้าสู่ระบบ
นี่เป็นปัญหาแปลก ๆ ฉันกำลังทดสอบบริการ chrony / ntp บน RHEL7 VM และกำลังรีเซ็ตเวลาเช่นเดียวกับโฮสต์ เมื่อฉันพอใจกับมันฉันตรวจสอบ/var/log/messagesและรู้ว่ามันไม่ได้เปลี่ยนไปในขณะที่ ตอนนี้ไม่ว่าสิ่งที่ฉันทำอะไรจะถูกบันทึกยกเว้นเมื่อฉันเริ่มบริการ rsyslog เอง; เมื่อฉันฉันจะได้รับสิ่งนี้: Apr 15 13:59:43 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2847" x-info="http://www.rsyslog.com"] exiting on signal 2. Apr 15 13:59:59 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2853" x-info="http://www.rsyslog.com"] start Apr 15 14:00:11 mymachine1 rsyslogd-3000: sd_journal_get_cursor() failed: 'Cannot assign requested …

4
Arch Linux ไม่ได้เชื่อมต่อกับ Wifi อีกต่อไป
ฉันใช้ Arch Linux มามากกว่าหนึ่งเดือนแล้ว ฉันเคยwifi-menuเชื่อมต่อกับเครือข่ายไร้สายของฉัน ฉันรันคำสั่งทุกครั้งที่เปิดแล็ปท็อป wifi-menu ให้ข้อผิดพลาดนี้เสมอเมื่อพยายามเชื่อมต่อ: Job for netctl@HelloWorld.service failed. See 'systemctl status netctl@HelloWorld.service' and 'journalctl -xn' for details. ปัญหาก็คืออินเทอร์เฟซของฉันขึ้นทุกครั้งที่ฉันเริ่ม ดังนั้นฉันจึงใช้อินเทอร์เฟซนี้ลง: ip link set down wlp2s0 wlp2s0เป็นชื่อของส่วนต่อประสานและHelloWorldเป็น SSID ของเครือข่าย Wifi ของฉัน ครั้งนี้มันไม่ได้เชื่อมต่อกับเครือข่ายโดยไม่คำนึงถึงการใส่อินเตอร์เฟซลง มันทำให้ฉันมีข้อผิดพลาดเดียวกันที่อธิบายไว้ข้างต้น นี่คือผลลัพธ์ของsystemctl status netctl@HelloWorld.service: netctl@HelloWorld.service - Networking for netctl profile HelloWorld Loaded: loaded (/usr/lib/systemd/system/netctl@.service; static) Active: …

3
การเพิ่มคอลัมน์ของค่าในไฟล์ที่คั่นด้วยแท็บ
ฉันจะเพิ่มคอลัมน์ของค่าในไฟล์ที่มีจำนวนแถวที่แน่นอนได้อย่างไร ฉันมีไฟล์อินพุตดังนี้: ไฟล์อินพุต: SPATA17 1 217947738 LYPLAL1 1 219383905 FAM47E 4 77192838 SHROOM3 4 77660162 SHROOM3 4 77660731 SHROOM3 4 77662248 ไฟล์ที่ส่งออก: SPATA17 1 217947738 file1 LYPLAL1 1 219383905 file1 FAM47E 4 77192838 file1 SHROOM3 4 77660162 file1 SHROOM3 4 77660731 file1 SHROOM3 4 77662248 file1 ในกรณีนี้ฉันต้องการเพิ่มคอลัมน์ของค่าจนถึงจำนวนแถวในไฟล์ค่ายังคงสอดคล้องเช่น "file1" เหตุผลคือฉันมี 100 …

6
ลบ 1 จากชื่อไฟล์ทั้งหมด (เปลี่ยนชื่อ) ในไดเรกทอรี
ฉันมีไดเรกทอรีซึ่งมีไฟล์รูปภาพที่มีชื่อเช่น image1.jpg image2.jpg image3.jpg ... น่าเสียดายที่ชื่อภาพจะต้องเป็นศูนย์ดังนั้นimage1.jpgควรเป็นimage0.jpgเช่นimage2.jpgนั้นควรเป็นimage1.jpgเช่นนั้น ฉันสามารถเขียนสคริปต์เพื่อสร้างคำสั่ง mv เช่นนี้วางไว้ในเชลล์สคริปต์แล้วดำเนินการ - mv image1.jpg image0.jpg mv image2.jpg image1.jpg mv image3.jpg image2.jpg ... แต่ฉันคิดว่ามันมีทางเลือกที่น่าสนใจที่จะทำใน Unix แล้วมันคืออะไร

3
ฉันไม่สามารถเข้าสู่ระบบด้วยรูทด้วยคำสั่ง su แต่ใช้กับ SSH
เป็นไปได้อย่างไรที่ฉันไม่สามารถเข้าสู่ระบบในฐานะ root โดยsu rootหรือsu(ฉันได้รับข้อผิดพลาดรหัสผ่านไม่ถูกต้อง) แต่ฉันสามารถเข้าสู่ระบบด้วยssh root@localhostหรือssh root@my_local_IPด้วยรหัสผ่านเดียวกันได้หรือไม่ ฉันใช้ CentOS 6.4 อัปเดต 1 : cat /etc/pam.d/su ให้: #%PAM-1.0 auth sufficient pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in …

2
เขียนบรรทัดไปยังไฟล์จากน้อย
ในขณะที่vimฉันสามารถเขียนช่วงของบรรทัดจากไฟล์ที่ฉันกำลังดูไปยังไฟล์อื่น ตัวอย่างเช่น, :1,10 w outfile.txt จะเขียนบรรทัดที่ 1 ถึง 10 ถึง outfile.txt ฉันสามารถทำเช่นเดียวกันในขณะที่ฉันกำลังดูไฟล์โดยใช้lessหรือไม่?
17 less  stdout 

1
แท็บเสร็จสมบูรณ์ของ“ ../” ใน zsh
ในทุบตีฉันสามารถใช้แท็บเสร็จสิ้นเพื่อย้ายไดเรกทอรีหนึ่งขึ้นและลงอีกเส้นทางอื่น ตัวอย่างเช่นสมมติว่าผมอยู่ใน$HOME/folder1และฉันต้องการที่จะไปcd เพียง แต่มีสองไดเรกทอรีเด็กและ$HOME/folder2$HOMEfolder1folder2 ในทุบตีฉันสามารถพิมพ์ cd ..[TAB]f[TAB]2 $HOME/folder2และจะจบลงใน ในการติดตั้ง zsh ใหม่ของฉันการกดcd ..[TAB]สร้างรายการของไดเรกทอรีลูกเหล่านั้น$HOME/folder1ซึ่งมีสอง.ในชื่อของพวกเขา มีวิธีง่ายๆในการรับพฤติกรรมที่ฉันคุ้นเคยหรือไม่? หรือมีบางสิ่งที่ง่ายกว่าในการบรรลุสิ่งที่ฉันต้องการใน zsh?

2
แทนที่ backtick ด้วย $ () ไม่ทำงาน
ฉันมีสคริปต์เก่าที่ฉันพยายามอัปเดต บางส่วนของรหัสควบแน่นไปที่: export X=`(echo "abc"; echo "def")` echo $X ซึ่งให้ผลลัพธ์ที่คาดหวัง: abc def ตอนนี้อินเทอร์เน็ตบอกฉันว่า backticks ออกมา$()เป็นสิ่งที่ฉันต้องการใช้ แต่เมื่อฉันลอง: export X=$((echo "abc"; echo "def")) X ไม่ได้ตั้งค่าและฉันได้รับข้อผิดพลาด: bash: echo "abc"; echo "def": syntax error: invalid arithmetic operator (error token is ""abc"; echo "def"") ผมทำอะไรผิดหรือเปล่า?
17 bash 

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