3.4 虚拟机快照技术
- 什么是快照
3.5 虚拟机克隆技术
- 什么是克隆
4.Bash Shell快速入门
4.1 什么是Bash Shell
bash shell是一个命令解释器,主要负责用户程序与内核进行交互操作的一种接口,将用户输入的命令翻译给内核,由内核驱动硬件,最终将处理后的结果输出至bash shell屏幕终端
我们如何打开 Bash Shell 呢?
当我们使用远程连接工具连接 linux 服务,系统则会给打开一个默认的 shell ,我们可在这个界面执行命令、比如:获取系统当前时间,创建一个用户等等
4.2 Bash shell 能干什么
- 使用shell实现对linux系统的大部分管理 eg:
- 1.文件管理
- 2.权限管理
- 3.用户管理
- 4.磁盘管理
- 5.网络管理
- 6.服务管理
- 7.服务管理
- 8.等等
4.3 如何使用bash shell
- 单条命令-->效率低-->适合少量的工作
- shell脚本-->效率高-->适合重复性工作
- 例如:创建100个用户,单纯输入命令需要执行100次,而用shell脚本则轻松解决
[root@web ~]# cat useradd.sh
#!/usr/bin/bash
# 批量创建脚本
for i in {1..100}
do
useradd alice-$i
echo "alice-$i" is create ok..
done
4.4 bash shell 提示符
当我们打开或者登陆到一个终端的时候都会显示一长串提示符[root@web ~]#
提示符一般包含当前登陆的用户名,主机名,以及当前工作的路径等
4.5 bash shell 基础语法
bash shell命令行,为用户提供命令输入,然后将执行结果返回给用户;
命令示例如下:
[root@web ~]# ls # 命令
[root@web ~]# ls -a # 命令+选项
[root@web ~]# ls -a /home/ # 命令+选项+参数
- 命令:整条shell命令的主体功能
- 选项:用于调节命令的具体功能
- 以 - 引导短格式选项(单个字符),例如 -a
- 以 -- 引导长格式选项(多个字符), 例如 --all
- 多个短格式选项可以写在一起,eg: -al
- 参数:命令操作的对象,如文件,目录名等
- 注意:命令必须开头,选项和参数位置可以发生变换
4.6 bash shell 的基本特性
4.6.1 补全功能tabs
-
1.命令补全:当忘记命令时,可以使用tabs进行补全;
-
2.目录补全:当需要查找文件目录层级比较多时,可以使用tabs快速补全,减少出错;
-
#查看ip时忘记具体了命令 [root@web ~]# ifcon #按下tab键会自动补全 [root@web ~]# ifconfig #按一下tab键没有反应, 按两下tab键列出所有if开头的命令 [root@web ~]# if if ifconfig ifenslave ifrename ifcfg ifdown ifnames ifup #linux目录较深,经常使用tab键进行补全, 如果路径出错是没有办法 补全 [root@web ~]# ls /etc/sysconfig/network-scripts/
4.6.2 常用快捷键ctrl
- 命令快捷键,可以帮助我们大大提升效率
- ctrl + a :光标跳转至正在输入的命令行的首部
- ctrl + e :光标跳转至正在输入的命令行的尾部
- ctrl + c :终止前台运行的程序
- ctrl + d :在shell中,表示退出当前shell
- ctrl + z :将任务暂停,挂至后台
- ctrl + l :清屏,和clear命令等效
- ctrl + k :删除光标到行末的所有字符
- ctrl + u :删除光标到行首的所有字符
- ctrl + r :搜索历史命令,利用关键字
4.6.3 历史记录 history
历史记录可用于追述系统之前执行过什么命令,造成的故障;之前发生过什么情况
1.使用双 !! 可执行上一条执行过的命令
[root@web ~]# ls
file.txt
[root@web ~]# !!
ls
file.txt
-
输入 !6 ,执行history命令历史中第6行命令
-
使用 !cat ,调用history 命令历史最近一次执行过的cat命令
[root@web ~]# cat /etc/sysconfig/network- scripts/ifcfg-eth0 [root@web ~]# !cat cat /etc/sysconfig/network-scripts/ifcfg-eth0
4.6.4 命令别名 alias
命令别名将用户经常使用的复杂命令简单化,可以用alias 别名 名称='命令'创建属于自己的命令别名,若要取消一个命令别名,则是用unalias别名名称;
1.定义临时别名,wk 为查看 eth0 网卡别名
[root@web ~]# alias wk='ifconfig'
[root@web ~]# wk
2.如果定义命令本身,会执行什么?
[root@web ~]# alias ifconfig='ifconfig eth0'
#绝对路径执行, 调用命令本身
[root@web ~]# /sbin/ifconfig
#通过转义字符, 调用命令本身
[root@Web ~]# ifconfig
3.取消别名
[root@web ~]# unalias ifconfig
4.永久生效,/etc/bashrc
[root@web ~]# echo "alias ifconfig='ifconfig eth0'"
>> /etc/bashrc
4.6.5 帮助手册help
1.命令 --help 帮助
[root@web ~]# ls --help
用法: ls [选项]...[文件]...
2.命令 man 手册
# man ls #查看ls命令的手册
3.linux 命令大全 url 传送门
https://www.runoob.com/linux/linux-command-manual.html
02.Linux文件管理
1. 文件管理概述
谈到Linux文件管理,首先我们需要了解的就是,我们要对文件做些什么事情?
其实无非就是对一个文件进行,创建,辅助,移动,查看,编辑,压缩,查找,删除,等等
如:当我们想修改系统的主机名称,是否应该知道文件在哪,才能去做对应的修改?
1.1 系统目录结构
几乎所有的计算机操作系统都是使用目录结构组织文件.具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树的分支,所以该结构又称为"目录树"
windows:以多根的方式组织文件 C: D:
Linux : 以单根的方式组织文件 /
1.1.1 命令相关的目录 /bin
- 存放命令相关的目录
- /bin 普通用户使用的命令 /bin/ls /bin/date
- /sbin 管理员使用的命令 /sbin/service
1.1.2 用户家相关目录/home
-
存放用户相关数据的家目录,比如 windows 不同的用户登录系统显示的桌面背景不一样
- /home 普通用户家目录,默认/home/username
- /root 超级管理员root的家目录,普通用户无权操作
1.1.3 系统文件目录/usr
-
存放系统相关文件的目录
- /usr 相当于 C:windows
- /usr/local 软件安装的目录,相当于C:Program
- /usr/bin/ 普通用户使用的应用程序(重要)
- /usr/sbin/ 管理员使用的应用程序(重要)
- /usr/lib 库文件 Glibc 32bit
- /usr/lib64 库文件Glibc 64bit
1.1.4 系统启动目录/boot
-
存放系统启动时内核与grub引导菜单
- /boot 存放的系统启动相关的文件.如:kernel , grub(引导装载程序)
1.1.5 配置文件目录/etc
- /etc 存放系统配置文件目录,后续所有服务的配置都在这个目录中
- /etc/sysconfig/network-script/ifcfg- ,网络配置文件
- /etc/hostname 系统主机名配置文件
1.1.6 设备相关目录 /dev
-
/dev存放设备文件的目录,比如硬盘,硬盘分区,光驱,等等
- /dev/null 黑洞设备,只进不出.类似于垃圾回收站
- /dev/random 生成随机数的设备
- /dev/zero 能源源不断的产生数据,类似于提款机,
1.1.7 可变的目录 /var
- /var 存放一些变化的文件.比如/var/log/ 下的日志文件
- /var/tmp 进程产生的临时文件
- /tmp 系统临时目录(类似于公共厕所)
1.1.8 虚拟系统目录/proc
- 虚拟的文件系统(如对应的进程停止则/proc下对应目录则会被删除)
- /proc 反映当前系统正在运行进程的实时状态,类似于汽车在运行中的仪表盘,能够看到汽车的油耗,时速,转向灯,故障等等
1.2 文件路径定位
在我们开始操作文件之前,首先需要对文件的路径进行定位
1.2.1 为什么要进行定位
- 你要在哪个目录下创建文件?
- 你要将文件复制到什么地方?
- 你要删除的文件在什么地方?
1.2.2 如何对文件进行定位
比如: /etc/hostname 整个文件中包含文件名称以及文件所
在的位置,我们将这个叫做路径,也就是说我们是通过路径
对文件进行定位。例:下图所示的 message 所在的路径是?
FQ1: /home/boy/file 和 /home/oldgirl/file 是否是同
一个文件?
FQ2: /abc/test 和 abc/test 是一样的吗?
- 不一定:取决于你当前所在的位置;
1.2.3 绝对路劲与相对路劲
- 绝对路径: 只要从/开始的路径,比如 /home/alice/file
- 相对路径: 相对于当前目录来说,比如 a.txt ./a.txt
../bob/a.mp3 - . 和 .. 的是什么意思
- 一个点代表当的是当前目录;
- 两个点代表的是当前目录的上层目录;
- 小结:所谓的(.)和(..)目录实际上属于相对路径的一种表示
形式;
1.2.4 路径切换命令 cd
例子:
# cd 绝对路径 cd /etc/hostname
# cd 相对路径 cd test/abc cd . cd ..
-------------------------------------
# cd #切换目录,例: cd /etc
# cd - #切换回上一次所在的目录
# cd ~ #切换回当前用户的家目录,注意:root和普通用户
是否有所不同吗?
# cd . #代表当前目录,一般在拷贝、移动等情况下使用
cp /etc/hostname ./
# cd .. #切换回当前目录的上级目录
2.文件管理命令
2.1 文件操作命令
2.1.1 touch 文件创建
# touch file #无则创建,有则修改
时间
# touch file2 file3
# touch /home/od/file4 file5
# touch file{a,b,c} #{}集合,等价
touch a b c
# touch file{1..10}
# touch file{a..z}
2.1.2 mkdir 目录创建
# 选项:-v 显示详细信息 -p 递归创建目录
# mkdir dir1
# mkdir /home/ob/dir1 /home/ob/dir2
# mkdir -v /home/ob/{dir3,dir4}
# mkdir -pv /home/ob/dir5/dir6
# mkdir -pv /home/{ob/{diu,but},boy}
2.1.3 tree显示目录结构
# 选项: -L: 显示目录树的层级
# tree /home/ob/ #显示当前目录下的结构
/home/ob/
├── but
├── dir1
├── dir2
├── dir3
├── dir4
├── dir5
│ └── dir6
└── diu
2.1.4 cp 文件或目录复制
#选项: -v:详细显示命令执行的操作 -r: 递归处理目录与子
目录 -p: 保留源文件或目录的属性
# cp file /tmp/file_copy
# cp name /tmp/name #不修改名称
# cp file /tmp/ #不修改名称
# cp -p file /tmp/file_p #-p保持原文件或目录的属
性
# cp -r /etc/ /tmp/ #复制目录需要使用-r参
数, 递归复制
# cp -rv /etc/hosts /etc/hostname /tmp #拷贝多个
文件至一个目录
# cp -rv /etc/{hosts,hosts.bak}
# cp -rv /etc/hosts{,-org}
2.1.5 mv 文件移动命令
# mv file file1 #原地移动算改名
# mv file1 /tmp/ #移动文件至tmp目录
# mv /tmp/file1 ./ #移动tmp目录的文件至当
前目录
# mv dir/ /tmp/ #移动目录至/tmp目录下
# touch file{1..3}
# mv file1 file2 file3 /opt/ #移动多个文件或至
同一个目录
# mkdir dir{1..3}
# mv dir1/ dir2/ dir3/ /opt #移动多个目录至同
一个目录
2.1.6 rm 文件或目录删除
#选项:-r: 递归 -f: 强制删除 -v: 详细过程
# rm file.txt #删除文件, 默认rm存在alias别
名,rm -i所以会提醒是否删除文件
# rm -f file.txt #删除文件, 不提醒
--------------------------------
# rm -r dir/ #递归删除目录,会提示
# rm -rf dir/ #强制删除目录,不提醒(慎用)
--------------------------------
#1.rm删除示例
# mkdir /home/dir10
# touch /home/dir10/{file2,file3,.file4}
# rm -f /home/dir10/* //不包括隐藏文件
# ls /home/dir10/ -a
. .. .file4
--------------------------------
#2.rm删除示例2
# touch file{1..10}
# touch {1..10}.pdf
# rm -rf file*
# rm -rf *.pdf
2.2 文件查看类命令
2.2.1 cat命令
#------cat
# cp /etc/passwd ./pass
# cat pass #正常查看文件方式
# cat -n pass #-n显示文件有多少行
# cat -A pass #查看文件的特殊符号,比如文件中存在tab
键
# tac pass #倒序查看文件
2.2.2 less / more 命令
#------less、more
# less /etc/services #使用光标上下翻动,空格进行
翻页,q退出
# more /etc/services #使用回车上下翻动,空格进行
翻页,q退出