sudo
我用please
空格别名:
$ alias please='sudo '
$ please ll
我已经在 Fish 中尝试过,但它不起作用:
$ alias please='sudo '
$ please ll
sudo: ll: command not found
因此,当我在 /etc/bash.bashrc 文件中添加该行并重新登录时,我的 PC 上有 2 个用户alias abc='echo Hello'
,它仅适用于第一个用户。(我更改文件的那个)我什至重新启动了我的电脑,但仍然没有工作。
这是我的 bash.bashrc 文件(我知道这不是必需的,只是为了提供更多信息):
alias abc='echo Hi' # <<< Here's the line I've added
# System-wide .bashrc file for interactive bash(1) shells.
# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, overwrite the one in /etc/profile)
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
# If this is an xterm set the title to user@host:dir
#case "$TERM" in
#xterm*|rxvt*)
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# ;;
#*)
# ;;
#esac
# enable bash completion in interactive shells
#if ! shopt -oq posix; then
# if [ -f /usr/share/bash-completion/bash_completion ]; then
# . /usr/share/bash-completion/bash_completion
# elif [ -f /etc/bash_completion ]; then
# . /etc/bash_completion
# fi
#fi
# sudo hint
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
if [ -x /usr/bin/sudo ]; then
cat <<-EOF
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
EOF
fi
esac
fi
# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
function command_not_found_handle {
# check because c-n-f could've been removed in the meantime
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
elif [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "$1"
return $?
else
printf "%s: command not found\n" "$1" >&2
return 127
fi
}
fi
我也在运行 xubuntu 18.04.5 LTS。
我在 .bashrc 文件上有别名,例如;
alias modemreboot="IP=$(/sbin/ip route | awk '/default/ { print $3 }');echo "reboot" | sshpass -p "12345" ssh admin@$IP"
用于通过命令行重新启动我的调制解调器。当我键入或复制并粘贴到终端时,它可以工作,但是作为别名,我收到此错误;
Pseudo-terminal will not be allocated because stdin is not a terminal.
ssh: Could not resolve hostname : Name or service not known
我注意到我看到的很多博客都建议apt-get update
在运行任何apt-get install
. 考虑到我对 apt-get 的许多(大多数?)使用涉及安装,它似乎永远不会受到伤害,而且只需要几秒钟,在我看来,创建一个alias apt-get="apt-get update; apt-get"
. 作为 Linux 和一般命令行的新手,我可以想象这里有很多我忽略的东西,而且我知道从命令行破坏计算机非常容易。有什么特别的理由建议不要使用这个别名吗?(我知道这可能会作为一个基于意见的问题而结束。我想澄清一下,我对基于事实的可靠建议而不是意见感兴趣。)
.profile
我的主目录中的文件中有以下行:
alias flux='redshift -O 2500'
但是每当我登录并输入时,flux
我都会得到一个flux is not a recognized command
.
然后我再次source .profile
输入并输入flux
,它工作得很好。
我在 Ubuntu 20.04
为什么alias
我.profile
不工作,除非我做一个source .profile
?
编辑:我现在明白这.profile
不是放置这个的正确位置。
我最终使用以下命令从.bashrc
文件中加载别名:source
for file in ~/.dotfiles/.{exports,aliases}; do
[ -r "$file" ] && source "$file"
done
unset file
我正在尝试创建一个函数,但我想通过任一别名触发:debugApp
,debugApi
而不是创建 2 个函数来做同样的事情
debugApp() {
#update .env to generate log
sed -i -e 's/.*API_DEBUG=.*/API_DEBUG=true/g' /Users/jdoe/laravel/.env
echo "-----------------------"
cat /Users/jdoe/laravel/.env | grep API_DEBUG
#remove old logs
# rm -rf /Users/jdoe/laravel/storage/logs/*
ls /Users/jdoe/laravel/storage/logs/
#display correct logs
tail -f /Users/jdoe/laravel/storage/logs/laravel-$(date "+%Y-%m-*").log
}
debugApi() {
#update .env to generate log
sed -i -e 's/.*API_DEBUG=.*/API_DEBUG=true/g' /Users/jdoe/laravel/.env
echo "-----------------------"
cat /Users/jdoe/laravel/.env | grep API_DEBUG
#remove old logs
# rm -rf /Users/jdoe/laravel/storage/logs/*
ls /Users/jdoe/laravel/storage/logs/
#display correct logs
tail -f /Users/jdoe/laravel/storage/logs/laravel-$(date "+%Y-%m-*").log
}
有没有更好的办法?
我正在尝试为其echo $?
返回最近执行的命令的退出状态设置别名。我已经投入alias status="echo $?"
了~/.bashrc
。但它不起作用,它总是返回 0。
user@host:~$ lll
bash: lll: command not found
user@host:~$ echo $?
127
user@host:~$ lll
bash: lll: command not found
user@host:~$ status
0
user@host:~$
如何为此设置别名。
我正在使用这一系列命令来构建和运行一个 docker 容器。这些命令在结合&&
并给出如下输出时起作用:
> docker stop $(docker ps -a -q --filter ancestor=redoc1) && docker build -t redoc1 . && docker run -p 8070:80 -d redoc1
4127c16715e8
3995f290bcf3
60cacd2d669b
7e509bd0f443
69e186743360
1caad359f950
Sending build context to Docker daemon 113.7kB
Step 1/2 : FROM redocly/redoc:v2.0.0-rc.18
---> 262cf1bbd824
Step 2/2 : COPY config/docker/index.tpl.html /usr/share/nginx/html/index.html
---> Using cache
---> a8b03c1555c5
Successfully built a8b03c1555c5
Successfully tagged redoc1:latest
183bd1af2d61968e67c6b0eec27d24a5892851ddc15b41bc155b8335de83f0ac
我正在使用 Z Shell,并且通常为这些重复的命令集设置别名。成功,直到现在。
我在中创建了以下内容~/.zshrc
:
alias redocly-local-deploy="docker stop $(docker ps -a -q --filter ancestor=redoc1) && docker build -t redoc1 . && docker run -p 8070:80 -d redoc1"
它与上面的命令完全相同,直接在 shell 中工作。
但是在运行别名时(在重新加载 zshrc 之后),它在第一个(或第二个?)命令之后失败:
> redocly-local-deploy
4127c16715e8
zsh: command not found: 3995f290bcf3
zsh: command not found: 60cacd2d669b
zsh: command not found: 7e509bd0f443
zsh: command not found: 69e186743360
zsh: command not found: 1caad359f950
看起来第一个命令的输出把它扔掉了。我尝试添加> /dev/null
到第一个命令,但得到了相同的结果。
感谢任何帮助!