我正在使用 Linux (centos) 机器,我已经使用ssh. 现在我的问题是如何将文件从一个系统复制到另一个系统?
假设,在我的环境中,我有两个系统,如System A和System B。我正在使用System A机器和其他一些使用System B机器。
如何将文件从 复制System B到System A?并且,将文件从 复制System A到System B?
我有一个字符串:
one_two_three_four_five
Run Code Online (Sandbox Code Playgroud)
我需要从上面的字符串中保存一个变量A值two和变量B值four
我正在使用 ksh。
作为进行一些冷缓存计时的一部分,我正在尝试释放操作系统缓存。该内核文档(检索2019日)说:
drop_caches
Writing to this will cause the kernel to drop clean caches, as well as
reclaimable slab objects like dentries and inodes. Once dropped, their
memory becomes free.
To free pagecache:
echo 1 > /proc/sys/vm/drop_caches
To free reclaimable slab objects (includes dentries and inodes):
echo 2 > /proc/sys/vm/drop_caches
To free slab objects and pagecache:
echo 3 > /proc/sys/vm/drop_caches
This is a non-destructive operation and will not free any dirty objects.
To increase the number of objects freed …Run Code Online (Sandbox Code Playgroud) 有一些实用程序接受--(双破折号)作为“选项结束”的信号,当文件名以破折号开头时需要:
$ echo "Hello World!" >-file
$ cat -- -file
Hello World!
$ cat -file # cat - -file fails in the same way.
cat: invalid option -- 'f'
Try 'cat --help' for more information.
Run Code Online (Sandbox Code Playgroud)
但是其中一些实用程序在手册页中没有显示这样的选项。
该man页面cat没有一个文件的使用(或有效性)--的说法在任何OS'es的。这并不意味着是 Unix-Linux 的火焰战争,它是一个有效的,而且我相信,有用的关注。
无论是cat,mv,ed(我相信许多人)文件中的手册页这样的选择,我可以找到。
请注意,这./-file是使用--. 例如,source(dot) 命令(并写为.)(通常)不适用于--参数:
$ echo 'echo "Hello World!"' >-file
$ . ./-file
Hello World! …Run Code Online (Sandbox Code Playgroud) 我以某种方式设法创建了一个似乎没有文件名的文件。我在以下线程中找到了一些有关如何获取文件的更多详细信息的信息。
但是,我尝试了列出的一些建议,但似乎无法删除该文件。我不确定我做了什么来创建它,但是在尝试复制 xml 文件时发生了。
该文件的一些信息如下;
> ls -lb
total 296
-rw-r--r-- 1 voyager endeavor 137627 Jan 12 12:49 \177
> file *
: XML document
> ls -i
417777
Run Code Online (Sandbox Code Playgroud)
我试图找到使用 inum 开关,然后将其通过管道传递给 rm,因为这似乎是摆脱它的最简单的方法。但是,下面链接的线程底部给出的示例对我来说失败了。例子是:
> find -inum 41777 -exec ls -al {} \;
find: illegal option -- i
find: [-H | -L] path-list predicate-list
Run Code Online (Sandbox Code Playgroud)
所以我首先尝试使用路径列表,如下所示,但这也不起作用:
> find . -inum 41777 -exec ls -al {} \;
Run Code Online (Sandbox Code Playgroud)
我不确定不可打印的字符 \177 是什么,或者我如何将它传递给rm命令,但我真的想确保我在尝试删除此文件时不会弄乱任何其他文件/目录。
当我运行时echo $SHELL,输出说/bin/tcsh这意味着我正在运行一个tcshshell。但是例如当我发出以下命令时
alias emacs 'emacs -nw'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
bash: alias: emacs: not found
bash: alias: emacs -nw: not found
Run Code Online (Sandbox Code Playgroud)
当我发出alias emacs="emacs -nw"它运行正常!
这令人困惑,因为我正在运行,tcsh但命令由bash.
可能是什么原因?
据我所知,该hosts文件是帮助在计算机网络中寻址网络节点的几种系统工具之一。但里面应该有什么?当我默认安装 Ubuntu 时
127.0.0.1 localhost
Run Code Online (Sandbox Code Playgroud)
将在那里。为什么?
/etc/hosts在 Cassandra 等 JVM 系统的情况下如何工作?阅读有关此问题的信息:在 zsh 中,我如何列出所有环境变量?,我想知道,我怎样才能列出所有的shell 变量?
另外,shell变量和环境变量之间的区别是否适用于zsh以外的shell?
我主要对 Bash 和 Zsh 感兴趣,但如果知道如何在其他主流 shell 中做到这一点会很棒。
POSIX 将文本文件定义为:
包含组织成零个或多个行的字符的文件。这些行不包含 NUL 字符,并且长度不能超过 {LINE_MAX} 个字节,包括 <newline> 字符。尽管 POSIX.1-2017 不区分文本文件和二进制文件(参见 ISO C 标准),但许多实用程序仅在对文本文件进行操作时产生可预测或有意义的输出。具有此类限制的标准实用程序总是在其 STDIN 或 INPUT FILES 部分中指定“文本文件”。
来源:http : //pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_403
但是,有几件事我觉得不清楚:
文本文件必须是普通文件吗?在上面的摘录中没有明确说明文件必须是常规文件
如果文件只包含一个字符和一个字符(即不以换行符结尾的单个字符),是否可以将文件视为文本文件?我知道这个问题可能听起来很挑剔,但他们使用“字符”一词而不是“一个或多个字符”。其他人可能不同意,但如果他们的意思是“一个或多个字符”,我认为他们应该明确地说出来
在上面的摘录中,它提到了“线条”。我发现了四个名称中带有 line 的定义:“Empty Line”、“Display Line”、“Incomplete Line”和“Line”。我是否应该推断它们的意思是“线”,因为它们省略了“空”、“显示”和“不完整”——或者所有这四个定义都被认为是上面摘录中的一条线?
此文本块之后出现的所有问题都取决于推断“字符”表示“一个或多个字符”:
此文本块之后的所有问题都取决于推断,在上面的摘录中,一行被定义为“行”,并且应排除名称中包含“行”的其他三个定义:
“零行或多行”中的“零”是否意味着如果文件包含一个或多个未以换行符终止的字符,则仍可将其视为文本文件?
“零行或多行”是否意味着一旦单个“行”(0 个或多个字符加上终止换行符)开始发挥作用,最后一行成为“不完整行”(一个或多个非文件末尾的换行符)?
“无 [无行] 的长度可以超过 {LINE_MAX} 个字节,包括换行符”是否意味着文本文件中任何给定“行”中允许的字符数有限制(顺便说一句, Ubuntu 18.04 和 FreeBSD 11.1 上的 LINE_MAX 是“2048”)?