เมื่อใดก็ตามที่ฉันเปิดไฟล์. sh มันจะเปิดเป็น gedit แทนที่จะเป็นเทอร์มินัล ฉันไม่สามารถหาตัวเลือกใด ๆ ที่คล้ายกับการคลิกขวา → เปิดด้วย → แอพลิเคชันอื่น ๆ ... → ร์มินัล
ฉันจะเปิดไฟล์นี้ในเทอร์มินัลได้อย่างไร
ruby foo.rb
เมื่อใดก็ตามที่ฉันเปิดไฟล์. sh มันจะเปิดเป็น gedit แทนที่จะเป็นเทอร์มินัล ฉันไม่สามารถหาตัวเลือกใด ๆ ที่คล้ายกับการคลิกขวา → เปิดด้วย → แอพลิเคชันอื่น ๆ ... → ร์มินัล
ฉันจะเปิดไฟล์นี้ในเทอร์มินัลได้อย่างไร
ruby foo.rb
คำตอบ:
ให้สิทธิ์ดำเนินการกับสคริปต์ของคุณ:
chmod +x /path/to/yourscript.sh
และเพื่อเรียกใช้สคริปต์ของคุณ:
/path/to/yourscript.sh
เนื่องจาก.
อ้างถึงไดเรกทอรีปัจจุบัน: ถ้าyourscript.sh
อยู่ในไดเรกทอรีปัจจุบันคุณสามารถทำให้สิ่งนี้ง่ายขึ้นเพื่อ:
./yourscript.sh
bash /path/to/yourscript.sh
นั้นคุณไม่จำเป็นต้องchmod +x
. /path/to/yourscript.sh
หากสคริปต์ต้องตั้งค่าตัวแปรสภาพแวดล้อมบางอย่าง
./path/to/yourscript.sh
(โดยไม่ต้องเว้นวรรค.
)? ฉันพบว่ามีวิธีที่ง่ายที่สุดและง่ายที่สุดในการใช้ ... แต่ยังไงต่อไปนี่คือทางเลือกของฉันที่ควรทำเกือบเหมือนกัน./
แต่ฉันไม่เห็นว่าทำไมคุณไม่ใช้./
: (FILENAME=~/rem4space.sh;SLL=$(cat $FILENAME|head -1|sed 's:^#!\(.*\):\1:g');[ ! -z $SLL ] && exec $SLL $FILENAME;sh $FILENAME)
... แก้ไขFILENAME
ความชอบของคุณ . โปรดทราบด้วยว่าsh
จะใช้หากไม่มีทางเลือกอื่น
คุณต้องทำเครื่องหมายเชลล์สคริปต์ว่าสามารถเรียกใช้เพื่อเรียกใช้จากตัวจัดการไฟล์:
คลิกขวาที่.sh
ไฟล์ของคุณและเลือกคุณสมบัติ :
ในแท็บสิทธิ์ให้เลือกอนุญาตการเรียกใช้ไฟล์เป็นโปรแกรม :
ปิดหน้าต่างคุณสมบัติและดับเบิลคลิกที่ไฟล์ กล่องโต้ตอบจะปรากฏขึ้นให้คุณเลือกเรียกใช้สคริปต์ใน terminal:
เปิดเทอร์มินัลแล้วนำทางไปยังโฟลเดอร์ที่มี.sh
ไฟล์อยู่ จากนั้นพิมพ์:
sh <name of file>.sh
ก่อนที่คุณจะสามารถเรียกใช้ไฟล์. sh ได้คุณจะต้องทำให้ไฟล์ปฏิบัติได้:
ตรวจสอบให้แน่ใจว่าคุณเชื่อถือแหล่งข้อมูลที่คุณได้รับไฟล์ มันอาจจะเป็นไวรัส
ปัญหานี้มีปัญหา เทอร์มินัลจะปิดทันทีและคุณจะไม่สามารถเห็นเอาต์พุต
ค้นหาตำแหน่งของไฟล์. sh
ls
และcd
ls
จะแสดงรายชื่อไฟล์และโฟลเดอร์ในโฟลเดอร์ปัจจุบัน ลองดูสิ: พิมพ์ "ls" แล้วกด Entercd
ตามด้วยช่องว่างแล้วตามด้วยชื่อโฟลเดอร์cd ..
ไปหนึ่งระดับขึ้นเรียกใช้ไฟล์. sh
เมื่อคุณสามารถดูตัวอย่างscript1.sh
ด้วยการls
เรียกใช้นี้:
./script.sh
เทอร์มินัลมีชุดเครื่องมือที่มีประสิทธิภาพมากมายที่สามารถเข้าถึงได้โดยการพิมพ์คำสั่ง ผู้เชี่ยวชาญด้านการค้นหาแฟ้ม .sh โดยการพิมพ์และls
cd
เมื่อคุณอยู่ในโฟลเดอร์ปัจจุบันที่ถูกต้องคุณสามารถเรียกใช้สคริปต์เช่นนี้:
./script1.sh
หรือคุณสามารถเรียกใช้และเปลี่ยนเส้นทางผลลัพธ์ไปยังไฟล์:
./script1.sh > out.txt
หรือคุณสามารถกรองผลลัพธ์สำหรับคำหลัก (เช่น "แอปเปิ้ล") แล้วเปลี่ยนเส้นทางไปยังไฟล์:
./script1.sh | grep apples > ./only-apples
มีหลายพันสิ่งที่คุณสามารถทำได้ในไฟล์นั้นเพียงแค่พิมพ์คำสั่งสองสามคำ
อีกไฟล์หนึ่งคุณสามารถดาวน์โหลดไฟล์จากอินเทอร์เน็ตด้วยคำสั่งง่ายๆเดียว:
wget www.google.com/images/logos/ps_logo2.png
จากนั้นเปิดไฟล์ดังนี้:
shotwell ps_logo2.png
บน Ubuntu ไฟล์ปฏิบัติการที่เปิดได้ 13.04 ที่เปิดใน Nautilus จะถูกเปิดเป็น gedit เป็นค่าเริ่มต้นแทนที่จะแจ้งให้ผู้ใช้ดำเนินการ ในการเปิดใช้งานลักษณะการทำงานแบบคลาสสิกคุณต้องปรับการตั้งค่า:
Nautilus →เมนูแก้ไขการตั้งค่า→แท็บพฤติกรรม→คลิกที่ปุ่มตัวเลือกใกล้ถามทุกครั้ง
ไปที่ไดเรกทอรีที่.sh
ไฟล์นั้นใช้งานcd
อยู่ ในตัวอย่างนี้ฉันได้จัดเก็บsh
ไฟล์ของฉันเป็น~/Desktop/shell_practice/test.sh
ก่อนอื่นpwd
ให้คิดว่าคุณอยู่ที่ไหนและถ้ามันกลับมา/home/username
( username
ชื่อผู้ใช้จริงของคุณอยู่ที่ไหน) คุณสามารถเรียกใช้
cd Desktop/shell/practice
หากคุณดูเหมือนจะอยู่ที่อื่นคุณสามารถใช้เส้นทางที่แน่นอน
cd ~/Desktop/shell/practice
หรือ
cd $HOME/Desktop/shell/practice
หรือแม้กระทั่ง
cd /home/$USER/Desktop/shell/practice
นี่เป็นวิธีการอธิบายสถานที่เดียวกันทั้งหมด เมื่อคุณทำกับสถานที่ตั้งของสคริปต์ของคุณพิมพ์
ls
หากคุณสามารถดูsh
ไฟล์ในผลลัพธ์คุณสามารถใช้chmod
เพื่อให้มันปฏิบัติการได้ ในกรณีของฉันจำไว้ว่าชื่อไฟล์คือtest.sh
ดังนั้นฉันจะเรียกใช้
chmod u+x test.sh
ตอนนี้เราอยู่ในไดเรกทอรีเดียวกับสคริปต์เราต้องระบุเชลล์ที่เราต้องการเรียกใช้งานไฟล์โดยการระบุตำแหน่ง./
(ไดเรกทอรีปัจจุบันตามด้วยตัวคั่นพา ธ เพื่อแยกความแตกต่างจากชื่อไฟล์) หากต้องการเรียกใช้ไฟล์ของฉันฉันจะพิมพ์:
./test.sh
หากสคริปต์ของคุณถูกเขียนอย่างถูกต้องสคริปต์จะทำงานโดยไม่มีข้อผิดพลาด ...
2 ขั้นตอนหลัก
ในเทอร์มินัลใช้ gedit เพื่อเขียนและบันทึกสคริปต์ด้วยส่วนขยาย ".sh" ไปยังเดสก์ท็อป (แต่สามารถใช้โปรแกรมแก้ไขข้อความใด ๆ )
เปิด Nautilus และคลิกขวาที่ไฟล์ script.sh
ภายใต้คุณสมบัติกล่องกาเครื่องหมาย "อนุญาตให้เรียกใช้ไฟล์ .. "
ในเมนู Nautilus คลิกไฟล์จากนั้นกำหนดลักษณะตามต้องการ
ตรวจสอบ "เรียกใช้ไฟล์ข้อความที่ปฏิบัติการได้เมื่อเปิด"
ตอนนี้เมื่อคุณคลิกสองครั้งที่ไฟล์บนเดสก์ท็อปก็ควรดำเนินการ ไม่ต้องการ.
หรือ./
คลิกขวาที่.sh
ไฟล์และทำให้สามารถเรียกใช้งานได้
เปิดเทอร์มินัล ( Ctrl+ Alt+ T)
ลาก.sh
ไฟล์ลงในหน้าต่างเทอร์มินัลแล้วดูอย่างน่ากลัว
มีสองสามวิธีในการทำเช่นนี้
ในเทอร์มินัลเข้าถึงไดเรกทอรีที่ไฟล์ Bash กำลังใช้งานอยู่cd
(เปลี่ยนไดเรกทอรี)
อดีต cd Downloads
วิ่ง bash <filename>.sh
นอกจากนี้ยังทำงานกับไฟล์. run มีตัวอย่างของการใช้งานที่หน้าเว็บนี้ในการอัปเดต Rhythmbox
ในเทอร์มินัลนำทางไปยังไดเรกทอรีที่มีไฟล์ bash
วิ่ง chmod +x <filename>.sh
ใน Nautilus ให้เปิดไฟล์
สำหรับUbuntu 18.04มีการปรับเปลี่ยนเล็กน้อยเนื่องจากคุณไม่ได้รับกล่องโต้ตอบแบบผุดขึ้น
ดังนั้นสิ่งที่คุณต้องทำคือ:
คลิกขวาที่ไฟล์เลือกการตั้งค่า> เลือกแท็บพฤติกรรม> ทำเครื่องหมายตัวเลือก 'ถามว่าต้องทำอะไร' ภายใต้ไฟล์ข้อความที่ปฏิบัติการได้
ตอนนี้เมื่อคุณดับเบิลคลิกที่ไฟล์. sh ใด ๆ คุณจะได้รับป๊อปอัพคุณสามารถเลือกตัวเลือก "เรียกใช้ใน terminal" เพื่อเรียกใช้ไฟล์. sh ของคุณ
ใน Ubuntu 16.04 นี่เป็นวิธีการเปิดใน Terminal:
ไปที่File Manager > Edit > Preferences > Behavior
สำหรับและเลือกExecutable Text Files
Ask each time
View Executable Files when they are opened
ปัญหาคือว่ามันเป็นชุดที่จะเริ่มต้น
หากคุณวางเชลล์สคริปต์หรือไฟล์สั่งการอื่น ๆ ที่คุณสร้างใน / usr / local / bin จะพบและดำเนินการโดยไม่ต้องระบุพา ธ โฟลเดอร์ในบรรทัดคำสั่งหรือเพิ่ม. / ลงในชื่อ ตัวอย่างเช่นฉันสร้างสคริปต์ bash 3 บรรทัดต่อไปนี้เพื่อแสดง UUID ของดิสก์:
#!/bin/bash
echo "* UUIDs must match in /etc/fstab and /boot/grub/menu.lst"
sudo blkid
ฉันเรียกไฟล์ uuid และวางไว้ใน / usr / local / bin สิ่งที่ฉันต้องการในบรรทัดคำสั่งคือ:
uuid
ฉันก็ประสบปัญหาเดียวกันเช่นกัน ฉันต้องการรันไฟล์. sh และเปิดด้วย Gedit บน CentOS 7 ดังนั้นนี่คือสิ่งที่ฉันทำ:
.sh
ไฟล์ที่ฉันต้องการดำเนินการปัญหาที่ฉันพบในดิสทริบิวชันเล็กน้อยคือพวกเขาซ่อนตัวเลือกการตั้งค่าใน Nautilus แต่เพื่อแก้ไขใน Ubuntu และดิสทริบิวชันอื่น ๆ ที่ใช้ Gnome3 เหมือนกัน (แท้จริงแล้วเพิ่งทำเวอร์ชั่น Fedora นี้แล้ว เป็นอย่างไรในอนาคต)
ติดตั้ง dconf-editor
sudo apt-get install dconf-editor
ทำงานdconf-editor
โดยใช้บัญชีผู้ใช้ที่คุณต้องการเช่นไม่รูท
dconf-editor
นำทางไปยังสคีมาต่อไปนี้:
org.gnome.nautilus.preferences
เปลี่ยนตัวเลือกเริ่มต้นเป็นไม่เปิดตามค่าเริ่มต้น:
ค้นหาexecutable-text-activation
คลิกคำdisplay
และเปลี่ยนเป็นask
ที่จะทำให้คุณมีตัวเลือกในการแก้ไขดูหรือเรียกใช้ไฟล์ไปข้างหน้า
ฉันเป็น noob ใน Linux และฉันก็มีปัญหาเดียวกัน หากล้มเหลวทั้งหมด:
คุณยังสามารถใช้.
ลูกเล่นพร้อมคำแนะนำสำหรับคำตอบอื่น ๆ
ตัวอย่างเช่น:
chmod +x filename.sh
สมมติว่าคุณได้ไปที่พา ธ ไปยังไฟล์แล้วให้เรียกใช้ไฟล์ด้วยคำสั่งอย่างใดอย่างหนึ่งต่อไปนี้:
sh filename.sh
./filename.sh
. filename.sh