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

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

5
ฉันจะบอกให้ mkdir ลองสร้าง dir1 ได้อย่างไรและถ้ามันมีอยู่แล้วให้สร้าง dir2 เป็นต้นจนกว่าจะพบชื่อที่ไม่มีอยู่จริง
ฉันต้องการสร้างไดเรกทอรีที่มีหมายเลขที่ท้าย ex "dir1" และเพิ่มจำนวนนั้นถ้าไดเรกทอรีนั้นมีอยู่แล้วจนกว่าจะพบชื่อไดเรกทอรีที่ไม่มีอยู่และฉันต้องทำในบรรทัดเดียวใน บรรทัดคำสั่ง Linux คล้ายกับ: mkdir --increment dir$ ฉันจะทำยังไงต่อไป? จนถึงตอนนี้ฉันได้รับสิ่งนี้: dir=output; n=0; mkdir -p $dir$n; if test -d $dir$n; then n=$((n+1)); echo $dir$n; fi แต่มันก็แค่สะท้อนชื่อ dir ถัดไปฉันต้องการให้มันรันคำสั่งซ้ำ


2
การลบไฟล์ที่ตรงกับการแสดงออกปกติช่วงตัวเลข
ฉันมีโฟลเดอร์ที่มีไฟล์มากมาย ไฟล์ข้อมูลบางไฟล์มีป้ายกำกับ 1, 2, 3, ... , 300 ฉันต้องการลบไฟล์ข้อมูลเหล่านี้โดยใช้เทอร์มินัล ฉันจะทำสิ่งนี้ได้อย่างไร ฉันต้องการทำบางสิ่งเช่น rm some-regular-expression-giving-numbers-from-0--300
13 bash  terminal  regex  rm 

2
มีวิธีการใช้ ctrl-r หลังจากพิมพ์ส่วนหนึ่งของคำสั่งในทุบตี?
ในทุบตีCtrl+ rคำสั่งจะเป็นประโยชน์มากผมพิมพ์Ctrl+ r whateverและมัน searchs whateverประวัติของฉันสำหรับคำสั่งที่มีคำว่า แต่ถ้าฉันพิมพ์whateverและรู้ว่าฉันต้องการค้นหาคำนั้นและกดCtrl+ rไม่มีอะไรเกิดขึ้น มีวิธีการกดปุ่มและมันทำงานอย่างไรถ้าฉันพิมพ์Ctrl+ r whateverแทนที่จะเป็นwhatever Ctrl+ r? ฉันมีดังต่อไปนี้ในของฉัน.inputrc: "\C-p": history-search-backward แต่จะใช้งานได้ก็ต่อเมื่อจุดเริ่มต้นของบรรทัดเหมือนกัน

5
ไดเร็กทอรีใดที่ path `// 'แสดงใน Linux
เมื่อฉันต้องการที่จะกลับไปไดเรกทอรีระดับบนในลินุกซ์โดยการพิมพ์cd ..ผม cd //typo-ED สำหรับความประหลาดใจที่ยิ่งใหญ่ของฉันไม่มีการรายงานข้อผิดพลาด username@hostname://$มีอะไรมากกว่าที่พรอมต์จะกลายเป็น lsระบุว่าตอนนี้ฉันอยู่ที่ไดเรกทอรีรูท นี่เป็นข้อบกพร่องหรือคุณสมบัติของเชลล์หรือไม่? หากคุณสมบัติเป็น//นามแฝง/คืออะไร? เปลือกของฉันคือ GNU ทุบตีรุ่น 4.1.5 (1) - ปล่อย (i686-linux-gnu) ขอขอบคุณและขอแสดงความนับถือ.

5
จะลบตัวอักษรต่อท้ายในชื่อไฟล์ใน Bash ได้อย่างไร?
ฉันมีไฟล์มีเดียมากมายเช่นเดียวกับที่อยู่ด้านล่าง: tvshow.s01e11]Bloodlines.avi tvshow.s01e12]suffer.avi tvshow.s01e13]NotMe.avi ฉันต้องการเปลี่ยนชื่อพวกเขาเป็น tvshow.s01e11.avi tvshow.s01e12.avi tvshow.s01e13.avi ฉันพยายามใช้การเปลี่ยนชื่อ แต่เห็นได้ชัดว่าฉันไม่ได้รับไวยากรณ์ที่ถูกต้องเพราะมันล้มเหลว
13 linux  bash  rename 

3
ใช้ข้อความซ้ำในคำสั่ง bash
หากฉันกำลังเขียนคำสั่งแบบยาวหรือเพียงแค่พิมพ์พา ธ ไฟล์ขนาดใหญ่มีอะไรบ้างที่ฉันสามารถ "นำ" กลับมาใช้ใหม่ได้ด้วยทางลัดคำสั่งบ้าง เช่น: 1cp /home/myuser/really/big/file/here/and/there.png /home/myuser/really/big/file/here/and/there.png.bkp ฉันต้องพิมพ์อีกครั้งจริง ๆ หรือไม่?
13 bash  cp 

1
วิธีรับ Plist Plist เพื่อรันคำสั่ง bash ที่ซับซ้อน 1 บรรทัด
ฉันมีคำสั่ง bash ที่ค่อนข้างซับซ้อนซึ่งรวมไปถึงไพพ์บางส่วนและประโยค if-then-else ไม่พูดถึงการเรียกโปรแกรมระบบ (เช่นgrep) ที่มีพารามิเตอร์หลายตัว มีวิธีสร้าง plist ที่ launchd จะโหลดและรันคำสั่งที่ซับซ้อนนี้โดยตรงหรือไม่? (ตรงข้ามกับการที่ผู้อ้างอิงอ้างอิงไฟล์ bash script ที่มีคำสั่งที่ซับซ้อน) ขอบคุณ
13 macos  bash  launchd  plist 

3
vim ไม่ได้โหลดไฟล์ _vimrc เมื่อเรียกใช้จาก git bash
ฉันได้ดาวน์โหลดและติดตั้ง git สำหรับ windows (msysgit) และใช้งานบ่อยๆรวมถึง git bash เมื่อใดก็ตามที่ฉันเรียกใช้เป็นกลุ่มจาก git bash ไฟล์ _vimrc ของฉันจะไม่ถูกโหลดเนื่องจากมีการเน้นไวยากรณ์หรืออะไรก็ตาม เมื่อฉันเรียกใช้คำสั่งเดียวกันเพื่อเริ่มต้นเป็นกลุ่มแบบฟอร์มในในบรรทัดคำสั่ง windows (cmd) แทนการทุบตี git มันทำงานตามที่อธิบายไว้ในไฟล์ _vimrc ของฉัน การปรับแต่งเดียวที่ฉันทำเพื่อ git bash คือการเพิ่ม bash_profile ต่อไปนี้ใน C: \ Program Files (x86) \ Git \ etc alias up='cd ..' alias ls='ls --color' alias la='ls -a' alias vimconfig='vim /c/Program\ Files/Vim/_vimrc' …
13 windows-7  bash  vim  git  vimrc 

3
โฟลเดอร์ linux merge: rsync?
ฉันมีโฟลเดอร์สองชุด src/ dest/ ฉันต้องการรวมพวกเขาทำต่อไปนี้: หากไฟล์มีเฉพาะในsrcฉันต้องการที่จะย้ายไปdest หากไฟล์มีเฉพาะdestฉันต้องการให้ละเว้น IE เพียงอย่างเดียว หากไฟล์มีทั้งคู่และมีเนื้อหาเหมือนกัน (ขนาดและวันที่เดียวกัน IE) ให้ลบออกsrc หากไฟล์ที่อยู่ในทั้งสองและไม่ได้มีเนื้อหาเหมือนกันทิ้งในsrcดังนั้นฉันด้วยตนเองสามารถผสานพวกเขา ควรมีไฟล์จำนวนน้อยมาก (ระหว่าง 0% ถึง 5% ของไฟล์ทั้งหมด) ในหมวดหมู่สุดท้ายนี้ แต่ฉันไม่ทราบวิธีการแยกทั้งในและต่างจากในทั้งสอง แต่แตกต่างกัน ฉันพยายามที่จะคิดออกว่าจะทำอย่างไรกับrsyncแต่ไม่เป็นประโยชน์
13 linux  bash  rsync 

2
ปัญหาเคอร์เซอร์ประวัติเทอร์มินัล Mac / iTerm
บ่อยครั้งที่ฉันรันคำสั่งใน Terminal.app หรือ iTerm กดลูกศรขึ้นเพื่อกลับไปแก้ไขและเคอร์เซอร์จะกระโดดไปที่บรรทัดด้านบนหรือที่อื่นในตำแหน่งที่ไม่ถูกต้อง มันเกิดขึ้นโดยเฉพาะอย่างยิ่งเมื่อคำสั่งยาวจนมันล้อมรอบไปยังบรรทัดถัดไป บางครั้งคำสั่งแบบยาวเหล่านี้ทั้งหมดปรากฏในหนึ่งบรรทัดและบางครั้งคำสั่งเหล่านั้นแสดงอย่างถูกต้องในหลายบรรทัด สิ่งนี้เกิดขึ้นทั้งใน iTerm และ Terminal.app ยังเกิดขึ้นในโหมดทั้ง vi และ emac ทำให้ไม่สามารถใช้งานได้ ความคิดใด ๆ ขอบคุณ!

5
ฉันจะรับข้อมูลพรอกซีของ Mac OS X ในสคริปต์ Bash ได้อย่างไร
ฉันมีสถานที่ตั้งเครือข่ายหลายแห่งบนแล็ปท็อปของฉัน: ที่ทำงานที่บ้าน ฯลฯ ที่ทำงานหนึ่งทั้งหมดมีการตั้งค่าพร็อกซีเซิร์ฟเวอร์ในขณะที่ที่อื่นไม่ได้ตั้งค่า ใช้งานได้ดีกับแอปพลิเคชั่น OSX - Safari, Mail, แม้แต่ Firefox และ Thunderbird ด้วยปลั๊กอินSystem Proxy สำหรับการใช้งานขั้วเช่นgit, svn, gemและcurlฉันมีต่อไปนี้ในของฉัน.bash_profile: export HTTP_PROXY='http://proxy.mycompany.com:80' export http_proxy=$HTTP_PROXY คำถามของฉันคือ: มีวิธีทำให้ตัวแปรที่ส่งออกค้นหาค่าจากตำแหน่งปัจจุบันของระบบของฉันหรือไม่? ฉันชอบที่จะทำแบบไดนามิก (ดังนั้นถ้าฉันเปลี่ยนสถานที่ในช่วงเทอร์มินัลมันจะเปลี่ยน) แต่ฉันจะมีความสุขกับหนึ่งที่ตั้งไว้เมื่อ.bash_profileวิ่ง (หมายถึงฉันจะต้องเริ่มเซสชั่นขั้วใหม่ เมื่อฉันเปลี่ยนสถานที่) ขอบคุณ!
13 macos  bash  terminal  proxy 

2
เทอร์มินัลอูบุนตูฉันจะ“ แท็บ” (เติมข้อความอัตโนมัติ) ชื่อไฟล์เป็น cmd-style (ตัวเลือกวงจร) ได้อย่างไร?
โดยทั่วไปฉันต้องการเปลี่ยนเทอร์มินัลอูบุนตูใช้งานได้เพื่อให้ฉันสามารถวนรอบตัวเลือกทั้งหมดเมื่อแท็บ i (ในแถวบรรทัด cmd) และไม่แสดงรายการตัวเลือกตามค่าเริ่มต้น? ฉันใช้ bash, ubuntu 9.04 ฉันเห็นความเป็นไปได้บางอย่างใน ".bashrc" แต่ต้องมีใครซักคนที่แก้ไขปัญหานี้แล้วหรือไม่

4
ฉันจะแก้ไขข้อความแจ้งของฉันในโหมดเชลล์ emacs ได้อย่างไร
ฉันกำลังเขียนโปรแกรมบนเครื่องของเพื่อนร่วมงาน เขามี emacs รุ่นหนึ่ง (23.1.1) ที่ฉันไม่เคยใช้มาก่อน ปัญหาของฉันคือเมื่อฉันไปที่โหมด shell bash prompt ของฉันจะเป็นดังนี้: ^[]0;jay@socrates:~^G[jay@socrates]$ ฉันได้PS1ตั้งค่าให้ในของฉัน'[\u@\h]\$ ' .bashrcมันควรจะเป็นแบบนี้: [jay@socrates]$ นี่คือลักษณะที่ปรากฏในเชลล์ปกติ ฉันได้ตรวจสอบด้วยว่า PS1 ถูกตั้งค่าเป็นค่าที่ถูกต้องในเชลล์ emacs ดังนั้นตอนนี้ฉันก็เลยคิดไม่ออก ฉันจะได้รับพรอมต์ของฉันเพื่อดูวิธีที่ฉันต้องการได้อย่างไร ผมเคยเห็นคำแนะนำบางอย่างที่จะใช้termหรือแทนeshell มีปัญหาการแจ้งเตือนเช่นเดียวกับข้างต้นและละเว้นทั้งหมดของฉันที่ไม่ได้ช่วยจริงๆshelltermeshellPS1
13 bash  emacs  prompt 

2
ฉันจะเปิดใช้งานประวัติคำสั่ง bash ได้อย่างไร
ฉันใช้ bash shell กับ SUSE Linux Enterprise 10 sp1 บางคนถูกทุบตีประวัติทุบตี นั่นหมายความว่าฉันไม่สามารถรับคำสั่งก่อนหน้าได้โดยกดปุ่ม UP ฉันต้องการเปิดใช้งานประวัติคำสั่ง ฉันจะทำสิ่งนี้ได้อย่างไร
13 bash 

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