linux初学者必须掌握的90个基础命令

如果您是 Linux 的初学者,您可能已经开始使用命令行。一旦熟悉,就可以很容易地从终端工作,这也是为什么大多数 Linux 系统管理员更喜欢 GUI 的原因。作为一个Linux初学者你必须掌握一下的90个基础的命令,后续才能够更深入的去学习Linux。

系统相关的 Linux 命令

这些命令用于查看和管理 Linux 系统相关信息。

uname

Linux 中使用 uname 命令查找操作系统信息。Uname有许多选项可以提供内核名称、内核版本、CPU 类型和主机名。

以下带有a选项的uname 命令显示有关操作系统的所有信息。

    $sudo uname -a
    Linux linode02 5.1.17-x86_64-linode128 #1 SMP PREEMPT Wed Jul 10 17:11:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

uptime

使用uptime 命令提供有关 Linux 系统已运行多长时间的信息。系统正常运行时间信息是从“/proc/uptime”文件中收集的。此命令还将显示系统平均负载。

从以下命令我们可以了解到系统已启动并运行了最后 13 分钟。

    $ uptime
    23:41:37 up 13 min,  1 user,  load average: 0.03, 0.07, 0.04

hostname

您可以通过在终端中键入来显示您的机器主机名hostname。用-ioption可以查看机器的ip地址,用-d可以查看域名。

last

Linux 的last 命令用于查看谁是最后一个登录到您的服务器的用户。最后一个命令显示自文件创建以来从“/var/log/wtmp”登录(和退出)的所有用户的列表。

您只需要在终端上输入“last”。这是一个例子

    $ last
    leni pts/0 10.0.76.162 Mon Dec 2 12:32 - 13:25 (00:53)
    linoxide tty1 Mon Dec 2 09:31 still logged in
    reboot system boot 2.6.32-358.23.2 Mon Dec 2 09:20 - 13:25 (04:05)

date

在 Linux 中, date 命令用于查看系统当前的日期和时间。此命令允许您设置日期的自定义格式。

例如,通过使用 ‘date +%D’,您可以以 ‘MM/DD/YY’ 格式查看日期。

    $ date +%D
    02/07/20

cal

默认情况下,cal 命令显示当月的日历。通过-y选项,您可以查看全年的日历。

w

默认情况下,w 命令显示谁当前登录到您的机器以及他们在做什么。

    $ w
     01:36:19 up  2:08,  2 users,  load average: 0.00, 0.00, 0.00
    USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
    root     pts/0    39.177.9.194     23:29    3.00s  0.02s  0.00s w
    linoxide pts/1    59.177.9.193     01:35   11.00s  0.00s  0.00s -bash

Whoami

Whoami打印当前登录用户的用户名。它类似于id -un命令。

reboot

要立即重新启动 linux 系统您可以从具有root 权限的终端运行此命令。

Shutdown

Shutdown用于停止或重启 Linux 系统。此命令具有用于安排关闭和使用自定义消息通知用户的选项。

默认情况下,机器将在 1 分钟内停机,您可以通过发出 shutdown -c

    $sudo shutdown
    Shutdown scheduled for Fri 2020-02-07 02:47:52 UTC, use 'shutdown -c' to cancel.

系统可以通过提供“现在”选项立即关闭。

    $ sudo shutdown -h now

硬件相关的 Linux 命令

这些命令用于查看和管理 Linux 机器的硬件相关方面。

dmesg

Dmesg 命令通过读取内核环形缓冲区来打印其数据。数据可以是有关处理器、硬盘、打印机、键盘、内存和驱动程序的信息。

$ dmesg

示例输出:

    [ 0.000000] Initializing cgroup subsys cpuset
    [ 0.000000] Initializing cgroup subsys cpu
    [ 0.000000] Linux version 3.8.0-31-generic (buildd@aatxe) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #46-Ubuntu SMP Tue Sep 10 19:56:49 UTC 2013 (Ubuntu 3.8.0-31.46-generic 3.8.13.8)
    [ 0.000000] KERNEL supported cpus:
    [ 0.000000] Intel GenuineIntel
    [ 0.000000] AMD AuthenticAMD
    [ 0.000000] NSC Geode by NSC
    [ 0.000000] Cyrix CyrixInstead
    [ 0.000000] Centaur CentaurHauls
    [ 0.000000] Transmeta GenuineTMx86
    [ 0.000000] Transmeta TransmetaCPU
    [ 0.000000] UMC UMC UMC UMC

Lshw

显示有关系统硬件配置的信息。Lshw 命令必须以 root 或 sudo 特权用户身份运行,否则它只会报告部分信息。

lsblk

显示机器的块设备相关信息。用lsblk 命令-a可以查看所有块设备。

输出

    $ lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sda 8:0 0 24.5G 0 disk /
    sdb 8:16 0 512M 0 disk [SWAP]

free

Linux 中使用free 命令来检查系统中可用的 RAM 内存量。free 命令还显示交换空间、缓冲区和缓存空间。

    $ free
                  total        used        free      shared  buff/cache   available
    Mem:        4022216      723872     1359820      157988     1938524     2661636
    Swap:        524284      247820      276464

lspci

lspci是一个标准的 Linux 实用程序,它显示您的系统硬件内部有什么。您可以期望您的结果包含有关 PCI 总线、AGP 和板载组件(如 USB 芯片组等)的信息。

lsusb

lsusb 命令用于显示系统中 USB 总线的信息以及连接到它们的设备您可以在 usbutils 包中找到lsusb实用程序。

dmidecode

dmidecode 的输出包含来自 DMI 表的几条记录。此表包含系统硬件组件的描述以及其他有用的信息,例如序列号、BIOS 修订版等

您需要 root 或 sudo 权限才能运行此命令。以下示例显示了 bios 详细信息。

    # dmidecode -t bios
    # dmidecode 3.2
    Getting SMBIOS data from sysfs.
    SMBIOS 2.8 present.

    Handle 0x0000, DMI type 0, 24 bytes
    BIOS Information
            Vendor: SeaBIOS
            Version: rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org
            Release Date: 04/01/2014
            Address: 0xE8000
            Runtime Size: 96 kB
            ROM Size: 64 kB
            Characteristics:
                    BIOS characteristics not supported
                    Targeted content distribution is supported
            BIOS Revision: 0.0

hdparm

hdparm 是 Linux 打印硬盘信息时使用的命令。它可以执行磁盘速度性能并更改 DMA 设置。

以下命令将对磁盘 sda 执行读取速度测试:

    # hdparm -tT /dev/sda

    /dev/sda:
     Timing cached reads:   18012 MB in  2.00 seconds = 9023.48 MB/sec
     Timing buffered disk reads: 7146 MB in  3.00 seconds = 2380.77 MB/sec

统计相关的 Linux 命令

这组命令用于查看 Linux 系统的各种统计信息。

mpstat

mpstat用于打印处理器统计信息并帮助监控系统上的 CPU 利用率。如果您的系统有多个处理器,它会更有用。

    $ mpstat -P 0
    Linux 3.2.0-57-generic (USERNB01) 12/12/2013 _x86_64_ (2 CPU)
    03:54:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
    03:54:00 PM 0 3.82 0.01 1.16 3.88 0.00 0.06 0.00 0.00 91.06

vmstat

vmstat 是一种提供报告虚拟内存统计信息的工具。它实时涵盖系统的内存、交换和处理器利用率。

默认情况下 vmstat 打印如下:

    $ vmstat
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
     2  0   8704 531516   7088 161204    0    1   585    11   20   34  0  0 100  0  0

iostat

iostat是用于通过观察设备活动时间与其平均传输速率的关系来监视系统的输入/输出 (I/O) 设备负载的命令。

Tcpdump

Tcpdump 是一个网络故障排除命令,也称为数据包嗅探器,用于捕获和显示来自网络的数据包。要运行tcpdump 命令您需要 root 或具有 sudo 权限的用户。

当您不带任何选项使用 tcpdump 时,它将分析所有接口上的流量。

lsof

lsof 命令代表“列出打开的文件”。找出有关已打开文件及其各自进程的详细信息非常有用。

要查看某个特定用户打开的文件列表,请使用-uoption 和lsof 命令

    $ lsof -u linoxide
    COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF   NODE NAME
    bash    6371 linoxide  cwd    DIR                8,0     4096 128025 /home/linoxide
    bash    6371 linoxide  rtd    DIR                8,0     4096      2 /
    bash    6371 linoxide  txt    REG                8,0  1219272   6329 /usr/bin/bash
    bash    6371 linoxide  mem    REG                8,0  2586242   5503 /usr/lib/locale/en_US.utf8/LC_COLLATE
    bash    6371 linoxide  mem    REG                8,0  8406312  34008 /var/lib/sss/mc/passwd
    bash    6371 linoxide  mem    REG                8,0    42104  19992 /usr/lib64/libnss_sss.so.2
    bash    6371 linoxide  mem    REG                8,0  3201344   5604 /usr/lib64/libc-2.28.so
    bash    6371 linoxide  mem    REG                8,0    28784   5606 /usr/lib64/libdl-2.28.so
    bash    6371 linoxide  mem    REG                8,0   208616   5252 /usr/lib64/libtinfo.so.6.1

watch

Linux watch 命令可用于定期重复命令。

用户相关的 Linux 命令

这些命令用于管理 Linux 用户。

ID

ID 命令用于在 Linux 中打印真实有效的用户 ID(UID)和组 ID(GID)。UID 是用户的单一身份。而组 ID (GID) 可以由多个 UID 组成。

last

Linux last 用于将以前登录的用户检查到您的服务器。

who

who 命令是打印当前登录用户信息的工具。who 命令只能看到真正登录的用户,不会看到执行 su 命令的用户(切换用户)。

Groupadd

Groupadd 命令用于在 Linux 中创建组。

以下命令将向系统添加一个组“开发人员”。

# groupadd developers

useradd

在 Linux 和类 Unix 操作系统中,创建用户的最常用命令是“useradd”或“adduser”。

让我们来看看如何创建一个新用户“bill”并设置密码。该命令将一个条目添加到 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 文件中。

    # useradd bill
    # passwd bill

Userdel

Userdel 是一个用于删除用户的低级实用程序。Userdel 命令将查找系统帐户文件,例如“/etc/password”和“/etc/group”,然后它将从那里删除与用户名相关的所有条目。

usermod

Linux usermod 命令用于修改或更改现有用户的属性。用户的属性是主目录、shell、密码到期日期、组、UID 等。

Passwd

Passwd 是 Linux(Redhat、Centos、Ubuntu、Debian、Fedora)和类 UNIX 操作系统中用于更改密码的命令。

文件相关的 Linux 命令

这些命令用于处理文件和目录。

ls

一个非常简单但功能强大的命令,用于列出文件和目录。默认情况下,ls 命令将列出当前目录的内容。

pwd

Linux pwd是打印当前工作目录名称的命令。当我们“迷失”在一个很深的目录中时,我们总能揭示我们在哪里。

检查下面的例子:

    [linoxide@li53-41 fsfreeze-hook.d]$ pwd
    /usr/share/qemu-kvm/qemu-ga/fsfreeze-hook.d

mkdir

在 Linux 上,我们可以使用mkdir 命令来创建目录。

默认情况下,不带任何选项运行 mkdir,它将在当前目录下创建一个目录。

    $ mkdir account
    $ ls -l
    total 4
    drwxrwxr-x. 2 linoxide linoxide 4096 Feb  8 08:04 account
    $

cat

我们主要使用cat 命令来查看内容、连接和重定向文件的输出。使用 cat 的最简单方法是输入“cat file_name”。

以下 cat 命令示例将显示 Linux 发行版名称以及当前安装在硬件上的版本。

    $sudo cat /etc/redhat-release
    CentOS Linux release 8.0.1905 (Core)

rm

当不再需要某个文件时,我们可能会将其删除以节省存储空间。在 Linux 系统上,我们可以使用 rm 命令来完成。

cp

cp 命令在 Linux 中用于创建文件和目录的副本。

以下命令会将文件“myfile.txt”从当前目录复制到“/home/linoxide/office”。

$ cp myfile.txt /home/linoxide/office

mv

当您想将文件从一个地方移动到另一个地方并且不想复制它时,我们使用mv 命令

cd

cd 命令用于在 Linux 和其他类 Unix 操作系统中更改用户的当前工作目录。

ln

符号链接或软链接是一种特殊类型的文件,其中包含指向另一个文件或目录的引用。ln 命令用于创建符号链接。

ln 命令使用以下语法:

ln -s [target directory or file] [symlink shortcut]

touch

Linux 中使用 touch 命令来更改文件访问和修改时间。我们可以在 Linux 中使用touch 命令来创建一个空文件。

more

More 命令是一次每页显示一个长文本文件的命令。

head

该head命令是用来打印文本文件的前几行。默认情况下,head 命令将每个文件的前 10 行打印到标准输出,即显示屏幕。

tail

您可能知道,cat 命令用于通过标准输入显示文件的全部内容。但在某些情况下,我们必须打印文件的一部分。默认情况下,tail 命令显示最后十行。

GPG

GPG是 linux 中用于安全通信的工具。它使用两个密钥(对称密钥和公钥加密)的组合来加密文件。

Cksum

Linux 中使用 Cksum 命令打印 CRC 校验和以及该文件中的字节数。

diff

Diff 命令用于从终端逐行比较两个文件。

sort

Linux 中使用Sort 命令对文本文件的内容进行逐行排序。

Uniq

Uniq是一个命令行工具,用于报告和过滤文件中的重复行。

wc

Linux wc 命令计算文件或标准输入中的字节数、字符数、单词数和行数。

dir

dir 命令用于列出目录的内容。

tee

Linux tee 命令用于任务的链接和重定向,您可以将输出和/或错误重定向到文件,并且不会在终端上显示。

tr

TR命令是在Linux中主要用于平移和删除字符。可用于大写转小写、挤压重复字符和删除字符。

进程相关的 Linux 命令

这些命令用于处理 Linux 进程

PS

Linux ps 命令是一个内置工具,用于捕获系统上的当前进程。它将一次性捕获系统状态。

pmap

Linux pmap 命令显示一个进程或多个进程的内存使用情况图。Pmap 报告有关进程的地址空间或内存使用映射的信息。
**

top

Linux 中的top 命令显示系统上正在运行的进程。它广泛用于监视服务器上的负载。

kill

的kill命令用于在Linux和其它类Unix操作系统,以终止进程而无需注销或者重新启动计算机。

killall

的killall命令可以被用于通过使用它的名字将信号发送到特定的过程。这意味着如果您运行同一程序的五个版本,killall 命令将杀死所有五个版本。

pkill

与 killall 命令类似,pkill 发送信号以终止具有其名称的进程。从 Centos 7 开始,它鼓励使用 pkill。

fg & bg

我们可以在后台运行作业而无需用户干预。被某些中断信号停止的进程可以在后台使用 bg 命令继续。fg 命令与 bg 命令类似,不同之处在于它不是在后台发送命令,而是在前台运行它们并占用当前终端并等待进程退出。

文件权限相关的 Linux 命令

这些命令用于更改文件的权限

chmod

文件权限应用于三个级别:所有者、组成员和其他人。该chmod命令用于改变这些权限。

下面的例子,755将文件’asciiquarium.tar.gz’的文件’asciiquarium.tar.gz’设置给用户读+写+执行权限,给组设置读+执行权限,给其他人设置读+执行权限。

# chmod 755 asciiquarium.tar.gz

chown

Linux 中的chown 命令用于更改文件和目录的所有权和组所有权。

在以下示例中,文件“/corpora/stopwords/danish.txt”的所有权从“root:root”更改为“raghu:altair”。

    # ls -l /corpora/stopwords/danish.txt
    -rw-r--r-- 1 root root 424 Dec 10 2012 /corpora/stopwords/danish.txt

    # chown raghu:altair /corpora/stopwords/danish.txt

    # ls -l corpora/stopwords/danish
    -rw-r--r-- 1 raghu altair 424 Dec 10 2012 /corpora/stopwords/danish.txt

chgrp

chgrp 命令用于更改文件的组所有权,与 chown 命令不同,chown 命令允许您更改用户和组所有权。

网络相关的 Linux 命令

这些命令用于查看和编辑系统的网络配置相关方面

ifconfig

ifconfig命令用于显示以及设定IP地址,以在Linux中的网络接口。现在不推荐使用 ifconfig 以支持 iproute2(ip 命令)。

ip

linux ip 命令类似于 ifconfig,但功能更强大,旨在替代它。使用 ip,您可以通过一个命令执行多项网络管理任务。

ethtool

所述的ethtool命令用于显示/改变以太网适配器设置。您可以在 Linux 中使用此工具更改网卡速度、自动协商、局域网唤醒设置、双工模式。

mii工具

这两个MII-工具和以太网工具允许Linux系统管理员修改或改变或检查网络接口卡。

ping 和 ping6

ping 和 ping 6 命令用于向主机发送 echo 请求以测试 ipv4 和 ipv6 连接。

whois

在 Linux 中 whois 命令用于获取域的信息,例如域的所有者、所有者的联系信息和名称服务器。

dig

Dig执行 DNS 查找并显示从被查询的名称服务器返回的答案。

host

Host 命令)是一个用于在 Linux 中执行 DNS 查找的简单实用程序。使用此命令,我们可以将名称转换为 IP 地址,反之亦然。

wget

Wget是 Unix 等操作系统(不包括 Microsoft Windows)中的命令行、非交互式、免费实用程序,用于从 Internet 下载文件。

Netstat

Netstat是一个命令行工具,用于查看和监控系统的网络统计信息和配置。此工具可用于基于 Unix、Linux 和 Windows NT 的操作系统

nslookup

Nslookup 是一种网络管理工具,用于查询域名系统以从 DNS 记录中获取域名或 IP 地址。

压缩/归档相关命令

这些命令用于压缩和解压缩文件。

tar

Tar 是一个命令行工具,用于在 Linux 和 Unix 系统中创建和操作归档文件。Tar 命令创建 .tar 存档文件,然后使用 gzip 或 bzip2 进行压缩。

Gzip

Gzip 命令将文件压缩为单个文件并以“.gz”为后缀。

包安装相关命令

这些命令用于管理 Linux 包。

RPM

RPM(Redhat Package Manager)是一个命令行包管理实用程序,用于安装、卸载、更新、查询和验证软件包。

make

Make 命令用于从源代码构建可执行程序和库。

yum

Yum (Yellowdog Updater Modified) 是基于 RHEL 的系统中提供的实用程序,用于安装、删除和搜索软件包。Yum会自动安装软件包依赖项,例如,yum install httpd会自动 安装 ‘apache’ 服务器及其所需的依赖项。

apt

Apt 是一个命令行工具,用于在 Ubuntu、Debian 和相关 Linux 发行版上安装、更新、删除 deb 包。

搜索相关的 Linux 命令

这些命令用于搜索文件和模式

grep

grep命令允许搜索的文件或命令的输出控制台文本或字符串,任期或模式匹配的正则表达式。

locate

locate 是一个命令行实用程序,用于在整个文件系统中搜索文件和目录。

find

Linux find 命令是一个非常强大的命令,主要用于使用特定条件搜索目录结构下的文件。

ssh

SSH用于登录远程机器和在远程机器上执行命令。每当计算机向网络发送数据时,ssh 将自动加密。

Telnet

Telnet 是一个命令行工具,用于手动连接远程主机以测试应用程序端口的连通性。

文件传输相关 Linux 命令

这些命令用于将文件从一个系统复制到另一个系统

scp

SCP 是一个安全复制程序,用于在网络上的 Linux 主机之间传输文件或目录。SCP使用 ssh 协议传输数据。

在这里,本地文件“examples.txt”被复制到远程主机。

$ scp examples.txt user@192.168.1.10:/home/user/account

Rsync

Rsync将本地机器之间的文件和目录同步到远程机器。它可以递归复制文件和目录、复制符号链接、保留(权限、组、修改时间和所有权)文件身份。

磁盘使用相关 Linux 命令

这些命令用于查看磁盘统计信息。

df

df命令显示磁盘空间使用情况的Linux文件系统。它显示已挂载的文件系统上可用的总磁盘空间和可用磁盘空间。

Fdisk

Fdisk 命令在 Linux 中用于查看现有分区、创建新分区、删除或更改现有分区。

du

du(磁盘使用率)是在Linux中使用检查包括它的其他内容,以及单个文件的大小目录大小的命令。

findmnt

命令findmnt用于列出 Linux 中挂载的文件系统。此命令将在 /etc/fstab、/etc/mtab 或 /proc/self/mountinfo 中查找特定文件系统。

Mount

Mount是 Linux 中用于附加文件系统和驱动器的命令,而 umount 命令用于分离(卸载)任何附加的文件系统或设备。

Linux free命令详解
linux rsync命令详解

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

56 + 10 =

ajax-loader