当您设置新的 Ubuntu 或 OS X 安装时,通常会为您创建一个用户。在 OS X 上,它是您选择的任何用户名。在 Ubuntu(服务器版本)上,通常ubuntu会创建用户。
根据我的理解,还有一个 root 用户,您可以通过类似的方式访问该用户sudo su - root,然后输入ubuntu您创建的或您创建的用户的密码,这是管理员组的一部分。一旦您切换到root我认为您可以使用该passwd命令并更改root的密码。
但root在那之前的密码是什么?它存在吗?它是由数字和字母组成的随机字符串吗?系统如何处理?
我相信,如果 cronjob 有任何输出,它会邮寄给该作业所属的用户。我认为您还可以MAILTO=vivek@nixcraft.in在 cron 文件的顶部添加类似的内容来更改输出的发送位置。
我可以设置一个选项,以便将系统范围内的 cron 作业通过电子邮件发送给 root 运行它们的用户而不是发送给它们吗?(即这样我就不必在每个用户的 cron 文件中设置它)
在 Ubuntu 上,你可以使用这样的东西:
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
Run Code Online (Sandbox Code Playgroud)
这将阻止需要输入的事情(选择 grub 版本或配置文件之间的冲突,甚至mysql在安装过程中提示输入root 密码)
我检查了man页面,yum但没有看到任何与非交互式使用相关的内容,除了check-update“如果有可用于更新的包,则返回退出值 100”
Yum 是否与 apt / aptitude 等效DEBIAN_FRONTEND=noninteractive?
如何使用 rsync 默认排除文件?这是我的正常 rsync 语法的开始方式:
rsync --exclude ".ht*" --exclude "error_log" --exclude ".DS*" --exclude "old" ...
Run Code Online (Sandbox Code Playgroud)
我已经看到很多关于配置/etc/rsyncd.conf文件的提及,但对于守护进程来说,这可能比 rsync 命令更多。
从命令行调用时,是否可以像上面的默认语法一样为 rsync 设置一些默认排除项?
在 bash 中使用命令时,我喜欢使用双选项卡选项来显示可用命令。一些命令比其他命令有更多可能的匹配:
选项卡完成的屏幕截图 http://img13.imageshack.us/img13/5541/picturemhy.jpg
有没有办法将双选项卡的输出通过管道传输到 somwehere,例如grep?我找到了一个相关的帖子,但我仍然不确定如何实现它以将其通过管道传输到 grep。
我有一个系统文件,/etc/cron.daily/ntpupdate它
ntpdate ntp.ubuntu.com每天运行以与网络时间同步。每天它都会生成与此非常相似的输出:
/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec
Run Code Online (Sandbox Code Playgroud)
我不确定这91.189.94.4意味着什么,但我很确定这-12.646804 sec意味着我的服务器关闭了大约 12 秒。但我不知道为什么它每天都下降大约相同的数量。这是一个运行 Ubuntu 的 Amazon EC2 实例。
我只能猜测它要么每天丢失/增加 12 秒,要么其他东西将时间与另一个关闭 12 秒的时钟同步,然后我重新同步它。
我应该怎么做才能进一步追踪这个问题?我在/etc/cron.*目录或用户的 cron 作业中没有看到任何其他cron 作业...
更新
只是想我会分享我开始每小时运行一次,看看是否会在某个时间出现大幅跳跃。这是每小时的输出:
16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec
Run Code Online (Sandbox Code Playgroud)
因此,显然每小时时钟会关闭大约半秒,因此每天(24 小时)时钟会关闭大约 12 秒是有道理的。猜猜时钟只是跑得很快!谢谢!
有时我在一个新的 (ubuntu) 盒子上工作,我输入git并收到警报:
The program 'git' is currently not installed. You can install it by typing:
apt-get install git-core
Run Code Online (Sandbox Code Playgroud)
如果发生这种情况,我知道我可以通过执行以下操作来获取最后一行:
!! 2>&1 | tail -n 1
Run Code Online (Sandbox Code Playgroud)
但是我怎样才能apt-get install git-core最容易地执行那个 ( )的结果呢?
我意识到我可以做到
`!! 2>&1 | tail -n 1`
Run Code Online (Sandbox Code Playgroud)
但是还有一种方法可以实际管道输出并运行它吗?这似乎不起作用:
!! 2>&1 | tail -n 1 | sh
Run Code Online (Sandbox Code Playgroud)
这2>&1部分也有点麻烦,所以我很好奇是否有更简单的方法来实现这一点。
编辑
以某种方式将其保存到变量中,然后执行该变量也是可以接受的:
!! 2>&1 | tail -n 1 | (store as $mycmd)
$mycmd
Run Code Online (Sandbox Code Playgroud)
但我不确定我是否知道通过管道stdout输入变量的方法,至少不知道变量位于命令的右侧。
我知道 rsync 有一个--exclude我经常使用的选项。但是如何指定它应该排除所有“数字”目录?
在下面我列出目录想只有它复制css,html和include
.
..
123414
42344523
345343
2323
css
html
include
Run Code Online (Sandbox Code Playgroud)
通常我的语法是这样的
rsync -avz /local/path/ user@server:/remote/path/ --exclude="cache"
我认为它应该看起来像, --exclude="[0-9]*"但我认为这行不通。
我有一个来自 MS-DOS 背景的不幸——但至少它让我意识到 Linux 是多么强大。我一直在努力让我的 Linux-Fu 达到标准,但有几件事可以用 DOS 完成,我不确定如何用 Linux最容易地完成:
重命名多个文件 - 使用两个通配符
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
Run Code Online (Sandbox Code Playgroud)
我知道我可以find -exec在这里使用,但可以使用更短的语法——也许mv带有一些特殊的标志或语法?我想这的关键是第二个 *通配符,因为 linux 对第一个通配符应该没有问题(即我知道如何选择我想使用通配符重命名的文件)
重命名单个文件 - 使用一个通配符
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
Run Code Online (Sandbox Code Playgroud)
这在重命名长而笨重的文件名时特别有用。我想也许我可以用它mv file1.txt $1.bak来结束,file1.txt.bak这也是可以接受的,但我不确定您是否可以$1使用 shell 命令引用内联参数。同样在这种特殊情况下,ms-dos 如何将*通配符混为一谈以用作文件名的一部分的一种捕获/替换匹配,这很方便。
使用通配符过滤目录列表 …
在 Ubuntu 10.04 上,我曾经apt-get install pip安装过,pip之后我安装了django. 然后我试图卸载django与pip通过pip uninstall django它可以给我:
pip: error: No command by the name pip uninstall
Run Code Online (Sandbox Code Playgroud)
做一些研究是因为我使用的是旧版本。
$pip --version
pip 0.3.1 from /usr/lib/python2.6/dist-packages (python 2.6)
Run Code Online (Sandbox Code Playgroud)
pip当我安装错误版本django并尝试卸载它时,我第一次意识到这个版本没有卸载
pip uninstall django
Run Code Online (Sandbox Code Playgroud)
并结束了
pip: error: No command by the name pip uninstall
Run Code Online (Sandbox Code Playgroud)
来自另一篇文章:
pip 0.3.1 已经两年多了,而且确实不包含卸载命令。pip 的当前版本是 1.0.1。
我假设您使用的是操作系统打包版本的 pip;那些往往已经过时了。在过去的几年中,已经修复了相当多的错误并添加了一些功能。
那么在 Ubuntu 10.04 上升级它以便我可以访问uninstall命令的正确方法是什么?