[toc]

3-Linux的命令-2

一、高级命令

1、hostname命令

用途:hostname用来显示或者设置当前系统的主机名,主机名被许多网络程序使用,来标识主机。
格式:hostname [选项]

在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

示例1:hostname
[root@localhost test]# hostname
localhost.localdomain
示例2:hostname 参数

常用参数:

  • -a参数:显示主机别名
  • -d参数:显示DNS域名
  • -i参数:显示主机的ip地址
[root@localhost ~]# hostname -a
localhost.localdomain localhost4 localhost4.localdomain4
localhost.localdomain localhost6 localhost6.localdomain6
[root@localhost ~]# hostname -d
[root@localhost ~]# hostname -i
::1 127.0.0.1

2、id命令

用途:id显示指定用户或当前用户(当未指定用户时)的用户与组信息

格式:id [选项]... [用户名]

示例1:

显示当前用户的信息

[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root) 
环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

显示指定用户的基本信息

[root@localhost ~]# id root
uid=0(root) gid=0(root) 组=0(root)

验证上述信息是否正确?

  • 验证用户信息:通过文件/etc/passwd

    [root@localhost ~]# cat /etc/passwd |grep root
     root:x:0:0:root:/root:/bin/bash
     operator:x:11:0:operator:/root:/sbin/nologin
    
  • 验证用户组信息:通过文件/etc/group

    [root@localhost ~]# cat /etc/group |grep root
    root:x:0:
    
示例2:使用-Z选项显示用户的安全环境
[root@localhost ~]# id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

结果对应格式:用户:角色:类型:安全等级。(unconfined:无限制的)

SELinux(Security Enhanced Linux)的用户和Linux的用户之间的一个映射的关系。

3、whoami命令

用途:whoami打印与当前生效的用户ID关联的用户名,一般在shell脚本中应用。

示例1:whoami
[root@localhost ~]# whoami
root
[root@localhost ~]# who am i
root     pts/1        2021-02-19 08:44 (:0)

4、ps命令

用途:ps命令是process status的缩写,用于显示当前系统的进程状态。以搭配kill指令随时中断、删除不必要的程序。

格式:ps [选项]

示例1:ps

直接ps,显示当前终端进程的pid,所在终端,实际使用CPU的时间以及命令名称与参数

[root@localhost ~]# ps
   PID TTY          TIME CMD
 12829 pts/1    00:00:00 bash
 64188 pts/1    00:00:00 ps

ps命令一般使用时都带参数进行使用

示例2:ps 参数

常用参数:

  • a参数:显示现行终端机下的所有程序,包括其他用户的程序
  • u参数:以用户为主的格式来显示进程状况
  • x参数:显示所有程序,不以终端机来区分
  • -e参数:列出程序时,显示每个程序所使用的环境变量
  • -f参数:显示UID,PPID,C与STIME栏位

一般情况下a、u、x会进行组合使用,e、f会进行组和使用

使用ef组合

[root@localhost ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 08:16 ?        00:00:02 /usr/lib/systemd/systemd --swi
root          2      0  0 08:16 ?        00:00:00 [kthreadd]
root          4      2  0 08:16 ?        00:00:00 [kworker/0:0H]
root          6      2  0 08:16 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 08:16 ?        00:00:00 [migration/0]
root          8      2  0 08:16 ?        00:00:00 [rcu_bh]
………………省略部分输出………………

说明:

UIDPIDPPIDCSTIMETTYTIMECMD
用户ID进程id父级进程IDcpu使用率进程启动时间所在终端实际使用CPU时间命令名称与参数

使用aux组合

Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在Linux系统中,有5种常见的进程状态,分别为运行中断不可中断僵死停止,其各自含义如下所示。

  • R(运行):进程正在运行或在运行队列中等待。
  • S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
  • D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。(通常是IO)
  • Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
  • T(停止):进程收到停止信号后SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行。

额外的状态符号含义:

  • < 高优先级(not nice to other users)
  • N 低优先级(nice to other users)
  • L 页面锁定在内存(实时和定制的IO)
  • s 代表当前进程拥有子进程
  • l 多线程
  • + 在前台进程组(界面进程,如我们执行的命令进程)

使用aux参数组合查看进程详细情

[root@localhost ~]# ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.3 193980  6168 ?        Ss   08:16   0:02 /usr/lib/syste
root         66  0.0  0.0      0     0 ?        SN   08:16   0:00 [ksmd]
root          2  0.0  0.0      0     0 ?        S    08:16   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   08:16   0:00 [kworker/0:0H]
root         20  0.0  0.0      0     0 ?        R    08:16   0:00 [kworker/2:0]
root        811  0.0  0.0  55532   808 ?        S<sl 08:16   0:00 /sbin/auditd
………………省略部分输出………………
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
进程的所有者进程ID号运算器占用率内存占用率虚拟内存使用量(单位是KB)占用的固定内存量(单位是KB)所在终端进程状态被启动的时间实际使用CPU的时间命令名称与参数

号代表是系统发起的进程,没有终端。

案例:在ps结果中过滤出想要查看的进程
ps -ef | grep 进程名

汪意:上述格式命令是经常使用的命令格式。

如:要查看bash进程

[root@localhost ~]# ps -ef | grep bash
root      11411  11398  0 08:40 pts/0    00:00:00 bash
root      12829  11398  0 08:44 pts/1    00:00:00 bash
root      64272  12829  0 09:00 pts/1    00:00:00 grep --color=auto bash
………………省略部分输出………………

5、top命令

用途:动态地监视进程活动与系统负载等信息,top命令相当强大,能够动态地查看系统运维状态,完全将它看作Linux中的强化版的Windows任务管理器

格式:top [选项]

示例1:top
[root@localhost ~]# top
top - 09:02:32 up 46 min,  3 users,  load average: 0.18, 0.09, 0.06
Tasks: 261 total,   2 running, 259 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.4 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863032 total,    83024 free,   932008 used,   848000 buff/cache
KiB Swap:  2097148 total,  2088692 free,     8456 used.   732096 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                   
  9563 root      20   0 3942468 198460  51972 S   5.2 10.7   1:09.55 gnome-shell                                               

说明

  • 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
  • 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
  • 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。其中数据均为CPU数据并以百分比格式显示,例如“97.1 id”意味着有97.1%的CPU处理器资源处于空闲。
  • 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
  • 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。

列头说明

列名含义
PID进程ID
USER进行对应的用户
PR优先级。值越小优先级越高
NInice值。负值表示高优先级,正值表示低优先级,值为零则表示不会调整该进程的优先级。
VIRT虚拟内存
RES常驻内存
SHR共享内存
S进程状态
%CPUCPU使用的百分比
%MEM内存使用的百分比
TIME+CPU累计使用的时间
COMMAND进程命令

默认情况下,top命令监控区域仅显示比较重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列,可以通过交互式命令按下f键查看并使用空格键开启或关闭。

Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!
* PID     = Process Id             TPGID   = Tty Process Grp Id     nsMNT   = MNT namespace Inode 
* USER    = Effective User Name    SID     = Session Id             nsNET   = NET namespace Inode 
* PR      = Priority               nTH     = Number of Threads      nsPID   = PID namespace Inode 
* NI      = Nice Value             P       = Last Used Cpu (SMP)    nsUSER  = USER namespace Inode
* VIRT    = Virtual Image (KiB)    TIME    = CPU Time               nsUTS   = UTS namespace Inode 
* RES     = Resident Size (KiB)    SWAP    = Swapped Size (KiB)  
* SHR     = Shared Memory (KiB)    CODE    = Code Size (KiB)     
* S       = Process Status         DATA    = Data+Stack (KiB)    
* %CPU    = CPU Usage              nMaj    = Major Page Faults   
* %MEM    = Memory Usage (RES)     nMin    = Minor Page Faults   
* TIME+   = CPU Time, hundredths   nDRT    = Dirty Pages Count   
* COMMAND = Command Name/Line      WCHAN   = Sleeping in Function
  PPID    = Parent Process pid     Flags   = Task Flags <sched.h>
  UID     = Effective User Id      CGROUPS = Control Groups      
  RUID    = Real User Id           SUPGIDS = Supp Groups IDs     
  RUSER   = Real User Name         SUPGRPS = Supp Groups Names   
  SUID    = Saved User Id          TGID    = Thread Group Id     
  SUSER   = Saved User Name        ENVIRON = Environment vars    
  GID     = Group Id               vMj     = Major Faults delta  
  GROUP   = Group Name             vMn     = Minor Faults delta  
  PGRP    = Process Group Id       USED    = Res+Swap Size (KiB) 
  TTY     = Controlling Tty        nsIPC   = IPC namespace Inode 
示例2:top 参数

常用参数:

  • -d参数:改变显示的更新速度,或是在交互式命令( interactive command)按s
  • -p参数:监控指定的pid进程
  • -c参数:显示完整的命令
  • -s参数:安全模式,将交互式指令取消,避免潜在的危机
  • -i参数:不显示任何闲置 (idle) 或无用 (zombie) 的进程
  • -n参数:更新的次数,完成后将会退出 top
  • -b参数:批次档模式,搭配n参数一起使用,可以用来将top的结果输出到档案内。

top -d改变显示的更新速度

[root@localhost ~]# top -d 5

在监控界面中按s键可输入秒数进行速度调整

[root@localhost ~]# top
………………省略部分输出………………
# 按下s键进行设置
Change delay from 20.0 to 20
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND   

注意:设置更新时间的单位是秒。

top -p监控指定的pid进程,多个pid时使用逗号分隔

[root@localhost ~]# top -p 1,2
………………省略部分输出………………
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                   
     1 root      20   0  193980   6168   3224 S   0.0  0.3   0:02.51 systemd                                                   
     2 root      20   0       0      0      0 S   0.0  0.0   0:00.02 kthreadd 

top -c显示完整的命令

[root@localhost ~]# top -c
………………省略部分输出………………
   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                   
  9563 root      20   0 3942468 198280  51972 S   2.6 10.6   1:26.46 /usr/bin/gnome-shell  

top -i不显示任何闲置 (idle) 或无用 (zombie) 的进程

[root@localhost ~]# top -i
………………省略部分输出………………
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                   
  9563 root      20   0 3942468 198272  51972 S   2.8 10.6   1:28.33 gnome-shell                                               
  8933 root      20   0  407304  60540  31072 S   1.2  3.2   0:32.09 X                          

不会显示空闲或无用的进程。

top -n 3更新3次,完成后将会退出 top

[root@localhost ~]# top -n 3

进程信息在更新3次后将退出监控。

top -b

-b将以批处理模式显示程序信息,并且可以输出到文件中。

[root@localhost test]# top  -n 1 -b > a.txt
[root@localhost test]# cat a.txt
top - 09:33:58 up  1:17,  3 users,  load average: 0.03, 0.03, 0.05
Tasks: 260 total,   1 running, 259 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.7 us,  1.4 sy,  0.0 ni, 97.9 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1863032 total,    75452 free,   931548 used,   856032 buff/cache
KiB Swap:  2097148 total,  2088692 free,     8456 used.   732568 avail Mem 
………………省略部分输出………………
示例3:快捷键的使用

在运行top的时候,可以按下快捷键进行操作。

  • 1 - 当服务器有多个cpu的时候,可以使用“1”快捷键切换是否显示cpu的详细信息。
  • s – 改变画面更新频率
  • P – 以 CPU 占用率大小的顺序排列进程列表
  • M – 以内存占用率大小的顺序排列进程列表
  • q – 退出 top

6、du命令

用途:查看目录的所占磁盘空间的大小

du命令的英文全称是Disk Usage,即用于查看磁盘占用空间的意思。但是与df命令不同的是du命令是对文件和目录磁盘使用的空间的查看,而不是某个分区。

格式:du [选项]... [目录名|文件名]

示例1:du [目录名|文件名]

直接执行du

[root@localhost ~]# du
4	./.cache/dconf
4	./.cache/imsettings
………………省略部分输出………………

当du不带参数时,显示当前文件下的文件的磁盘占用情况,只显示目录总占用量。

查询指定目录或文件

[root@localhost ~]# du test
24	test
示例2:du 参数

常用参数:

  • -a参数:显示目录中所有文件大小
  • -h参数:以K,M,G为单位,提高信息的可读性
  • -s参数:仅显示总计,只列出最后加总的值

du -a 目录名|文件名

[root@localhost ~]# du -a test
24	test/a.txt
24	test

du -h 目录名|文件名

[root@localhost ~]# du -h test/
24K	test/

du -s 目录名|文件名

[root@localhost ~]# du -s test
24	test
案例

查询etc目录占用空间的大小?

[root@localhost ~]# du -sh /etc
43M	/etc

7、find命令

用途:查找和搜索文件

find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

格式:find [查找路径] [参数 查找匹配条件]

示例1:find [查找路径]

列出当前目录及子目录下所有文件和文件夹

[root@localhost ~]# find
.
./.bash_logout
./.bash_profile
………………省略部分输出………………

列出指定目录下所有文件和文件夹

[root@localhost ~]# find ./test/
./test/
./test/a.txt
示例2:find [查找路径] 参数 查找匹配条件

常用参数:

  • -name参数:按照文件名查找文件
  • -perm参数:按照文件权限来查找文件
  • -user参数:按照文件所属用户来查找文件
  • -group参数:按照文件所属的组来查找文件
  • -size n[cwbkMG]参数:按指定文件大小查找 。其中后缀为:
    • b: 代表 512 位元组的区块(如果用户没有指定后缀,则默认为 b)
    • c: 表示字节数
    • k: 表示 kilo bytes (1024字节)
    • w: 字 (2字节)
    • M:兆字节(1048576字节)
    • G: 千兆字节 (1073741824字节)
  • -type参数:查找某一类型的文件
    • b - 块设备文件。
    • d - 目录。
    • c - 字符设备文件。
    • p - 管道文件。
    • l - 符号链接文件。
    • f - 普通文件。
    • s - socket文件
  • -mtime -n +n参数:按照文件的更改时间(内容已经修改)来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。find命令还有-atime(访问时间)和-ctime(元数据被更改(例如权限))选项,但它们都和-mtime选项相似,这里不再介绍
  • -exec参数:find命令对匹配的文件执行该参数所给出的其他linux命令。
  • -delete (删除):查找的文件删除(慎用)

使用-name参数查看/etc目录下面所有的.conf结尾的配置文件

[root@localhost ~]# find /etc -name *.conf
/etc/resolv.conf
/etc/fonts/conf.d/65-0-khmeros-base.conf
/etc/fonts/conf.d/61-urw-fallback-backwards.conf
………………省略部分输出………………

使用-perm参数查看/etc目录下面所有的744权限的文件

[root@localhost ~]# find /etc -perm 744
/etc/bash_completion.d/gluster
[root@localhost ~]# ll /etc/bash_completion.d/gluster
-rwxr--r--. 1 root root 11521 10月  2 00:52 /etc/bash_completion.d/gluster

使用-user参数查看所属指定用户文件

[root@localhost ~]# find /home -user tiger
/home/tiger
/home/tiger/.mozilla
/home/tiger/.mozilla/extensions
/home/tiger/.mozilla/plugins
/home/tiger/.bash_logout
/home/tiger/.bash_profile
/home/tiger/.bashrc

使用-group参数查找所属指定用户组文件

[root@localhost ~]# find /home -group tiger
/home/tiger
/home/tiger/.mozilla
/home/tiger/.mozilla/extensions
/home/tiger/.mozilla/plugins
/home/tiger/.bash_logout
/home/tiger/.bash_profile
/home/tiger/.bashrc

使用-size参数查看/etc目录下面指定大小,大于提定大小,小于指定大小的文件

[root@localhost ~]# find /etc/ -size 4M
/etc/selinux/targeted/policy/policy.31
/etc/selinux/targeted/active/policy.kern
/etc/selinux/targeted/active/policy.linked
[root@localhost ~]# find /etc/ -size +4M
/etc/udev/hwdb.bin
[root@localhost ~]# find /etc/ -size -1M
/etc/crypttab
/etc/pki/ca-trust/extracted/pem/objsign-ca-bundle.pem
………………省略部分输出………………

注意:查询大于指定大小的文件用+号,小于指定大小的文件用-

按类型搜索超过5天以前被更新过的所有文件

[root@localhost ~]# find . -type f -mtime +5
./.bash_logout
./.bash_profile
./.bashrc
./.cshrc

查找完成后使用exec执行stat命令查看文件具体信息

命令格式: 命令 {} \;,注意{ }\;之间的空格。

[root@localhost ~]# find . -type f -mtime +5 -exec stat {} \;
  文件:"./.bash_logout"
  大小:18        	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:35649137    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2021-02-19 10:14:29.998797187 +0800
最近更改:2013-12-29 10:26:31.000000000 +0800
最近改动:2021-02-17 03:36:21.423002411 +0800

组合使用案例:-delete 将查询的文件删除

查询test目录下的b.txt文件并删除?

[root@localhost test]# find .. -name b.txt 
../test/b.txt
[root@localhost test]# find .. -name b.txt -delete
[root@localhost test]# find .. -name b.txt 
[root@localhost test]# 

匹配多个条件中的一个,使用-o连接进行连接

查询.sh后缀名的文件或是.txt后缀名的文件

[root@localhost ~]# find . \( -name "*.sh" -o -name "*.txt" \)
./.cache/tracker/db-version.txt
./.cache/tracker/db-locale.txt
./.cache/tracker/parser-sha1.txt
………………省略部分输出………………

注意:查询条件要使用()进行包括,并且与内容之间要有空格,并需使用\进行转义。

8、service命令

用途: 控制系统服务

service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、重新加载配置(reload)、查看状态(status)等。

格式:service 服务 start|stop|restart|status

示例:使用service操作防火墙服务,进行关闭,启动,重启,查看状态。

停止,查看状态

[root@localhost ~]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
[root@localhost ~]# service firewalld status
Redirecting to /bin/systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 五 2021-02-19 10:29:21 CST; 6s ago
………………省略部分输出………………

启动,查看状态

[root@localhost ~]# service firewalld start
Redirecting to /bin/systemctl start firewalld.service
[root@localhost ~]# service firewalld status
Redirecting to /bin/systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since 五 2021-02-19 10:30:11 CST; 3s ago
………………省略部分输出………………

重启服务

[root@localhost ~]# service firewalld restart
Redirecting to /bin/systemctl restart firewalld.service

9、kill命令

用途:杀死进程

kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

格式:kill [选项]... 进程PID

示例1:使用kill pid杀死防火墙进程

① 使用ps命令查询到防火墙进行的pid

[root@localhost ~]# ps -ef | grep firewalld
root      67058      1  1 10:31 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root      67250  12829  0 10:31 pts/1    00:00:00 grep --color=auto firewalld

② 使用kill pid杀死进程

[root@localhost ~]# kill 67058
[root@localhost ~]# ps -ef | grep firewalld
root      67340  12829  0 10:32 pts/1    00:00:00 grep --color=auto firewalld

③ 当进程无法杀死时,可使用信号9强制杀死

[root@localhost ~]# kill -9 67457
[root@localhost ~]# ps -ef | grep firewalld
root      67620  12829  0 10:34 pts/1    00:00:00 grep --color=auto firewalld
示例2:按服务名删除

每次查询pid太麻烦,可使用killall命令通过服务名杀死相应进程。

[root@localhost ~]# ps -ef | grep firewalld
root      67058      1  1 10:31 ?        00:00:00 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid
root      67250  12829  0 10:31 pts/1    00:00:00 grep --color=auto firewalld
[root@localhost ~]# killall -9 firewalld
[root@localhost ~]# ps -ef | grep firewalld
root      67792  12829  0 10:35 pts/1    00:00:00 grep --color=auto firewalld

10、ifconfig命令

用途:用于获取网卡配置与网络状态等信息

使用ifconfig命令来查看本机当前的网卡配置与网络状态等信息时,其实主要查看的就是网卡名称、inet参数后面的IP地址、ether参数后面的网卡物理地址(又称为MAC地址),以及RXTX的接收数据包与发送数据包的个数及累计流量

格式:ifconfig [选项]

示例1:查询网卡信息

image

示例2:查看指定网卡信息(查看ens33)
[root@localhost ~]# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.163.137  netmask 255.255.255.0  broadcast 192.168.163.255
        inet6 fe80::c3d8:243:7abb:921c  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:71:74:0a  txqueuelen 1000  (Ethernet)
        RX packets 369421  bytes 534133011 (509.3 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 56127  bytes 3446720 (3.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
示例3:启动,停止网卡

启动ifconfig 网卡名 up

[root@localhost ~]# ifconfig ens33 up

为了简化操作可使用ifup 网卡名命令来启动

[root@localhost ~]# ifup ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)

停止ifconfig 网卡名 down

[root@localhost ~]# ifconfig ens33 down

为了简化操作可使用ifdown 网卡名命令来停止

[root@localhost ~]# ifdown ens33
成功断开设备 "ens33"。

11、last命令

用途:查看所有系统的登录记录

格式:last

示例:查看所有登录记录
[root@localhost ~]# last
root     pts/1        :0               Fri Feb 19 08:44   still logged in   
root     pts/1        :0               Wed Feb 17 00:14 - 00:14  (00:00)    
root     pts/1        :0               Wed Feb 17 00:13 - 00:14  (00:00)    
root     pts/1        :0               Wed Feb 17 00:11 - 00:13  (00:01)    
root     pts/0        :0               Wed Feb 17 00:10 - 10:59 (2+10:48)   
root     :0           :0               Tue Feb 16 19:51   still logged in   
reboot   system boot  3.10.0-1160.el7. Wed Feb 17 03:40 - 10:59 (2+07:19) 

使用last命令可以查看本机的登录记录。但是,由于这些信息都是以日志文件的形式保存在系统中,因此黑客可以很容易地对内容进行篡改。千万不要单纯以该命令的输出信息而判断系统有无被恶意入侵!

12、reboot命令

用途:重启计算机

格式:reboot

系统会讲开机与关机的数据写入/var/log目录下的wtmp记录文件。

可使用-w参数进行重启测试,并不真的将系统重新开机,只会将数据写入记录文件。

[root@localhost ~]# reboot -w
[root@localhost ~]# tail /var/log/wtmp
~~~reboot3.10.0-1160.el7.x86_64�,`�5~~~runlevel3.10.0-1160.el7.x86_64ذ+`��
�$:0root:0ޱ+`�!�,pts/0/0root:0��+`��,pts/1/1root:0��+`��pts
/1/1root9�+`^;�,pts/1/1root:0>�+`!pts/1/1rootS�+`y��,pts/
1/1root:0U�+pts/1/1root[�+`!��,pts/1/1root:0�	

13、shutdown命令

用途:以一种安全的方式关闭系统。

所有登陆用户都可以看到关机信息提示,并且login (1) 将被阻塞。可以指定立刻关机,也可以指定系统在一定的延时后关机。所有进程都将接收到SIGTERM(终止进程)信号。

格式:shutdown [选项]

常用参数:

  • -k参数:并非真正关机,只向所有人显示警告信息
  • -r参数:重启。
  • -h参数:停机。
事例1:测试-k
[root@localhost ~]# shutdown -k
Shutdown scheduled for 五 2021-02-19 10:46:27 CST, use 'shutdown -c' to cancel.
[root@localhost ~]# 
Broadcast message from root@localhost.localdomain (Fri 2021-02-19 10:45:27 CST):

The system is going down for power-off at Fri 2021-02-19 10:46:27 CST!

并不会真的关机,只是向所有人显示警告信息。

事例2:立即关机:shutdown -h now
事例3:延时关机

下午两点关机

[root@localhost ~]# shutdown -h 12:00
Shutdown scheduled for 五 2021-02-19 12:00:00 CST, use 'shutdown -c' to cancel.

可使用shutdown -c命令取消。

两分钟后关机

[root@localhost ~]# shutdown -h +2
Shutdown scheduled for 五 2021-02-19 10:50:36 CST, use 'shutdown -c' to cancel.
事例4:延时重启

在两分钟后重启

[root@localhost ~]# shutdown -r +2
Shutdown scheduled for 五 2021-02-19 10:51:58 CST, use 'shutdown -c' to cancel.

Broadcast message from root@localhost.localdomain (Fri 2021-02-19 10:49:58 CST):

The system is going down for reboot at Fri 2021-02-19 10:51:58 CST!

注意:shutdwon命令与poweroff一定要慎用,在学习阶段可以使用,但是在生产环境中,linux系统一般都是做服务器使用,并且一般都布署在远程端口,所以当不小心使用关机命令将系统关机后,就无法像在本地那样轻松的再次开机了,这是非常麻烦的一件事情。所以在生产环境中,如果服务器关机开机操作,一般都使用reboot进行重启操作。

14、uptime命令

用途:查看系统负载

uptime命令可以显示系统已经运行了多长时间,信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登录用户、系统在过去的1分钟、5分钟和15分钟内的平均负载。负载值越低越好,尽量不要长期超过1,在生产环境中不要超过5。

格式:uptime [参数]

常用参数:

  • -p参数:以易读的格式显示机器正常运行的时间
  • -s参数:系统自开始运行时间,格式为yyyy-mm-dd hh:mm:ss
示例1:uptime

uptime命令用法十分简单,直接输入uptime即可查看系统负载情况。

[root@localhost ~]# uptime
 10:50:46 up  2:12,  3 users,  load average: 0.03, 0.04, 0.05
示例2:使用-p参数显示机器正常运行的时间
[root@localhost ~]# uptime -p
up 2 hours, 13 minutes
示例3:使用-s参数显示机器启动时间
[root@localhost ~]# uptime -s
2021-02-19 08:38:31

15、uname命令

用途:用于查看系统内核与系统版本等信息

格式:uname [-a]

[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19
16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

在使用uname命令时,一般会固定搭配上-a参数来完整地查看当前系统的内核名称主机名内核发行版本节点名版本号机器(硬件)类型硬件平台处理器类型以及操作系统名称等信息。

了解:如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下:

[root@localhost ~]# cat /etc/redhat-release 
CentOS Linux release 7.9.2009 (Core)

16、netstat命令

用途:显示网络状态

netstat命令用于显示各种网络相关信息,如显示网络连接,路由表,接口状态,伪装连接,网络链路信息和组播成员组。

格式:netstat [参数]

常用参数:

  • -t参数:显示所有tcp协议的网络相关信息
  • -n参数:显示数字(ip)形式地址而不是去解析主机、端口或用户名
  • -l参数:只显示正在侦听的套接字(这是默认选项)
  • -p参数:显示套接字所属进程的PID程序名称
综合应用:查看TCP协议,并且正在侦听的套接字的网络相关内容
[root@localhost ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State      PID/Program name   
tcp        0      0 0.0.0.0:111         0.0.0.0:*           LISTEN      845/rpcbind       
tcp        0      0 192.168.122.1:53    0.0.0.0:*           LISTEN      1885/dnsmasq      

其中:

  • proto:网络连接协议
  • Recv-Q:连接此套接字的用户程序未拷贝的字节数。
  • Send-Q:远程主机未确认的字节数。
  • Local Address:套接字的本地地址(本地主机名)和端口号。
  • Foreign Address :套接字的远程地址(远程主机名)和端口号。
  • State:套接字的状态。详细状态请使用man命令查询
  • PID/Program name:处理套接字进程的PID进程名称

作业

1、如何通过命令行重启linux操作系统?

可使用shutdown -r 命令重启操作系统,也可以使用reboot命令,生产环境中建议使用reboot命令重启,shutdown命令时,如果参数 -r未输或输错,将会造成系统关机,在开机是件很麻烦的事情,因为生产环境系统都布属在远程终端上。

2、如何在命令行中快速删除光标前/后的内容?

  • 删除之前的:ctrl+u
  • 删除之后的:ctrl+k

3、如何删除/tmp下所有A开头的文件?

使用find命令查询出所有带A开头的文件,同时加上-delete参数即可。命令如下:find /tmp -iname "A*" -deleteiname是忽略大小写。

4、系统重要文件需要备份,如何把/etc/passwd备份到/tmp目录下?

使用cp命令进行备份。备份时可改变名称,也可以使用原有名称。命令如下:cp /etc/passwd /tmp/passwd备份

5、如何查看系统最后创建的3个用户?

使用tail命令查看最后三行的内容。命令如下: tail -3 /etc/passwd

6、什么命令可以统计当前系统中一共有多少账户?

wc命令可以统计,命令如下:wc -l /etc/passwd

7、如何创建/tmp/test.conf文件?

使用touch命令创建,命令如下:touch /tmp/test.conf;

8、如何通过vim编辑打开/tmp/test.conf?

vim /tmp/test.conf

9、如何查看/etc/passwd的头3行和尾3行?

  • 头三行:使用head,命令如下:head -3 /etc/passwd
  • 尾三行:使用tail,命令如下:tail -3 /etc/passwd

10、如何一次性创建目录/text/1/2/3/4?

使用mkdir -p /text/1/2/3/4创建

11、如何最快的返回到当前账户的家目录?

直接输入cd命令回车即可,或者使用cd ~

12、如何查看/etc所占的磁盘空间?

du -sh /etc

13、删除/tmp下的所有文件

  • rm -rf /temp/*

刚学java菜鸡,永劫无间蚀月,王者荣耀王者,金铲铲小铂金,第五人格菜鸡,原神开服玩家,星穹铁道菜鸡,崩坏的菜鸡,闪耀暖暖,和平精英,LOL,CSGO,以及三A大作收集者等等。。。