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

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

5
ฉันจะเปรียบเทียบสองไฟล์กับเชลล์สคริปต์ได้อย่างไร
ให้สองไฟล์ฉันต้องการเขียนเชลล์สคริปต์ที่อ่านแต่ละบรรทัดจาก file1 และตรวจสอบว่ามีใน file2 หรือไม่ หากไม่พบบรรทัดมันควรเอาท์พุทสองไฟล์ต่างกันและออก ไฟล์สามารถมีหมายเลขคำหรืออะไรก็ได้ ตัวอย่างเช่น : ไฟล์ 1: Hi! 1234 5678 1111 hello file2: 1111 5678 1234 Hi! hello ในกรณีนี้สองไฟล์ควรเท่ากัน ถ้า file2 มี "hello !!!" แทนที่จะเป็น "สวัสดี" ดังนั้นไฟล์จะแตกต่างกัน ฉันใช้สคริปต์ทุบตี ฉันจะทำสิ่งนี้ได้อย่างไร มันไม่สำคัญที่ฉันต้องทำในวงซ้อนกัน แต่นั่นคือสิ่งที่ฉันคิดว่าเป็นวิธีเดียว ขอบคุณสำหรับความช่วยเหลือของคุณ.
10 bash  unix  script 

5
Ubuntu / Gnome: เปิดแอปพลิเคชั่นในพื้นที่ทำงานเฉพาะ
บอกให้แอปพลิเคชันเปิดในพื้นที่ทำงานเฉพาะได้อย่างไร ข้อมูลเพิ่มเติม: ฉันต้องการมี C ++ IDE ในเวิร์กสเปซ 2, Java IDE ของฉันในเวิร์กสเปซ 3 และอีเมลเบราว์เซอร์และเบ็ดเตล็ดในเวิร์กสเปซสี่ ฉันยังใช้เชลล์สคริปต์ที่ทำงานเมื่อเข้าสู่ระบบ: #!/bin/bash gnome-terminal & # WS 1 netbeans-6-9-1 & # WS2 qtcreator-2-0-1 & # WS 3 firefox & # WS 4 thunderbird & # WS 4 แน่นอนว่ามันเปิดขึ้นในพื้นที่ทำงานปัจจุบันทั้งหมด ... มีวิธีให้ฉันระบุพื้นที่ทำงานที่แต่ละคำสั่งควรเริ่มหรือไม่ ขอบคุณล่วงหน้า!

2
ฉันขอเก็บ และ .. จาก. * การขยายตัว?
ฉันมักจะพบว่ามันน่ารำคาญ (หรือแย่กว่า) เมื่อฉันพิมพ์ command .* ใน bash และคำสั่งใช้กับไดเร็กทอรีพาเรนต์และไดเร็กทอรีปัจจุบัน มีบางตัวเลือกเปลือกหรือการกำหนดค่าอื่น ๆ ที่ฉันสามารถปรับแต่งเพื่อให้ทุบตียกเว้น.และ..จากการขยายตัวของ.*?

8
Linux: เปลี่ยนชื่อไฟล์ แต่ให้นามสกุล?
ใน Windows / DOS ฉันสามารถพูดrename myfile.* yourfile.*เพื่อเปลี่ยนชื่อได้ แต่เก็บนามสกุลไว้ สิ่งนั้นสำเร็จบน Linux ได้อย่างไร? หน้าคนแนะนำวิธีการเปลี่ยนนามสกุล แต่นั่นคือสิ่งที่ตรงกันข้ามกับที่ฉันต้องการ โบนัส: ที่จริงผมต้องการที่จะนำวันที่สร้างภาพให้เป็นชื่อไฟล์เพื่อให้ได้สิ่งที่ต้องการ 20091231 2359 New Year.jpgฉันกลัวว่าฉันต้องมีชุดคำสั่งที่ไม่สำคัญเพื่อให้บรรลุเป้าหมายนั้น
10 linux  bash  rename 

3
วิธีใช้การติดตั้ง windows ของ java จาก BashOnWindows10
ฉันไม่สามารถเรียกใช้ java.exe จาก Windows รุ่น BashOnWindows10 ได้ มีอยู่ใน PATH แต่การเรียกใช้ล้มเหลวอย่างเงียบ ๆ เป้าหมายของฉันคือหลีกเลี่ยงการติดตั้ง JDK / JRE อีกครั้งใน WSL ขณะที่ฉันกำลังอัปเดตผู้สร้างฉันคาดหวังว่าจะสามารถเรียกใช้แอปพลิเคชัน windows ได้ ความคิดใด ๆ ว่าทำไมสิ่งนี้ถึงเกิดขึ้น? อย่างไรก็ตามฉันสามารถเปิดการติดตั้ง Python บน Windows ได้สำเร็จ ทุบตี username@PC:~$ which java.exe /mnt/c/ProgramData/Oracle/Java/javapath/java.exe username@PC:~$ java.exe username@PC:~$ <<<nothing happens username@PC:~$ which python.exe /mnt/c/Python34/python.exe username@PC:~$ python.exe Unable to translate current working directory. …

2
Bash อนุญาตให้ใช้ไฟล์ / โฟลเดอร์ใน Windows 10
mkdirสร้างโฟลเดอร์ที่มีการอนุญาต 777 โดยค่าเริ่มต้น ฉันจะเริ่มต้น 755 ได้อย่างไร นอกจากนี้เมื่อฉันโคลนที่เก็บคอมไพล์ไฟล์และโฟลเดอร์ทั้งหมดจะถูกดาวน์โหลดด้วยการอนุญาต 777! ฉันจะแก้ไขปัญหานี้ได้อย่างไร ขอบคุณ
10 ubuntu  bash  chmod  mkdir 

3
DNS ไม่ทำงานใน Bash (Ubuntu) บน Windows โดยใช้ VPN
ฉันเพิ่งเริ่มทดสอบ "Bash บน Ubuntu บน Windows" และฉันชอบ! เพียงแค่ปัญหาคือฉันต้องใช้ VPN เพื่อเข้าถึงเซิร์ฟเวอร์แบ็กเอนด์และนักพัฒนาของเรา และเมื่อพยายาม (เช่น) ssh ไปยังเซิร์ฟเวอร์ dev ของเราด้วยเชลล์ Windows Bash มันไม่สามารถแก้ไขชื่อโฮสต์ได้ โปรดทราบว่าฉันสามารถใช้ ssh โดยใช้ที่อยู่ IP และชื่อโฮสต์เหล่านี้ทำงานได้ดีในที่อื่นใน Windows เช่นเดียวกับ putty, cmd ปกติ, File Explorer และอื่น ๆ ฉันยังตรวจสอบ /etc/resolv.conf และสามารถดูรายชื่อเซิร์ฟเวอร์ที่ทำงานได้ที่นี่ จากที่นี่ทักษะการสร้างเครือข่ายของฉันสั้นโดยเฉพาะกับ Linux ดังนั้นโปรดช่วยด้วย: D
10 windows  ubuntu  bash  vpn  dns 

2
ฉันจะใช้ wget เพื่อส่งข้อมูล POST ได้อย่างไร
ฉันต้องการที่จะทำตามคำขอ POST ไปยังเซิร์ฟเวอร์ของฉันโดยใช้ wget: email=abc@abc.com&file1=@FILE_HERE&file2=@FILE_HERE ในคำขอดังกล่าวข้างต้นมีสามพารามิเตอร์ POST เรียกว่าemail, file1และfile2ที่emailมีอีเมลของผู้ใช้และfile1, file2มีไฟล์ ฉันจะส่งมันโดยใช้wget? curlฉันไม่ต้องการที่จะใช้
10 linux  bash  http  wget 

1
ฉันจะเปลี่ยนตำแหน่งไฟล์. bash_history ได้อย่างไร
ฉันใช้ CentOS 6.x และต้องการย้าย. bash_history ไปยังตำแหน่งอื่น โฮมไดเรกทอรีของผู้ใช้ของฉันคือ (เพราะฉันเรียกใช้ VPS) /var/www/vhost/<domain>.<tld>ซึ่งสามารถเข้าถึง FTP ได้ (และควรจะเป็น) ด้วยเหตุนี้ฉันได้เปลี่ยนการAuthorizedKeysFileเชื่อมต่อ SSH ผิดปกติ~/.ssh/authorized_keysเนื่องจากการเชื่อมต่อ FTP จะสามารถค้นหาได้ง่าย ในเวลาเดียวกันฉันต้องการย้าย.bash_historyไฟล์ไปยัง/home/%u/.bash_historyที่ที่%uผู้ใช้ปัจจุบันอยู่

2
วิธีรับรายการกระบวนการลูกทั้งหมดที่เกิดจากสคริปต์
บริบท: ผู้ใช้ระบุสคริปต์ที่กำหนดเองเพื่อเรียกใช้ สคริปต์เหล่านี้อาจเป็นประเภทใด ๆ เช่นสคริปต์เพื่อเริ่มโปรแกรม GUI หลาย ๆ บริการแบ็กเอนด์ ฉันไม่สามารถควบคุมวิธีการเขียนสคริปต์ได้ สคริปต์เหล่านี้สามารถเป็นประเภทการบล็อกเช่นการดำเนินการรอจนกว่ากระบวนการลูกทั้งหมด (โปรแกรมที่ทำงานตามลำดับ) ออก #exaple of blocking script echo "START" first_program second_program echo "DONE" หรือประเภทการปิดกั้นที่ไม่ใช่ประเภทที่แยกเด็กกระบวนการในพื้นหลังและออกจากสิ่งที่ชอบ #example of non-blocking script echo "START" first_program & second_program & echo "DONE" ฉันพยายามทำอะไรให้สำเร็จ ผู้ใช้ให้สคริปต์สามารถเป็นหนึ่งในสองประเภทข้างต้นหรือผสมกันทั้งสอง งานของฉันคือเรียกใช้สคริปต์และรอจนกว่ากระบวนการทั้งหมดที่เริ่มต้นโดยจะออกจากนั้นปิดโหนด หากเป็นประเภทการบล็อกกรณีง่าย ๆ คือรับ PID ของกระบวนการดำเนินการสคริปต์และรอจนกระทั่ง ps -ef | grep -ef PID …

10
วิธีการหาดัชนีของคำในสตริงในทุบตี?
ในสคริปต์ทุบตี ฉันมีสตริงที่มีหลายคำคั่นด้วยช่องว่างหนึ่งหรือมากกว่าหนึ่งช่องว่าง เช่น: Name Age Sex ID Address หากฉันต้องการค้นหาคำใด ๆ ตัวอย่างเช่นฉันต้องการค้นหาดัชนีของคำว่า "อายุ" ฉันจะทำอย่างไร มีคำสั่งใดบ้างที่จะส่งคืนหมายเลขดัชนีของคำที่ฉันต้องการโดยตรงหรือไม่? ขอบคุณ
10 linux  bash  search 

3
ย้อนกลับการค้นหาประวัติด้วยนิพจน์ทั่วไป
ฉันกำลังมองหาเครื่องมือที่จะช่วยให้การค้นหาแบบย้อนกลับเพิ่มขึ้นด้วยการสนับสนุนการแสดงออกปกติอย่างง่าย ๆ (หรือเพียงแค่การแข่งขันหลายรายการ) ตัวอย่างเช่นหากฉันต้องการค้นหาคำสั่ง 'foo bar baz' ฉันสามารถทำสิ่งต่อไปนี้เพื่อค้นหาคำสั่งได้อย่างรวดเร็ว: CRTL-R (เริ่มค้นหา) พิมพ์ 'foo' (จับคู่คำสั่งล่าสุดโดยใช้ foo) พิมพ์ 'foo | baz' ต่อไป (ตรงกับคำสั่งล่าสุดที่มีคำว่า 'foo' และ 'baz' สิ่งนี้มีอยู่จริงหรือไม่? ถ้าไม่ฉันจะนำไปใช้กับตัวเองได้อย่างไร
10 bash  history  zsh 

1
ls ของ Ubuntu สามารถแสดงอักขระยูนิโค้ดได้ แต่ทรีไม่สามารถทำได้แม้แต่กับ tree --charset unicode
อูบุนตู 10.04 ของlsสามารถแสดงตัวอักษร Unicode แต่treeไม่สามารถแม้จะมีหรือtree --charset unicode utf8มีวิธีแก้ไขไหม echoสามารถตีความอักขระยกเว้นยกเว้นcat list.txt | echo -eจะไม่ทำงาน ( list.txtมาจาก tree > list.txt) อัปเดต: tree -H www.somewhere.comสามารถส่งออก Unicode (ควรเป็น UTF-8) แต่ตอนนี้ดูเหมือนว่านี่เป็นวิธีเดียวเท่านั้น - เป็นหน้าเว็บ $ ls -R .: list2.txt list.txt 久未在遊行場合露面的前總統李登輝.txt 遊行 ./遊行: 大家2.txt 大家.txt $ tree --charset unicode . |-- list2.txt |-- list.txt |-- \344\271\205\346\234\252\345\234\250\351\201\212\350\241\214\345\240\264\345\220\210\351\234\262\351\235\242\347\232\204\345\211\215\347\270\275\347\265\261\346\235\216\347\231\273\350\274\235.txt …
10 ubuntu  bash  unicode  ls  tree 

2
แท็บที่ใช้งานไม่สามารถแยกได้ในเทอร์มินอล gnome
ฉันใช้ Gnome 2.30.2 และ Gnome Terminal 3.0.1 บน Debian Sid ของฉันและเมื่อเร็ว ๆ นี้แท็บที่ใช้งานอยู่แทบจะแยกไม่ออกจากแท็บอื่น ๆ จริงๆแล้วมันเป็นสีเดียวกัน การเปลี่ยนชุดรูปแบบไม่ได้ช่วยอะไรมากและการใช้ชุดรูปแบบความคมชัดสูงเท่านั้นสร้างความแตกต่างซึ่งเป็นชุดรูปแบบที่ฉันไม่ต้องการใช้ มีการทดลองกับสคริปต์ ~ / .gtkrc-2.0 แต่ดูเหมือนว่าจะไม่ทำงานเลยแม้แต่ครั้งเดียวหลังจากรีสตาร์ท X-Server style "gnome_terminal_notebook" { #fg[NORMAL] = "#00ff00" bg[NORMAL] = shade (1.25, "#3c3b37") } widget "*TerminalWindow.*.GtkNotebook*" style "gnome_terminal_notebook" ใครสามารถทำให้กระจ่างเกี่ยวกับวิธีทำให้แท็บที่ใช้งานแตกต่างได้มากขึ้น?

2
จะใช้ Ctrl + C เพื่อฆ่าโพรเซสพื้นหลังทั้งหมดที่เริ่มต้นในสคริปต์ Bash ได้อย่างไร?
ArchLinux (Manjaro) ฉันใช้ไฟล์ทุบตีหนึ่งไฟล์ มันทำงาน 2 กระบวนการ (คำสั่ง) &โดยใช้ แต่เมื่อฉันกดCtrl+ Cเพื่อหยุดโปรแกรม - หนึ่งกระบวนการตายและอีกกระบวนการหนึ่งทำงานต่อไป ฉันจะหยุดกระบวนการทั้งสองได้อย่างไร หรือฉันจะเขียนสคริปต์ใหม่เพื่อฆ่าสองกระบวนการนี้ได้อย่างไร

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