在我家的 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) 我经常需要在 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),因为我似乎经常这样做.
我使用以下命令查找服务器上的开放端口:
$ netstat -ntulp
Run Code Online (Sandbox Code Playgroud)
多年来,我可能在一些随机网站上发现了这一点。但是,我找不到在哪里-t或被-u记录在案。它当然不在手册页中。手册页确实暗示了它们的存在,并可能暗示它们分别是-tcpand 的同义词-udp(也未记录,虽然很容易推断其含义)。
虽然它似乎是-t和-u是同义词-tcp和-udp,这哪里是记录?
如何在目录中的前 50 行文件中搜索给定字符串?我特别在寻找哪个数据库表文件(来自 mysqldump)定义了一个特定的字段,但我不想 grep 整个文件,在 20-40 行 CREATE TABLE 之后继续到数百个 INSERT 语句。
我可以编写一个 Python 脚本来迭代每个文件的前几行,但是从经验来看,Python 虽然功能强大,但速度很慢。我有超过 200 个 *.sql 文件要处理,我想学习一个解决方案,无论如何我都可以在将来推广它。
安装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?
我需要找到的惯例短打开标签的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(这实际上可能是真正的问题)。
为了使我的环境可部署,我偶尔会压缩一些方便的文件和脚本:
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 中?
考虑:
$ 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建立一个目录?
我想知道服务器负载除以 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,输出”没有帮助。
我正在处理 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) bash ×3
grep ×3
cd-command ×1
centos ×1
command-line ×1
file-search ×1
filenames ×1
ftp ×1
locate ×1
man ×1
netstat ×1
networking ×1
profile ×1
shell ×1
symlink ×1
tar ×1
ubuntu ×1
xml ×1