虚拟机网络连接的三种模式
- 桥接模式:像一台真实的计算机一样,和主机在同一网段下,但是容易造成IP冲突
- NAT模式:使用主机的IP地址和外部通信
- 主机模式:不和外部通信,独立的系统
虚拟机共享文件夹
可以设置虚拟机的文件共享模式,让Linux和Windows共享一个文件夹,但是实际开发中文件的上传和下载是通过远程的方式完成的
Linux基本
输入命令没提示说明成功了
隐藏的文件以 . 开头
cal 显示当前日历信息
ip addr 查看ip地址
目录结构
在Linux中一切皆文件,甚至会将计算机硬件映射成一个文件来管理,远程登录后无界面只有控制台,所以大脑中要有它的目录结构
Linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录 / ,然后在此目录下再创建其他的目录
bin 存放常用指令
sbin 存放系统管理员使用的指令
home 存放普通用户的主目录
root 存放系统管理员用到的文件
lib 存放最基本的动态连接共享库,类似于Windows里的DLL文件,几乎所有应用程序都需要用到这些共享库
lost+found 存放当系统非法关机后生成的文件,一般情况下时空的
etc 存放系统管理所需要的配置文件,比如装了MySQL后会有个my.conf放在里面
usr 存放用户安装的程序文件,类似于Windows里的Program files目录
boot 存放启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
proc 这是一个虚拟目录,是系统内存的映射,访问这个目录来获取系统信息
srv service的缩写,存放一些服务启动之后需要提取的数据
sys 这时Linux2.6内核的一个很大的变化,该目录下安装了2.6内核中新出现的一个文件系统sysfs
tmp 存放一些临时文件
dev device的简写,类似Windows的设备管理器,把所有硬件用文件形式存储
media Linux会自动识别一些设备,如U盘光驱等,识别后会把设备挂在到这个目录下
mnt 该目录是用来让用户挂载别的文件系统的,可以将外部存储挂载到mnt上
opt 给主机额外安装软件所存放的目录,如数据库的安装包就可以放到该目录下,默认为空
user/local 这是将软件真正安装到的目录
var 用来存放不断扩充着的东西,习惯将经常修改的目录放在这个目录下,包括日志文件
selinux 是一种安全子系统,他能控制程序只访问特定文件,有三种工作模式,可以自行设置
run 是一个临时文件系统,存储系统启动以来的信息,当系统重启时,这个目录下的文件应该被删掉或清除
远程连接
xshell 连接到Linux,命令操作
xftp 文件传输
Vim
Linux会内置vi文本编辑器,Vim是vi的增强版,可以主动以颜色辨别语法的正确性,有代码补全,编译及错误跳转等功能
模式
-
正常模式
-
以vim打开一个文档默认就是正常模式,在这个模式里,可以上下左右控制光标,可以删除字符,或者删除整行,也可以复制粘贴
-
拷贝当前行 yy ,拷贝当前向下的5行 5yy ,粘贴 p
删除当前行 dd ,删除当前向下的5行 5dd
-
G 定位到文档 最末尾行, gg 定位到首行
-
想将光标定位到指定的行 数字+shift+g
-
u 撤销
-
-
插入模式
- 正常模式下按下 I i O o A a R r 中任意字符进入编辑模式,按esc返回正常模式
-
命令行模式
- 正常模式下输入 : 或 / 进入命令行模式,这个模式可以提供相关指令,完成读取,存盘,替换,离开vim,显示行号等动作,wq 保存并退出,q 退出,q! 强制退出,并且不保存,按esc回到正常模式
- / 关键词 即可查询
- : set nu 和 : set nonu 开启和关闭行号
如何用vim写一个Hello.java?
vim Hello.java- 按下字母 i 进入插入模式
- 写代码
- 按下esc回到正常模式,再输入冒号 : 进入命令行模式,输入 wq 按enter,保存并退出
关机和重启
shutdown -h now 立刻关机
shutdown -h 1 1分钟后关机
shutdown -r now 立即重启
halt 关机,作用和 shutdown 一样
reboot 立即重启
sync 把内存中的数据同步到磁盘,重启和关机前最好执行一次 sync
用户登录和注销
登录时尽量少用root登录,有最大权限防止误操作,可以先用普通用户登录,再用 su - root 切换成管理员身份
logout 注销登录,注意该指令在图形化Linux系统下无效
用户管理
创建用户
在root用户下输入 useradd 用户名 创建用户,创建成功后会在home目录下创建一个同名目录,也可以自己指定一个目录 useradd -d 指定目录 用户名 创建用户
设置密码
在root权限下, passwd 用户名 给用户设置密码
删除用户
root权限下 userdel 用户名 删除用户,保留home目录里的用户目录
userdel -r 用户名 删除用户和用户目录
查询用户信息
id 用户名
切换用户
su - 用户名 切换到指定用户,高权限切换到低权限用户不需要密码,反之需要
exit 或 logout 返回到原来的用户时
查看当前用户
whoami 查看当前用户是谁
who am i 显示的是第一次登录的用户是谁
用户组
假如一组用户有共性,可以将他们拉到同一个组中,给组赋权限,这时他们权限都被设置了
若添加了一个用户,没有指定组,系统默认会创建一个和用户名同名的组,组里就他一个
groupadd 组名 添加组
groupdel 组名 删除组
useradd -g 组名 用户名 添加一名用户并将其添加到指定组
usermod -g 组名 用户名 将现有的用户添加到指定组中
和用户组相关的文件
- /etc/passwd 文件 记录用户的各种信息
- /etc/shadow 文件 口令的配置文件
- /etc/group 文件 组的配置文件
指定运行级别
Linux分几种运行级别,常用的是3和5,开发中都是3级别
- 关机
- 单用户(找回丢失密码)
- 多用户状态没有网络服务
- 多用户状态有网络服务
- 系统未使用保留给用户
- 图形界面
- 系统重启
init 数字 切换不同的级别
systemctl get-default 查看当前的运行级别
systemctl set-default multi-user.target 设置默认运行级别为3(不常用)
systemctl set-default graphical.target 设置默认运行级别为5(不常用)
帮助指令
man 命令或配置文件 获取帮助信息
help 命令 获取shell内置命令的帮助信息
文件目录指令
pwd 显示当前所在的绝对路径
ls 显示当前目录下的所有目录和文件
ls -a 显示当前目录下的所有目录和文件,包括隐藏文件
ls -l 显示当前目录下的所有目录和文件,以列表形式显示
cd 切换到指定目录
cd ~ 回到自己的家目录
cd / 回到根目录
cd .. 回到上一级目录
mkdir 创建目录
mkdir -p 创建多级目录
rmdir 删除空目录
rm -rf 删除非空目录
touch 创建空文件
cp 拷贝文件cp 选项 文件 目录
cp -r 递归拷贝文件夹里所有的内容,如cp -r /aa/bb/ /cc/dd/表示将bb目录和里面所有内容拷贝到dd目录
\cp -r 覆盖相同的文件且不提示
rm 删除文件或者目录
rm -r 递归删除整个文件夹
rm -f 强制删除不提示
mv 移动文件(目录)或者重命名文件,重命名文件mv a.txt b.txt,移动文件mv b.txt b/c/,移动文件夹mv a/b c/d
cat 查看文件内容,只读,比vim查看更安全
cat -n 查看文件内容,并且显示行号,为了浏览方便,一般会在文件后面加上| more (|是管道符)
more 一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容,more指令中内置了若干快捷键,详见操作说明
| 操作 | 说明 |
|---|---|
| 空格 | 代表向下翻一页 |
| Enter | 代表向下翻一行 |
| q | 代表立刻离开more,不再显示该文件内容 |
| ctrl + F | 向下滚动一屏 |
| ctrl + B | 返回上一屏 |
| = | 输出当前行的行号 |
| :f | 输出文件名和当前行的行号 |
less 用来分屏查看文件内容,功能与more类似,但是比more更强大,支持各种显示终端,less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据需要加载内容,对于显示大型文件具有较高的效率
| 操作 | 说明 |
|---|---|
| 空格 | 代表向下翻一页 |
| pagedown | 向下翻动一页 |
| pageup | 向上翻动一页 |
| /字串 | 向下搜寻字串的功能,有结果后按n:向下查找,N:向上查找 |
| ?字串 | 向上搜寻字串的功能,有结果后按n:向上查找 N:向下查找 |
| q | 离开less这个程序 |
echo 输出内容到控制台,如echo $HOSTNAME输出主机名
head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容,head -n 5 文件为查看文件头5行内容,5可以是任意行数
tail 用于显示文件的尾部分内容,默认情况下tail指令显示文件的前10行内容,tail -n 5 文件为查看文件尾5行内容,5可以是任意行数
tail -f 表示实时追踪文档的所有更新,如tail -f a.txt就可以监控a.txt的变化
> 覆盖,ls -l > 文件的作用是将列表的内容写入文件中(覆盖写),cat 文件1 > 文件2的作用是将文件1的内容覆盖到文件2
>> 追加,ls-al >> 文件的作用是将列表的内容追加到文件的末尾,如echo "内容" >> 文件的作用是将"内容"追加到文件的末尾
ln -s 软链接也成为符号链接,类似于Windows里的快捷方式,ls -s /aa/bb cc/dd 将bb目录的快捷方式创建到dd目录
history 查看已经执行过的命令,history 10查看最近执行的10条指令,!5表示执行曾经执行过的第5条指令
时间指令
date 显示当前时间
date +%Y 显示年
date +%m 显示月
date +%d 显示日
date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒
date -s "1999-02-08 00:00:00" 设置系统时间
cal 显示本月日历
cal 年份 显示指定年的所有日历
查找
find 范围 选项 从指定目录下向下递归扫描遍历子目录,将满足条件的文件或者目录显示在终端
选项: -name 查询方式 按照指定的文件名查找模式查找文件
-user 用户名 查找属于指定用户名所有文件
-size 文件大小 按照指定的文件大小查找文件,+n为大于n,-n为小于n,n为等于n,单位有k,M,G
如find /home/pan/下载 -name a.txt为查找下载目录下的名为a.txt的文件
如find /home/pan/下载 -size -200M为查找下载目录下小于200M的文件
locate 快速定位文件路径,无需遍历整个系统,速度较快,但是第一次查询需要执行updatedb创建locate数据库
如locate a.txt表示查找a.txt所在路径
which 用来查看某个指令在哪个目录下,如which ls
grep 过滤查找,往往和管道符 | 结合使用,表示将前一个命令的输出结果传递给后面的命令处理
如cat a.txt | grep "3zzz"查找a.txt文件里"3zzz"所在的行,也可写成grep "3zzz" a.txt
如cat a.txt | grep -n "3zzz"查找a.txt文件里"3zzz"所在的行及行号,也可写成grep -n "3zzz" a.txt
带上-i可以忽略大小写
压缩解压
gzip 压缩文件,只能压缩成xx.gz的文件
gunzip 解压文件,解压xx.gz的文件
zip 压缩文件或目录
zip -r表示递归压缩,压缩目录
如zip -r pan.zip /home/pan表示将/home下的pan目录递归压缩成pan.zip
unzip 解压文件或目录
unzip -d指定解压后文件的存放目录
如unzip -d /home/pan/temp /home/pan.zip表示将/home下的pan.zip解压到/home/pan/temp文件夹中去
tar 既可以用来压缩也能用来解压,压缩后的文件是 XXX.tar.gz 的文件 -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 -x 解包.tar文件
tar -zcvf nb.tar.gz a.txt b.txt表示将a.txt和b.txt压缩成nb.tar.gz
tar -zcvf pan.tar.gz /home/pan表示将home下的pan目录压缩成pan.tar.gz文件
tar -zxvf nb.tar.gz表示将nb.tar.gz解压到当前文件夹
tar -zxvf nb.tar.gz -C /home表示将nb.tar.gz解压到/home下面,注意是-C
40