Linux基础命令之系统管理常用命令

Linux中的命令行提示符$#

提示符$:是普通用户的命令行提示符。当以普通用户身份登录到系统时,命令行提示符通常显示为 $。这表示以普通用户的权限执行命令。

提示符#:是超级用户(也称为root用户)的命令行提示符。当以超级用户身份登录到系统时,命令行提示符通常显示为 #。这表示以最高权限执行命令,具有对系统的完全控制权。

在大多数情况下,普通用户只能执行一些特定的操作,而超级用户可以执行更高级别的系统管理任务。因此,当看到 # 提示符时,要格外小心,确保你知道自己在做什么,以免对系统造成意外的影响。

请注意,提示符的具体形式可能因不同的Linux发行版和终端设置而有所不同。上述描述是常见的默认设置,但可能会因个人配置而有所变化。

# 1、查看系统版本:
  • 使用lsb_release命令可以获取Linux发行版的版本信息。

  • 示例:lsb_release -a

    $ lsb_release -a
    LSB Version:	core-9.20170808ubuntu1-noarch:printing-9.20170808ubuntu1-noarch:security-9.20170808ubuntu1-noarch
    Distributor ID:	Ubuntu
    Description:	Ubuntu 20.04.3 LTS
    Release:	20.04
    Codename:	focal
    
  • 适用于大多数Linux发行版,包括Ubuntu、Debian、CentOS等。

# 2、查看IP地址:
  • 使用ifconfig命令可以查看网络接口的IP地址。

  • 示例:ifconfig

    $ ifconfig
    eth0: flags=4163  mtu 1500
            inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
            inet6 fe80::a00:27ff:fe5e:baa1  prefixlen 64  scopeid 0x20
            ether 08:00:27:5e:ba:a1  txqueuelen 1000  (Ethernet)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73  mtu 65536
            inet 127.0.0.1  netmask 255.0.0.0
            inet6 ::1  prefixlen 128  scopeid 0x10
            loop  txqueuelen 1000  (Local Loopback)
            RX packets 0  bytes 0 (0.0 B)
            RX errors 0  dropped 0  overruns 0  frame 0
            TX packets 0  bytes 0 (0.0 B)
            TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
  • 适用于大多数Linux发行版,包括Ubuntu、Debian、CentOS等。

  • 在一些较新的发行版中,推荐使用ip命令来查看IP地址。

  • 示例:ip addr show 或者简写ip a s

    $ ip addr show
    1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
        inet 127.0.0.1/8 scope host lo
           valid_lft forever preferred_lft forever
        inet6 ::1/128 scope host 
           valid_lft forever preferred_lft forever
    2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
        link/ether 08:00:27:5e:ba:a1 brd ff:ff:ff:ff:ff:ff
        inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic eth0
           valid_lft 86200sec preferred_lft 86200sec
        inet6 fe80::a00:27ff:fe5e:baa1/64 scope link 
           valid_lft forever preferred_lft forever
    
    
# 3、管理服务:
  • 使用systemctl命令可以管理系统服务,如启动、停止、重启服务等。

  • 示例:systemctl start  或 systemctl stop

    $ systemctl start sshd //启动ssh服务
    $ systemctl stop sshd //停止ssh服务
    
  • 适用于使用systemd初始化系统的Linux发行版,如Ubuntu 16.04及更新版本、CentOS 7及更新版本等。

# 4、查看端口:
  • 使用netstat命令可以查看正在监听的端口和相关的网络连接信息。

  • 示例:netstat -tuln

    $ netstat -tuln
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp6       0      0 :::22                   :::*                    LISTEN     
    udp        0      0 0.0.0.0:68              0.0.0.0:*                   
    udp        0      0 0.0.0.0:5353            0.0.0.0:*                   
    udp6       0      0 :::5353                 :::*                         
    
  • 适用于大多数Linux发行版,包括Ubuntu、Debian、CentOS等。

  • 替代命令ss

  • 示例:ss -tuln

    $ ss -tuln
    State      Recv-Q     Send-Q           Local Address:Port          Peer Address:Port  Process
    LISTEN     0          128                    0.0.0.0:22                 0.0.0.0:*
    LISTEN     0          128                       [::]:22                    [::]:*
    

在不同的Linux发行版上,这些命令的使用方式可能会有一些差异,特别是在初始化系统和服务管理方面。一些发行版可能使用不同的初始化系统(如System V、systemd、Upstart等),因此在管理服务时可能会有一些差别。建议根据具体的发行版和版本来查阅官方文档或相关资料,以获得最准确的命令用法和适用范围。

# 5、进程管理相关命令
  • ps:用于显示当前运行的进程。

  • 适用于大多数Linux发行版,包括Ubuntu、Debian、CentOS等。

  • 示例:ps aux

    $ps aux
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root         1  0.0  0.5 168924  5504 ?        Ss   Sep11   0:02 /sbin/init
    root         2  0.0  0.0      0     0 ?        S    Sep11   0:00 [kthreadd]
    root         3  0.0  0.0      0     0 ?        I<   Sep11   0:00 [rcu_gp]
    ...
    

常用选项:

  • -T:显示与终端相关的进程。

    $ ps -T
    PID TTY          TIME CMD
      1 ?        00:00:01 systemd
      2 ?        00:00:00 kthreadd
    ...
    

    解释:

    • PID:进程ID。
    • TTY:终端。
    • TIME:进程运行时间。
    • CMD:进程命令。
  • -a:显示所有进程,包括与终端和会话领导者相关的进程。

  • -e:显示所有进程。

  • -o:自定义输出列。

  • top命令:用于实时监视系统的进程和资源使用情况。top命令类似于Windows的任务管理器,可以帮助我们了解系统的负载情况。

  • 示例:

    $ top
    top - 10:30:05 up 1 day,  2:30,  1 user,  load average: 0.00, 0.01, 0.05
    Tasks: 227 total,   1 running, 226 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  0.3 us,  0.1 sy,  0.0 ni, 99.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  8167708 total,  3621312 free,  2863948 used,  1682448 buff/cache
    KiB Swap:  2097148 total,  2097148 free,        0 used.  4880224 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
      547 root      20   0  593808  71892  41312 S   0.3  0.9   1:23.15 systemd-journal
      649 root      20   0  443416  18124  13916 S   0.3  0.2   0:01.23 NetworkManager
      893 root      20   0  601132  39624  25784 S   0.3  0.5   0:00.85 accounts-daemon
     1115 root      20   0  480004  23036  18952 S   0.3  0.3   0:00.24 polkitd
    ...
    
    

    top命令输出结果解析:

    • 执行top命令后,默认会出现两部分内容:
      • 第一部分是系统整体的统计信息,包括当前时间、机器运行时间、当前登录用户数和系统负载。
      • 第二部分是进程信息,从第8行开始,按行显示各个进程的详细信息。
    • 系统整体的统计信息包括:
      • 当前时间、机器运行时间、当前登录用户数和系统负载(load average)。
      • 系统负载是任务队列的平均长度,用1分钟、5分钟和15分钟前到现在的平均值表示。
    • 进程信息包括:
      • 当前有多少进程、正在运行的进程数、正在休眠的进程数、停止的进程数和僵尸进程数。
      • CPU占用率,包括用户空间占CPU的百分比、内核空间占CPU的百分比、用户进程空间改变过优先级的占用百分比、空闲CPU占用率、等待输入输出的CPU时间百分比、硬中断占用百分比和软中断占用百分比。
      • 内存统计信息,包括总内存量、空闲内存量、已使用内存量和缓存/缓冲区的内存量。

    top命令的视图中交互命令:

    • q:退出视图

    • Enter/Space:刷新视图。

    • h:查看帮助信息,查询各个交互命令的含义。

    • O:控制是否展示进程区域中的0值,比如%CPU是0的将全部隐藏。

    • A:在全屏模式和多窗口选择模式之间切换。

    • d:设置刷新时间间隔。

    • E:切换内存和交换区单位。

    • H:开启/关闭线程模式,以线程的方式展示。

    • k:杀死指定进程或线程。

    • Z:改变颜色配置。

    • 1:显示CPU平均状态/分开显示各个逻辑CPU状态。

    • m:切换显示内存统计的数据。

    • x:切换高亮行的排序位置。

    • z:切换颜色。

    • b:块状标记高亮行。

    • c:切换显示命令/程序名和参数。

    • f:显示字段管理。

    • u:按照执行用户显示进程。

    • i:显示所有进程或活跃的进程。

    • n:设置显示的进程数。

  • kill命令:kill命令是Linux系统中用来中止(终止)进程的命令。它可以向指定的进程发送信号,请求该进程终止执行。如果进程无法正常终止,可以使用强制终止信号进行尝试。进程的编号可以通过ps命令或jobs命令查看。

  • kill命令的格式和参数:

    kill [ -s signal | -p ] [ -a ] pid ...
    kill -l [ signal ]
    
    • -s signal:指定要发送的信号的名称或编号。
    • -p:只打印要发送的信号,而不发送信号。
    • -a:向所有拥有进程的终端发送信号。
    • pid:要终止的进程的进程ID。
    • -l:列出所有可用的信号名称和编号。
  • 示例:kill 1234 :终止进程ID为1234的进程

  • 示例:kill -s SIGTERM 5678:发送SIGTERM信号给进程ID为5678的进程

  • 示例:kill -l:列出所有可用的信号

    # 示例
    # 启动一个后台进程
    sleep 1000 &
    # 获取进程ID
    pid=$!
    # 终止进程
    kill $pid
    
    # 示例结果
    [1]+  已终止               sleep 1000
    
    
# 6、用户信息相关命令
  • 查看当前登录系统用户信息:who命令

  • who命令是Linux系统中用于显示当前登录到系统中的用户信息的命令。它可以显示用户的登录名、登录的终端、登录的时间以及远程主机名(如果有)。

  • 基本语法:who [OPTION]... [FILE | ARG1 ARG2]

    • [OPTION]:可选参数,用于指定不同的选项。
    • [FILE | ARG1 ARG2]:可选参数,用于指定要显示信息的文件或其他参数。
  • who命令适用于所有的Linux发行版,因为它是Linux系统中的标准命令之一,可以在任何Linux系统中使用。

  • 示例:

    
    $ who
    user1  tty1         2023-10-13 09:00 (:0)
    user2  pts/0        2023-10-13 09:01 (:0)
    
    
  • 查看最近登录用户信息:last命令

  • last命令是Linux系统中用于显示用户最近登录信息的命令。它可以显示用户的登录名、登录的终端、登录的时间以及登录的持续时间等信息

  • 语法:last [OPTION]... [USERNAME] [TTY]

    • [OPTION]:可选参数,用于指定不同的选项。
    • [USERNAME]:可选参数,用于指定要显示信息的特定用户。
    • [TTY]:可选参数,用于指定要显示信息的特定终端。
  • last命令适用于所有的Linux发行版,因为它是Linux系统中的标准命令之一,可以在任何Linux系统中使用。

  • 示例:显示所有用户的最近登录信息

    $ last
    username1  pts/0        2023-10-13 09:00 (:0)
    username2  tty1         2023-10-13 09:01 (:0)
    
    

    显示特定用户的最近登录信息:

    $last username
    

    显示特定终端的最近登录信息:

    $ last -t tty1

你可能感兴趣的:(Linux,网络安全,安全)