2016-01-08 22 views
5

Utworzyłem instalację projektu Homestead na jeden projekt. Zawarłem after.sh (w katalogu głównym), aby zapewnić inne pakiety, takie jak RethinkDB, bez żadnych problemów, ale plik aliases (również w katalogu głównym), chociaż pojawia się w VM jako ~/.bash_aliases, nie uruchamia żadnego z aliasów, gdy Jestem wpisać je więc na przykład te aliasy.Laravel Homestead na projekt Zainstaluj Bash Nie ma poleceń Nie znaleziono

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

w wierszu poleceń jako:

artisan migrate:refresh --seed 
autoload 

Wyrzuć te błędy:

Could not open input file: artisan 
autoload: command not found 

Dzieje się tak w przypadku któregokolwiek z aliasów, które próbuję. Sprawdziłem, że ~/.bash_aliases (lub /home/vagrant/.bash_aliases) istnieje za pomocą nano i jest to z pewnością kopia aliasów. Po prostu żadne z poleceń nie są używane tak, jakby nie istniały lub tak, jakby plik we właściwym miejscu był niedostępny.

Ktoś wie dlaczego? lub jak to naprawić? To niesamowite, jak denerwujące jest to, że nie można używać aliasów, których zazwyczaj używałbym lokalnie, lub na globalnej instalacji Homestead podczas korzystania z tej maszyny wirtualnej.

UPDATE

zauważyłem uzyskać listę command not found błędów kiedy SSH do VM, że równe liczby aliasów podaję. Ta sama lista pojawia się, jeśli uruchomię source ~/.bash_aliases. Dla pełna klarowność .bash_aliases znajduje się w /home/vagrant obok odwzorowanym folderu źródłowego /home/vagrant/app, a wyjście z SSHing do VM i skojarzonego pliku aliasy są wliczone:

SSH do VM

$ 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 
[email protected]:~$ 

pseudonimy File

# 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 File

#!/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 

UPDATE 2

Nano wyjście .bash_aliases, który wygląda jak złożyć moje pseudonimy, ale po to wyjście z alias obcina pierwszą literę aliasów.

# 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' 

Wyjście z wpisanie alias w terminalu:

[email protected]:~$ 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 

FINAL SOLUTION

Dzięki @JoshRumbut do rozwiązania tego problemu, patrz poniżej swoich komentarzach.

[email protected]:~$ tr -d '\r' <~/.bash_aliases >~/tmp 
[email protected]:~$ mv ~/tmp ~/.bash_aliases 
[email protected]:~$ unalias -a 
[email protected]:~$ source .bash_aliases 
+0

ta linia jest tak podejrzane. 'source' może przerwać linię poleceń' source/etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $ DISTRIB_CODENAME main" | sudo tee/etc/apt/sources.list.d/rethinkdb.list' – FZE

Odpowiedz

1

Czy bash jest skonfigurowany tak, aby wyglądał w pliku .bash_aliases?

Co się stanie, jeśli uruchomisz source ~/.bash_aliases? Czy wtedy działają?

Edit: obecna teoria mówi, że dziwny charakter, ewentualnie powrót karetki (\ r) jest osadzony w pliku gdzieś, jak w tym samym pytaniem: https://unix.stackexchange.com/questions/35642/why-are-these-aliases-failing

+0

Witam, właśnie wypróbowałem twoje sugestie, i wyrzuciło to kilka błędów 'command not found'. Jest to faktycznie coś, co zauważyłem, że dzieje się za każdym razem, gdy SSH do VM. Liczba błędów 'command not found' równa się liczbie aliasów. – mtpultz

+0

To z pewnością jest zagadkowe, spróbuj uruchomić skrypt aliasów (i być może po .sh) tutaj, aby sprawdzić, czy są jakieś trudne do wykrycia problemy: http://www.shellcheck.net –

+0

Możesz również spróbować spojrzeć na wyjście 'alias', aby zobaczyć co (jeśli cokolwiek) jest zdefiniowane. –