[root@localhost ~]#node
[]
:这是提示符的分隔符号,没有特殊含义。root
:显示的是当前的登陆用户, 目前使用的是root用户登陆。@
:分隔符号,没有特殊含义。localhost
:当前系统的简写主机名(完整主机名是 localhost.localdomain)。~
:表明用户当前所在的目录,此例中用户当前所在的目录是家目录。#
:命令提示符。超级用户是#,普通用户是$[root@localhost ~]# 命令 [选项] [参数]mysql
选项
:是用于调整命令的功能的参数
:是命令的操做对象ls 是最多见的目录操做命令,主要做用是显示目录下的内容linux
命令格式:ls [选项] [目录名]
git
选项正则表达式
示例:算法
[root@localhost ~]# ls -l #权限 引用计数 全部者 所属组 大小 文件修改时间 文件名 -rw-------. 1 root root 1446 12月 19 16:15 anaconda-ks.cfg
“-l” 选项用于显示文件的详细信息,那么“-l”选项显示的这 7 列分别是什么含义?
第一列:权限。
第二列:引用计数。文件的引用计数表明该文件的硬连接个数,而目录的引用计数表明该目录
有多少个一级子目录。
第三列:全部者,也就是这个文件属于哪一个用户。默认全部者是文件的创建用户
第四列:所属组。默认所属组是文件创建用户的有效组,通常状况下就是创建用户的所在组。
第五列:大小。默认单位是字节。
第六列:文件修改时间。文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个
时间不是文件的建立时间。
第七列:文件名。
cd是切换所在目录的命令,基本信息以下:sql
命令格式:cd [-L|-P] [dir]
shell
选项:数据库
-L
:(默认值)若是要切换到的目标目录是一个符号链接,那么切换到符号链接的目录。-P
: 若是要切换到的目标目录是一个符号链接,那么切换到它指向的物理位置目录。参数:express
简化用法
cd ~
: 当前用户的加目录
cd -
:上一次所在目录
cd .
: 当前目录
cd ..
: 上级目录
pwd命令是查询所在目录的命令,基本信息以下:
命令格式:mkdir [选项] 目录名
选项:
-p
: 递归创建所需目录-m 权限
:创建目录的同时设置目录的权限rmdir命令删除空目录,基本信息以下:
命令格式:rmdir [选项] 目录名
选项:
-p
: 递归删除目录rmdir
命令的做用十分有限,只能删除空目录,一旦目录中有内容就会报错。因此通常不论删除的是文件仍是目录,都会使用rm
命令
touch命令建立空文件或修改文件时间,基本信息以下:
命令格式:touch [选项] 文件名
选项:
-a
:或--time=atime或--time=access或--time=use 更改存取时间为当前时间(access time)-m
:或--time=mtime或--time=modify 更该变更时间为当前时间(modify time)-t 日期时间
: 使用指定的日期时间(格式:[[CC]YY]MMDDhhmm[.ss]),而非如今的时间-r 参考文件或目录
: 把指定文件或目录的日期时间通通设成参考文件或目录的日期时间cat命令用来查看文件内容,进本信息以下:
命令格式:cat [选项] 文件名
选项:
-E
: 列出每行结尾的回车符$-n
: 显示行号-T
: 把Tab键用^I显示出来-v
: 列出特殊字符-A
: 至关于-vET选项的整合,用于列出全部隐藏符号more是分屏显示文件的命令,基本信息以下:
命令格式:more [选项] 文件名
选项:
-d
:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;-c
:不进行滚屏操做。每次刷新这个屏幕-s
:将多个空行压缩成一行显示-u
:禁止下划线-数字
:指定每屏显示的行数+数字
:从指定数字的行开始显示more 命令比较简单,通常不用什么选项,命令会打开一个交互界面,能够识别一些交互命令。经常使用的交互命令以下:
- 空格键:向下翻页
- B键: 向上翻页
- /字符串:搜索指定的字符串
- q: 退出
less命令和more命令相似,只是more命令是分屏显示,而less是分行显示命名,less命令容许用户向前(PageUp键)或向后(PageDown键)浏览文件,基本信息以下:
命令格式:less [选项] 文件名
-e
:文件内容显示完毕后,自动退出-f
:强制显示文件-g
:不加亮显示搜索到的全部关键词,仅显示当前显示的关键字,以提升显示速度-l
:搜索时忽略大小写的差别-N
:每一行行首显示行号-s
:将连续多个空行压缩成一行显示-S
:在单行显示较长的内容,而不换行显示-x数字
:将TAB字符显示为指定个数的空格字符head 命令是用来显示文件开头内容的命令,基本信息以下:
命令格式:head [选项] 文件名
-n 行数
:从文件开头开始,显示指定行数-v
:显示文件名tail 命令是用来显示文件结尾内容的命令
命令格式:tail [选项] 文件名
-n 行数
:从文件结尾开始,显示指定行数-v
:显示文件名-f
: 监听文件新增内容ln命令用来为文件创件连接,链接类型分为硬链接和符号链接(软连接)两种,基本信息以下:
命令格式:ln [选项] 源文件 [目标文件]
选项:
-s
选项建立软连接,则“源文件”能够是文件或者目录,建立硬连接时,则“源文件”参数只能是文件。(源文件最好用绝对路径名,这样能够在任何工做目录下进行符号连接,而当源文件用相对路径时,若是当前的工做路径与要建立的符号连接文件所在路径不一样,就不能进行连接)硬连接和源文件其实是同一个文件,不会建立新的文件(相似于Java中,一个对象有多个引用);而软连接会建立一个新文件来保存源文件的路径,从而间接读取或修改源文件内容
硬连接与软连接的特征
硬连接特征:
1.源文件和硬连接文件拥有相同的Indoe和Block
2.修改任意一个文件,另外一个都改变
3.删除任意一个文件,另外一个都能使用
4.硬连接创建或删除,原文件链接数相应加一或减一
5.硬连接不能连接目录
6.硬连接不能跨分区
7.硬连接标记不清,很难确认硬连接文件位置,不建议使用软连接特征:
1.软连接和源文件拥有不一样的Inode和Block
2.两个文件修改任意一个,另外一个都改变
3.删除软连接,源文件不受影响;删除源文件,软连接不能使用
4.软连接创建或删除,原文件连接数不变
5.软连接能够连接目录
6.软连接能够跨分区
7.软连接特征明显,建议使用软连接
8.软连接没有实际数据,只是保存源文件的Inode,不论源文件多大,软连接大小不变
9.软连接的权限是最大权限lrwxrwxrwx.
,可是因为没有实际数据,最终访问时须要参考源文件权限
rm是最强大的删除命令,不只能够删除文件,也能够删除目录,基本信息以下:
命令格式:rm [选项] 文件或目录
选项:
-f
: 强制删除-i
: 交互删除,在删除以前会询问用户-r
: 递归删除,能够删除目录cp命令用于复制文件或目录,基本信息入下:
命令格式:cp [选项] 源文件 目标文件
选项:
-d
: 若是文件为软连接(对硬连接无效),则复制出的目标文件也为软连接-i
: 询问,若是目标文件已经存在,则会询问是否覆盖-p
: 复制后目标文件保留源文件的属性(包括全部者、全部组、权限和时间)-r
: 递归复制,用于复制目录-a
: 至关于-dpr
选项的集合mv命令用来剪贴文件或目录,基本信息以下:
命令格式:cp [选项] 源文件 目标文件
选项:
-f
: 强制覆盖,若是目标文件已经存在,则不询问直接强制覆盖-i
: 交互模式,若是目标文件已经存在,则询问用户是否覆盖(默认选项)-v
:显示详细信息stat命令是查看文件详细的命令,基本信息以下:
命令格式:stat [选项] 文件名
选项:
-f
:显示文件系统状态而非文件状态-t
:以简洁方式输出信息使用ls命令时,长格式显示的第一列就是文件的权限,例如:
[root@localhost ~]# ls -l install.log -rw-r--r--. 1 root root 28425 11月 30 18:50 install.log
第一列的权限位(-rw-r--r--.
)若是不计最后的 "." (这个点表明受SELinux安全上下文保护,这里暂时忽略不作介绍),则共10位,这10位权限位的含义以下图所示:
第1位:表明文件类型。Linux不像Windows使用扩展名表示文件类型,而是使用权限位的第一位表示文件类型。虽然Linux文件的种类不像Windows中那么多,可是分类也很多,详细状况可使用“info ls
” 命令查看。这里列出一些常见的文件类型:
-
: 普通文件d
: 目录文件。Linux中一切皆文件,因此目录也是文件的一种l
: 软连接文件b
: 块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1就是这种文件c
: 字符设备文件。这也是特殊设备文件,输入设备通常都是这种文件,如鼠标、键盘等p
: 管道符文件。这是一种很是少见的特殊设备文件。s
: 套接字文件。这也是一种特殊设备文件,一些服务支持socket访问就会产生这样的文件第2~4位:表明文件全部者的权限
r
: 表明read,是读取权限w
: 表明write,是写权限x
: 表明execute,是执行权限权限含义的解释:
读、写、执行权限对文件和目录的做用是不一样的。
权限对文件的做用
cat
、more
、less
、head
、tail
等文件查看命令vim
、echo
等修改文件数据的命令。注意:对文件有写权限,是不能删除文件自己的,只能修改文件中的数据,若是想要删除文件,则须要对文件的上级目录拥有写权限。权限对目录的做用
ls
命令查看目录下的内容了touch
、rm
、cp
、mv
等命令。对目录来讲,写权限是最高权限cd
命令进入目录chmod用来修改文件的权限,基本信息以下:
命令格式:chmod [选项] 权限模式 文件或目录
选项:
-R
: 递归设置权限,也就是给予目录中的全部文件设定权限--reference=RFILE
:使用参考文件或参考目录RFILE的权限来设置目标文件或目录的权限。chmod命令的权限模式分为符号组合和八进制数组合
符号组合的格式是[ugoa][[+-=][permission]]
,也就是[用户身份][[赋予方式][权限]]
的格式。
用户身份
u
:表明全部者(user)g
:表明所属组(group)o
:表明其余人(other)a
:表明所有身份(all)赋予方式
+
:加入权限-
:减去权限=
:设置权限权限
r
: 读取权限(read)w
: 写权限(write)x
: 执行权限(execute)八进制数组合的格式是
[0-7][0-7][0-7]
三位数字组成(每一位数字都是权限之和),第一位是全部者权限,第二位是所属组权限,第三位其余人权限
r
读取权限对应的数字是4
w
写权限对应的数字是2
x
执行权限对应的数字是1
- 例如读写权限
rw
八进制数表示6
示例:
# 添加组用户的写权限。 chmod g+w ./test.log # 删除其余用户的全部权限。 chmod o= ./test.log # 使得全部用户都没有写权限。 chmod a-w ./test.log # 当前用户具备全部权限,组用户有读写权限,其余用户只有读权限。 chmod u=rwx, g=rw, o=r ./test.log (等价的八进制数表示:chmod 754 ./test.log ) # 将目录以及目录下的文件都设置为全部用户拥有读写权限。注意,使用'-R'选项必定要保留当前用户的执行和读取权限,不然会报错! chmod -R a=rw ./testdir/ # 根据其余文件的权限设置文件权限。 chmod --reference=./1.log ./test.log
chown 命令用来修改文件和目录的全部者和所属组,基本信息以下:
命令格式:chown [选项] 全部者[:所属组] 文件或目录
选项:
-R
:递归设置权限,也就是给予子目录的全部文件设置权限注意:普通用户不能修改文件的全部者,哪怕本身是这个文件的全部者也不行。普通用户能够修改全部者是本身的文件权限。
umask命令用来显示或设置建立文件或目录的权限掩码。
咱们须要先了解一下新建文件和目录的默认最大权限,对于文件来说,新建文件的默认最大权限是666
,没有执行权限,只是由于执行权限对文件来说比较危险,不能再新建文件的时候默认赋予,而必须经过用户手工赋予;对于目录来说,新建目录的默认最大权限是777
,这是由于对目录而言,执行权限仅仅表明进入目录,因此即便新建目录时直接默认赋予也没有什么危险。
按照官方的标准算法,umask
默认权限须要使用二进制进行逻辑与和逻辑非联合运算才能够获得正确的新建文件和目录的默认权限,这种方法既很差计算也很差理解,不推荐。咱们这里按照权限字母来说解umask
权限的计算方。咱们就按照默认的umask
值是0022
(等效于022
)分别来计算一下新建文件和目录的默认权限,
666
,而umask
的值是022
,则 rw-rw-rw-
减去 ----w--w-
等于rw-r--r--
,因此新建文件的默认权限是rw-r--r--
777
,而umask
的值是022
,则 rwxrwxrwx
减去 ----w--w-
等于rwxr-xr-x
,因此新建目录的默认权限是rwxr-xr-x
umask
的值是033
,新建文件的默认权限为 rw-rw-rw-
减去 ----wx-wx
等于rw-r--r--
命令格式:umask [选项] [模式]
选项:
-p
:输出的权限掩码可直接做为指令来执行-S
:以符号组合的方式输出权限掩码,不使用该选项时以八进制数的形式输出示例:
# 以八进制数的形式输出权限掩码 [root@localhost tmp]# umask 0022 # 以八进制数的形式输出权限掩码,并做为指令来执行 [root@localhost tmp]# umask -p umask 0022 # 以符号组合的方式输出权限掩码。 [root@localhost tmp]# umask -S u=rwx,g=rx,o=rx #上条命令以符号组合的方式输出权限掩码,输出的结果u=rwx,g=rx,o=rx转化为八进制数等于0755, #用八进制数来设置一样的权限,umask须要额外的执行减法"0777 - 0755"即0022 [root@localhost tmp]# umask 0022 # 为组用户添加写权限 [root@localhost tmp]# umask g+w # 删除其余用户的写、执行权限 [root@localhost tmp]# umask o-wx # 赋值所有用户全部权限,等价于umask u=rwx,g=rwx,o=rwx [root@localhost tmp]# umask a=rwx #清除其余用户的读、写、执行权限 [root@localhost tmp]# umask o=
man命令是最多见的帮助命令,也是Linux最主要的帮助命令,基本信息以下:
命令格式:man [选项] [章节] 命令
选项:
whatis
指令man
命令交互快捷键:
上箭头
:向上移动一行下箭头
:向下移动一行PgUP
:向上翻一页PgDn
:向下翻一页g
:移动到第一页G
:移动到最后一页q
:退出/字符串
:从当前向下搜索字符串?字符串
:从当前向上搜索字符串n
:当搜索字符串时,能够用n键找到下一个字符串N
:当搜索字符串时,使用N键反向查询字符串。也就是说,若是使用“/字符串”方式搜索,则N键表示向上搜索字符串;若是使用“?字符串”方式搜索,则N键表示向下搜索字符串man
手册章节:
1
: 用户在shell环境可操做的命令或执行文件2
: 系统内核可调用的函数与工具等3
: 一些经常使用的函数(function)与函数库(library),大部分为C的函数库(libc)4
: 设备文件说明,一般在/dev下的文件5
: 配置文件或某些文件格式6
: 游戏帮助(我的版的Linux中是有游戏的)7
: 惯例与协议等,如Linux文件系统,网络协议,ASCII code等说明8
: 系统管理员可用的管理命令9
: 跟kernel有关的文件man
手册的格式:
NAME
: 命令名称及功能简要说明SYNOPSIS
:用法说明,包括可用的选项
[]
:可选内容<>
:必选内容a|b
:二选一{}
:分组...
:赞成内容可出现屡次DESCRIPTION
:命令功能的详细说明,可能包括每个选项的意义OPTIONS
:说明每一项的意义EXAMPLES
:使用示例* FILES
:此命令相关的配置文件
* AUTHOR
:做者
* COPYRIGHT
:版本信息
* REPORTTING BUGS
:bug信息
SEE ALSO
:参考其余帮助示例:
咱们输入 man ls
,它会在最左上角显示“LS(1)”,在这里,“LS”表示手册名称,而“(1)”表示该手册位于第一节章,一样,咱们输 man ifconfig
它会在最左上角显示“IFCONFIG(8)”。也能够这样输入命令:“man [章节号] 手册名称”。
man
是按照手册的章节号的顺序进行搜索的,好比:man sleep
只会显示sleep命令的手册,若是想查看库函数sleep,就要输入:man 3 sleep
info 命令的帮助信息是一套完整的资料,每一个单独命令的man
帮助信息只是这套完整资料的某一个区段(节点),基本信息以下:
命令格式:info [选项] 参数
选项:
-d
:添加包含info格式帮助文档的目录-f
:指定要读取的info格式的帮助文档-n
:指定首先访问的info帮助文件的节点-o
:输出被选择的节点内容到指定文件info
命令交互快捷键
上箭头
:向上移动一行下箭头
:向下移动一行PgUP
:向上翻一页PgDn
:向下翻一页Tab
:在有“*”符号的节点间切换回车
:进入有“*” 符号的子页面,查看详细帮助信息u
:进入上一层信息(回车是进入下一层信息)q
:退出info帮助信息n
:进入下一小节信息p
:进入上一下节信息?
:查看帮助信息help 命令只能获取shell内置命令的帮助,基本信息以下:
type
来区份内置命令与外部命令,对于外部命令的帮助信息只能使用man
或者info
命令查看命令格式:help [选项] 内置命令
选项:
-d
:显示内建命令的简要描述。-m
:按照man手册的格式输出内置命令的帮助信息。-s
:仅输出内建命令的命令格式。示例:
# 以man手册的格式查看内置命令type的帮助信息 [root@localhost ~]# help -m type NAME type - Display information about command type. SYNOPSIS type [-afptP] name [name ...] (省略。。。) # 查看ls、help命令是不是内置命令 [root@localhost ~]# type ls ls is aliased to `ls --color=auto' [root@localhost ~]# type help help is a shell builtin
绝大多数命令均可以使用--help
选项来查看帮助,者也是一种获取帮助的方法。例如 ls --help
,这种方法很是简单,输出的帮助信息基本上是man
命令的信息简要版。
whereis 是搜索命令的命令,也就是说whereis不能搜索普通文件,而只能搜索系统命令,基本信息以下:
命令格式:whereis [选项] 参数
选项:
-b
:只查找二进制文件-B 目录
:只在设置的目录下查找二进制文件-m
:只查找说明文件-M 目录
:只在设置的目录下查找说明文件-s
:只查找原始代码文件-S 目录
:只在设置的目录下查找原始代码文件-f
:不显示文件名前的路径名称which 也是搜索系统命令的命令,和whereis
的区别在于,whereis
命令能够在查找二进制命令的同时,查找帮助文档的位置,而which
命令在查找到二进制命令的同时,若是这个命令有别名,则还能够查到别名命令。基本信息以下:
which
只会在环境变量$PATH设置的目录里查找符合条件的命令命令格式:which [选项] 参数
find命令用来在指定目录下查找文件,基本信息以下:
命令格式:find [搜索路径] [选项]
选项:
-name 范本样式
:按照文件名称搜索,支持通配符模糊查询-iname 范本样式
:此参数的效果和指定“-name”参数相似,但忽略字符大小写的差异-inum inode编号
:查找符合指定的inode编号的文件或目录-path 范本样式
:查找路径包含范本样式的文件或目录-regex 范本样式
:正则表达式搜索-iregex 范本样式
:同"-regex",忽略大小写-size [+|-]文件大小[cwbkMG]
:查找符合指定的文件大小的文件
-atime [+|-]天数
:按照文件最后一次访问时间搜索,单位天天
-mtime [+|-]天数
:按照文件数据最后一次修改时间搜索,单位天天-ctime [+|-]天数
:按照文件元数据(如权限等)最后一次修改时间搜索,单位天天-amin [+|-]分钟数
:按照文件最后一次访问时间搜索,单位每分钟-mmin [+|-]分钟数
:按照文件数据最后一次修改时间搜索,单位每分钟-cmin [+|-]分钟数
:按照文件元数据(如权限等)最后一次修改时间搜索,单位每分钟-perm [+|-]权限数值
:查找符合指定的权限数值的文件或目录。例如,权限数值为"766"表示权限刚好等于766,"-766"表示文件权限必须所有包含766,"+766"表示文件权限包含766任意一个权限-uid 用户ID
:查找全部者是指定用户ID的文件-user 用户名
:查找全部者是指定用户名的文件-gid 组ID
:查找全部组是指定组ID的文件-group 组名
:查找全部组是指定组名的文件-nouser
:查找没有全部者的文件
-type 文件类型
:只寻找符合指定的文件类型的文件
f
——普通文件,l
——符号链接,d
——目录,c
——字符设备,b
——块设备,s
——套接字,p
——Fifo-empty
:查找文件大小为0的文件-maxdepth 目录层级数
:设置搜索的最大目录层级-mindepth 目录层级
:设置搜索的最小目录层级-exec 执行指令
:把find命令查找结果交由"-exec"调用的命令来处理
find [搜索路径] [选项] -exec 命令 {} \;
, 其中"{}"表明find命令的查询结果-ok 执行指令
:此参数的效果和指定“-exec”相似,但在执行指令以前会先询问用户是否执行-prune
:不寻找字符串做为寻找文件或目录的范本样式-a
:and 逻辑与-o
: or 逻辑或-not
:not 逻辑非示例:
#==================根据文件名或者正则表达式进行匹配===================== #列出当前目录及子目录下全部文件和文件夹 [root@localhost ~]# find . #在`/home`目录下查找以.txt结尾的文件名 [root@localhost ~]# find /home -name "*.txt" #同上,但忽略大小写 [root@localhost ~]# find /home -iname "*.txt" #当前目录及子目录下查找全部以.txt和.pdf结尾的文件 [root@localhost ~]# find . \( -name "*.txt" -o -name "*.pdf" \) 或 [root@localhost ~]# find . -name "*.txt" -o -name "*.pdf" #查找路径包含local的文件或者目录 [root@localhost ~]# find /usr/ -path "*local*" #基于正则表达式匹配文件路径 [root@localhost ~]# find . -regex ".*\(\.txt\|\.pdf\)$" #=====================借助`-exec`选项与其余命令结合使用================== #找出当前目录下全部root的文件,并把全部权更改成用户tom [root@localhost ~]# find .-type f -user root -exec chown tom {} \; #找出本身家目录下全部的.txt文件并删除,删除前先询问 [root@localhost ~]# find $HOME/. -name "*.txt" -ok rm {} \; #查找当前目录下全部.txt文件并把他们拼接起来写入到all.txt文件中 [root@localhost ~]# find . -type f -name "*.txt" -exec cat {} \;> all.txt #将30天前的.log文件移动到old目录中 [root@localhost ~]# find . -type f -mtime +30 -name "*.log" -exec cp {} old \; #找出当前目录下全部.txt文件并以“File:文件名”的形式打印出来 [root@localhost ~]# find . -type f -name "*.txt" -exec printf "File: %s\n" {} \; #========================逻辑运算符========================== #查找文件大小超过2k而且是普通文件类型的文件 [root@localhost ~]# find . -size +2k -a -type f #找出/home下不是以.txt结尾的文件 [root@localhost tmp]# find . -not -name "*.txt" 或 [root@localhost ~]# find /home ! -name "*.txt" #======================搜索但跳出指定的目录=================== #查找当前目录或者子目录下全部.txt文件,可是跳过子目录sk [root@localhost ~]# find . -path "./sk" -prune -o -name "*.txt"
locate命令实际上是find -name
的另外一种写法,可是要比后者快得多,缘由在于它不搜索具体目录(find
是去硬盘找),而是搜索一个数据库/var/lib/mlocate/mlocate.db
,这个数据库中含有本地全部文件信息。Linux系统自动建立这个数据库,而且天天自动更新一次,因此使用locate
命令查不到最新变更过的文件,为了不这种状况,能够在使用locate
以前,先使用updatedb
命令手动更新数据库。locate命令基本信息以下:
命令格式:locate [选项] 文件名
选项:
-d
: 指定资料库的路径。默认是/var/lib/mlocate/mlocate.db-n
:至多显示n个输出数据库配置文件(/etc/updatedb.conf
)内容说明:
[root@localhost ~]# cat /etc/updatedb.conf #开启搜索限制,也就是让这个文件生效 PRUNE_BIND_MOUNTS = "yes" #在locate执行搜索时,禁止搜索这些文件类型 PRUNEFS = "9p afs anon_inodefs auto autofs bdev binfmt_misc cgroup cifs coda configfs cpuset debugfs devpts ecryptfs exofs fuse fusectl gfs gfs2 gpfs hugetlbfs inotifyfs iso9660 jffs2 lustre mqueue ncpfs nfs nfs4 nfsd pipefs proc ramfs rootfs rpc_pipefs securityfs selinuxfs sfs sockfs sysfs tmpfs ubifs udf usbfs" #在locate执行搜索时,禁止搜索这些扩展名的文件 PRUNENAMES = ".git .hg .svn" ##在locate执行搜索时,禁止搜索这些系统目录 PRUNEPATHS = "/afs /media /net /sfs /tmp /udev /var/cache/ccache /var/spool/cups /var/spool/squid /var/tmp"
locate优缺点:
优势:按照数据库搜索,搜索速度快,消耗资源小
缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,好比按照权限、大小、修改时间等
grep命令的做用是在文件中提取和匹配符合条件的字符串行,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。基本信息以下:
命令格式:grep [选项] 搜索内容 文件名
选项:
-i
:忽略大小写-n
:输出行号-v
:反向查找-d 动做
: 当指定要查找的是目录而非文件时,必须使用这项参数,不然grep指令将回报信息并中止动做。动做包含:read、recurse、skip-R
或-r
: 此参数的效果和指定“-d recurse”参数相同,递归查找目录下的全部文件内容--color=auto
:搜素出的关键字用颜色高亮显示find也是搜索命令,那么find与grep命令有什么区别呢?
find:find命令用于在系统中搜索符合条件的文件名,若是须要模糊查询,则使用通配符进行匹配,通配符是彻底匹配。(find命令也能够经过"-regex"选项,把匹配规则转为正则表达式规则)
grep:grep命令用于在文件中搜索符合条件的字符串,若是须要模糊查询,则使用正则表达式进行匹配,正则表达式是包含匹配。
通配符与正则表达式的区别
通配符:通常用于匹配文件名,彻底匹配
?
:匹配一个任意字符*
:匹配0个或多个任意字符,也就是能够匹配任何内容[]
:匹配中括号里任意一个字符。例如,[abc]表明必定匹配一个字符,或是a,或是b,或是c[-]
:匹配中括号里任意一个字符,"-"表明一个范围。例如,[a-z]表明匹配一个小写字母[^]
:逻辑非,表示匹配不是中括号里的一个字符。例如,[^0-9]表明匹配一个不是数字的字符正则表达式:通常用于匹配字符串
?
:匹配前一个字符重复0次或1次*
:匹配前一个字符重复0次或屡次[]
:匹配中括号里任意一个字符。例如,[abc]表明必定匹配一个字符,或是a,或是b,或是c[-]
:匹配中括号里任意一个字符,"-"表明一个范围。例如,[a-z]表明匹配一个小写字母[^]
:逻辑非,表示匹配不是中括号里的一个字符。例如,[^0-9]表明匹配一个不是数字的字符^
:匹配行首$
:匹配行尾
示例:
#在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行: [root@localhost ~]# grep match_pattern file_name 或 [root@localhost ~]# grep "match_pattern" file_name #在多个文件中查找: [root@localhost ~]# grep "match_pattern" file_1 file_2 file_3 #标记匹配颜色 --color=auto 选项: [root@localhost ~]# grep "match_pattern" file_name --color=auto #在当前目录中对文本进行递归搜索 [root@localhost ~]# grep -r "match_pattern" . #正则匹配输出以数字开头的全部行 [root@localhost ~]# grep "^[0-9].*" file_name
命令格式:命令1 | 命令2
"|"管道符的做用是把命令1的正确输出做为命令2的操做对象
示例1:
咱们常用 "ll" 命令查看文件的长格式,不过在有些目录中文件不少,不如/etc/目录使用 "ll" 命令显示的内容就很是多,只能看到最后的内容而不能看到前面输出的内容,这时咱们立刻想到 "more" 命令能够分屏显示文件内容,一种笨方法是:
#用输出重定向,把"ll"命令的输出保存到/root/testfile [root@localhost ~]# ll -a /etc/ > /root/testfile #而后用more分屏显示 [root@localhost ~]# more /root/testfile
这样操做实在是不方便,这时能够利用管道符,命令以下:
#把"ll"命令的输出做为"more"命令的操做对象 [root@localhost ~]# ll -a /etc/ | more
示例2:
#在"ll"命令输出内容中搜索yum的文件名 [root@localhost ~]# ll -a /etc/ | grep yum
示例3:
#统计具体的网络链接数量("grep"命令筛选,"wc"命令统计) [root@localhost ~]# netstat -an | grep -i "ESTABLISHED" | wc -l
alias命令用来设置指令的别名,咱们可使用该命令能够将一些较长的命令进行简化。
alias基本使用方法:
打印已经设置的命令别名
alias
或 alias -p
给命令设置别名
alias 新的命令='实际命令'
。必须使用单引号''实际命令引发来,防止特殊字符致使错误alias l='ls -lsh'
,如今只用输入 "l" 就能够列出目录了,至关于输入"ls -lsh";alias ser='service network restart'
,如今输入"ser"就能够重启网络服务了直接在shell里设定的命令别名,在终端关闭或者系统从新启动后都会失效,如何才能永久有效呢?
使用编辑器打开~/.bashrc,在文件中加入别名设置,如:alias rm='rm -i',保存后执行source ~/.bashrc,这样就能够永久保存命令的别名了。由于修改的是当前用户目录下的~/.bashrc文件,因此这样的方式只对当前用户有用。若是要对全部用户都有效,修改/etc/bashrc文件就能够了。
在Linux中能够识别的常见压缩格式有十几种,好比".zip"、".gz"、".bz2"、".tar"、".tar.gz"、".tar.bz2"等。减小文件大小有两个明显的好处,一是能够减小存储空间,二是经过网络传输文件时,能够减小传输的时间
".zip"是Windows中最多见的压缩格式,Liunx也能够正确识别".zip"格式,这能够方便地和Windows系统通用压缩文件。
zip命令就是".zip"格式的压缩命令,基本信息以下:
命令格式:zip [选项] 压缩包名 源文件或目录
选项:
-r
:压缩目录递归处理,将指定目录下的全部文件和子目录一并处理unzip命令就是".zip"格式的解压缩命令,基本信息以下:
命令格式:unzip [选项] 压缩包名
选项:
-d
:指定解压的位置".gz"格式是Linux中最多见的压缩格式。
gzip命令是".gz"格式的压缩和解压缩命令,既方便又好用。gzip不只能够用来压缩大的、较少使用的文件以节省磁盘空间,还能够和tar命令一块儿构成Linux操做系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。注意:gzip不会打包文件,压缩的过程源文件会对应变为".gz"格式的压缩文件(源文件被删除),解压缩的过程将".gz"格式的压缩文件再恢复成对应的源文件。基本信息以下:
命令格式:gzip [选项] 源文件
选项:
-d
:执行解压缩-r
:递归处理,将指定目录下的全部文件及子目录一并处理-c
:将压缩数据输出到标准输出中,能够保留源文件
gzip -c abc > abc.gz
-l
:列出压缩文件的相关信息gunzip命令用来解压缩 ".gz" 格式的文件(即便用 "gzip" 命令压缩的文件),做用至关于 "gzip -d 压缩文件",所以不管是压缩或解压缩,均可经过 "gzip" 指令单独完成。基本下信息以下:
命令格式:gunzip [选项] 压缩文件
选项:
-r
:递归处理,将指定目录下的全部文件及子目录一并处理-c
:把解压后的文件数据输出到标准输出中,能够保留压缩文件-l
:列出压缩文件的相关信息".bz2" 格式是Linux的另外一种压缩格式,从理论上来说,".bz2" 格式的算法更新进、压缩比更好;而 ".gz" 格式相对来说压缩的时间更快
bzip2 命令是 ".bz2" 格式文件的压缩和解压缩命令。注意:"bzip2"不能用来压缩目录。基本信息以下:
命令格式:bzip2 [选项] 源文件
选项:
-d
:执行解压缩-k
:压缩或解压缩后,会删除原始文件,若要保留原始文件,请使用此参数-f
:在压缩或解压缩时,若输出文件与现有文件同名,强制覆盖现有文件-c
:将压缩与解压缩的数据输出到标准输出中bunzip2命令用来解压缩 ".bz2" 格式的文件(即便用 "bzip2" 命令压缩的文件),做用至关于 "bzip2 -d 压缩文件",所以不管是压缩或解压缩,均可经过 "bzip2" 指令单独完成。基本信息以下:
命令格式:bunzip2 [选项] 压缩文件
选项:
-k
:bzip2在解压缩后,会删除原始压缩文件,若要保留原始压缩文件,请使用此参数-f
:解压缩时,若输出的文件与现有文件同名时,强制覆盖现有的文件-c
:将解压缩的数据输出到标准输出中tar命令能够把一大堆的文件和目录所有打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是很是有用的。注意:打包和压缩是两个不一样的概念,打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件经过一些压缩算法变成一个小文件。为何要区分这两个概念呢?这源于Linux中不少压缩程序(gzip、bzip2)只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你得先将这一大堆文件先打成一个包(tar),而后再用压缩程序进行压缩。tar命令基本信息以下:
命令格式:
打包:tar -c [选项] [-f 包文件名] 源文件或目录
解打包:tar -x [选项] -f 包文件名
选项:
-c
:执行打包-x
:执行解打包-z
:支持压缩和解压缩 ".tar.gz" 格式文件-j
:支持压缩和解压缩 ".tar.bz2" 格式文件-C 目录路径
:指定解打包位置-f 包文件名
: 指定打包文件名(.tar)或压缩包文件名(.tar.gz、.tar.bz2)。(执行打包时不写此选项,会默认把打包数据输出到屏幕)-v
: 显示打包或解打包过程-t
:测试,就是不解打包,只是查看包中有哪些文件示例:
#=======================".tar"格式========================= #打包不会压缩 [root@localhost ~]# tar -cvf anaconda-ks.cfg.tar anaconda-ks.cfg #解打包到当前目录 [root@localhost ~]# tar -xvf anaconda-ks.cfg.tar #解打包到指定目录 [root@localhost ~]# tar -xvf anaconda-ks.cfg.tar -C /testdir/ #=====================".tar.gz"格式===================== #把/tmp/目录直接打包并压缩为".tar.gz"格式 [root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/ #解压缩并解打包".tar.gz"格式文件 [root@localhost ~]# tar -zxvf tmp.tar.gz #=====================".tar.bz2"格式===================== #把/tmp/目录直接打包并压缩为".tar.bz2"格式 [root@localhost ~]# tar -jcvf tmp.tar.gz /tmp/ #解压缩并解打包".tar.bz2"格式文件 [root@localhost ~]# tar -jxvf tmp.tar.gz
sync命令用于强制被改变的内容马上写入磁盘。在Linux/Unix系统中,在文件或数据处理过程当中通常先放到内存缓冲区中,等到适当的时候再写入磁盘,以提升系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据当即写入磁盘中。用户一般不需执行sync命令,系统会自动执行update或bdflush操做,将缓冲区的数据写入磁盘。只有在update或bdflush没法执行或用户须要非正常关机时,才需手动执行sync命令。基本信息以下:
命令格式:sync [选项]
shutdown命令用来系统关机。shutdown指令能够关闭全部程序,并依用户的须要,进行从新开机或关机的动做。基本信息以下:
命令格式:shutdown [选项] 时间 [警告信息]
选项:
-c
:取消将要执行的shutdown命令-h
:系统关机-r
:系统重启now
当即执;hh:mm
指定肯定时间点执行;+分钟数
延迟指定分钟后执行示例:
#当即关机 [root@localhost ~]# shutdown -h now #指定5分钟后关机,同时送出警告信息给登入用户: [root@localhost ~]# shutdown +5 "System will shutdown after 5 minutes"
reboot命令用来从新系统,命令也是安全的,并且不须要过多的选项
命令格式:reboot [选项]
选项:
-d
:从新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具备“-n”参数效果;-f
:强制从新开机,不调用shutdown指令的功能;-i
:在重开机以前,先关闭全部网络界面;-n
:重开机以前不检查是否有未结束的程序;-w
:仅作测试,并不真正将系统从新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。halt 和 poweroff 这两都是系统关机命令,直接执行便可。可是两个命令不会完整关闭和保存系统的服务,不建议使用。
init 命令是修改Linux 运行级别的命令,是Linux下的进程初始化工具,init进程是全部Linux进程的父进程,它的进程号为1。也能够用于关机和重启,这个命令并不安全,不建议使用
命令格式:init [选项] 系统运行级别
选项:
-b
:不执行相关脚本而直接进入单用户模式-s
:切换到单用户模式示例:
#关机,也就是调用系统的0级别 [root@localhost ~]# init 0 #重启,也就是调用系统的6级别 [root@localhost ~]# init 6
Linux有7个系统运行级别
运行级别 | 含义 |
---|---|
0 | 关机 |
1 | 单用户模式,能够想象为Windows的安全模式,主要用于系统修复 |
2 | 不彻底的命令模式,不含NFS服务 |
3 | 彻底的命令模式,就是标准字符界面 |
4 | 系统保留,没有用到 |
5 | 图形模式 |
6 | 重启动 |
runlevel
命令可查看当前系统运行级别
IP地址是计算机在互联网中惟一的地址编码,每台计算机若是须要接入网络和其余计算机进行数据通讯,就必须配置惟一的IP地址
IP地址的配置有两种方法:
手工修改网卡配置文件
第一步:编辑网卡文件,vi /etc/sysconfig/network-scripts/ifcfg-eth0
,"ifcfg-eth0"是第一块网卡,第二块网卡则为"ifcfg-eth1",以此类推。网卡文件内容配置项以下:
vim /etc/resolv.conf
,里面的内容是系统自动生成的,通常不须要修改service network restart
或 /etc/init.d/network restart
注意:使用虚拟机克隆时,UUID可能复制的是同样的,致使网络服务启动失败,须要重置UUID值:
第一步:编辑网卡文件,删除UUID和MAC地址
第二步: 删除MAC地址和UUID绑定文件,rm -rf /etc/udev/rules.d/70-persistent-net.rules
第三部:重启系统
ifconfig 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在,要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。基本信息以下:
命令格式:ifconfig [参数]
参数:
add 地址
:设置网络设备IPv6的ip地址;del 地址
:删除网络设备IPv6的IP地址;down
:关闭指定的网络设备;<hw<网络设备类型><硬件地址>
:设置网络设备的类型与硬件地址;io_addr I/O地址
:设置网络设备的I/O地址;irq IRQ地址
:设置网络设备的IRQ;media 网络媒介类型
:设置网络设备的媒介类型;mem_start 内存地址
:设置网络设备在主内存所占用的起始地址;metric 数目
:指定在计算数据包的转送次数时,所要加上的数目;mtu 字节
:设置网络设备的MTU;netmask 子网掩码
:设置网络设备的子网掩码;tunnel 地址
:创建IPv4与IPv6之间的隧道通讯地址;up
:启动指定的网络设备;IP地址
:指定网络设备的IP地址;网络设备
:指定网络设备的名称。ifconfig 命令最主要的做用就是查看IP地址的信息,直接输入ifconfig
命令便可显示激活状态的网络设备信息:
[root@localhost ~]# ifconfig eth0 Link encap:Ethernet HWaddr 00:16:3E:00:1E:51 inet addr:10.160.7.81 Bcast:10.160.15.255 Mask:255.255.240.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0 TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:3607197869 (3.3 GiB) TX bytes:6115042 (5.8 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:56103 errors:0 dropped:0 overruns:0 frame:0 TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:5079451 (4.8 MiB) TX bytes:5079451 (4.8 MiB)
内容说明:
lo 是表示主机的回环地址,这个通常是用来测试一个网络程序,但又不想让局域网或外网的用户可以查看,只能在此台主机上运行和查看所用的网络接口。好比把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了,但只是本机能看获得,局域网的其它主机或用户无从知道
其余示例:
#启动和关闭网卡eth0。关闭网卡eth0,ssh登录linux服务器操做要当心,关闭了就不能开启了,除非你有多网卡 [root@localhost ~]# ifconfig eth0 up [root@localhost ~]# ifconfig eth0 down #为网卡eth0配置IPv6地址 [root@localhost ~]# ifconfig eth0 add 33ffe:3240:800:1005::2/64 #为网卡eth0删除IPv6地址 [root@localhost ~]# ifconfig eth0 del 33ffe:3240:800:1005::2/64 #用ifconfig修改MAC地址 [root@localhost ~]# ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE #ifconfig配置IP地址 [root@localhost ~]# ifconfig eth0 192.168.2.10 [root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 [root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255 #启用和关闭arp协议 [root@localhost ~]# ifconfig eth0 arp [root@localhost ~]# ifconfig eth0 -arp #设置最大传输单元,这里设置能经过的最大数据包大小为 1500 bytes [root@localhost ~]# ifconfig eth0 mtu 1500
ping 命令是经常使用的网络命令,主要经过ICMP协议进行网络探测,测试网络中主机的通讯状况。基本信息以下:
命令格式: ping [选项] IP
选项:
示例:
#探测整个网段中有多少主机是能够和本机通讯的,而不是一个一个IP地址地进行探测 [root@localhost ~]# ping -b -c 3 192.168.199.255 WARNING: pinging broadcast address PING 192.168.199.255 (192.168.199.255) 56(84) bytes of data. 64 bytes from 192.168.199.216: icmp_seq=1 ttl=64 time=77.7 ms 64 bytes from 192.168.199.131: icmp_seq=2 ttl=64 time=102 ms 64 bytes from 192.168.199.216: icmp_seq=3 ttl=64 time=19.5 ms --- 192.168.199.255 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2023ms rtt min/avg/max/mdev = 19.515/66.701/102.798/34.892 ms
netstat是网络状态查看命令,既能够查看到本机开启的端口,也能够查看哪些客户端链接。在CentOS 7.x中 netstat 命令默认没有安装,若是须要使用,须要先安装 "net-snmp" 和 "net-tools" 软件包。基本信息以下:
命令格式:netstat [选项]
选项:
-a
:列出全部网络状态,包括Socket程序-c 秒数
:制定每隔几秒刷一次网络状态-n
:使用IP地址和端口号显示,不使用域名与服务名-p
:显示PID和程序-t
:显示使用TCP协议端口的链接状况-u
:显示使用UDP协议端口的链接状况-l
:仅显示监听状态的链接-r
:显示路由表示例 1:查看本机开启的端口
这是本机最经常使用的方式,使用"-tuln"选项。由于使用了"-l"选项,因此只能看到监听状态的链接,而不能看到已经创建链接状态的链接,
[root@localhost ~]# netstat -tuln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 :::11211 :::* LISTEN tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::22 :::* LISTEN udp 0 0 0.0.0.0:11211 0.0.0.0:* udp 0 0 :::11211 :::*
这个命令输出内容较多,下面对每列进行说明:
State:状态。常见的状态主要有如下几种:
示例 2:查看本机有哪些程序开启的端口
若是使用“-p”选项,查询结果会多出一列"PID/Program name",则能够查看到是哪一个程序占用了端口,而且能够知道这个程序的 PID
[root@localhost ~]# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2359/mysqld tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 1563/memcached tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1490/sshd tcp 0 0 :::11211 :::* LISTEN 1563/memcached tcp 0 0 :::80 :::* LISTEN 21025/httpd tcp 0 0 :::22 :::* LISTEN 1490/sshd udp 0 0 0.0.0.0:11211 0.0.0.0:* 1563/memcached udp 0 0 :::11211 :::* 1563/memcached
示例 3:查看全部链接
使用选项“-an”能够查看全部链接,包括监听状态的链接(LISTEN)、已经创建链接状态的
链接(ESTABLISHED)、Socket 程序链接等。由于链接较多,因此输出的内容有不少
[root@localhost ~]# netstat -an Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN tcp 0 0 117.79.130.170:80 78.46.174.55:58815 SYN_RECV tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 117.79.130.170:22 124.205.129.99:10379 ESTABLISHED tcp 0 0 117.79.130.170:22 124.205.129.99:11811 ESTABLISHED ...省略部份内容... udp 0 0 0.0.0.0:11211 0.0.0.0:* udp 0 0 :::11211 :::* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 12668 /var/run/mcelog-client unix 2 [ ACC ] STREAM LISTENING 12193 @/var/run/hald/dbus-ZeYsMXZ7Uf ...省略部份内容...
从 "Active UNIX domain sockets" 开始,以后的内容就是 Socket 程序产生的链接,以前的内容都是网
络服务产生的链接。咱们能够在“-an”选项的输出中看到各类网络链接状态,而以前的“-tuln”选项则只能看到监听状态的链接
write 命令用于向指定登陆用户终端上发送信息。经过write命令可传递信息给另外一位登入系统的用户,当输入完毕后,键入 "回车" 表示发送,键入 "Ctrl+C" 表示信息结束。若是接收信息的用户不仅登入本地主机一次,你能够指定接收信息的终端机编号。基本信息:
命令格式 :write 用户名 [终端编号]
用户名
:指定要接受信息的登陆用户终端编号
:指定接收信息的用户的登陆终端,若是省略,且用户在多个终端登陆,会发送给其中一个终端wall命令用于向系统当前全部打开的终端上输出信息,而 "write" 命令用于给指定用户发送消息。
命令格式:wall 消息
示例:
[root@localhost ~]# wall "I will be in 5 minutes to restart, please save your data"
系统中有一些重要的痕迹日志文件,如 /var/log/wtmp、 /var/run/utmp、 /var/log/btmp、/var/log/lastlog 等日志文件,若是你用 vim 打开这些文件,你会发现这些文件是二进制乱码。这是因为这些日志中保存的是系统的重要登陆痕迹,包括某个用户什么时候登陆了系统,什么时候退出了系统,错误登陆等重要的系统信息。这些信息要是能够经过 vim 打开,就能编辑,这样痕迹信息就不许确,因此这些重要的痕迹日志,只能经过对应的命令来进行查看。
w 命令是显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是 "/var/run/utmp"。基础信息以下:
命令格式:w [选项] [用户名]
选项:
-h
:不打印头信息;-u
:当显示当前进程和cpu时间时忽略用户名;-s
:使用短输出格式;-f
:显示用户从哪登陆;示例:
[root@localhost ~]# w 18:31:08 up 1 day, 16 min, 3 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - Sat18 49:23 0.07s 0.07s -bash root pts/0 192.168.199.119 18:22 8:17 0.02s 0.02s -bash root pts/1 192.168.199.119 18:22 0.00s 0.03s 0.00s w
说明:
第一行内容:
第二行内容:
who 命令和 w 命令相似,用于查看正在登陆的用户,但显示的内容更加简单,也是查看 "/var/run/utmp" 日志。
命令格式:who [选项] [查询文件]
选项:
-H
:显示各栏位的标题信息列-q
:只显示登入系统的账号名称和总人数-w
:显示用户的信息状态栏-u
:显示闲置时间,若该用户在前一分钟以内有进行任何动做,将标示成"."号,若是该用户已超过24小时没有任何动做,则标示出"old"字符串last 命令查看系统全部登陆过的用户信息,包括正在登陆的用户和以前登陆的用户,这个命令查看的是 "/var/log/wtmp" 痕迹日志文件
命令格式:last [选项] [用户|终端]
选项:
-a
:把从何处登入系统的主机名称或ip地址,显示在最后一行-d
:将IP地址转换成主机名称-f 记录文件
:指定记录文件-n 显示列数
或-显示列数
:设置列出名单的显示列数-R
:不显示登入系统的主机名称或IP地址-x
:显示系统关机,从新开机,以及执行等级的改变等信息lastlog 命令是查看系统中全部用户最好一次的登陆时间的命令,这个命令查看的是 "/var/log/lastlog" 痕迹日志文件
命令格式:lastlog [选项]
选项:
-b 天数
:显示指定天数前的登陆信息-t 天数
:显示指定天数以来的登陆信息-u 用户名
:显示指定用户的最近登陆信息lastb 命令是查看错误登陆的信息的,查看的是 "/var/log/btmp" 痕迹日志
命令格式:lostb [选项] [用户|终端]
选项:
-a
:把从何处登入系统的主机名称或ip地址显示在最后一行-d
:将IP地址转换成主机名称-f 记录文件
:指定记录文件-n 显示列数
或-显示列数
:设置列出名单的显示列数-R
:不显示登入系统的主机名称或IP地址-x
:显示系统关机,从新开机,以及执行等级的改变等信息