Unix 您最常用的linux(power)命令是什么?
要查找包含特定字符串的文件,我经常使用 找到-name*| xargs grep-iH“string”我的顶级命令:Unix 您最常用的linux(power)命令是什么?,unix,shell,command-line,Unix,Shell,Command Line,要查找包含特定字符串的文件,我经常使用 找到-name*| xargs grep-iH“string”我的顶级命令: vi(我选择的编辑器可以执行几乎所有的配置任务) 顶部(列出正在运行的任务,并显示性能统计信息) tar/gzip(压缩/解压缩存档) grep(使用正则表达式查找文件中的文本) 人(指挥手册参考) 终止(终止正在运行的进程) chmod(更改和管理权限) 我经常发现自己需要查找包含特定字符串的文件。为此,我使用: grep -ri 'string' 我需要定期做的事情太多了
- vi(我选择的编辑器可以执行几乎所有的配置任务)
- 顶部(列出正在运行的任务,并显示性能统计信息)
- tar/gzip(压缩/解压缩存档)
- grep(使用正则表达式查找文件中的文本)
- 人(指挥手册参考)
- 终止(终止正在运行的进程)
- chmod(更改和管理权限)
grep -ri 'string'
我需要定期做的事情太多了,很难分辨出具体的命令。大多数情况下,只是sed、awk、grep和find的大量组合,还有一些随机组合,直到被投入处理
#!/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
,我使用它为命名的应用程序赋予最高优先级 不完全是常规命令,而是自动完成bash命令的捷径“Ctrl+r”。我经常使用find的-exec选项。例如,我经常想更改整个目录树的权限,授予目录执行权限,但不授予文件。我分两步来完成这项工作:
find root_dir -type d -exec chmod 555 {} \;
find root_dir -type f -exec chmod 444 {} \;
上述操作将使整个目录树对所有人都是只读的,但仍然允许任何人将cd刻录到任何目录中。要查找占用空间最大的目录(进行潜在清理),请从所需的级别开始,例如
/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很快将寻找其他工作:-)。我使用who-T | sort
获得已登录用户的排序列表。此外,为了获得组的排序列表(而不是正常的未排序列表),我使用组|tr''\n'| sort | tr'\n''&&echo
我的是
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
awk-用于筛选和提取字段
查找-用于查找文件/目录
xargs-build命令列表,通常与find一起使用
更少-用于快速浏览/读取文件
手册/信息-用于查看手册页和信息页
emacs-用于编辑源代码
irssi-与其他开发人员联系
cd-更改为主目录和其他目录
杀戮-杀戮没有行为的命令(是的,你得到了力量!)
ps-列出进程(哦,不,我讨厌挂在墙上的mplayer挡住我的声音!)
+-通过在历史文件中搜索完成命令
-用于填写目录和文件名
最后但并非最不重要的一点是,最常用的电源命令是关机,不是吗 原问题中的命令可以更好地写成
grep -RHi "string"
我经常使用grep-R。当然,find命令可用于微调要搜索的文件
我经常在perl中使用-00标志来打印“段落”模式
将字符串更改为其他内联字符串,同时备份原始文件(从Minimal Perl):
我喜欢并排的差异:
sdiff -s file1 file2
或语法突出显示的差异:
diff file1 file2 | vim - # or mate - on my Mac
我浏览了一下我的历史,看看是否还有其他命令,但遗憾的是(??)我的大多数系统维护、管理和编程都是通过自动化工具完成的,最近都是用Ruby编写的(puppet、capistrano、一些自制工具等),或者与SCM相关(git、svn).我在命令行中使用最多的是
grep
和各种zsh
好东西,例如
# count number of lines in all .java and .py files
wc -l **/*.{java,py}
我发现
nohup
非常方便,可以通过不可靠的连接完成或花费大量时间,例如nohup python在这个远程服务器上构建大型数据库。py
perl -pi -e 's!\r\n!\n!g' << filename >>
perl-pi-e的\r\n\Ng'>
在unix2dos中,可以通过颠倒替换的顺序轻松地进行转换。我在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.
hack[targetPC]
核武器
sol查找进程是否正在运行,并在树视图中获取PID:
ps afx | grep 'foo'
在文件目录中递归查找字符串:
grep -r 'foo' *
chmod -R +x *
使目录中的所有文件递归执行:
grep -r 'foo' *
chmod -R +x *
删除文件,但保留其存在和权限:
cat /dev/null > file
只是为了好玩:
rm -rf /
两个电源命令:
wget:下载文件
curl:操作http头
顺便说一句,您的find和grep组合是不安全的,如果文件名包含空格怎么办?安全的方法是这样做:
find . -name * -print0 | xargs -0 grep -iH "String"
你说的是权力命令,对吧-我发现
sed -i "regexp" $file
在文件上使用sed非常有用,但不需要将输出放在某个位置,然后将其移到源代码的顶部
grep --color -Rne "regexp" file list
还可以方便地执行递归grep并点亮找到的匹配项。实际上,我编写了一个名为“svngrep”的小shell函数来跳过工作副本中的.svn文件,只需查看活动代码并提供hilighting。Git和其他人也可以这样做
我有一个.bashrc,其中包含以下内容:
alias ls="/bin/ls --color"
alias ll="ls -l"
pgrep和pkill随时都会派上用场。Awk是你的朋友。学习它的语法,因为它可以做很多伟大的事情,节省你很多时间
du -shc *
将为您列出所有文件的大小进行细分,并显示总数。非常有助于快速计算当前目录是否大以及目录下的内容是否大
vim
自我咒骂
screen
screen -DR
屏幕是Unix之神的产物。如果你曾在机器上使用SSH,那么考虑使用屏幕。
# umount /foo
umount: /foo busy
lsof | grep /foo
1339 /bin/bash ... ... ... cwd ... ... ...
find / -name foo.txt
egrep -rniI --color "$1" * | egrep -v "\.svn" | egrep --color -iE "$1|"\044