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
  1. 输入 !6 ,执行history命令历史中第6行命令

  2. 使用 !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 传送门

http://linux.51yip.com/

https://www.linuxcool.com/

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退出

最新文章

  1. 我的MYSQL学习心得(十五) 日志
  2. TCP的三次握手(建立连接)和四次挥手(关闭连接)
  3. HTML input-file 上传类型控制
  4. django session
  5. 一个小玩意 PHP实现微信红包金额拆分试玩
  6. CentOS生产机器禁止ROOT远程SSH登录
  7. 使用.NET中的Action及Func泛型委托
  8. ASP.NET方面的一些经典文章收集
  9. RocketMq消息队列使用
  10. 利用Advanced Installer将asp.netMVC连同IIS服务和mysql数据库一块打包成exe安装包
  11. 理解 Web 中的Session
  12. linux Table is marked as crashed and should be repaired
  13. Python【每日一问】11
  14. 【BZOJ4771】七彩树(主席树)
  15. UCS2编码
  16. csu oj 1342: Double
  17. python处理中文
  18. thrift安装及使用
  19. python 同时迭代多个序列
  20. Python3基础 dict items 以元组的形式打印出字典的每一个项

热门文章

  1. Ubuntu 20.04 版本安装
  2. python基础之面向对象(三))(实战:烤地瓜(SweetPotato))
  3. 我的Python书被台湾的出版社引进版权了,书的名字也更吸引人了
  4. SpringCloud Alibaba实战(2:电商系统业务分析)
  5. ubuntu 20.04 编译安装 p 详解
  6. kafka之一:kafka简介
  7. Selenium八种元素定位方法源码阅读
  8. 昇腾AI 软硬件全栈平台
  9. GPU自动调度卷积层
  10. Single Shot Multibox Detection (SSD)实战(上)