请教两个ubuntu20.04系统关于minicom和解压缩指令无法alias的问题

请教两个问题,GPT问不出来
问题一:
使用ubuntu时,我经常使用sudo minicom,然后输入密码登录minicom界面,我想把sudo minicom和输入的密码的操作指令取别名加入到bashrc中,alias mymini='sudo -S minicom <<< "123456"'
但是source后终端输入mymini并没有登录到minicom,而是产生了清屏的效果(和clear一样),请问这为什么?补充,(echo '123456' | sudo -S minicom)也不行,也会产生清屏的效果,并不会登录进去minicom界面;
问题二:
我想把解压缩指令加入到.bashrc中,但是为什么使用alias别名运行后无法解压缩呢,如下图所示

img

img

~/.bashrc刷新一下
看看用户是不是在这个文件的管理下

Ubuntu下alias命令的使用
可以参考下


Ubuntu环境下minicom使用
Ubuntu环境下minicom使用_ubuntu打开minicom_庐州拎壶冲的博客-CSDN博客 minicom_ubuntu打开minicom https://blog.csdn.net/qq_41483419/article/details/130103142

alias 并不能实现你所说的功能,应该在底层的配置文件里面修改

一、minicom无法alias的问题

minicom是一个用于串口通信的工具。在使用minicom时,有时会发现无法使用alias来定制一些快捷命令,这是为什么呢?

在Linux系统中,alias是一个用于创建命令别名的命令,可以将一个命令的别名指向另一个命令或一条命令序列。例如,我们可以通过alias命令将ls命令的别名设置为ll,这样每次输入ll就相当于输入了ls。

但是,在使用minicom时,我们会发现alias无法正常工作,原因是在minicom中,alias是一个内置的命令,用于设置“会话别名”,而不是用于创建命令别名的。所以,如果你在minicom中使用alias命令,它只会设置会话别名,而不会创建命令别名。如果想要在minicom中创建命令别名,需要使用minicom的另一个内置命令bindkey。

bindkey命令用于将一个特定的键绑定到一条命令,例如,我们可以使用bindkey命令将F1键绑定到ls命令,这样每次按下F1键就相当于输入了ls。下面是在minicom中使用bindkey命令创建命令别名的步骤:

  1. 按下Ctrl+A键,进入minicom的命令模式;

  2. 输入bindkey命令,按下空格键;

  3. 输入想要绑定的键,例如F1键;

  4. 输入想要绑定的命令,例如ls命令;

  5. 按下回车键,退出命令模式。

这样就可以在minicom中成功创建一个命令别名了。

二、解压缩指令无法alias的问题

在Linux系统中,解压缩文件是非常常见的操作。通常情况下,我们使用tar、gzip、bzip2等命令进行解压缩操作。如果我们想要为这些命令创建别名,以便我们能够更方便地使用它们,该怎么做呢?

与minicom不同,tar、gzip、bzip2等命令是可以使用alias创建别名的。但是,在Ubuntu 20.04系统中,有些用户会发现无法使用alias命令创建解压缩指令的别名,这是为什么呢?

这是因为,在Ubuntu 20.04系统中,默认的bash shell并没有开启alias命令的扩展功能。要想使用alias命令创建别名,需要在当前会话中开启alias命令的扩展功能。可以使用以下命令来开启扩展功能:

shopt -s expand_aliases

执行这个命令后,就可以使用alias命令来创建解压缩指令的别名了。例如,我们可以为tar命令创建一个别名,将其命名为mytar,可以使用以下命令:

alias mytar='tar -zxvf'

这样,每次使用mytar命令就相当于输入了tar -zxvf命令。

需要注意的是,开启扩展功能只对当前会话有效,如果需要长期使用别名,需要将这条命令添加到bash shell的配置文件中,例如~/.bashrc文件中,这样每次登录bash shell时,都会自动开启扩展功能。

在bashrc 文件中添加以下行:

alias mymini='echo "123456" | sudo -S minicom'
然后重新加载 bashrc:

source ~/.bashrc

这个要配置文件中改

试试expect工具

参考newbing
问题二: 问题的原因是alias只能用于执行命令,而不能用于在别名中包含参数或选项。

如果你想将解压缩指令添加到.bashrc中,你可以创建一个简单的bash函数而不是使用alias。请在.bashrc文件中添加以下内容:

function myunzip() {
    unzip "$1"
}

保存并重新加载.bashrc,然后你就可以使用myunzip函数来解压文件。例如,要解压example.zip文件,你可以运行myunzip example.zip命令。

在 Ubuntu 20.04 中,~/.bashrc 文件可能不会被读取,因为它被 /etc/bash.bashrc 文件覆盖了,可以在 /etc/bash.bashrc 文件末尾添加以下内容:

# Source the user's bashrc if it exists

if [ -f "$HOME/.bashrc" ]; then

    source "$HOME/.bashrc"

fi

这样,每次启动 bash 时,~/.bashrc 文件都会被读取,从而使修改生效。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答由chatgpt基于相关博客总结生成:

    问题一的原因是因为在使用别名时,无法传递输入密码给"sudo -S minicom <<< "123456""命令。这是因为标准输入被重新定向到了minicom命令,而不是输入密码。

    为了解决这个问题,可以使用下列的解决方案:

    1. 创建一个shell脚本文件,比如"mymini.sh",并添加以下内容:
    #!/bin/bash
    echo "123456" | sudo -S minicom
    
    1. 保存并退出文件。

    2. 将该文件设置为可执行文件:

    chmod +x mymini.sh
    
    1. 将脚本文件所在的路径添加到系统的环境变量PATH中,这样就可以在任何地方执行该脚本。

    2. 然后,你可以像执行其他命令一样执行"mymini.sh"来登录minicom界面。

    问题二的原因是因为解压缩命令无法正确解析别名中的参数。

    为了解决这个问题,可以使用下列的解决方案:

    1. 将解压缩命令添加到.bashrc文件中:
    alias myunpack='tar -zxvf'
    
    1. 保存并退出文件。

    2. 在终端中重新加载.bashrc文件:

    source ~/.bashrc
    
    1. 然后,你就可以使用"myunpack"命令来解压缩文件。例如,如果要解压缩一个名为"example.tar.gz"的文件,可以执行以下命令:
    myunpack example.tar.gz
    

    这样,你就可以成功设置别名并使用它们来登录minicom界面和进行解压缩操作了。如果还有其他问题,请随时向我提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

问题一:
你遇到的问题很可能与minicom与终端以及标准输入(stdin)的交互方式有关。当你使用<<<或echo将密码传递给sudo -S minicom时,密码会被作为标准输入传递,但是minicom期望直接与终端进行交互。

为了解决这个问题,你可以使用expect工具,它专门用于自动化处理像minicom这样的交互式应用程序。首先确保你的系统上安装了expect工具。如果你还没有安装,可以通过包管理器进行安装:

sudo apt-get update
sudo apt-get install expect

然后,在你的.bashrc或.bash_aliases文件中创建一个bash函数,使用expect来自动处理minicom的sudo登录。编辑你的.bashrc或.bash_aliases文件,添加以下函数:


mymini() {
  expect -c "
    spawn sudo minicom
    expect \"Password:\"
    send \"$1\n\"
    interact
  "
}

保存文件后,重新启动终端或运行source ~/.bashrc(或source ~/.bash_aliases)以应用更改。

现在,你可以使用新的函数mymini来运行minicom并提供密码:


mymini "你的密码"

将"你的密码"替换为你实际的sudo密码。这个函数会自动处理密码输入,并允许你与minicom进行交互。

请注意,在脚本或函数中使用明文密码可能存在安全风险,因为其他用户可以访问它们,或者密码可能会在日志中留下痕迹。在实施这样的解决方案时要小心,并考虑使用其他安全措施,比如设置sudo对于你的用户不要求输入密码来运行minicom,或者如果可能的话使用其他身份验证方法。

问题二:
在将解压缩指令添加到.bashrc的别名中时,需要确保别名的语法是正确的,并且别名所引用的命令可以正常运行。

如果你希望将解压缩指令添加到别名中,可以使用以下方式:


alias myunzip='unzip -u'  # 例如,这里将解压缩指令添加到 myunzip 别名中

这里使用alias关键字创建别名,名称为myunzip,并将其关联到unzip -u命令。-u选项表示只解压缩那些已经存在于目标路径中、而且版本较新的文件。

保存.bashrc文件后,运行以下命令使其生效:


source ~/.bashrc

现在你可以在终端中使用myunzip别名来解压缩文件。例如:


myunzip archive.zip

这将解压缩archive.zip文件到当前目录。

如果你还遇到问题,可以检查以下几点:

确保你在.bashrc文件中正确添加了别名,并且文件没有其他语法错误。
确保你运行了source ~/.bashrc使别名生效,或者直接重新启动终端。
检查unzip命令是否可正常运行。可以尝试直接运行unzip命令来解压缩文件,以确保该命令能正常工作。

如有帮助还请采纳

到ubuntu论坛上找找

一、关于minicom无法alias的问题

minicom是一款常用的串口通信工具,在Ubuntu 20.04系统中也可以使用。但有些用户在使用时会遇到无法alias的问题,即无法将minicom设置为别名来简化命令的输入。

解决方法如下:

  1. 打开终端,输入vim ~/.bashrc,进入bashrc文件编辑界面。

  2. 在文件底部添加alias minicom='sudo minicom',保存并退出。

  3. 输入source ~/.bashrc,使修改生效。

  4. 输入minicom即可启动minicom,也可以使用alias后的简写minicom。

二、关于解压缩指令无法alias的问题

在Ubuntu 20.04系统中,解压缩指令通常使用tar命令,但有些用户在使用时会遇到无法alias的问题,即无法将tar命令设置为别名来简化命令的输入。

解决方法如下:

  1. 打开终端,输入vim ~/.bashrc,进入bashrc文件编辑界面。

  2. 在文件底部添加alias extract='tar -zxvf',保存并退出。

  3. 输入source ~/.bashrc,使修改生效。

  4. 输入extract filename.tar.gz即可解压缩,也可以使用alias后的简写extract。

总结:

在Ubuntu 20.04系统中,alias命令可以帮助我们快速简化命令的输入,提高效率。以上就是解决minicom和解压缩指令无法alias的问题的方法,希望对大家有所帮助。