Linux基础(一)
一、Linux操作系统介绍
二、文件目录操作
1、ls
list 列出当前目录下(所有的文件和目录)
[root@server1 ~]# ls # 会列出当前目录下(所有的文件和目录)
[root@server1 ~]# ls -h #将文件的大小以文件的方式显示
[root@server1 ~]# ls -a #查看所有的文件(包括隐藏文件)
[root@server1 ~]# ls -l #显示所有文件的详细属性,等同于ll
[root@server1 ~]# ls -al #显示所有文件的详细属性(包括隐藏文件)
2、cd
Change Directory 改变目录路径
绝对路径:(从/目录出发,找到相对应的目录)
[root@server1 ~]# cd /etc/xml/
[root@server1 ~]# cd /etc/yum/vars/
[root@server1 ~]# cd /etc/yum/pluginconf.d/
相对路径:(从当前目录出发,找到相对应的目录)
第一种方式 直接进入当前目录下的下级目录或者下几级目录
[root@localhost ~]#cd xiaoze
[root@localhost ~]#cd xiaoze/aaa
第二种方式 以~代表root目录 进入root目录下的任意目录
~ 代表root
[root@localhost xiaolei]# cd ~
[root@localhost xiaolei]# cd ~/xiaoze/
第三种方式
. 代表当前目录
.. 代表当前目录的上一级目录
[root@localhost xiaolei]# cd .
[root@localhost xiaolei]# cd ..
[root@localhost xiaolei]# cd ../xiaoze/
第四种方式
- 返回上一次所使用的目录
[root@localhost xiaolei]# cd -
linux目录结构
目录 | 含义 |
---|---|
root | 存放root用户的相关文件,root的工作目录 |
home | 存放普通用户的相关文件,普通用户的工作目录 |
bin(binary) | (存放常用命令的目录,如vi,su,cp,ls,cd |
sbin(super binrary) | 要具有一定权限才可以使用命令(在sbin下的命令不在bin下只有root可以执行) |
dev | (device)驱动 存放驱动和硬件配置文件的目录 |
etc | 存放服务的配置的相关文件 |
var | 存放经常变化的文件,如网络连接的sock文件 、日志,服务的数据文件 |
boot | 存放引导系统启动的相关文件 |
usr | 安装一个软件的默认目录,相当于windows下的program files |
pro, | 调优目录 记录着系统进程和调优文件 |
lib | 库文件目录 |
tmp | 这个目录是用来存放一些临时文件的 |
mnt/media/opt | 默认挂载光驱和软驱的目录 |
3、pwd
查看工作目录(Print Working Directory)
[root@server1 yum.repos.d]# pwd
/etc/yum.repos.d
4、cat
查看文件,但是不能查看行数过多的文件
[root@server1 ~]# cat anaconda-ks.cfg
[root@server1 ~]# cat -n anaconda-ks.cfg #查看文件并且显示行数
5、more
以翻页的方式进行文件的查看
空格翻页 b返回上一页 q退出 不能一行一行的读取
[root@server1 ~]# more anaconda-ks.cfg
6、less
以翻页的方式进行文件的查看
空格翻页 b返回上一页 q退出 可以一行一行的读取
[root@server1 ~]# less anaconda-ks.cfg
7、head
** 查看文件头部信息**
[root@localhost ~]# head log #默认输出10行
[root@localhost ~]# head -n 20 log #自定义输出多少行
8、tail
查看文件尾部信息
[root@localhost ~]# tail log #默认输出10行
[root@localhost ~]# tail -n 20 log #自定义输出多少行
[root@localhost ~]# tail -f /var/log/messages #以滚动的方式输出内容
9、tr
替换文件中的字符
替换字符只会输出到屏幕上,不会保存,替换时使用管道符进行替换,如果想要保存使用重定向符号。管道符和重定向使用方式查看相关文章
[root@server1 ~]# cat anaconda-ks.cfg | tr i I #将文件当中i替换成I
[root@server1 ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z] #将所有的小写替换成所有的大写
10、diff
different 比较两个文件的内容是否相同
[root@server1 ~]# diff anaconda-ks.cfg anaconda-ks.cfg.bak #相同则不会输出结果
[root@server1 ~]# diff anaconda-ks.cfg anaconda-ks.cfg.bak #不同则会输出结果(具体两个文件哪一行不一样)
3c3
< auth --enableshadow --passalgo=sha512
---
> au --enableshadow --passalgo=sha512
11、wc
用于统计指定文件的行数、字数、字节数
[root@server1 ~]# wc -l anaconda-ks.cfg #显示文件的行数
48 anaconda-ks.cfg
[root@server1 ~]# wc -w anaconda-ks.cfg #显示文件的单词数
122 anaconda-ks.cfg
[root@server1 ~]# wc -c anaconda-ks.cfg #显示文件的字节数
1260 anaconda-ks.cfg
12、cut
用于按列提取文本字符
选项 | 作用 |
---|---|
-d | 设置间隔符号(任意符号都可以,包括字母数字) |
-f | 设置需要看的列数 |
[root@server1 ~]# cut -d 'e' -f 2 hello #截取hello文件中以e为分隔符的第二列
llo
[root@server1 ~]# cut -d 'e' -f 1 hello #截取hello文件中以e为分隔符的第一列
h
[root@server1 ~]# cut -d ':' -f 1 /etc/passwd #截取/etc/password以:为分隔符的第一列
13、touch
用于创建空白文件或设置文件的时间
选项 | 作用 |
---|---|
-a | 仅修改“访问时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-t | 修改文件的时间戳 |
[root@server1 ~]# touch file1 #直接创建文件file1
[root@server1 ~]# touch -at 202005131212 file1 #将文件的访问时间修改为202005131212
[root@server1 ~]# touch -mt 202005131212 file1 #将文件的修改时间修改为202005131212
[root@server1 ~]# touch -t 202005131218 file1 #同时修改文件的访问时间和修改时间修改为202005131212
访问时间(Access):读取一次文件的内容,访问时间便会更新
修改时间(Modify):对文件内容修改一次便会更新该时间
改变时间(Change):更改文件的属性便会更新该时间
以上时间都可以使用 [命令stat] 进行查看
[root@server1 ~]# stat file1
File: ‘file1’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: fd00h/64768d Inode: 67152864 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-05-13 12:18:00.000000000 -0400
Modify: 2020-05-13 12:18:00.000000000 -0400
Change: 2021-07-03 03:19:48.083369841 -0400
14、file
用于查看文件类型
[root@server1 ~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text #文件类型
[root@server1 ~]# file dir1/
dir1/: directory #目录类型
[root@server1 ~]# file ccc
ccc: symbolic link to `cc' #软链接类型
[root@server1 ~]# file /dev/sda1
/dev/sda1: block special #块设备类型
[root@server1 dev]# file console
console: character special #字符设备类型
[root@server1 ~]# file /dev/log
/dev/log: socket #套接字类型
在 Linux 中总共有 7 种类型的文件,分为 3 大类。具体如下
普通文件(-)
目录文件(d)
特殊文件(该类有 5 个文件类型)链接文件(字符链接L):
链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln 命令产生硬链接
硬链接: 硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。
软链接:
软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
块文件(B):
块设备是硬件设备,通过随机(不一定是顺序)访问固定大小的数据块(chunk)来区分。固定大小的chunk称为块(block)。最常见的块设备是硬盘,但也存在许多其他块设备,如软盘驱动器、蓝光阅读器和闪存。注意,这些都是挂载文件系统的设备,文件系统就像是块设备的通用语言。
字符设备文件(C):
字符设备通过连续的流数据访问,一个字节接着一个字节。典型的字符设备是终端(终端分多种,由物理的也有虚拟的)和键盘。
Socket 文件(S):
接字需要成对才有意义,也就是分为两端,每一端都有用于读、写的文件描述符(或文件句柄),相当于两根双向通信的管道。
套接字根据协议族的方式分为两大类:网络套接字(AF_INET类型,根据ipv4和ipv6分为inet4和inet6)和Unix Domain套接字(AF_UNIX类型)。当然,从协议族往下,套接字可细分为很多种类型,例如INET套接字可以分为TCP套接字、UDP套接字、链路层套接字、Raw套接字等等。其中网络套接字是网络编程的基础和核心。
命名管道文件(命名管道P):
管道分为匿名管道和命名管道。管道都是一端写入、另一端读取,它们是单方向数据传输的,它们的数据都是直接在内存中传输的,管道是进程间通信的一种方式,例如父进程写,子进程读。
15、cp
复制文件或者目录
复制一个源文件到目标文件夹
[root@server1 ~]# cp file1 /tmp/ #将file1复制到/tmp下
同时复制多个文件到目标文件夹下。
[root@server1 ~]# cp file1 file2 file3 /tmp/ #复制file1,file2,file3到目录/tmp下
复制源文件夹到目标文件夹下
[root@server1 ~]# cp -rvf /etc/ /tmp/ #复制/etc/目录到/tmp下,加参数-r表示递归复制,-f强制复制
复制一个源文件到目标文件夹,并且改名
[root@server1 ~]# cp file1 /tmp/test #将file1复制到/tmp下并且改名为test
16、rm
删除一个文件或目录
[root@server1 ~]# rm test1 #删除一个文件,需要确认
rm: remove regular empty file ‘test1’? y
[root@server1 ~]# rm -f test2 #直接删除一个文件,不需要确认
[root@server1 ~]# rm -r dir1 #删除一个目录,需要确认
rm: remove directory ‘dir1’? y
[root@server1 ~]# rm -rf dir2/ #删除一个目录,不需要确认
17、mv
移动文件或目录
如果源文件和目录相同,相当于改名
移动一个源文件到目标文件夹
[root@server1 ~]# mv file1 /opt/ #移动file1到/opt下
同时移动多个文件到目标文件夹下
[root@server1 ~]# mv file2 file3 /opt/ #一定file1,file2到/opt下
移动源文件夹到目标文件夹下
[root@server1 ~]# mv /tmp/etc/ /opt/ #移动/tmp/etc/到/opt下
改名
[root@server1 ~]# mv test test_test #将test改名为test_test
18、which
查看一个命令使用时所在的位置
[root@server1 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
19、ln
建立文件链接
建立硬链接
[root@server1 ~]# ln source.txt hardsource.txt #创建文件source.txt的硬链接hardsource.txt
建立软链接
[root@server1 ~]# ln -s source.txt softsource.txt #创建文件source.txt的软链接softsource.txt
20、mkdir
创建目录
[root@server1 ~]# mkdir /tmp/cangjing 直接创建目录
[root@server1 ~]# mkdir aaa bbb ccc ddd 一起创建多个目录
[root@server1 ~]# mkdir -p xiaoze/aaa/bbb 递归创建
21、du
显示当前目录和目录下边每一个文件和每一个目录的占用大小
[root@server1 ~]# du -s 显示当前目录占用的大小
[root@server1 ~]# du -sh 以人性化的显示方式显示出当前目录占用的大小
22、find
用于查找匹配文件
find 用法: find path -option [ -print ] [ -exec -ok command ] {} \;
选项 | 含义 |
---|---|
path | find命令所查找的目录路径 |
find命令将匹配的文件输出到标准输出 | |
-exec | find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { } ;,注意{ }和\;之间的空格 |
-ok | 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。 |
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-amin | 匹配访问文件的时间(-n指n分钟以内,+n指n分钟以前) |
-mmin | 匹配修改内容的时间(-n指n分钟以内,+n指n分钟以前) |
-cmin | 匹配修改文件权限的时间(-n指n分钟以内,+n指n分钟以前) |
-nogroup | 匹配无所有组的文件 |
-nouser | 匹配无所有者的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size -n +n | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
[root@server1 ~]# find ./ -name "*.txt" #列出当前目录下名字匹配到结尾为.txt的文件或目录
[root@server1 ~]# find /home -size +512k -size -1024k #列出/home目录下文件大于512K小于1024K的文件
[root@server1 ~]# find /home -links +2 #列出/home目录下硬链接大于2的文件
[root@server1 ~]# find /home -perm 0700 #列出/home目录下权限为700的文件
[root@server1 ~]# find / -amin -10 #列出/目录下(系统中)十分钟内访问的文件
[root@server1 ~]# find / -ctime +10 #列出系统中十分钟前权限修改的文件
[root@server1 ~]# find / -empty #列出系统中的空文件
[root@server1 ~]# find / -group test1 #列出系统中所属组为test1的文件
[root@server1 ~]# find / -nouser #列出系统中作废用户的文件
[root@server1 ~]# find . -type d #列出当前目录中的目录
[root@server1 ~]# find . ! -type d #列出当前目录中不为目录的其他文件
[root@server1 ~]# find . -type f -exec ls -l {} \; #列出当前目录中的文件并且以ls -l命令执行
三、文本编辑操作vi,vim
1、vi,vim介绍
vi是linux系统中文本的默认编辑器
vim是vi的编程可视化增强版,并且还有其它许多增强的特性:
多级撤销:在VI里,按u只可以撤销上次命令,但是在vim里面可以无限制撤销
易用性:vi只能运行于Unix中,而vim不仅可以运用于Unix,还可以运行于Linux、Windows、mac等多个操作平台
语法加亮:vim可以用不同的颜色来加亮你的代码
可视化操作:vim不仅可以在终端运行,还可以运行于x Windows、Mac os、Windows
对vi完全兼容:你可以将vim当做vi来使用
2、vi/vim模式
正常模式:控制光标移动,可以对文本进行复制,粘贴。删除,查找等工作
输入模式:正常的文本录入
末行模式:保存或退出文档,以及设置编辑环境
3、模式切换
正常模式到输入模式:按'a'、'i'、'o'、'insert'键都可进入
'a'代表在光标所在字符的下一个字符插入
'i','insert'代表在光标字符的当前字符插入
'o'代表在光标所在行的下一行插入
输入模式到正常模式:按'esc'键
正常模式到末行模式:按':'
末行模式到正常模式:按'esc'键
3、vi/vim快捷键操作
作用 | 命令 |
---|---|
光标方向移动 | ↑、↓、←、→ |
跳转到行首 | ^ |
跳转到行尾 | $ |
跳转到文件首行 | :1 |
跳转到文件尾行 | :$ |
跳转到文件某一行 | :5 |
行号显示 | :set nu |
取消行号显示 | :set nonu |
4、正常模式操作
作用 | 命令 |
---|---|
删除(剪切)光标所在整行 | dd |
删除(剪切)光标处开始的5行 | 5dd |
复制光标所在的整行 | yy |
复制光标处开始的5行 | 5yy |
将之前删除或复制过的数据粘贴在光标后面 | p |
显示搜索命令定位到的下一个字符串 | n |
显示搜索命令定位到的上一个字符串 | N |
撤销上一步的操作 | u |
5、末行模式操作
作用 | 命令 |
---|---|
保存 | :w |
退出 | :q |
强制退出 | :q! |
强制保存退出 | :wq! |
显示行号 | :set nu |
不显示行号 | :set nonu |
跳转到改行 | :整数 |
将光标所在行的第一个one替换程two | :s/one/two |
将光标所在行的所有one替换成two | :s/one/two/g |
将全文中的one替换成two | :%s/one/two/g |
从文本中从上至下搜索该字符串 | ?字符串 |
从文本中从下之上搜索该字符串 | /字符串 |
6、vim块操作
1、按CTRL+v进入快选择模式
2、选择好所要操作的块之后,可直接通过正常模式命令操作块
3、选择好所要操作的块之后,可以按I插入文本,插入完成后按esc退出,所有的块都生效
四、文件压缩解压操作
几种不同得文件压缩方式介绍
压缩方式 | 压缩率 | CPU消耗 | 压缩命令 | 解压缩命令 | 压缩后缀 | 特点 |
---|---|---|---|---|---|---|
zip | 3 | 3 | zip | unzip | .zip | 通用性好,新建压缩文件,不在源文件上操作 |
gzip | 2 | 2 | gzip | gunzip | .gz | 直接在源文件上操作 |
bzip2 | 1 | 1 | bzip2 | bunzip2 | .bz2 | 直接在源文件上操作 |
1、zip
压缩
[root@server ~]# zip time.zip time
解压
[root@server ~]# unzip time.zip
查看
[root@server ~]# zcat time.zip
2、gzip
压缩
[root@server ~]# gzip time
[root@server ~]# gzip -9 time
解压
[root@server ~]# gzip -d time.gz
[root@server ~]# gunzip time.gz
查看
[root@server ~]# zcat time.gz
3、bzip2
压缩
[root@server ~]# bzip2 time
[root@server ~]# bzip2 -9 time
解压
[root@server ~]# bzip2 -d time.bz2
[root@server ~]# bunzip2 time.bz2
查看
[root@server ~]# bzcat time.bz2
4、tar
压缩
[root@server ~]# tar -zcvf etc.tar.gz /etc/ 使用gzip格式进行压缩
[root@server ~]# tar -jcvf etc.tar.bz2 /etc/ 使用bzip2格式压缩
解压
[root@server ~]# tar -zxvf etc.tar.gz -C /tmp/test1 使用gzip格式进行解压
[root@server ~]# tar -jxvf etc.tar.bz2 -C /tmp/test2 使用bzip2格式解压
查看
[root@server ~]# tar -tf etc.tar.gz
五、网络配置管理
1、centos7网络配置
centos7需要修改网卡配置文件来进行配置
网卡配置文件的路径在/etc/sysconfig/network-scripts
[root@server ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bab3829c-d034-4718-b560-59f62ebceef0
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.41
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=114.114.114.114
在以上的配置文件中需要特别注意的是
BOOTPROTO #设置网卡获得ip地址的方式,可能的选项为static,dhcp或none,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址和不进行配置。
ONBOOT #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备
IPADDR #配置该网卡的IP地址
NETMASK #配置该网卡的子网掩码
GATEWAY #配置该网卡的路由网关
DNS #配置该网卡的DNS
配置完成后重新加载网卡
[root@server ~]# systemctl restart network 或者
[root@server ~]# service network restart
Restarting network (via systemctl): [ OK ]
注意,以上方式只支持centos7
centos8对网卡的配置使用NetworkManager管理工具配置,命令为nmcli,在centos8中network管理模块以废弃。
六、常用系统工作命令
1、hostname
用于查看linux主机名字
[root@server ~]# hostname
server
设置linux主机的名字
[root@server ~]# hostnamectl set-hostname server1
[root@server ~]# logout
再次登陆
[root@server1 ~]# hostname
server1
2、echo
用于在终端输出字符串或变量提取后的值
[root@server1 ~]# echo helloworld
helloworld
提取变量的指
[root@server1 ~]# age=29
[root@server1 ~]# echo $age
29
3、date
用于显示及设置系统的时间或日期
经常使用到的参数
参数 | 作用 |
---|---|
%Y | 年 |
%m | 月 |
%d | 日 |
%H | 时 |
%M | 分 |
%S | 秒 |
%j | 今年中的第几天 |
[root@server1 ~]# date
Sun Jun 27 21:53:56 EDT 2021
[root@server1 ~]# date "+%Y-%m-%d %H:%M:%S" #用这种格式输出时间'年-月-日 时:分:秒'
2021-06-27 21:55:32
[root@server1 ~]# date "+%Y%m%d%H%M%S" #用这种格式输出时间'年月日时分秒'
20210627215645 #显示今天是一年中的第几天
[root@server1 ~]# date "+%j"
178
设置时间
[root@server1 ~]# date -s "20210628 10:05:00"
Mon Jun 28 10:05:00 EDT 2021
显示硬件时间
[root@server1 ~]# hwclock
Sun 27 Jun 2021 10:16:07 PM EDT -0.575735 seconds
[root@server1 ~]# hwclock -s #以硬件时间矫正系统时间
[root@server1 ~]# date
Sun Jun 27 22:16:25 EDT 2021
[root@server1 ~]# hwclock -w #以系统时间矫正硬件时间
[root@server1 ~]# date
Sun Jun 27 22:17:35 EDT 2021
4、reboot
用于重启linux操作系统
[root@server1 ~]# reboot
5、poweroff
用于关闭linux操作系统
[root@server1 ~]# power
6、shutdown
用于安全关闭或者重新启动linux操作系统
关机
[root@server1 ~]# shutdown -h now #表示立即关闭计算机
[root@server1 ~]# shutdown -h 12:00 #在12:00的时候关闭计算机
[root@server1 ~]# shutdown -h +30 #表示在30分钟后闭计算机
重启
[root@server1 ~]# shutdown -r now #表示立即重启计算机
[root@server1 ~]# shutdown -r 12:00 #在12:00的时候重启计算机
[root@server1 ~]# shutdown -r +30 #表示在30分钟后重启计算机
7、wget
用于在终端中下载网络文件
[root@server1 ~]# wget https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war
HTTP request sent, awaiting response... 200 OK
[root@server1 ~]# wget https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war -P /tmp #下载到tmp目录下
[root@server1 ~]# wget -O test https://tomcat.apache.org/tomcat-7.0-doc/appdev/sample/sample.war #下载并且改名为test
8、ps
用于查看系统中的进程状态
常用参数
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
[root@server1 ~]# ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 190968 3896 ? Ss 21:25 0:01 /usr/lib/systemd/systemd --switched-root --system --deseria
root 2 0.0 0.0 0 0 ? S 21:25 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 21:25 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 21:25 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 21:25 0:00 [migration/0]
......
显示结果详细解释
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
进程的所有者 | 进程ID号 | 运算器占用率 | 内存占用率 | 虚拟内存使用量(单位是KB) | 占用的固定内存量(单位是KB) | 所在终端 | 进程状态 | 被启动的时间 | 实际使用CPU的时间 | 命令名称与参数 |
root | 1 | 0.0 | 0.4 | 53684 | 7628 | ? | Ss | 07 :22 | 0:02 | /usr/lib/systemd/systemd |
root | 2 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [kthreadd] |
roo | t 3 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [ksoftirqd/0] |
root | 5 | 0.0 | 0.0 | 0 | 0 | ? | S< | 07:22 | 0:00 | [kworker/0:0H] |
root | 7 | 0.0 | 0.0 | 0 | 0 | ? | S | 07:22 | 0:00 | [migration/0] |
进程状态有5种
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该 状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。
ps -ef命令和ps -aux基本相同
但是少了
%CPU(CPU资源占用率)
%MEM(内存资源占用率)
%VSZ(虚拟内存使用量(单位是KB))
%RSS(占用的固定内存量(单位是KB))
[root@server1 ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 21:25 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 0 0 21:25 ? 00:00:00 [kthreadd]
root 3 2 0 21:25 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 21:25 ? 00:00:00 [kworker/0:0H]
root 7 2 0 21:25 ? 00:00:00 [migration/0]
root 8 2 0 21:25 ? 00:00:00 [rcu_bh]
...
9、top
用于动态地监视进程活动与系统负载等信息
[root@server1 ~]# top
top - 22:54:38 up 1:29, 3 users, load average: 0.00, 0.01, 0.05
Tasks: 127 total, 1 running, 126 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.9 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3861512 total, 3378748 free, 145084 used, 337680 buff/cache
KiB Swap: 4063228 total, 4063228 free, 0 used. 3450320 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
10664 root 20 0 0 0 0 S 0.3 0.0 0:00.01 kworker/0:1
1 root 20 0 190968 3896 2568 S 0.0 0.1 0:01.43 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
top命令显示所代表含义
第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数。
第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等。
第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
10、pidof
用于查询某个指定服务进程的PID值
[root@server1 ~]# pidof httpd
10810 10809 10808 10807 10806 10802
[root@server1 ~]# pidof sshd
10434 10031 9212
11、kill
用于终止某个指定PID的服务进程
[root@server1 ~]# kill 9212
12、killall
用于终止某个指定名称的服务所对应的全部进程
[root@server1 tmp]# killall httpd
13、sl
用于娱乐跑火车
下载epel源
下载sl命令
[root@server1 ~]# vim /etc/yum.repos.d/CentOS-epel.repo
[epel]
name=epel
baseurl=https://repo.huaweicloud.com/epel/7/x86_64/
enabled=1
gpgcheck=0
[root@server1 ~]# yum -y install sl
[root@server1 ~]# sl
( )
(@@@@)
( )
(@@@)
==== ________ ___________
_D _| |_______/ \__I_I_____===__|_________|
|(_)--- | H\________/ | | =|___ ___| _________________
/ | | H | | | | ||_| |_|| _| \_____A
| | | H |__--------------------| [___] | =| |
| ________|___H__/__|_____/[][]~\_______| | -| |
|/ | |-----------I_____I [][] [] D |=======|____|________________________|_
__/ =| o |=-~~\ /~~\ /~~\ /~~\ ____Y___________|__|__________________________|_
|/-=|___|= || || || |_____/~\___/ |_D__D__D_| |_D__D__D_|
\_/ \_O=====O=====O=====O/ \_/ \_/ \_/ \_/ \_/
14、ifconfig
用于获取网卡配置与网络状态等信息
[root@server1 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.41 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::cafd:c84f:eefb:d1c9 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:a5:54:da txqueuelen 1000 (Ethernet)
RX packets 13960 bytes 10005789 (9.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 3980 bytes 559528 (546.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
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
15、uname
用于查看系统内核与系统版本等信息
[root@server1 ~]# uname -a
Linux server1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
16、uptime
用于查看系统的负载信息
[root@server1 ~]# uptime
02:55:53 up 5:30, 2 users, load average: 0.00, 0.01, 0.05
系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)。
17、free
用于显示当前系统中内存的使用量信息
[root@server1 ~]# free -h
total used free shared buff/cache available
Mem: 3.7G 138M 3.2G 11M 393M 3.3G
Swap: 3.9G 0B 3.9G
free命令结果输出信息各字段代表的意思
内存总量 | 已用量 | 可用量 | 进程共享的内存量 | 写缓存/读缓存 | 可用内存 | |
---|---|---|---|---|---|---|
total | used | free | shared | buff/cache | available | |
Mem: | 3.7G | 138M | 3.2G | 11M | 393M | 3.3G |
Swap: | 3.9G | 0B | 3.9G |
18、who
用于查看当前登入主机的用户终端信息
[root@server1 ~]# who
root tty1 2021-06-27 21:39
root pts/0 2021-06-28 03:10 (192.168.1.1)
root pts/1 2021-06-28 03:10 (192.168.1.1)
tty代表linux操作系统自身所使用的终端
pts代表用户使用远程连接工具所使用的终端
19、last
用于查看所有系统的登录记录
[root@server1 ~]# last
root pts/1 192.168.1.1 Mon Jun 28 03:10 still logged in
root pts/0 192.168.1.1 Mon Jun 28 03:10 still logged in
root pts/1 192.168.1.1 Sun Jun 27 22:26 - 03:10 (04:44)
...
20、history
用于显示历史执行过的命令
[root@server1 ~]# history
清除历史命令
[root@server1 ~]# history -c