目录
一、Unix和Linux操作系统介绍
- Unix家族
- 1965:贝尔实验室(Bell Labs)加入一项由通用电气和麻省理工学院合作的计划,该计划要建立一套多使用者、多任务、多层次的MULTICS操作系统。后来因为项目太为复杂失败
- 1969:其主要开发者Thompson(后被称为UNIX之父)和Ritchie领导一组开发者,开发了一个新的多任务操作系统—UNICS,后来被改名为Unix,最初的Unix是用B语言和汇编语言混合编写而成
- 1971:两人在贝尔实验室共同发明了C语言,并于1973用C语言重写了Unix
- 1974:UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来
- 1980:有两个最主要的Unix的版本线,一个是Berkeley的BSD UNIX,另一个是AT&T的Unix,两者的竞争最终引发了Unix的战争,最终导致Unix出现各种各样的变种
- 1982:AT&T基于版本7开发了UNIX System Ⅲ的第一个商业版本,并不再开源
- 1992~2001:由于版权问题,AT&T公司与BSD开发组开始了一场将近10年的版权官司。UNIX由于其昂贵的费用,仅局限于大型机的应用;BSD因为版权问题,失去了宝贵的发展时期
- Linux家族
- Minix(mini-UNIX)最初是由Andrew Tanenbaum教授,仿照4.3BSD的源代码,白手起家完成了12000行C语言的编写工作这个系统只是一个教学工具,没有什么实际应用价值
- 1990年,Linus Torvalds决定编写一个自己的Minix内核,初名为Linus’ Minix,意为Linus的Minix内核,后来改名为Linux,此内核于1991年正式发布,并逐渐引起人们的注意
- Linux操作系统的诞生、发展、和成长过程依赖于五个重要支柱:unix操作系统、minix操作系统、GNU计划、POSIX标准和互联网
- GNU计划:GNU是“GNU is Not Unix”的递归缩写,由Richard M.Stallman于1984年创办,旨在开发一个免费、类unix的操作系统-GNU系统及其开发工具;Emacs编辑系统、BASH shell程序、GCC、GDB等开发工具都是GNU组织的产品
- 1992年Linux与其他GNU软件结合,完全自由的操作系统正式诞生。该操作系统往往被称为“GNU/Linux”或简称
- POSIX标准:POSIX标准定义了操作系统应该为应用程序提供的接口标准,POSIX标准用来统一Unix、Linux各分支编程接口,以提高其通用型和可移植性
- Linux的两类用户
- Linux的远亲
- Linux和Unix的联系
- UNIX系统是工作站上最常用的操作系统,它是一个多用户、多任务的实时操作系统,允许多人同时访问计算机, 并同时运行多个任务。UNIX系统具有稳定、高效、安全、方便、功能强大等诸多优点,自20世纪70年代开始便运行在许多大型和小型计算机上
- UNIX虽然是一个安全、稳定且功能强大的操作系统,但它也一直是一种大型的而且对运行平台要求很高的操作系统,只能在工作站或小型机上才能发挥全部功能,并且价格昂贵,对普通用户来说是可望而不可及的,这为后来Linux的崛起提供了机会,Linux是一个类UNIX操作系统
- Linux是免费的、不受版权制约、与UNIX兼容的操作系统
- Linux在x86架构上实现了UNIX系统的全部特性,具有多用户多任务的能力,同时保持了高效性和稳定性,Linux具有如下的优秀的特点:
- 开放性
- 完全免费
- 多用户,多任务
- 设备独立性
- 丰富的网络功能
- 可靠的系统安全性
- Linux内核版本
- 内核(kernel)是系统的心脏,是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层
- Linux内核版本又分为稳定版和开发版,两种版本是相互关联,相互循环
- 稳定版:具有工业级强度,可以广泛地应用和部署。新的稳定版相对于较旧的只是修正一些bug或加入一些新的驱动程序
- 开发版:由于要试验各种解决方案,所以变化很快
- 内核源码网址:http://www.kernel.org,所有来自全世界的对Linux源码的修改最终都会汇总到这个网站,由Linus领导的开源社区对其进行甄别和修改最终决定是否进入到Linux主线内核源码中
- Linux发行版本
- Linux发行版 (也被叫做 GNU/Linux 发行版) 通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件
- 这些操作系统通常由Linux内核、以及来自GNU计划的大量的函式库,和基于X Window的图形界面,在X Window中用户同样可以通过使用鼠标对窗口、菜单等进行操作来完成相应的工作
- X Window系统是一个非常出色的图形窗口系统,是类UNIX系统的图形用户界面的工业标准。X Window系统最重要的特征之一就是它的结构与设备无关
二、文件系统
1 - 目录和路径
- 目录:目录是一组相关文件的集合
- 一个目录下面除了可以存放文件之外还可以存放其他目录,即可包含子目录
- 在确定文件、目录位置时,DOS和Unix/Linux都采用“路径名+文件名”的方式。路径反映的是目录与目录之间的关系
- 路径:Unix/Linux路径由到达定位文件的目录组成。在Unix/Linux系统中组成路径的目录分割符为斜杠“/”,而DOS则用反斜杠“\”来分割各个目录
- 路径分为绝对路径和相对路径
- 绝对路径
- 绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录
- 下级目录接在上级目录后面用“/”隔开
- 注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”
- 相对路径
- 相对路径是指目标目录相对于当前目录的位置
- 如果不在当前目录下,则需要使用两个特殊目录“.”和“”了。目录“.”指向当前目录
- 绝对路径
- shell:Unix版的命令解析器,默认运行在终端当中的程序(进程)
- bash:born again shell,Linux版的命令解析器
2 - 文件系统
- 文件:在Linux操作系统中,所见皆文件
- 家目录:宿主目录,每个用户不同,使用命令
cd 回车
- Linux目录结构(蓝色为需要掌握的目录)
- /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录
- /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等
- /boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub
- /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt
- /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d
- /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~ 表示当前用户的家目录,~edu 表示用户 edu 的家目录
- /lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
- /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下
- /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载
- /opt:给主机额外安装软件所摆放的目录
- /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等
- /root:系统管理员root的家目录(宿主目录)
- /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能"查看"而不能设置和使用
- /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
- /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内
- /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。/usr/include:存放头文件
- /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下
3 - 文件管理
- 命令
ls -l
- ①.文件属性
- ②.硬链接计数
- ③.文件所属用户
- ④.文件所属用户组
- ⑤.文件所占存储空间大小(字节)
- ⑥.文件创建、最后一次修改时间
- ⑦.文件名
- 文件属性:10个字符,分为2组
- 第一组:第一个字符,代表文件类型,共7种(Linux下不以文件后缀名,作为区分文件类型的依据)
- 普通文件 -
- 目录文件 d
- 管道文件 p:伪文件(不占用磁盘存储)
- 套接字文件 s
- 软链接文件 l:—— 相当于windows 快捷方式
- 块设备文件 b:伪文件(不占用磁盘存储)
- 字符设备文件 c:伪文件(不占用磁盘存储)
- 第二组:9 个字符,分3组—— 文件所有者、文件所属组、其他人,权限标识r、w、x
- 第一组:第一个字符,代表文件类型,共7种(Linux下不以文件后缀名,作为区分文件类型的依据)
- 硬链接计数:有多少个 文件公用同一个 inode 编号
- 创建硬链接:ln 旧文件名 新硬链接文件
- 特征:文件和硬链接文件之间,除文件名不一样以外,其他信息完全一致,并能实时同步
- 文件所属用户:谁创建默认属于谁
- 文件所属用户组:谁创建默认属于该用户所在用户组
- 文件所占存储空间大小(字节):文件 —— 实际大小,目录文件 —— 4k整数倍
- 文件创建、最后一次修改时间:初创文件 —— 实际创建时间;修改过的文件,修改时间
- 文件权限
三、文件管理命令
1 - ls、输出重定向、more
- ls查看文件信息常用参数
-a
:显示指定目录下所有子目录与文件,包括隐藏文件(以 “.”开头的文件或目录)-l
:以列表方式显示文件的详细信息-h
:配合 -l 以人性化的方式显示文件大小--help
:查看帮助信息(man 命令名)
- 通配符
通配符
| 含义 |
---|---|
* | 文件代表文件名重所有字符 |
ls te* | 查找以te开头的文件 |
ls *html | 查找结尾为html的文件 |
? | 代表文件中任意一个字符 |
ls ?.c | 只查找第一个字符任意,后缀为.c的文件 |
ls a.? | 只找只有3个字符,前2字符为a.,最后一个字符任意的文件 |
ls [a-f]* | 找到从a到f范围内的的任意一个字符开头的文件 |
\ | 如果要使通配符作为普通字符使用,可以在其前面加上转义字符。“?”和“*”处于方括号内时不用使用转义字符就失去通配符的作用 |
ls *a | 查找文件名为*a的文件 |
- 输出重定向命令>:Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中;如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )
>
输出重定向会覆盖原来的内容>>
输出重定向则会追加到文件的尾部
- 分屏显示:more:查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助
- 类似功能命令:less、cat、tac(反向读取文件内容,例如查看log内容)
- 类似功能命令:less、cat、tac(反向读取文件内容,例如查看log内容)
2 - 管道、clear、cd、pwd
- 管道:一个命令的输出可以通过管道做为另一个命令的输入;管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)
- 清屏clear:clear作用为清除终端上的显示(类似于DOS的 3清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )
- 筛选系统进程:
ps aux | grep xxx
—— 筛选系统中,所有正在运行的 xxx 进程 - cd切换工作目录:change directory —— 进入某个目录
- cd /bin 绝对路径
- cd … 上一级目录
- cd ./ 当前目录
- cd ~ 回用户宿主目录(家目录)
- cd 回车 回用户宿主目录(家目录)
- cd - : 切换到上一次工作过的目录中
- pwd:查看当前进程工作目录位置
- 终端提示符的语法规则:用户名@主机名:当前shell进程工作目录 $ / #【$:普通用户、#:管理员】
3 - 创建删除:目录和软硬链接
-
创建目录:mkdir 目录名
- -p: 递归一次性创建多个目录
- -p: 递归一次性创建多个目录
-
删除文件和目录:rm -r
- -r: 递归删除目录子内容
- -i:以进行交互式方式执行
- -f:强制删除,忽略不存在的文件,无需提示
- rm 命令删除的文件、目录不易恢复 !!!!!!!!!!
-
ln命令
- 硬链接:ln 源文件 链接文件(不能给目录创建硬链接)
- 软链接:ln -s 源文件 链接文件(等同于windows下的快捷方式,建议使用绝对路径创建软链接),可以给目录创建软链接
4 - 文件的查看、拷贝、移动、改名
- 查看或者合并文件内容:cat
- 拷贝文件:cp:cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令
- -a:该选项通常在复制目录时使用,它保留链接、文件属性,并递归地复制目录,简单而言,保持文件原有属性
- -f:覆盖已经存在的目标文件而不提示
- -i:交互式复制,在覆盖目标文件之前将给出提示要求用户确认
- -r:若给出的源文件是目录文件,则cp将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
- -v:显示拷贝进度
- 移动文件mv:用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名
- 移动文件: mv 待移动文件名 目录位置
- 改名文件: mv 待改名文件名 不存在的文件、目录名
- -f:禁止交互式操作,如有覆盖也不会给出提示
- -i:确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件
- -v:显示移动进度
- 获取文件类型file:Linux系统文件类型不是根据文件扩展名分类的,通过file命令可以确认文件具体类型
5 - 压缩与解压缩
- 归档管理tar打包:计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据
- 压缩命令gzip:不能打包压缩!不能保留源文件。不能压缩目录
- 压缩命令bzip2:不能打包压缩!不能压缩目录
- 压缩结论
- 压缩:tar -zcvf xxx.tar.gz 打包压缩材料
tar -jcvf xxx.tar.bz2
(.tar.gz : .tar.bz2: 不具有语法强制性。但是推荐使用!)- z: gzip格式压缩;j: bzip2 格式压缩
- c: 创建压缩文件
- v: 输出压缩详细
- f: 指定压缩后的文件名
- 压缩:tar -zcvf xxx.tar.gz 打包压缩材料
- 解压结论
- 解压缩:tar -zxvf xxx.tar.gz;tar -jxvf xxx.tar.bz2
- zip
- 压缩:zip -r 压缩包名(没有.zip后缀) 打包压缩材料
- 解压缩: unzip -d 解压缩位置目录 xxxzip(待解压缩文件)
- rar
- 压缩:rar a -r 压缩包名.rar(后缀可加可不加) 打包压缩材料
- 解压缩: rar x 待解压缩包名.rar
6 - 用户、用户组管理
- 查看当前登录用户whoami:whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息
- 退出登录账户exit
- 如果是图形界面,退出当前终端
- 如果是使用ssh远程登录,退出登陆账户
- 如果是切换后的登陆用户,退出则返回上一个登陆账号
- 切换用户su:通过su命令切换用户
- su 用户名: 切换到指定用户登录,不修改工作目录位置
- su - 用户名: 切换到指定用户登录,修改工作目录位置到该用户的宿主目录
- su - root:切换root用户登录,修改工作目录位置到 root 的 宿主目录
- su root:切换root用户登录,不改变工作目录位置 等价于( sudo su )
- sudo关键字:临时获得一次root用户权限。执行完后续命令,该权限失效
- 添加新用户:sudo adduser 新用户名
- 删除新用户:sudo deluser 用户名
- 设置用户密码passwd:在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名
- 修改文件所有者:chown 新用户名 待修改用户的文件名
- 添加新用户组:sudo addgroup 新组名
- 删除新用户组:sudo delgroup 组名(家目录的文件还是存在的)
- 修改文件所属组:chgrp 新组名 待修改组名的文件名
- 修改文件到新的用户、用户组:使用命令chown 用户名:用户组名 文件或目录名可直接同时修改文件的所有者和所属组。如:sudo chown nobody:nogroup a.c可将a.c文件设置到 nobody用户、nogroup 用户组下
7 - 权限管理
- chmod:修改文件、目录访问权限
- 数字法:r、w、x : 4/2/1(示例:r-x-w-r–: 5 2 4)
- rwx对于目录文件的含义
- r:
- 文件:查看文件内容、cat、more、less、tac、vim(读)、gedit(读)
- 目录:目录的内容(目录项)可以被查看,ls、vim(读)
- w:
- 文件:修改、删除文件内容,cat > can >>,vim(写、删)、gedit(写、删)
- 目录:目录的内容(目录项)可以被修改、删除、增加mv、cp、rm、rmdir、mkdir、touch
- x:
- 文件:该文件可以运行
- 目录:该目录可以被进入
- r:
四、系统管理命令
1 - 进程相关命令
- 查看进程信息ps:ps aux | grep xxxx
- -a:显示终端上的所有进程,包括其他用户的进程
- -u:显示进程的详细状态
- -x:显示没有控制终端的进程
- -w:显示加宽,以便显示更多的信息
- -r:只显示正在运行的进程
top:Linux下的 任务管理器
- 终止进程:kill -9 欲终止的 进程ID (可以通过 ps aux | grep 获取)【9 —— SIGKILL】
- 前台与后台的区别:判别标准是 —— 是否能与用户完成交互
firefox www.baidu.com
执行后,CTRL+C,终端可以关闭掉火狐的浏览器,这个是前台的进程- 而使用
firefox www.baidu.com &
,就无法使用CTRL+C关闭火狐浏览器了 - & : 将进程放置到后台执行
- jobs: 查看后台运行的进程
- fg:恢复后台一个进程到前台执行; + 优先级高;指定某一个进程恢复到前台来;用 jobs查看的 “进程编号”
2 - 关机重启
- 关机重启
- reboot:重新启动操作系统
- shutdown –r now:重新启动操作系统,shutdown会给别的用户提示
- shutdown -h now:立刻关机,其中now相当于时间为0的状态
- shutdown -h 20:25:系统在今天的20:25 会关机
- shutdown -h +10:系统再过十分钟后自动关机
- init 0:关机
- init 6:重启
3 - 网络设置
- 查看或配置网卡信息ifconfig
- eth0:网络接口名称
- Link encap:链路封装协议
- Hwaddr:网络接口的MAC地址
- Inet addr:IP地址
- Bcast:广播地址
- Mask:子网掩码
- UP:网络接口状态标识,UP已经启用,DOWN已经停用
- BROADCAST:广播标识,标识网络接口是否支持广播
- RUNNING:传输标识,标识网络接口是否已经开始传输分组数据
- MULTICAST:多播标识,标识网络接口是否支持多播
- MTU,Metric:MTU:最大传输单位,单位:字节。Metric:度量值,用于RIP建立网络路由用
- RX bytes:接收数据字节统计
- TX bytes:发送数据字节统计
- ifconfig配置网络参数:
sudo ifconfig ens33 新IP
只有root才能用ifconfig配置参数,其他用户只能查看网络配置- -a:显示所有网络接口状态
- inet [IP地址]:设置IP地址
- netmask [子网掩码]:设置子网掩码
- up:启用网络接口
- down:关闭网络接口
- 临时设置ip地址:
sudo ifconfig ens33 新IP
,系统重启失效- sudo ifconfig ens33 up/down 使用命令 网卡启动、关闭
- 永久设置ip地址 —— 图形
- 设置——网络——有线连接 + —— IPv4 —— 手动 —— 填入地址、子网掩码 、网关 —— “添加”
- 网址: 网段。IP里面倒数第二字段
- 子网掩码: 255. 255.255. 0
- 网关:网段确定后,网关即为该网段的 第一个ip地址。192.168.xxx.1 —— 192.168.xxx.255 (广播地址)
- 设置——网络——有线连接 + —— IPv4 —— 手动 —— 填入地址、子网掩码 、网关 —— “添加”
- 永久设置ip地址 —— 命令:通过修改配置文件,达到永久修改IP的目的
- 修改 /etc/network/interfaces 文件。 添加 网址、子网掩码、网关
- 指定DNS服务器
- 测试远程主机连通性ping:发送一个测试数据包,到指定的 IP地址。测试是否畅通
- -a 每次相应时都发出声音警示
- -A 表示以实际往返相应时间为间隔,连续发送消息
- -f 连续不断发送消息,不管是否收到相应
- -n 只显示主机IP,不需要把IP解释成主机名
- -c 发送指定次数数据报信息后停止,ping -c 5 192.168.10.254
- -i 每次发送消息时间间隔,默认一秒,ping -i 2 192.168.10.254
- -s 分组数据大小,默认64字节
- -w 以秒为单位的超时值,一旦超时,就立即停止
4 - 虚拟机网络设置
- 桥接模式:路由器给虚拟Linux单独分配一个IP地址,与 windows 所在同一网段(相当于虚拟机虚拟成一台电脑)
- NAT模式:Linux 虚拟机借助windows网卡,访问外网,linux和windows公用访问外网的IP(共享主机的IP的地址)
5 - 查找与检索
- find:语法
find 搜索目录位置 参数 搜索条件
- name:按名称搜索 ——
find /home/itcast/go_1 -name "*.soft"
—— 在目录中找 .soft 结尾的文件 - -type:按类型搜索 —— f(普通文件)、d、l、c、b、p、s ——
find /run/ -type "s"
—— 在目录中找 socket 文件 - -size:按大小搜索(+ : 大于、 - : 小于)
find ~/ -size +3M -size -8M
—— M只支持大写find ~/ -size +3k -size -8k
—— k只支持小写find ./ -size +3 -size -8
—— 无单位,按扇区个数计算(一个扇区大小为 512B)
- -maxdepth:按层级搜索,放置于其他参数之前
find -maxdepth 1 -type 'f' -name "*.go"
:只在当前目录下,搜索 .go 文件、目录
- -exec:对搜索结果,执行某些命令 ——
find -maxdepth 1 -type 'f' -name "*.go" -exec ls -l {} \;
- xargs:需要结合管道,将搜索结果指定给某个命令使用
find -maxdepth 1 -type 'f' -name "*.go" | xargs ls -l
- 特例:如果文件名中含有空格, 如:文件名:‘abc xyz’ ——
find -maxdepth 1 -type 'f' -print0 | xargs -0 ls -l
- name:按名称搜索 ——
- grep:
grep -r/-R "love" 目标目录位置
—— 递归的在指定目录中,找寻包含某字符串的文件 - 结合find、xargs、grep:
find -maxdepth 1 -type 'f' -print0 | xargs -0 grep "love" -n
—— 找寻当前目录下,包含 “love”的文件,并显示在 多少行出现 (-n 行号)
Linux系统常用快捷键
打开终端:CTRL+ALT+T
关闭终端:CTRL+D
清除已经输入的内容:CTRL+U
清屏:clear
Ctrl + Alt + ↓ 或 ↑ —— 虚拟一块新桌面
Ctrl + Alt + T —— 唤醒一个新终端(独立)
Ctrl + shift + T —— 在一个终端里,创建多个shell标签