永続的なBashエイリアスを作成するにはどうすればよいですか?

私はエイリアスを作成したいと思います rm このコマンドを実行した後に確認メッセージを表示するためのコマンド。 だから私はこのようなエイリアスを作成しています alias rm='rm -i'. しかし、私が知る限り、これは一時的なエイリアスであり、ターミナルを閉じるまで存続します。

それが説明されているように ここでは、 エイリアスを永続的に保存するには、実行する必要があります ~/.bash_aliases または ~/.bashrc ターミナルでコマンドを実行し、そこに私の別名を追加します。 しかし、私が実行するとき ~/.bashrc 次のエラーメッセージが表示されます :

bash: /home/bakhtiyor/.bashrc: Permission denied

私が走るとき ~/.bash_aliases 私はこのような別のエラーメッセージが表示されます:

bash: /home/bakhtiyor/.bash_aliases: File or directory doesn't exist.

実際の問題は何ですか、どうすれば解決できますか?

エイリアスを永続的に作成するには、エイリアスを次の場所に追加します。 .bashrc ファイル

gedit ~/.bashrc

そして、下部にあなたのエイリアスを追加します。

alt text

今すぐ実行 . ~/.bashrc あなたの端末で(間にスペースがあるはずです .~/.bashrc.

今、あなたはあなたのエイリアスを確認することができます。

alt text

エイリアスを作成する方法はたくさんあります。 最も使用される方法は次のとおりです:

  1. に直接エイリアスを追加する ~/.bashrc ファイル

    たとえば、次の行を次の行に追加します ~/.bashrc ファイル

    alias ll='ls -l'alias rm='rm -i'

    次回(ログアウト/ログインした後、または完了した後 . ~/.bashrc)と入力すると rm その rm -i コマンドが実行されます。

  2. 第二の方法は、あなたが別々のエイリアスファイルを作ることができますので、あなたはそれらを置く必要はありません .bashrc、しかし、あなたの選択のファイルに。 最初に、あなたの編集して下さい ~/.bashrc 次の行がまだ存在しない場合はファイルを作成して追加し、存在する場合はコメントを解除します:

    if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi

    それを保存し、ファイルを閉じます。 その後、あなたがしなければならないすべてはaを作成することです ~/.bash_aliases 最初の方法で指定されたのと同じ形式で、そこにエイリアスをファイルして追加します。

    私の内容 ~/.bash_aliases ファイル:

    alias cs='cd;ls'

あなたの唯一の問題は単に実行しようとしているように私には聞こえます。実行可能でない場合のbashrc。 このファイルに変更を加えるたびに、コマンドで「実行」する必要があります:

source ~/.bashrc

それ以外の場合は、単に新しいシェルを作成し、新しいシェルの環境でファイルを実行し、終了時にその環境を破棄して変更を失います。 スクリプトを調達することにより、現在のシェル内で実行されるため、有効なままになります。

私は2番目のエラーがbash_aliasesが存在しないためだと仮定しています。 これは必須ではなく、変更を別々に整理しておくことをお勧めします。 それが存在する場合にのみ使用され、そのテストを見ることができます。bashrc:

if [ -f ~/.bash_aliases ]; then. ~/.bash_aliasesfi

これは、ファイル~/の場合と言います。bash_aliasesが存在し、それを実行します。

問題は、実行可能でないファイルを実行しようとしていることです。:

ls -la ~/.bashrc-rw-r--r-- 1 username username 3596 2010-08-05 17:17 /home/pt001424/.bashrc

最初の列には"x-executable"文字はありません(ファイル権限)。

プロファイルファイルは実行可能ファイルではなく、実行するのではなく、次のようにロードします:

source /home/bakhtiyor/.bashrc

または

. /home/bakhtiyor/.bashrc
echo "alias vps='ssh -X user@example.com'" >> ~/.bashrc

これは私が探していた例で、ターミナル(「vps」)に数文字を入力してサーバーにリモートでログインし、X11転送を有効にして、ネットワーク経由で「gedit」のようなguiアプリ

>>Command/aliasedコマンドが何であれ、echo文、引用符、コマンドの出力をfile()に追加するための記号を使用すると、このように機能します。 必要なaliasコマンドのmyコマンドを置き換えて、端末に入力してください。

私はこの便利な関数を書いて、新しいエイリアスをすばやく作成し、エイリアス定義を次のように記述しました ~/.bash_aliases (存在する場合) または ~/.bashrc.

ヒント:確保 ~/.bash_aliases exists&で実行されます ~/.bashrc.

# -----------------------------------#  Create a new permanent bash alias##  @param $1 - name#  @param $2 - definition# -----------------------------------new-alias () {   if [ -z "$1" ]; then    echo "alias name:" && read NAME  else    NAME=$1  fi  if alias $NAME 2 > /dev/null > /dev/null; then    echo "alias $NAME already exists - continue [y/n]?" && read YN    case $YN in      [Yy]* ) echo "okay, let's proceed.";;      [Nn]* ) return;;      * ) echo "invalid response." && return;;    esac  fi  if [ -z "$2" ]; then    echo "alias definition:" && read DEFINTION  else    DEFINTION="$2"  fi  if [ -f ~/.bash_aliases ]; then    echo "alias $NAME=\"$DEFINTION\"" >> ~/.bash_aliases  else    echo "alias $NAME=\"$DEFINTION\"" >> ~/.bashrc  fi  alias $NAME="$DEFINTION"}

rubyを使用している場合は、rubygemを使用してakaをインストールできます。

gem install aka2

使用法

aka generate hello="echo helloworld" #add an aliasaka g hello="echo helloworld"  #add alias for lazy peopleaka destroy hello #remove aliasaka d hello #remove alias for lazy people

rubygemはdotファイルを自動ソースにするので、必要はありません。 それを見てください。

私はこのアイデアを拡大したいと思います!

あなたがしたい alias あなたの質問に応じたコマンド:

echo "alias wolfr='cd /home/wolf'">>./~bashrc

これで、次のように入力できます wolfr wolfのホームディレクトリに移動します。

これは非常に似ており、非常にクールです、 export コマンド:

echo "export ngse=/etc/nginx/sites-enabled"./~bashrc

これで、次のように入力できます cp $ngse/my_file /destination_directory/destination_filename サイトが有効なディレクトリからコピー先にファイルをコピーします。

あなたがこのようなことをするまで、これはどれも機能しません:

exec bash

または、再ログを記録したり、再起動したりすることもできます。

私は使用することをお勧めします /etc/bash.bashrc

そのファイルの最後に行を追加できます。

alias ok="ping google.com"

行ごとにエイリアスを入れた後、再起動または再ログインする必要があります。

思い出したように, bashrc has、またはhad、エイリアスに直接使用しないことを示唆する行。 その ソリューション 外部ファイルを使用することです。 その foobar エイリアスが追加されましたが、追加するには baz その bashrc ファイルは"ソース"でなければなりません(または、新しい端末を開くだけです)。 例として:

thufir@dur:~$ thufir@dur:~$ aliasalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'alias bar='echo foo'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias foo='echo foo'alias grep='grep --color=auto'alias l='ls -CF'alias la='ls -A'alias ll='ls -alF'alias ls='ls --color=auto'thufir@dur:~$ thufir@dur:~$ cat .bash_aliases alias foo='echo foo'alias bar='echo foo'alias baz='echo baz'thufir@dur:~$ thufir@dur:~$ source .bashrc thufir@dur:~$ thufir@dur:~$ aliasalias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'alias bar='echo foo'alias baz='echo baz'alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias foo='echo foo'alias grep='grep --color=auto'alias l='ls -CF'alias la='ls -A'alias ll='ls -alF'alias ls='ls --color=auto'thufir@dur:~$ thufir@dur:~$ bazbazthufir@dur:~$ 

今、 baz エイリアスワークス 私はちょうど今、以前の答えが持っていたことに気づいた 言及されている この技術は、しかし、彼らはledeを埋めていました。

答えHow to find out where alias (in the bash sense) is defined when running Terminal in Mac OS X - Stack Overflow

'alias rm='rm-i"はrmを無計画に使用する問題を解決しません

WSLの人のUbuntuはどうですか?