网站搜索

适合新手的 10 个有用的 Linux 命令行技巧 - 第 2 部分


我记得当我刚开始使用Linux并且习惯了Windows的图形界面时,我真的很讨厌Linux终端。当时我发现这些命令很难记住并且很难正确使用它们中的每一个。随着时间的推移,我意识到 Linux 终端的美观、灵活性和可用性,说实话,每天都离不开 Linux 终端。今天,我想为 Linux 新手分享一些有用的技巧和技巧,以帮助他们轻松过渡到 Linux,或者只是帮助他们学习新东西(希望如此)。

  1. Linux 中 5 个有趣的命令行提示和技巧 – 第 1 部分
  2. 管理 Linux 文件类型的 5 个有用命令 – 第 3 部分

本文旨在向您展示一些有用的技巧,如何以最少的技能像专业人士一样使用 Linux 终端。您所需要的只是一个 Linux 终端和一些空闲时间来测试这些命令。

1.找到正确的命令

执行正确的命令对于您的系统至关重要。然而,在 Linux 中,有太多不同的命令行,以至于它们通常很难记住。那么如何搜索您需要的正确命令呢?答案是恰当。您需要运行的只是:


# apropos <description>

您应该将“描述”更改为您要查找的命令的实际描述。这是一个很好的例子:


# apropos "list directory"

dir (1) - list directory contents
ls (1) - list directory contents
ntfsls (8) - list directory contents on an NTFS filesystem
vdir (1) - list directory contents

在左侧您可以看到命令,右侧可以看到它们的描述。

2. 执行上一条命令

很多时候您需要一遍又一遍地执行相同的命令。虽然您可以重复按键盘上的向上键,但您也可以使用历史命令。此命令将列出自启动终端以来您输入的所有命令:


# history

    1  fdisk -l
    2  apt-get install gnome-paint
    3  hostname linux-console.net
    4  hostnamectl linux-console.net
    5  man hostnamectl 
    6  hostnamectl --set-hostname linux-console.net
    7  hostnamectl -set-hostname linux-console.net
    8  hostnamectl set-hostname linux-console.net
    9  mount -t "ntfs" -o
   10  fdisk -l
   11  mount -t ntfs-3g /dev/sda5 /mnt
   12  mount -t rw ntfs-3g /dev/sda5 /mnt
   13  mount -t -rw ntfs-3g /dev/sda5 /mnt
   14  mount -t ntfs-3g /dev/sda5 /mnt
   15  mount man
   16  man mount
   17  mount -t -o ntfs-3g /dev/sda5 /mnt
   18  mount -o ntfs-3g /dev/sda5 /mnt
   19  mount -ro ntfs-3g /dev/sda5 /mnt
   20  cd /mnt
   ...

正如您从上面的输出中看到的,您将收到已运行的所有命令的列表。每行都有一个数字,指示您在其中输入命令的行。您可以使用以下命令调用该命令:


!#

其中#应更改为命令的实际编号。为了更好地理解,请参阅下面的示例:


!501

相当于:

# history

3.使用午夜指挥官

如果您不习惯使用 cdcpmvrm 等命令,则可以使用 <午夜指挥。这是一个易于使用的可视外壳,您还可以在其中使用鼠标:

借助 F1 – F12 键,您可以轻松执行不同的任务。只需检查底部的图例即可。要选择文件或文件夹,请单击“插入”按钮。

简而言之,午夜命令称为“mc”。要在您的系统上安装mc,只需运行:


$ sudo apt-get install mc        [On Debian based systems]

# yum install mc                 [On Fedora based systems]

这是使用午夜指挥官的简单示例。只需键入以下内容即可打开mc


# mc

现在使用TAB按钮在窗口之间切换 - 。我有一个 LibreOffice 文件,我将把它移至“Software”文件夹:

要将文件移动到新目录中,请按键盘上的F6按钮。 MC 现在将要求您确认:

一旦确认,该文件将被移动到新的目标目录中。

阅读更多内容:如何在 Linux 中使用 Midnight Commander 文件管理器

4. 在特定时间关闭计算机

有时,您需要在工作时间结束后几个小时关闭计算机。您可以使用以下命令将计算机配置为在特定时间关闭:


$ sudo shutdown 21:00

这将告诉您的计算机在您提供的特定时间关闭。您还可以告诉系统在特定的分钟后关闭:


$ sudo shutdown +15

这样系统将在15分钟后关闭。

5. 显示已知用户的信息

您可以使用一个简单的命令来列出您的 Linux 系统用户以及有关他们的一些基本信息。只需使用:


# lslogins

这将为您带来以下输出:


UID USER PWD-LOCK PWD-DENY LAST-LOGIN GECOS
0 root 0 0 Apr29/11:35 root
1 bin 0 1 bin
2 daemon 0 1 daemon
3 adm 0 1 adm
4 lp 0 1 lp
5 sync 0 1 sync
6 shutdown 0 1 Jul19/10:04 shutdown
7 halt 0 1 halt
8 mail 0 1 mail
10 uucp 0 1 uucp
11 operator 0 1 operator
12 games 0 1 games
13 gopher 0 1 gopher
14 ftp 0 1 FTP User
23 squid 0 1
25 named 0 1 Named
27 mysql 0 1 MySQL Server
47 mailnull 0 1
48 apache 0 1 Apache
...

6. 搜索文件

搜索文件有时并不像您想象的那么容易。搜索文件的一个很好的例子是:


# find /home/user -type f

此命令将搜索位于 /home/user 中的所有文件。 find 命令非常强大,您可以向它传递更多选项以使搜索更加详细。如果你想搜索大于给定大小的文件,你可以使用:


# find . -type f -size 10M

上面的命令将从当前目录中搜索大于10 MB的所有文件。确保不要从 Linux 系统的根目录运行该命令,因为这可能会导致计算机上的高 I/O。

我使用 find 最常用的组合之一是“exec”选项,它基本上允许您对 find 命令的结果运行一些操作。

例如,假设我们想要查找目录中的所有文件并更改它们的权限。这可以通过以下方式轻松完成:


# find /home/user/files/ -type f -exec chmod 644 {} \;

上面的命令将递归地搜索指定目录中的所有文件,并对找到的文件执行chmod命令。我相信您将来会发现这个命令的更多用途,现在请阅读 35 个 Linux ‘find’ 命令和用法示例。

7. 用一个命令构建目录树

您可能知道可以使用 mkdir 命令创建新目录。因此,如果您想创建一个新文件夹,您将运行如下命令:


# mkdir new_folder

但是,如果您想在该文件夹中创建 5 个子文件夹,该怎么办?连续运行 mkdir 5 次并不是一个好的解决方案。相反,您可以使用 -p 选项,如下所示:


# mkdir -p new_folder/{folder_1,folder_2,folder_3,folder_4,folder_5}

最后,new_folder 中应该有 5 个文件夹:


# ls new_folder/

folder_1 folder_2 folder_3 folder_4 folder_5

8. 将文件复制到多个目录中

文件复制通常使用cp命令执行。复制文件通常如下所示:


# cp /path-to-file/my_file.txt /path-to-new-directory/

现在假设您需要将该文件复制到多个目录中:


# cp /home/user/my_file.txt /home/user/1
# cp /home/user/my_file.txt /home/user/2
# cp /home/user/my_file.txt /home/user/3

这有点荒唐。相反,您可以使用简单的一行命令来解决问题:


# echo /home/user/1/ /home/user/2/ /home/user/3/ | xargs -n 1  cp /home/user/my_file.txt

9. 删除较大的文件

有时文件会变得非常大。我曾见过由于管理技能不佳而导致单个日志文件超过 250 GB 大的情况。在这种情况下,使用 rm 实用程序删除文件可能不够,因为需要删除的数据量非常大。该操作将是一项“繁重”操作,应避免。相反,您可以采用一个非常简单的解决方案:


# > /path-to-file/huge_file.log

当然,您需要将路径和文件名更改为与您的情况完全匹配的路径和文件名。上面的命令将简单地将空输出写入文件。更简单地说,它将清空文件,而不会导致系统上的高 I/O。

10. 在多个 Linux 服务器上运行相同的命令

最近,我们的一位读者在 LinuxSay 论坛中询问如何使用 SSH 同时对多个 Linux 机器执行单个命令。他的机器 IP 地址如下所示:


10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
10.0.0.5

所以这里有一个简单的解决方案来解决这个问题。将服务器的 IP 地址收集到一个名为 list.txt 的文件中,如上所示。然后你可以运行:


# for in $i(cat list.txt); do ssh user@$i 'bash command'; done

在上面的示例中,您需要将“user”更改为您要登录的实际用户,将“bash command”更改为您希望执行的实际 bash 命令。当您在计算机上使用带有 SSH 密钥的无密码身份验证时,该方法效果更好,因为这样您就不需要一遍又一遍地输入用户密码。

请注意,您可能需要向 SSH 命令传递一些附加参数,具体取决于您的 Linux 机器设置。

结论

上面的示例非常简单,我希望它们能够帮助您发现 Linux 的一些优点,以及如何轻松执行在其他操作系统上可能需要更多时间的不同操作。