[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]
………………省略部分输出………………
说明:
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
用户ID | 进程id | 父级进程ID | cpu使用率 | 进程启动时间 | 所在终端 | 实际使用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
………………省略部分输出………………
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程的所有者 | 进程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 | 优先级。值越小优先级越高 |
NI | nice值。负值表示高优先级,正值表示低优先级,值为零则表示不会调整该进程的优先级。 |
VIRT | 虚拟内存 |
RES | 常驻内存 |
SHR | 共享内存 |
S | 进程状态 |
%CPU | CPU使用的百分比 |
%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
地址),以及RX
、TX
的接收数据包与发送数据包的个数及累计流量
格式:ifconfig [选项]
示例1:查询网卡信息
示例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*" -delete
。iname
是忽略大小写。
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/*