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

นามแฝงนั้นไม่มีอะไรมากไปกว่าแป้นพิมพ์ลัดตัวย่อหมายถึงการหลีกเลี่ยงการพิมพ์ลำดับคำสั่งแบบยาว สิ่งนี้สามารถบันทึกการพิมพ์จำนวนมากได้ที่บรรทัดคำสั่งและหลีกเลี่ยงการจำชุดคำสั่งและตัวเลือกที่ซับซ้อน

3
แก้ไขสมนามทั้งหมดในบรรทัดคำสั่ง zsh
ฉันมีนามแฝงซ้อนกันและฉันต้องการแก้ไขทั้งหมดก่อนที่จะดำเนินการคำสั่ง ฉันจะทำอย่างไร หากมีฟังก์ชั่นที่ไม่ได้ผูกไว้กับปุ่มใด ๆ ก็M-x foobarเป็นสิ่งที่ดีสำหรับฉันเช่นกัน ฉันยังสามารถใช้คำสั่งภายนอก ( type, command, which, อะไรก็ตาม) ฉันลองทุกอย่างจากเธรดทำไมไม่ใช้ "อัน" จะใช้อะไรดี? แต่ไม่มีอะไรทำงาน
12 zsh  alias 

5
ฉันจะสร้างสมนามเชลล์ได้อย่างไร?
ในของฉัน.profile(ที่มาในshโหมดการจำลองจากของฉัน.zshrc) ฉันมีตัวอย่างต่อไปนี้: if [ -f /usr/bin/pacmatic ]; then alias pacman=pacmatic fi # Colorized Pacman output alias pacman="pacman --color auto" อย่างไรก็ตามนามแฝงที่สองจะแทนที่สิ่งแรกเสมอ: % type pacman pacman is an alias for pacman --color auto ฉันจะทำอย่างไรเพื่อให้การมอบหมายนามแฝงที่สอง "สืบทอด" การมอบหมายครั้งแรกดังนั้นถ้า/usr/bin/pacmaticมีอยู่นามแฝงจะกลายเป็นpacmatic --color auto? ฉันไม่รังเกียจที่จะใช้ฟังก์ชั่นแทนนามแฝง แต่ฉันต้องการมันถ้าตรรกะไม่ได้ถูกดำเนินการทุกครั้งที่pacmanถูกเรียกใช้ (ฉันต้องการpacmaticตรวจสอบหนึ่งครั้งเมื่อเริ่มต้นเชลล์ไม่ใช่ทุกครั้งที่pacmanทำงาน ฉันต้องการใช้shสคริปต์แบบพกพาด้วย แต่ถ้าไม่สามารถทำได้คุณสามารถใช้zshไวยากรณ์แบบเต็มได้ (ใช่ฉันรู้ว่าเรื่องนี้อาจจะได้รับการแก้ไขได้อย่างง่ายดายโดยการผนวก--color autoกับpacmaticนามแฝง. แต่ฉันต้องการที่จะทำทางขวา™.) ฉันลองใช้ Google และค้นหา manpages แต่ก็ไม่มีประโยชน์
12 zsh  alias 

5
จะทดสอบความขัดแย้งที่อาจเกิดขึ้นขณะใช้นามแฝงใน bashrc อย่างไร
มีวิธีง่าย ๆ ในการแสดงรายการความขัดแย้งของคำสั่งทั้งหมดที่เกิดขึ้นในระบบเนื่องจากการอัพเดต bashrc ที่เกี่ยวข้องกับคำสั่ง alias หรือไม่? ตัวอย่างเช่นมีคนเขียนเป็นalias ls=/path/to/user-generated/executablebashrc เราจะรู้ได้อย่างไรว่านี่เป็นการปกปิดคำสั่งจริง ( ls) วิธีหนึ่งดูเหมือนว่าจะเรียกใช้นามแฝงทั้งหมดก่อนและหลังการจัดหา bashrc และกระจายเอาต์พุต มีวิธีที่ดีกว่านี้อีกไหม? ฉันใช้ Ubuntu 12.04 ทุบตี - รุ่น GNU ทุบตีรุ่น 4.2.24 (1) - ปล่อย (i686-pc-linux-gnu)
12 bash  alias  bashrc 

5
เชลล์แบบไม่โต้ตอบขยายนามแฝง
ฉันมีปัญหาในการรับชื่อแทนเพื่อขยายบัญชีโฮสติ้งของฉันเมื่อฉันเรียกใช้คำสั่งเช่น: ssh user@server "bash -c \"alias\"" ไฟล์. bashrc ของฉันคือ: echo .bashrc # .bashrc shopt -s expand_aliases # Source global definitions (commenting this out does nothing) if [ -f /etc/bashrc ]; then . /etc/bashrc fi # User specific aliases and functions alias php="php55" alias composer="php ~/bin/composer.phar" เมื่อฉันเรียกใช้คำสั่ง ssh ฉันเห็น ".bashrc" echo'd …
12 bash  ssh  alias  bashrc 

2
หนีคำพูดในนามแฝง zsh
จากคำถามนี้เกี่ยวกับการลอกบรรทัดใหม่ออกจากข้อความฉันต้องการเปลี่ยนให้เป็นนามแฝง zsh ดังนี้: alias striplines=' awk " /^$/ {print \"\n\"; } /./ {printf( \" %s \",$0);}"' ฉันได้พยายามหลีกเลี่ยงคำพูดในสคริปต์ awk แต่ฉันได้รับข้อผิดพลาดนี้: awk: (FILENAME=bspsrobustness FNR=1) fatal: division by zero attempted (ไฟล์นี้เรียกว่าbspsrobustness) มีวิธีทำสิ่งที่ฉันต้องการหรือไม่? ฉันคิดว่าฉันสามารถเปลี่ยนให้เป็นสคริปต์ awk แทนที่จะเป็น zsh alias นั่นเป็นตัวเลือกที่ดีที่สุดของฉันหรือไม่
12 shell  zsh  quoting  alias 

3
วิธีการขยายนามแฝง bash
วิธีสร้างนามแฝงที่ขยายชื่อแทนอีกชื่อหนึ่งใน Bash จริง ๆ ทำไม: ผมเคยได้GREP_OPTIONSตั้งอยู่บน.bashrcบางสิ่งบางอย่างเช่นนี้ GREP_OPTIONS="-I --exclude=\*~" ฉันยังมีสคริปต์ (ให้เราพูดsetup-java.sh) ซึ่งฉันจะโทรก่อนทำงานกับโปรเจ็กต์ Java บางตัว มันจะมีบรรทัด: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=classes" ถ้าฉันใช้ Sass ด้วยฉันจะโทรหาsetup-sass.shซึ่งมีบรรทัด: GREP_OPTIONS="$GREP_OPTIONS --exclude-dir=\*/.sass-cache" แต่GREP_OPTIONSเลิกใช้แล้วและเห็นได้ชัดว่าโซลูชันมาตรฐานคือสร้างนามแฝงหรือสคริปต์บางอย่าง ...
11 bash  grep  alias 

1
ทุบตีนามแฝงที่มีช่องว่างเป็นส่วนหนึ่งของคำสั่ง
ฉันพยายามที่จะสร้างนามแฝงทุบตีที่ชื่อแทนตัวเองมีช่องว่างในนั้น ความคิดคือนามแฝง (คือcon) sudo openvpn --config /path/to/my/openvpn/configs/ย่อมาจาก ซึ่งส่งผลให้คำสั่งอ่านได้เมื่อใช้conนามแฝง เช่น: `con uk.conf` == `sudo openvpn --config /path/to/my/openvpn/configs/uk.conf` con ="sudo openvpn --config /path/to/my/openvpn/configs/"ฉันเข้าใจว่าฉันไม่สามารถประกาศนามแฝงเช่นนี้ ฟังก์ชั่นทุบตีจะทำงานในสถานการณ์นี้หรือไม่ ฉันไม่เคยได้ยินเรื่องนี้มาก่อน แต่เมื่อค้นคว้าวิธีแก้ปัญหาสำหรับปัญหาเล็กน้อยนี้

3
กำหนดนามแฝงและใช้งานทันที
ในzshการทำงานนี้ได้ดี: alias foo=ls foo แต่นี่ไม่ได้: alias foo=ls; foo การกด Enter เป็นช่วงเวลาพิเศษไม่ใช่ปัญหาเมื่อทำงานแบบโต้ตอบ แต่เมื่อทำงานผ่านsshมันก็กลายเป็นปัญหา: % ssh zsh@server 'alias foo=ls; foo' zsh:1: command not found: foo แม้จะมีการขึ้นบรรทัดใหม่มันก็ไม่ทำงาน: % ssh zsh@server 'alias foo=ls; foo' zsh:2: command not found: foo สิ่งที่แปลกคือzshรู้ว่ามันเป็นนามแฝง: % ssh zsh@server 'alias foo=ls; alias' foo=ls run-help=man which-command=whence จะบอกได้อย่างไรzshว่าชื่อแทนควรใช้งานอยู่?
11 zsh  alias 

2
วิธีจัดทำฟังก์ชั่นทุบตีและนามแฝงที่กำหนดเองของฉัน
ปัญหา: ฉันมีฟังก์ชั่นทุบตีและชื่อแทนหลายรายการ ฉันจำไม่ได้ว่าพวกเขาทั้งหมดอยู่ด้านบนของหัวของฉันดังนั้นฉันมักจะเปิดท้ายของฉัน.bash_functionsและ.bash_aliasesไฟล์เพื่อค้นหาสิ่งที่ฉันต้องการ คำถาม (s): ฉันจะแสดงรายการฟังก์ชั่น / นามแฝงที่มีอยู่จาก bash prompt ได้อย่างไร? เป็นไปได้ไหมที่ฉันจะทำเอกสารฟังก์ชั่นทุบตี / นามแฝงของฉันโดยใช้ความคิดเห็น (kinda เช่น PHPDoc)? ฉันแค่ต้องการวิธีที่ง่าย / ดีในการแสดงผลสิ่งที่มีอยู่โดยไม่ต้องเปิดไฟล์ มันจะเจ๋งมากในการรันคำสั่งและปล่อยให้มันมีรายการแบบไดนามิกของฟังก์ชั่น / ชื่อแทนของฉัน (ตัวอย่างการใช้งานจะเป็นบวก) :)

2
วิธีใช้ - เป็นนามแฝง
เมื่อฉันใช้ openSUSE 11.3 มันมาพร้อมกับชื่อแทนหลายรายการที่ตั้งค่าไว้แล้ว สองที่ผมใช้มากเป็น+สำหรับpushd .และสำหรับ- popdตอนนี้ที่ Debian ฉันไม่สามารถหาวิธีสร้างอันที่สองได้ alias -=popdพยายามที่จะอ่าน-=เป็นตัวเลือกคำสั่งเพื่อนามแฝง ฉันได้ลองใส่เครื่องหมายคำพูด (ทั้งเดี่ยวและคู่) รอบ ๆ มันและนำหน้าด้วยเครื่องหมายทับขวา แต่ฉันเพิ่งได้รับข้อความแสดงข้อผิดพลาด ข้อเสนอแนะใด ๆ ขอบคุณ
11 bash  alias 

4
บังคับให้นามแฝงที่ 'เพิ่ม' ให้กับทุกคำสั่ง
เป็นไปได้ไหมที่จะบังคับให้เพิ่มชื่อแทนเวลา (เนื่องจากไม่มีวิธีที่ดีกว่าในการเขียนวลี) ให้กับทุกคำสั่งbash? ตัวอย่างเช่นผมต้องการที่จะมีผู้ใช้เฉพาะที่เมื่อใดก็ตามที่คำสั่งจะดำเนินการก็จะห่อเสมอทั้งที่มีก่อนและหลังหรือdatetime เป็นไปได้และถ้าเป็นเช่นนั้นได้อย่างไร
11 bash  monitoring  alias  date  time 

2
เรียกใช้คำสั่งในเชลล์แบบโต้ตอบด้วย ssh หลังจาก sourcing .bashrc
ฉันต้องการที่จะ SSH เข้าไปในคอมพิวเตอร์ Ubuntu ระยะไกลแหล่งที่มาของฉันและเรียกใช้คำสั่งที่ขึ้นอยู่กับพารามิเตอร์ที่กำหนดโดยที่.bashrc .bashrcทั้งหมดที่อยู่ในเชลล์แบบโต้ตอบที่ไม่ปิดหลังจากทำคำสั่งเสร็จแล้ว สิ่งที่ฉันพยายามจนถึงตอนนี้คือ ssh user@remote_computer -t 'bash -l -c "my_alias;bash"' หรือเพียงแค่ ssh user@remote_computer -t "my_alias;bash" ใช้งานได้กับคำสั่งทั่วไป (เช่นlsตัวอย่าง) แต่เมื่อฉันพยายามเรียกใช้นามแฝงที่กำหนดไว้ใน.bashrcฉันได้รับข้อผิดพลาด: bash: my_alias: command not found แต่เมื่อฉันเขียนมันเองอีกครั้งและรันมันก็ใช้งานได้! ดังนั้นฉันจะแน่ใจได้อย่างไรว่า.bashrcมีแหล่งที่มาก่อนที่คำสั่งจะถูกเรียก?
11 bash  shell  ssh  alias 

4
ฉันจะทำให้เชลล์นามแฝงพร้อมใช้งานได้อย่างไรเมื่อ shelling จาก Vim
ในตัวฉัน.zshrcฉันประกาศนามแฝงบางอย่าง เช่นwhich dbstartแสดงเนื้อหาของนามแฝงนั้น ถ้าฉันเปิดเป็นกลุ่มจากเชลล์นั้นมันเป็นกระบวนการลูก :! some_commandในกลุ่มผมสามารถเรียกใช้คำสั่งเปลือก ถ้าฉันทำ:! echo $0เพื่อดูว่าเชลล์ Vim ใช้อะไรอยู่มันจะส่งเอาต์พุต '/ bin / zsh' อย่างไรก็ตามชื่อแทนของฉันไม่สามารถใช้งานได้ที่นั่น ฉันจะทำให้เชลล์ปกติของฉันพร้อมใช้งานได้อย่างไรเมื่อฉัน shell ออกจาก Vim สองความคิด: อย่างใดEXPORTนามแฝงจากเปลือกเดิมเพื่อกระบวนการของเด็กvimและอีกครั้งเพื่อดำเนินการเปลือกเด็ก กำหนดค่า Vim ให้อ่านของฉัน.zshrcเมื่อสร้าง subshells

2
วิธีสร้างนามแฝงด้วยคำสั่งประกอบด้วย 'และ "
มีบางโพสต์ที่ผ่านมามีคนถามวิธีแสดงหน่วยความจำเป็นเปอร์เซ็นต์ มีคนตอบกลับด้วย: free | awk '/^Mem/ { printf("free: %.2f %\n", $4/$2 * 100.0) }' ฉันสงสัยว่าฉันสามารถเปลี่ยนคำสั่งนี้เป็นชื่อแทนใน ~ / .bashrc หรือไม่ แต่ไวยากรณ์ของนามแฝงคือ: alias aliasname='command' ฉันจะทำสิ่งนี้ได้อย่างไร ที่มีทั้งคำสั่งและ' "ฉันลองใช้วิธีการต่าง ๆ แต่มันไม่ทำงาน เป็นไปได้ไหม ฉันพลาดอะไรไปรึเปล่า?
10 bash  quoting  alias 

3
ใน Bash จะไม่รวมอาร์กิวเมนต์พิเศษในนามแฝงได้อย่างไร
ฉันพยายามทำบางสิ่งเช่น alias ftp='echo do not use ftp. Use sftp instead.' เพียงเพื่อที่ftpจะไม่ถูกใช้โดยไม่ได้ตั้งใจ แต่ฉันสังเกตเห็นว่า ftp abcd.com จะทำให้คำสั่งดังก้อง do not use ftp. Use sftp instead. abcd.com เพราะจะนำไปเป็นข้อโต้แย้งสำหรับabcd.comecho มีวิธีที่จะทำให้ Bash ไม่ได้เพิ่มabcd.comการทดแทนหรือechoไม่ใช้มันเป็นอาร์กิวเมนต์พิเศษหรือไม่? (มีวิธีแก้ปัญหาสำหรับแต่ละวิธีหรือไม่) ฉันคิดว่าฉันสามารถทำได้ alias ftp='sftp' ftpแต่ฉันเพียงแค่ต้องการให้หยุดคำสั่งทั้งหมดเข้าด้วยกันเพื่อเตือนตัวเองไม่ให้ใช้
10 bash  alias  ftp  echo 

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