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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

1
สคริปต์ Bash ไม่เปิดในเทอร์มินัลเมื่อรีบูต
ภาพรวมอย่างรวดเร็วฉันได้สร้างสคริปต์ที่รีบูตเครื่องแล็ปท็อปหลังจาก x ระยะเวลาและ x จำนวนรอบ ฉันได้เพิ่มสคริปต์ลงในแอปพลิเคชันเริ่มต้นและสคริปต์ดูเหมือนว่าจะทำงานในพื้นหลัง แต่ไม่เคยเปิดหน้าต่างเทอร์มินัล ฉันพลาดอะไรไปรึเปล่า? การเพิ่มรหัส (สิ่งนี้ถูกบันทึกไว้ในไฟล์ชื่อ countdown.sh) #!/bin/bash # check if passed.txt exists if it does, send to soak test if [ -f passed.txt ]; then echo reboot has passed $nol cycles sleep 5; echo Starting soak tests sleep 5; rm testlog.txt; rm passed.txt; phoronix-test-suite run …
bash 

1
วิธีการเลือกไฟล์ที่มีช่องว่างในชื่อของพวกเขาใน terminal?
เมื่อใช้งาน gnome-terminal ซึ่งเป็นค่าเริ่มต้นบน Linux Mint ฉันสามารถเลือกไฟล์โดยใช้ดับเบิลคลิก ตัวอย่างเช่น: user@hostname $> ls 1.file.name 2-file-name 3 file name with spaces วิธีนี้ใช้ได้กับตัวอย่างที่ 1 และ 2 ด้านบน เมื่อฉันลองและทำเช่นเดียวกันสำหรับตัวอย่าง 3 มันจะเน้นคำเดียว การดับเบิลคลิกเพิ่มเติมเลือกทั้งบรรทัดรวมถึงอักขระขึ้นบรรทัดใหม่ที่ส่วนท้าย ดังนั้นเมื่อวางลงในคำสั่งก็สามารถมีผลกระทบที่ไม่ได้ตั้งใจ สิ่งที่ฉันตามมาคือวิธีการเลือกที่รวดเร็ว 3 file name with spaces ในตัวอย่างของฉันด้านบน ฉันได้ลองแล้ว: ls -Q "1.file.name" "2-file-name" "3 file name with spaces" จากนั้นลองใช้วิธีดับเบิลคลิก แต่วิธีนี้ไม่ได้ผล ดังนั้นจึงเป็นไปได้ที่จะทำกับ gnome-terminal หรือมีทางเลือกอื่น?

1
มีทุบตีเทียบเท่ากับวัตถุท่อ PowerShell?
ใน PowerShell ฉันสามารถเรียกใช้สิ่งนี้ในหนึ่งซับ Get-ChildItem | foreach { if ($_ -match '.+?\.py$' -eq $true) { $_ | Do-Thing -WithFile } if ($_ -match '.+?\.pdf$' -eq $true) { $_ | Do-Thing -WithOtherFile } } ชอบมาก Get-ChildItem | foreach { if ($_ -match '.+?\.py$' -eq $true) { $_ | Do-Thing -WithFile } if …

1
ปัญหาไดเรกทอรีการเปลี่ยนแปลงเทอร์มินัลทุบตี Mac OS X
ฉันใช้ Mac OS X และฉันได้ติดตั้ง Parallels ล่าสุดแล้ว อย่างไรก็ตามหลังจากติดตั้ง Parallels แล้วมันจะเพิ่มไดเรกทอรีที่ชื่อว่า Applications (parallels) ดังนั้นตอนนี้ถ้าฉันเริ่มต้นเทอร์มินัลฉันจะเห็นทั้งแอปพลิเคชันและแอปพลิเคชัน (แนว) ตอนนี้ปัญหาคือฉันไม่สามารถเข้าไปในไดเรกทอรีแอปพลิเคชันของ Mac ได้อีกต่อไป ทุกครั้งที่ฉันพิมพ์แอปพลิเคชันซีดีมันจะเข้าสู่การเปรียบเทียบ ฉันไม่รู้จะกลับไปใช้แอปพลิเคชัน Mac ปกติของฉันได้อย่างไร หากใครมีคำแนะนำโปรดแจ้งให้เราทราบ Applications Library Applications (Parallels) Movies Desktop Music Documents Pictures Downloads Public Dropbox และหลังจากฉันพิมพ์ cd Applications และ ls ฉันจะได้รับสิ่งนี้: Windows 8 Release Preview (English) Applications.app Ricks-MacBook-Pro:Applications rickel$
macos  bash 

1
ฟังก์ชั่นทุบตีกับพารามิเตอร์ที่ไม่สามารถใช้ได้กับ eval ใน Msys2
ฉันใช้ Msys2 จาก PortableApps ภายใต้ Win 10 คำตอบสำหรับคำถามนี้ (เช่นการระบุตัวตนและการแก้ไขปัญหา) อาจเกี่ยวข้องกับส่วนของ Unix / Linux ของการใช้งานหรือ "การปรับตัว" กับ Windows ผ่าน Msys2 ฉันไม่ทราบล่วงหน้า (ไม่เช่นนั้นฉันอาจจะแก้ไขได้ด้วยตัวเอง!) ดังนั้นฉันจึงโพสต์ก่อนหน้า (ลบออกตอนนี้) คำถามที่คล้ายกันในเว็บไซต์ SE อื่น ซึ่งเข้าถึงผู้ชมที่แตกต่างกัน ฉันมีฟังก์ชั่นของเชลล์ที่กำหนดไว้ my_fun.sh เช่น MYAPP=some_executable function myfun() { echo "MYAPP=${MYAPP}" && ${MYAPP} "$@" ; } นั่นคือ some_executable ใช้ตัวเลือกและพารามิเตอร์ ฉันสามารถเรียกใช้ที่บรรทัดคำสั่ง $ some_executable -3 input.dat output.dat …

2
เป็นไปได้ไหมที่จะเปิดเชลล์เซสชันที่สองที่จะจดจำผู้ใช้เครื่องและไดเรกทอรีที่ฉันใช้
ฉัน ssh'ed เป็นเครื่องและเข้าสู่ระบบในฐานะผู้ใช้อื่น เป็นไปได้ไหมที่จะเปิดหน้าต่างใหม่สองสามอันที่จะยังคงอยู่ในเครื่องเดียวกันนั้นยังคงเข้าสู่ระบบในฐานะผู้ใช้รายนั้น?

0
วิธีการตั้งค่าความกว้างของข้อความเมื่อแก้ไขบรรทัดคำสั่งในโหมด vi
เมื่อฉันกด v ใน readline's vi โหมดคำสั่งมันจะเปิดบรรทัดคำสั่งปัจจุบันในตัวแก้ไขของฉัน ( nvimแม้ว่าฉันคิดว่ามันใช้ได้กับ vim ) และดำเนินการในการบันทึก ฉันจะตั้งค่าอัตโนมัติได้อย่างไร textwidth=0 เมื่อเปิด nvim ทางนี้? นอกเหนือจากโหมดคำสั่งคืออะไร v คุณสมบัติที่เรียกว่า man readline ไม่แสดงการผูกมัดใด ๆ vดังนั้นฉันจึงมีปัญหาในการถามคำถามนี้
bash  vim 

1
“ บรรทัดที่ 3: ข้อผิดพลาดทางไวยากรณ์ใกล้โทเค็นที่ไม่คาดคิด” ในเชลล์สคริปต์
ฉันพยายามเรียกใช้ไฟล์ปฏิบัติการด้วยพารามิเตอร์หลายครั้ง ฉันเขียนสคริปต์สำหรับมัน แต่ฉันมักจะได้รับข้อผิดพลาดและไม่สามารถหาวิธีแก้ไขได้ #!/bin/bash export VCF_FILE='KI_subsetted.recode.vcf' for i in $(seq 22) do; /home/lab/Desktop/vcftools_0.1.13/bin/vcftools --vcf $VCF_FILE --chr i --out ./by_chrs_komi/i --recode; done ข้อผิดพลาดที่ฉันได้รับคือ: ./chrs.sh: line 3: syntax error near unexpected token `/home/lab/Desktop/vcftools_0.1.13/bin/vcftools' ./chrs.sh: line 3: `for i in $(seq 22) do; /home/lab/Desktop/vcftools_0.1.13/bin/vcftools --vcf ./KI_subsetted.recode.vcf --chr i --out ./by_chrs_komi/i --recode; done' ฉันใช้ …

2
cd ในพาเรนต์เชลล์พร้อมสคริปต์ python
ฉันต้องการโปรแกรมไพ ธ อนของฉัน cd ลงในไดเรกทอรีผ่านเทอร์มินัลเป็นกระบวนการหลัก มีวิธีการทำเช่นนี้? ฉันหวังว่าจะมีอะไรเช่นนี้: $ ./cd.py Desktop/scripts $ pwd /home/mfto/Desktop/scripts ขอบคุณล่วงหน้า!
bash  python 

2
สคริปต์ Linux เพื่อแยกชื่อผู้ใช้จากไฟล์ข้อความ
ฉันเป็นผู้เริ่มต้นที่สคริปต์ แต่ฉันสร้างไฟล์ข้อความtext.datที่มีชื่อผู้ใช้เฉพาะในตำแหน่งไฟล์/home/daniel/text.datและฉันพยายามเรียกใช้สคริปต์ (เรียกว่าaddusers.sh) ซึ่งแสดงชื่อจากไฟล์ข้อความนั้นและจะสร้างบัญชีผู้ใช้ใหม่บน ระบบสำหรับแต่ละบัญชีผู้ใช้ใหม่ที่ระบุในtext.datไฟล์ สำหรับแต่ละบัญชีผู้ใช้ที่สร้างขึ้นให้ต่อท้ายรายการ/home/daniel/logs/useraccounts.logไฟล์ รายการโฆษณาจะมีข้อมูลต่อไปนี้:เพิ่ม | <ชื่อบัญชีผู้ใช้> | <วันและเวลาที่สร้าง>. นี่คือสิ่งที่ฉันมี: #! / bin / ทุบตี echo“ cat text.dat” newuser = grep /home/daniel/text.dat sudo adduser $ newuser
ubuntu  bash 

1
มีวิธีง่ายๆในการจัดการอุปกรณ์จากระยะไกลที่ส่งไปยังลูกค้าหรือไม่
ฉันวางแผนที่จะส่งอุปกรณ์ขนาดเล็ก (เช่น MinnowBoard หรือ CuBox) ให้กับบางคน มีแพคเกจซอฟต์แวร์บางประเภทที่สามารถ "โทรศัพท์กลับบ้าน" เพื่อให้ฉันมีวิธีจัดการมันได้หรือไม่? แนวคิดปัจจุบันของฉันคือการใช้ bash / netcat เพื่อให้เชลล์ย้อนกลับซึ่งจะพยายามเชื่อมต่อกับเซิร์ฟเวอร์ของฉันอย่างสม่ำเสมอ แต่ฉันคิดว่าจะเกิดอะไรขึ้นถ้าอุปกรณ์ระยะไกลมากกว่าหนึ่งพยายามเชื่อมต่อในเวลาเดียวกัน มันจะทำงานอย่างถูกต้องหรือไม่ จากนั้น ive ทำการวิจัยเกี่ยวกับ AutoSSH มีวิธี "NAT-proof" ที่ค่อนข้างง่ายในการทำเช่นนี้หรือไม่?
bash  ssh  nat 

1
แกะไฟล์ทั้งหมดในไดเรกทอรีย่อยและเปลี่ยนชื่อไฟล์หลังจากไดเรกทอรีเดิม [ปิด]
ฉันลงเอยในสถานการณ์ที่แปลก ฉันมี 35 โฟลเดอร์ ตัวแรกมีชื่อว่า 1 ตัวที่สองมีชื่อว่า 2 และต่อไปเรื่อย ๆ ในแต่ละโฟลเดอร์มี 4 ไฟล์ '1.png', '2.png', '3.png', '4.png' ในแต่ละโฟลเดอร์เหล่านี้ฉันต้องการเรียกใช้ "แปลง * .png - ผนวก out.pdf" และเปลี่ยนชื่อแต่ละ 'out.pdf' หลังจากไดเรกทอรีดั้งเดิม (เช่น 'out1.pdf' จากโฟลเดอร์แรก) จากนั้นแยกแต่ละไฟล์ออก pdf จากโฟลเดอร์ดั้งเดิม เป็นไปได้ไหม ฉันได้ลองวนรอบ แต่สิ่งที่ฉันพยายามทำดูเหมือนจะไม่เห็นด้วยกับระบบการตั้งชื่อ
linux  bash 

2
ไฟล์. bashrc ใดที่จะแก้ไข
ใน raspberry pi ของฉัน (กำลังรัน raspbian) ฉันต้องการแก้ไข.bashrcไฟล์เพื่อให้สามารถดำเนินการต่าง ๆ ได้ทุกครั้งที่ล็อกอิน อย่างไรก็ตามฉันพบ.bashrcไฟล์สองไฟล์ในระบบหนึ่งไฟล์อยู่ใน/etc/skelไดเรกทอรีในขณะที่อีกไฟล์อยู่ในโฮมไดเรกทอรีของฉัน ( /home/myusername/.bashrc) ความแตกต่างระหว่างสองไฟล์คืออะไร? เนื้อหาของไฟล์หนึ่งไฟล์แทนที่ไฟล์อื่นหรือไม่? ขอบคุณ.

0
สคริปต์สำหรับปิดการใช้งานการเชื่อมต่ออินเทอร์เน็ตชั่วคราว
ฉันต้องการปิดกั้นการเชื่อมต่ออินเทอร์เน็ตกับฉันเป็นเวลาประมาณ 8 ชั่วโมงหรือมากกว่านั้นบนเครื่อง Linux ของฉัน ฉันไม่มีพลังอะไรเลยเรียกง่ายๆ ifconfig down ifconfig up หรือคำสั่งที่คล้ายกันใช้ไม่ได้กับฉันเพราะฉัน "รู้" ว่าจะหลีกเลี่ยงได้อย่างไร ฉันคาดหวังว่าอัลกอริทึมนี้จะใช้งานได้ ปิดใช้งานการเชื่อมต่ออินเทอร์เน็ตผ่านการปิดการเชื่อมต่อเครือข่ายหรือผ่าน iptables -I INPUT -j DROP และบันทึก iptables config เพื่อที่ฉันจะได้ไม่สามารถเลี่ยงผ่านรีบูตได้ ปิดใช้งานสิทธิ์รูท / sudo ใด ๆ สำหรับผู้ใช้ทั้งหมด หรืออาจเปลี่ยนรหัสผ่านรูต / sudo เป็นสตริงแบบสุ่ม ทำในสิ่งที่ตรงกันข้ามหลังจากช่วงระยะเวลาหนึ่ง ปกติฉันไม่มีเหตุฉุกเฉินเมื่อฉันต้องการการเชื่อมต่ออินเทอร์เน็ตดังนั้นวิธีนี้จึงไม่จำเป็นต้องมีวิธีเลี่ยงผ่านตามความต้องการ ทุกคนสามารถให้วิธีที่ถูกต้องและสำคัญกว่าให้ฉันได้บ้างหรือไม่? ฉันไม่ต้องการสูญเสียสิทธิ์ผู้ใช้ระดับสูงในระบบของฉันเลยเพราะข้อผิดพลาดที่ฉันจะทำในสคริปต์ของฉัน

1
การซิปในขณะที่เก็บไดเรกทอรีที่เกี่ยวข้องจากที่ใดก็ได้
zipพยายามที่จะได้รับการทำงานจาก ฉันต้องการซิปทุกอย่างซ้ำ ๆ ในไดเรกทอรีที่เฉพาะเจาะจงและรักษาโครงสร้างไดเรกทอรีภายในจากเพียงแค่ไดเรกทอรีนั้น แต่ไม่มีเส้นทางที่ผ่านการรับรองโดยสมบูรณ์เป็นส่วนหนึ่งของการเก็บถาวร สมมติว่าฉันมี/path/to/test/tmp/และฉันต้องการทุกอย่างtmp/ที่จะซิปราวกับว่าฉันใช้คำสั่งจากภายในโฟลเดอร์ที่ การ-rตั้งค่าสถานะได้รับสิ่งที่ฉันต้องการ แต่รวมถึงข้อมูลเส้นทางเหนือไดเรกทอรีที่ฉันต้องการขึ้นอยู่กับที่ฉันเรียกใช้: user@MBP:~/path/to/test$ zip -r myarchive.zip tmp/ adding: tmp/foo.txt (deflated 68%) adding: tmp/bar/bar.txt (deflated 41%) adding: tmp/baz/baz/baz.txt (deflated 92%) -jธงตัดทุกอย่าง แต่ชื่อไฟล์: user@MBP:~/path/to/test$ zip -rj myarchive.zip tmp/ adding: foo.txt (deflated 68%) adding: bar.txt (deflated 41%) adding: baz.txt (deflated 92%) สิ่งที่ฉันต้องการคือสิ่งที่จะให้สิ่งนี้กับฉัน: adding: foo.txt (deflated 68%) adding: …
macos  bash  zip 

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