遵循PowerShell的“ 隐藏功能”和Stack Overflow上其他各种功能的精神,您发现在工作中哪些Linux命令或命令组合必不可少?
另请参阅:
MySQL的
隐藏功能PowerShell的
隐藏功能Oracle数据库的
隐藏功能Windows 2008的
隐藏功能Solaris / OpenSolaris的
隐藏功能SQL / SQL Server的
隐藏功能IIS的隐藏功能(6.0 / 7.0)
遵循PowerShell的“ 隐藏功能”和Stack Overflow上其他各种功能的精神,您发现在工作中哪些Linux命令或命令组合必不可少?
另请参阅:
MySQL的
隐藏功能PowerShell的
隐藏功能Oracle数据库的
隐藏功能Windows 2008的
隐藏功能Solaris / OpenSolaris的
隐藏功能SQL / SQL Server的
隐藏功能IIS的隐藏功能(6.0 / 7.0)
Answers:
为了使球前进,我发现屏幕必不可少:
调用screen时,它将创建一个带有外壳的单个窗口(或指定的命令),然后不碍事,以便您可以正常使用该程序。然后,您可以随时创建带有其他程序(包括更多外壳程序)的新(全屏)窗口,杀死当前窗口,查看活动窗口的列表,打开和关闭输出日志记录,在Windows,查看回滚历史记录,在Windows之间切换等。所有Windows都完全独立于彼此运行它们的程序。当程序的窗口当前不可见时,甚至整个屏幕会话都与用户终端分离时,程序仍将继续运行。
也许我不是每天都使用这些,但是我经常使用它们:
我惊讶地发现您可以使用“ -X”参数通过SSH运行远程GUI应用程序。例如:
# on my machine
$ ssh -X linuxserver
# on remote machine
$ gedit /etc/my.cnf &
gedit窗口出现在我的本地计算机上,编辑服务器上的“ my.cnf”文件。
我假设这仅在您的客户端计算机具有X环境的情况下有效-换句话说,在Windows上不行。但这在我的Mac上效果很好!
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:~ #
现在,我看到我已经在另一个终端中登录了shell,并且/ mnt / hardy是我当前的工作目录。因此,我可以杀死该外壳,或转到另一个终端并退出该目录,以便将其卸载。
这确实是一个简单的例子,它对于清理偶尔的“机器人”感染也非常方便。选项是广泛的,有关更多信息,请参见man lsof。
系统停止后,网络堆栈可以保持运行状态。我不知道这是2.6.x系列内核中的最新版本,但是在较旧的版本上,您可以配置防火墙/路由,然后在不关机的情况下暂停系统,仅使网络堆栈处于运行状态。这将使您能够制造出一种廉价的(尽管是静态的)防火墙,“无法被黑客入侵”-因为没有什么可以黑客入侵的,因为没有程序或服务,只是内核的网络堆栈部分来回传递数据包。 ..
我喜欢“查找”-一种比粗糙的“查找。-name xxxx -print”查找文件容易得多的方法。注意,您必须将updatedb命令与最新的文件索引一起使用;有关详细信息,请参见手册页。
我发现“ ngrep”对于调试远程服务器上的网络代码确实很有用,而不必在周围拖拉tcpdump文件:
ngrep -d any -W byline port 80
例如,将向您显示实时HTTP请求和响应。
我发现经常有用的另一件事是切换到strace的“ -e”:
strace -p <pid> -e trace=open
将显示给定pid的所有open()系统调用,并且
strace -p <pid> -e trace=\!rt_sigprocmask
将从输出中排除所有对rt_sigprocmaskmask()的调用(对于调试RoR代码很有用,当构建为使用pthreads时,这些调用似乎很多)。
apropos
说明每个手册页都有简短的说明。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)
man -k
改用,但拼写受损。
幸运的是,我只需要几次,但是Magic SysRq键仍然是我一直以来最喜欢的隐藏功能之一。
Alt + SysRq + RSEIUB
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
它并不是真正的隐藏,但是对于那些没有经验的人可能是如此,但是我真的很喜欢能够给出列表并让bash像下面这样扩展它们:
cp arq{,.bak}
和打字一样
cp arq arq.bak
我还使用了历史记录快捷方式(我认为这不是正确的术语,但是...)
!!
重复上一条命令,或者
^foo^bar
在最后一个命令中用bar替换foo
虚拟控制台。大多数人都知道如何使用(Ctrl-)Alt-F1进入第一个控制台,依此类推,但是如果您拥有超过12个,该怎么办?您可以使用Alt-Left和Alt-Right来循环浏览其余部分。:-D
我喜欢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:时间戳标准输入 -合并:使用布尔运算将行合并到两个文件中 -小便:三通标准输入到管道 -zrun:自动解压缩命令的参数 -mispipe:用管道输送两个命令,返回第一个命令的退出状态 -isutf8:检查文件或标准输入是否为utf-8 -lckdo:执行带有锁的程序 主页:http://kitenet.net/~joey/code/moreutils/
我每天在工作中使用的一个很棒的“功能”:能够在端口443上进行SSH侦听,因此我可以创建一个绕过我的工作防火墙的隧道,从而允许我运行通过SSH隧道连接到面向Internet的Linux服务器的本地SOCKS代理。 。
我可以完全忽略我的公司防火墙。
以下是我定期使用的一些方法:
sar
-显示系统活动vmstat
-虚拟内存统计iostat
-io统计pkill
-像,pgrep
但可以杀死返回的进程IDxargs -I<string>
-允许用管道数据替换字符串at
-安排任务tkdiff
-图形diff
实用程序这些可能不是“隐藏”的,但是我发现它们非常有用:
df -hk
-以可读格式显示磁盘使用情况ls -ltr
-列出按日期排序的文件while :; do...done
-(bash)替换(watch
如果不可用)perl -e
- Perl
在命令行上运行一个代码段free -kt
-显示内存信息(千字节/总)while true; do ...
比while [ 1 ]; do ...
从本文开始,了解一些很棒的Linux技巧。我最喜欢的是pstree,它以树格式显示您的进程,因此您可以看到哪个进程产生了。
curl几乎可以用wget击败wget。
zgrep和zless非常适合搜索压缩的日志文件,因此您不必通过gunzip传送它们,也无需在/ var / log中留下未压缩的内容。
ESC + .
将上一行的最后一个参数“粘贴”到当前提示中
例如
ls -l /home/someuser/somedir/somefile
其次是
rm
ESC + .
转换为
rm /home/someuser/somedir/somefile
它是开源的。如果您不愿意看,没有什么是“隐藏的”。
今天刚刚找到这个:
dmidecode:
根据SMBIOS / DMI标准,报告有关系统BIOS中所描述的系统硬件的信息。此信息通常包括系统制造商,型号名称,序列号,BIOS版本,资产标签以及许多其他细节,这些细节取决于制造商的关注程度和可靠性。这通常包括CPU插槽,扩展插槽(例如AGP,PCI,ISA)和内存模块插槽的使用状态,以及I / O端口列表(例如串行,并行,USB)。
它无疑使在colo设施中回答关于somerandomserver27的问题变得容易得多!