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

本文旨在向您展示一些有用的技巧,如何以最少的技能像专业人士一样使用 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 的一些优点,以及如何轻松执行在其他操作系统上可能需要更多时间的不同操作。
