不知道我的Linux系统中是否预装了Samba。
我有/etc/samba/目录,smb.conf文件。但是如果我尝试这些命令之一
sudo service smb start
sudo service samba start
sudo service smbd start
Run Code Online (Sandbox Code Playgroud)
答案永远是unrecognized service。
在/etc/init.d那里一样,没有文件smb,samba或smbd。我怎么能再查?
还是很感谢你!
在 Ubuntu 14.04 中,passwd可执行文件是
-rwsr-xr-x 1 root root 47032 gen 27 01:50 /usr/bin/passwd
Run Code Online (Sandbox Code Playgroud)
并且ping可执行文件是
-rwsr-xr-x 1 root root 44168 mag 7 2014 /bin/ping
Run Code Online (Sandbox Code Playgroud)
所以(对于两者)运行进程的 uid 应该产生root,即使它们是从普通用户运行的。如果我passwd从user1,事实上,我得到
$ ps -aux | grep passwd
root 4317 0.0 0.0 85940 2004 pts/0 S+ 10:24 0:00 passwd
Run Code Online (Sandbox Code Playgroud)
但如果我跑ping从user1它是不一样的:
$ ps -aux | grep ping
user1 4362 0.0 0.0 6500 632 pts/0 S+ 10:29 0:00 ping 192.168.8.1
Run Code Online (Sandbox Code Playgroud)
为什么进程的 uidroot在第一种情况下设置为而不是在第二种情况下?
我需要从我有权ssh访问的 Ubuntu 远程服务器递归复制一个文件夹。我不想遵循符号链接,也不想复制权限/所有者/组,因为我的客户端系统(Ubuntu 也是)没有与服务器相同的用户。
这个 rsync解决方案可能是最好的解决方案。但是服务器没有rsync,我无法在那里安装;所以该命令给了我错误。
还有其他方法可以复制远程文件夹吗?
我有一个纯文本文件(不包含源代码)。我经常修改它(添加行、编辑现有行或任何其他可能的修改)。对于任何修改,我想自动记录:
(理想情况下,我还希望能够在特定时间获取我的文件的版本,但这是一个加分项,而不是必需的)。
这对于 Git 来说肯定是可能的,但是它太强大和复杂了。我不想每次都处理add,commit消息push,等等。我只想用vi(或等效的)编辑文件,保存它,并自动记录上述修改(其差异和时间)。
是否有工具可以在 Linux 中完成此操作?
更新:感谢您提出的所有建议和已介绍的几种解决方案。我没有反对git,但我明确希望避免它(出于多种原因,最后但并非最不重要的事实是我不够了解)。最接近上述要求(没有git,没有提交消息,很少或没有开销)的工具是 RCS。它是基于文件的,这正是我正在寻找的。这甚至可以避免使用脚本,提供文件的先前版本并避免对vi.
问题的要求是准确的;提出了许多意见,但问题本身并不是基于意见的。然后,显然,可以通过工具或脚本实现相同的目标,但这也适用于许多其他情况。
这个问题可能是微不足道的,但有了这个简单的for循环
for i in {1..10000000}; do echo "$i" line >> file
done
Run Code Online (Sandbox Code Playgroud)
我的外壳在经过一些精化时间后崩溃了(终端模拟器中的选项卡被自动关闭)并且file没有被创建。
它是GNU bash, version 4.1.11(2)-release。
这是由于内存限制还是其他原因?如果是,这应该是这个限制吗?
随着{1..1000000}它工作正常。
ssh客户端(默认情况下,至少在 Ubuntu 18.04 和 FreeBSD 12 中)始终检查服务器的密钥指纹是否在known_hosts文件中。
我在局域网中有一台主机,它有双引导;两个操作系统都使用相同的静态 IP。我想连接ssh到他们两个,而不会遇到错误。
这显然违反了对 进行的检查known_hosts:如果我接受一个指纹,它将与主机 IP 相关;切换操作系统时,指纹改变,而IP不变,我需要手动删除它known_hosts才能再次连接。我希望在考虑该 IP 时接受一个或另一个指纹。
是否有解决此问题的客户端解决方案?
我正在使用OpenSSH_7.8p1, OpenSSL 1.1.1a-freebsd 20 Nov 2018和OpenSSH_7.6p1 Ubuntu-4ubuntu0.3, OpenSSL 1.0.2n 7 Dec 2017。
注意:我不想对服务器的指纹进行“不检查”。我只是想知道是否有可能将两个替代指纹(不仅仅是一个)与服务器的 IP 地址相关联。
我有以下设置:
internet
host_1 --> router_1 <----------> router_2 <-- host_2
Run Code Online (Sandbox Code Playgroud)
无论host_1和host_2运行的Ubuntu 18.04。从host_2,我想host_1通过sshX 转发访问 GUI 应用程序。因此,-C除了以下选项外,我还尝试了以下选项-X:
<host_2_prompt>$ ssh -CX <router_1_public_IP>
Run Code Online (Sandbox Code Playgroud)
这确实有效,但 GUI 窗口中的任何移动/更新都慢得令人无法接受。两个路由器都使用 ADSL 连接:特别是,router_1可用的上传频段是1.0 Mbps.
有没有办法提高这种性能?例如,进一步压缩交换的数据?
注意:使用相同的连接,我几乎可以毫无延迟地访问 Windows Server 2008 中的远程桌面,就像机器是本地的一样。所以,我想可用带宽也应该足够ssh.
/dev/null是一个特殊的 Linux 文件,它会丢弃写入其中的所有内容,并EOF在读取时提供。
我想通过阅读/dev/null来获得并形象化这一点EOF。如果我尝试:
$ cat /dev/null | hexdump
Run Code Online (Sandbox Code Playgroud)
这不起作用。返回提示符但没有任何输出。EOF甚至没有 ASCII 代码,所以也许这就是原因。
还能EOF算人物吗?
EOF当 bash 中提供时,有没有办法检测和打印stdin?
就像是:
$ cat /dev/null | some_tool
EOF
Run Code Online (Sandbox Code Playgroud)
我GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)在 Ubuntu 20.04.3 上使用,但我希望解决方案(如果有)与这些特定版本无关。
这不是作业,而只是了解更多信息的一种方式EOF。
NetBSD 中是Almquist shell/bin/sh的修改版本。使用该命令可以查看当前会话中提示符中输入的最后 16 个命令,而不是较旧的命令。fc -l
环境变量HISTSIZE设置为 1000,bash这意味着最后 1000 个命令(无论它们是否在当前会话中键入)保存在.bash_history主目录中命名的文件中。但这里似乎只是说这个会话中的最后1000条命令保存在历史记录中,而历史记录似乎没有保存在文件中。
我正在寻找一个历史记录,它不仅允许读取当前会话的最后命令,还允许读取先前会话的命令(例如,我上次启动系统的时间,而不是实际时间)。/bin/shNetBSD 中默认有这样的历史吗?如果没有,是否可以在该 shell 中创建这样的历史记录?
我有两个文本文件:file1and file2,都有几行。
$ cat file1
line one
line two
line three
line four
line five
$ cat file2
line A
line B
line C
line D
line E
line F
Run Code Online (Sandbox Code Playgroud)
我想用一系列的线file1(从线1_start到线1_end)替换一系列的线file2(从线2_start到线2_end)。
例如,代替线2,4在file1与线3,5从file2。
到目前为止我只能做的是从file2with 中提取所需的行
$ sed -n 3,5p file2
Run Code Online (Sandbox Code Playgroud)
但这无助于将它们放入file1. 有可能sed吗?如果没有,是否可以使用类似的工具?