คำถามติดแท็ก executable

บิตการอนุญาตในโหมดไฟล์ที่อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม นอกจากนี้คำถามที่เกี่ยวข้องกับรูปแบบของไฟล์โปรแกรมและการค้นหาและเรียกใช้ไฟล์โปรแกรม

4
วิธีการติดตั้ง executables
บางครั้งฉันพบซอฟต์แวร์ที่ไม่มีใน.debหรือ.rpmเป็นเพียงไฟล์ปฏิบัติการ ยกตัวอย่างเช่นVisual Studio รหัส , WebStormหรือKerbal อวกาศ Programm สำหรับคำถามนี้ฉันจะใช้ Visual Studio Code เป็นจุดอ้างอิง ซอฟต์แวร์มีให้ในรูปแบบแพ็คเกจซิป เมื่อขยายไฟล์ฉันทิ้งให้อยู่กับโฟลเดอร์ที่เรียกว่าที่มีการปฏิบัติการที่มีชื่อว่าVSCode-linux-x64 ฉันสามารถดับเบิลคลิกหรือชี้ไปที่จุดนั้นด้วยเทอร์มินัลของฉันเพื่อเรียกใช้งาน อย่างไรก็ตามฉันต้องการทราบว่ามีวิธีที่เหมาะสมในการติดตั้งแอปพลิเคชันนี้หรือไม่ CodeCode/home/user/Downloads/VSCode-linux-x64/Code สิ่งที่ฉันต้องการบรรลุคือ: ที่เดียวที่ฉันสามารถใส่แอพพลิเคชั่น / ซอฟต์แวร์ทั้งหมดที่มีให้ในลักษณะนี้ (ปฏิบัติการ) การสนับสนุนเทอร์มินัล (นั่นหมายถึงตัวอย่างเช่น: ฉันสามารถเขียนvscodeจากโฟลเดอร์ใด ๆ ในเทอร์มินัลของฉันและมันจะรัน Visual Studio Code ข้อมูลเพิ่มเติม: สภาพแวดล้อมเดสก์ทอป: Gnome3 ระบบปฏิบัติการ: Debian แก้ไข: ฉันตัดสินใจที่จะให้ @kba คำตอบเพราะวิธีการของเขาทำงานได้ดีขึ้นด้วยโซลูชั่นสำรองของฉันและนอกจากนั้น การมีสคริปต์ที่ใช้งานไบนารีจะช่วยให้คุณสามารถเพิ่มอาร์กิวเมนต์ได้ แต่เพื่อความยุติธรรมวิธีการของ @John WH Smith นั้นดีเท่ากับ @ kba's

5
มีวิธีการดำเนินการไบนารีพื้นเมืองจากไปป์หรือไม่
echo 'main(){}' | gcc -xc - -o /dev/stdout | ??? มีวิธีรันไบนารีเอาต์พุตบนระบบที่เหมือนยูนิกซ์หรือไม่? แก้ไข:ฉันต้องการมันเพื่อเรียกใช้เอาต์พุตของ g ++ ในสภาพแวดล้อมแบบ sandbox ที่ฉันไม่สามารถเขียนไฟล์ใด ๆ (ไม่มีอันตรายฉันสัญญา)

2
รันไบนารีที่ root เป็นเจ้าของโดยไม่มี sudo
ฉันมีคำถามในการสัมภาษณ์งาน: วิธีที่คุณสามารถรัน (รัน) โปรแกรมกับผู้ใช้user1โดยไม่มีsudoสิทธิ์และไม่สามารถเข้าถึงrootบัญชี: $ whoami user1 $ ls -l ~/binary_program -rw-r--r-- 1 root root 126160 Jan 17 18:57 /home/user1/binary_program

2
./executable: ไม่สามารถเรียกใช้ไฟล์ไบนารี
ฉันมีสคริปต์ที่ทำงานได้ดีเมื่อฉันส่งไฟล์ไปยังเซิร์ฟเวอร์เพื่อรันด้วยตัวเอง แต่มีปัญหาเมื่อฮัดสันซึ่งเป็นเซิร์ฟเวอร์รวมอย่างต่อเนื่องรันได้ ฉันกำลังทำการทดสอบอัตโนมัติบนระบบลินุกซ์ในตัว (เป้าหมาย) เป้าหมายเชื่อมต่อกับเซิร์ฟเวอร์ A (RHEL 5) ผ่านทางอนุกรมและดำเนินการผ่าน minicom เซิร์ฟเวอร์ B (FC 12) สร้างการทดสอบที่ทำงานบนเป้าหมายจริงและสามารถ ssh ไปที่เซิร์ฟเวอร์ A เซิร์ฟเวอร์ C (RH) โฮสต์ฮัดสันโดยเซิร์ฟเวอร์ B เป็นทาส ฉันได้เขียนสคริปต์ runcript (http://linux.die.net/man/1/runscript) เพื่อทำทุกอย่างที่จำเป็นในเป้าหมายจริง มันบูทอิมเมจติดตั้งไดเรกทอรีจากเซิร์ฟเวอร์ B และดำเนินการทดสอบ สคริปต์ทุบตีบนเซิร์ฟเวอร์ B จะเรียกใช้ minicom ด้วยสคริปต์ runcript พร้อมกับการดำเนินการร่วมกัน ฉันมีสคริปต์ทุบตีบนเซิร์ฟเวอร์ B ซึ่งใช้ ssh -t -t ServerA bashScript.sh เพื่อให้การทดสอบเหล่านั้นทำงานตามเป้าหมาย ฉันอยู่บนเซิร์ฟเวอร์ C ฉันสามารถรับการทดสอบเหล่านั้นที่ดำเนินการโดย …

4
อนุญาตให้ใช้ไฟล์เท่านั้น
ฉันจะตั้งค่าไฟล์ให้สามารถเรียกใช้งานได้เฉพาะผู้ใช้รายอื่น แต่ไม่สามารถอ่าน / เขียนได้เหตุผลในการนี้ฉันกำลังดำเนินการบางอย่างด้วยชื่อผู้ใช้ของฉัน แต่ฉันไม่ต้องการให้รหัสผ่าน ฉันเหนื่อย : chmod 777 testfile chmod a=x chmod ugo+x ฉันยังคงได้รับอนุญาตปฏิเสธเมื่อดำเนินการในฐานะผู้ใช้รายอื่น

1
เมื่อใดที่ฉันจะแก้ไขสตริงในไบนารีที่สามารถเรียกทำงานได้
ฉันมีไบนารีที่ปฏิบัติการได้; a.outขอเรียกว่า ฉันสามารถดูไบนารีมีสตริง $ strings a.out ... /usr/share/foo .... ฉันจำเป็นต้องเปลี่ยนสายไป/usr/share/foo /usr/share/barฉันสามารถแทนที่สตริงด้วยsedหรือไม่: sed -i 's@/usr/share/foo@/usr/share/bar@' a.out นี่เป็นสิ่งที่ควรทำ สิ่งนี้จะใช้งานได้เมื่อสายไม่ยาวเท่ากันหรือไม่

3
เชลล์ดำเนินการโปรแกรมอย่างไร
หากฉันรวบรวมโปรแกรมโดยใช้ gcc และลองเรียกใช้งานจาก bash shell อะไรคือลำดับขั้นตอนที่แน่นอนตามด้วย bash เพื่อเรียกใช้งานมัน ฉันรู้fork(), execve(), loader, dynamic linker(และสิ่งอื่น ๆ ) มีส่วนร่วม แต่คนที่สามารถให้ลำดับขั้นตอนอย่างและบางส่วนอ้างอิงการอ่านที่เหมาะสม? แก้ไข: จากคำตอบดูเหมือนว่าคำถามอาจบ่งบอกถึงความเป็นไปได้มากมาย ฉันต้องการแคบลงเป็นกรณีง่ายๆ: (test.c เพียงพิมพ์ Hello world) $ gcc test.c -o test $ ./test สิ่งที่จะเป็นขั้นตอนในกรณีข้างต้น ( ./test) โดยเฉพาะที่เกี่ยวข้องกับโปรแกรมเริ่มต้นทุบตีในกระบวนการเด็กบางอย่างที่ทำโหลดเชื่อมโยง ฯลฯ ?

1
ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว แต่ฉันเห็นได้!
ฉันพยายามเรียกใช้สคริปต์ python บน Raspberry PI ที่ไม่มีส่วนหัวโดยใช้ winSCP และได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้: Command '"./areadetect_movie_21.py"' failed with return code 127 and error message /usr/bin/env: python : No such file or directory. เมื่อฉันลองและเรียกใช้จาก terminal ฉันได้รับ: : No such file or directory. ฉันลองสคริปต์ python ที่คล้ายกันในไดเรกทอรีเดียวกันกับ python shebang ที่เหมือนกันการอนุญาตแบบเดียวกันและการใช้ pi ผู้ใช้เดียวกันและใช้งานได้ ฉันยังทำlsและฉันสามารถดูไฟล์ได้ดังนั้นฉันจึงไม่รู้ว่าทำไมมันไม่ทำงาน

1
วิธีรันโปรแกรมของฉันเองโดยไม่ระบุพา ธ
สมมติว่าฉันได้รวบรวมบางสิ่งบางอย่างและฉันเรียกใช้เช่น $ /path/to/my/executable/mycmd Hello World ฉันต้องทำอะไรเพื่อเรียกใช้เช่นนี้ $ mycmd Hello World จากทุกที่ในคอมพิวเตอร์ของฉัน

3
ตรวจสอบว่า ELF ไบนารีถูกสร้างขึ้นด้วยเครื่องมือ gprof หรือไม่
มันเป็นไปได้ที่จะตรวจสอบว่าโปรแกรมที่กำหนดได้รับการรวบรวมกับ GNU gprof วัดคือมี '-pg' ธงส่งผ่านไปยังทั้งคอมไพเลอร์และลิงเกอร์, โดยไม่ต้องใช้มันเพื่อตรวจสอบว่ามันจะสร้างgmon.outไฟล์?

1
ความสามารถในการพกพาของการปฏิบัติการไปยังเครื่อง Linux อื่น
ฉันติดตั้งโปรแกรม Motion บนเครื่อง Linux (M1) เครื่องหนึ่งและต้องการโปรแกรมเดียวกันบนอีกเครื่อง (M2) มีบิลด์ต่าง ๆ ของโปรแกรมนี้และฉันลืมไปว่าอันไหนที่ฉันเคยใช้ดังนั้นฉันจะทำสำเนาไฟล์ user / bin / motion ตรงจาก M1 และวางไว้ใน user / bin / motion ของ M2 ได้ไหม? ฉันรู้ว่าไฟล์กำหนดค่าอยู่ที่ไหนดังนั้นฉันจะข้ามไป แต่ฉันไม่แน่ใจว่าไดรเวอร์วิดีโอรุ่นใดที่ใช้งานการเคลื่อนไหวของ M2 ได้ มีวิธีการหาคำตอบไหม? มีวิธีที่ฉันสามารถค้นหาการอ้างอิงของมันได้หรือไม่


2
วิธีการใช้ ln -s เพื่อสร้างทางลัดบรรทัดคำสั่ง?
ฉันมีไฟล์ sh ที่ฉันต้องการที่จะสามารถเปิดได้จาก terminal ได้ตลอดเวลา ฉันต้องการพิมพ์ "studio" ใน terminal และเปิด android studio ฉันจำได้ว่าเคยใช้ln -sในการทำสิ่งนี้ แต่ฉันลืมและเสียเวลาไปกับการค้นหาเว็บแล้ว นอกจากนี้ลิงก์สัญลักษณ์ที่สร้างขึ้นเก็บไว้ในไดเรกทอรีใด? นี่คือไวยากรณ์จากความพยายามของฉันไม่พบคำสั่ง ricardo@debian:~$ ln -s /opt/android-studio/bin/studio.sh studio ricardo@debian:~$ studio bash: studio: command not found

4
สี ls: ทำไมบางส่วนของแบบอักษรของฉันเป็นสีดำและสีเขียวอื่น ๆ ในการแสดงผล ls
ฉันอัพโหลดไฟล์ฟอนต์บางไฟล์ไปยัง AWS (รัน Amazon Linux) และย้ายไปยัง/usr/share/fontsไดเรกทอรีโดยใช้cpคำสั่งใน. ส่วนขยาย เมื่อฉันใช้ SSH จากแม็คและการใช้งานของls -aฉันฉันเห็นไฟล์บางไฟล์มีสีต่างกัน - ไฟล์ฟอนต์ชุดหนึ่งเป็นสีดำในขณะที่ไฟล์อื่น ๆ เป็นสีเขียว ฉันอยากรู้สิ่งที่เกิดขึ้นนี้จะเป็นเช่นนั้นและถ้ามันจะสร้างปัญหาใด ๆ สำหรับรหัสของฉัน จากคำตอบอื่นใน AskUbuntuฉันพบกุญแจนี้ในการตีความสีเหล่านี้ ฉันไม่สามารถเข้าใจได้ว่าเหตุใด. ttf จึงสามารถเรียกใช้งานได้หรือทำไมชุด. ttfs หนึ่งชุดจึงสามารถรับรู้ได้และไม่ใช่อีกชุดหนึ่ง สีน้ำเงิน: สารบบ เขียว: ไฟล์ข้อมูลที่เรียกทำงานหรือรู้จัก Sky Blue: ไฟล์ที่เชื่อมโยง สีเหลืองกับพื้นหลังสีดำ: อุปกรณ์ ชมพู: ไฟล์ภาพกราฟิก แดง: ไฟล์เก็บถาวร ไฟล์เหล่านี้ทั้งหมดถูกดาวน์โหลดไปยัง mac จากเว็บไซต์แบบอักษรต่างๆก่อนที่จะอัปโหลด
10 files  ls  colors  executable 

3
สถานที่ที่จะวางไบนารีเพื่อให้พวกเขาอยู่ในเส้นทางและสามารถพบได้ง่าย
ฉันกำลังสร้างไบนารีสคริปต์และอื่น ๆ ที่ฉันต้องการติดตั้งอย่างง่ายดาย (ใช้ rpms ของตัวเอง) เนื่องจากฉันต้องการให้ทุกคนสามารถเข้าถึงได้สัญชาตญาณของฉันจึงต้องใส่ไว้ใน / usr / bin; ไม่จำเป็นต้องเปลี่ยน PATH อย่างไรก็ตาม; executables ของฉันตอนนี้หายไปในกลุ่มของคนอื่น ๆ ทั้งหมด; ฉันจะค้นหาไฟล์ปฏิบัติการทั้งหมดที่ฉันใส่กลับมาได้อย่างง่ายดาย ฉันคิดว่า: ไดเรกทอรีย่อยใน / usr / bin (ฉันรู้ว่าฉันไม่สามารถทำได้เพียงแสดงความคิดของฉัน) ไดเรกทอรีอื่น (/ opt / me / bin) และเชื่อมโยงแต่ละไฟล์ที่เรียกใช้กับ / usr / bin (มีงานจำนวนมาก) ไดเรกทอรีอื่น (/ opt / me / bin) และเชื่อมโยงไดเรกทอรีไปยัง / usr / …

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