Chr*_*nch 52

为了让球前进,我发现screen是必不可少的:

调用 screen 时,它会创建一个带有外壳程序的窗口(或指定的命令),然后让您离开,以便您可以像往常一样使用该程序。然后,您可以随时创建包含其他程序(包括更多 shell)的新(全屏)窗口、杀死当前窗口、查看活动窗口列表、打开和关闭输出日志记录、复制文本窗口、查看回滚历史、在窗口之间切换等。所有窗口运行它们的程序完全相互独立。当它们的窗口当前不可见时,即使整个屏幕会话与用户终端分离,程序仍会继续运行。

  • 我的天啊!又屏幕? (12认同)

Ger*_*t M 45

也许我不是每天都使用这些,但我经常使用它们:

  • strace查看进程加载了哪些文件。
  • htop一个更好的顶部。
  • mtr ping + traceroute 组合
  • lynx / links / w3m如果您需要控制台浏览
  • ettercap 很棒的网络嗅探器(我更喜欢它而不是wireshark)
  • 脚本 bash 每个 *nix 管理员都应该知道这一点。
  • 一种编程语言。对于更复杂的事情,远离 bash 脚本并使用类似 python/perl/ruby/tcl/...(我使用 Lisp)
  • Midnight Commander非常适合喜欢诺顿指挥官的人。
  • irssi你永远不知道什么时候你只想去 IRC 上提问。
  • wget / curl 从命令行下载东西。
  • scp通过 ssh 复制东西
  • lftp / ncftp 好的(可编写脚本的)控制台 FTP 客户端。
  • iotop检查什么给你的磁盘带来压力
  • nmap好端口扫描器


Mat*_*nit 33

我惊讶地发现您可以使用“-X”参数通过 SSH 运行远程 GUI 应用程序。例如:

# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &
Run Code Online (Sandbox Code Playgroud)

gedit 窗口出现在我的本地机器上,编辑服务器上的“my.cnf”文件。

我假设这仅适用于您的客户端计算机具有 X 环境的情况——换句话说,不适用于 Windows。但它在我的 Mac 上效果很好!

  • 使用 xming http://sourceforge.net/projects/xming 你也可以让它在 Windows 上工作! (9认同)
  • 而不是每次都添加 -X 可以使用与内部主机和地址空间匹配的主机行更新 ssh_config 'Host *.domain.org 192.168.*.*' 并启用选项 'ForwardX11 yes' (5认同)
  • SSH 转发进行加密,这会减慢一切。如果您在安全的 LAN 上,您只需将程序从一台 Linux 桌面发送到另一台 Linux 计算机 X 会话即可。非常便利。我曾经在我的主桌面上通过 mplayer 播放电影,它被插入休息室一端的立体声。mplayer 音频然后会从立体声输出,但图像会到达我在休息室另一端的笔记本电脑(通过以太网),该笔记本电脑已插入数据投影仪。家庭电影真棒。 (3认同)

Tim*_*ost 33

lsof 经常被忽略,它是一个非常有用的工具。lsof 允许您查看系统上每个打开文件的列表,谁/什么正在使用它等。

例如:

root@tower:~ # umount /mnt/hardy
umount: /mnt/hardy: device is busy
umount: /mnt/hardy: device is busy
root@tower:~ # lsof | grep /mnt/hardy
bash       5966       root  cwd       DIR      253,2     1024          2 /mnt/hardy
root@tower:~ #
Run Code Online (Sandbox Code Playgroud)

现在我看到我登录到另一个终端的 shell,/mnt/hardy 是我当前的工作目录。所以我可以杀死那个shell,或者转到另一个终端并退出那个目录,以便它可以被卸载。

这确实是一个微不足道的例子,它对于清理偶尔的“机器人”感染也非常方便。选项非常广泛,请参阅 man lsof 了解更多信息。

  • 如果您只对一个文件或一个挂载点感兴趣,则 fuser 是另一个不错的技巧。 (2认同)

小智 31

要更改到您所在的最后一个目录:

cd -
Run Code Online (Sandbox Code Playgroud)


Ave*_*yne 26

系统停止后,网络堆栈可以继续运行。我不知道这是否适用于 2.6.x 系列内核,但在旧版本上,您可以配置防火墙/路由,然后在不关机的情况下停止系统,只让网络堆栈运行。这将允许您制作一个“无法被黑客入侵”的廉价(虽然是静态的)防火墙 - 因为没有什么破解的,因为没有程序或服务,只有内核的网络堆栈部分来回传递数据包。 ..

  • “核心”?你说的这个“内核”是什么?当它进入这种模式时,唯一运行的代码是 /network stack/。没有任务调度、没有 API、代码、服务、用户空间、什么都没有、zip、nada……只有通过以太网回响的微弱数据包的声音……把它想象成一个在生活中具有两个功能的嵌入式设备 - 接受,并发送数据包。我想你可以“破解”这个,因为你可以尝试偷偷通过数据包,但是在堆栈本身中没有什么可以/直接/攻击。 (7认同)

gar*_*les 24

我喜欢“定位” - 比粗糙的“find . -name xxxx -print”更容易找到文件的方法。请注意,您必须使用 updatedb 命令来更新您的文件索引;有关详细信息,请参阅手册页。

  • 幸运的是,许多 Linux 发行版在 cron.daily 中包含了 updateb :-)。 (4认同)

Jon*_*per 19

我发现“ngrep”对于在远程服务器上调试网络代码非常有用,而无需在周围放置 tcpdump 文件:

ngrep -d any -W byline port 80
Run Code Online (Sandbox Code Playgroud)

例如,将显示实时 HTTP 请求和响应。

我发现经常有用的另一件事是“-e”切换到 strace:

strace -p <pid> -e trace=open
Run Code Online (Sandbox Code Playgroud)

将显示给定 pid 的所有 open() 系统调用,以及

strace -p <pid> -e trace=\!rt_sigprocmask
Run Code Online (Sandbox Code Playgroud)

将从输出中排除对 rt_sigprocmask() 的所有调用(对于调试 RoR 代码很有用,当构建使用 pthreads 时,它似乎会进行大量这些调用)。


Gar*_*eth 17

apropos
Run Code Online (Sandbox Code Playgroud)

描述 每个手册页中都有一个简短的描述。apropos 搜索关键字实例的描述。

gyaresu@debian:~/bin$ apropos ettercap
etter.conf (5)       - Ettercap configuration file
ettercap (8)         - (unknown subject)
ettercap_curses (8)  - (unknown subject)
ettercap_plugins (8) - (unknown subject)
Run Code Online (Sandbox Code Playgroud)


gha*_*per 15

谢天谢地,我只需要了几次,但Magic SysRq 键仍然是我最喜欢的隐藏功能之一。

Alt+SysRq+RSEIUB


Gar*_*eth 13

NAME
 units -- conversion program

DESCRIPTION
 The units program converts quantities expressed in various scales to their 
equivalents in other scales.  The units program can only handle multiplicative
scale changes.  It cannot convert Celsius to Fahrenheit, for example.
It works interactively by prompting the user for input:

     You have: meters
     You want: feet
             * 3.2808399
             / 0.3048

     You have: cm^3
     You want: gallons
             * 0.00026417205
             / 3785.4118

     You have: meters/s
     You want: furlongs/fortnight
             * 6012.8848
             / 0.00016630952

     You have: 1|2 inch
     You want: cm
             * 1.27
             / 0.78740157
Run Code Online (Sandbox Code Playgroud)


Flá*_*iro 12

它并不是那么隐蔽,但对于那些没有经验的人来说可能是这样,但我真的很喜欢能够给出列表并让 bash 像这样扩展它们:

cp arq{,.bak}
Run Code Online (Sandbox Code Playgroud)

这与打字相同

cp arq arq.bak
Run Code Online (Sandbox Code Playgroud)

我也使用历史快捷方式(我不认为这是正确的术语,但是......)就像

!! 
Run Code Online (Sandbox Code Playgroud)

重复上一个命令,或

^foo^bar 
Run Code Online (Sandbox Code Playgroud)

在最后一个命令中用 bar 替换 foo


小智 12

ssh-copy-id 用于传输 ssh 密钥。旧的方法是通过 ssh 获取密钥,更旧的方法是 scp 密钥,然后获取密钥。如果您使用的是非标准 ssh 端口,那么这对您有用..

ssh-copy-id -i /path/to/key '-p 非标准端口主机名'

除此以外..

ssh-copy-id -i /path/to/key 主机名


Chr*_*ung 11

虚拟控制台。大多数人都知道如何使用 (Ctrl-)Alt-F1 进入第一个控制台等,但是如果您有 12 个以上呢?您可以使用 Alt-Left 和 Alt-Right 循环浏览其余部分。:-D


jld*_*ger 11

我喜欢 debian-goodies 包:

描述:用于 Debian 系统的小型工具箱式实用程序
 这些程序旨在与标准 shell 工具集成,
 扩展它们以在 Debian 打包系统上运行。
 .
  dgrep - 在指定包中的所有文件中搜索正则表达式
  dglob - 生成匹配模式的包名列表
 .
 这些也包括在内,因为它们很有用并且没有理由
 他们自己的包:
 .
  debget - 在 APT 的数据库中获取包的 .deb
  dpigs - 显示哪些已安装的软件包占用最多空间
  debman - 无需提取即可轻松查看二进制 .deb 的手册页
  debmany - 选择已安装或已卸载软件包的联机帮助页
  checkrestart - 帮助查找和重新启动使用旧的进程
                 升级文件的版本(例如库)
  popbugs - 根据以下内容显示自定义的发布关键错误列表
                 您使用的软件包(使用人气竞赛数据)

还有moreutils,它基本上是很棒的带轮子的管道工具:

描述:额外的 Unix 实用程序
 这是一个没有人想到的越来越多的 Unix 工具集合
 三十年前写的。
 .
 到目前为止,它包括以下实用程序:
  - 海绵:吸收标准输入并写入文件
  - ifdata:获取网络接口信息而不解析 ifconfig 输出
  - ifne:如果标准输入不为空,则运行程序
  - vidir:在文本编辑器中编辑目录
  - vipe:将文本编辑器插入管道
  - ts:时间戳标准输入
  - combine:使用布尔运算将两个文件中的行合并
  - 小便:三通标准输入到管道
  - zrun:自动将参数解压缩到命令
  - mispipe:管道两个命令,返回第一个的退出状态
  - isutf8:检查文件或标准输入是否为 utf-8
  - lckdo:在持有锁的情况下执行程序
主页:http://kitenet.net/~joey/code/moreutils/


小智 8

与 Windows 相比,Linux 的一大特色可能是设计上几乎没有隐藏的功能。希望如果任何未记录的功能足够重要以了解社区的工作。


Wer*_*reW 8

我每天在工作中使用的一个很棒的“功能”:让 SSH 监听端口 443 的能力,这样我就可以创建一个绕过我的工作防火墙的隧道,允许我运行一个本地 SOCKS 代理,通过 SSH 隧道连接到面向互联网的 Linux 服务器.

我可以完全忽略我的公司防火墙。

  • 想到那些相信你可以“锁定”网络的人,我总是会笑。如果留下一个端口让流量出去,那你就完蛋了。 (3认同)

Mat*_*ons 8

我一直喜欢“man hier”来帮助系统的新手。


小智 7

以下是我经常使用的一些:

  • sar - 显示系统活动
  • vmstat - 虚拟内存统计
  • iostat - io统计
  • pkill- 类似pgrep但允许您终止返回的进程 ID
  • xargs -I<string> - 允许用管道数据替换字符串
  • at - 安排任务
  • tkdiff- 图形diff实用程序

这些可能不是“隐藏的”,但我发现它们非常有用:

  • df -hk - 以人类可读的格式显示磁盘使用情况
  • ls -ltr - 列出按日期排序的文件
  • while :; do...done- (Bash) 替换(watch如果不可用)
  • perl -e-Perl在命令行上运行一个片段
  • free -kt - 显示内存信息(千字节 w/total)


Mag*_*gus 6

这篇文章开始,了解一些很棒的 Linux 技巧。我最喜欢的是 pstree,它以树格式显示你的进程,这样你就可以看到哪个进程产生了哪个进程。

curl 击败了 wget 的几乎任何你会使用 wget 的东西。

zgrep 和 zless 非常适合搜索 gzipped 日志文件,因此您不必通过 gunzip 管道传输它们或将未压缩的内容留在 /var/log 中。


Bry*_*yan 6

ESC + .

将上一行的最后一个参数“粘贴”到当前提示中

例如

ls -l /home/someuser/somedir/somefile
Run Code Online (Sandbox Code Playgroud)

其次是

rm ESC + .

翻译成

rm /home/someuser/somedir/somefile
Run Code Online (Sandbox Code Playgroud)


ecl*_*eel 5

这个概念是Linux 中的一切都是一个文件

所有配置都在文本文件中,Linux 中的所有内容都被视为文件。这是一种更简单的方法,可以很容易地在 Linux 中进行更改。在 Linux 中,甚至您的文件系统本身也可以被视为一个文件。


Fer*_*anB 5

我看到yes命令非常好:

yes | do_you_agree
Run Code Online (Sandbox Code Playgroud)

从手册页:

NAME
       yes - output a string repeatedly until killed

SYNOPSIS
       yes [STRING]...
       yes OPTION
Run Code Online (Sandbox Code Playgroud)