Linux RaspberryPI关闭脚本

Linux RaspberryPI关闭脚本,linux,shell,raspberry-pi,Linux,Shell,Raspberry Pi,所以我最近刚刚连接了我的新Rasppi,我想用shell脚本编写一个脚本来轻松关闭主板。通过一次谷歌搜索,我了解到这个命令: sudo shutdown -h now 将从命令行关闭PI。现在我想把它变成一个脚本文件,我可以很容易地运行。它是否像粘贴到文本文件并保存为shell脚本那样简单?还是我遗漏了什么?您可以为它创建一个shell脚本,但通常,这是我们为其创建的别名。别名是常用命令的昵称,它们通常位于主目录中的.bashrc或.bash\u配置文件中 您可以为通常运行的所有命令声明别名。

所以我最近刚刚连接了我的新Rasppi,我想用shell脚本编写一个脚本来轻松关闭主板。通过一次谷歌搜索,我了解到这个命令:

sudo shutdown -h now

将从命令行关闭PI。现在我想把它变成一个脚本文件,我可以很容易地运行。它是否像粘贴到文本文件并保存为shell脚本那样简单?还是我遗漏了什么?

您可以为它创建一个shell脚本,但通常,这是我们为其创建的
别名。别名是常用命令的昵称,它们通常位于主目录中的
.bashrc
.bash\u配置文件中

您可以为通常运行的所有命令声明别名。例如,如果希望在每次键入
ls
时看到颜色,则应能够在.bashrc中包含以下别名:

alias ls='ls --color=auto'
现在,每次键入
ls
,就好像键入了
ls--color=auto

因此,您可以将shutdown命令命名为别名,但是sudo部分使它变得有点棘手,因为sudo将忽略您的.bashrc。因此,您可以执行以下操作:

alias sudo='sudo '
alias turnoff='shutdown -h now'
你可以叫它任何容易记住的名字。编辑.bashrc文件后,必须
source
该文件,以便记住更改:

source ~/.bashrc
或:

在此之后,您的命令应该可以这样运行:

sudo turnoff
不过,我们在这里并没有为击键节省太多,如果您想重新启动而不是停止,或者想在几分钟内关机(例如,在完成更新之后),该怎么办

另外,由于您询问了shell脚本,您可以制作一个shell脚本,但是当您创建shell脚本时,通常需要做几件事:

  • 编写脚本并在顶部包含一行“shebang:
    #/bin/bash
    (这会告诉shell将使用什么来运行脚本)
  • chmod u+x
    使脚本可执行,以及
  • 将它放在~/bin/目录中(并确保该目录位于您的路径中)
  • 您还可以查找common.bashrc文件,这样您就可以看到人们经常为哪些内容制作别名(这是我们在自定义命令行环境时通常首先做的事情之一)


    例如,我仍然将
    rm
    别名为
    rm-I
    ,每当我告诉它要删除某个内容时,它都会询问我,而我只有在我真的确定要删除某个内容时才会执行
    rm-f
    。这里可能有很多人会认为这是愚蠢的,但是我过去已经懒惰地删除了很多东西,所以我不介意保护。

    代码> SudoPoopOut是一个稍短的方式…你可以简单地将它放在一个shell脚本中(添加一个
    #!/bin/sh
    作为第一行,并使用
    chmod
    使其可执行)我听说这不是一个好主意,因为它实际上没有关闭设备?我不记得到底说了什么,但大家都认为sudo关机是最好的方式。
    shutdown
    是正确的方式。。。它通常通过提醒用户,然后切换到不同的运行级别来重新启动、停止或关闭系统。在Linux上,如果从运行运行级别运行,则命令
    poweroff
    halt
    reboot
    也将切换运行级别。(手册页实际上提到它调用了
    关机
    )(在Solaris上,它们直接停止操作系统、关闭系统电源或重新启动系统,而不给任务终止的机会……)(
    shutdown
    是一个好习惯,但是
    init0
    init6
    init5
    reboot
    halt
    poweroff
    可以根据操作系统获得相同的结果)谢谢你通知我!看看所有这些在非
    sysvinit
    系统上是如何工作的,比如
    systemd
    upstart
    。(
    sysvinit
    你可以相对容易地阅读一些脚本并准确地了解正在发生的事情)(在RHEL上你可以查看
    /etc/rc
    )只需使用
    alias-turnoff='sudo shutdown-h now'
    。别名由用户的shell扩展,因此sudo永远看不到它…我最终按照本教程制作了一个bash文件:
    sudo turnoff