小编dot*_*hen的帖子

FTP 不能超过 5791 个字节

在我家的 Kubuntu 11.10 机器上,我发现我无法通过 FTP 上传任何大于 5791 字节的单个文件。我曾尝试使用 Konqueror、GFTP 和 Krusader 连接两个不同的 FTP 服务器(不是匿名的,而是我雇主的 FTP 服务器)。此外,其他人可以向这两个服务器上传更大的文件。我不知道问题是我的 Kubuntu 桌面还是我的路由器/ISP 阻塞。我尝试根据这个问题更改 MTU,但它没有解决问题。我该如何解决这个问题?我家里没有任何其他计算机可以通过 FTP 来往/从。

我在同一台机器上通过 SSH 上传更大的文件没有问题,问题只在 FTP 上表现出来。另请注意,我只能使用被动模式(CLI 上的 -p)进行连接。

这是示例输出:

ftp> put smallFile.txt 
local: smallFile.txt remote: smallFile.txt
227 Entering Passive Mode (50,63,78,1,198,219)
150 Accepted data connection
226-File successfully transferred
226 0.837 seconds (measured here), 48.98 bytes per second
41 bytes sent in 0.00 secs (494.3 kB/s)
ftp> put largeFile.txt 
local: largeFile.txt remote: largeFile.txt
227 Entering Passive Mode (50,63,78,1,198,224) …
Run Code Online (Sandbox Code Playgroud)

networking ftp ubuntu

5
推荐指数
1
解决办法
944
查看次数

在当前命令行中参考先前的命令输出/终端屏幕内容

我经常需要在 Bash 中完整复制输出行:

$ grep -ilr mysql_connect *
httpdocs/includes/config.php
httpdocs/admin/db.php
statistics/logs/error_log
$ vim httpdocs/includes/config.php
Run Code Online (Sandbox Code Playgroud)

有什么方法可以为 配置 Bash 或 Tmux 快捷方式three lines up,例如@@3

$ grep -ilr mysql_connect *
httpdocs/includes/config.php
httpdocs/admin/db.php
statistics/logs/error_log
$ vim @@3 # This would be the equivalent of vim httpdocs/includes/config.php (three lines up)
Run Code Online (Sandbox Code Playgroud)

快捷方式不需要是@@,其他任何事情都可以。理想情况下,这适用于任何 Bash,但 tmux 快捷方式也适用。

请注意,我熟悉 tmux 和屏幕复制和粘贴(进入粘贴模式,移动到复制,回来,粘贴),但我希望我可以更容易使用的东西(@@N),因为我似乎经常这样做.

bash

5
推荐指数
1
解决办法
319
查看次数

netstat 的 -t 和 -u 标志在哪里记录?

我使用以下命令查找服务器上的开放端口:

$ netstat -ntulp
Run Code Online (Sandbox Code Playgroud)

多年来,我可能在一些随机网站上发现了这一点。但是,我找不到在哪里-t或被-u记录在案。它当然不在手册页中。手册页确实暗示了它们的存在,并可能暗示它们分别是-tcpand 的同义词-udp(也未记录,虽然很容易推断其含义)。

虽然它似乎-t-u是同义词-tcp-udp这哪里是记录?

command-line documentation netstat

5
推荐指数
1
解决办法
7003
查看次数

Grep 模式的前 50 行文件

如何在目录中的前 50 行文件中搜索给定字符串?我特别在寻找哪个数据库表文件(来自 mysqldump)定义了一个特定的字段,但我不想 grep 整个文件,在 20-40 行 CREATE TABLE 之后继续到数百个 INSERT 语句。

我可以编写一个 Python 脚本来迭代每个文件的前几行,但是从经验来看,Python 虽然功能强大,但速度很慢。我有超过 200 个 *.sql 文件要处理,我想学习一个解决方案,无论如何我都可以在将来推广它。

grep

5
推荐指数
2
解决办法
2300
查看次数

为什么可以将 ~/.profile 添加到 ~/.bash_profile 中?

安装RVM 时,会收到以下消息:

* WARNING: You have '~/.profile' file, you might want to load it,
  to do that add the following line to '/home/dotancohen/.bash_profile':

    source ~/.profile
Run Code Online (Sandbox Code Playgroud)

我很担心,因为我的 ~/.profile 文件包含xmodmap ~/.Xmodmap我显然不想在每次打开新外壳时运行(交换 CapsLock 和 ESC 键)的文件。

为什么会聪明的开发者RVM采购建议.profile.bash_profile

profile

5
推荐指数
1
解决办法
4419
查看次数

多个字符串的负前瞻

我需要找到的惯例短打开标签的PHP文件,这意味着匹配<?而不是<?php<?xml<?=。在大多数正则表达式中,这将是这样的:

 <\?(?!php|xml|=)
Run Code Online (Sandbox Code Playgroud)

然而,下面的线相匹配的不希望的<?php<?xml以及<?=部分:

$ grep -r -E "<\?(?\!php|=|xml)" *
Run Code Online (Sandbox Code Playgroud)

我已经尝试了许多反斜杠-P-e标志的排列。如何在 GNU grep 中正确使用负前瞻?

CentOS 7.3(KDE 桌面)、GNU grep 2.20(在线文档适用于 3.0,但我在man本地有)、Nescafé Decaff(这实际上可能是真正的问题)。

grep centos regular-expression

5
推荐指数
1
解决办法
2203
查看次数

tar 使用不同名称的文件

为了使我的环境可部署,我偶尔会压缩一些方便的文件和脚本:

tar -czvf env.tgz .vimrc .vim/ bin/lsl bin/s
Run Code Online (Sandbox Code Playgroud)

我想添加.bashrc到组合中,但我有一些敏感信息,所以我维护.bashrc-deploy这些信息,然后一旦 tarball 在新服务器上,我就可以简单地重命名。但是,我真的希望.bashrc从一开始就让 tarball 具有正确的名称,这样我就不必重命名。我考虑编写一个脚本来临时重命名文件并制作 tarball,如下所示:

#!/bin/bash
mv .bashrc .bashrc-real
mv .bashrc-deploy .bashrc
tar -czvf env.tgz .bashrc .vimrc .vim/ bin/lsl bin/s
mv .bashrc .bashrc-deploy
mv .bashrc-real .bashrc
Run Code Online (Sandbox Code Playgroud)

但是,是否tar有任何内部方式someFile将名称存储anotherName在 tarball 中?

tar filenames

4
推荐指数
1
解决办法
3943
查看次数

`cd` 在规范路径上

考虑:

$ pwd
/home/user
$ ls -l
total 3604
lrwxrwxrwx 1 user user  19 Nov 27 12:11 pages -> /var/www/pages/

$ cd pages
$ pwd
/home/user/pages
$ readlink -f .
/var/www/pages

$ cd ..
$ readlink -f .
/home/user
$ 
Run Code Online (Sandbox Code Playgroud)

当我在的时候,/var/www/pages我想上去,/var/www但是跑步cd ..让我去/home/user。显然,这是由于/var/www/pages通过符号链接获得的。当我在一个符号链接中时,我怎样才能cd建立一个目录?

shell cd-command symlink

4
推荐指数
1
解决办法
243
查看次数

如何将一个命令的输出除以另一个命令的输出?

我想知道服务器负载除以 CPU 内核数量,以便判断哪些服务器过载。我可以通过以下方式获得 CPU 内核数量:

$ grep -c processor /proc/cpuinfo
2
Run Code Online (Sandbox Code Playgroud)

我可以通过以下方式获取服务器负载:

$ uptime | awk '{print $11}'
0.47,
Run Code Online (Sandbox Code Playgroud)

现在我想除以0.47/2得到0.23我怎么知道要阅读哪个联机帮助页来执行此操作?我真的在寻找如何了解找到正确命令的下一步是什么,我不是在要求命令本身。

我试过在网上搜索这个问题,甚至谷歌也无法引导我走向正确的方向。因此,或者,我应该搜索哪些关键字?明显的“linux,师,bash,输出”没有帮助。

bash man

4
推荐指数
1
解决办法
3406
查看次数

查找具有特定路径的 XML 文件

我正在处理 XML 文件,每个文件都可能有几十行长。在一个目录结构中,实际上有数百个这样的文件。是的,它是 Magento。

我需要找到包含该<foo><bar><boom><bang>元素的文件。一个<boom><bang>标签可以在其他变量定义的,所以我需要搜索的完整路径不只是结束标签或标签。每个标签之间可能有几十行,它们之间还有其他标签:

<foo>
  <hello_world>
... 50 lines ....
  </hello_world>
  <bar>
    <giraffe>
... 50 lines ....
    </giraffe>
    <boom>
      <bang>Vital information here</bang>
    </boom>
  </bar>
</foo>
Run Code Online (Sandbox Code Playgroud)

搜索定义的文件的优雅*nix 方式是<foo><bar><boom><bang>什么?我目前正在使用最新的 Debian 派生发行版。

这是我目前的解决方案,远非雄辩:

$ grep -rA 100 foo * | grep -A 100 bar | grep -A 100 boom | grep bang | grep -E 'foo|bar|boom|bang'
Run Code Online (Sandbox Code Playgroud)

grep bash xml locate file-search

4
推荐指数
1
解决办法
225
查看次数