文章目录
一、网络连接
1、linux网络模式
(1)host-only模式
host-only 模式将虚拟机与外网隔开,使得虚拟机成为一个独立的系统,只与主机相互通讯。
在虚拟机中配置网络时,一般使用VMnet1
(2)桥接模式
桥接模式就是将主机网卡与虚拟机虚拟的网卡利用虚拟网桥进行通信。在桥接模式下,虚拟机ip地址需要与主机在同一个网段,如需联网,则网关与dns需与主机网卡一致。
在虚拟机中配置网络时,一般使用VMnet0
(3)nat模式(网络地址转换模式)
nat模式是借助虚拟NAT设备(路由器)和虚拟DHCP服务器,使虚拟机可以联网。主机和虚拟机需使用同一个网卡,ip地址不一致,宿主主机作为一个NAT设备,虚拟机发送请求时,先发送到宿主主机转换ip,再通过宿主主机ip联网。
NAT模式类型有三种: 静态NAT,动态NAT和端口NAT
在虚拟机中配置网络时,一般使用VMnet8
2、网络设置步骤
二、关机与重启
语法:
shutdown [选项] [时间] [消息内容]
功能描述: 关机命令
选项说明:
-k
: 并不是真的关机,只发送警告信息给登录用户
-r
: 在将系统的所有服务关闭之后立刻重新启动系统
-h
: 将系统的所有服务关闭之后 ,立刻关机。
-c
: 取消已经在进行的 shutdown 命令操作。
参数说明:
时间 :指定系统关机的时间 !若没有这个参数,默认1分钟后自动执行关机操作
消息内容:内容显示在当前屏幕中
例子:
现在立刻关机:shutdown -h now
10分钟后关机:shutdown -h 10
系统时间到17:20关机:shutdown -h 17:20
立即重启:shutdown –r now
三、文件及用户管理
文件存储在硬盘上,硬盘的最小存储单位是扇区,每个扇区储存512字节,8个扇区(Sector)组成文件块(block),块是文件存储的最小单位,
操作系统一次性读取文件块。
inode(索引节点)一般储存着文件的元数据信息,一般在系统中以数组的形存储着,inode包含了以下信息:
- 文件的类型、大小
- 文件读写执行权限
- 文件拥有者的UserID
- 文件的GroupID
- 文件的时间戳(ctime:上次inode变动时间、mtime:上次文件内容变化时间、atime:上次文件访问时间)
- 链接数(指向inode编号的文件总数,当该值为0时,说明没有文件指向该inode编号,系统会回收该inode及其对应的block区域。创建目录时,系统会默认生成两个目录项:当前目录的inode号、当前目录的父目录inode号)
- 文件数据块的位置
- inode编号
系统在硬盘格式化时会自动分成两个区域,一个是block area(存放文件数据块),另一个是inode table(存放inode所包含的信息)下面展示访问文件过程:
查看每个硬盘分区的inode总数和已使用的数量:
df -i
查看每个inode节点大小:sudo dumpe2fs -h/dev/sda 9|grep "Inode size"
查看文件名对应的inode号:df -i 文件名
/ls -i 文件名
查看某个文件或目录的inode信息:stat 文件名
硬链接
在Unix/Linux系统上允许多个文件名指向同一个inode编号,可用不同的文件名访问同样的内容,对内容进行修改会影响到所有文件名,但删除一个文件名不影响另一个文件名的访问
创建硬链接:ln 源文件 目标文件
软链接
文件1和文件2的inode编号虽然不同,但文件1内容是文件2的路径,读取文件1时系统会自动将访问者指向文件2,这时文件1称为文件2的软链接或符号链接
创建软链接:ln -s 源文文件或目录 目标文件或目录
查看软链接:ls -li 文件2 文件1
1、文件系统命令
(1)查看文件与目录
语法:
ls [选项]
功能描述: 查询当前目录下的目录与文件 (list)
命令所在路径: /bin/ls
选项说明:
-a
:显示隐藏文件
-l
:显示详细信息
-d
:显示目录属性
-i
:显示文件或目录的inode号
-R
(recursive):递归查询
-r
(reverse):依相反次序排列
-t
:以文件修改时间排序
-F
:显示文件类型
(2)切换目录
语法:
cd 目录名称
功能描述: 切换目录 (change directory),
命令所在路径: /bin/cd
例子:
回到上一级目录:cd ..
切换指定目录:cd /etc/
返回上两级目录:cd ../..
(3)显示所在目录
语法:
pwd [选项]
功能描述: 显示目前所在目录(Print Working Directory)
命令所在路径: /bin/pwd
选项说明:
-p
:显示出确实的路径,非使用连结 (link) 路径
(4)创建目录
语法:
mkdir [选项] 目录名称
功能描述: 创建目录 (make directories),
命令所在路径: /bin/mkdir
选项说明:
-p
(parents):递归创建多个目录
-v
:每次创建新目录都显示信息
-m
(mode):创建目录的同时设置目录权限 (mkdir -m 764 file_name)
(5)创建文件
语法:
touch [选项] 文件名称
功能描述: 创建新的文件,如果文件存在则修改文件的时间属性
命令所在路径: /bin/touch
选项说明:
-a
:修改文件的访问时间为当前系统时间
-m
:修改文件的修改时间为系统当前时间
-d
:将文件的修改时间修改为指定的时间
其他用法:
touch –r 源文件名 目标文件名
将源文件的时间,更新到目标文件上,使两个文件的时间相同
(6)删除目录
语法:
rmdir [选项] [目录名称]
功能描述: 删除目录 (remove directory)
命令所在路径: /bin/rmdir
选项说明:
-p
:递归删除
-r
:删除空目录和非空目录
-f
:强制删除而不被提示
(7)删除文件或目录
语法:
rm [选项] 文件名称
功能描述: 删除文件或目录 【会删除通过cat复制的文件】(remove )
命令所在路径: /bin/rm
选项说明:
-i
:删除前抛出提示确认
-f
:强制删除
-r
(recursive):递归删除
-v
:显示删除的详细过程
rm与inode:
删除原文件的inode,把数据块放到空闲列表中,此时误删的数据还可以恢复,如果有新文件导入,会通过超级块查找,哪些块已经被使用,哪些块还有剩余,则会重新获取新的inode,在分配空闲块,此时之前删除的文件就不能恢复了。
(8)复制文件或目录
语法:
cp [选项] 文件名称/目录名称
功能描述: 复制文件或目录 (copy)
命令所在路径: /bin/cp
选项说明:
-a
:复制目录时保留文件连接文件属性,并可递归复制目录
-f
:强制复制
-i
:覆盖之前进行确认
-p
:保留原文件或目录的属性
-r
:递归复制
(9)移动目录或文件
语法:
mv [选项] 源文件/目录 目标文件/目录
功能描述: 移动文件或目录位置,如果源文件和目标文件都是操作同一个文件则重命名文件名或目录名 (move)
命令所在路径: /bin/mv
选项说明:
-b
:如果目标文件存在,则覆盖前为其创建一个备份
-f
:强制覆盖
-i
:询问是否覆盖
mv与inode:
如果在一个分区,就是仅仅改了指针映射的位置,inode没有变化。如果不在一个分区,就是先复制数据到目标文件,然后删除源文件。
(10)查看文件内容
1、cat命令
cat是一个文本文件查看和连接的工具
语法:
cat [选项] 文件名
功能描述: 从第一行查看文件内容 | 合并文件 | 添加内容 (catenate)
命令所在路径: /bin/cat
选项说明:
-n
:查看文件时设置行号
-b
:查看文件时设置行号(忽略空行)
-s
:连续两行以上的空白行,合并成一行
-A
:显示所有隐藏字符
例子:
cat 文件 > 新文件
复制文件:如果新文件是存在的话,文件内容直接覆盖新文件中的
cat 1文件名 >> 2文件名
追加内容:把1文件内容追加到2文件的尾部,
cat 文件名1 文件名2 ... 文件名n > 新文件名
合并文件:把多个文件合并成1个文件
2、tac命令
语法:
tac 文件名
功能描述: 从最后一行查看文件内容
命令所在路径: /bin/tac
3、more命令
语法:
more 文件名
功能描述: 一页一页翻动查看文件内容
命令所在路径: /bin/more
选项说明:
-n
:设置一页显示多少行记录
操作说明:
操作 | 描述说明 |
---|---|
空格键/F键 | 向下翻一页 |
Enter键 | 向下翻一行 |
/字串 | 向下搜寻这个关键字 |
[shift]+:键+f键 | 输出文件名和当前行的行号 |
q键 | 退出more |
b键 或 [ctrl]键+b键 | 往回翻页,不过这动作只对文件有用,对管道对象无用 |
4、less命令
语法:
less 文件名
功能描述: 一页一页翻动查看文件内容
命令所在路径: /usr/bin/less
选项说明:
-N
:显示每一行的行号
操作说明:
操作 | 描述说明 |
---|---|
空格键 / F键 | 向下翻一页 |
⬇ / Enter键 | 向下翻动一行 |
⬆ | 向上翻动一行 |
b键盘 / [ctrl]键+b键 | 向上翻回上一页 |
/字串 | 向下搜寻这个关键字 |
?字串 | 向上搜寻这个关键字 |
n | 重复前一个搜寻 (与 / 或 ? 有关!) |
N | 反向的重复前一个搜寻 (与 / 或 ? 有关!) |
q | 离开 less ,不过不会把记录继续留在终端显示 |
5、head命令
语法:
head [选项] 文件名
功能描述: 查看文件内容前几行
命令所在路径: /usr/bin/head
选项说明:
-n
:显示文件前几行 (-n 指定行数)
例子:
查看file1文件的第300-500行的内容:cat file1| head -n 500 | tail -n +300 #
6、tail命令
语法:
tail [选项] 文件名
功能描述: 查看文件内容后几行
命令所在路径: /usr/bin/tail
选项说明:
-n
:显示文件后几行
-f
:动态显示文件末尾内容,要等到按下[ctrl]-c才会结束tail的动态滚动显示
2、文件权限管理命令
(1)文件类型
使用 ls -l
命令查看文件目录时,可以采用开头第一个字符来判断文件类型:
第一个字符 | 表示意义 | |
---|---|---|
d | 目录 | ![]() |
- | 文件 | ![]() |
l | 链接文件 | ![]() |
使用 ls
命令查看文件目录时,可以通过文件或目录名称的字体颜色来区分文件类型:
字体颜色 | 表示意义 | 字体颜色 | 表示意义 |
---|---|---|---|
黑色/白色 | 普通文件 | 蓝色 | 目录 |
绿色 | 可执行文件 | 红色 | 压缩文件 |
浅蓝色 | 链接文件 | 红色闪烁 | 链接文件有问题 |
黄色 | 表示设备文件 | 紫色 | 表示图形文件 |
灰色 | 表示其他文件 |
通过条件判断文件类型:
(2)文件权限
字母表示 | 权限说明 | 在文件或目录下的作用 | 数据表示 |
---|---|---|---|
r | 读权限 | 可以查看文件或目录的内容 | 二进制为 100,十进制是4 |
w | 写权限 | 可以修改文件内容,以及在目录种修改和删除文件 | 二进制为 010,十进制是2 |
x | 执行权限 | 可以执行文件,以及进目录 | 二进制为 001,十进制是1 |
注意:新建文件是默认没有x权限
(3)修改权限命令
语法:
chmod [选项] 修改权限 文件或目录
|chmod [{ugoa}{+-=}{rwx}] [文件或目录]
(u:所属主,g:所属组,o:其他组,a:全部)
功能描述: 改变文件或目录权限(change the permissions mode of a file),会刷新ctime
命令所在路径: /bin/chmod
选项说明:
-r
:递归更改文件权限
用法示例
给其他组添加写权限:chmod o+w abc
所属主何其他组去掉执行权限,所属组去掉读权限,所属组其他组增加写权限chmod uo-x,go+w,g-r admin
所属主只有读写权限,所在组只有写执行权限,其他组只有读写权限chmod u=rw,g=wx,o=rw admin
赋给所属主读和写权限,所属组写和执行权限,其他人读权限:chmod 636 234.zip
(4)修改所属主
语法:
chown [选项] 属主名[:属组名] 文件名
功能描述: 改变文件或目录的所有者 (change file ownership)
命令所在路径: /bin/chown
选项说明:
-r
:递归更改文件所属主
示例:
修改文件的拥有者:chown zhs abc
修改目录及其目录下所有文件的拥有者 :chown zhs download -R
(5)修改所属组
语法:
chgrp [选项] 属组名 文件名
功能描述: 改变文件或目录的所属组 (change file group ownership )
命令所在路径: /bin/chgrp
选项说明:
-r
:递归更改文件所属组
3、用户管理
用户信息文件/etc/passwd: 存放用户的信息(:为分隔符)
影子文件/etc/shadow: 针对用户文件,存放用户的密码信息(:为分隔符)
组信息文件/etc/group: 存放组的信息(:为分隔符)
组密码文件/etc/gshadow: 存放组密码(:为分隔符)
用户的家目录:
超级用户:/home/用户名 ($)
普通用户:/root (#)
用户邮箱:
/var/spool/mail/用户名
用户模板用户:
/etc/skel
(1)切换用户
1、su命令
语法:
su [选项] 用户名
功能描述: 切换当前用户身份 (switch user)
命令所在路径:
选项说明:
-
:用户和环境变量一起切换,建议切换用户时需要使用su - 用户名
-c
:仅执行一次命令不切换用户身份
实例:
su - root -c “useradd user3”
2、sudo命令
语法: sudo linux命令
功能描述: 以系统管理者的身份执行指令(super user do)
sudo和su命令的区别:
当普通用户使用su 命令时,直接把控制系统的完整权限赋予给普通用户;
(2)查询用户
1、who命令
语法:
who
功能描述: 查看登录用户信息
命令所在路径: /usr/bin/who
2、id命令
语法:
id 用户名
功能描述: 查看用户id
3、w命令
语法:
w
功能描述: 查看目前登录用户的详细信息
命令所在路径: /usr/bin/w
(2)添加用户
语法:
useradd [选项] 用户名
功能描述: 添加新用户
命令所在路径: /usr/sbin/useradd
选项说明:
-u
:指定用户的UID (useradd -u UID
)
-d
:指定用户的家目录(useradd -d 家目录
)
-c
:指定用户的用户的说明(useradd -c 用户说明
)
-g
:指定用户的初始组(useradd -g 组名
)
-G
:指定用户的附加组(useradd -G 组名
)
-s
:指定用户登录shell,默认\bin\bash(useradd -s shell
)
实例:
增加附加组root且用户id为581添加用户说明:useradd -u 581 -G root,bin -d /home/num1 -c "this is a test user!!" -s /bin/bash testname
命令执行后会直接创建指定参数的用户,如果不指定选项也可以直接创建用户,不过会按照 /etc/default/useradd 或 /etc/login.defs 文件中的配置内容设置
(3)用户设置或修改密码
语法:
passwd [选项] [用户名]
没用用户名的话则修改当前用户的密码
功能描述: 设置或修改用户密码
命令所在路径: /usr/bin/passwd
选项说明:
-d
:删除密码,只能系统管理员才能使用
-f
:强制性执行
-l
:锁住密码,只能系统管理员才能使用
-u
:解开已上锁的账号
-S
:查询用户密码的状态,只能系统管理员才能使用
--stdin
:通过管道符输出的数据作为密码
(4)修改用户信息
语法:
usermod [选项] 用户名
功能描述: 修改用户信息
选项说明:
-u
:修改用户的UID号(-u UID)
-c
:修改用户的说明信息(-c 用户说明)
-G
:修改用户的附加组(-G 组名)
-L
:临时锁定用户
-U
:解锁用户锁定
(5)修改用户密码状态
语法:
change [选项 ]用户名
功能描述: 修改用户密码状态
选项说明:
-l
:列出用户的详细密码状态
-d
:修改密码最后一次更改日期(-d 日期)
-m
: 两次密码修改间隔(-m 天数)
-M
:密码有效期(-M 天数)
-W
:密码过期前警告天数(-W 天数)
-I
:密码过期后宽限天数(-I 天数)
-E
:账号失效时间(-E 日期)
(6)删除用户
语法:
userdel [选项 ]用户名
功能描述: 删除指定用户
选项说明:
-r
:删除用户的同时删除用户家目录
(6)添加用户组
语法:
groupadd [选项] 组名
功能描述: 添加用户组
选项说明:
-g
:指定组ID (groupadd -g GID
)
(7)修改用户组
语法:
groupmod [选项] 组名
功能描述: 修改所属组属性
选项说明:
-g
: 修改组ID (groupmod -g GID
)
-n
:修改组名(groupmod -n 旧组名 新组名
)