虚拟机网络

连接方式连接的网卡能否连接局域网能否连接公网
桥接VMnet0(本地真实网卡)可以可以
NATVMnet8不可以可以
仅主机VMnet1不可以不可以
  1. 桥接连接的网卡是随机连接的,要是连接到了没网络的网卡还需要自己设置。
  2. 桥接模式下虚拟机相当一台独立的计算机,拥有一个独立的IP地址,与本机在一个局域网内。
  3. NAT模式可以帮助虚拟机通过本机所在的网络来访问公网。
  4. 仅主机模式会建立一个全封闭的虚拟网络,只有主机能访问

目录结构

常用命令

目录命令

ls

1
2
3
4
5
6
7
8
# 查看文件夹的信息
ls
# 查看详细信息
ls -l
# 查看隐藏目录
ls -a
# 显示文件大小
ls -lh

cd

1
2
3
4
5
6
7
8
# 进入目录
cd [路径]
# 进入家目录
cd ~
# 进入上一次所在的目录
cd -
# 进入上一级目录
cd ..

mkdir和rmdir

1
2
3
4
5
6
7
8
# 创建目录
mkdir [目录名]
# 删除目录,只能删除空目录
rmdir [目录名]
# 递归建立目录
mkdir -p [目录路径]
# 递归删除目录,只能删除空目录
rmdir -p [目录路径]

文件操作

touch

1
2
3
# touch创建文件
touch [文件名]
# 若已有该文件则会修改文件时间

stat

1
2
# 查看文件详细信息
stat

cat

1
2
3
4
5
6
# 查看文件内容
cat [文件名]
# 显示行号
cat -n [文件名]
# 显示所有隐藏符号
cat -A [文件名]

more和less

1
2
3
4
5
6
# 分屏显示文件内容
more [文件名]
# 空格键翻页,回车向下一行,b向上翻页,/字符串就算搜索字符串,q退出

# 分行显示文件内容
less [文件名]

head和tail

1
2
3
4
5
6
# 显示文件开头n行
head -[n] [文件名]
# 显示文件末尾n行
tail -[n] [文件名]
# 监听文件新增内容
tail -f [文件名]

文件和目录的命令

rm

1
2
3
4
5
6
# 删除文件或者目录
rm [文件名]
# 强制删除
rm -f
# 递归删除
rm - r

cp

1
2
3
4
# 复制文件,不自定义名字就会默认原名
cp [文件名] [复制后]
# 递归复制,多用于目录
cp -r

mv

1
2
# 移动或重命名
mv [文件名] [移动后]

权限

基本权限

通过命ls -l就能看到一些文件的基本权限,比如下图。

  1. 第一位表示的是文件的类型。
    • -代表的是普通文件
    • d代表是目录
    • b代表块设备文件
    • c代表字符设备,比如键盘鼠标等等
    • s代表套接字文件
    • l位链接文件
    • p位管道文件
  2. 第二到第四位代表文件所有者的权限(user)
  3. 第五到第七位代表组群所有者的权限(group)
  4. 第八到第十位代表其他人的权限(other)
    • -代表没用该权限
    • r代表可读
    • w代表可写
    • x代表可执行
  5. 后面两个root代表的是文件所有者和群组

修改权限

chmod

1
2
3
4
5
6
7
8
# 增加文件所有者的一个文件的可写权限
chmod u+w [文件名]
# 删除权限
chmod u-w [文件名]
# 修改所有者,组和其他用户权限
chmod u+w,g+w,o+w [文件名]
# 设置权限
chmod u=rwx,g=rwx,o=rwx [文件名]

数字权限

1
2
3
4
5
6
7
# 4代表可读,2代表可写,1代表可执行
# 修改文件权限,4+2+1=7,4+1=5
chmod 755 [文件名]
# 经常使用到的数字权限
chmod 644
chmod 755
chmod 777

chown

1
2
3
4
## 修改文件的所有者
chown [用户] [文件名]
## 修改文件的所有者和所有组
chown [用户]:[组] [文件名]

chgrp

1
2
## 修改文件的所属组
chown [组] [文件名]

默认权限

每次新建的文件都会有权限,这就是默认权限,umask。对文件来讲默认权限最大为666,对目录来讲是777。

1
2
3
4
## 查看当前umask的值
umask
## 查看当前默认权限
umask -S

帮助命令

man

1
2
3
4
	man ls
## 查看命令有几个级别
man -f
what is

info

1
info ls 

help

1
2
3
4
## help只能获取shell内置命令的帮助,不常用
cd --help
## 可以用type来判断是不是内置命令
type cd

搜索命令

whereis

1
2
## 用来搜索系统命令,源文件和帮助文档位置
whereis ls

which

1
2
## 查找命令,若该命令有别名也会查找别名
which ls

locate

1
2
## 通过文件名搜索,因为是通过数据库查找,所以新增的需要更新数据库
locate [文件名]

find

按照文件名搜索

1
2
3
4
5
6
## 通过文件名搜索
find [搜索的路径] -name [文件名]
## 不区分大小写的文件名
find [搜索的路径] -iname [文件名]
## 通过inode查找
find [搜索的路径] -inum [inode]

按照文件大小搜索

1
2
## 按照文件大小搜索
find [搜索的路径] -size [大小]

按照权限搜索

1
2
3
4
5
	find [搜索的路径] -perm [数字权限]
## 三个权限只要有一个比数字权限的大或者等于
find [搜索的路径] -perm +[数字权限]
## 三个权限每一个都要比数字权限的大或者等于
find [搜索的路径] -perm -[数字权限]

grep

1
2
3
4
5
6
7
8
9
10
## 查找文件中符合条件的字符串
grep "ww" [文件名]
## 输出行号
grep -n
## 不区分大小写
grep -i
## 查找不符合条件的
grep -v
## 符合的部分高亮
grep --color=auto

压缩与解压缩

zip格式

1
2
3
4
5
## 压缩
zip [压缩后文件名] [原文件]
zip test.zip test.txt
## 解压缩
unzip [压缩文件]

gz格式

1
2
3
4
5
6
7
## 压缩文件,能压缩目录但不打包
gzip [文件名] # 不保留原文件
gzip -r [目录] # 会将目录内文件一个个压缩,不压缩目录
## 解压缩
gzip -d [压缩文件]
gunzip [压缩文件]
gzip -dr [目录]

bz2格式

1
2
3
4
5
6
## 压缩,不能压缩目录
bzip2 [文件名] # 不保留原文件
bzip2 -k [文件名] # 保留原文件
## 解压缩
bzip2 -d [压缩文件]
bunzip2 [压缩文件]

tar格式

1
2
3
4
5
6
7
8
## 打包,c表示打包,f表示指定文件名,v显示打包过程
tar -cvf [文件名.tar] [原文件或目录]
## 解压,x表示解打包
tar -xvf [tar包]
## 压缩包,生成.tar.gz的压缩包
gzip [tar包]
## 解压缩包
gzip -d [tar.gz压缩文件]

tar.gz和tar.bz2

1
2
3
4
5
6
7
8
9
10
11
12
## 压缩,z表示tar.gz格式,j表示tar.bz2
tar -zcvf [文件名.tar.gz] [原文件或目录]
tar -jcvf [文件名.tar.bz2] [原文件或目录]
## 解压缩
tar -zxvf [文件名.tar.gz]
tar -jxvf [文件名.tar.bz2]
## 解压缩到指定位置
tar -zxvf [文件名.tar.gz] -C [路径]
tar -jxvf [文件名.tar.bz2] -C [路径]
## 只查看不解压,用t参数
tar -ztvf [文件名.tar.gz] [原文件或目录]
tar -jtvf [文件名.tar.gz] [原文件或目录]

关机和重启

sync

1
2
# 数据同步,刷新文件系统的缓存区
sync

shutdown

1
2
3
4
5
6
7
8
# 现在关机
shutdown -h now
# 在10点关机
shutdown -h 10:00
# 现在重启
shutdown -r now
# 取消关机或重启
shutdown -c

reboot

1
2
# 现在重启
reboot

网络命令

ifconfig

1
2
# 查询网卡的信息
ifconfig

ping

1
2
3
4
5
6
# ping向一个主机发送ICMP请求
ping [IP]
# 指定ping的次数
ping -c 10 [IP]
# 广播
ping -b [IP]

netstat

1
2
3
4
5
6
# 查询本机开启的所有端口
netstat -tuln
# 查看本机开启的所有端口是哪个服务
netstat -tulnp
# 查看网关
netstat -rn

VIM

进入输入模式

插入命令描述
i在光标所在字符后插入
I在光标所在字符行尾插入
a在光标所在字符前插入
A在光标所在行行首插入
o在光标下插入新行
O在光标上插入新行

编辑模式

1
2
3
4
5
6
7
8
9
# 在命令模式用:进入编辑模式
# 保存
:w
# 退出
:q
# 强制不保存退出
:q!
# 强制保存退出
:wq!

命令模式

移动光标

  1. 上下左右键
  2. HJKL键,h向左,j向下,k向上,l向右
  3. gg移动光标到文件头,G移动到文件尾
  4. ^移动到行首,&到行尾
  5. 进入编辑模式加数字到第几行,比如:3是到第三行

删除

  1. x删除一个字母,nx删除n个字母
  2. dd删除一行,ndd删除n行
  3. 进入编辑模式,:n1,n2d删除n1到n2行
  4. 其实删除是放到了剪切板,按p数粘贴到下一行,P是粘贴到上一行

复制

  1. yy复制单行,nyy复制n行
  2. p数粘贴到下一行,P是粘贴到上一行

撤销

  1. u撤销上一次操作
  2. ctrl+r是反撤销

替换

  1. r替换光标的字符
  2. R进入替换模式,esc退出

vim配置文件

参数描述
:set nu显示行号
:set nonu取消行号
:syntax on依据语法显示相关颜色帮助
:syntax off取消颜色帮助
:set hlsearch设置将查询的字符串高亮,默认
:set nohlsearch取消设置将查询的字符串高亮
:set ruler显示右下角状态栏,默认
:set noruler取消显示右下角状态栏
:set showmode显示状态显示,默认
:set noshowmode不显示状态显示
:set list显示隐藏字符
:set nolist不显示隐藏字符,默认

在编辑器中输入只是临时的,需要改就需要到家目录下的.vimrc中添加配置,比如添加set nu该用户的编辑器就会显示行号