文章目录
-
- [1、Linux 目录结构](#1、Linux 目录结构)
- 2、解释目录
- 3、命令详解
-
- 3.1、shutdown命令
- 3.1、文件目录管理命令
-
- [ls 命令](#ls 命令)
- [cd 命令](#cd 命令)
- [pwd 命令](#pwd 命令)
- [tree 命令](#tree 命令)
- [mkdir 命令](#mkdir 命令)
- [touch 命令](#touch 命令)
- [cat 命令](#cat 命令)
- [cp 命令](#cp 命令)
- [more 命令](#more 命令)
- [less 命令](#less 命令)
- [head 命令](#head 命令)
- [mv 命令](#mv 命令)
- [rm 命令](#rm 命令)
- [ln 命令](#ln 命令)
- [tail 命令](#tail 命令)
- cut命令
- 3.2、用户管理
-
- [useradd/userdel 命令](#useradd/userdel 命令)
- 用户的分类
- [passwd 命令](#passwd 命令)
- [su/sudo 命令](#su/sudo 命令)
- [man 命令](#man 命令)
- 3.3、用户管理权限管理
-
- [chmod 命令](#chmod 命令)
- chown命令
- chattr/lsattr命令
- [umask 命令](#umask 命令)
- 3.4、文件查找分析
-
- [find 命令](#find 命令)
- [file 命令](#file 命令)
- [xargs 命令](#xargs 命令)
- [md5sum 命令](#md5sum 命令)
- [stat 命令](#stat 命令)
- [wc 命令](#wc 命令)
- [dos2unix 命令](#dos2unix 命令)
- [diff 命令](#diff 命令)
- [paste 命令](#paste 命令)
- 3.5、整理与排序
-
- sort
- [uniq 命令](#uniq 命令)
- [vi/vim 命令](#vi/vim 命令)
- 3.6、压缩/解压缩
-
- [tar 命令](#tar 命令)
- [gzip 命令](#gzip 命令)
- [zip 命令](#zip 命令)
- [unzip 命令](#unzip 命令)
- 3.7、系统管理
-
- [dmesg 命令](#dmesg 命令)
- uptime命令
- [time 命令](#time 命令)
- [free 命令](#free 命令)
- [top 命令](#top 命令)
- [iotop 命令](#iotop 命令)
- [iostat 命令](#iostat 命令)
- [mpstat 命令](#mpstat 命令)
- [vmstat 命令](#vmstat 命令)
- [sar 命令](#sar 命令)
- [dstat 命令](#dstat 命令)
- [date 命令](#date 命令)
- [lsof 命令](#lsof 命令)
- 3.8、磁盘管理
-
- [fdisk 命令](#fdisk 命令)
- [du 命令](#du 命令)
- [df 命令](#df 命令)
- [mount 命令](#mount 命令)
- [mkfs 命令](#mkfs 命令)
- [fsck 命令](#fsck 命令)
- 3.9、主机管理
-
- [ssh 命令](#ssh 命令)
- [telnet 命令](#telnet 命令)
- [host 命令](#host 命令)
- 3.10、传输下载
-
- [wget 命令](#wget 命令)
- [rpm 命令](#rpm 命令)
- [yum 命令](#yum 命令)
- [curl 命令](#curl 命令)
- scp命令
- [DNF 命令](#DNF 命令)
- 3.11、网络管理
-
- [ifconfig 命令](#ifconfig 命令)
- [ping 命令](#ping 命令)
- [route 命令](#route 命令)
- [netstat 命令](#netstat 命令)
- [ss 命令](#ss 命令)
- [nmap 命令](#nmap 命令)
- [dig 命令](#dig 命令)
- [nslookup 命令](#nslookup 命令)
- [traceroute 命令](#traceroute 命令)
- [tcpdump 命令](#tcpdump 命令)
- [nc 命令](#nc 命令)
- [ntpdate 命令](#ntpdate 命令)
- [iptraf 命令](#iptraf 命令)
- [ifstat 命令](#ifstat 命令)
- 3.12、高阶命令
-
- [atop 命令](#atop 命令)
- [ioping 命令](#ioping 命令)
- [fping 命令](#fping 命令)
- pidstat
- [accton 命令](#accton 命令)
- 4、CentOS常用运维命令
-
- [4.1、执行指令# free -m查看剩余内存](# free -m查看剩余内存)
- [4.2、执行指令# lscpu查看CPU等硬件信息](# lscpu查看CPU等硬件信息)
- [4.3、执行指令# uname -a查看系统信息](# uname -a查看系统信息)
- [4.4、执行指令# dmidecode查看全面硬件信息](# dmidecode查看全面硬件信息)
- 4.5、其他日常运维命令
给大家整理了日常工作中常用的 Linux 系统命令,仅供大家参考。
1、Linux 目录结构
安装完操作系统,通过远程管理工具连接进入系统后,首先了解一下Linux系统的目录结构与其作用。
登录系统后,在当前命令窗口下输入命令:
bash
ls /
你会看到如下图所示:
树状目录结构:
2、解释目录
以下是对这些目录的解释:
-
/bin:
bin是Binary的缩写, 这个目录存放着最经常使用的命令。
-
/boot:
这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
-
/dev :
dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
-
/etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录。
-
/home:
用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
-
/lib:
这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
-
/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
-
/media linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
-
/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
-
/opt:
这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
-
/proc:
这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
bash
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
-
/root :
该目录为系统管理员,也称作超级权限者的用户主目录。
-
/sbin:
s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
-
/selinux:
这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
-
/srv:
该目录存放一些服务启动之后需要提取的数据。
-
/sys:
这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
-
/tmp:
这个目录是用来存放一些临时文件的。
-
/usr:
这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
-
/usr/bin:
系统用户使用的应用程序。
-
/usr/sbin
超级用户使用的比较高级的管理程序和系统守护程序。
-
/usr/src:内核源代码默认的放置目录。
-
/var:
这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
在linux系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
-
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。
-
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
-
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的普通用户),而/sbin, /usr/sbin 则是给root使用的指令。
-
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。
3、命令详解
3.1、shutdown命令
shutdown 命令可以用执行系统关机或系统重启,shutdown可以关闭系统的所有应用程序,并按用户的指定要求,进行系统关闭或重启的动作执行。此命令需要具备系统管理员权限才能使用。
命令格式
bash
shutdown [选项] [其它信息]
3.1、文件目录管理命令
ls 命令
ls(list),ls命令显示指定目录下的内容,列出指定目录下所含的文件及子目录。此命令与Windows系统中dir命令功能相似。
ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。语法格式:
bash
ls(选项)(参数)
cd 命令
cd(Change Directory),用来切换工作目录至指定的目录。
指定的目录可以是绝对路径或相对路径。若指定目录名称省略,则直接切换至当前用户的home directory(也就是刚login时所在的目录)。另外,~ 也表示为 home directory 的意思,. 则是表示目前所在的目录,... 则表示目前目录位置的上一层目录。命令格式:
bash
cd [-L|-P] [DIR]
pwd 命令
pwd (print working directory)显示用户当前工作目录的绝对路径。
pwd 命令将当前用户的工作目录的全路径名称(从根目录)以绝对路径的方式标准输出在屏幕上。语法格式:
bash
pwd [OPTION]...
tree 命令
tree 命令的作用是以树形结构显示目录下的内容。常用的Linux发行版系统中默认没有这个命令,你需要通过安装才可以使用:
bash
#Centos
yum install tree -y
#Ubuntu
sudo apt-get install tree
安装完成之后就可以正常使用这个tree命令了。
语法格式
bash
tree [选项] [目录]
mkdir 命令
mkdir 命令用于创建新目录。创建目录时,如果目录名前没有指定路径,那么就直接在当前工作目录下创建新的目录。如指定了路径,那么就会在这个指定的目录下创建一个新目录。
创建目录是需要注意,你所创建的目录名与当前目录下的文件名没有重名,如果有重名,系统会出现如下的提示,无法创建成功。
bash
[root@centos7 test]# ls -ltotal 0-rw-r--r-- 1 root root 0 Jan 2 07:06 test[root@centos7 test]# mkdir testmkdir: cannot create directory 'test': File exists
命令语法
bash
mkdir [选项] [目录名]mkdir [option] [directory]
touch 命令
touch 命令用来创建新的空文件。touch命令也可以用来修改文件时间戳。如果该文件不存在,则创建具有该名称的空文件。
与文件关联的时间戳
bash
Access time
#上次读取文件的时间,简称atime
Modification time
#最后一次修改文件的内容,简称mtime
Change time
#上次更改文件的元数据(称为"状态")。状态信息包括文件的权限及其时间戳。每当文件发生任何事件时,其状态的至少一个元素都会更改,并且其ctime将设置为当前系统时间。简称ctime
atime和mtime是文件状态元数据的一部分。因此,当更改文件的atime(-a)或mtime(-m)时,其ctime会自动设置为当前时间。无法手动设置 ctime。
命令语法
bash
touch [选项] [文件名]touch [option] [filename]
cat 命令
cat命令用来连接文件内容并打印输出到标准设备上,所以,它常常被用来查看显示文件的内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
cat命令三大功能:
1、显示一个文件的全部内容,cat file_name
2、创建一个文件,cat > file_name
3、合并文件,将几个文件合并到一个文件,cat file1 file2 > file
语法格式
bash
cat [选项] [文件]cat [OPTION] FILE
cp 命令
cp命令用来复制文件或目录。
cp命令用来将一个或多个文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
所以,cp命令还具备重命名的功能。
语法格式
bash
cp [选项] [源文件或目录] [目标文件或目录]
cp [option] source destination
cp [option] source directory
注:cp命令默认情况下是不能直接复制目录,需要与-R选项配合使用。
more 命令
more 分页显示文件内容。以全屏的方式来显示文件的内容,每次显示一页,可按键向下翻页。more 命令中自带了很多快捷键,H(获得帮助信息),Enter(向下翻一行),空格(向下滚一屏),Q(退出)。当你打开一个文件时,可以使用下面的快捷键进行相关的操作:
bash
Space(空格)键 #向下翻动一页
Enter(回车)键 #显示文本的下一行
| #输入一个模式,可以在当前文本内容查找一个相匹配的模式
H 键 #显示帮助信息
B 键 #向上翻一页
Q 键 #退出
命令格式
bash
more [选项] [文件名]more [option] [file ...]
less 命令
less 命令分页上下翻页浏览文件内容。
less 命令与 more 命令相似,都可以用来查看文件内容,不同的是 less 命令可以向前或向后查看文件,而 more 命令只能向前查看。用 less 命令显示文件时,按 PageUp 键向上翻页,按PageDown 键向下翻页,按 Q 键退出查看。
命令格式
bash
less [选项] [文件名]less [option] [file ...]
head 命令
head 命令显示文件内容的头部。在系统默认情况下,head 命令只显示文件的头10 行内容。命令格式:
bash
head [选项] [文件名]head [OPTION] [FILE]
mv 命令
mv 命令用于移动并重命名文件和目录。或者将文件从一个目录移动到另一个目录中,如果将一个文件移动到一个已经存在的目标文件中,这时目标文件的内容会被此文件内容覆盖。
如果源为文件,而目标为目录,mv 将进行文件的位置移动。如果源为目录,则目标只能是目录(不能为文件),mv 将进行目录的重命令名。
mv 命令移动文件时,在目标不同的情况下,会有下面4种不同的结果:
- 如果目标是指定的某一个具体路径,则源文件会被移动到此目录下,且文件名不变。
- 如果目标不是目录,则源文件名(只能有一个)会变为此目标文件名,如果存在同名文件,则会覆盖己存在的同名文件。
- 如果源文件和目标文件在同一个目录下,mv 的作用就是修改文件名。
- 当目标是目录时,源文件或目录可以是多个,这时所有的源文件都会被移至目标目录下。且所有的文件都将保留以前的文件名。
bash
mv [选项] 源文件或目录 目标文件或目录mv [options] source destination
rm 命令
rm 命令用来删除指定的文件或目录,此命令是一个危险的命令,操作前一定要再三确认是否正确,然后再执行操作步骤。
默认情况,它是不能直接删除目录的,需要配合选项来删除。当使用 -r 或 -R 选项来执行 rm 时,它会递归删除任何匹配到的目录,且它们的子目录以及子目录下包含的所有文件。
如需要针对文件扩展名字符匹配来删除多个文件时,rm 命令需要使用 -i 选项来配合完成。使用这个选项时,系统会逐一提示你是否要删除文件,当你输入y并按Enter键,文件就会被删除,反之,则文件不会被删除。
语法格式
bash
rm [选项] 文件或目录mv [options] FILE DIRECTORY
ln 命令
ln 命令用于创建(软/硬)链接文件。在linux系统中,有两种链接类型:硬链接与软件,默认创建的就是硬链接,创建软链接需要-s选项来配合完成。
- 硬链接文件是指通过索引节点来进行链接,在Linux系统中多个文件同时指向同一个索引节点,这种情况下的文件被称为硬链接文件。
- 软链接文件也称做符号链接(同Windows系统中快捷方式)。实际上它是一个文本文件,文本文件里存储着指向源文件链接的位置信息。
命令格式
bash
ln [选项] [链接文件名]ln [OPTION] [LINKNAME]
tail 命令
tail 显示文件内容的尾部,默认也是显示指定文件的末尾10行。tail 命令还可以查看文件实时写入的数据,例如,我们常用它来查看应用运行的日志文件,可以动态实时显示应用运行所产生的日志,便于排错或查看应用运行是否正常。
命令格式
bash
tail [选项] [链接文件名]tail [OPTION] [LINKNAME]
cut命令
cut 将文件中行中内容按指定分隔符分割并输出。cut命令还可以用于删除文件中指定行或段,然后打印输出更改后的内容。还可能用以拼接文件内容到一个新的文件中,功能和cat类似。
命令格式
bash
cut [选项] [链接文件名]cut [OPTION] [LINKNAME]
3.2、用户管理
useradd/userdel 命令
useradd/userdel 创建新用户/删除用户,需要管理员权限操作。
在创建用户时,如果不配置密码,用户的默认密码是不可用的,所以,useradd命令一般与passwd命令配合使用,下节我们将介绍这个命令。语法格式:
bash
useradd 选项 用户名
userdel 选项 用户名
用户的分类
- 超级用户:root,拥有对系统的最高管理权限,UID默认为0。
- 虚拟用户:又叫系统用户或伪用户,具有一定特权,与系统或程序服务相关,但没有真正的使用者。一般不会用来登录系统,它主要用于维持某个访问的正常运行,如ftp,apache等。
- 普通用户:是一种受限制的用户,一般新建的用户都是普通用户。默认只能执行/bin、/usr/bin、/usr/local/bin以及自身主目录里的命令。
注意:UID即每个用户的身份标识,虽然可以修改/etc/passwd(命令设置的UID不允许重复),但尽量保持唯一性,类似于每个人的身份证号码。
passwd 命令
passwd创建或修改用户的密码,passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
普通用户在更改自己的密码之前,必须先输入当前密码进行验证(超级用户无需此步骤)。设置密码时需要符合系统对密码复杂性的要求。一般准则,密码应至少包含6个字符,包括以下每个字符中的一个或多个:
- 小写字母
- 数字0到9
- 标点符号
- 语法格式
bash
passwd [选项] [username]
su/sudo 命令
su 命令用于切换当前用户身份到其他用户身份。sudo 命令用于切换用户执行权限,这个命令可使其它非 root 用户具有 root 权限。默认情况下,sudo 要求用户使用密码进行身份验证,这是用户密码,不是 root 密码。
语法格式
bash
su [ options ] [ username ]sudo [ options ] [ command ]
man 命令
man 命令用于查看、显示 Linux 中命令的帮助信息,显示的帮助信息,可上下滚动,搜索特定文本的出现以及其他有用的功能。
man 命令是 Linux 系统下的帮助命令,通过 man 命令可以查看 Linux 系统中的命令帮助、配置文件帮助和编程帮助等信息,并且格式化显示出来所有的信息。
命令语法
bash
man [选项] [命令]
3.3、用户管理权限管理
chmod 命令
chmod 命令用来变更文件或目录的权限。
文件或目录权限有读取、写入、执行这3种,另外还有3种特殊权限。用户可以使用chmod去设置文件与目录的权限,设置方式采用文字或数字皆可。链接文件的权限无法直接变更,如果用户需要对链接文件修改权限,其真实作用是作用在原始文件上。
语法格式
bash
chmod [选项] [权限] [文件或目录]chmod [OPTION] [MODE] FILEchmod [OPTION] [MODE] DIRECETORY
chown命令
chown命令用来变更文件或目录的拥有者或所属群组,通过chown改变文件的拥有者和群组。用户可以是用户名或者用户ID;组可以是组名或者组ID;文件是以空格分开的文件列表,文件名也支持通配符。
系统管理员经常使用chown命令,去改变一个文件或目录的所属。普通用户是不能将自己所属文件或目录变成其它的拥有者。
语法格式
bash
chown [选项] [用户或组] [文件或目录]
- 用户:组:指定所有者和所属工作组。当省略":组",仅改变文件所有者;
- 文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。
Linux/Unix 文件目录所属分为三级 : 拥有者、群组、其他。
- root:系统特权用户类,既 UID = 0 的用户
- owner:所有者
- group:所属组
- other:其它人,不属于上面3类的所有其他用户
chattr/lsattr命令
chattr 用来改变文件(扩展)属性。通常我们叫这个属性为特殊属性。lsattr 查看文件扩展属性。这种特殊属性有以下8种模式:
bash
a #限定文件具有某种功能。这个对于日志文件非常有作用,比如,不允许删除,只允许向里面追加内容。
b #不更新或修改文件或目录的最后存储时间
c #将文件或目录压缩后存储
d #将文件或目录排除在倾倒操作之外
i #锁定文件或目录,不被更改
s #秘密删除文件或目录
S #动态实时更新文件或目录
u #防止文件或目录被意外删除
如果文件或目录被配置了上述8种之一的扩展属性,通过lsattr命令可以查看到:
bash
[root@centos7 testdir]# lsattr
----i----------- ./dir
#结果说明这个目录被配置扩展属性
bash
[root@centos7 testdir]# chattr -i dir
[root@centos7 testdir]# lsattr
---------------- ./dir
语法格式
bash
chattr [选项] mode file
lsattr [选项] file
umask 命令
umask 命令用于显示或设置权限掩码。系统默认的权限掩码是0022。
bash
[root@centos7 ~]# umask0022
所以,系统默认创建目录与文件的权限如下
bash
目录权限=0777-0022=0755(rwxr-xr-x)文件权限=0666-0022=0644(rwr--r--)
bash
[root@centos7 ~]# touch A
[root@centos7 ~]# mkdir B
[root@centos7 ~]# ls -l A
-rw-r--r-- 1 root root 0 Mar 24 21:13 A
[root@centos7 ~]# ls -ld B
drwxr-xr-x 2 root root 6 Mar 24 21:14 B
语法格式
bash
umask [OPTIONS]
3.4、文件查找分析
find 命令
find 命令在文件系统中搜索文件和目录。find 命令用来在指定目录下查找文件,在参数之前的任何字符串都会当作是目录名。使用 find 命令时,如何不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部显示出来。
find 还是一个功能非常强大的用于处理 Linux 系统上文件的工具,它可以单独查找文件,也可以与其他程序(命令)结合对需要处理的文件进行操作。Linux文件类型:
bash
f #普通文件
l #符号连接
d #目录
c #字符设备
b #块设备
s #套接字
p #Fifo
UNIX/Linux文件系统中的每个文件都有三种时间戳:
- 访问时间 (-atime/天,-amin/分钟):用户最近一次访问时间。
- 修改时间 (-mtime/天,-mmin/分钟):文件最后一次被修改的时间。
- 变化时间 (-ctime/天,-cmin/分钟):文件元数据(例如权限等)
语法格式
bash
find [目录路径] [选项] [文件名]find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
file 命令
file 命令用于查看指定文件的类型。在Linux系统中,一切皆文件。Linux系统中的文件类型在前面描述过了。文件的属性信息在之前的文章: 每天学一个 Linux 命令(17):chmod 中有介绍,文件类型信息一般都是位于文件权限信息之首的位置。
bash
[root@centos7 testdir]# ll
total 0
lrwxrwxrwx 1 root root 11 Jan 15 22:50 cp -> /usr/bin/cp
drwxr-xr-x 2 root root 62 Jan 2 09:15 dir
-rw-r--r-- 1 root root 0 Jan 2 09:03 test2.txt
-rw-r--r-- 1 root root 0 Jan 2 08:57 test2.txt~
语法格式
bash
file [选项] [文件名或目录名]
xargs 命令
xargs可以将stdin中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。简单来说,xargs的作用是给其他命令传递参数,是构建单行命令的重要组件之一。
之所以要用到 xargs,是因为很多命令不支持使用管道|来传递参数,例如:
bash
find /sbin -perm +700 | ls -l
# 这个命令是错误,因为标准输入不能作为ls的参数
find /sbin -perm +700 | xargs ls -l
# 这样才是正确的
#命令格式
xargs [OPTIONS] [COMMAND]
md5sum 命令
md5sum 用于计算和校验文件的MD5值。md5sum 常常被用来验证网络文件传输的完整性,防止文件被人篡改。在日常工作当中,我们可以用来监控系统中的重要文件是否被篡改。还可以使用使用 md5sum 生成文件或用户的密码。
语法格式
bash
md5sum [选项] [文件]
stat 命令
stat 命令用于显示文件或文件系统的状态。
命令语法
bash
stat [OPTION]... FILE...
文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。更多详细的可参考:每天学一个 Linux 命令(45):stat
wc 命令
wc 命令用来统计文件中的行数、单词数或字节数,然后将结果输出在终端上。我们可以使用 wc 命令来计算文件的Byte数、字数或是列数。
语法格式
bash
wc [选项] [文件]wc [OPTION] [FILE]
dos2unix 命令
dos2unix 命令用于将纯文本文件从 DOS 或 Mac 格式转换为 Unix。DOS 下的文本文件是以 \r\n 作为换行符,而 Unix 下的文本文件是以\n作为换行符。默认系统是没有安装这个命令,需要用户自行安装:
bash
[root@centos7 ~]# dos2unix test.txt
-bash: dos2unix: command not found
#CentOS/RHEL 安装
[root@centos7 ~]# yum install -y dos2unix
#Debian/Ubuntu 安装
[root@centos7 ~]# apt-get install dos2unix
语法格式
bash
dos2unix [选项] [文件]dos2unix [OPTION] [FILE]
diff 命令
diff 命令用于查找、分析两个文件中不同的行,并打印输出在屏幕上。
diff 命令是以逐行的方式,比较文本文件的不同之处。如果是对指定的目录进行比较,就是比较该指定目录下的同名文件,不会对该目录的子目录下的文件进行比较操作。diff 命令最基础的用途就是用来比较指定的两个文件的不同。
语法格式
bash
diff [选项] [文件]diff [OPTION] [FILE]
paste 命令
paste 命令用于并排显示多个文件的相应行,将多个文件按列合并。
语法格式
bash
paste [选项] [文件]paste [OPTION] [FILE]
3.5、整理与排序
sort
sort 对文件的文本内容排序。系统默认情况下,排序规则如下:
- 以数字开头的行,将排在以字母开头的行前面
- 以小写字母开头的行,将排在以大写字母开头的行前面
- 按字母表的顺序排列以字母开头的行
语法格式
bash
sort [选项] [文件]sort [OPTION] [FILE]
uniq 命令
uniq 命令用于去除文件中重复行,一般与 sort 命令结合使用。语法格式:
bash
uniq [选项] [标准输入 [输出]]uniq [OPTION] [INPUT [OUTPUT]]
bash
输入文件 #指定要去除的重复行文件。如果不指定该项,则从标准读入
输出文件 #指定要去除重复行后的内容要写入的输出文件。如果不指定此项,则将内容显示到标准输出设备(显示终端
vi/vim 命令
vi/vim 命令是功能强大的纯文本编辑器。vim 是 vi 的加强版,比vi更容易使用。vim编辑器是Unix系统和Linux系统中最标准的编辑器,功能非常强大。它可以执行查找、删除、替换、输出多种文本操作方式。因此,学习vim编辑器也是学习Linux系统过程中比较重要的一个基础部分。
vim编辑器有三种模式,分别如下:
bash
#命令模式
此种模式下,可能通过移动光标,对字符或行进行删除操作。
#插入模式
在命令模式下,按键盘上字母"i"键即可进行插入模式,只有在此模式下才可以进行文字、字符的输入操作,按"ESC"键退出插入模式(返回命令模式)。
#底行模式
对文件保存或退出,以及设置编辑环境。
语法格式
bash
vi/vim [选项] [文件]vi/vim [OPTION] [FILE]
3.6、压缩/解压缩
tar 命令
tar 命令用于打包、压缩与解压压缩包文件。tar 命令常常用于打包、压缩某些文件或目录,也可以添加新文件到归档文件中。Tar 代表的是磁带存档,是一种归档的文件格式,早期用于将文件归档到磁带备份存储。现可以用于收集、分发、归档文件,还可以保留文件原有的属性,如:用户和组权限,访问和修改日期以及目录结构。
语法格式
bash
tar [OPTIONS] [FILE]
gzip 命令
gzip 命令用来压缩文件,gzip,gunzip命令用于压缩或扩展 GNU GZIP 格式的文件。如果压缩文件名对其文件系统而言太长,则gzip会将其截断。默认情况下,gzip 会将原始文件名和时间戳等信息保留在新产生的压缩文件中。
语法格式
bash
gzip [ OPTIONS ] [ name ]gunzip [ OPTIONS ] [ name ]
zip 命令
zip 命令可以用来压缩、打包文件。
bash
#Debian/Ubuntu安装
apt-get install zip
#CentOS安装
[root@centos7 testdir]# zip
-bash: zip: command not found
[root@centos7 testdir]# yum install zip -y
zip 命令也可以用来解压缩文件,zip也是一个常用的压缩、解压应用程序,文件经它压缩后会产生一个新以.zip为扩展名的压缩包文件。
语法格式
bash
zip [ OPTIONS ] [ NAME ..]
unzip 命令
unzip 命令用于解压由zip命令压缩的压缩包文件。
bash
#Debian/Ubuntu安装
apt-get install unzip
#CentOS安装
[root@centos7 ~]# unzip
-bash: unzip: command not found
[root@centos7 ~]# yum install unzip -y
语法格式
bash
unzip [ OPTIONS ] file[.zip] [file(s) ...]
3.7、系统管理
dmesg 命令
dmesg 命令用于显示系统开机信息,可用于诊断系统故障。内核会将系统开机信息存储在ring buffer中,可以使用dmesg命令来查看,开机信息保存在/var/log/dmesg文件中。
命令语法
bash
dmesg [options]
uptime命令
uptime命令用于显示系统运行时间及负载。uptime 命令可以打印出系统总共运行了多长时间和系统的平均负载。uptime 命令显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载。
bash
[root@centos7 ~]# uptime
19:48:14 up 21:02, 1 user, load average: 0.00, 0.01, 0.05
命令语法
bash
uptime [options]
time 命令
time 命令用于计算命令执行时间(相当于统计总时间)。time 命令使用指定参数运行指定的程序命令, 命令完成后,时间将消息写入标准错误,提供有关此程序运行的计时统计信息。这些统计信息包括:
- 调用和终止之间经过的实时时间
- 用户CPU时间
- 系统CPU时间
语法格式
bash
time [-p] command [arguments...]
free 命令
free 命令用于显示内存的使用情况,显示可用和已用物理内存和交换内存的总数,以及内核使用的缓冲区。
语法格式
bash
free [options]
top 命令
top 命令用于实时显示系统资源使用情况。它可以显示系统摘要信息,以及内核当前正在管理的进程或线程的列表。
top 命令可以实时动态地查看系统的整体运行情况,是一个非常实用的系统性能和运行信息的监测工具。通过 top 命令所提供的互动式界面,用热键可以管理。
语法格式
bash
top [options]
iotop 命令
iotop 命令用来查看磁盘 I/O 使用状况的工具。iotop 具有与 top 相似的 UI界面,其展示的包括 PID、用户、I/O、进程等相关信息。
bash
[root@centos7 ~]# iotop
-bash: iotop: command not found
[root@centos7 ~]# yum install iotop -y
语法格式
bash
iotop [OPTIONS]
iostat 命令
iostat 命令用于统计系统IO状态信息。
语法格式
bash
iostat [options]
mpstat 命令
mpstat(Multi-Processor Statistics) 命令用于显示各个可用CPU的状态统计。是一个实时监控工具,与vmstat类似,但只能监控CPU的整体性能状态。
bash
[root@centos7 ~]# mpstat
-bash: mpstat: command not found
[root@centos7 ~]# yum install sysstat -y
语法格式
bash
mpstat [ options ]
vmstat 命令
vmstat 命令用于虚拟内存统计。vmstat 报告有关进程,内存,分页,块IO,陷阱,磁盘和CPU活动的信息。
语法格式
bash
vmstat [options] [delay [count]]
sar 命令
sar 命令用于全面地获取系统的CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU中断和网络等性能数据。
语法格式
bash
sar -[ options ] time_interval number_of_tines_to_display
dstat 命令
dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,通用的系统资源统计工具,是一个全能系统信息统计工具。
bash
[root@centos7 ~]# dstat
-bash: dstat: command not found
[root@centos7 ~]# yum install dstat -y
dstat特点
- 结合了vmstat,iostat,ifstat,netstat以及更多的信息
- 实时显示统计情况
- 在分析和排障时可以通过启用监控项并排序
- 模块化设计
- 使用python编写的,更方便扩展现有的工作任务
- 容易扩展和添加你的计数器(请为此做出贡献)
- 包含的许多扩展插件充分说明了增加新的监控项目是很方便的
- 可以分组统计块设备/网络设备,并给出总数
- 可以显示每台设备的当前状态
- 极准确的时间精度,即便是系统负荷较高也不会延迟显示
- 显示准确地单位和和限制转换误差范围
- 用不同的颜色显示不同的单位
- 显示中间结果延时小于1秒
- 支持输出CSV格式报表,并能导入到Gnumeric和Excel以生成图形
语法格式
bash
dstat [-afv] [options..] [delay [count]]
date 命令
date 命令用于显示与设置系统时间。
语法格式
bash
date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
lsof 命令
lsof 命令用于显示 Linux 系统当前已打开的所有文件列表。查看进程或系统打开的文件会给调试带来极大的帮助。lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口(TCP、UDP),还可以用于找回/恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,所以需要具备 root 超级管理员权限的用户才能执行此命令。
语法格式
bash
lsof [Options]
3.8、磁盘管理
fdisk 命令
fdisk 命令用于查看磁盘使用情况和磁盘分区,它可用于创建,删除和修改磁盘分区。
语法格式
bash
disk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
与它相同功能的命令还有parted,这个命令算是对fdisk命令的一个补充,因为如果磁盘大小大于2TB就无法使用fdisk命令进行分区操作了。语法格式:
bash
parted [options] [device [command [options...]...]]
du 命令
du 命令用于显示每个文件和目录使用磁盘空间大小,du 会显示指定的目录或文件所占用的磁盘空间大小。还可以利用 du 命令,可以快速的查找 Linux 下的大目录。
命令语法
bash
du [OPTION]... [FILE]...
df 命令
df 命令用于显示磁盘的相关信息。df(Disk Free)的首字母组合,用来显示文件系统磁盘空间的使用情况。默认显示单位为KB。可以使用 df 命令来查看硬盘被占用了多少空间,目前还剩下多少空间。
命令语法
bash
df [OPTION]... [FILE]...
mount 命令
mount 命令用于挂载设备或文件系统。
语法格式
bash
mount [option] device|dir
mkfs 命令
mkfs 命令用于格式化创建 Linux 文件系统。通常用于在设备(通常是硬盘分区)上构建 Linux 文件系统。
语法格式
bash
mkfs [options] [-t type fs-options] device [size]
fsck 命令
fsck 命令用于检查并修复 Linux 文件系统。
fsck 用于对"文件系统一致性检查"。在大多数系统上,如果检测到某些情况,fsck 将在引导时运行。通常,这些条件是:
-
文件系统被标记为"dirty" ----其写入状态与计划写入的数据不一致
-
文件系统已挂载了一定次数而未检查
无论文件系统类型如何,fsck通常具有三种操作模式:
-
检查错误,并交互提示用户决定如何解决单个问题
-
检查错误,并尝试自动修复任何错误
-
检查错误,不尝试修复它们,而是在标准输出上显示错误
语法格式
bash
fsck [-lsAVRTMNP] [-C [fd]] [-t fstype] [filesys...]
[--] [fs-specific-options]
3.9、主机管理
ssh 命令
ssh ( Secure Shell )命令是用于安全登录到远程系统的协议,它可用于在远程服务器上记录或执行命令。ssh(SSH 客户端)是用于登录到远程计算机并在远程计算机上执行命令的程序。可以在不安全的网络中于两个不受信任的主机之间提供安全的加密通信。
语法格式
bash
ssh [OPTIONS] [-p PORT] [USER@]HOSTNAME [COMMAND]
telnet 命令
telnet 命令用于使用 TELNET 协议与另一个主机进行交互通信。可以对另一主机进行远程登录、管理操作,同样也可以通过 telnet 来确认远程主机的某个端口是否开放?也是日常主机间网络故障排错的重要一部分。
语法格式
bash
telnet [OPTIONS] [host [port]
[host]远程主机 #指定要登录进行管理的远程主机;
[port]端口 #指定TELNET协议使用的端口号。
host 命令
host 命令是常用的分析域名查询工具,是一个 DNS 查找实用程序,用于查找域名的 IP 地址。 它还执行反向查找,查找与 IP 地址关联的域名。host 命令可以用于执行 DNS 查找,将域名转换为 IP 地址,反之亦然。
bash
[root@centos7 ~]# host
-bash: host: command not found
[root@centos7 ~]# yum install -y bind-utils -y
语法格式
bash
host [OPTIONS] {name} [server]#主机(server):指定要查询信息的主机信息。
3.10、传输下载
wget 命令
wget 命令是 Linux 系统一个免费实用的文件下载工具,支持 HTTP、HTTPS,或者 FTP。
wget 下载它是非交互式的,可以在后台运行,这就表明你可以事先登录到系统,启动一个下载的动作,然后退出系统让wget自动在后台将这个动作执行完成(下载完成)。wget 非常稳定,它在带宽不足或网络不稳定的情况下,如果产生下载失败,那么 wget 会不断的尝试下载动作,直至整个下载过程完成。
语法格式
bash
wget [option]... [URL]...
rpm 命令
rpm(RPM Package Manager)是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包。
语法格式
bash
rpm [OPTION...]
yum 命令
yum 命令是基于 RPM 的软件包管理器。yum 可以自动执行系统更新,包括依赖关系分析和基于"存储库"元数据的过时处理。它还可以执行新软件包的安装,旧软件包的删除以及对已安装或可用软件包以及其他命令/服务的查询。yum 命令类似于 apt-get 和 smart 等其他高级软件包管理器。
语法格式
bash
yum [options] [command] [package ...]
curl 命令
curl 命令使用 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP或FILE支持的协议之一,将数据传输到网络服务器或从网络服务器传输数据。它非常适合在 Shell 脚本中使用。
curl 命令提供代理支持,用户身份验证,FTP 上传,HTTP 发布,SSL 连接,cookie,文件传输恢复,metalink 和其他功能。
语法格式
bash
curl [options] [URL...]
scp命令
scp 全拼secure copy,用于不同主机之间复制文件。scp命令常用于在Linux系统下两个不同主机之间传输文件,其功能与cp命令相似,但是不同是,cp命令只能用于在本机环境下传输或复制拷贝文件,scp命令可以跨越不同主机,而scp传输文件是加密的。
scp 它使用ssh进行数据传输,并使用与ssh相同的身份验证并提供相同的安全性,scp 会要求输入密码或其它方式以进行身份验证。
语法格式
bash
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] [[user@]host1:]file1 ... [[user@]host2:]file2
- 源文件:需要复制的文件
- 目标文件:格式为 user@host:filename(文件名为目标文件的名称)
DNF 命令
DNF (Dandified Yum) 是新一代的RPM软件包管理器。
DNF 包管理器克服了 YUM 包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF 使用 RPM, libsolv 和 hawkey 库进行包管理操作,Fedora22 已经默认使用 DNF。
bash
[root@centos7 ~]# dnf
-bash: dnf: command not found
#CentOS 安装
#安装 epel-release 依赖:
[root@centos7 ~]# yum install epel-release
#安装 DNF 包:
[root@centos7 ~]# yum install dnf
配置文件所在目录 :/etc/dnf/dnf.conf
为什么要舍弃 Yum 而用 DNF?
有三个主要原因:
- Yum 没有 API 文档。这意味着开发者需要做更多的工作。Yum 开发者写一个调用函数都需要查看 Yum 的代码库,使开发变得缓慢。
- Fedora 将会过渡到 Python3,但 Yum 却没有这个能力,而 DNF 既可以使用 Python2,也可以在 Python3 环境下运行。
- 依赖解决能力长期是 Fedora 软件包管理的阿喀硫斯之踵。DNF 使用基于 SAT 的依赖问题解决方法,与 SUSE 和 OpenSUSE 的 Zypper 类似。
语法格式
bash
dnf [options] [command] [package ...]
3.11、网络管理
ifconfig 命令
ifconfig 命令用于查看、配置、启用或禁用网络接口和显示 Linux 系统网卡的网络参数。
语法格式
bash
ifconfig [-v] [-a] [-s] [interface]ifconfig [-v] interface [aftype] options | address ...
ping 命令
ping 命令用于测试主机之间网络的连通性。ping 是一种向网络上的另一台计算机发送网络数据并从其接收网络数据的简单方法。它通常用于测试与另一个系统是否可以通过网络访问,如果可以,则需要花费多少时间来交换该数据。
语法格式
bash
ping [options] destinationping -6 [options] destination
route 命令
route 命令用于显示和设置linux系统的路由表(静态路由表)。route 命令用来显示并设置 Linux 内核中的网络路由表,route 命令设置的路由主要是静态路由。在 Linux、BSD 和其他类似 Unix 的系统上,route 命令用于查看和更改内核路由表。在不同的系统上,命令语法不同。
语法格式
bash
route [-CFvnee]
route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw]
[metric N] i [mss M] [window W] [irtt m] [reject] [mod] [dyn]
[reinstate] [[dev] If]
route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm]
[metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
netstat 命令
netstat(network statistics) 是一个命令行工具,它用来显示网络连接(传入和传出),路由表和许多网络接口(网络接口控制器或软件定义的网络接口)和网络协议统计信息。也可用于查找网络中的问题,打印 Linux 中网络系统的状态信息,查看整个 Linux 系统的网络情况。
语法格式
bash
netstat { xxx } [ OPTIONS ]
ss 命令
ss 命令用于查看网络状态。ss 命令可以用来获取 socket 统计信息,它显示的信息和 netstat 命令显示的信息类似,但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
语法格式
bash
ss [OPTIONS]ss [ OPTIONS ] [ FILTER ]
nmap 命令
nmap(Network Mapper - 网络映射器)命令用于网络探测和安全审核,是网络探索工具和端口扫描程序。namp 它可以扫描单主机,也可以快速扫描大型网络结构。
语法格式
bash
nmap [Scan Type...] [Options] {target specification}
dig 命令
dig 命令用于执行网络 DNS 查找。dig 是一个用于查询 DNS 名称服务器的灵活工具。它执行DNS查找并显示从查询的名称服务器返回的答案。可使用 dig 来解决 DNS 问题,它具有灵活性,易用性和输出清晰度。相比其它工具功能更多、更强大。
语法格式
bash
dig [@server] [-b address] [-c class] [-f filename] [-k filename]
[-m] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:ke
nslookup 命令
nslookup(name server lookup)命令用于查询域名 DNS 信息的工具。nslookup 有两种工作模式,即"交互模式"和"非交互模式"。
bash
[root@CentOS7-1 ~]# nslookup
-bash: nslookup: command not found
[root@CentOS7-1 ~]# yum install -y bind-utils
语法格式
bash
nslookup [-option] [name | -] [server]
traceroute 命令
traceroute 命令用于显示数据包到主机间的路径信息。traceroute 命令利用 IP 协议的"生存时间"字段,并尝试从每个网关到某个主机的路径引发 ICMP TIME_EXCEEDED 响应。
bash
[root@CentOS7-1 ~]# traceroute
-bash: traceroute: command not found
[root@CentOS7-1 ~]# yum install traceroute -y
语法格式
bash
traceroute [-46dFITUnreAV] [-f first_ttl] [-g gate,...] [-i device]
[-m max_ttl] [-p port] [-s src_addr] [-q nqueries]
[-N squeries] [-t tos] [-l flow_label] [-w waittime]
[-z sendwait] [-UL] [-D] [-P proto] [--sport=port] [-M method]
[-O mod_options] [--mtu] [--back] host [packet_len]
tcpdump 命令
tcpdump 命令是一款类 Unix/Linux 环境下的抓包工具。tcpdump采用命令行方式对接口的数据包进行筛选抓取,如果不带任何选项的tcpdump,默认会抓取第一个网络接口,且只有将tcpdump进程终止才会停止抓包。
bash
[root@CentOS7-1 ~]# tcpdump
-bash: tcpdump: command not found
[root@CentOS7-1 ~]# yum install tcpdump -y
语法格式
bash
[root@CentOS7-1 ~]# tcpdump --help
tcpdump version 4.9.2
libpcap version 1.5.3
OpenSSL 1.0.2k-fips 26 Jan 2017
Usage: tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
[ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
[ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ]
[ -Q|-P in|out|inout ]
[ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ]
[ --immediate-mode ] [ -T type ] [ --version ] [ -V file ]
[ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
[ -Z user ] [ expression ]
nc 命令
nc 命令是一款功能强大的网络工具。它是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。
语法格式
bash
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>]
[-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
ntpdate 命令
ntpddate 命令用于使用网络计时协议(NTP)设置日期和时间。还可以用于同步时间,此命令需要具备root管理员权限才可执行。
bash
[root@centos7 ~]# ntpdate
-bash: ntpdate: command not found
[root@centos7 ~]# yum install ntpdate -y
语法格式
bash
ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oV
iptraf 命令
iptraf 命令是基于 ncurses 的 IP LAN 监视器,它生成各种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息,以太网负载信息,节点统计信息,IP 校验和错误等。
bash
[root@centos7 ~]# iptraf
-bash: iptraf: command not found
[root@centos7 ~]# yum install iptraf -y
iptraf 命令是一款交互式、色彩鲜艳的 IP 局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。若在 CentOS Linux 中,其采用的版本是 IPTraf 的衍生版本 iptraf-ng(没有iptrsf这个命令)。
语法格式
bash
iptraf { [ -f ] [ -q ] [ { -i iface | -g | -d iface | -s iface | -z iface | -l iface }
ifstat 命令
ifstat 命令用于统计网络接口流量状态,能比较简单看网络流量。ifstat 可以整齐地打印出网络接口统计信息,还可以用来禁用指定的网络接口。
语法格式
bash
ifstat [OPTIONS]
3.12、高阶命令
atop 命令
atop 命令是一款监控 Linux 系统资源与进程的工具,非内部命令,需要安装。
bash
[root@centos7 ~]# atop
-bash: atop: command not found
[root@centos7 ~]# yum install atop -y
#Debian && Ubuntu
apt-get install atop
#Fedora
dnf install atop
atop 是以一定的频率记录系统的运行状态,所采集的数据包含系统资源(CPU、内存、磁盘和网络)使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的atop日志文件进行分析,atop是一款开源软件。
语法格式
bash
atop -w file [-S] [-a] [interval [samples]]atop -r [file] [-b [YYYYMMDD]hhmm] [-e [YYYYMMDD]hhmm] [-flags]
更多详细的可参考:每天学一个 Linux 命令(117):atop
ioping 命令
ioping 命令是一个用于实时显示磁盘 io 延时的工具,以类似 ping 的输出一样来显示输出结果。默认没有安装,需要用户在使用前手动安装。
bash
[root@centos7 ~]# ioping
-bash: ioping: command not found
[root@centos7 ~]# yum install ioping -y
[root@centos7 ~]# ioping -v
ioping 1.1
语法格式
bash
ioping [-ABCDRLWYykq] [-c count] [-i interval] [-s size] [-S wsize]
[-o offset] [-w deadline] [-pP period] directory|file|device
fping 命令
fping 命令是 ping 命令的加强版,它可以同时 ping 多台主机(网段)。系统默认是没有安装,需要用户在使用前手动安装。
bash
[root@centos7 ~]# fping
-bash: fping: command not found
[root@centos7 ~]# yum install fping -y
语法格式
bash
fping [options] [targets...]
pidstat
pidstat 是著名的采集软件 systat 的组件之一。用于监控全部或指定进程的 CPU、内存、线程、设备 IO 等系统资源的占用情况。
pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行 pidstat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
bash
[root@centos7 ~]# pidstat
-bash: pdistat: command not found
[root@centos7 ~]# yum install sysstat -y
语法格式
bash
pidstat [ options ] [ <interval> [ <count> ] ]
accton 命令
accton 命令是 Linux 系统进程管理命令之一,它的作用是打开进程统计,如果命令后面不带任何参数,就是关闭进程统计。默认系统是没有安装此命令的,需要用户在使用前自行安装,命令如下。
bash
#CentOS
[root@centos7 ~]# acct
-bash: acct: command not found
[root@centos7 ~]# yum install psacct -y
#Debian && Ubuntu
apt-get install acct
#Fedora
dnf install psacct
安装完成之后,默认情况下,psacct 服务是关闭状态,在 RHEL/CentOS/Fedora 待系统下,需要用户手动去开启该服务。
bash
[root@centos7 ~]# systemctl status psacct.service
● psacct.service - Kernel process accounting
Loaded: loaded (/usr/lib/systemd/system/psacct.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@centos7 ~]# systemctl start psacct.service
[root@centos7 ~]# systemctl status psacct.service
● psacct.service - Kernel process accounting
Loaded: loaded (/usr/lib/systemd/system/psacct.service; disabled; vendor preset: disabled)
Active: active (exited) since Mon 2021-03-29 08:00:51 EDT; 2s ago
Process: 25987 ExecStart=/usr/sbin/accton /var/account/pacct (code=exited, status=0/SUCCESS)
Process: 25985 ExecStartPre=/usr/libexec/psacct/accton-create (code=exited, status=0/SUCCESS)
Main PID: 25987 (code=exited, status=0/SUCCESS)
语法格式
bash
accton [OPTION] on|off|ACCOUNTING_FILE
选项说明
bash
-p filename #指定密码文件filename
--version #显示ac版本并退出
--help #打印命令概要
准确的说 acct 是一个工具包,里面包含有针对用户连接时间、进程执行情况等进行统计的工具。它可以记录用户登录信息。用户所执行的程序,程序执行情况信息等。acct 包含以下工具包命令:
bash
ac #显示登录账号的简要信息
accton #打开或关闭进程记录功能
last #显示曾经登录过的用户
lastcomm #显示已执行过的命令
sa #进程用户记录信息的摘要
dump-utmp #输出utmp文件内容
dump-acct #输出acct或pacct文件内容
accton 命令参数
bash
on Activate process accounting and use default file
off Deactivate process accounting
ACCOUNTING_FILE Activate (if not active) and save information in
this file
The system's default process accounting file is '/var/account/pacct'.
Report bugs to <bug-acct@gnu.org>
4、CentOS常用运维命令
4.1、执行指令# free -m查看剩余内存
上述说明:
total 内存总数: 15869M
used 已经使用的内存数: 1223M
free 空闲的内存数: 11511M
shared 当前已经废弃不用,总是36M
buffers Buffer 缓存内存数: 3134M
available 可用内存数:421M
关系:total(1002M) = used(769M) + free(232M)
Total(15869)= used(1223) + free(11511) + buff/cache(3134)
Available(14164)= free(11511) + buff/cache(3134的部分)
备注:linux会利用所有的剩余内存作为缓存,所以要保证linux运行速度,就需要保证内存的缓存大小。
4.2、执行指令# lscpu查看CPU等硬件信息
其他查看CPU信息的方法:
执行指令# getconf LONG_BIT 查看cpu运行的位数
执行指令# cat /proc/cpuinfo|grep name|cut -f2 -d:|uniq -c
查看cpu型号和逻辑核心数
执行指令# cat /proc/cpuinfo|grep 'physical id'|sort|uniq -c 查看物理cpu个数
4.3、执行指令# uname -a查看系统信息
其他查看系统信息的方法:
执行指令# cat /proc/version # 查看内核版本
执行指令# locale # 当前环境变量中所有编码
执行指令# hwclock # 查看当前时间
执行指令# who # 当前在线用户
执行指令# uptime # 查看服务器启动时间
执行指令# dmesg # 显示开机信息
执行指令# lsmod # 查看内核模块
4.4、执行指令# dmidecode查看全面硬件信息
执行指令# dmidecode|grep "Product Name" 查看服务器型号
执行指令# dmidecode|grep -P -A5 "Memory\s+Device"|grep Size|grep -v Range 查看内存插槽
4.5、其他日常运维命令
执行指令# top 可以分析系统性能
执行指令# history 查看历史命令默认1000条
执行指令# HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S------" 让history命令显示具体时间
执行指令# history -c 清除当前历史命令
备注:上述命令并不能彻底的清除历史命令,如果想彻底清除,需要执行以下步骤。
执行指令# cat $HOME/.bash_history 历史命令记录文件
执行指令# rm $HOME/.bash_history 彻底清除历史命令
执行指令# last 查看登陆过的用户信息
执行指令# lastlog 查看用户最后登录的时间
执行指令# tail -f /var/log/secure 查看ssh日志
执行指令# tail -f /var/log/messages 查看系统日志