参考文章
04 尚硅谷-云计算-Linux系统管理-Linux常用命令.pdf
命名规则
终端中常用快捷键
目录操作命令
ls #查看当前目录文件
cd #切换目录
pwd #查看当前工作目录
mkdir #创建目录
rmdir #删除目录
du #统计文件和大小
ls
cd
~ 代表用户的家目录
- 代表上次所在目录
. 代表当前目录
.. 代表上级目录
pwd
mkdir
mkdir -p(递归创建)
rmdir
rmdir 命令的作用十分有限,因为只能删除空目录,所以一旦目录中有内容,就会报错。
这个命令比较“笨”,所以我们不太常用。后续我们不论删除的是文件还是目录,都会使用 rm
命令
文件操作命令
touch #创建新文件
file #查看文件类型
cp #复制
rm #删除
mv #重命名或移动
which #
ln #连接
find #查找
touch
创建空文件或修改文件时间,这个命令的基本信息如下。
- 命令名称:touch。
- 英文原意:change file timestamps。
- 所在路径:/bin/touch。
- 执行权限:所有用户。
-
stat
stat 是查看文件详细信息的命令,而且可以看到文件的这三个时间,其基本信息如下。
命令名称:stat。
- 英文原意:display file or file system status。
- 所在路径:/usr/bin/stat。
- 执行权限:所有用户。
cat
cat 命令用来查看文件内容。这个命令的基本信息如下。
- 命令名称:cat。
- 英文原意:concatenate files and print on the standard output。
- 所在路径:/bin/cat。
- 执行权限:所有用户。
more
more 是分屏显示文件的命令,其基本信息如下。
命令名称:more。
英文原意:file perusal filter for crt viewin。
所在路径:/bin/more。
执行权限:所有用户。
功能描述:分屏显示文件内容。
more 命令比较简单,一般不用什么选项,命令会打开一个交互界面,可以识别一些交互命令。常
用的交互命令如下。
空格键:向下翻页。
b:向上翻页。
回车键:向下滚动一行。
/字符串:搜索指定的字符串。
q:退出。
less
less 命令和 more 命令类似,只是 more 是分屏显示命令,而 less 是分行显示命令,其基本信息如
下。
命令名称:less。
英文原意:opposite of more。
所在路径:/usr/bin/less。
执行权限:所有用户。
功能描述:分行显示文件内容
head
head 是用来显示文件开头的命令,其基本信息如下。
命令名称:head。
英文原意:output the first part of files。
所在路径:/usr/bin/head。
执行权限:所有用户。
功能描述:显示文件开头的内容。
tail
既然有显示文件开头的命令,就会有显示文件结尾的命令。tail 命令的基本信息如下。
命令名称:tail。
英文原意:output the last part of files。
所在路径:/usr/bin/tail。
执行权限:所有用户。
功能描述:显示文件结尾的内容。
ln
命令名称:ln。
英文原意:make links between file。
所在路径:/bin/ln。
执行权限:所有用户。
功能描述:在文件之间建立链接。
硬链接与软连接的特征
硬链接特征:
源文件和硬链接文件拥有相同的 Inode 和 Block
修改任意一个文件,另一个都改变
删除任意一个文件,另一个都能使用
硬链接标记不清,很难确认硬链接文件位置,不建议使用
硬链接不能链接目录
硬链接不能跨分区
软链接特征:
软链接和源文件拥有不同的 Inode 和 Block
两个文件修改任意一个,另一个都改变
删除软链接,源文件不受影响;删除源文件,软链接不能使用
软链接没有实际数据,只保存源文件的 Inode,不论源文件多大,软链接大小不变
软链接的权限是最大权限 lrwxrwxrwx.,但是由于没有实际数据,最终访问时需要参考源文件权限
软链接可以链接目录
软链接可以跨分区
软链接特征明显,建议使用软连接
目录和文件都能操作命令
rm
强大的删除命令,不仅可以删除文件,也可以删除目录
-f:强制删除(force)
-i:交互删除,在删除之前会询问用户
-r:递归删除,可以删除目录(recursive)
cp
复制的命令
-d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接
-i:询问,如果目标文件已经存在,则会询问是否覆盖
-p:复制后目标文件保留源文件的属性(包括所有者、所属组、权限和时间)
-r:递归复制,用于复制目录
-a:相当于-dpr选项的集合
mv
剪切的命令
-f:强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖
-i:交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项)
-v:显示详细信息
基本权限管理
权限介绍
- 第 1 位代表文件类型。Linux 不像 Windows 使用扩展名表示文件类型,而是使用权限位的第 1
位表示文件类型。虽然 Linux 文件的种类不像 Windows 中那么多,但是分类也不少,详细情况
可以使用“info ls”命令查看。超哥在这里只讲一些常见的文件类型。
- “-”:普通文件。
- “b”:块设备文件。这是一种特殊设备文件,存储设备都是这种文件,如分区文件/dev/sda1
就是这种文件。
- “c”:字符设备文件。这也是特殊设备文件,输入设备一般都是这种文件,如鼠标、键盘
等。
- “d”:目录文件。Linux 中一切皆文件,所以目录也是文件的一种。
- “l”:软链接文件。
- “p”:管道符文件。这是一种非常少见的特殊设备文件。
- “s”:套接字文件。这也是一种特殊设备文件,一些服务支持 Socket 访问,就会产生这样
的文件。
- 第 2~4 位代表文件所有者的权限。
r:代表 read,是读取权限。
- w:代表 write,是写权限。
- x:代表 execute,是执行权限。
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限。- 第 5~7 位代表文件所属组的权限,同样拥有“rwx”权限。 - 第 8~10 位代表其他人的权限,同样拥有“rwx”权限。
基本权限命令
chmod
修改文件的权限模式
chmod 命令的权限模式的格式是“[ugoa][[+-=][perms]]”,也就是“[用户身份][[赋予方式][权限]]”
的格式,我们来解释一下。
用户身份。
- u:代表所有者(user)。
- g:代表所属组(group)。
- o:代表其他人(other)。
- a:代表全部身份(all)。
赋予方式。
- +:加入权限。
- -:减去权限。
- =:设置权限。
权限。
- r:读取权限(read)。
- w:写权限(write)。
- x:执行权限(execute)。
数字权限
数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。我们来看看这些数字权
限的含义。
4:代表“r”权限。
2:代表“w”权限。
1:代表“x”权限。
常用数字权限
- 644:这是文件的基本权限,代表所有者拥有读、写权限,而所属组和其他人拥有只读权限。
- 755:这是文件的执行权限和目录的基本权限,代表所有者拥有读、写和执行权限,而所属组
和其他人拥有读和执行权限。
- 777:这是最大权限。在实际的生产服务器中,要尽力避免给文件或目录赋予这样的权限,这
会造成一定的安全隐患。
基本权限的作用
读、写、执行权限对文件和目录的作用是不同的。
权限对文件的作用
- 读(r):对文件有读(r)权限,代表可以读取文件中的数据。如果把权限对应到命令上,<br />那么一旦对文件有读(r)权限,就可以对文件执行 cat、more、less、head、tail 等文件查看命令。<br /> - 写(w):对文件有写(w)权限,代表可以修改文件中的数据。如果把权限对应到命令上,<br /> 那么一旦对文件有写(w)权限,就可以对文件执行 vim、echo 等修改文件数据的命令。注<br /> 意:对文件有写权限,是不能删除文件本身的,只能修改文件中的数据。如果要想删除文件,则需要对文件的上级目录拥有写权限。<br /> - 执行(x):对文件有执行(x)权限,代表文件拥有了执行权限,可以运行。在 Linux 中,<br /> 只要文件有执行(x)权限,这个文件就是执行文件了。只是这个文件到底能不能正确执行,<br /> 不仅需要执行(x)权限,还要看文件中的代码是不是正确的语言代码。对文件来说,执行<br /> (x)权限是最高权限。
权限对目录的作用。
- 读(r):对目录有读(r)权限,代表可以查看目录下的内容,也就是可以查看目录下有哪<br /> 些子文件和子目录。如果把权限对应到命令上,那么一旦对目录拥有了读(r)权限,就可<br /> 以在目录下执行 ls 命令,查看目录下的内容了。<br /> - 写(w):对目录有写(r)权限,代表可以修改目录下的数据,也就是可以在目录中新建、<br /> 删除、复制、剪切子文件或子目录。如果把权限对应到命令上,那么一旦对目录拥有了写(w)<br /> 权限,就可以在目录下执行 touch、rm、cp、mv 命令。对目录来说,写(w)权限是最高权限。<br /> - 执行(x):目录是不能运行的,那么对目录拥有执行(x)权限,代表可以进入目录。如果<br /> 把权限对应到命令上,那么一旦对目录拥有了执行(x)权限,就可以对目录执行 cd 命令,进入目录。<br /> <br /> 目录的可用权限其实只有以下几个。<br /> 0:任何权限都不赋予。<br /> 5:基本的目录浏览和进入权限。<br /> 7:完全权限。
chattr
作用:用于设置文件的隐藏权限
格式为:chattr [选项] 文件 选项: -R 递归处理目录下的所有文件 -v 设置文件或目录版本 -V 显示指令执行过程
- 开启文件或目录的该项属性 — 关闭文件或目录的该项属性 = 指定文件或目录的该项属性
实例:
用chattr命令防止系统中某个关键文件被修改(加锁):
[root@linuxcool ~]# chattr +i /etc/resolv.conf
解锁:
[root@linuxcool ~]# chattr -i /home/omd/h.txt
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
[root@linuxcool ~]# chattr +a /var/log/messages
chmod
作用:用于改变文件或目录权限 格式为:chmod [选项] 权限模式 文件名 权限模式: [ugoa][[=+-][perms]] [用户身份][[赋予方式][权限]]
用户身份: u :所有者(所属者) g:所属组 o:其他人 a:所有人
选项: -c 若该文件权限确实已经更改,才显示其更改动作 -f 若该文件权限无法被更改也不显示错误讯息 -v 显示权限变更的详细资料 -R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
实例:
将档案 file1.txt 设为所有人皆可读取:
[root@linuxcool ~]# chmod a+r file.txt
将目前目录下的所有文件与子目录皆设为任何人可读取 :
[root@linuxcool ~]# chmod -R a+r *
将 file.txt 设定为只有该文件拥有者可以执行:
[root@linuxcool ~]# chmod u+x file.txt
chown
功能描述:修改文件和目录的所有者和所属组
chown [选项]
-R:递归设置权限,也就是给子目录中的所有文件设置权限
普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
普通用户可以修改所有者是自己的文件的权限。
实例:
将test.txt文件用户组与用户都改为bin:
[root@linuxcool ~]# ll test.txt.bz2
-rw-r--r-- 1 root root 56 Jul 22 20:17 test.txt.bz2
[root@linuxcool ~]# chown bin:bin test.txt.bz2
[root@linuxcool ~]# ll test.txt.bz2
-rw-r--r-- 1 bin bin 56 Jul 22 20:17 test.txt.bz2
显示改动动作:
[root@linuxcool ~]# ll test.txt
-rw-r--r-- 1 root root 45 Jul 22 21:11 test.txt
[root@linuxcool ~]# chown -c bin:bin test.txt
changed ownership of `test.txt' to bin:bin
将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:
[root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *
chgrp
功能描述:修改文件和目录的所属
格式为:chgrp [选项] 文件
选项:
-c 效果类似”-v”参数,但仅回报更改的部分
-f 不显示错误信息
-h 对符号连接的文件作修改,而不更动其他任何相关文件
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程
—reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
实例:
改变文件的群组属性:
[root@linuxcool ~]# chgrp -v linuxcool file
根据指定文件改变文件的群组属性:
[root@linuxcool ~]# chgrp --reference=file_1 file_2
将/usr/linuxcool及其子目录下的所有文件的用户组改为cool:
[root@linuxcool ~]# chgrp -R cool /usr/linuxcool
umask默认权限
先了解一下新建文件和目录的默认最大权限。
对文件来讲,新建文件的默认最大权限是666,没有执行(x)权限。这是因为执行权限对文件
来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
对目录来讲,新建目录的默认最大权限是777。这是因为对目录而言,执行(x)权限仅仅代表
进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险
按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到
正确的新建文件和目录的默认权限。这种方法既不好计算,也不好理解,
这里还是按照权限字母来讲解umask权限的计算方法。我们就按照默认的umask值是022
来分别计算一下新建文件和目录的默认权限吧。
文件的默认权限最大只能是666,而umask的值是022
-rw-rw-rw- 减去 ——-w—w- 等于“-rw-r—r—”
目录的默认权限最大可以是777,而umask的值是022
drwxrwxrwx 减去 d——w—w- 等于 drwx-r-xr-x
注意:umask默认权限的计算绝不是数字直接相减。
例如umask是033呢?
文件的默认权限最大只能是666,而umask的值是033
-rw-rw-rw- 减去 ——-wx-wx 等于“-rw-r—r—”
帮助命令
man
功能描述:显示联机帮助手册
man [选项] 命令
数字 查看指定级别的帮助
-f:查看命令拥有哪个级别的帮助
-k:查看和命令相关的所有帮助
man -f 命令或whatis 命令
#查看命令拥有哪个级别的帮助
man -k 命令或apropos命令
#查看和命令相关的所有帮助
info
一套完整的资料,每个单独命令的帮助信息只是这套完整资料中的某一个小章节
help
只能获取Shell内置命令的帮助
功能描述:显示Shell内置命令的帮助。可以使用type命令来区分内置命令与外部命令
—help选项
绝大多数命令都可以使用“—help”选项来查看帮助,这也是一种获取帮助的方法。
输出的帮助信息基本上是man命令的信息简要版。例子:ls --help
搜索命令
whereis
是搜索系统命令的命令(像绕口令一样),也就是说,whereis命令不能搜索普通文件,而只能搜索系统命令
which
which也是搜索系统命令的命令。和whereis命令的区别在于:
whereis命令可以在查找到二进制命令的同时,查找到帮助文档的位置;
而which命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令
locate
locate命令才是可以按照文件名搜索普通文件的命令
优点:按照数据库搜索,搜索速度快,消耗资源小。
数据库位置/var/lib/mlocate/mlocate.db,可以使用updatedb命令强制更新数据库。
缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,
比如按照权限、大小、修改时间等搜索文件。
配置文件
[root@localhost ~]# vi /etc/updatedb.conf
PRUNE_BIND_MOUNTS = "yes"
#开启搜索限制,也就是让这个配置文件生效
PRUNEFS = "……"
#在 locate 执行搜索时,禁止搜索这些文件系统类型
PRUNENAMES = "……"
#在 locate 执行搜索时,禁止搜索带有这些扩展名的文件
PRUNEPATHS = "……"
#在 locate 执行搜索时,禁止搜索这些系统目录
find
功能描述:在目录中搜索文件
按照文件名搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-name: 按照文件名搜索
-iname: 按照文件名搜索,不区分文件名大小写
-inum: 按照 inode 号搜索
按照文件大小搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-size [+|-]大小: 按照指定大小搜索文件
这里的“+”的意思是搜索比指定大小还要大的文件,“-”的意思是搜索比指定大小还要小的文件。
find 命令的单位:
[root@localhost ~]# man find
-size n[cwbkMG]
File uses n units of space. The following suffixes can be used:
'b' for 512-byte blocks (this is the default if no suffix is used)
#这是默认单位,如果单位为 b 或不写单位,则按照 512 Byte 搜索
'c' for bytes
#搜索单位是 c,按照字节搜索
'w' for two-byte words
#搜索单位是 w,按照双字节(中文)搜索
'k' for Kilobytes (units of 1024 bytes)
#按照 KB 单位搜索,必须是小写的 k
'M' for Megabytes (units of 1048576 bytes)
#按照 MB 单位搜索,必须是大写的 M
'G' for Gigabytes (units of 1073741824 bytes)
#按照 GB 单位搜索,必须是大写的 G
按照修改时间搜索
Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个 时间,我们也可以按照时间来搜索文件。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-atime [+|-]时间: 按照文件访问时间搜索
-mtime [+|-]时间: 按照文件数据修改时间搜索
-ctime [+|-]时间: 按照文件状态修改时间搜索
这三个时间的区别我们在 stat 命令中已经解释过了,
这里用 mtime 数据修改时间来举例,重点说说“[+-]”时间的含义。
-5:代表 5 天内修改的文件。
5:代表前 5~6 天那一天修改的文件。
+5:代表 6 天前修改的文件。
按照权限搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-perm 权限模式: 查找文件权限刚好等于“权限模式”的文件
-perm -权限模式:查找文件权限全部包含“权限模式”的文件
-perm +权限模式:查找文件权限包含“权限模式”的任意一个权限的文件
按照所有者和所属组搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-uid 用户 ID: 按照用户 ID 查找所有者是指定 ID 的文件
-gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件
-user 用户名: 按照用户名查找所有者是指定用户的文件
-group 组名: 按照组名查找所属组是指定用户组的文件
-nouser: 查找没有所有者的文件
按照所有者和所属组搜索时,“-nouser”选项比较常用,主要用于查找垃圾文件。
只有一种情况例外,那就是外来文件。比如光盘和 U 盘中的文件如果是由 Windows 复制的,在
Linux 中查看就是没有所有者的文件;再比如手工源码包安装的文件,也有可能没有所有者
按照文件类型搜索
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-type d: 查找目录
-type f: 查找普通文件
-type l: 查找软链接文件
逻辑运算符
[root@localhost ~]# find 搜索路径 [选项] 搜索内容
选项:
-a: and 逻辑与
-o: or 逻辑或
-not: not 逻辑非
1)-a:and 逻辑与
find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,find 搜
索的结果才成立。举个例子:
[root@localhost ~]# find . -size +2k -a -type f
#在当前目录下搜索大于 2KB,并且文件类型是普通文件的文件
2)-o:or 逻辑或
-o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,find 命令就可以找到结果。例
如:
[root@localhost ~]# find . -name cangls -o -name bols
./cangls
./bols
#在当前目录下搜索文件名要么是 cangls 的文件,要么是 bols 的文件
3)-not:not 逻辑非
-not 是逻辑非,也就是取反的意思。举个例子:
[root@localhost ~]# find . -not -name cangls
#在当前目录下搜索文件名不是 cangls 的文件
-exec 和 -ok 选项
1)-exec 选项
这里我们主要讲解两个选项“-exec”和“-ok”,这两个选项的基本作用非常相似。我们先来看
看“-exec”选项的格式。
[root@localhost ~]# find 搜索路径 [选项] 搜索内容 -exec 命令 2 {} \;
其次,这个选项的作用其实是把 find 命令的结果交给由“-exec”调用的命令 2 来处理。“{}”就
代表 find 命令的查找结果。
2)-ok 选项
“-ok”选项和“-exec”选项的作用基本一致,区别在于:“-exec”的命令 2 会直接处理,而不询
问;“-ok”的命令 2 在处理前会先询问用户是否这样处理,在得到确认命令后,才会执行。
grep
grep 的作用是在文件中提取和匹配符合条件的字符串行
grep 的作用是在文件中提取和匹配符合条件的字符串行。命令格式如下:
[root@localhost ~]# grep [选项] "搜索内容" 文件名
选项:
-i: 忽略大小写
-n: 输出行号
-v: 反向查找
--color=auto: 搜索出的关键字用颜色显示
find 和 grep区别
find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?
1)find 命令
find 命令用于在系统中搜索符合条件的文件名,
如果需要模糊查询,则使用通配符进行匹配,通配符
是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。
2)grep 命令
grep 命令用于在文件中搜索符合条件的字符串,
如果需要模糊查询,则使用正则表达式进行匹配,正则表达式是包含匹配。
通配符与正则表达式的区别
| (管道符)
命令格式: 命令1 | 命令2
命令 1 的正确输出作为命令 2 的操作对象
我想在命令 ll /etc/的结果中搜索 yum 的文件名,应该使用 find 命令?还是 grep 命令?
netstat
统计正在连接的网络连接数量
netstat 命令(CentOS 7 中,需要安装 net-snmp.x86_64,net-tools.x86_64 两个包才有此命令。7.5
系统中已经自动安装)
[root@localhost ~]# netstat [选项]
选项:
-a: 列出所有网络状态,包括 Socket 程序
-c 秒数: 指定每隔几秒刷新一次网络状态
-n: 使用 IP 地址和端口号显示,不使用域名与服务名
-p: 显示 PID 和程序名
-t: 显示使用 TCP 协议端口的连接状况
-u: 显示使用 UDP 协议端口的连接状况
-l: 仅显示监听状态的连接
-r: 显示路由表
[root@localhost ~]# netstat -an | grep "ESTABLISHED" | wc -l
#如果想知道具体的网络连接数量,就可以再使用 wc 命令统计行数
#统计正在连接的网络连接数量
alias
命令的别名,就是命令的小名,主要是用于照顾管理员使用习惯的。
命令格式:
[root@localhost ~]# alias
#查询命令别名
[root@localhost ~]# alias 别名='原命令'
#设定命令别名
例如:
[root@localhost ~]# alias ser='service network restart'
#用 ser 别名,替代 service network restart 命令
用命令定义的别名,是临时生效的,要想永久生效,需要写入环境变量配置文件~/.bashrc
压缩解压缩命令
.zip
功能描述:压缩文件或目录
“.zip”是 Windows 中最常用的压缩格式,Linux 也可以正确识别“.zip”格式,这可以方便地和
Windows 系统通用压缩文件。
压缩
解压缩
.gz
压缩
解压缩
.bz2
压缩
解压缩
.tar
“.tar”格式的打包和解打包都使用 tar 命令,区别只是选项不同。
.tar.gz、.tar.bz2
常用网络命令
配置IP地址(两种方法)
1. setup工具
2. 修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-eth0
手工修改配置文件
3. 重启网路服务
[root@localhost ~]# service network restart
#重启网络服务
注意
虚拟机需要桥接到有线网卡,并重启网络服务
复制镜像有可能需要重置 UUID(唯一识别符)
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
#删除 MAC 地址行
[root@localhost ~]# rm -rf /etc/udev/rules.d/70-persistent-net.rules
#删除 MaC 地址和 UUID 绑定文件
[root@localhost ~]# reboot
#重启 Linux
ifconfig
功能描述:配置网络接口
ifconfig 命令最主要的作用就是查看 IP 地址的信息,直接输入 ifconfig 命令即可
ping
netstat
netsat -tuln
查看本机开启的端口
这个命令的输出较多。 Proto:网络连接的协议,一般就是 TCP 协议或者 UDP 协议。 Recv-Q:表示接收到的数据,已经在本地的缓冲中,但是还没有被进程取走。 Send-Q:表示从本机发送,对方还没有收到的数据,依然在本地的缓冲中,一般是不具备 ACK 标志的数据包。 Local Address:本机的 IP 地址和端口号。 Foreign Address:远程主机的 IP 地址和端口号。 State:状态。常见的状态主要有以下几种。
- LISTEN:监听状态,只有 TCP 协议需要监听,而 UDP 协议不需要监听。
- ESTABLISHED:已经建立连接的状态。如果使用“-l”选项,则看不到已经建立连接的状态。
- SYN_SENT:SYN 发起包,就是主动发起连接的数据包。
- SYN_RECV:接收到主动连接的数据包。
- FIN_WAIT1:正在中断的连接。
- FIN_WAIT2:已经中断的连接,但是正在等待对方主机进行确认。
- TIME_WAIT:连接已经中断,但是套接字依然在网络中等待结束。
- CLOSED:套接字没有被使用。 在这些状态中,我们最常用的就是 LISTEN 和 ESTABLISHED 状态,一种代表正在监听,另一种 代表已经建立连接。
netstat -tulnp
查看本机有哪些程序开启的端口
netstat -an
查看所有连接,可以在“-an”选项的输出中看到各种网络连接状态,而之前的“-tuln”选项
则只能看到监听状态。
write
wall
write 命令用于给指定用户发送信息,而 wall 命令用于给所有登录用户发送信息,包括你自己。
执行时,在 wall 命令后加入需要发送的信息即可,例如:
mail 是 Linux 的邮件客户端命令,可以利用这个命令给其他用户发送邮件
功能描述:发送和接收电子邮件
系统痕迹命令
系统中有一些重要的痕迹日志文件,如/var/log/wtmp、/var/run/utmp、/var/log/btmp、
/var/log/lastlog 等日志文件,如果你用 vim 打开这些文件,你会发现这些文件是二进制乱码。这是由
于这些日志中保存的是系统的重要登录痕迹,包括某个用户何时登录了系统,何时退出了系统,错误
登录等重要的系统信息。这些信息要是可以通过 vim 打开,就能编辑,这样痕迹信息就不准确,所以
这些重要的痕迹日志,只能通过对应的命令来进行查看。
w
w 命令是显示系统中正在登陆的用户信息的命令,这个命令查看的痕迹日志是/var/run/utmp
who
who 命令和 w 命令类似,用于查看正在登陆的用户,但是显示的内容更加简单,也是查看
/var/run/utmp 日志
[root@localhost ~]# who
root tty1 2018-11-12 23:59
root pts/2 2018-11-12 23:42 (192.168.252.1)
#用户名 登陆终端 登陆时间(来源 IP)
last
last 命令是查看系统所有登陆过的用户信息的,包括正在登陆的用户和之前登陆的用户。这个命
令查看的是/var/log/wtmp 痕迹日志文件。
[root@localhost ~]# last
root tty1 Mon Nov 12 23:59 still logged in
root pts/2 192.168.252.1 Mon Nov 12 23:42 still logged in
root pts/1 192.168.252.1 Mon Nov 12 23:37 - 23:59 (00:22)
root tty1 Mon Nov 12 19:17 - 23:58 (04:41)
root pts/0 192.168.252.1 Mon Nov 12 18:20 - 23:52 (05:32)
reboot system boot 3.10.0-862.el7.x Mon Nov 12 18:18 - 00:22 (06:03)
#系统重启信息记录
root pts/1 192.168.252.1 Mon Nov 12 08:48 - down (01:29)
root pts/1 192.168.252.1 Thu Nov 8 21:04 - 22:29 (01:25)
#用户名 终端号 来源 IP 地址 登陆时间 - 退出时间
lsatlog
astlog 命令是查看系统中所有用户最后一次的登陆时间的命令,他查看的日志是/var/log/lastlog
文件
[root@localhost ~]# lastlog
Username Port From Latest
root tty1 Mon Nov 12 23:59:03 +0800 2018
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
…省略部分内容…
#用户名 终端 来源 IP 登陆时间
lastb
lastb 命令是查看错误登陆的信息的,查看的是/var/log/btmp 痕迹日志
[root@localhost ~]# lastb
(unknown tty1 Mon Nov 12 23:58 - 23:58 (00:00)
root tty1 Mon Nov 12 23:58 - 23:58 (00:00)
#错误登陆用户 终端 尝试登陆的时间
挂载命令(挖坑,没看懂)
mount
linux 所有存储设备都必须挂载使用,包括硬盘