今天,一位 Unix 培训师告诉我一个故事,其中 root 密码被泄露给了学生,其中一个家伙从/usr/bin/chmod自己身上删除了执行权限。chmod在这种情况下如何恢复并使其再次可执行?假设从外部来源获取它或重新编译它不是一个更好的选择,是否有一些可以chmod自行恢复的智能黑客?
请注意,这发生在很久以前,我不是在寻找当前问题的解决方案,只是好奇 Unix 为我们提供了哪些解决此类问题的方法。
我正在寻找一种方法来告诉 awk 在替换操作中进行高精度算术。这涉及从文件中读取一个字段,并用该值的 1% 增量替换它。但是,我在那里失去了精度。这是问题的简化再现:
$ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {print}'
0.546748
Run Code Online (Sandbox Code Playgroud)
在这里,我有一个 16 位的小数精度,但 awk 只给出了 6 位。使用 printf,我得到了相同的结果:
$ echo 0.4970436865354813 | awk '{gsub($1, $1*1.1)}; {printf("%.16G\n", $1)}'
0.546748
Run Code Online (Sandbox Code Playgroud)
关于如何获得所需精度的任何建议?
我正在使用亚马逊 Linux。我正在尝试将一些文本附加到文件中。该文件归 root 所有。我想通过使用“sudo”,我可以附加所需的文本,但我得到“权限被拒绝”,见下文
[myuser@mymachine ~]$ ls -al /etc/yum.repos.d/google-chrome.repo
-rw-r--r-- 1 root root 186 Jul 31 15:50 /etc/yum.repos.d/google-chrome.repo
[myuser@mymachine ~]$ sudo echo -e "[google-chrome]\nname=google-chrome\nbaseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch\nenabled=1\ngpgcheck=1\ngpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub" >> /etc/yum.repos.d/google-chrome.repo
-bash: /etc/yum.repos.d/google-chrome.repo: Permission denied
Run Code Online (Sandbox Code Playgroud)
我如何调整我的陈述,以便我可以将必要的文本附加到文件中?
我查找了一本 Unix 书籍、man 和 wikipedia 页面,tr但找不到它的设计/实现方式的原因,即它不从文件中读取,而仅从标准输入中读取。例如,工具,例如wc,grep,sed,和awk所有将愉快地从文件,如果提供读取输入或从标准输入。以tr这种方式设计是否/是否有令人信服的理由?
我在 nfs 挂载上有一个目录,它在服务器上位于 /home/myname/.rubies
Root 无法访问此目录:
[mitchell.usher@server ~]$ stat /home/mitchell.usher/.rubies
File: `/home/mitchell.usher/.rubies'
Size: 4096 Blocks: 8 IO Block: 32768 directory
Device: 15h/21d Inode: 245910 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 970/mitchell.usher) Gid: ( 100/ users)
Access: 2016-08-22 15:06:15.000000000 +0000
Modify: 2016-08-22 14:55:00.000000000 +0000
Change: 2016-08-22 14:55:00.000000000 +0000
[mitchell.usher@server ~]$ sudo !!
sudo stat /home/mitchell.usher/.rubies
stat: cannot stat `/home/mitchell.usher/.rubies': Permission denied
Run Code Online (Sandbox Code Playgroud)
我试图从该目录中复制一些/opt只有 root 有权访问的内容:
[mitchell.usher@server ~]$ cp .rubies/ruby-2.1.3/ -r /opt
cp: cannot create directory `/opt/ruby-2.1.3': Permission denied
[mitchell.usher@server ~]$ …Run Code Online (Sandbox Code Playgroud) 我一直在用 sed 命令包含正则表达式。
问:我想用一个空格替换句子结尾后所有出现的两个空格。
这是我所做的:
sed 's/^ $/^$/' file
Run Code Online (Sandbox Code Playgroud)
并且它没有在句子结束后用一个空格替换两个空格。
我得到的输出:
This is the output. Hello Hello
Run Code Online (Sandbox Code Playgroud)
我想要的输出:
This is the output. Hello Hello
Run Code Online (Sandbox Code Playgroud) 我知道 mount 用于将目录层次结构添加到挂载点(目录)。
在 clone 的手册页中,在 CLONE_NEWNS 部分下,它们将挂载称为进程所看到的文件层次结构。
我的问题是,术语“挂载”是否用于指进程看到的目录层次结构中的各个目录,“挂载点”是否用于指代可以挂载文件系统的目录?
我正在一个由大约 10 台地理位置分散的远程 Linux 计算机组成的网络上进行一些实验。
我怀疑它们中的一些有时钟偏差,但它们是短暂的(例如,一周一次或一个月两次)。
我想知道是否有一些工具可以检测和量化这种时钟偏差。还想知道时钟偏差是否是我所看到的正确术语,或者是否可以称为时钟同步。
我发现自己将相当大量的数据(20+ GB)从一个目录树移动到另一个目录树。通常它们在同一个文件系统上,但有时它们在不同的文件系统上。我cp只是为了以防万一保留原始数据。复制完成后,我在验证数据已正确复制后删除原始数据。有时,mv如果我觉得之后懒得清理原始数据,我就会这样做。但是,我想知道,从纯技术角度来看,哪种操作更有效?为什么?
permissions ×3
linux ×2
arithmetic ×1
awk ×1
bash ×1
chmod ×1
clock ×1
cp ×1
executable ×1
file-copy ×1
history ×1
ls ×1
mount ×1
mv ×1
networking ×1
root ×1
sed ×1
sudo ×1
terminology ×1
tr ×1