ฉันมีปัญหาในการรับชื่อแทนเพื่อขยายบัญชีโฮสติ้งของฉันเมื่อฉันเรียกใช้คำสั่งเช่น:
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 แต่ถ้าฉันพยายามใช้นามแฝงฉันจะไม่ได้อะไรเลย
ฉันสามารถลอง "bash -ic" ได้ แต่นี่เป็นสคริปต์ที่ฉันไม่สามารถเปลี่ยนได้ง่ายและฉันต้องการทราบว่าทำไมจึงไม่ทำงาน
ผลผลิตของ ssh user@server "bash -c \"shopt\""
.bashrc
autocd off
cdable_vars off
cdspell off
checkhash off
checkjobs off
checkwinsize off
cmdhist on
compat31 off
compat32 off
compat40 off
dirspell off
dotglob off
execfail off
expand_aliases off
extdebug off
extglob off
extquote on
failglob off
force_fignore on
globstar off
gnu_errfmt off
histappend off
histreedit off
histverify off
hostcomplete on
huponexit off
interactive_comments on
lithist off
login_shell off
mailwarn off
no_empty_cmd_completion off
nocaseglob off
nocasematch off
nullglob off
progcomp on
promptvars on
restricted_shell off
shift_verbose off
sourcepath on
xpg_echo off
ผลผลิตของ ssh user@server "bash -c \"echo $SHELL\""
.bashrc
/bin/bash
~/.local/bin
เมื่อ/etc/profile
มีการประมวลผลมันจะเพิ่มโดยอัตโนมัติไปยัง PATH ของคุณ คุณสามารถ. /etc/profile
สร้างโฟลเดอร์เพื่อเพิ่มมันเข้าไปใน PATH ของคุณโดยไม่ต้องรีบูตหรือออกจากระบบ / ล็อกอิน
$PATH
เป็น~/bin:$PATH
มันทำงานได้ดี