要查找包含特定字符串的文件,我经常使用
找到。 -name * | xargs grep -iH“string”答案 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)
我的热门命令:
答案 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)
你在谈论电源命令,对吗? ;-P
答案 12 :(得分:0)
两个电源指令:
wget :下载文件
curl :操纵http标头
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)
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的很多组合,有些是随机的,直到处理完毕。