You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下Bash自定义脚本默认临时?如何永久保存自定义脚本?

问题:Bash自定义mcd函数重启后失效,如何永久保存?

我在Bash中创建了名为mcd的函数,可直接在命令行使用,但重启Linux后无法调用,想问这类函数默认是否为临时的,有没有方法永久保存自定义脚本?

初始操作

hanyuchi@TABLET-1DDNDEN4:~$ mcd () {
> mkdir -p "$1"
> cd "$1"
> }
hanyuchi@TABLET-1DDNDEN4:~$ mcd example2
hanyuchi@TABLET-1DDNDEN4:~/example2$ cd ..
hanyuchi@TABLET-1DDNDEN4:~$ tree
.
├── UTF-8
├── brightness
├── example
├── example2
├── last-modified.txt
├── one
│   └── a
└── two
    └── b

4 directories, 5 files

系统重启后

hanyuchi@TABLET-1DDNDEN4:~$ mcd example3
Command 'mcd' not found, but can be installed with:
sudo apt install mtools

解答

直接在命令行定义的函数是临时的,仅存在于当前Shell会话中,重启系统或新开终端后就会消失——因为这些定义不会自动写入持久化配置文件。

方法一:写入Bash用户配置文件

  1. 打开用户Bash配置文件(常用~/.bashrc):
    nano ~/.bashrc
    
  2. 在文件末尾添加mcd函数:
    mcd () {
        mkdir -p "$1"
        cd "$1"
    }
    
  3. 保存退出后,让配置立即生效:
    source ~/.bashrc
    

之后重启终端或系统,函数会自动加载。

方法二:做成独立可执行脚本

  1. 创建mcd脚本文件,内容如下:
    #!/bin/bash
    mkdir -p "$1"
    cd "$1"
    
  2. 给脚本添加可执行权限:
    chmod +x mcd
    
  3. 将脚本移到用户可执行目录(比如~/.local/bin,无需sudo):
    mv mcd ~/.local/bin/
    
    如果~/.local/bin不在你的环境变量PATH中,先把它加到~/.bashrc:
    echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
    source ~/.bashrc
    

这种方式下,mcd会像系统命令一样全局可用。


内容的提问来源于stack exchange,提问作者hyc050104

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 11:38:12