Linux.命令Linux

Linux基础(一)

2021-06-27  本文已影响0人  jan29

一、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命令所查找的目录路径
-print 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
上一篇下一篇

猜你喜欢

热点阅读