你值得了解的 10 个有趣的 Linux 命令行小技巧-阿里云开发者社区

开发者社区> 知与谁同> 正文

你值得了解的 10 个有趣的 Linux 命令行小技巧

简介:
+关注继续查看

我非常喜欢使用命令,因为它们比 GUI(图形用户界面)应用程序对 Linux 系统提供更多的控制,因此,我一直在寻找一些有趣的方法让 Linux 的操作变得简单好玩,主要是基于终端操作。

当我们发现使用 Linux 的新技巧时,尤其是像我这样的命令行极客,我们总会感到非常来劲。

建议阅读: 5 有趣的 Linux 命令行技巧 - 第一部分

而且我们也会很想与数百万 Linux 用户分享新学到的实践或命令,特别是那些还在使用自己的方式操作这个令人兴奋的操作系统的新手们。

建议阅读: 10 个对新手有用的 Linux 命令行技巧 - 第二部分

在这篇文章中,我们将回顾一系列有用的命令行小技巧,它们可以显著地提高你的 Linux 使用技能。

1、 在 Linux 中锁定或隐藏文件或目录

锁定文件或目录最简单的方法是使用 Linux 文件权限。如果你是文件或目录的所有者,你可以阻止其他用户和组访问(删除、读取、写入、执行)它,如下所示:


  1. $ chmod 700 tecmint.info
  2. $ chmod go-rwx tecmint.info

想要了解更多有关 Linux 文件权限的内容,请阅读这篇文章在 Linux 中管理用户和组,文件权限和属性

为了实现对系统中的其他用户隐藏文件或目录,可以通过在文件或目录开头添加 . 的方式重命名:


  1. $ mv filename .tecmint.info

2、 在 Linux 中将 rwx 权限转为八进制格式

默认情况下,当你运行 ls 命令之后,它会使用 rwx 格式显示文件权限,为了了解 rwx 格式和八进制格式的等同性,你可以学习如何在 Linux 中将 rwx 权限转为八进制格式

3、 当 sudo 命令执行失败时怎么使用 su 命令

虽然 sudo 命令被用来以超级用户权限执行命令,但是在某些情况下它也会执行失败,如下所示。

在这里,我想清空一个大文件的内容,其文件名为 uptime.log,但是即便我是使用 sudo 命令也执行失败了。


  1. $ cat /dev/null >/var/log/uptime.log
  2. $ sudo cat /dev/null >/var/log/uptime.log

在 Linux 中清空大文件的内容

在 Linux 中清空大文件的内容

遇到这种情况,你需要使用 su 命令切换到 root 用户,然后像下面这样去执行清空操作:


  1. $ su
  2. $ sudo cat /dev/null >/var/log/uptime.log
  3. $ cat /var/log/uptime.log

切换到超级用户

切换到超级用户

尝试理解 su 和 sudo 之间的区别,另外,通过阅读它们的手册页以了解更多的使用指南:


  1. $ man sudo
  2. $ man su

4、 在 Linux 中结束一个进程

有些时候,当你想使用 kill、killall、pkill 命令结束一个进程时,它们有可能无法生效,你可能会看到该进程仍然还在系统上运行。

如果要强制结束一个进程,可以发送 -KILL 信号给该进程。

首先获取指定进程 ID,然后像下面这样结束该进程:


  1. $ pidof vlc
  2. $ sudo kill -KILL 10279

在 Linux 中查找和结束进程

在 Linux 中查找和结束进程

查看 kill 命令以获取更多的使用选项和信息。

5、 在 Linux 中永久删除文件

一般情况下,我们通过使用 rm 命令将文件从 Linux 系统中删除。然而,这些文件并没有被真正的删除,它们仍被存储在那里并隐藏在你的硬盘中,其他用户仍然可以在 Linux 中恢复删除的文件并查看。

为了防止这种情况发生,我们可以使用 shred 命令来覆写文件内容,并在覆盖完成后选择删除文件。


  1. $ shred -zvu tecmint.pdf

上述命令中所使用的选项说明:

  1. -z – 最后一次使用 0 进行覆盖以隐藏覆写动作。
  2. -u – 覆写后截断并移除文件。
  3. -v – 显示详细过程。

在 Linux 中永久删除文件

在 Linux 中永久删除文件

阅读 shred 手册以获取更多的使用信息。


  1. $ man shred

6、 在 Linux 中重命名多个文件

你可以通过使用 rename 命令随时在 Linux 中重命名多个文件

rename 命令会根据第一个参数中的规则重命名指定文件。

以下命令会将所有 .pdf 文件重命名为 .doc 文件,使用的规则为 's/\.pdf$/\.doc/'


  1. $ rename -v 's/\.pdf$/\.doc/' *.pdf

在 Linux 中重命名多个文件

在 Linux 中重命名多个文件

在接下来的例子中,我们将通过重命名所有匹配 "*.bak" 的文件来移除其拓展名,使用的规则是's/\e.bak$//'


  1. $ rename -v 's/\e.bak$//' *.bak

7、 在 Linux 中检查单词拼写

look 命令用于显示文件中以指定字符串为前缀的任意行,同时它也可以帮你检查命令行中给定单词的拼写。尽管它并不是那么有效和可靠,但它仍然算得上是其他强大的拼写检查工具的有用替代品。


  1. $ look linu
  2. $ look docum

在 Linux 中检查单词拼写

在 Linux 中检查单词拼写

8、 按关键字搜索手册页

man 命令用于显示命令的手册页,当使用 -k 选项时,它会将关键字 printf(或者如下命令中的关键字 adjustapachephp )作为正则表达式,来搜索所有匹配该名称手册页,并显示其简介。


  1. $ man -k adjust
  2. $ man -k apache
  3. $ man -k php

按关键字搜索手册页

按关键字搜索手册页

9、 在 Linux 中实时监测日志

watch 命令可以定期执行另一个 Linux 命令并全屏显示该命令的执行结果。当 watch 命令与 tail 命令(用于查看文件结尾的 Linux 命令)配合使用时,可以监测到日志文件的日志记录情况。

在以下示例中,你将实时监测系统认证日志文件。打开两个终端窗口,在第一个窗口中实时监测该日志文件,如下:


  1. $ sudo watch tail /var/log/auth.log

你也可以使用 tail 命令(显示文件结尾的 Linux 命令)的 -f 选项实时监测文件变化。这样,我们就可以在日志文件中看到日志的生成情况。


  1. $ sudo tail -f /var/log/auth.log

接着,在第二个终端窗口中运行以下命令,之后,你就可以在第一个终端窗口中观察日志文件内容:


  1. $ sudo mkdir -p /etc/test
  2. $ sudo rm -rf /etc/test

10、 列出所有 Shell 内置命令

shell 内置命令是一个命令或者函数,从内部调用并直接在 shell 里执行,而不是从硬盘加载外部的可执行程序来执行。

列出所有 shell 内置命令及其语法,执行如下命令:


  1. $ help

作为结束语,命令行小技巧不仅能派得上用场,而且让学习和使用 Linux 变得更加简单有趣,尤其是对新手来讲。

原文发布时间为:2017-01-15

本文来自云栖社区合作伙伴“Linux中国”

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux 命令行下搜索工具大盘点,效率提高不止一倍!
在 Linux 命令行下进行文本关键字的搜索,大家肯定第一时间会想到 grep 命令。grep 命令确实十分强大,但如果需要用到它更加灵活的功能时,可能命令就会显得十分复杂。 于是,为了简化 grep 的语句并达到同等效果,很多业内高手开发出了很多同样强大的工具,在某些程度上甚至可以替代 grep 。 下面我就给大家介绍 5 个常用的命令行搜索工具。如果你不喜欢使用编辑器或 IDE 来查找代码关键字,那么这几个工具将对你十分有帮助。 这 5 个工具有些仅适用于类 Unix 系统,但也有一些是跨平台的搜索速度非常快的工具。 grep 使用 grep 的优势是它几乎可以在任意类 Unix
10 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7657 0
彩色的命令行 —— 使用 ANSI 色彩代码
对于一个要使用彩色的程序员,就必须要使用类似 slang 或 ncurses 这样的的库,者通常会增加执行文件的大小。 Ncurses 有着或多或少的独立于终端的类型的优势
1685 0
Mac上命令行获取iPhone/iPad的Identifier(UUID) 的方法
命令行(shell)获取 已通过USB连接到Mac Mini的iPhone/iPad的Identifier(UUID) 的方法: system_profiler SPUSBDataType | grep "Serial Number:.*" | sed s#".*Serial Number: "## 实用点:自动化测试的脚本不用每换一台机器就要修改待测试的iDevice的uuid了。
1195 0
+关注
10077
文章
2994
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载