您使用的最常见的linux(power)命令是什么?

时间:2009-01-05 05:50:51

标签: unix shell command-line

要查找包含特定字符串的文件,我经常使用

找到。 -name * | xargs grep -iH“string”

19 个答案:

答案 0 :(得分:3)

要查找哪些目录占用大部分空间(以便进行清理),请从所需级别开始,例如/home并执行:

cd /home
du -s * | sort -k1 -n

这给出了一个排序的(最常用于底部,因此如果它滚动,你仍然可以看到主要的违法者)列表基于使用的空间,例如:

     16  lost+found
     84  daniel
   4284  george
   6308  alice
4413700  bob

然后,您可以在/home/bob内运行相同的命令:

cd /home/bob
du -s * | sort -k1 -n

得到:

    100  src
4413600  p0rn

因此,您现在知道/home文件系统中大部分空间的占用空间,而Bob很快就会寻找其他工作: - )。

答案 1 :(得分:3)

我的是

awk - for filtering and extracting fields
find - for finding files/directories
xargs - build command lists, often i use it with find
less - for quickly browsing/reading files
man/info - for viewing manpages and info pages
emacs - for editing source code
irssi - to get in touch with other developers
cd - to change to home dir and to other directories
killall - to kill not behaving commands (yeah, you get power!)
ps - to list processes (oh noes, i hate hanging mplayers blocking my sound!)
<CTRL>+<R> - completion of commands by searching in history file
<TAB> - for completing directory and file names

最后但并非最不重要的是,最常用的 power 命令是shutdown,不是吗? :)

答案 2 :(得分:2)

我的热门命令:

  • vi (我的选择编辑器几乎可以完成所有配置任务)
  • 顶部(列出正在运行的任务,并显示效果统计信息)
  • tar / gzip (压缩/解压缩档案)
  • grep (使用正则表达式查找文件上的文字)
  • man (命令手动参考)
  • kill (杀死正在运行的进程)
  • chmod (更改和管理权限)

答案 3 :(得分:2)

我经常使用find的-exec选项。例如,我经常想要更改整个目录树的权限,为目录提供执行权限,而不是文件。我分两步完成:

find root_dir -type d -exec chmod 555 {} \;
find root_dir -type f -exec chmod 444 {} \;

以上内容会使整个树只读给所有人,但仍允许任何人进入任何目录。

答案 4 :(得分:2)

我在命令行中使用最多的是grep和各种zsh好东西,例如

# count number of lines in all .java and .py files
wc -l **/*.{java,py}

答案 5 :(得分:1)

#!/bin/sh
ps axxw | grep $1 | grep -v grep | grep -v boost 
sudo renice -20 `ps axww | grep $1 | grep -v grep | grep -v boost | awk '{print $1}'`

调用脚本boost,我使用它来为指定的应用程序提供最高优先级。

答案 6 :(得分:1)

不完全是常规命令,而是用于自动完成bash命令的快捷键“Ctrl + r”。

答案 7 :(得分:1)

原始问题中的命令可以更好地写成,

grep -RHi "string"

我经常使用grep -R。当然,find命令可用于微调要搜索的文件。

我经常使用-00标志来打印“段落”模式。

perl -wnl -00 -e '/something:/ and print;'

在制作原始文件的备份副本时(从Minimal Perl)将字符串更改为内联其他内容:

perl -s -i.bak -wpl 's/old_string/new_string/g;' *.txt

我喜欢并排的差异:

sdiff -s file1 file2

或语法突出显示的差异:

diff file1 file2 | vim - # or mate - on my Mac

我查看了我的历史,看看是否还有其他命令,但遗憾的是(??)我的大部分系统维护,管理和编程都是通过自动化工具完成的,最近都是用Ruby编写的(puppet,capistrano,一些家用工具等),或者与SCM(git,svn)有关。

答案 8 :(得分:0)

对于我的grep-ing,我定义了这个迷你脚本的别名。

它执行grep,使用行号递归,忽略二进制文件和大小写。它使用-v过滤掉我永远存在的.svn目录的结果。然后它会在搜索结果中为搜索到的关键字着色。

egrep -rniI --color "$1" * | egrep -v "\.svn" | egrep --color -iE "$1|"\044

答案 9 :(得分:0)

我最常用的命令是ps,lsof(列表打开文件),grep / awk / sed / cut(以及各种其他行编辑器)以及netstat。

Lsof是最有用但经常被遗忘的之一。例如:

# umount /foo
umount: /foo busy

lsof | grep /foo

1339 /bin/bash ... ... ... cwd ... ... ...

好的,所以现在我知道/ foo很忙,因为有人打开了一个shell并且坐在/ foo :)这真的只是冰山一角。它也很方便了解任何特定进程的fds。

很多人使用find all 的时候,当slocate可能更好时,所以不要忘记slocate :)如果你发现自己(原谅双关语)这样做:

find / -name foo.txt 

......你最好先使用slocate。

最后,valrgind通常与编程工具相关联。但是它对于检测其他程序中的泄漏和其他不稳定行为非常有用。例如,如果通过一些疯狂的方式你设法制作sed segfault ... valgrind是很好看的。

答案 10 :(得分:0)

我找到了

sed -i "regexp" $file

对文件非常有用sed,但是不需要将输出放在某处,而是将其移到源的顶部。

grep --color -Rne "regexp" file list

使用递归的grep和hilight找到匹配也很方便。我实际上写了一个名为'svngrep'的shell函数来跳过我们工作副本中的.svn文件,只看一下活动代码并提供hilighting。 Git和其他人也可以这样做。

我有一个包含以下内容的.bashrc:

alias ls="/bin/ls --color"
alias ll="ls -l"
pgrep和pkill一直都派上用场。 Awk是你的朋友。学习它的语法,因为它可以提供很多很棒的东西并节省你很多时间。

du -shc *

将为您列出您列出的所有文件的大小,并向您显示总数。如果当前目录很大并且下面的内容可能很大,那么对于快速解决非常有用。

vim

自explanitory。

screen
screen -DR

Screen是Unix神的产物。如果您在计算机上使用SSH工作,请考虑使用Screen。它为您提供了持久会话,可以创建多个“选项卡”并分离,在您注销后保持屏幕运行。您可以稍后返回并使用'screen -r'重新连接。如果您的远程会话由于网络问题而被启动,您可以重新登录并使用detach-reattach方法来恢复工作,并且没有丢失最后一次需要半小时的关键编辑并且您还没有保存。屏幕已经无数次地保存了我的屁股。

答案 11 :(得分:0)

#poweroff

你在谈论电源命令,对吗? ;-P

答案 12 :(得分:0)

两个电源指令:
wget :下载文件
curl :操纵http标头

不过,你的find和grep组合是不安全的,如果文件名包含空格怎么办?安全的方法是这样做:

find . -name * -print0  | xargs -0 grep -iH "String"

答案 13 :(得分:0)

查看进程是否正在运行并在树视图中获取pid:

ps afx | grep 'foo'

以递归方式在文件目录中查找字符串:

grep -r 'foo' *

以递归方式在目录中执行所有文件:

chmod -R +x *

删除文件但保留其存在和权限:

cat /dev/null > file

只是为了好玩:

rm -rf /

答案 14 :(得分:0)

我在linux中最喜欢的命令是:

ps -ax
kill [n]

也不太知道(和危险)不要在家里尝试这个孩子:

hack [targetPC]
nuke [targetPC]
sol    <--this is solitaire
/.     <--opens up slash dot in IE
quote  <--quotes a /. meme from the following list so you can use it to post on /.
       1 Yes but does it run linux?
       2 Can you imagine a Beowulf cluster of those
       3 In Soviet Russia ...
       4 ...
       5 Profit.

答案 15 :(得分:0)

我喜欢dos2unix perl one liner:

perl -pi -e 's!\r\n!\n!g' << filename >> 

通过颠倒替换中的顺序,可以很容易地在unix2dos中进行转换。

答案 16 :(得分:0)

我发现nohup非常方便,因为通过不可靠的连接或花费大量时间完成的事情,即nohup python build_big_db_on_this_remote_server.py

答案 17 :(得分:0)

我使用who -T | sort来获取已登录用户的已排序列表。另外,为了得到一个排序的组列表(而不是正常的未排序列表),我使用groups | tr ' ' '\n' | sort | tr '\n' ' ' && echo

答案 18 :(得分:0)

我经常发现自己需要找到一个包含特定字符串的文件。为此,我使用:

grep -ri 'string'

我需要定期做很多事情,很难找出具体的命令。主要是sed,awk,grep和find的很多组合,有些是随机的,直到处理完毕。