当前位置: 首页 > news >正文

alias取别名后,另一个shell中和shell脚本中不生效的问题以及crontab执行docker失败问题

目录

  • 问题一:用alias取别名后,另一个shell中不生效
    • 描述
    • 原因
    • 解决
  • 问题二:用alias取别名后,别名在脚本中不生效
    • 描述
    • 原因
    • 解决
  • 问题三:crontab计划任务不能运行docker命令
    • 描述
    • 原因
    • 解决

问题一:用alias取别名后,另一个shell中不生效

描述

今天在服务器上配置了一条命令的别名:

alias python38='docker exec -it 4b11 python'

但是我用xshell远程连接时,找不到我重命名的“python38”命令


原因

经过查阅,如果要使用 alias 命令在当前 shell 中创建别名,那么该别名只会在当前 shell 会话中生效。如果希望在其他 shell 会话或其他用户账户中使用该别名,您需要将该别名添加到相应的配置文件中。


解决

如果使用的是 Bash shell,可以将别名添加到 ~/.bashrc 文件中。这样,每次启动新的 Bash shell 会话时,该别名都会自动加载。

vim ~/.bashrc

添加过后,需要重新加载 ~/.bashrc 文件以使更改生效:

source ~/.bashrc

然后在新开的shell中运行如下命令,便可以看到重命名生效

alias -p

问题二:用alias取别名后,别名在脚本中不生效

描述

虽然问题一解决了,但是又遇到了新问题,就是别名在shell脚本里还是不生效

原因

别名只在交互式 shell 中生效,而不在非交互式 shell(例如脚本)中生效。

解决

为了在脚本中使用别名,您可以将别名转换为函数。函数可以在交互式和非交互式 shell 中都能够使用。

function ll() {ls -l
}
#!/bin/bash# 调用 ll 函数
ll

问题三:crontab计划任务不能运行docker命令

描述

crontab 在执行含有docker命令的脚本时,docker命令都执行失败:

#!/bin/bash
docker exec -it 4b11 python test.py

原因

exec 加了 -it 参数就开启了一个终端,计划任务无法进入任何终端。

解决

只需要将exec 后的 -it 参数去掉即可

#!/bin/bash
docker exec 4b11 python test.py
http://www.lryc.cn/news/99077.html

相关文章:

  • Shell ❀ 一键配置Iptables规则脚本 (HW推荐)
  • linux服务器查找大文件及删除文件后磁盘空间没有得到释放
  • Java那些“锁”事 - 死锁及排查
  • LLM系列 | 18 : 如何用LangChain进行网页问答
  • Aspose.cell excel转pdf日期格式不正确yyyy/MM/dd变成MM/dd/yyyy
  • 搭建golang开发环境
  • Django实现音乐网站 ⑴
  • 基于粒子群优化算法的分布式电源选址与定容【多目标优化】【IEEE33节点】(Matlab代码实现)
  • 打卡一个力扣题目
  • 【SSM—SpringMVC】 问题集锦(持续更新)
  • 2022年全国职业院校技能大赛(高职组)“软件测试”赛项接口测试任务书
  • Docker 如何助您成为数据科学家
  • 机器学习01 -Hello World(对鸢尾花(Iris Flower)进行训练及测试)
  • android studio JNI开发
  • CSS 高频按钮样式
  • 系列二、RocketMQ简介
  • 论文笔记--Skip-Thought Vectors
  • 1400*B. Karen and Coffee
  • 【业务功能篇54】Springboot项目常用工具类:HTTP状态码/客户端request
  • Fine Logic
  • Neo4j图数据基本操作
  • 前端JavaScript面试100问(中)
  • Docker 安全及日志管理与https部署
  • 2.3 HLSL常用函数
  • 互联网的发展
  • STM32 CAN通讯实验程序
  • Python代码片段之Django静态文件URL的配置
  • 基于飞桨paddle的极简方案构建手写数字识别模型测试代码
  • soft ip与hard ip
  • MyBatisPlus从入门到精通-2