首页 >>  正文

bash脚本开头

来源:baiyundou.net   日期:2024-09-22

作者:蜘蛛抱蛋

虽然NAS的shell后台并不常用,但每次用的时候都想吐槽,自带的bash是真的难用。所以决定给它换成zsh。参考网上几篇古老的教程,终于是成功了,这里简单记录一下。

首先安装Entware。首先从myqnap网站下载entware-std传到NAS上,ssh登录admin,"sh Entware_1.03std.qpkg"安装。试一下opkg命令,无效的话重新登陆ssh或执行/etc/init.d/Entware.sh。然后"opkg update && opkg install git git-http zsh"

接下来安装oh-my-zsh,可以按照官网操作,网络问题的话就用离线方式。装好之后默认在/root目录下生成三个文件

  • .zshrc

  • .oh-my-zsh(文件夹)

  • .zsh_history

重点来了,平时我们并不用root登录,而且重启之后root文件夹也会清空。这里借助entware的启动脚本转移zsh的配置文件。打开"/share/CACHEDEV1_DATA/.qpkg/Entware/Entware.sh",在"start)"区块最后加上自启动脚本,就像这样

写脚本之前先在"/share/CACHEDEV1_DATA"或者其它位置新建".zsh"目录,把上面三个文件mv过去,这个目录可以放在任何不会重启丢失的路径下。修改.zsh下所有文件的权限为755,拥有者改为你正常登录ssh的用户名。

然后就是脚本内容,就像这样

第一行是为了在启动时将/opt/bin加入环境变量,中间三行在home目录建立的软链接,这样保证重启之后配置文件不会丢失。我另外还把hosts、apache的conf也写了进去,这样每次重启就能自动恢复相关的配置了,省的每次还要手动执行一次。

搞定之后退出登录,为了安全关闭admin账号,重启NAS。登录ssh,执行zsh就能打开新世界了。这里没有把zsh设为默认,也是担心配置文件出错导致无法登录。

最后友情提醒:公网开放ssh登录是非常危险的,分分钟变成别人的矿机。

阅读更多NAS存储精彩内容,可前往什么值得买查看

","gnid":"90d2f8a374d13cdee","img_data":[{"flag":2,"img":[{"desc":"","height":"511","title":"","url":"https://p0.ssl.img.360kuai.com/t01f3fa60ae071de53a.jpg","width":"625"},{"desc":"","height":"236","title":"","url":"https://p0.ssl.img.360kuai.com/t0146755b28b6e58caa.jpg","width":"1079"}]}],"original":0,"pat":"art_src_1,fts0,sts0","powerby":"hbase","pub_time":1690966351000,"pure":"","rawurl":"http://zm.news.so.com/1c558df434a3fa30a405a792e41cb0e0","redirect":0,"rptid":"7135a95c2efc7816","rss_ext":[],"s":"t","src":"什么值得买","tag":[],"title":"NAS 篇九:QTS 5.1 从bash换到zsh并替换自启动脚本

谈泰彼1484linux 程序开始#什么意思 -
宫勤波15590371828 ______ 你是指shell脚本吗?shell脚本中#开头的行代表注释行,第一行还有特殊意义#!/bin/bash 代表使用bash作为解释器解释脚本#!/bin/ksh 代表用ksh 作为解释器 解释脚本 如果是C语言 那就是代表预处理命令的开头#include 包含文件#define 定义符号

谈泰彼1484shell脚本 - bash: ./sh - ext - ztd.ztd: /bin/csh: bad interpreter: Permission denied 这个问题怎么解决? -
宫勤波15590371828 ______ -bash 说明你本机的shell是bash 但 脚本开头声明的shell解释器是 /bin/csh,因此报错“找不到解释器”,bad interpreter.另外,Permission denied这个错误,可能是没有赋予脚本可执行权限.需要先 chmod +x ./sh_ext_ztd.ztd 给脚本可执行权限

谈泰彼1484bash脚本遍历目录指定后缀的文件,并执行操作 -
宫勤波15590371828 ______ 可以使用ls或者find来完成对某个文件夹下所有文件的遍历 比如使用ls 可以简单地使用一个通配符来完成 ls 某个目录/* 也可以使用find来完成 比如 find 某个目录 自然的也可以写一个shell脚本来进行遍历 首先进行一个要遍历的文件夹 然后循环查...

谈泰彼1484shell怎么用? -
宫勤波15590371828 ______ shell 脚本类似于windos中的批处理,要学好shell得会大量的linux命令 shell脚本通常以 #!/bin/bash 开头 简单用法 例:$vim test.sh //建一个shell文件#!/bin/bash #shell文件以#!/bin/bash 开头 #号为注释 ehco hello world! #echo为输出 :wq //退出vim$sh ./test.sh //运行test.sh 脚本 hello world! //hello world!输出在终端上

谈泰彼1484简述一个完整的Shell脚本由哪些内容构成 -
宫勤波15590371828 ______ #!/bin/bash 以这句开头(bash shell的时候),或者其他的shell开头 就可以了吧 剩下的就是命令和逻辑语句的罗列了

谈泰彼1484linux 运行一个可执行文件,出现 line 1: syntax error: unexpected "(" 的错误 -
宫勤波15590371828 ______ 出现 line 1: syntax error: unexpected "(" 的错误说明可执行脚本出现异常,具体错误在脚本的第一行,是语法错误,“(”不是预期的. 题主需要检查脚本中的实际内容,根据具体内容去排除问题,脚本才能正确执行. 扩展资料 linux下...

谈泰彼1484bin/bash 和 /bin/sh 的区别 -
宫勤波15590371828 ______ bash能兼容所有的sh,如果你是初学者,当它们一样也行

谈泰彼1484$bash是什么命令 -
宫勤波15590371828 ______ Linux系统默认开启的终端,一般都是Bash Shell,可以通过如下命令确定当前运行的默认Shell. echo $SHELL 说明:个人系统是Redhat Enterprise server5,默认使用的shell即为bash shell. 如果系统默认使用的不是bash shell,可以通过bash命令运行bash shell. 说明:图中随便输入的命令,目的是让shell执行出错,通过出错信息来确定bash命令是否成功执行.在bash中如果找不到命令开头一定是"bash: "之类的信息. 通过上图即可知道要运行bash shell,只需要执行bash命令即可.

谈泰彼1484如何指定使用那一个Shell 来解释所写的Script呢? -
宫勤波15590371828 ______ 写在脚本的第一行,也就是传说中的shabang 行,一般以#! 开始,后面紧接着 解释器的路劲就可以了!比如:1. shell脚本常用的方式,sh或者bash来解释: #!/bin...

谈泰彼1484如何在systemd中添加service -
宫勤波15590371828 ______ Systemd 服务的内容主要分为三个部分,控制单元(unit)的定义、服务(service)的定义、以及安装部分. 和 SysV init 脚本的差异 过去,*nix 服务(守护精灵)都是用 SysV 启动脚本启动的.SysV 启动脚本就是 Bash 脚本,通常在 /etc/init....

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024