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

Bash (Bourne-Again SHell) เป็นเชลล์ที่ใช้ในอินเตอร์เฟสบรรทัดคำสั่งของ Ubuntu ตามค่าเริ่มต้น

2
รับประวัติทุบตีเพื่อจดจำเฉพาะคำสั่งที่รันด้วยช่องว่างนำหน้า!
คำสั่งที่ดำเนินการในเทอร์มินัลนำหน้าด้วยช่องว่างจะไม่ถูกบันทึกในไฟล์ประวัติคำสั่ง แต่มีวิธีที่จะได้รับการย้อนกลับคือประวัติศาสตร์ควรบันทึกผู้ที่ถูกนำหน้าด้วยพื้นที่?
10 bash  history 

7
วิธีรับ URL จากไฟล์โดยใช้เชลล์สคริปต์
ฉันมีไฟล์ซึ่งประกอบด้วยที่URL ฉันพยายามรับ URL จากไฟล์นั้นโดยใช้เชลล์สคริปต์ ในไฟล์ URL เป็นดังนี้: ('URL', 'http://url.com'); ฉันพยายามใช้สิ่งต่อไปนี้: cat file.php | grep 'URL' | awk '{ print $2 }' มันให้ผลลัพธ์เป็น: 'http://url.com'); แต่ฉันจำเป็นต้องรับเฉพาะurl.comตัวแปรภายในเชลล์สคริปต์ ฉันจะทำสิ่งนี้ได้อย่างไร
10 bash  scripts 

3
วิธีการตั้งค่าคำสั่งในพื้นหลังปิดเทอร์มินัลแล้วนำมันกลับมาที่ fg
ฉันกำลังพยายามหาวิธีเรียกใช้คำสั่งในพื้นหลังแล้วนำมาไว้ด้านหน้าเบื้องหน้าในภายหลัง ฉันเบื่อกับบทเรียนและคำตอบที่ผู้คนบอกว่ามันง่ายเพียงแค่ผนวก&ท้ายคำสั่งเพื่อให้มันทำงานในพื้นหลัง มันทำงานได้ภายในหน้าต่างเทอร์มินัลเดียวเท่านั้น ฉันต้องการใส่คำสั่งลงในพื้นหลังในเทอร์มินัลเดียวแล้วนำมันกลับมาที่พื้นหน้าหลังจากเปิดเทอร์มินัลอีกครั้ง ตัวอย่าง: $ grunt & $ jobs $ [1]+ Running grunt & แน่นอนหลังจากปิดเทอร์มินัลไม่พบงานใดงานหนึ่ง ตัวอย่างถัดไป: $ grunt & disown #the same behavior has: $ setsid grunt & $ jobs $ [nothing] #but ps shows that grunt is working after close terminal, grunt doesn't work ฉันทำอะไรผิด? ใครช่วยอธิบายฉันถึงวิธีการเรียกใช้คำสั่งในพื้นหลังและนำมันกลับมาที่เบื้องหน้า
10 bash  process 

2
เหตุใดลำดับจึงสำคัญในการประมวลผลคำสั่ง bash เหล่านี้
ดูเหมือนจะมีความไม่สอดคล้องกันบางอย่างที่ฉันไม่สามารถเข้าใจเกี่ยวกับเปลือก bash หากฉันดำเนินการ: ls;date;time ผลลัพธ์ของแบบสอบถามทั้งสามจะแสดงตามลำดับ อย่างไรก็ตามในการแลกเปลี่ยนวันที่และตำแหน่งเวลาข้อความแสดงข้อผิดพลาดจะปรากฏขึ้น ดังนั้นถ้าฉันดำเนินการ: ls;time;date bash: syntax error near unexpected token 'date'เกิดข้อผิดพลาดพูดว่า: มีคนอธิบายเรื่องนี้ได้ไหม
10 bash 

5
วิธีการกำหนดสถานะของงานพุ่งพรวดในสคริปต์ทุบตี?
คุณจะทราบได้อย่างไรว่างานพุ่งพรวดกำลังทำงานอยู่ในสคริปต์ Bash? นั่นคือฉันต้องการค่า "บูลีน" เพื่อทำสิ่งที่ชอบ: #!/bin/bash if [ determine_if_job_x_is_running ]; then echo "I see upstart job X is running, please stop it before ..." fi
10 bash  upstart 

1
วิธีกำหนดวงเงินหน่วยความจำบนเชลล์สคริปต์
ฉันมีสคริปต์ PHP ที่ในขณะที่โฟลเดอร์มีไฟล์ XML จะประมวลผลลงในฐานข้อมูล ปัจจุบันเซิร์ฟเวอร์กำลังเรียกใช้ PHP เวอร์ชัน 5.3.10 และมีรายงานข้อผิดพลาดเกี่ยวกับปัญหาหน่วยความจำที่เกิดจากZEND_MM_HEAPภายในลูป สิ่งนี้ทำให้ PHP ไม่เพิ่มหน่วยความจำอย่างเหมาะสมจึงนำไปสู่ข้อผิดพลาดและความผิดพลาดของสคริปต์: zend_mm_heap is corrupted พบวิธีแก้ไขปัญหาบางอย่างแต่ฉันไม่สามารถเข้าถึงการตั้งค่าเซิร์ฟเวอร์ เพื่อจัดการกับสิ่งนี้ฉันได้เตรียมสคริปต์ทุบตีต่อไปนี้เพื่อดูแลลูปโดยปล่อยให้สคริปต์ PHP รับผิดชอบโดยการประมวลผลไฟล์ XML เท่านั้น: #!/bin/bash # Check for files to process # If files are present, call # the PHP script DIR="/path/to/dir/with/files" while [ "$(ls -A $DIR)" ]; do php /path/to/php/script/myscript.php done …

3
ย้ายโปรแกรมที่กำลังรันไปยังแบ็คกราวน์ใน bash
ถ้าผมใช้โปรแกรมในทุบตีผมสามารถระงับได้โดยการกด+Ctrl Zหากฉันต้องการให้โปรแกรมทำงานต่อไปฉันสามารถใช้bgคำสั่งได้ มีวิธีที่จะทำให้โปรแกรมอยู่ในพื้นหลังโดยตรงโดยไม่ต้องพิมพ์bgหรือไม่? ชี้แจง : ฉันต้องการให้โปรแกรมอยู่ในพื้นหลังเมื่อมันทำงานอยู่โดยไม่ระงับ
10 bash 

3
งาน cron รายวันไม่ทำงาน
ภาพรวมอย่างรวดเร็ว: ฉันมีสคริปต์ที่จะสำรองข้อมูลทุกวันที่เก็บซอร์สโค้ดของฉันจาก SVN ลงใน tarball สำหรับวันนั้น ฉันได้ทดสอบสคริปต์และทำงานได้ดีตราบใดที่ฉันเรียกใช้เป็น sudo เนื่องจากการเป็นเจ้าของไดเรกทอรีผลลัพธ์ ดังนั้นปัญหาคือฉันต้องการเรียกใช้รายวันนี้ดังนั้นฉันจึงใส่ลิงค์ไว้ในไดเรกทอรี /etc/cron.daily นี่คือเนื้อหาของไดเรกทอรี thom@spenser:/etc/cron.daily$ ls -l total 60 -rwxr-xr-x 1 root root 189 2011-09-14 02:21 apport -rwxr-xr-x 1 root root 15535 2011-10-06 11:30 apt -rwxr-xr-x 1 root root 314 2011-08-08 16:57 aptitude lrwxrwxrwx 1 root root 24 2012-02-28 11:05 backup -> …
10 bash  cron 

2
วิธีการเปลี่ยนไดเรกทอรีโดยใช้สคริปต์
ฉันมีสคริปต์นี้ #!/bin/bash cd /home/user/somedir pwd มันทำงานได้ตามที่คาดไว้ แต่ฉันต้องการให้สคริปต์นี้ส่งฉันไปที่ / home / user / somedir แต่ฉันยังคงอยู่ใน dir เดียวกัน วิธีเขียนสคริปต์ที่จะส่งฉัน (ใน gnome-terminal) ไปยัง / home / user / somedir?
10 bash 

9
ไม่สามารถเปิดรหัส Visual Studio
ฉันติดตั้ง VS Code บนแล็ปท็อปของฉันด้วย Ubuntu 16.04 LTS ฉันได้ลองวิธีการติดตั้งหลายวิธีด้วยผลลัพธ์ที่เหมือนกัน เมื่อเร็ว ๆ นี้ผมทำตามคำแนะนำที่ "ใหม่" จาก Cactux ที่นี่ ฉันได้ลองเปิดแอปพลิเคชั่นสองวิธีโดยไม่มีผลกระทบ เมื่อฉันเปิดโปรแกรมจาก 'แอปพลิเคชัน' ไอคอนจะปรากฏในตัวเรียกใช้งานประมาณ 15 วินาทีจากนั้นจะหายไป ไม่มีข้อผิดพลาดปรากฏขึ้น เมื่อฉันเปิดเทอร์มินัลและประเภทcodeคำสั่งไม่ทำอะไรเลยและฉันจะได้รับพรอมต์ใหม่ภายในเวลาไม่ถึงวินาที ฉันกำลังดิ้นรนกับสิ่งที่ต้องลองตั้งแต่ฉันค่อนข้างใหม่กับ Linux which codeผลผลิต/usr/bin/codeซึ่งเป็นสคริปต์ทุบตี ที่นี่ฉันอยู่นอกความลึก เนื้อหาของสคริปต์ /usr/bin$ cat code #!/usr/bin/env bash # # Copyright (c) Microsoft Corporation. All rights reserved. # Licensed under the MIT License. See …

3
`setx` เทียบเท่าใน Ubuntu
Windows มีคำสั่ง powershell setxซึ่งเรียกว่าสร้างหรือแก้ไขตัวแปรสภาพแวดล้อมในผู้ใช้หรือสภาพแวดล้อมระบบ Ubuntu มีคำสั่งที่คล้ายกันหรือไม่โดยใช้nanoหรือviเพียงหนึ่งบรรทัดเพื่อเพิ่มหรืออัปเดตระบบตัวแปรสภาพแวดล้อมที่กว้าง โซลูชันที่ดำเนินการ หนึ่งบรรทัดเพื่อเพิ่ม / อัปเดต grep env_name /etc/environment && sed -i.bak 's/env_name=.*/env_name="env_value"/' /etc/environment || echo 'env_name="env_value"' >> /etc/environment

4
ชุดตัวแปรสภาพแวดล้อมนี้อยู่ที่ไหน
เมื่อใดก็ตามที่ฉันเปิดเทอร์มินัลฉันมีชุดตัวแปรนี้: $ echo $http_proxy http://127.0.0.1:8888/ ตัวแปรนี้ถูกตั้งไว้ที่ไหน? ผมได้ตรวจสอบ.bashrc, .bash_profile, /etc/bash.bashrcและ/etc/environmentและก็ไม่มีที่ไหนมี ?! ฉันดูที่การตั้งค่าระบบในส่วนเครือข่ายและพร็อกซีว่างเปล่า

2
$ (คำสั่ง) & ทำอะไร
ฉันเห็นไวยากรณ์ต่อไปนี้ในสคริปต์ทุบตี: >$(command) & ฉันรู้ว่าเครื่องหมายแอมเปอร์แซนด์&ในตอนท้ายทำให้คำสั่งรันในพื้นหลัง แต่ฉันไม่เคยเห็นมันมารวมกับเครื่องหมายดอลลาร์บวกเครื่องหมายวงเล็บรอบคำสั่ง มันทำอะไร?
10 bash 

1
ชุดตัวแปร $ PATH ของระบบอยู่ที่ไหน
ฉันใช้ Ubuntu Desktop 14.04 และฉันกำลังใช้เชลล์ที่ไม่ใช่การเข้าสู่ระบบ เมื่อฉันเปิดเทอร์มินัล GUI อันดับแรกเชลล์เซสชันที่ไม่ใช่การเข้าสู่ระบบจะอ่านไฟล์เริ่มต้นต่อไปนี้: /etc/bash.bashrc ~/.bashrc เปลือกหอยที่ไม่ได้เข้าสู่ระบบสืบทอดสิ่งแวดล้อมจากการปกครองซึ่งเป็นเปลือกเข้าสู่ระบบเพื่อให้เซสชั่นยังอ่านแฟ้มเริ่มต้นต่อไปนี้: /etc/profile ~/.bash_profile แต่ผมไม่สามารถหา$PATHสำหรับเส้นทางทั้งระบบชอบ/bin, /sbin, /usr/bin, /usr/sbinชุดในใด ๆ ของไฟล์เหล่านี้ ซึ่งเป็น$PATHที่ตั้งไว้สำหรับไดเรกทอรีเหล่านี้หรือไม่

4
วิธีปิดใช้งานโหมดสลีปและไฮเบอร์เนตชั่วคราวจากบรรทัดคำสั่ง
ดูเหมือนว่ามีหลายวิธีที่การตั้งค่าของอูบุนตูสามารถจัดการได้อย่างถาวรในโหมดสลีปเมื่อต้องการตราบเท่าที่ตรงตามเงื่อนไขที่กำหนดไว้ อย่างไรก็ตามนี่เป็นวิธีแก้ไขปัญหาที่ถาวรมากขึ้นซึ่งไม่ได้คำนึงถึงภารกิจที่หายากซึ่งอาจต้องการใช้นโยบายมาตรฐานชั่วคราว ปัญหาที่ฉันพบคือฉันมีสคริปต์ที่ใช้เวลานานมากในการสำรองข้อมูลและฉันไม่ต้องการให้คอมพิวเตอร์เข้าสู่โหมดสลีปหรือไฮเบอร์เนตในขณะที่กระบวนการนั้นกำลังทำงานอยู่ซึ่งโดยปกติจะใช้เวลาประมาณ 30-50 นาที ดังนั้นจึงมีคำสั่งที่ฉันสามารถรวมไว้ในสคริปต์สำรองของฉันที่จะป้องกันไม่ให้ระบบจำศีล / หลับขณะสคริปต์สำรองทำงานและยังมีคำสั่งให้กู้คืนนโยบายพลังงานเริ่มต้นปกติหลังจากการสำรองข้อมูลเสร็จสิ้นหรือไม่ สิ่งที่ต้องการ #!/usr/bin/bash #disable normal powerpolicy disable-power-policies backup /dev/sda /dev/sdb /dev/fioa /dev/fiob #enable power policies. enable-power-policies

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