Linux基本操作

Author: Ning(Cover Eric)

Date: 2020.07.06

一、Linux介绍

1.1 引言

开发、生产、测试环境的概念

  1. 开发环境:一般情况下我们都是在Windows/MacOS环境下进行开发。但在开发环境中安装大量的软件,会导致环境的稳定性和安全性降低。
  2. 生产环境:运行可供用户访问的服务程序的环境。由专业人员去维护,一般人无权操作。
  3. 测试环境:一般会克隆一份生产环境,将开发环境中的程序部署到测试环境中,这个环境的主要目的是去程序进程检测,手机程序中的各种问题,并交给开发人员进行修改。

生产环境中常用的操作系统有Windows Server、Linux、Unix。

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

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

1.2 Linux介绍

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

Minix完全开源后,在互联网上迅速传播,但在大家使用时,发现Minix并不完美,内部存在各种各样的问题。于是,大家将问题解决后,将补丁发给Andrew,但教授最初的目的只是为了教学和研究。

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

1.3 Linux的版本

  1. Linux的内核版本

    https://www.kernel.org/

  2. Linux的发行版本

    我们需要学习的发行版本是CentOS

Linux的发行版本

1.4 Linux和Windows的区别

  1. Linux严格区分大小写
  2. Linux一切皆文件
  3. Linux不以后缀区分文件类型,有一些约定俗成的后缀,如tar.gz是压缩文件类型

二、Linux的安装

以虚拟机方式安装Linux,需要两个东西

  1. 虚拟化软件:VMware/Virtual Box

    https://www.virtualbox.org/wiki/Downloads

  2. CentOS镜像:CentOS.iso

    https://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-2003.iso

为了远程连接Linux,需要一个SSH工具

  1. MobaXterm/Xshell等(推荐MobaXterm)

2.1安装vbox

傻瓜式安装

2.2安装Xterm

解压即可使用

2.3在vbox中安装CentOS

  1. 点击新建

  2. 自定义名称

  3. 内存至少为2GB

  4. 其它选项参见下图,完成后点击创建

  1. 文件大小即虚拟硬盘大小,因为是动态分配,不实际占用全部空间,建议20GB以上
  2. 文件类型选择VMDK,选择分割为2GB
  1. 完成后点击设置
  2. 设置CPU至少两核
  1. 网络选择桥接网卡,点击OK
  1. 点击注册,选择刚刚下载的盘片
  2. 进入后上下键选择Install CentOS 7
  3. 稍等片刻,左侧栏滑动到最底端选择中文,点击继续

需要注意的是,鼠标点进虚拟机后,会被锁定在里面,你需要点击主机组合键跳出,比如我的主机组合键是Right Ctrl + Right Alt(窗口右下角显示),可以在管理的全家设定里设置该组合键。

  1. 进入后稍等片刻,选择带警示标的选项(安装位置),进入后无需操作直接点击完成
  2. 返回后点击下方的网络和主机,进入后打开网络,看到ip地址后,点击完成
  1. 返回主界面后,点击开始安装
  2. 安装过程中设置root密码,请牢记,该密码极为重要
  1. 完成后点击重启
  2. 输入用户名密码,看到以下界面([root@localhost ~]#),表示安装成功了

Linux密码不显示,不用担心没输上

2.4 使用Xterm连接Linux

直接在虚拟机里面操作是很麻烦的,而且我们还需要进行一些文件传输,所以我们采用Xterm进行远程连接

  1. 在虚拟机中输入:ip a,查看虚拟机的ip
  1. 打开刚刚解压好的Xterm,点击session
  2. 选择SSH,输入刚才看到的ip,并输入登录用户的名字(root),点击OK
  1. 输入密码,看到以下界面,连接成功

三、Linux的基本操作

3.1 Linux的目录结构

Windows的目录结构是带盘符的:C:/ D:/ E:/

Linux不带

在Xterm终端中输入"ls /"查看Linux的顶级目录

Linux的目录树状图
  1. root:该目录为系统管理员的home目录
  2. bin:该目录放着经常使用的命令
  3. boot:启动Linux时的一些核心文件
  4. etc:存放系统管理所需要的配置文件和子目录
  5. home:普通用户的home目录
  6. usr:默认安装软件的目录,类似Windows中的Program Files目录
  7. opt:主机额外安装软件的目录

3.2 Linux中的简单命令

# 1. 我是谁
who am i
# 2. 我在哪
pwd
# 3. 查看IP地址
ip a|address
# 4. 清屏
clear
# 5. ping 域名|ip
ping 地址
# 6. 强制停止
Ctrl + c

四、Linux命令

Linux中命令的基本格式:命令 [选项] [参数]

需要注意的是,个别命令不遵循此格式,如:who am i

当命令中有多个选项时,可以写在一起,并且选项也是有简写方式的:命令 -选项A选项B

4.1 目录的命令

# 1. 列出目录
ls [-ald] [目录名]
# 目录名不填写,默认为当前目录
# -a:列出全部的内容,包括隐藏文件
# -l:列出全部的信息
# -d:仅查看目录本身
ll # 等同于ls -l

Linux的隐藏目录是以"."开头的,当前目录使用"."来表示,上一级目录使用".."表示


# 2. 切换目录
cd 具体路径|符号

路径可以填写的内容

符号 表达的路径
. 当前目录
.. 上一级目录
/ 根目录
~ 当前登录用户的home目录
- 返回

# 3. 创建目录
mkdir [-p] 目录名
# -p:代表创建多级目录,如 mkdir a/b/c

# 4. 删除目录
rmdir 目录名 # 只能删除空目录

rm [-rf] 目录名 # 删除非空目录
# -r:代表递归删除目录
# -f:不询问,直接删除
![image-20200707151943324.png](https://upload-images.jianshu.io/upload_images/21145283-43cf4f5cb61bee9b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

# 5. 复制目录
cp -r 来源目录 目标目录
# -r:递归复制

# 6. 移动、重命名
mv 目录名 新目录名
mv 目录名 路径
# 如果第二个参数的路径不存在,就是重命名,反之,则为移动

4.2 文件的命令

# 1. 创建空文件
touch 文件名
touch 文件名1 文件名2 ...

# 2. 编辑文件
vi 文件名   # 进入vi的查看模式
i | a | o  # 从查看模式,进入vi的编辑模式
# i:在当前光标处,进入编辑模式;a:在当前光标后一格,进入编辑模式;o:在当期光标后一格,进入编辑模式
Esc        # 退出到查看模式
:          # 从查看模式,进入vi的底行命令模式
# 在底行命令模式下,输入wq:保存并退出;输入q!:不保存并退出
# 在查看模式下,双击大写的Z(ZZ | Shift + zz),可以快速保存并退出

# 3. 编辑文件时的其它操作
# 在底行命令模式下,可以输入的内容
set nu     # 查看文件的行号
to 行号    # 快速跳转到指定行
set nonu   # 取消行号
# 直接在查看模式下输入
/具体内容   # 类似Ctrl + f搜索文件中具体内容所在的位置,查看下一个可按字母n

# 4. 查看文件
cat 文件名  # 从第一行开始查看文件内容,展示全部
tac 文件名  # 从最后一行开始展示
nl 文件名   # 显示文件内容时,展示行号
more 文件名 # 查看大文件时,可以一页一页往下翻(点击空格)
less 文件名 # 查看大文件时,可以任意地向上或向下翻(键盘上下键 | PageUp/PageDown)
head 文件名 # 只查看前几行
tail 文件名 # 只查看后几行
tail -f 日志 # 监控日志

# 5. 移动文件
mv 文件名 新文件名
mv 文件名 目录

# 6. 复制文件
cp 文件名 目录

# 7. 删除文件
rm [-f] 文件名
# -f:是否询问

4.3 针对压缩包的操作

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

但是Linux不仅仅针对tar类型的压缩包,也支持.zip/.rar这类Windows下的压缩包

4.3.1 tar压缩包
# 1. 解压
tar [-zxvf] 压缩包名称 [-C 路径]
# -z:代表压缩包后缀是.gz
# -x:代表解压
# -v:代表解压时,打印详细信息
# -f:-f选项必须放在所有选项的最后,代表制定文件名称
# -C:
# 2. 打包
tar [-zcvf] 压缩包名称 文件1 文件2 目录1 目录2 ...
# -c:代表打包
4.3.2 zip压缩包

Linux默认不支持zip压缩包格式

需要安装两个软件:

​ zip & unzip

通过命令:

yum -y install zip

yum -y install unzip

unzip 压缩包名称                          # 解压
zip 压缩包名称 文件1 文件2 目录1 目录2 ...  # 打包

4.4 用户和用户组的操作

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

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

4.4.1 用户的操作
# 1. 创建用户
useradd [-cgd 选项指定的参数] 用户名
# -c:代表comment,给用户添加一段注释
# -g:代表group,修改用户的所在组
# -d:代表指定用户的home目录

# 2. 设置密码
passwd [用户名]

只有系统管理员才能指定用户名,不加用户名代表当前用户


# 3. 切换用户
su 用户名
# [root@localhost ~]#    : root在本地登录,并且当前在~目录下,#代表是超级管理员
# [Ning@localhost root]  : Ning在本地登录,并且当前在root目录下,$代表是普通用户

# 4. 删除用户
userdel [-r] 用户名
# -r:删除用户的同时,删除用户的home目录

# 5. 修改用户
usermod [-cgd 选项指定的参数] 用户名
4.4.2 用户组的操作
# 1. 查看用户所在的用户组
groups 用户名

# 2. 创建用户组
groupadd 用户组名

# 3. 修改用户组
groupmod -n 新用户组名称 用户组名称
# -n:修改用户组名称

# 4. 删除用户组
groupdel 用户组名 # 只能删除不存在用户的用户组

4.5 文件的权限

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

在实例中,b目录的第一个属性用d来标识b是一个目录,tt等用-来标识它们是普通文件

后面九个属性分为三组

  • 第一组rwx:代表文件拥有者的权限
  • 第二组rwx:代表文件所属组用户的权限
  • 第三组rwx:代表其它用户对当前文件的操作权限
    1. r:代表read,读的权限
    2. w:代表write,写的权限
    3. x:代表execute,执行的权限

后续第一个root的位置代表当前文件的拥有者

后续第二个root的位置代表当前文件的所属组

再往后分别为文件的大小和最后修改时间

4.5.1 对文件权限的操作

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

# 1. 数字方式
chmod [-R] 765 文件|目录
# -R:当修改一个目录时,将其目录下的全部内容,都修改为后面的权限
# rwx这三个权限的权值分别为4(100)、2(010)、1(001)
# 1-7的数字所指的含义类似即其二进制数所指含义
# 则以上的7(111)代表rwx,6(110)代表rw-,5(101)代表r-x,因此765代表rwxrw-r-x

# 2. 符号方式
# user:u, group:g, other:o, all:a
# read:r, write:w, execute:x
# 赋予权限方式
    # 添加:+,删减:-,设定:=
chmod [-R] a=rw 文件|目录
4.5.2 对文件拥有者和所属组的修改
chown [-R] 拥有者:所属组 文件|目录
chown [-R] 拥有者 文件|目录
chgrp [-R] 所属组 文件|目录

4.6 Linux的其它操作命令

# 1. 进程的操作
# 查看全部正在运行的进程
ps -ef
# 搜索指定进程
ps -ef | grep 搜索的内容
# 杀死进程
kill -9 pid

# 2. 服务的操作
# 针对服务的启动、停止、重启、开机自启、禁止开机自启、查看服务状态
systemctl start|stop|restart|enable|disable|status 服务名称

# 3. 查看端口号占用情况
# 需要先下载该功能
yum -y install net-tools
# 查看端口号占用情况
netstat -naop [| grep 指定端口号]

# 4. 访问地址
curl 访问地址

# 5. 查找文件
find 路径 -type f | grep 文件名

五、Linux下安装软件

5.1 安装JDK

  1. 下载JDK压缩包

    https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

  2. 利用Xterm的SFTP把文件拉取到Linux系统中

  3. 将JDK的压缩包解压至/usr/local

    tar -zxvf jdk-8u251-linux-x64.tar.gz -C /usr/local

  4. 修改jdk目录名为"jdk"

    mv jdk1.8.0_251 jdk

  5. 配置环境变量

    在环境变量中添加以下内容

    export JAVA_HOME=/usr/local/jdk

    export PATH=$JAVA_HOME/bin:$PATH

  6. 重新加载环境变量文件

    source /etc/profile

  7. 测试

    java -version

Linux提供了两种环境变量的文件

  1. 系统级别的环境变量,存放在:/etc/profile
  2. 用户级别的环境变量,村放在:~/.bashrc

运行当前目录下的可执行文件,文件名前需要输入"./"

以下内容建议使用Docker进行,具体内容参考B站千峰Eric老师的Docker教程

https://www.bilibili.com/video/BV1sK4y1s7Cj/?spm_id_from=333.788.videocard.0

5.2 安装MySQL

5.2 安装Tomcat

六、部署SSM工程

部署项目到Linux中需要注意以下内容:

  1. 项目要保证在Windows下是没有问题的,再考虑部署到Linux。
  2. 将开发环境中的配置等更改为测试环境。
    1. 连接数据库的信息
    2. 存放文件的位置
    3. 日志文件存放的位置
    4. 项目路径问题
  3. 将Maven项目打包。
  4. 根据项目路径的不同,部署到Tomcat中。
  5. 在部署到Linux操作系统之后,一定要查看日志。

你可能感兴趣的:(Linux基本操作)