对于我们程序员来说,我们始终绕不过去要与 Linux 系统打交道。很多人,特别是新手程序员,一看到 Linux 系统那个小黑框,就发怵,其实,如果你真正去深入了解了,然后再学会一些常用的命令,慢慢的再在工作加以运用,你会发现真不难,而且挺容易操作的。
给大家整理了日常工作中常用的 Linux 系统命令,仅供大家参考,学会这些,可解决 97.5% 以上问题,能用到退休!不为过。
操作系统 Operating System 通俗的讲就是一款软件,不过它和一般的软件不同,操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在 “裸机” 上的最基本的系统软件,任何其他的软件都必须在操作系统的支持下才能运行。
所以,安装第一步!
Linux 目录结构
安装完操作系统,通过远程管理工具连接进入系统后,首先了解一下 Linux 系统的目录结构与其作用。
作用就不再一一赘述了,大家自行查看。
shutdown 命令
shutdown 命令可以用执行系统关机或系统重启,shutdown 可以关闭系统的所有应用程序,并按用户的指定要求,进行系统关闭或重启的动作执行。此命令需要具备系统管理员权限才能使用。
命令格式
shutdown [选项] [其它信息]
更多详细的可参考:每天学一个 Linux 命令(6):shutdown
文件目录管理
ls 命令
ls(list),ls 命令显示指定目录下的内容,列出指定目录下所含的文件及子目录。此命令与 Windows 系统中 dir 命令功能相似。
ls 命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。语法格式:
ls(选项)(参数)
更多详细的可参考:每天学一个 Linux 命令(8):ls
cd 命令
cd(Change Directory),用来切换工作目录至指定的目录。
指定的目录可以是绝对路径或相对路径。若指定目录名称省略,则直接切换至当前用户的 home directory(也就是刚 login 时所在的目录)。另外,~ 也表示为 home directory 的意思,. 则是表示目前所在的目录,… 则表示目前目录位置的上一层目录。命令格式:
cd [-L|-P] [DIR]
更多详细的可参考:每天一个 Linux 命令(7):cd
pwd 命令
pwd (print working directory) 显示用户当前工作目录的绝对路径。
pwd 命令将当前用户的工作目录的全路径名称(从根目录)以绝对路径的方式标准输出在屏幕上。语法格式:
tree [选项] [.....]pwd [OPTION]...
更多详细的可参考:每天学一个 Linux 命令(22):pwd
tree 命令
tree 命令的作用是以树形结构显示目录下的内容。常用的 Linux 发行版系统中默认没有这个命令,你需要通过安装才可以使用:
#Centosyum install tree -y#Ubuntusudo apt-get install tree
安装完成之后就可以正常使用这个 tree 命令了。
语法格式
tree [选项] [目录]
更多详细的可参考:每天学一个 Linux 命令(21):tree
mkdir 命令
mkdir 命令用于创建新目录。创建目录时,如果目录名前没有指定路径,那么就直接在当前工作目录下创建新的目录。如指定了路径,那么就会在这个指定的目录下创建一个新目录。
创建目录是需要注意,你所创建的目录名与当前目录下的文件名没有重名,如果有重名,系统会出现如下的提示,无法创建成功。
[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
命令语法
mkdir [选项] [目录名]
mkdir [option] [directory]
更多详细的可参考:每天学一个 Linux 命令(16):mkdir
touch 命令
touch 命令用来创建新的空文件。touch 命令也可以用来修改文件时间戳。如果该文件不存在,则创建具有该名称的空文件。
与文件关联的时间戳
Access time #上次读取文件的时间,简称atimeModification time #最后一次修改文件的内容,简称mtimeChange time #上次更改文件的元数据(称为“状态”)。状态信息包括文件的权限及其时间戳。每当文件发生任何事件时,其状态的至少一个元素都会更改,并且其ctime将设置为当前系统时间。简称ctime
atime 和 mtime 是文件状态元数据的一部分。因此,当更改文件的 atime(-a)或 mtime(-m)时,其 ctime 会自动设置为当前时间。无法手动设置 ctime。
命令语法
touch [选项] [文件名]touch [option] [filename]
更多详细的可参考:每天学一个 Linux 命令(13):touch
cat 命令
cat 命令用来连接文件内容并打印输出到标准设备上,所以,它常常被用来查看显示文件的内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
cat 命令三大功能:
-
1、显示一个文件的全部内容,cat file_name
-
2、创建一个文件,cat > file_name
-
3、合并文件,将几个文件合并到一个文件,cat file1 file2 > file
语法格式
cat [选项] [文件]cat [OPTION] FILE
更多详细的可参考:每天学一个 Linux 命令(14):cat
cp 命令
cp 命令用来复制文件或目录。
cp 命令用来将一个或多个文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
所以,cp 命令还具备重命名的功能。
语法格式
cp [选项] [源文件或目录] [目标文件或目录]
cp [option] source destinationcp [option] source directory
注:cp 命令默认情况下是不能直接复制目录,需要与 - R 选项配合使用。更多详细的可参考:每天学一个 Linux 命令(11):cp
more 命令
more 分页显示文件内容。以全屏的方式来显示文件的内容,每次显示一页,可按键向下翻页。more 命令中自带了很多快捷键,H(获得帮助信息),Enter(向下翻一行),空格(向下滚一屏),Q(退出)。当你打开一个文件时,可以使用下面的快捷键进行相关的操作:
Space(空格)键 #向下翻动一页
Enter(回车)键 #显示文本的下一行
| #输入一个模式,可以在当前文本内容查找一个相匹配的模式
H 键 #显示帮助信息
B 键 #向上翻一页
Q 键 #退出
命令格式
more [选项] [文件名]
more [option] [file ...]
更多详细的可参考:每天学一个 Linux 命令(25):more
less 命令
less 命令分页上下翻页浏览文件内容。
less 命令与 more 命令相似,都可以用来查看文件内容,不同的是 less 命令可以向前或向后查看文件,而 more 命令只能向前查看。用 less 命令显示文件时,按 PageUp 键向上翻页,按 PageDown 键向下翻页,按 Q 键退出查看。
命令格式
less [选项] [文件名]
less [option] [file ...]
更多详细的可参考:每天学一个 Linux 命令(26):less
head 命令
head 命令显示文件内容的头部。在系统默认情况下,head 命令只显示文件的头 10 行内容。命令格式:
head [选项] [文件名]
head [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(27):head
mv 命令
mv 命令用于移动并重命名文件和目录。或者将文件从一个目录移动到另一个目录中,如果将一个文件移动到一个已经存在的目标文件中,这时目标文件的内容会被此文件内容覆盖。
如果源为文件,而目标为目录,mv 将进行文件的位置移动。如果源为目录,则目标只能是目录(不能为文件),mv 将进行目录的重命令名。
mv 命令移动文件时,在目标不同的情况下,会有下面 4 种不同的结果:
-
如果目标是指定的某一个具体路径,则源文件会被移动到此目录下,且文件名不变。
-
如果目标不是目录,则源文件名(只能有一个)会变为此目标文件名,如果存在同名文件,则会覆盖己存在的同名文件。
-
如果源文件和目标文件在同一个目录下,mv 的作用就是修改文件名。
-
当目标是目录时,源文件或目录可以是多个,这时所有的源文件都会被移至目标目录下。且所有的文件都将保留以前的文件名。
mv [选项] 源文件或目录 目标文件或目录
mv [options] source destination
更多详细的可参考:每天学一个 Linux 命令(18):mv
rm 命令
rm 命令用来删除指定的文件或目录,此命令是一个危险的命令,操作前一定要再三确认是否正确,然后再执行操作步骤。
默认情况,它是不能直接删除目录的,需要配合选项来删除。当使用 -r 或 -R 选项来执行 rm 时,它会递归删除任何匹配到的目录,且它们的子目录以及子目录下包含的所有文件。
如需要针对文件扩展名字符匹配来删除多个文件时,rm 命令需要使用 -i 选项来配合完成。使用这个选项时,系统会逐一提示你是否要删除文件,当你输入 y 并按 Enter 键,文件就会被删除,反之,则文件不会被删除。
语法格式
rm [选项] 文件或目录
rm [options] FILE DIRECTORY
更多详细的可参考:每天学一个 Linux 命令(19):rm
ln 命令
ln 命令用于创建(软 / 硬)链接文件。在 linux 系统中,有两种链接类型:硬链接与软件,默认创建的就是硬链接,创建软链接需要 - s 选项来配合完成。
-
硬链接文件是指通过索引节点来进行链接,在 Linux 系统中多个文件同时指向同一个索引节点,这种情况下的文件被称为硬链接文件。
-
软链接文件也称做符号链接(同 Windows 系统中快捷方式)。实际上它是一个文本文件,文本文件里存储着指向源文件链接的位置信息。
命令格式
ln [选项] [链接文件名]
ln [OPTION] [LINKNAME]
更多详细的可参考:每天学一个 Linux 命令(28):ln
tail 命令
tail 显示文件内容的尾部,默认也是显示指定文件的末尾 10 行。tail 命令还可以查看文件实时写入的数据,例如,我们常用它来查看应用运行的日志文件,可以动态实时显示应用运行所产生的日志,便于排错或查看应用运行是否正常。
命令格式
tail [选项] [链接文件名]tail [OPTION] [LINKNAME]
更多详细的可参考:每天学一个 Linux 命令(29):tail
cut 命令
cut 将文件中行中内容按指定分隔符分割并输出。cut 命令还可以用于删除文件中指定行或段,然后打印输出更改后的内容。还可能用以拼接文件内容到一个新的文件中,功能和 cat 类似。
命令格式
cut [选项] [链接文件名]
cut [OPTION] [LINKNAME]
更多详细的可参考:每天学一个 Linux 命令(30):cut
用户管理
useradd/userdel 命令
useradd/userdel 创建新用户 / 删除用户,需要管理员权限操作。
在创建用户时,如果不配置密码,用户的默认密码是不可用的,所以,useradd 命令一般与 passwd 命令配合使用,下节我们将介绍这个命令。语法格式:
useradd 选项 用户名
userdel 选项 用户名
用户的分类
-
超级用户:root,拥有对系统的最高管理权限,UID 默认为 0。
-
虚拟用户:又叫系统用户或伪用户,具有一定特权,与系统或程序服务相关,但没有真正的使用者。一般不会用来登录系统,它主要用于维持某个访问的正常运行,如 ftp,apache 等。
-
普通用户:是一种受限制的用户,一般新建的用户都是普通用户。默认只能执行 / bin、/usr/bin、/usr/local/bin 以及自身主目录里的命令。
注意:UID 即每个用户的身份标识,虽然可以修改 / etc/passwd(命令设置的 UID 不允许重复),但尽量保持唯一性,类似于每个人的身份证号码。
更多详细的可参考:每天学一个 Linux 命令(9):useradd/userdel
passwd 命令
passwd 创建或修改用户的密码,passwd 命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。
普通用户在更改自己的密码之前,必须先输入当前密码进行验证(超级用户无需此步骤)。设置密码时需要符合系统对密码复杂性的要求。一般准则,密码应至少包含 6 个字符,包括以下每个字符中的一个或多个:
-
小写字母
-
数字 0 到 9
-
标点符号
语法格式
passwd [选项] [username]
更多详细的可参考:每天学一个 Linux 命令(10):passwd
su/sudo 命令
su 命令用于切换当前用户身份到其他用户身份。sudo 命令用于切换用户执行权限,这个命令可使其它非 root 用户具有 root 权限。默认情况下,sudo 要求用户使用密码进行身份验证,这是用户密码,不是 root 密码。
语法格式
su [ options ] [ username ]
sudo [ options ] [ command ]
更多详细的可参考:每天学一个 Linux 命令(56):su/sudo
man 命令
man 命令用于查看、显示 Linux 中命令的帮助信息,显示的帮助信息,可上下滚动,搜索特定文本的出现以及其他有用的功能。
man 命令是 Linux 系统下的帮助命令,通过 man 命令可以查看 Linux 系统中的命令帮助、配置文件帮助和编程帮助等信息, 并且格式化显示出来所有的信息。
命令语法
man [选项] [命令]
更多详细的可参考:每天学一个 Linux 命令(15):man
权限管理
chmod 命令
chmod 命令用来变更文件或目录的权限。
文件或目录权限有读取、写入、执行这 3 种,另外还有 3 种特殊权限。用户可以使用 chmod 去设置文件与目录的权限,设置方式采用文字或数字皆可。链接文件的权限无法直接变更,如果用户需要对链接文件修改权限,其真实作用是作用在原始文件上。
语法格式
chmod [选项] [权限] [文件或目录]
chmod [OPTION] [MODE] FILEchmod [OPTION] [MODE] DIRECETORY
更多详细的可参考:每天学一个 Linux 命令(17):chmod
chown 命令
chown 命令用来变更文件或目录的拥有者或所属群组,通过 chown 改变文件的拥有者和群组。用户可以是用户名或者用户 ID;组可以是组名或者组 ID;文件是以空格分开的文件列表,文件名也支持通配符。
系统管理员经常使用 chown 命令,去改变一个文件或目录的所属。普通用户是不能将自己所属文件或目录变成其它的拥有者。
语法格式
chown [选项] [用户或组] [文件或目录]
-
用户:组:指定所有者和所属工作组。当省略 “:组”,仅改变文件所有者;
-
文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持 shell 通配符。
Linux/Unix 文件目录所属分为三级 : 拥有者、群组、其他。
-
root:系统特权用户类,既 UID = 0 的用户
-
owner:所有者
-
group:所属组
-
other:其它人,不属于上面 3 类的所有其他用户
更多详细的可参考:每天学一个 Linux 命令(12):chown
chattr/lsattr 命令
chattr 用来改变文件(扩展)属性。通常我们叫这个属性为特殊属性。lsattr 查看文件扩展属性。这种特殊属性有以下 8 种模式:
a #限定文件具有某种功能。这个对于日志文件非常有作用,比如,不允许删除,只允许向里面追加内容。
b #不更新或修改文件或目录的最后存储时间
c #将文件或目录压缩后存储
d #将文件或目录排除在倾倒操作之外
i #锁定文件或目录,不被更改
s #秘密删除文件或目录
S #动态实时更新文件或目录
u #防止文件或目录被意外删除
如果文件或目录被配置了上述 8 种之一的扩展属性,通过 lsattr 命令可以查看到:
[root@centos7 testdir]# lsattr----i----------- ./dir
#结果说明这个目录被配置扩展属性
[root@centos7 testdir]# chattr -i dir[root@centos7 testdir]# lsattr---------------- ./dir
语法格式
chattr [选项] mode file
lsattr [选项] file
更多详细的可参考:每天学一个 Linux 命令(24):chattr/lsattr
umask 命令
umask 命令用于显示或设置权限掩码。系统默认的权限掩码是 0022。
[root@centos7 ~]# umask0022
所以,系统默认创建目录与文件的权限如下
目录权限=0777-0022=0755(rwxr-xr-x)文件权限=0666-0022=0644(rwr--r--)
[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
Bdrwxr-xr-x 2 root root 6 Mar 24 21:14 B
语法格式
umask [OPTIONS]
更多详细的可参考:每天学一个 Linux 命令(88):umask
文件查找分析
find 命令
find 命令在文件系统中搜索文件和目录。find 命令用来在指定目录下查找文件,在参数之前的任何字符串都会当作是目录名。使用 find 命令时,如何不设置任何参数,则 find 命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部显示出来。
find 还是一个功能非常强大的用于处理 Linux 系统上文件的工具,它可以单独查找文件,也可以与其他程序(命令)结合对需要处理的文件进行操作。Linux 文件类型:
f #普通文件l #符号连接d #目录c #字符设备b #块设备s #套接字p #Fifo
UNIX/Linux 文件系统中的每个文件都有三种时间戳:
-
访问时间 (-atime / 天,-amin / 分钟):用户最近一次访问时间。
-
修改时间 (-mtime / 天,-mmin / 分钟):文件最后一次被修改的时间。
-
变化时间 (-ctime / 天,-cmin / 分钟):文件元数据(例如权限等)
语法格式
find [目录路径] [选项] [文件名]find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
更多详细的可参考:每天学一个 Linux 命令(20):find
file 命令
file 命令用于查看指定文件的类型。在 Linux 系统中,一切皆文件。Linux 系统中的文件类型在前面描述过了。文件的属性信息在之前的文章: 每天学一个 Linux 命令(17):chmod 中有介绍,文件类型信息一般都是位于文件权限信息之首的位置。
[root@centos7 testdir]# lltotal 0lrwxrwxrwx 1 root root 11 Jan 15 22:50 cp -> /usr/bin/cpdrwxr-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~
语法格式
file [选项] [文件名或目录名]
更多详细的可参考:每天学一个 Linux 命令(23):file
xargs 命令
xargs 可以将 stdin 中以空格或换行符进行分隔的数据,形成以空格分隔的参数(arguments),传递给其他命令。简单来说,xargs 的作用是给其他命令传递参数,是构建单行命令的重要组件之一。
之所以要用到 xargs,是因为很多命令不支持使用管道|
来传递参数,例如:
find /sbin -perm +700 | ls -l # 这个命令是错误,因为标准输入不能作为ls的参数find /sbin -perm +700 | xargs ls -l # 这样才是正确的#命令格式xargs [OPTIONS] [COMMAND]
更多详细的可参考:每天一个 Linux 命令(1):xargs
md5sum 命令
md5sum 用于计算和校验文件的 MD5 值。md5sum 常常被用来验证网络文件传输的完整性,防止文件被人篡改。在日常工作当中,我们可以用来监控系统中的重要文件是否被篡改。还可以使用使用 md5sum 生成文件或用户的密码。
语法格式
md5sum [选项] [文件]
更多详细的可参考:每天学一个 Linux 命令(31):md5sum
stat 命令
stat 命令用于显示文件或文件系统的状态。
命令语法
stat [OPTION]... FILE...
文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。更多详细的可参考:每天学一个 Linux 命令(45):stat
wc 命令
wc 命令用来统计文件中的行数、单词数或字节数,然后将结果输出在终端上。我们可以使用 wc 命令来计算文件的 Byte 数、字数或是列数。
语法格式
wc [选项] [文件]wc [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(34):wc
dos2unix 命令
dos2unix 命令用于将纯文本文件从 DOS 或 Mac 格式转换为 Unix。DOS 下的文本文件是以 \r\n
作为换行符,而 Unix 下的文本文件是以\n
作为换行符。默认系统是没有安装这个命令,需要用户自行安装:
[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
语法格式
dos2unix [选项] [文件]dos2unix [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(35):dos2unix
diff 命令
diff 命令用于查找、分析两个文件中不同的行,并打印输出在屏幕上。
diff 命令是以逐行的方式,比较文本文件的不同之处。如果是对指定的目录进行比较,就是比较该指定目录下的同名文件,不会对该目录的子目录下的文件进行比较操作。diff 命令最基础的用途就是用来比较指定的两个文件的不同。
语法格式
diff [选项] [文件]diff [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(36):diff
paste 命令
paste 命令用于并排显示多个文件的相应行,将多个文件按列合并。
语法格式
paste [选项] [文件]paste [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(37):paste
整理与排序
sort
sort 对文件的文本内容排序。系统默认情况下,排序规则如下:
-
以数字开头的行,将排在以字母开头的行前面
-
以小写字母开头的行,将排在以大写字母开头的行前面
-
按字母表的顺序排列以字母开头的行
语法格式
sort [选项] [文件]sort [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(32):sortuniq
uniq 命令用于去除文件中重复行,一般与 sort 命令结合使用。语法格式:
uniq [选项] [标准输入 [输出]]uniq [OPTION] [INPUT [OUTPUT]]
输入文件 #指定要去除的重复行文件。如果不指定该项,则从标准读入输出文件 #指定要去除重复行后的内容要写入的输出文件。如果不指定此项,则将内容显示到标准输出设备(显示终端
更多详细的可参考:每天学一个 Linux 命令(33):uniq
vi/vim 命令
vi/vim 命令是功能强大的纯文本编辑器。vim 是 vi 的加强版,比 vi 更容易使用。vim 编辑器是 Unix 系统和 Linux 系统中最标准的编辑器,功能非常强大。它可以执行查找、删除、替换、输出多种文本操作方式。因此,学习 vim 编辑器也是学习 Linux 系统过程中比较重要的一个基础部分。
vim 编辑器有三种模式,分别如下:
#命令模式此种模式下,可能通过移动光标,对字符或行进行删除操作。#插入模式在命令模式下,按键盘上字母“i”键即可进行插入模式,只有在此模式下才可以进行文字、字符的输入操作,按“ESC”键退出插入模式(返回命令模式)。#底行模式对文件保存或退出,以及设置编辑环境。
语法格式
vi/vim [选项] [文件]vi/vim [OPTION] [FILE]
更多详细的可参考:每天学一个 Linux 命令(38):vi/vim
压缩 / 解压缩
tar 命令
tar 命令用于打包、压缩与解压压缩包文件。tar 命令常常用于打包、压缩某些文件或目录,也可以添加新文件到归档文件中。Tar 代表的是磁带存档,是一种归档的文件格式,早期用于将文件归档到磁带备份存储。现可以用于收集、分发、归档文件,还可以保留文件原有的属性,如:用户和组权限,访问和修改日期以及目录结构。
语法格式
tar [OPTIONS] [FILE]
更多详细的可参考:每天学一个 Linux 命令(39):tar
gzip 命令
gzip 命令用来压缩文件,gzip,gunzip 命令用于压缩或扩展 GNU GZIP 格式的文件。如果压缩文件名对其文件系统而言太长,则 gzip 会将其截断。默认情况下,gzip 会将原始文件名和时间戳等信息保留在新产生的压缩文件中。
语法格式
gzip [ OPTIONS ] [ name ]gunzip [ OPTIONS ] [ name ]
更多详细的可参考:每天学一个 Linux 命令(40):gzip
zip 命令
zip 命令可以用来压缩、打包文件。
#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 为扩展名的压缩包文件。
语法格式
zip [ OPTIONS ] [ NAME ..]
更多详细的可参考:每天学一个 Linux 命令(41):zip
unzip 命令
unzip 命令用于解压由 zip 命令压缩的压缩包文件。
#Debian/Ubuntu安装apt-get install unzip#CentOS安装[root@centos7 ~]# unzip -bash: unzip: command not found[root@centos7 ~]# yum install unzip -y
语法格式
unzip [ OPTIONS ] file[.zip] [file(s) ...]
更多详细的可参考:每天学一个 Linux 命令(42):unzip
系统管理
dmesg 命令
dmesg 命令用于显示系统开机信息,可用于诊断系统故障。内核会将系统开机信息存储在 ring buffer 中,可以使用 dmesg 命令来查看,开机信息保存在 / var/log/dmesg 文件中。
命令语法
dmesg [options]
更多详细的可参考:每天学一个 Linux 命令(43):dmesg
uptime 命令
uptime 命令用于显示系统运行时间及负载。uptime 命令可以打印出系统总共运行了多长时间和系统的平均负载。uptime 命令显示的信息显示依次为:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的 1 分钟、5 分钟和 15 分钟内的平均负载。
[root@centos7 ~]# uptime 19:48:14 up 21:02, 1 user, load average: 0.00, 0.01, 0.05
命令语法
uptime [options]
更多详细的可参考:每天学一个 Linux 命令(44):uptime
time 命令
time 命令用于计算命令执行时间(相当于统计总时间)。time 命令使用指定参数运行指定的程序命令, 命令完成后,时间将消息写入标准错误,提供有关此程序运行的计时统计信息。这些统计信息包括:
-
调用和终止之间经过的实时时间
-
用户 CPU 时间
-
系统 CPU 时间
语法格式
time [-p] command [arguments...]
更多详细的可参考:每天学一个 Linux 命令(86):time
free 命令
free 命令用于显示内存的使用情况,显示可用和已用物理内存和交换内存的总数,以及内核使用的缓冲区。
语法格式
free [options]
更多详细的可参考:每天学一个 Linux 命令(49):free
top 命令
top 命令用于实时显示系统资源使用情况。它可以显示系统摘要信息,以及内核当前正在管理的进程或线程的列表。
top 命令可以实时动态地查看系统的整体运行情况,是一个非常实用的系统性能和运行信息的监测工具。通过 top 命令所提供的互动式界面,用热键可以管理。
语法格式
top [options]
更多详细的可参考:每天学一个 Linux 命令(48):top
iotop 命令
iotop 命令用来查看磁盘 I/O 使用状况的工具。iotop 具有与 top 相似的 UI 界面,其展示的包括 PID、用户、I/O、进程等相关信息。
[root@centos7 ~]# iotop-bash: iotop: command not found
[root@centos7 ~]# yum install iotop -y
语法格式
iotop [OPTIONS]
更多详细的可参考:每天学一个 Linux 命令(100):iotop
iostat 命令
iostat 命令用于统计系统 IO 状态信息。
语法格式
iostat [options]
更多详细的可参考:每天学一个 Linux 命令(109):iostat
mpstat 命令
mpstat(Multi-Processor Statistics) 命令用于显示各个可用 CPU 的状态统计。是一个实时监控工具,与 vmstat 类似,但只能监控 CPU 的整体性能状态。
[root@centos7 ~]# mpstat-bash: mpstat: command not found
[root@centos7 ~]# yum install sysstat -y
语法格式
mpstat [ options ]
更多详细的可参考:每天学习一个 Linux 命令(111):mpstat
vmstat 命令
vmstat 命令用于虚拟内存统计。vmstat 报告有关进程,内存,分页,块 IO,陷阱,磁盘和 CPU 活动的信息。
语法格式
vmstat [options] [delay [count]]
更多详细的可参考:每天学一个 Linux 命令(112):vmstat
sar 命令
sar 命令用于全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU 中断和网络等性能数据。
语法格式
sar -[ options ] time_interval number_of_tines_to_display
更多详细的可参考:每天学一个 Linux 命令(107):sar
dstat 命令
dstat 命令是一个用来替换 vmstat、iostat、netstat、nfsstat 和 ifstat 这些命令的工具,通用的系统资源统计工具,是一个全能系统信息统计工具。
[root@centos7 ~]# dstat-bash: dstat: command not found[root@centos7 ~]# yum install dstat -y
dstat 特点
-
结合了 vmstat,iostat,ifstat,netstat 以及更多的信息
-
实时显示统计情况
-
在分析和排障时可以通过启用监控项并排序
-
模块化设计
-
使用 python 编写的,更方便扩展现有的工作任务
-
容易扩展和添加你的计数器(请为此做出贡献)
-
包含的许多扩展插件充分说明了增加新的监控项目是很方便的
-
可以分组统计块设备 / 网络设备,并给出总数
-
可以显示每台设备的当前状态
-
极准确的时间精度,即便是系统负荷较高也不会延迟显示
-
显示准确地单位和和限制转换误差范围
-
用不同的颜色显示不同的单位
-
显示中间结果延时小于 1 秒
-
支持输出 CSV 格式报表,并能导入到 Gnumeric 和 Excel 以生成图形
语法格式
dstat [-afv] [options..] [delay [count]]
更多详细的可参考:每天学一个 Linux 命令(103):dstat
date 命令
date 命令用于显示与设置系统时间。
语法格式
date [OPTION] [MMDDhhmm[[CC]YY][.ss]]
更多详细的可参考:每天学一个 Linux 命令(50):date
lsof 命令
lsof 命令用于显示 Linux 系统当前已打开的所有文件列表。查看进程或系统打开的文件会给调试带来极大的帮助。lsof (list open files)命令用于查看你进程打开的文件,打开文件的进程,进程打开的端口 (TCP、UDP), 还可以用于找回 / 恢复被删除的文件。lsof 命令需要访问核心内存和各种文件,所以需要具备 root 超级管理员权限的用户才能执行此命令。
语法格式
lsof [Options]
更多详细的可参考:每天学一个 Linux 命令(68):lsof
磁盘管理
fdisk 命令
fdisk 命令用于查看磁盘使用情况和磁盘分区,它可用于创建,删除和修改磁盘分区。
语法格式
disk [-uc] [-b sectorsize] [-C cyls] [-H heads] [-S sects] device
更多详细的可参考:每天学一个 Linux 命令(78):fdisk
与它相同功能的命令还有 parted,这个命令算是对 fdisk 命令的一个补充,因为如果磁盘大小大于 2TB 就无法使用 fdisk 命令进行分区操作了。语法格式:
parted [options] [device [command [options...]...]]
更多详细的可参考:每天学一个 Linux 命令(79):parted
du 命令
du 命令用于显示每个文件和目录使用磁盘空间大小,du 会显示指定的目录或文件所占用的磁盘空间大小。还可以利用 du 命令,可以快速的查找 Linux 下的大目录。
命令语法
du [OPTION]... [FILE]...
更多详细的可参考:每天学一个 Linux 命令(46):du
df 命令
df 命令用于显示磁盘的相关信息。df(Disk Free)的首字母组合,用来显示文件系统磁盘空间的使用情况。默认显示单位为 KB。可以使用 df 命令来查看硬盘被占用了多少空间,目前还剩下多少空间。
命令语法
df [OPTION]... [FILE]...
更多详细的可参考:每天学一个 Linux 命令(47):df
mount 命令
mount 命令用于挂载设备或文件系统。
语法格式
mount [option] device|dir
更多详细的可参考:每天学一个 Linux 命令(75):mount/umount
mkfs 命令
mkfs 命令用于格式化创建 Linux 文件系统。通常用于在设备(通常是硬盘分区)上构建 Linux 文件系统。
语法格式
mkfs [options] [-t type fs-options] device [size]
更多详细的可参考:每天学一个 Linux 命令(80):mkfs
fsck 命令
fsck 命令用于检查并修复 Linux 文件系统。
fsck 用于对 “文件系统一致性检查”。在大多数系统上,如果检测到某些情况,fsck 将在引导时运行。通常,这些条件是:
-
文件系统被标记为 “dirty” –-- 其写入状态与计划写入的数据不一致
-
文件系统已挂载了一定次数而未检查
无论文件系统类型如何,fsck 通常具有三种操作模式:
-
检查错误,并交互提示用户决定如何解决单个问题
-
检查错误,并尝试自动修复任何错误
-
检查错误,不尝试修复它们,而是在标准输出上显示错误
语法格式
fsck [-lsAVRTMNP] [-C [fd]] [-t fstype] [filesys...]
[--] [fs-specific-options]
更多详细的可参考:每天学一个 Linux 命令(76):fsck
主机管理
ssh 命令
ssh (Secure Shell) 命令是用于安全登录到远程系统的协议,它可用于在远程服务器上记录或执行命令。ssh(SSH 客户端)是用于登录到远程计算机并在远程计算机上执行命令的程序。可以在不安全的网络中于两个不受信任的主机之间提供安全的加密通信。
语法格式
ssh [OPTIONS] [-p PORT] [USER@]HOSTNAME [COMMAND]
更多详细的可参考:每天学一个 Linux 命令(59):ssh
telnet 命令
telnet 命令用于使用 TELNET 协议与另一个主机进行交互通信。可以对另一主机进行远程登录、管理操作,同样也可以通过 telnet 来确认远程主机的某个端口是否开放?也是日常主机间网络故障排错的重要一部分。
语法格式
telnet [OPTIONS] [host [port][host]远程主机 #指定要登录进行管理的远程主机;[port]端口 #指定TELNET协议使用的端口号。
更多详细的可参考:每天学一个 Linux 命令(58):telnet
host 命令
host 命令是常用的分析域名查询工具,是一个 DNS 查找实用程序,用于查找域名的 IP 地址。 它还执行反向查找,查找与 IP 地址关联的域名。host 命令可以用于执行 DNS 查找,将域名转换为 IP 地址,反之亦然。
[root@centos7 ~]# host -bash: host: command not found[root@centos7 ~]# yum install -y bind-utils -y
语法格式
host [OPTIONS] {name} [server]#主机(server):指定要查询信息的主机信息。
更多详细的可参考:每天学一个 Linux 命令(74):host
传输下载
wget 命令
wget 命令是 Linux 系统一个免费实用的文件下载工具,支持 HTTP、HTTPS,或者 FTP。
wget 下载它是非交互式的,可以在后台运行,这就表明你可以事先登录到系统,启动一个下载的动作,然后退出系统让 wget 自动在后台将这个动作执行完成(下载完成)。wget 非常稳定,它在带宽不足或网络不稳定的情况下,如果产生下载失败,那么 wget 会不断的尝试下载动作,直至整个下载过程完成。
语法格式
wget [option]... [URL]...
更多详细的可参考:每天学一个 Linux 命令(61):wget
rpm 命令
rpm(RPM Package Manager)是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包。
语法格式
rpm [OPTION...]
更多详细的可参考:每天学一个 Linux 命令(84):rpm
yum 命令
yum 命令是基于 RPM 的软件包管理器。yum 可以自动执行系统更新,包括依赖关系分析和基于 “存储库” 元数据的过时处理。它还可以执行新软件包的安装,旧软件包的删除以及对已安装或可用软件包以及其他命令 / 服务的查询。yum 命令类似于 apt-get 和 smart 等其他高级软件包管理器。
语法格式
yum [options] [command] [package ...]
更多详细的可参考:每天学一个 Linux 命令(83):yum
curl 命令
curl 命令使用 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、TFTP、DICT、TELNET、LDAP 或 FILE 支持的协议之一,将数据传输到网络服务器或从网络服务器传输数据。它非常适合在 Shell 脚本中使用。
curl 命令提供代理支持,用户身份验证,FTP 上传,HTTP 发布,SSL 连接,cookie,文件传输恢复,metalink 和其他功能。
语法格式
curl [options] [URL...]
更多详细的可参考:每天学一个 Linux 命令(73):curl
scp 命令
scp 全拼 secure copy,用于不同主机之间复制文件。scp 命令常用于在 Linux 系统下两个不同主机之间传输文件,其功能与 cp 命令相似,但是不同是,cp 命令只能用于在本机环境下传输或复制拷贝文件,scp 命令可以跨越不同主机,而 scp 传输文件是加密的。
scp 它使用 ssh 进行数据传输,并使用与 ssh 相同的身份验证并提供相同的安全性,scp 会要求输入密码或其它方式以进行身份验证。
语法格式
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(文件名为目标文件的名称)
更多详细的可参考:每天学一个 Linux 命令(60):scp
DNF 命令
DNF (Dandified Yum) 是新一代的 RPM 软件包管理器。
DNF 包管理器克服了 YUM 包管理器的一些瓶颈,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面的内容。DNF 使用 RPM, libsolv 和 hawkey 库进行包管理操作,Fedora22 已经默认使用 DNF。
[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 类似。
语法格式
dnf [options] [command] [package ...]
更多详细的可参考:每天学一个 Linux 命令(113):dnf
网络管理
ifconfig 命令
ifconfig 命令用于查看、配置、启用或禁用网络接口和显示 Linux 系统网卡的网络参数。
语法格式
ifconfig [-v] [-a] [-s] [interface]ifconfig [-v] interface [aftype] options | address ...
更多详细的可参考:每天学一个 Linux 命令(64):ifconfig
ping 命令
ping 命令用于测试主机之间网络的连通性。ping 是一种向网络上的另一台计算机发送网络数据并从其接收网络数据的简单方法。它通常用于测试与另一个系统是否可以通过网络访问,如果可以,则需要花费多少时间来交换该数据。
语法格式
ping [options] destinationping -6 [options] destination
更多详细的可参考:每天学一个 Linux 命令(62):ping
route 命令
route 命令用于显示和设置 linux 系统的路由表(静态路由表)。route 命令用来显示并设置 Linux 内核中的网络路由表,route 命令设置的路由主要是静态路由。在 Linux、BSD 和其他类似 Unix 的系统上,route 命令用于查看和更改内核路由表。在不同的系统上,命令语法不同。
语法格式
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]
更多详细的可参考:每天学一个 Linux 命令(63):route
netstat 命令
netstat(network statistics) 是一个命令行工具,它用来显示网络连接(传入和传出),路由表和许多网络接口(网络接口控制器或软件定义的网络接口)和网络协议统计信息。也可用于查找网络中的问题,打印 Linux 中网络系统的状态信息,查看整个 Linux 系统的网络情况。
语法格式
netstat { xxx } [ OPTIONS ]
更多详细的可参考:每天学一个 Linux 命令(65):netstat
ss 命令
ss 命令用于查看网络状态。ss 命令可以用来获取 socket 统计信息,它显示的信息和 netstat 命令显示的信息类似,但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连接状态的信息,而且比 netstat 更快速更高效。
语法格式
ss [OPTIONS]ss [ OPTIONS ] [ FILTER ]
更多详细的可参考:每天学一个 Linux 命令(66):ss
nmap 命令
nmap(Network Mapper - 网络映射器)命令用于网络探测和安全审核,是网络探索工具和端口扫描程序。namp 它可以扫描单主机,也可以快速扫描大型网络结构。
语法格式
nmap [Scan Type...] [Options] {target specification}
更多详细的可参考:每天学一个 Linux 命令(67):nmap
dig 命令
dig 命令用于执行网络 DNS 查找。dig 是一个用于查询 DNS 名称服务器的灵活工具。它执行 DNS 查找并显示从查询的名称服务器返回的答案。可使用 dig 来解决 DNS 问题,它具有灵活性,易用性和输出清晰度。相比其它工具功能更多、更强大。
语法格式
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-x addr] [-y [hmac:]name:ke
更多详细的可参考:每天学一个 Linux 命令(70):dig
nslookup 命令
nslookup(name server lookup)命令用于查询域名 DNS 信息的工具。nslookup 有两种工作模式,即 “交互模式” 和“非交互模式”。
[root@CentOS7-1 ~]# nslookup-bash: nslookup: command not found[root@CentOS7-1 ~]# yum install -y bind-utils
语法格式
nslookup [-option] [name | -] [server]
更多详细的可参考:每天学一个 Linux 命令(69):nslookup
traceroute 命令
traceroute 命令用于显示数据包到主机间的路径信息。traceroute 命令利用 IP 协议的 “生存时间” 字段,并尝试从每个网关到某个主机的路径引发 ICMP TIME_EXCEEDED 响应。
[root@CentOS7-1 ~]# traceroute-bash: traceroute: command not found[root@CentOS7-1 ~]# yum install traceroute -y
语法格式
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]
更多详细的可参考:每天学一个 Linux 命令(71):traceroute
tcpdump 命令
tcpdump 命令是一款类 Unix/Linux 环境下的抓包工具。tcpdump 采用命令行方式对接口的数据包进行筛选抓取,如果不带任何选项的 tcpdump,默认会抓取第一个网络接口,且只有将 tcpdump 进程终止才会停止抓包。
[root@CentOS7-1 ~]# tcpdump-bash: tcpdump: command not found[root@CentOS7-1 ~]# yum install tcpdump -y
语法格式
[root@CentOS7-1 ~]# tcpdump --helptcpdump version 4.9.2libpcap version 1.5.3OpenSSL 1.0.2k-fips 26 Jan 2017Usage: 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 ]
更多详细的可参考:每天学一个 Linux 命令(72):tcpdump
nc 命令
nc 命令是一款功能强大的网络工具。它是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。
语法格式
nc [-hlnruz][-g<网关...>][-G<指向器数目>][-i<延迟秒数>][-o<输出文件>][-p<通信端口>]
[-s<来源位址>][-v...][-w<超时秒数>][主机名称][通信端口...]
更多详细的可参考:每天学一个 Linux 命令(91):nc
ntpdate 命令
ntpddate 命令用于使用网络计时协议(NTP)设置日期和时间。还可以用于同步时间,此命令需要具备 root 管理员权限才可执行。
[root@centos7 ~]# ntpdate-bash: ntpdate: command not found[root@centos7 ~]# yum install ntpdate -y
语法格式
ntpdate [ -b] [ -d] [ -s] [ -u] [ -aKeyid] [ -eAuthenticationDelay] [ -kKeyFile] [ -oV
更多详细的可参考:每天学一个 Linux 命令(96):ntpdate
iptraf 命令
iptraf 命令是基于 ncurses 的 IP LAN 监视器,它生成各种网络统计信息,包括 TCP 信息、UDP 计数、ICMP 和 OSPF 信息,以太网负载信息,节点统计信息,IP 校验和错误等。
[root@centos7 ~]# iptraf-bash: iptraf: command not found[root@centos7 ~]# yum install iptraf -y
iptraf 命令是一款交互式、色彩鲜艳的 IP 局域网监控工具。它可以显示每个连接以及主机之间传输的数据量。若在 CentOS Linux 中,其采用的版本是 IPTraf 的衍生版本 iptraf-ng(没有 iptrsf 这个命令)。语法格式
iptraf { [ -f ] [ -q ] [ { -i iface | -g | -d iface | -s iface | -z iface | -l iface }
更多详细的可参考:每天学一个 Linux 命令(108):iptraf
ifstat 命令
ifstat 命令用于统计网络接口流量状态,能比较简单看网络流量。ifstat 可以整齐地打印出网络接口统计信息,还可以用来禁用指定的网络接口。
语法格式
ifstat [OPTIONS]
更多详细的可参考:每天学一个 Linux 命令(110):ifstat
高阶命令
atop 命令
atop 命令是一款监控 Linux 系统资源与进程的工具,非内部命令,需要安装。
[root@centos7 ~]# atop-bash: atop: command not found[root@centos7 ~]# yum install atop -y#Debian && Ubuntuapt-get install atop#Fedoradnf install atop
atop 是以一定的频率记录系统的运行状态,所采集的数据包含系统资源 (CPU、内存、磁盘和网络) 使用情况和进程运行情况,并能以日志文件的方式保存在磁盘中,服务器出现问题后,我们可获取相应的 atop 日志文件进行分析,atop 是一款开源软件。
语法格式
atop -w file [-S] [-a] [interval [samples]]atop -r [file] [-b [YYYYMMDD]hhmm] [-e [YYYYMMDD]hhmm] [-flags]
更多详细的可参考:每天学一个 Linux 命令(117):atop
ioping 命令
ioping 命令是一个用于实时显示磁盘 io 延时的工具,以类似 ping 的输出一样来显示输出结果。默认没有安装,需要用户在使用前手动安装。
[root@centos7 ~]# ioping-bash: ioping: command not found[root@centos7 ~]# yum install ioping -y[root@centos7 ~]# ioping -vioping 1.1
语法格式
ioping [-ABCDRLWYykq] [-c count] [-i interval] [-s size] [-S wsize]
[-o offset] [-w deadline] [-pP period] directory|file|device
更多详细的可参考:每天学一个 Linux 命令(119):ioping
fping 命令
fping 命令是 ping 命令的加强版,它可以同时 ping 多台主机(网段)。系统默认是没有安装,需要用户在使用前手动安装。
[root@centos7 ~]# fping-bash: fping: command not found[root@centos7 ~]# yum install fping -y
语法格式
fping [options] [targets...]
更多详细的可参考:每天学一个 Linux 命令(118):fping
pidstat
pidstat 是著名的采集软件 systat 的组件之一。用于监控全部或指定进程的 CPU、内存、线程、设备 IO 等系统资源的占用情况。
pidstat 首次运行时显示自系统启动开始的各项统计信息,之后运行 pidstat 将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。
[root@centos7 ~]# pidstat-bash: pdistat: command not found[root@centos7 ~]# yum install sysstat -y
语法格式
pidstat [ options ] [ <interval> [ <count> ] ]
更多详细的可参考:每天学一个 Linux 命令(120):pidstat
accton 命令
accton 命令是 Linux 系统进程管理命令之一,它的作用是打开进程统计,如果命令后面不带任何参数,就是关闭进程统计。默认系统是没有安装此命令的,需要用户在使用前自行安装,命令如下。
#CentOS[root@centos7 ~]# acct-bash: acct: command not found[root@centos7 ~]# yum install psacct -y #Debian && Ubuntuapt-get install acct#Fedoradnf install psacct
安装完成之后,默认情况下,psacct 服务是关闭状态,在 RHEL/CentOS/Fedora 待系统下,需要用户手动去开启该服务。
[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)
语法格式
accton [OPTION] on|off|ACCOUNTING_FILE
选项说明
-p filename #指定密码文件filename--version #显示ac版本并退出--help #打印命令概要
准确的说 acct 是一个工具包,里面包含有针对用户连接时间、进程执行情况等进行统计的工具。它可以记录用户登录信息。用户所执行的程序,程序执行情况信息等。acct 包含以下工具包命令:
ac #显示登录账号的简要信息accton #打开或关闭进程记录功能last #显示曾经登录过的用户lastcomm #显示已执行过的命令sa #进程用户记录信息的摘要dump-utmp #输出utmp文件内容dump-acct #输出acct或pacct文件内容
accton 命令参数
on Activate process accounting and use default fileoff Deactivate process accountingACCOUNTING_FILE Activate (if not active) and save information inthis file The system's default process accounting file is '/var/account/pacct'. Report bugs to <bug-acct@gnu.org>
详细信息可查看:每天学一个 Linux 命令(115):accton