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

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

10 个 Linux 命令行技巧 – 第 2 部分

本文旨在向您展示一些有用的技巧,如何以最少的技能像专业人士一样使用 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 tecmint.com
    4  hostnamectl tecmint.com
    5  man hostnamectl 
    6  hostnamectl --set-hostname tecmint.com
    7  hostnamectl -set-hostname tecmint.com
    8  hostnamectl set-hostname tecmint.com
    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.使用午夜指挥官

如果您不习惯使用此类命令光盘,CP,MV,rm比你可以使用午夜命令。这是一个易于使用的可视外壳,您还可以在其中使用鼠标:

午夜指挥官在行动

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

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

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

这是使用午夜指挥官的简单示例。打开MC只需输入:

# mc

现在使用TAB按钮在窗口之间切换 –左边正确的。我有一个自由办公室我将移至“软件“ 文件夹:

午夜指挥官移动文件

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

将文件移动到新目录

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

阅读更多:

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/用户。这寻找命令是非常强大的命令,您可以向它传递更多选项以使您的搜索更加详细。如果你想搜索大于给定大小的文件,你可以使用:

# find . -type f -size 10M

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

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

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

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

上述命令会递归查找指定目录下的所有文件并执行chmod对找到的文件执行命令。我相信您将来会发现此命令的更多用途,现在请阅读。

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

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

# mkdir new_folder

但是,如果你想创建5 个子文件夹在那个文件夹里?跑步目录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. 删除较大的文件

有时文件可能会变得非常大。我见过单个日志文件发生错误的情况250GB由于管理能力差而规模较大。删除文件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 地址收集到一个名为列表.txt一个在另一个下,如上所示。然后你可以运行:

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

在上面的示例中,您需要更改“用户” 与您将要登录的实际用户以及“bash命令” 与您希望执行的实际 bash 命令。当您使用时,该方法效果更好到您的计算机,这样您就不需要一遍又一遍地输入用户的密码。

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

结论

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