我目前正在为我的正常使用制作一个设置我的服务器的整个过程的文本文件。
并想知道是否有任何方法可以编写 shell 脚本,以便我可以制作“nano”插入内容,保存,退出,然后继续执行其余的命令。
因为当我将所有这些都放入 shell 脚本时:
sudo nano /etc/apache2/conf-available/fqdn.conf
ServerName localhost
sudo a2enconf fqdn
Run Code Online (Sandbox Code Playgroud)
然后它显示具有以下内容的“纳米”文件编辑器:
ServerName localhost
sudo a2enconf fqdn
Run Code Online (Sandbox Code Playgroud)
好吧,虽然我希望它在 之后保存并退出ServerName localhost
,以便我的脚本可以继续。
无论如何这可能吗?
使用 Nano 文本编辑器时,如何显示行号,以便查看收到错误消息的行。我有一个冗长的程序,例如,我收到了第 95 行和第 125 行的错误消息。
我试图建立对我来说,只需要输入的方式newjournal
,并任命了新的日记帐分录year-month-date-time.txt
中创建year
的子目录~/documents/journals
。
我已使用以下命令将其设置为别名:
alias newjournal='nano /home/username/documents/journals/'$(date +%Y)'/'$(date +%F-%k%M).txt''
Run Code Online (Sandbox Code Playgroud)
所以 year 子文件夹可以正确解析,而 date 命令的前半部分似乎也是如此。尝试用 附加别名sudo
,没有帮助。
问题:出于某种原因,当我执行此命令时,时间值 ( %k
) 解析为几分钟前...或者也许是 nano 上次运行此文件名时,也许它被称为旧缓冲区?
当我注销时,它会生成正确的文件,然后我保存,等待几分钟再试一次,它会编辑旧文件而不是创建新文件。即使我删除了旧文件,它也会使用旧文件名(时间不正确)创建一个新文件。
这是我要解释的内容的屏幕截图。在这里,我创建了一个新日志,在执行命令后的一两秒内保存在 nano 中,打印正确的日期/时间,列出创建的文件。请注意不正确的文件名时间(1249,与 13:11 并列):
无论如何,它可能很简单,但是我在别名中尝试了不同的方法,例如在整个事物周围加上双引号并正确转义,单引号,转义和空格等。
感谢阅读/帮助。Ubuntu 16.04 服务器。
编辑:这是最终有效的别名:
alias newjournal='nano /home/user/journals/"$(date +%Y)"/"$(date +%F-%H%M).txt"'
Run Code Online (Sandbox Code Playgroud)
需要在整个单引号别名中对日期命令加双引号。
我是 Ubuntu 新手。我知道我可以通过传递选项使用 vim 以只读模式打开文件-R
:
vim -R <filename> //Gives warning if I try to write
Run Code Online (Sandbox Code Playgroud)
但是,如果我对 nano 做同样的事情,我就可以自由地写入文件:
nano -R <filename> //I can still write
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?如何使用 nano 以只读模式打开文件?
我想在 nano 编辑器打开的配置文件中查找一些关键字,那么谁能帮我在这个编辑器中找到关键字?
谢谢你。
所以我试图设置 JAVA_HOME 变量,以及每次我想使用终端时我最终都会遇到这个错误
Command 'poweroff' is available in the following places
* /sbin/poweroff
* /usr/sbin/poweroff
The command could not be located because '/sbin:/usr/sbin' is not included in the
PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with
your user account.
poweroff: command not found
Run Code Online (Sandbox Code Playgroud)
我可以用这个命令修复它:
export PATH="/usr/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)
但每次我打开新终端时,我都会再次遇到错误,我必须再次使用此命令。
如果您能提供帮助,我将不胜感激。顺便说一句我用的Ubuntu 22.04.1 LTS
我的问题是sudo
每次使用 nano 之前我总是忘记写,最终发生的事情是我在一个文件上工作了一段时间并且没有权限。我记得在某处听说你可以编辑其中一个文件,这样每次我输入
nano filename
它都会像我写的一样工作
sudo nano filename
我没有尝试过任何东西,因为我以前对此一无所知。
我该怎么做呢?
曾经我可以在 nano 之外和 NANO paste 内复制。现在我的安装失败了。我在联想笔记本电脑上有一个当前的 linux。