Unix & Linux

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

3
วิธีเปิดใช้เชลล์สคริปต์ด้วยดับเบิลคลิกใน CentOS 7
ฉันต้องสามารถรันเชลล์สคริปต์ที่เรียกใช้งานได้ ( sh) ด้วยการดับเบิลคลิก ฉันตั้งค่าการปฏิบัติธงในสิทธิ์สำหรับไฟล์และเมื่อฉันดับเบิลคลิกที่มันมันจะเปิดขึ้นในโปรแกรมแก้ไขข้อความ ฉันไม่มีตัวเลือกใด ๆ ใน UI ของฉันภายใต้เมนูคุณสมบัติไฟล์เพื่อใช้คำสั่งที่กำหนดเองหรืออะไรก็ได้ จะแสดงเฉพาะแอปพลิเคชั่นต่างๆที่ติดตั้ง ฉันแค่อยากให้มันทำงานไม่มีอะไรเพิ่มเติม ฉันจะทำสิ่งนี้ได้อย่างไร

4
ลบรายการที่ซ้ำกันออกจากไฟล์ CSV
ฉันมีไฟล์ [csv] ซึ่งมีการพิมพ์ซ้ำข้อมูลเช่นข้อมูลเดียวกันที่พิมพ์สองครั้ง ฉันได้ลองใช้uniq ของ sort โดยที่sort myfile.csv | uniq -uไม่มีการเปลี่ยนแปลงmyfile.csvและฉันได้ลองแล้วsudo sort myfile.csv | uniq -uแต่ก็ไม่แตกต่างกัน ดังนั้นปัจจุบันไฟล์ csv ของฉันมีลักษณะเช่นนี้ a a a b b c c c c c ฉันต้องการที่จะดูเหมือน a b c

3
คำสั่งสามารถเรียกใช้ผ่าน ssh กับผู้ใช้ nologin ได้หรือไม่?
หากผู้ใช้มีloginShell=/sbin/nologinมันยังคงเป็นไปได้ ssh user@machine [command] สมมติว่าผู้ใช้มีคีย์ ssh ที่เหมาะสมในโฮมไดเร็กตอรี่ที่สามารถใช้ในการรับรองความถูกต้อง? เป้าหมายของฉันคือทำให้ผู้ใช้เป็น nologin แต่ยังสามารถเรียกใช้คำสั่งบนเครื่องอื่น ๆ สองสามเครื่องบนเครือข่าย (คล้ายกับการใช้งานผ่าน 'sudo -u') และฉันสงสัยว่านี่เป็นหลักสูตรที่สมเหตุสมผลหรือไม่

2
วิธีรับชื่อจริงของเทอร์มินัลการควบคุม?
เราจะได้รับชื่อจริงของเทอร์มินัลการควบคุมได้อย่างไร (ถ้ามีอีกหนึ่งข้อผิดพลาด) เป็นชื่อพา ธ โดย "ชื่อจริง" ฉันหมายถึงไม่/dev/ttyซึ่งไม่สามารถใช้โดยกระบวนการอื่น ๆ เพื่ออ้างถึงเทอร์มินัลเดียวกัน ฉันชอบคำตอบเป็นรหัสเปลือกง่าย (เช่นตัวอย่างด้านล่าง) ถ้าเป็นไปได้มิฉะนั้นเป็นฟังก์ชั่น C โปรดทราบว่าสิ่งนี้จะต้องใช้งานได้แม้ว่าจะมีการเปลี่ยนเส้นทางอินพุตมาตรฐานเพื่อให้ttyไม่สามารถใช้ยูทิลิตี้: หนึ่งจะได้รับnot a ttyข้อผิดพลาดในกรณีเช่นนี้เนื่องจากttyเพียงพิมพ์ชื่อไฟล์ของเทอร์มินัลที่เชื่อมต่อกับอินพุตมาตรฐาน ภายใต้ Linux สามารถใช้: echo "/dev/`ps -p $$ -o tty | tail -n 1`" แต่นี้ไม่ได้พกพาเป็นไปตาม POSIX, รูปแบบของชื่อสถานีเป็นที่ไม่ได้ระบุ เกี่ยวกับฟังก์ชั่น C, ctermid (NULL)ส่งคืน/dev/ttyซึ่งไม่มีประโยชน์ที่นี่ หมายเหตุ:ตามzshเอกสารประกอบอย่างใดอย่างหนึ่งที่สามารถทำได้ zsh -c 'echo $TTY' แต่ตอนนี้ (เวอร์ชั่น 5.0.7) ล้มเหลวเมื่อทั้งอินพุตมาตรฐานและเอาต์พุตมาตรฐานถูกเปลี่ยนเส้นทาง: $ zsh -c 'echo …

7
วิธี grep เอาต์พุต netcat
ฉันพยายามที่จะ grep สตรีมข้อความสดจากnetcatแต่มันไม่ได้ผลสำหรับฉัน: netcat localhost 9090 | grep sender ไม่มีอะไรคืน แต่ฉันแน่ใจว่ามันควร ถ้าฉันเปลี่ยนเส้นทางnetcatผลลัพธ์ไปยังไฟล์และเพิ่มความล่าช้า (จำลองสภาพแวดล้อมจริง) - จากนั้นก็ใช้งานได้: $ (sleep 5; cat netcat_output; sleep 5) | grep sender {"jsonrpc":"2.0","method":"GUI.OnScreensaverDeactivated","params":{"data": "shuttingdown":false},"sender":"xbmc"}} ฉันพยายามเพิ่ม--line-bufferedแต่ไม่ประสบความสำเร็จ ฉันทำอะไรผิด แก้ไข: ฉันสังเกตเห็นปัญหาเดียวกันกับsedผลลัพธ์ที่ว่างเปล่า แต่ตัวอย่างเช่นhexdumpแปลงข้อความเป็น hex live: $ netcat localhost 9090 | hexdump -C 00000000 7b 22 6a 73 6f 6e 72 70 …
13 grep  netcat 

3
นับบันทึกรูปแบบการจับคู่ด้วย Awk
ดังนั้นผมจึงบอกว่าจะทำอย่างไรlast > lastloggedinที่จะสร้างไฟล์ที่แสดงให้เห็นว่าการเรียนเข้าสู่ระบบล่าสุดตั้งแต่รีบูตระบบที่ผ่านมาและตอนนี้ฉันขอให้เขียนสคริปต์ Awk ซึ่งเป็นชื่อmyawkที่นับ / กำหนดวิธีการหลายสายของ มีสตริงlastloggedinCFS264 ฉันเคยทำ grep -c CFS264 lastloggedin

2
ความแตกต่างระหว่าง ppp0 กับ wwan0
ฉันใช้ Raspian กับ RaspberryPi เมื่อเสียบโมเด็ม GSM ผมเห็นสองอินเตอร์เฟซ - wwan0 & ppp0 wwan0 มีอยู่แม้จะเสียบโมเด็ม GSM แต่ไม่ได้เชื่อมต่อ ppp0 มีอยู่เฉพาะเมื่อเชื่อมต่อโมเด็ม GSM คำถาม อะไรคือความแตกต่างระหว่างwwan0และppp0และทำไมผมเห็นppp0นอกเหนือไปwwan0? เหตุใดที่อยู่ IP จึงถูกกำหนดให้ppp0และไม่ได้รับwwan0หลังจากสร้างการเชื่อมต่อแล้ว?

5
ฉันจะ sudo su และเปลี่ยนไดเรกทอรีได้อย่างไร
ฉันต้องการสร้างนามแฝงที่ทำสิ่งนี้: alias userYYY='sudo su userYYY; cd /a/path/that/only/userYYY/has/access' ดังนั้นแล้วจากบรรทัดคำสั่งของฉันฉันเข้าสู่ระบบด้วยผู้ใช้ sudo และผมอยากจะพิมพ์นามแฝงuserYYYเพื่อให้เปลือกของฉันถูกบันทึกไว้ตอนนี้มีuserYYYและเป็นpwd/a/path/that/only/userYYY/has/access ฉันจะทำสิ่งนั้นได้อย่างไร นี่userYYYคือการเรียกใช้กระบวนการบางอย่างและจะต้องมีอะไรในบ้านของมัน ดังนั้นฉันพยายามเปลี่ยน $ HOME โดยใช้: sudo usermod -m -d /a/path/that/only/userYYY/has/access userYYY และจากเปลือกของฉันกับแฟ้ม sudoer sudo su userYYYของฉันฉันทำ แต่นั่นไม่ได้ผล สิ่งเดียวที่ใช้ได้คือsudo su -l userYYYYแต่เปิด bash ใหม่ภายในเชลล์เดิมของฉัน ( -bash-4.1$ ....) โดยสรุปสิ่งที่ฉันต้องการคือหลีกเลี่ยงการเขียน 2 บรรทัดในเชลล์: sudo su userYYY cd /a/path/that/only/userYYY/has/access ความคิดใด ๆ
13 bash  shell  sudo  su 

2
-bash: cd: .ssh /: ปฏิเสธการอนุญาต
เมื่อฉันพิมพ์cd .sshใน terminal -bash: cd: .ssh/: Permission deniedก็กลับมาพร้อมกับ ตอนนี้ฉันไม่สามารถเพิ่มคีย์ ssh ของฉันไปที่ ssh ได้ เมื่อฉันพิมพ์มันบอกว่าssh-add ~/.ssh/idname/Users/Dan/.ssh/idname: Permission denied ฉันคิดว่ามันเกี่ยวกับการพิมพ์ls -dเพราะมันใช้ได้ก่อนที่ฉันจะพิมพ์ลงในเทอร์มินัล?
13 ssh  permissions  ls 

1
md5sum คำสั่งไบนารีและโหมดข้อความ
md5sumคำสั่งGNU มีสองโหมด: โหมดไบนารีและโหมดข้อความ ฉันเดาว่าความแตกต่างนั้นขึ้นอยู่กับการจัดการอักขระบรรทัดใหม่เท่านั้น ฉันถูกไหม? บน GNU / Linux ทั้งสองโหมดจะให้ผลลัพธ์เหมือนกันเสมอดังนั้นการใช้-bและ-tตัวเลือกเพียงอย่างเดียวคือการระบุการตั้งค่าสถานะ ( *หรือ) ที่ใช้ก่อนหน้าชื่อไฟล์ โหมดสามารถให้ผลลัพธ์ที่แตกต่างในสถานการณ์ใดบ้าง บนระบบ Windows / MacOS? (มีเวอร์ชั่นสำหรับแพลตฟอร์มเหล่านี้หรือไม่)
13 binary  text  hashsum 

4
กำหนดพอร์ตที่จัดสรรแบบไดนามิกสำหรับ OpenSSH RemoteForward
คำถาม (TL; DR) เมื่อกำหนดพอร์ตแบบไดนามิกสำหรับการส่งต่อระยะไกล ( -Rตัวเลือกaka ) สคริปต์บนเครื่องระยะไกล (ตัวอย่างเช่นที่มาจาก.bashrc) จะกำหนดว่าพอร์ตใดถูกเลือกโดย OpenSSH พื้นหลัง ฉันใช้ OpenSSH (ทั้งสองด้าน) เพื่อเชื่อมต่อกับเซิร์ฟเวอร์กลางของเราที่ฉันแบ่งปันกับผู้ใช้อื่น ๆ สำหรับเซสชันระยะไกลของฉัน (ตอนนี้) ฉันต้องการส่งต่อ X, ถ้วยและ pulseaudio สิ่งที่สำคัญที่สุดคือการส่งต่อ X โดยใช้-Xตัวเลือก ที่อยู่ X ที่จัดสรรจะถูกเก็บไว้ในตัวแปรสภาพแวดล้อมDISPLAYและจากนั้นฉันสามารถกำหนดพอร์ต TCP ที่สอดคล้องกันได้ในกรณีส่วนใหญ่อย่างไรก็ตาม DISPLAYแต่ผมแทบจะไม่เคยต้องเพราะเกียรตินิยม Xlib ฉันต้องการกลไกที่คล้ายกันสำหรับถ้วยและพูลซีดิโอ พื้นฐานสำหรับบริการทั้งสองมีอยู่ในรูปแบบของตัวแปรสภาพแวดล้อมCUPS_SERVERและPULSE_SERVERตามลำดับ นี่คือตัวอย่างการใช้งาน: ssh -X -R12345:localhost:631 -R54321:localhost:4713 datserver export CUPS_SERVER=localhost:12345 lowriter #and I can print using my …

5
ติดตั้ง gcc ล่าสุดบน rhel 6 x86_64
ฉันมีเซิร์ฟเวอร์ RHEL 6 พร้อม gcc รุ่น 4.4.7 ฉันต้องการอัปเดตเวอร์ชัน gcc (ฉันคิดว่ารุ่นปัจจุบันคือ 4.8) การอัปเดตยำไม่ทำงาน นอกจากนี้ดังนั้นคำตอบสำหรับคำถามที่คล้ายกันใน CentOSไม่ทำงาน ฉันปฏิบัติตามวิธีการในคำตอบที่ยอมรับผลลัพธ์คือ "ข้อผิดพลาดในการรับข้อมูลที่เก็บสำหรับการทดสอบ -1.1-devtools-6 ไม่พบที่เก็บ" นอกจากนี้ฉันไม่แน่ใจว่าฉันควรทำตามวิธีการสำหรับ CentO หรือไม่ มีใครอัปเดต gcc ในเซิร์ฟเวอร์ RHEL 6 x86_64 หรือไม่

4
เริ่มต้นและสิ้นสุดด้วยคำสั่ง awk
ตามคู่มือ awk, BEGIN และ END ไม่ได้ใช้เพื่อจับคู่อินพุต แต่ให้ข้อมูลการเริ่มต้นและล้างข้อมูลให้กับสคริปต์ awk นี่คือตัวอย่างที่ได้รับ: ls -l | \ awk 'BEGIN { print "Files found:\n" } /\<[a|x].*\.conf$/ { print $9 }' Files found: amd.conf antivir.conf xcdroast.conf xinetd.conf ก่อนอื่นนี้พิมพ์สตริงเพื่อส่งออก จากนั้นจะตรวจสอบอินพุตสำหรับการจับคู่รูปแบบโดยที่อินพุตเริ่มต้นด้วย a หรือ x ตามด้วยอักขระใด ๆ หนึ่งหรือหลายครั้งตามด้วย. conf สำหรับการแข่งขันใด ๆ คอลัมน์ที่ 9 จะถูกพิมพ์ ความจริงที่ว่าเราถูกบังคับให้ใช้เริ่มต้นที่นี่นั่นหมายความว่า awk สามารถใช้ได้กับฟังก์ชั่นการพิมพ์ส่วนใหญ่ที่มี BEGIN หรือ …
13 awk 

6
กำหนดให้ผู้ใช้ FreeRDP เป็นชื่อผู้ใช้และรหัสผ่านหรือไม่
ในขณะนี้ฉันใช้คำสั่งต่อไปนี้เพื่อเริ่มเซสชัน FreeRDP: $ sudo xfreerdp /v:farm.company.com /d:company.com \ /u:oshiro /p:oshiro_password /g:rds.company.com ทำงานได้ดี อย่างไรก็ตามฉันไม่ต้องการให้รหัสผ่านอยู่ในบรรทัดคำสั่งแบบนั้น ดังนั้นฉันจึงลองโดยไม่ต้องใช้รหัสผ่าน: $ sudo xfreerdp /v:farm.company.com /d:company.com /u:oshiro /g:rds.company.com และฉันได้รับข้อความแจ้งความล้มเหลวในการเชื่อมต่อแทนที่จะเป็นกล่องโต้ตอบหรือขอให้ฉันใส่รหัสผ่าน เป็นไปได้ที่จะได้รับแจ้งให้ผู้ใช้รหัสผ่านหรือไม่ UPDATE: ไม่ใช้/pสวิตช์ หากไม่มี/pสวิตช์ฉันจะได้รับสิ่งต่อไปนี้: oshiro@ubuntu:~$ xfreerdp /v:farm.company.com /d:company.com -u:oshiro /g:rds.company.com connected to rds.company.com:443 connected to rds.company.com:443 Could not open SAM file! Could not open SAM file! Could not …

1
แสดงสีและปิดการใช้งานการตัดบรรทัด
การใช้lesspaginator คุณสามารถใช้-rตัวเลือกเพื่อแสดงอินพุตสีและ-Sตัวเลือกในการปิดการใช้งานการพันบรรทัด อย่างไรก็ตามเมื่อใช้less -rSหรือเทียบเท่าless -r -Sสีจะมีสีออกมา แต่เส้นจะพันกัน สิ่งนี้จะสำเร็จได้อย่างไร
13 less 

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