2016-01-08 17 views
5

Ho creato un'installazione per progetto di Homestead. Ho incluso after.sh (nella directory root) per fornire altri pacchetti come RethinkDB senza problemi, ma il file aliases (anche nella directory root) sebbene compaia nella VM come ~/.bash_aliases non sta eseguendo nessuno degli alias quando sono digitarli così per esempio questi alias:.Laravel Homestead per progetto Installa Bash Alias ​​Comandi non trovati

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

nel prompt dei comandi come:

artisan migrate:refresh --seed 
autoload 

Gettare questi errori:

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

Questo succede per tutti gli alias che provo. Ho controllato che ~/.bash_aliases (o /home/vagrant/.bash_aliases) esiste usando nano, ed è sicuramente una copia di alias. Solo nessuno dei comandi viene utilizzato come se non esistesse o come se il file fosse nel punto giusto inaccessibile.

Qualcuno sa perché? o come risolvere questo? È incredibile quanto sia fastidioso non essere in grado di utilizzare gli alias che di solito utilizzerei localmente, o sull'installazione globale di Homestead quando si utilizza questa VM.

UPDATE

ho notato ho un elenco di command not found errori quando ho SSH nel VM che è uguale al numero di alias che ho incluso. Lo stesso elenco appare se eseguo source ~/.bash_aliases. Per una completa chiarezza .bash_aliases si trova nel /home/vagrant accanto alla cartella mappata fonte /home/vagrant/app, e l'uscita dal sshing VM, e il file di alias associati sono inclusi:

SSH in 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]:~$ 

alias 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 uscita .bash_aliases, che si presenta come il mio file alias, ma l'uscita dopo questo di alias tronca la prima lettera degli 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' 

uscita da solo digitando alias nel terminale:

[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 

soluzione finale

Grazie a @JoshRumbut per risolvere questo problema, vedi sotto per i suoi commenti.

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

questa linea è così sospetto. 'source' potrebbe interrompere la riga di comando' source/etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $ DISTRIB_CODENAME main" | sudo tee/etc/apt/sources.list.d/rethinkdb.list' – FZE

risposta

1

Bash è configurato per cercare nel file .bash_aliases?

Cosa succede se si esegue source ~/.bash_aliases? Funzionano allora?

Edit: teoria corrente è che un personaggio strano, forse il ritorno a capo (\ r) è incorporato nel file da qualche parte, come in tal modo domanda: https://unix.stackexchange.com/questions/35642/why-are-these-aliases-failing

+0

Ciao, ho appena provato i tuoi suggerimenti, e ho buttato fuori un sacco di errori di comando non trovato. Questo è in realtà qualcosa che ho notato che accade ogni volta che SSH nella VM. Il numero di errori 'comando non trovato' è uguale al numero alias. – mtpultz

+0

Questo è certamente sconcertante, prova a eseguire lo script degli alias (e forse after.sh) da qui per vedere se ci sono problemi difficili da individuare: http://www.shellcheck.net –

+0

Puoi anche provare a guardare l'output di 'alias' per vedere cosa (se possibile) viene definito. –

Problemi correlati