AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 31216
Accepted
Thomas Ward
Thomas Ward
Asked: 2011-03-21 09:10:17 +0800 CST2011-03-21 09:10:17 +0800 CST 2011-03-21 09:10:17 +0800 CST

在 zsh 中设置别名

  • 772

我知道在 bash 中,您可以在 .bash_aliases 文件中设置别名,这样您键入的命令就不必是存储在系统二进制文件中的命令。有什么办法可以让别名进入zsh?

zsh
  • 7 7 个回答
  • 187687 Views

7 个回答

  • Voted
  1. Kurtosis
    2012-10-02T17:24:41+08:002012-10-02T17:24:41+08:00

    我在 bash 和 zsh 之间来回切换,并.aliases为两者使用相同的文件。它们共享相同的基本别名语法,因此您可以创建一个.aliases文件并将其链接到.bashrc和.zshrc:

    .bashrc

    if [ -f ~/.aliases ]; then
        . ~/.aliases
    fi
    

    .zshrc

    source $HOME/.aliases
    

    FWIW 这也可以在单独的.env文件中通过环境变量声明来完成。

    • 197
  2. Best Answer
    sazary
    2011-03-21T09:54:02+08:002011-03-21T09:54:02+08:00

    您可以使用以下语法通过“别名”命令执行此操作:

    alias [ -gmrL ] [ name[=value] ... ]
    

    对于“gmrL”开关,请参阅本指南,这是我的参考。
    对于每个没有值的名称,zsh 将打印名称及其之前的别名。完全没有参数,alias打印所有定义的别名的值。

    要定义一个或多个别名,只需输入:

    alias name1=value1 name2=value2 ... nameX=valueX
    

    对于每个具有相应值的名称,zsh 使用该值定义一个别名。有关更多信息,请查看该链接。;-)

    • 58
  3. geekosaur
    2011-03-21T10:01:05+08:002011-03-21T10:01:05+08:00

    你一般把它们放在~/.zshenv. 但是许多程序使用/bin/sh(通常bash)而不是$SHELL执行 shell 命令,因此要让它在任何地方都可以工作,您可能需要将bash别名的等价物放入其中~/.bash_aliases。

    • 12
  4. Elias Cruz
    2021-11-04T15:21:45+08:002021-11-04T15:21:45+08:00

    我正在尝试一些事情,我找到了一种将我在 bash 中创建的别名用于 zsh 的方法,只是我必须从 bashrc 复制这些行:

    if [-f ~ / .bash_aliases]; then
    . ~ / .bash_aliases
    fi
    
    • 2
  5. code-8
    2021-05-20T06:22:26+08:002021-05-20T06:22:26+08:00

    .zshrc

    在文件底部添加这一行(假设您的别名位于~/.profile):

    source ~/.profile
    
    • 0
  6. equivalent8
    2021-12-23T11:59:43+08:002021-12-23T11:59:43+08:00

    如果有人觉得这很有用:我的情况是我有一台 Macbook 笔记本电脑、Ubuntu 笔记本电脑、Ubuntu 桌面和几个 Ubuntu 虚拟机。在所有这些中,我想使用默认值(所以 Ubuntu 中的 Bash 和 OSX 中的 Zsh)但具有相同的别名。

    .bash_aliases我处理它的方式是我在 git repo 中有我的别名文件,名为dotfiles. 我只是在我的所有计算机中克隆了 repo,然后创建了一个指向别名文件的符号链接:

    ln -s "~/wherever_i_store_git_repos/dotfiles/.bash_aliases" "~/.bash_aliases"
    

    在 Ubuntu 中,我将其添加到~/.bashrc:

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

    在 OSX 中,我将其添加到.zshrc:

    if [ -f ~/.bash_aliases ]; then
      source $HOME/.bash_aliases
    fi
    

    注意:或者,如果您不使用 git,您可以 ln -sa Dropbox 文件夹

    • 0
  7. Doclinux
    2021-10-26T18:27:15+08:002021-10-26T18:27:15+08:00

    我写了这个,并把它放在我~/.bashrc的很久以前。我没有把所有可以通过保存你的设置来完成,但只是发挥你的想象力!

    注意:如果您要更新~/.bash_aliases,那么~/.oh-my-zsh/.zsh_aliases也要更新。

    将您的 、 和 保存~/.bash_history在~/.bashrcDropbox 中~/.bash_aliases。~/.profile首先在 Dropbox 文件夹中创建一个以您的文件命名的文件。这样无论你在哪里编辑它,如果它被编辑?它在您的所有设备上都是最新的。在您的 中添加以下行~/.bashrc:

        DBPATH=${HOME}"/Dropbox"; ## Path to your DropBox Folder
    if [ -d "${DBPATH}" ] 
    then
     
        BA="/.bash_aliases" ## Path to your .bash_aliases File
    if [ ${HOME}"${BA}" -nt ${DBPATH}"${BA}" ] 
    then
        cat ${HOME}"${BA}" > ${DBPATH}"${BA}" 2>/dev/null;
    # If updating ~/.bash_aliases then update ~/.oh-my-zsh/.zsh_aliases Too
        cat ${HOME}"${BA}" > ${ZSH}"/.zsh_aliases" 2>/dev/null;
     fi
    
        BRC="/.bashrc"  ## Path to your .bashrc File
    if [ ${HOME}"${BRC}" -nt ${DBPATH}"${BRC}" ] 
    then
        cat ${HOME}"${BRC}" > ${DBPATH}"${BRC}" 2>/dev/null;
     fi
     
        BPF="/.profile" ## Path to your bash .profile File
    if [ ${HOME}"${BPF}" -nt ${DBPATH}"${BPF}" ] 
    then
        cat ${HOME}"${BPF}" > ${DBPATH}"${BPF}" 2>/dev/null;
     fi
    
        BHT="/.bash_history"    ## Path to your .bash_history File
    if [ ${HOME}"${BHT}" -nt ${DBPATH}"${BHT}" ] 
    then
        cat ${HOME}"${BHT}" > ${DBPATH}"${BHT}" 2>/dev/null;
     fi
    ## First make a file named after your files in the Dropbox folder
    # That way no matter where you edit konsole bookmarks, If it's edited? 
    # It's up-to-date on all Your devices.
        HLS=${HOME}"/.local/shere"
        KBM="/konsole/bookmarks.xml"
    if [ ${HLS}"${KBM}" -nt ${DBPATH}"${KBM}" ] 
     then
            cat ${HLS}"${KBM}" > ${DBPATH}"${KBM}" 2>/dev/null;
        fi
    fi
    
    • -2

相关问题

  • 使用 zsh 的 guake 无法启动

  • 从 bash 迁移到 zsh [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    我需要什么命令来解压缩/提取 .tar.gz 文件?

    • 8 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Martin Hope
    EmmyS 我需要什么命令来解压缩/提取 .tar.gz 文件? 2011-02-09 14:50:41 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve