Linux

一、引言


1.1 开发环境

平时大家大多是在Windows或者Mac操作系统下去编写代码进行开发,在开发环境中安装大量的软件,这样会导致环境的稳定性和安全性降低

1.2 生产环境

是将程序运行在此环境中,供用户去使用。这个环境是有专业的人员去维护,一般人是没有权限去操做生产环境的

1.3 测试环境

一般克隆一份生产环境,会将开发环境中的程序部署到测试环境中,这个环境的主要目的是去程序进程检测,收集程序中的各种问题,并交给开发人员进行修改

1.4 操作系统的选择

生产环境中,常用的操作系统有Windows 2003 service,Linux,Unix等等,Linux操作系统,在生产环境中占据了大量的市场份额,Linux主要以稳定,可靠,免费的特点成为全球使用最多的服务器操作系统。

Linux系统现在已经成为后台开发人员必备的技能,并且后期学习的各种知识都会涉及到Linux操作系统。

生产环境为啥用Linux系统?
在这里插入图片描述
Linux系统有啥用?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KZzfI48c-1637068712030)(assets/1625457601477.png)]

二、Linux介绍


2.1 Linux发展史

在Linux操作系统出现之前,还有一个操作系统叫做Minix,Minix操作系统是由一名大学教授研发出来的,当时大学是为了给学生上课,买了一套Unix操作系统,参考Unix自己写了一个操作系统,并且命名为Minix。同时将Minix开源,供学校内部的研究和教学,到了2000年,将Minix操作系统完全对外开源。

Minix由于完全对外开源之后,在互联网上迅速的传播,但是大家在使用时,发展Minix不时很完美,内部存在各种各样问题。用户将问题解决后,编写了一个补丁,将补丁以邮件的方式发给Andrew,但是Andrew教授最初的目的只是为了教学和研究,不再维护。

于此同时,一位芬兰的大学生出现了,叫Linus,在Minix操作系统基础上,自己添加了一些补丁和插件,并将其命名为Linux操作系统,并且完全对外开源,而且开始维护Linux操作系统。

另外,插播一下,之前学习的Git也时Linus研发的。

2.2 Linux的版本

Linux的版本分为两种,一种是Linus团队正在维护的开源内核版本。另一种是一些厂商基于内核版本封装的发行版本。

  • Linux的内核版本官网:https://www.kernel.org/

  • Linux的发行版本如下很多,咱们需要学习的发行版本是CentOS

Linux的常见发行版本
在这里插入图片描述

三、Linux安装

理解为啥需要虚拟机软件?

软件可以模拟硬件的功能,比如计算器软件[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7WXlly8-1637068711250)(assets/1625372000417.png)]可以模拟电脑硬件的计算功能

而Linux是一个系统,想要模拟硬件的很多功能比如网络硬件等,要安装一个软件可以模拟电脑硬件的功能,这个软件几乎可以理解为一个虚拟的电脑,简称虚拟机,所以安装Linux系统之前,要先安装能够模拟电脑硬件功能的虚拟机软件比如vmware软件↓

为啥需要先安装虚拟机软件vmware?
在这里插入图片描述
  • 安装Linux,我们需要一个虚拟机,可以装虚拟环境的软件:VMware或者Virtual Box

    VMware下载

  • 为了安装Linux,我们需要一个Linux的镜像文件:CentOS7版本

    镜像下载

3.1 安装VMware

傻瓜式安装,下一步下一步下一步

3.2 安装Xterm

解压即可以使用

3.3 在VMware中安装Linux

按照下图步骤,逐步安装Linux操作系统

打开wmware软件,现在创建新的虚拟机↓
在这里插入图片描述

3.3.1 选择安装方式
选择安装方式
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lsRzbOPy-1637068712035)(Pictures/1586231357367.png)]
3.3.2 指定镜像方式
选择稍后安装操作系统
3.3.3 选择操作系统类型
选择操作系统类型
在这里插入图片描述
3.3.4 指定虚拟机名称
指定虚拟机名称,和安装目录
在这里插入图片描述
3.3.5 磁盘存储方式
拆分成多个文件存储
在这里插入图片描述
3.3.6 指定虚拟机配置
指定虚拟机的设置
在这里插入图片描述

桥接模式:和主机共享一个网段,局域网的电脑都可以访问

NAT模式:主机和虚拟机形成一个独立的局域网,只能主机访问虚拟机

仅主机模式:和NAT类似,区别是虚拟机不能上网

指定网络模式桥接或者NAT都行
3.3.7 点击开启此虚拟机,开始安装CentOS

开始界面选择语言
在这里插入图片描述
3.3.8 配置安装位置和虚拟机网络连接
点击安装位置
点击完成即可
点击网络和主机名
点击打开,稍等一会看到下面ip地址,再点击完成即可
3.3.9 开始安装
9、开始安装后,设置ROOT用户的密码
密码最好设置为root提示密码过短点击两次完成即可
稍等进度条完成然后点击重启
3.3.10 安装成功
10、安装成功并用账户root密码root来登录
3.4 使用Xterm连接Linux

直接在Vmware中操作Linux有很多限制,我们可以在图形化界面中操作Linux操作系统更加方便

还要安装一个连接Linux的图形化界面:Xterm,SSH,XShell(Xterm)

Xterm下载

3.4.1 查看ip地址
查看ip地址
3.4.2 通过Xterm连接
连接上Linux
连接成功

四、Linux的目录结构,了解一下


Windows的目录结构是带有盘符的。D: E: C:,而Linux中是没有盘符的

在Xterm中输入ls / 查看Linux的顶级目录/下面的东西

Linux的常用目录……

  • root:该目录为系统管理员HOME目录
  • bin:这个目录下放着经常使用的命令
  • boot:这里存放的是启动Linux时的一些核心文件
  • etc:存放系统管理所需要的配置文件和子目录
  • home:普通用户的HOME目录
  • usr:默认安装软件的目录,类似Windows中的Program Files目录
  • opt:是主机额外安装软件拜访的目录

五、Linux的基本命令


# 1. 我是谁
who am i

# 2. 我在哪
pwd

# 3. 查看ip 地址,相对重要
ip a | ip address  或者ifconfig都是查看ip地址

# 4. 清屏
clear

# 5. ping域名|ip
ping 地址

# 6. 强制停止
Ctrl + C

六、Linux目录命令


6.1 列出目录,list,缩写ls

查看指定目录下的内容,默认查看当前目录下内容

Linux中的隐藏文件是以.开头的,当前目录使用.表示,
上一级目录使用(两点)表示

ls [-ald] [目录名]
# 目录名不填写,默认为当前目录。
# -a:列出的全部的文件,包括隐藏文件
# -l:列举出全部的信息,另ls -l 可以用ll来表示
# -d:仅查看目录本身
# 可以用ls --help帮助参数来查看
ls -al
6.2 切换目录,changedirectory,缩写cd

实现目录间切换,使用绝对路径、相对路径、特殊符号

cd 具体路径 | 特殊符号
cd /root
特殊符号表达的路径
.当前目录
上一级目录
/根目录
~当前登录用户的HOME目录,巧记回家是颠簸的,波浪线
6.3 创建目录,makedirectory,缩写mkdir

创建目录,以及创建多级目录方式

mkdir [-p] 目录名
# -p:代表创建多级目录时,使用
# 以后看到[]一般表示可选的意思
mkdir a
mkdir -p c/b/a
6.4 删除目录,removedirectory,缩写rmdir,rm

删除非空目录或包含内容的目录

# 只能删除空目录,了解
rmdir 目录名

# 删除非空目录
rm [-rf] 目录名
# -r:代表递归删除目录下的全部内容
# -f:不询问,直接删除
rm -rf c
6.5 复制目录,copydirectory,缩写cp

复制目录下的全部内容

cp -r 来源目录 目标目录
# -r:递归复制全部内容,必填项
cp -r c a
6.6 移动、重命名目录,movedirectory,缩写mv

移动、重命名目录,会根据第二个参数指定具体操作逻辑

mv 目录名 新目录名 | 路径
# 如果第二个参数指定的路径不存在,就是重命名,如果第二个参数的路径存在,就是移动
mv a aa
mv aa c

七、Linux的文件命令


7.1 创建文件,touch,巧记触摸有连锁效应,可以创建多个文件

创建空文件

touch 文件名1 文件名2 ……
touch a.txt
touch a.txt b.txt
7.2 编辑文件

编辑文件,后期最常的命令之一

vi 文件名 			  # 查看文件。(查看模式)
i | a | o   		 # 进入编辑模式。(编辑模式)
                      # i:在当前光标处,进入编辑模式。 
                      # a:在当前光标后一格,进入编辑模式。 
                      # o:在当前光标下一行,进入编辑模式。
                      
esc				    # 退出编辑模式,回到查看模式。

:				    # 从查看模式进入到底行命令模式。(底行命令模式)
                      # 在底行命令模式下,输入wq:保存并退出。输入q!:不保存并退出
                      # 在查看模式下,摁ZZ,可以快速保存并退出。

vi a.txt查看模式,按i,理解为插入编辑模式,写写写,退出esc,:wq

7.3 vi文件时,其他操作

编辑文件时,常用的快捷键,方便操作

# 查看模式模式下还可以快速定位
G                   # 快速跳转到最后一行
gg                  # 快速跳转到第一行
# 搜索操作
/查找单词               # 类似Windows的Ctrl + F搜索文件中的具体内容所在位置,查看下一个可以输入字母n
# 补充一下,查看模式下进行复制用yy,粘贴用p,删除dd,摁ZZ,可以快速保存并退出

# 在vi文件时在底行命令模式下可以输入以下常用内容,这么多容易搞混,记下面的是底行模式,其他不是编辑,就是查看
# 行号操作
esc :set nu              # 查看文件的行号
esc :set nonu            # 取消行号
7.4 查看文件,巧记摸猫尾,流浪问捡,浏览文件

根据不同的业务,可以选择不同的查看方式

# 查看文件,直接展示到最后一行
cat 文件名
cat -n 文件名称 # 显示行号

# 从第一行开始查看文件内容,展示全部,反序输出文件每一行到屏幕上。
tac 文件名

# 从最后一行开始展示(显示行号)
nl 文件名
    -ba # 表示不论是否为空行,也同样列出行号(类似 cat -n);
    -bt # 如果有空行,空的那一行不要列出行号(nl不加默认值就是nl -bt);
    
# 显示文件的同时,展示行号
more 文件名
# 查看大文件时,可以一页一页的向下翻
# 摁space向下翻页,退出时摁q

less 文件名
# 查看大文件时,可以任意的向上或者向下翻
# 向上或向下翻页摁PageUp和PageDown,一行一行查看,摁光标的↑↓,退出时也是摁q

# 只查看前几行
head 文件名

# 只查看后几行
tail 文件名
# tail -f 日志 监控日志 ctr c退出,有点用
7.5 移动、重命名文件

移动、重命名目录,会根据第二个参数指定具体操作逻辑

mv 文件名 新文件名 | 路径
# 如果第二个参数指定的路径不存在,就是重命名,如果第二个参数的路径存在,就是移动
mv a.txt aa.txt
mv aa.txt c
7.6 复制文件

复制文件到指定目录下

cp 文件名 目录
cp aa.txt c
7.7 删除文件

删除文件方式

rm [-f] 文件名
# -f:是否询问
rm -f aa.txt

八、Linux的压缩包命令


8.1 针对tar命令

Linux中常用的压缩包,大多是.tar,.tar.gz,tgz的

8.1.1 解压压缩包

针对压缩包后缀的情况,采用不同的参数,否则可能会损失文件

tar [-zxvf] 压缩包名称 [-C 路径]
# -z: 代表压缩包后缀是.gz的
# -x: 代表解压
# -v: 解压时,打印详细信息
# -f: -f选项必须放在所有选项的最后,代表指定文件名称
# -C 路径: 代表将压缩包内容解压到指定路径
8.1.2 打包成压缩包

可以将多个文件以及目录打包成压缩包,根据选择的参数指定压缩包名

tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 ...
# -c: 代表打包
# 其他参数同上

巧记,注册微服,tar -zcvf 打包,-x剪刀解压↓

tar -zcvf bb.tar a a.txt打包

tar -zxvf bb.tar -C ./b解压

8.2 针对zip类型压缩包

Linux不仅仅针对tar类型的压缩包,也支持zip,rar这种Windows下的压缩包。

不过需要额外安装软件,来针对各种类型压缩包的操作

8.2.1 安装软件
yum -y install zip     # 打包程序
yum -y install unzip   # 解压程序
8.2.2 解压以及打包
# 解压
unzip 压缩包名称
# 打包
zip 压缩包名称 文件1 文件2 目录1 目录2 ...

# 例如↓
zip bb.zip a a.txt打包
unzip bb.zip -d ./b解压
8.2.3 CentOS 7.x unzip解压命令(文件名中文乱码+解压到指定目录)

unzip -O cp936 课表数据.zip -d kkk解压课表数据.zip文件到kkk文件里面去

九、用户&用户组的操作


9.1 用户的常用操作命令

Linux是一个多用户的操作系统,任何一个用户想要操作Linux操作系统,必须向系统管理员申请一个账号才可以,并且以这个账号的身份去操作Linux。

用户账号一方面可以帮助系统管理员追踪当前用户的操作。另一方面可以控制当前用户对系统资源的访问。

9.1.1 用户添加
useradd [-cgd] [选项指定的具体内容] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,可以修改用户的所在组
# -d:代表指定用户的HOME目录
9.1.2 密码我的?谁的?哪个用户?
passwd 用户名
9.1.3 切换用户
su 用户名,理解select user
# [root@localhost ~]#   -> root用户在本地登录,并且当前在~目录下,#代表的是超级管理员
# [aa@localhost ~]$		-> aa用户在本地登录,并且当前在~目录下,$代表的是普通用户
# 注意超级管理员比如root切换到其他普通用户不用输密码,但是其他普通用户切换到其他用户,要输其他用户的密码
9.1.4 用户删除
userdel [-r] 用户名
# -r:代表删除用户的同时,删除该用户的HOME目录
# -f:强制删除用户

切换用户理解为选择用户select user缩写su,如 su root

退出当前用户用退出命令exit

浏览配置密码,查看所有用户用cat /etc/passwd

修改用户名用usermod -l newname oldname,忘了可以打usermod提示

更多查看命令https://blog.csdn.net/qq_19734597/article/details/90717604

如果提示当前用户被占用,推荐关闭xterm的连接页面.

9.2 用户组的操作

如果用户没有指定组,自己自成一组,

用户的身份除了用户本身,还会分配到指定的用户组,可以通过用户组对设置一些文件的操作权限

9.2.1 组添加,创建用户组
groupadd 用户组名
9.2.2 组修改,修改用户组
groupmod [-n] [选项指定的具体内容] 用户组名
# -n 修改用户组名称,-n参数忘了,可以打groupmod提示,跟用户操作类似
9.2.3 组删除,删除用户组
groupdel 用户组名

group -f 用户组名,强制删除用户组
9.2.4 浏览配置组,查看所有组信息
cat /etc/group

十、文件权限的修改


首先我们要清楚Linux文件的权限信息

在Linux中输入ls -l 或者 ll查看文件和目录的详细信息

在Linux文件详情的后面属性需要分为三组查看

  • rwx: 代表文件拥有者的权限
  • rwx: 代表文件所属组的用户的权限
  • rwx: 代表其他用户对当前文件的操作权限
    • r: 代表read,读的权限
    • w: 代表write,写的权限
    • x: 代表execute,代表执行权限

其余信息

  • 后续的第一个root:代表当前文件的拥有者
  • 后续的第二个root: 代表当前文件的所属组
  • 后续分别为:文件的大小(单位是字节)和最后修改时间等信息
10.1 对文件的权限修改

使用chmod对文件的权限进行修改,一种使用数字,一种使用符号

  • 数字方式方便操作,不过要修改整体权限信息
  • 符号方式更细粒度,不过操作麻烦
10.1.1 数字方式,推荐,巧记修改权限,从何修改啊,chmod
chmod [-R] 777 文件|目录 修改属主,属组,其他用户的权限为可写可读可执行
# rwx在这三个权限中r:4,w:2,x:1
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。
10.1.2 符号方式
chmod [-R] a=rw 文件|目录
# user:u,group:g,other:o,all:a,修改属主u,属组g,其他用户o的权限为可读可写
# read:r,write:w,execute:x
# 赋予权限的方式 , 添加:+,减掉:-,设定:=
# -R: 当修改一个目录权限时,可以添加-R,将目录下的全部内容,都修改权限。
10.2 文件拥有者owner及所属组的修改

chown可以直接修改拥有者和所属组,chgrp只能修改所属组

# 修改文件的拥有者和所属组
chown [-R] 拥有者:所属组 文件|目录
# 修改文件的拥有者
chown [-R] 拥有者 文件|目录

# 修改文件的所属组
chgrp [-R] 所属组 文件|目录

代码如下,其他用户和组以此类推↓
[root@localhost ~]# chown root:root a.txt
[root@localhost ~]# chown root a.txt
[root@localhost ~]# chgrp root a.txt
[root@localhost ~]# chgrp root:root a.txt
chgrp: 无效的组:"root:root"
[root@localhost ~]#

# 创建一个用户,自成一组↓
[root@localhost ~]# useradd zs
[root@localhost ~]# passwd zs
更改用户 zs 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# chown zs:zs a.txt
[root@localhost ~]# ll
总用量 1316
drwxr-xr-x. 2 root root       6 7月   6 08:48 a
-rw-r--r--. 1 root root     133 7月   6 09:40 aa
-rw-rw-rw-. 1 root root       0 7月   6 11:32 aa.txt
-rw-------. 1 root root    1241 7月   5 11:11 anaconda-ks.cfg
-rw-r--r--. 1 zs   zs         0 7月   6 08:48 a.txt

十一、Linux的其他操作命令


11.1 进程的操作

需要用到类似Windows的结束进程时,在Linux下需要使用如下命令

ps -ef 
# 查看全部正在运行的进程
ps -ef | grep 搜索的内容

# 杀死进程!
kill -9 pid
11.2 服务的操作

和Windows下的服务操作一致,只需使用如下命令,默认为centos7版本

# 针对服务的启动,停止,重启,开机自动启动,禁止开机自动启动,查看服务状态。
systemctl start|stop|restart|enable|disable|status 服务名称比如网络服务network
11.3 端口号查看

如发现端口号被占用,可以使用如下方式查找pid,并结束进程

# 想使用指定的命令需要事先下载netstat
yum -y install net-tools

# 查看所有的端口号占用情况里面含有进程id即pid
netstat -naop
# 从所有情况中用管道|过滤抓取8080端口的情况出来
netstat -naop | grep 8080
netstat -naop | grep 22047

# 杀死进程!
kill -9 pid
11.4 访问地址

类似浏览器访问路径,无法图形化显示,一般用于测试虚拟机能否上网

curl 访问地址,比如curl www.baidu.com
11.5 查找文件

在Linux中查找指定文件,参数较多,如下为根据文件名称查询

find 路径 -type f | grep profile
find /etc -type f | grep profile查看/etc下面的所有带有名字叫profile的文件

find . -type f | grep a查看当前目录下面的所有带有名字叫a的文件,巧记查找路径,什么类型的,管道抓取文件
find /root -type f | grep a.txt
find /root -type d | grep aa查看当前/root目录下面的所有带有名字叫a的文件夹
11.6关机/重启
halt:关机(一般不用)
reboot:重启
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值