Modern Shell For Unix - บางอย่างเช่น Powershell


1

ฉันกำลังมองหาเชลล์ที่ทันสมัยสำหรับ Ubuntu

นี่คือปัญหาแรกที่มีคุณสมบัติตรงตามที่กล่าวไว้ในสคริปต์สไตล์บิลด์ (ไม่ต้องการระบบการสร้าง btw):

ใน PowerShell:

new-item workspaces\crm\builds\demo -ItemType Directory

ตอนนี้บิตที่ชาญฉลาดหากไม่มีไดเรกทอรีก่อนหน้านี้อยู่มันก็ฉลาดพอที่จะสร้างมันทั้งหมดหากในการเรียกใช้ครั้งต่อไปมีเพียง dir สาธิตที่ขาดหายไปมันจะสร้างสิ่งนั้นขึ้นมา ในทุบตีฉันต้องทำสร้างห่วงหรือด้วยตนเองcd dirname, mkdir subdirname, cd subdirnameNah ... ฉันต้องการแรงเสียดทานน้อย

ฉันต้องการประชุมมากกว่าการตั้งค่า บางคนอาจเห็นว่าคำสั่งด้านบนทำมากเกินไป แต่ด้วยธงฉันสามารถย้ายออกจากการประชุม หากเหมาะสมแล้วคำสั่งที่สั้นที่สุดควรทำสิ่งที่เป็นตรรกะมากที่สุดเคสด้านข้างแสดงด้วยตัวเลือกที่ชัดเจน

ข้อเสนอแนะ?


3
ความแตกต่างที่สำคัญระหว่างสิ่งที่อยู่ใน PowerShell และการทำเช่นนั้นในเชลล์ * nix คือ powershell กำหนดฟังก์ชันทั้งหมดให้คุณ สิ่งที่กำลังทำอยู่คือเรียกรหัส. net ที่อาจใช้ลูปชนิดเดียวกันกับที่คุณอธิบาย บางทีคุณควรมองหาไลบรารี่สคริปต์แทนที่จะเป็นเชลล์ตัวอื่น?
Robert S Ciaccio

ฉันขอขอบคุณที่. แต่ความจริงที่ Powershell ให้มันออกมานั้นหมายถึงแรงเสียดทานที่น้อยลงฉันไม่สนใจว่ามันจะอยู่ในสภาพแวดล้อม BCL หรือ PS เป็น cmdlets มันอยู่ที่นั่น
MâttFrëëman

3
ดูเหมือนว่าทุบตีสามารถทำทุกอย่างที่คุณต้องการและอื่น ๆ เนื่องจาก mkdir -p แก้ปัญหาดั้งเดิมของคุณมีปัญหาอื่นอีกไหมที่คุณดิ้นรน? ฉันยินดีที่จะเดิมพันว่านี่เป็นกรณีที่ไม่รู้จักเครื่องมือมากกว่าเครื่องมือที่ไม่สอดคล้องกับงาน
Sirex

หลังจากเล่นซอกับพาวเวอร์เซลล์เยอะฉันคิดว่าคำถามนี้เป็นคำถามที่ดี แต่ไม่ใช่ในรูปแบบปัจจุบัน จริงๆแล้วดูเหมือนว่า mattcodes กำลังมีปัญหากับงานเฉพาะบางอย่าง หากคำถามนี้มีเหตุผลที่เฉพาะเจาะจงมากกว่านี้ว่าทำไมเปลือกหอยที่ทรงพลังสำหรับ * ระวังจะเป็นที่ต้องการฉันอยากจะรู้ว่ามีอะไรในผลงาน โดยเฉพาะเหตุผลหลักที่ฉันชอบ powershell คือมันเป็นวัตถุมากกว่าข้อความตามซึ่งช่วยลดความยุ่งยากมากในการบริหารงาน
Robert S Ciaccio

คำตอบ:


16

ใช้ bash และตั้งชื่อแทนบางอย่างที่เหมาะสมกับความต้องการของคุณเช่น

alias md='mkdir -p'

ตัวอย่างบางส่วน:

alias ..='cd ..'
alias ...='cd ../..'
alias grep='grep --colour=auto'
alias l='ls -lh'
alias ll='ls -lah'
alias ls='ls --color=auto'

UPDATE: คุณอาจต้องการตรวจสอบOh-My-zsh

หลังจากผ่านไปหนึ่งปีฉันรู้สึกว่าจำเป็นต้องอัปเดตคำตอบนี้ ฉันพบว่าoh-my-zshเป็นหนึ่งในเครื่องมือที่ทรงพลังที่สุดยืดหยุ่นและบำรุงรักษาอย่างดีสำหรับเทอร์มินัล (แม้ว่าอันที่จริงมันเป็นเพียงแค่ชุดของปลั๊กอินและการตั้งค่าที่แตกต่างกัน แต่มันก็ทรงพลังมาก)


5

ฉันไม่คุ้นเคยกับ PowerShell แต่ดูเหมือนว่าฉันจะชอบทำอะไรเช่น:

mkdir -p /new_dir/subdir1/subdir2/subdir3

มันจะสร้าง subdir3 และไดเรกทอรีใด ๆ ที่จำเป็น

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