gpt4 book ai didi

Laravel Homestead 每个项目安装 Bash 别名命令未找到

转载 作者:行者123 更新时间:2023-12-04 21:10:55 26 4
gpt4 key购买 nike

我已经创建了 Homestead 的每个项目安装。我已包含 after.sh (在根目录中)配置其他包,如 RethinkDB 没有问题,但 aliases文件(也在根目录中)虽然出现在虚拟机中作为 ~/.bash_aliases 在我输入它们时没有运行任何别名。例如这些别名:

alias artisan='php artisan'
alias autoload='composer dump-autoload'

在命令提示符中为:
artisan migrate:refresh --seed
autoload

抛出这些错误:
Could not open input file: artisan
autoload: command not found

我尝试的任何别名都会发生这种情况。我已经使用 nano 检查了 ~/.bash_aliases (或/home/vagrant/.bash_aliases)是否存在,它绝对是别名的副本。只是没有任何命令被使用,就好像它不存在一样,或者好像文件虽然在正确的位置是无法访问的。

有谁知道为什么?或者如何解决这个问题?令人惊讶的是,在使用此 VM 时,无法使用我通常会在本地使用的别名或在 Homestead 的全局安装中使用别名是多么烦人。

更新

我注意到我得到了一个列表 command not found当我通过 SSH 连接到与我包含的别名数量相等的 VM 时出现错误。如果我运行 source ~/.bash_aliases 会出现相同的列表.为清楚起见 .bash_aliases位于 /home/vagrant映射的源文件夹旁边 /home/vagrant/app ,以及通过 SSH 连接到 VM 的输出,以及相关的别名文件:

SSH 到虚拟机
$ vagrant ssh
Welcome to Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)

* Documentation: https://help.ubuntu.com/
Last login: Mon Feb 15 00:37:39 2016 from 10.0.2.2
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
: command not found
vagrant@app:~$

别名文件
# Homestead --------------------------------------------------------------------

alias ..="cd .."
alias ...="cd ../.."

alias h='cd ~'
alias c='clear'

alias phpspec='vendor/bin/phpspec'
alias phpunit='vendor/bin/phpunit'

# Laravel ----------------------------------------------------------------------

# Access Artisan when within project folder
alias artisan='php artisan'

# Access Tinker when within project folder
alias tinker="php artisan tinker --env=local"

# Composer --------------------------------------------------------------------

alias autoload='composer dump-autoload'

# App -------------------------------------------------------------------------

alias app="cd app"

After.sh 文件
#!/usr/bin/env bash

#
# Install RethinkDB on Ubuntu
# @see https://www.rethinkdb.com/docs/install/ubuntu/
#

# Add RethinkDB repository and install
source /etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
wget -qO- https://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
sudo apt-get update
sudo apt-get install -y rethinkdb

# Setup RethinkDB as a service using default configuration file
#sudo cp /etc/rethinkdb/default.conf.sample /etc/rethinkdb/instances.d/instance1.conf
#sudo vim /etc/rethinkdb/instances.d/instance1.conf
#sudo /etc/init.d/rethinkdb restart

# Setup RethinkDB as a service by copying the custom configuration file
sudo cp /home/vagrant/app/rethinkdb.conf /etc/rethinkdb/instances.d/instance1.conf
sudo /etc/init.d/rethinkdb restart

更新 2

纳米输出 .bash_aliases ,它看起来像我的别名文件,但是 alias 之后的输出截断别名的第一个字母。
# Homestead ----------------------------------------------------------------------

alias ..="cd .."
alias ...="cd ../.."

alias h='cd ~'
alias c='clear'

alias phpspec='vendor/bin/phpspec'
alias phpunit='vendor/bin/phpunit'

# Laravel ----------------------------------------------------------------------

# Access Artisan when within project folder
alias artisan='php artisan'

# Access Tinker when within project folder
alias tinker="php artisan tinker --env=local"

# Composer --------------------------------------------------------------------

alias autoload='composer dump-autoload'

仅键入 alias 的输出进入终端:
vagrant@app:~$ alias
'lias ..='cd ..
'lias ...='cd ../..
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
'lias artisan='php artisan
'lias autoload='composer dump-autoload
'lias c='clear
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
'lias h='cd ~
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias ls='ls --color=auto'
'lias phpspec='vendor/bin/phpspec
'lias phpunit='vendor/bin/phpunit
'lias tinker='php artisan tinker --env=local

最终解决方案

感谢@JoshRumbut 解决了这个问题,他的评论见下文。
vagrant@app:~$ tr -d '\r' <~/.bash_aliases >~/tmp
vagrant@app:~$ mv ~/tmp ~/.bash_aliases
vagrant@app:~$ unalias -a
vagrant@app:~$ source .bash_aliases

最佳答案

bash 是否配置为查看 .bash_aliases文件?

如果你运行 source ~/.bash_aliases 会发生什么?那他们工作吗?

编辑:目前的理论是一个奇怪的字符,可能是回车符 (\r) 被嵌入到文件中的某个地方,就像这样的问题:https://unix.stackexchange.com/questions/35642/why-are-these-aliases-failing

关于Laravel Homestead 每个项目安装 Bash 别名命令未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34687368/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com