CentOS基础学习加强
学习目标
- 能够熟练编写文件相关命令
- 能够熟练编写文件解压缩命令
- 能够熟练编写网络查看简单命令
- 能够熟练编写查看磁盘命令、挂载命令
- 能够知道如何使用命令进行分区、格式化
- 能够熟练使用yum进行查找、安装、卸载软件
- 能够熟练使用rpm进行查找、安装、卸载软件
- 能够熟练编写常用的shell脚本
1.Linux文件管理
1.1touch
touch主要是作为文件创建的一个命令,注意是创建文件,不是创建文件夹。
touch 文件名.文件类型
多个相似文件的创建: touch 文件名{起…末}.文件类型
查看: ls -l
该查看命令能显示出文件修改(并不是文件访问)的时间等
stat [文件名或目录]
查看文件的属性,包括访问时间等
1.2Vim编辑器
vim编辑器是Linux旗下的一个重要的自带的编辑器,也是vi的一个升级版!
1.vi介绍
- vi的特点
- 只能是编辑 文本内容, 不能对 字体 段落进行排版
- 不支持鼠标操作
- 没有菜单
- 只有命令
- vi编辑器在 系统管理 服务器管理 编辑文件时, 其功能永远不是图形界面的编辑器能比拟的
2、vim介绍
vim:是从 vi (系统内置命令)发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。
vim 则可以说是程序开发者的一项很好用的工具(vim有颜色提示且小巧轻便!)。
1.2.2 vi/vim模式
vi/vim模式主要分为以下三种:
命令模式:在Linux终端中输入“vim 文件名”就进入了命令模式,但不能输入文字。
**编辑模式:**在命令模式下按i就会进入编辑模式,此时就可以写入程式,按Esc可回到命令模式。
**末行模式:**在命令模式下按:进入末行模式,左下角会有一个冒号出现,此时可以敲入命令并执行。
上图总结
上面的三种模式简单总结下就是:
1、vim 开始进入时是命令模式
2、按下I的时候会进入编辑模式
3、按下ESC然后在按下:的时候是末行模式
常见使用
-
A:在末尾进行添加文本
-
o:在当前行后面出入空行
-
O:在当前行前面插入空行
*退出:*wq(保存并退出)
:wq!(强制保存并退出,仅限root用户)
: q退出不保存, :q!强制退出
通常来说使用vim编辑器需要打开,保存,三种模式间的切换。(命令,编辑,查看)
1.2.3文件查看
常用: cat [文件名]
cat -n [文件名] 查看时加上文件的行号数字
查找 grep命令
grep类似于windows中文件的ctrl+f的相关功能,进行查找
1.关键字进行查找
grep [关键字] [文件名]
grep进行查找时,找到的内容会进行输出(即只输出找到内容,特殊符号不会进行查找)
grep -n 关键字 [文件名]
显示查找到的目标信息行号
grep -i 关键字 [文件名]
忽略关键字大小写进行查找
3.进程相关查找
ps -ef | grep 进程名
ps -ef :查询进程的简要信息
ps -aux :查询进程的详细信息
查找相关的进程,注意Linux中涉及到进程的 命令时都需要有 管道符"|" 以及都为ps开头
查询出的 结果并不包括最后一项,最后一条记录是grep本身!
ps -aux | grep 进程名 |grep -v "不包括的进程名"
详细查询指定进程,并不包括相关进程
ps -ef | grep -c 进程名
查找目标进程个数!
2.less命令
也是查看文件的一大命令,主要用于查看内容较多的文本文件,分页显示,分页查询。
less [文件名]
history | less
查看历史相关命令,个人觉得管道符"|"表示的多个命令共同的意思
1.2.4 vim相关
当vim异常中断时,再(每)次打开会出如下:
将后缀名为.swp的文件删除即可恢复: rm -rf .完整文件名.swp
1.3 echo命令
使用权限:所有人
echo表示输出,此时Linux借鉴了PHP语法,其作用通常是在于追加文件内容到文件,类似于java se阶段中的append文件流写入一样。
常规的使用方法是: echo "输出内容"
- 默认是输出到控制台
- 也可通过重定向输出到文件
echo “内容” >(>>) 文件名
- “>”:覆盖
- “>>”:追加到文件末尾
1.5 软连接
软连接就类似于Windows中快捷方式,在Linux中内容和文件名通常是两个文件的,也就是分开的!
(软连接的原理如图所示,说白就是通过软连接找到目标文件的具体地址,再通过具体地址进行文件内容的输出!之所以会有这种模式,是因为某些文件路径太深!)
用法:
命令 | 作用 | |
---|---|---|
ln -s [目标文件绝对路径] [快捷方式路径] | 给目标增加一个快捷方式 |
1.6 整体文件查找find
find命令在指定目录下进行查找,若不加参数,则默认在当前目录下进行查找。
find [指定目录] [指定条件] [目标内容]
find . -name “*.gz” 将其目标及子目录均为gz拓展名的文件查询出来
find / -name “目标文件名” 全局搜索目标文件("/" 表示全局搜索)
总结:通常而言find 命令都与参数 -name是在一起所使用的!
1.7 read命令
read命令主要属于文件范畴命令,主要应用在Linux的shell编程中!
read只能在脚本文件.sh中使用!
read命令相当于在java SE阶段的键盘录入输入Scanner(read命令会比Scanner更强大),开发人员可以动态的与程序交互,即交互使用read命令。
1.简单读取
echo "请输入网站:" #读取键盘输入内容 read website echo "你输入的网站为:$websit" exit 0 #退出操作
~
2.读取文件
每次调用 read 命令都会读取文件中的 “一行” 文本。当文件没有可读的行时,read 命令将以非零状态退出。
我们可以使用 cat 命令将结果直接传送给包含 read 命令的 while 命令。
执行效果:
1.8 总结
文件命令是我们在开发过程中最经常使用的到的命令,所以,我们在学习过程中一定要认真学习文件的常用命令,比如文件创建、编写、读取命令。
2.Linux备份压缩
window解决压缩文件时通常采用的第三方软件,如360压缩,快压之类的软件。而Linux解压问题时,则是采用的命令来解决!
2.1 gzip命令
只能针对于文件,不能针对目录。
Linux下不能识别的格式:
- .rar
- .7z
gzip主要是压缩文件程序,经其压缩后后缀为".gz"的扩展名!
gzip [参数] [文件]
gzip *
压缩该目录下所有的文
2.2 gunzip
用于通用的被gzip压缩文件的一个解压
gunzip[参数] [文件或者目录]
2.3 tar命令
tar的主要功能是打包、压缩和解压文件。
tar本身不具有压缩功能。他是调用压缩功能实现的 。tar是linux中使用比较多的关于压缩与解压相关的命令!
tar[必要参数] [选择参数] [文件]
1.将文件进行打包
通常打包之后的后缀名为.tar
tar -cvf 包名.tar 目标文件
打包之后源文件也一直在那里,不会因此而消失!
tar -xvf 目标文件 (解包)
tar -ztvf 目标压缩文件
查看目标压缩文件(只能针对压缩文件)中有哪些文件,但不进行解压!
3、将tar 包解压缩的通俗思路
解压命令:tar -zxvf 目标压缩文件.gz
打包压缩命令:tar -zcvf 压缩后.tar.gz 源文件
1.新建目录
mkdir ysFiles
2.复制
cp txt.tar.gz ./ysFiles/
3.解压缩
tar -zxvf /home/itcast/ysFiles/txt.tar.gz
2.4 zip版本压缩
zip命令就完全的相当于在Windows下面选中文件右键进行压缩了。
zip [一些参数] [目标文件]
unzip [目标文件] [解压目录]
unzip -l [目标文件] 查看压缩文件中包含的文件,并不进行解压!
1.新建目录
unFiles
2.解压缩
unzip -d ./unFiles zFiles.zip
总结:不同的文件后缀对应不同解压方式,比较常见的还是 tar和zip相关。然后就是注意区分打包和压缩是两回事!
3. 网络与存储相关
**ifconfig **
类似于ipconfig命令,查看基础的网络相关配置及IP信息等!
**ens33(有的是eth0)**表示第一块网卡。
表示ens33网卡的 IP地址是 192.168.23.129,广播地址,broadcast 192.168.23.255,掩码地址netmask:255.255.255.0 ,inet6对应的是ipv6
lo 是表示主机的回坏地址,这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口 。
2.关闭(启用)网卡
ifconfig [网卡名] down
ifconfig [网卡名] up
(关闭后便查不到网卡的信息)
3.配置网卡信息
// 配置ip地址
ifconfig ens37 192.168.23.199
// 配置ip地址和子网掩码
ifconfig ens37 192.168.23.133 netmask 255.255.255.0
4.netstat命令
netstat 主要是用于对于Linux网络情况的一个查看的状况
4.1显示详细链接情况
netstat -a
netstat -i
显示网卡列表
3.2 磁盘命令
lsblk
此命令表示查询磁盘相关的一个命令
NAME : 这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在上面设备sr0的RM值等于1,这说明他们是可移动设备。
SIZE : 本栏列出设备的容量大小信息。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT : 本栏指出设备挂载的挂载点。
**lsblk -f **:列出所有的空设备,默认不会列出空设备
FSTYPE表示文件类型
LABEL表示设备标签
UUID设备编号
MOUNTPOINT表示设备的挂载点
注意
这个命令主要是在下面将在fdisk分区中会经常使用到
3.2.2 df命令
类似于windows下的磁盘管理的一个界面,主要作用是为了显示Linux磁盘的使用情况等!
使用权限:所有人
1. df
显示磁盘使用情况
df -h
换算为常用单位后显示
df --total
显示所有信息
3.2.3 挂载mount命令
Linux中外部存储设备(除内存以外),需要经过挂载之后才能使用。
挂载理解为windows下的一个盘符分配功能,只不过Linux是拿系统目录作为盘符,windows中的盘符在Linux中相当叫挂载点,把存储分区或U盘等存储设备分配一个挂载点的过程叫挂载。
mount便是挂载中经常要使用到命令
实际上windows插入U盘时,也是需要去分配盘符的,只不过windows下的分配盘符是自动的。在安装linux系统时设立的各个分区,如根分区、/boot分区等都是自动挂载的,也就是说不需要我们人为操作,开机就会自动挂载。但是光盘、u盘等存储设备如果需要使用,就必须人为的进行挂载。
Linux根目录以外的文件想要访问,首先需要“关联”到根目录下来实现,这就叫“挂载”,这个目录便是“挂载点”,解除该关联关系便称之为"卸载"。
注意:“挂载点”的目录需要以下几个要求:
(1)目录事先存在,可以用mkdir命令新建目录;
(2)挂载点目录不可被其他进程使用到;
(3)挂载点下原有文件将被隐藏。
比如进行光盘挂载
1.创建挂载点,-p表示若该目录不存在才会进行创建
mkdir -p 目标挂载目录
2.建立挂载关联
mount -t auto /dev/cdrom .目标挂载目录
3.查看挂载情况
ls -l -a 目标目录
表示把所有的内容都给列出来
4.卸载
unmount .目标目录
3.3 总结
关于挂载:用户不能直接访问 硬件设备需要将硬件设备 挂载 到 系统目录上, 才可以让用户访问。
4.shell与安装(重要)
yum概念
yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。
yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
yum安装类似于一个在线商城系统一样。
yum原理
yum的官方源下载速度极慢,需要自行手动配置国内yum的源
yum常用命令
- 1.列出所有可更新的软件清单命令:yum check-update
- 2.更新所有软件命令:yum update
- 3.仅安装指定的软件命令:yum install <package_name>
- 4.仅更新指定的软件命令:yum update <package_name>
- 5.列出所有可安裝的软件清单命令:yum list
- 6.删除软件包命令:yum remove <package_name>
- 7.查找软件包 命令:yum search
- 8.清除缓存命令:
- yum clean packages: 清除缓存目录下的软件包
- yum clean headers: 清除缓存目录下的 headers
- yum clean oldheaders: 清除缓存目录下旧的 headers
- yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的
yum -y install 安装包名
表示所有的存在选项时的都选yes
yum remove 安装包名
移除安装好了的软件
yum list 软件名
查找相关的软件
4.2 rpm的使用
rpm类似于windows下“添加/删除程序,但功能要强大得多”
1、rpm介绍
rpm(redhat package manager) 原本是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎。逐渐受到其他发行版的采用。RPM 套件管理方式的出现,让 Linux 易于安装,升级,间接提升了 Linux 的适用度。
2、rpm与yum区别
rpm 只能安装已经下载到本地机器上的rpm 包. yum能在线下载并安装rpm包,能更新系统,且还能自动处理包与包之间的依赖问题,这个是rpm 工具所不具备的。rpm包的扩展名为.rpm
Linux下rpm安装包可理解 为Windows下的.exe文件
语法如下:rpm [选项]
1.安装
rpm -ivh 软件全名
2.卸载
rpm -e 软件全名
3.列出安装过的包
rpm -qa
查询软件包信息
rpm -qi 软件全包名
查看安装位置
rpm -ql 软件全包名
4 shell使用
1)shell定义
一种程序化的基于Linux内核所运行的一种脚本。跟windows下的DOS有着异曲同工之处。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zF0orzXS-1629701406341)(H:\笔记方面\Web全栈\day1Linux深度学习\images\Shell\2.shell.png)]‘
运行环境:需要解释器,Linux下默认是自带的!
Linux 的 Shell 种类众多,常见的有:
-
Bourne Shell(/usr/bin/sh或/bin/sh)
-
Bourne Again Shell(/bin/bash)
-
C Shell(/usr/bin/csh)
-
K Shell(/usr/bin/ksh)
-
Shell for Root(/sbin/sh)
-
等等……
当前使用的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell
2.第一个shell
以 # 开头的行就是注释,会被解释器忽略。
多行注释:
:<<!
注释内容…
注释内容…
注释内容…
!
1.变量
变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
-
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
-
中间不能有空格,可以使用下划线(_)。
-
不能使用标点符号。
-
不能使用bash里的关键字(可用help命令查看保留关键字)。
variable_name=“czbk”
echo $variable_name
echo ${variable_name}shell中的空格不要乱用,不然出错!
1.2 只读变量
使用readonly类似 与 java中final关键字变量
1.3 删除变量
unset 变量名
但不能删除只读变量
/bin/bash
#g=(a b c d e f)
#echo "数组下标为2的数据为:" ${g[2]}
#echo "数组所有数据为:" ${#g[@]}
#echo "数组所有数据为:" ${#g[*]}
:<<EOF
val= `expr 2 + 2`
echo "相加之后的结果为:" $val
EOF
a=4
b=20
echo “加法运算” `expr $a + $b`
echo “减法运算” `expr $a - $b`
echo “乘法运算,注意*号前面需要反斜杠” ` expr $a \* $b`
echo “除法运算” `expr $b / $a`
((a++))
echo "a = $a"
c=$((a + b))
d=$[a + b]
echo "c = $c"
echo "d = $d"
注意变量运算间的空格符号!
4.3.8 总结
在企业级开发过程中,我们(开发人员)学习Linux主要的目的就是在Linux系统中能够熟练的操作目录、文件,还有就是通过所学的命令系统化的编写sh文件,所以,在当前章节中,我们要熟练的编写shell脚本相关命令以及综合案例中的知识点。