我的网站托管有一个 VPS。它正在运行 Ubuntu 服务器。每次我通过 ssh 登录我的服务器时,它都会在我的终端中显示一条冗长的欢迎消息。
Linux node61.buyvm.net 2.6.18-pony6-3 #1 SMP Tue Mar 13 07:31:44 PDT 2012 x86_64
Debian GNU/Linux 系统中包含的程序是免费软件;每个程序的确切分发条款在 /usr/share/doc/*/copyright 中的各个文件中进行了描述。
在适用法律允许的范围内,Debian GNU/Linux 不附带任何保证。上次登录:2012 年 7 月 11 日星期三 12:08:19 来自 113.72.193.52 Linux node61.buyvm.net 2.6.18-pony6-3 #1 SMP Tue Mar 13 07:31:44 PDT 2012 x86_64
Debian GNU/Linux 系统中包含的程序是免费软件;每个程序的确切分发条款在 /usr/share/doc/*/copyright 中的各个文件中进行了描述。
在适用法律允许的范围内,Debian GNU/Linux 不附带任何保证。进入 CT 17323 -bash-4.2#
在对此做了一些研究之后(是的,我只是在谷歌搜索),我意识到我的服务器应该有一个.bashrc和.bash_profile(或.profile)控制这个。我使用 vim 打开我的.bashrc和.profile我似乎找不到任何可以在我的终端中显示消息的代码行。因此我想知道是否有另一个文件?
我想注释掉那些欢迎消息,因为我的 SFTP 没有出现错误 ( Received message too long 761422195)。我很确定这个错误是由我的服务器的欢迎消息引起的。
从我的脚本输出中,我想捕获所有带有错误消息的日志数据,并将它们全部重定向到日志文件。
我有如下脚本:
#!/bin/bash
(
echo " `date` : part 1 - start "
ssh -f admin@server.com 'bash /www/htdocs/server.com/scripts/part1.sh logout exit'
echo " `date` : sleep 120"
sleep 120
echo " `date` : part 2 - start"
ssh admin@server.com 'bash /www/htdocs/server.com/scripts/part2.sh logout exit'
echo " `date` : part 3 - start"
ssh admin@server.com 'bash /www/htdocs/server.com/scripts/part3.sh logout exit'
echo " `date` : END"
) | tee -a /home/scripts/cron/logs
Run Code Online (Sandbox Code Playgroud)
我想查看文件中的所有操作 /home/scripts/cron/logs
但是我只看到了我在echo命令后放置的内容。
如何检查SSH命令成功的日志?
我需要收集所有日志。我需要它来监视脚本中每个命令的结果,以便更好地分析脚本失败时发生的情况。
tail -f path
Run Code Online (Sandbox Code Playgroud)
以上将立即输出对文件的修改,但我想对输出应用过滤器,仅在其中有关键字时显示xxx。
如何处理这个问题?
如果我想在一行上运行两个单独的命令,我可以这样做:
cd /home; ls -al
Run Code Online (Sandbox Code Playgroud)
或这个:
cd /home && ls -al
Run Code Online (Sandbox Code Playgroud)
我得到了相同的结果。但是,这两种方法在后台发生了什么?它们之间的功能区别是什么?
有没有我可以使用的命令来轻松找到可执行文件的路径?我正在我的本地机器上寻找身份 - 像 pwd 之类的?
pwd identify
=> /usr/local/bin/identify
Run Code Online (Sandbox Code Playgroud) 我有这样的无效字符的文件
009_-_?%86ndringshåndtering.html
Run Code Online (Sandbox Code Playgroud)
这是Æ文件名出现问题的地方。
有没有办法只删除所有无效字符?
或者可以tr以某种方式使用?
echo "009_-_?%86ndringshåndtering.html" | tr ???
Run Code Online (Sandbox Code Playgroud) 我刚刚在 bash 中运行了以下命令:
uniq .bash_history > .bash_history
Run Code Online (Sandbox Code Playgroud)
我的历史文件最终完全是空的。
我想我需要一种在写入文件之前读取整个文件的方法。这是怎么做的?
PS:我显然想过使用临时文件,但我正在寻找更优雅的解决方案。
我有用户访问权限(无 root)到 Linux (Suse) 机器,我在那里开发了一些 bash 脚本和相应的 bash 自动完成规则。
由于脚本仅属于我的用户,因此我只需要对我来说“活动”的完整规则(部分原因是我没有 root 写入权限),将我的 bash_completion 脚本放入/etc/bash_completion.d/文件夹不是一个选项。
目前我命名我的文件.bash_completion.myscript并直接从我的.bashrc.
例如,创建一个文件夹/home/myuser/.bash_completion.d/?
我已经成为 zsh 用户有一段时间了(在那个 tcsh 之前和那个 csh 之前)。我对它很满意,但想知道 zsh 中是否存在任何引人注目的 bash 功能。相反,是否有 bash 中不存在的 zsh 功能。我目前的感觉是 bash 更好:
不想在这里开始一场宗教战争,这就是为什么我只是在寻找仅存在于一个外壳中的功能。
首先是具体问题:在 linux 中,我使用 zcat 列出一个 .zip 文件。在 osx 中,zcat 似乎会自动将 .Z 附加到文件名。很多人建议用 gzcat 替换 zcat;但是,gzcat 抱怨该文件不是 gzip 格式!
'file ' 显示: ...Zip 存档数据,至少要提取 v2.0
所以 zcat 或 gzcat 在 osx 中都不起作用,我该怎么办?
我在 bash 中有一个中等大小的脚本,它使用 zcat/gzcat、sed awk 和其他基本实用程序来处理许多文件。我想在我的 osx 笔记本电脑上复制该环境,以便我可以离线工作。有什么一般性建议可以避免这种痛苦吗?我希望这是一个相当常规的工作流程,所以一定是由其他人整理出来的。