Linux介绍

Posted 正经程序猿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux介绍相关的知识,希望对你有一定的参考价值。

目录

如何有一个Linux环境

使用终端工具登录

常见Linux命令

ls 查看指定目录中的内容

pwd 查看目录当前完成的绝对路径

 cd 切换目录

touch 创建空的文件

cat 查看文件内容

echo 写文件

vim

mkdir 创建目录

 rm 删除文件/目录

mv 移动文件或目录

cp 

grep 字符串查找

ps 查看进程

netstat 查看网络信息

部署Java web程序到linux

安装必要软件程序

1.jdk

2.tomcat

 3.mysql

部署程序

1.在云服务器的mysql中,建库建表

2.微调代码

3.打包

4.把war包拷贝到云服务器上的webapps目录

正确设置云服务器的防火墙/安全组


Linux是一个操作系统,和windows是并列的关系.

日常人们使用的,主要是windows,公司服务器,主要使用Linux.

在桌面端,Linux大概落后windows 20年左右的水平(相当于windows xp);

在服务器端,Linux基本占据了绝大部分的市场份额;

在移动端,Linux也是处于主导地位,android 系统本质上就是Linux,ios虽然不算是Linux,但也是表兄弟的关系;

在嵌入式设备方面,Linux也是处于主导地位.

Windows主要操作都是通过图形化界面.Linux主要是通过命令行操作.

为什么使用命令行?

服务器,虽然配置高,但是上面运行的任务的工作量巨大,没有额外的资源运行图形化界面,况且服务器要求要稳定,Linux图形化界面经常会有bug.嵌入式设备,配置比较低,运行图形化界面也比较吃力.

便于批量执行任务: 可以通过一些 "脚本" 代码 (比如 Linux Shell) 来批量执行一些任务, 完成 一些简单的编程工作. (比如定时备份文件, 删除文件等).

所以,通过网络来操作服务器,此时通过命令比较高效.


如何有一个Linux环境

1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].

2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一 些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. [非常不推荐]

3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows 系统内集成了一个 Linux. 但是目前这个技术还不够成熟. [暂时不推荐].

4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器. [推荐]

使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接 被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真 的去给别人去使用.


使用终端工具登录

我们在购买完云服务器之后,首次需要设置密码,在设置完密码之后,我们就有了三个信息:ip,用户名(固定是root),密码.

在清楚了这三个信息之后,我们就可以使用终端工具进行登录了.虽然网页上也有登录入口(网页内置了登录功能),但是不太方便,在这里我们使用终端工具进行登录.终端工具,推荐使用xshell.

在网页下载xshell之后,首次打开,需要手动配置,来连接到我们的云服务器.

ip地址填写到主机,点击连接,弹出对话框,输入用户名(root),勾选记住,又会弹出一个对话框,填写密码,输入密码,勾选记住.配置完一次后,下次在使用,点击打开,就能看到之前创建的连接了.

 

连接成功! 


常见Linux命令

Linux命令是非常多的,但我们平常最常用的命令,不超过20个.当我们掌握了最常用的十几个命令之后,就可以应付工作中的大部分场景了.

操作目录的命令

ls 查看指定目录中的内容

 直接输入ls,是查看当前目录下的内容,还可以给ls后面加上一个路径(绝对路径或者相对路径),就可以查看指定目录中的内容了.

/ 是根目录的意思. Linux没有盘符的概念,不分c盘,d盘.

 更常用的是ls -l(小写的L),可以简写成ll,可以更详细的查看目录中的文件内容.


pwd 查看目录当前完成的绝对路径


 cd 切换目录

cd(change directory)相当于在windows中双击某个目录进去.

cd后面可以跟绝对路径,也可以跟相对路径,绝对路径是以/开头的,相对路径是以 . 或者 .. 开头,其中.有时候可以省略.

使用cd,切换的路径可以使用table键补全,有一个选项,直接补全,多个选项,双击table能列出所有匹配结果.


文件相关的命令

touch 创建空的文件

当前在哪个目录下,文件就创建在哪里,没有提示,说明成功了,如果出错了,会有报错信息.

cat 查看文件内容

echo 写文件

echo 回显的意思,写什么就会显示什么.

 往指定文件里写,要加 > 文件名

一个>是覆盖之前内容,>>是拼接.


vim

cat和echo只是简单粗暴的读写文件,读写内容简单,可以使用,但是如果读写内容复杂,就需要使用更强大的编辑器了.vi或者vim就是linux上默认自带的"记事本"程序.(vi和vim是两个程序,vim是vi的升级版本,用法差不多)

在linux中 复制是 ctrl + insert,粘贴是shift + insert.

vim 文件名, 代表打开文件

退出文件:先输入:,此时光标会来到最下面的一行,在输入q,再回车,就退出了.

:q是直接退出,不保存,:wq是保存并退出.

如果输入:光标不再最后一行,多按几次esc,在输入:q就可以了.

vim最关键概念.模式(model).默认进入,是普通模式(normal model),普通模式下,键盘的大部分按键,都是具有特定含义的快捷键.真正进行编辑,要进入插入模式(insert model),输入小写字母i,就能进入插入模式,左下角编程了insert,就进入插入模式了.

按下esc,回到普通模式,然后:wq保存退出即可.

如果vim没有正确关闭,在下次启动的时候,会提示说上次没有正确关闭,可以直接按D删除为保存的内容,R就是恢复之前的编辑内容.

关于我们掌握打开文件,编辑文件,保存退出就可以了.


mkdir 创建目录

make directory

 


 rm 删除文件/目录

rm 文件名,删除文件;rm -r 目录,r代表递归,删除目录,rm -rf 目录,递归不确认删除(f代表不确认,强制删除).

rm -rf /,递归的删除根目录,linux没有回收站,删除了,就没了,这个操作十分危险.

有的系统,即使不加f,也是默认强制删除,没有提示.


mv 移动文件或目录

move 移动 = 剪切 + 粘贴.

mv 源 目标,mv也可以给文件改名.

cp 

copy 复制 = 复制 + 粘贴,cp 源 目标.


grep 字符串查找

ps 查看进程

netstat 查看网络信息


部署Java web程序到linux

首先需要把对应的依赖的环境搭建好,安装必要的软件程序.

安装必要软件程序

1.jdk

jdk直接使用包管理器进行安装(基于yum安装).yum类似于手机应用商店.此过程需要联网(云服务器本身就是联网的),yum源是由云服务器厂商提供的.

 | 叫做管道,效果就是把第一个命令的输出作为第二个命令的输入.

yum list 本身就是列出所有的可以安装的包,使用grep筛选包含jdk关键字的结果.

在这里我们需要下载:java-1.8.0-openjdk-devel.x86_64

x86_64代表64位系统的版本,.i686是32位的.

安装:

 安装的时候.需要管理员权限.

接下来会给出提示,是否确认安装,输入y表示yes.

安装完毕后,我们输入javac看一下是否报错.

这样就表示安装成功了.


2.tomcat

此时可以看到,版本都是7,我们需要的8,所以我们去官网下载8版本的压缩包,下载完成后, 把下载好的.zip压缩包,上传到linux上,就可以使用了.(直接把压缩包拖入xshell)

如果 出现这种情况,点击取消,然后在命令行里输入

yum install lrzsz

拖拽上传,其实是用到了linux上的rz命令,这个命令有的系统自带,不自带需要手动安装.

上传成功后,输入解压缩命令.unzip 压缩报名

如果unzip找不到,就输入 yum install unzip.

解压缩成功后,进入bin目录,需要输入 

chomd +x *.sh

给所有的.sh文件赋予可执行权限.

sh startup.sh 

启动tomcat.


 3.mysql

以下必须是root用户进行操作.

安装
安装 mariadb 服务

# yum install -y mariadb-server
安装 mariadb 命令行客户端

# yum install -y mariadb
安装 mariadb C library

# yum install -y mariadb-libs
安装 mariadb 开发包

# yum install -y mariadb-devel

启动

启动服务

# systemctl start mariadb
设置服务开启自启动

# systemctl enable mariadb
查看服务状态

# systemctl status mariadb
可能的输出为,注意到 Active 状态为 active (running)

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2018-11-09 12:49:23 CST; 19min ago
 Main PID: 1510 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─1510 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─2030 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-...

11月 09 12:49:15 peixinchen.host systemd[1]: Starting MariaDB database server...
11月 09 12:49:17 peixinchen.host mariadb-prepare-db-dir[1062]: Database MariaDB is probably initialized in /var/lib/m...ne.
11月 09 12:49:19 peixinchen.host mysqld_safe[1510]: 181109 12:49:19 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
11月 09 12:49:19 peixinchen.host mysqld_safe[1510]: 181109 12:49:19 mysqld_safe Starting mysqld daemon with databas...mysql
11月 09 12:49:23 peixinchen.host systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.


测试连接

使用命令行客户端尝试连接

# mysql -uroot
可能的输出为

Welcome to the MariaDB monitor.  Commands end with ; or \\g.
Your MariaDB connection id is 2
Server version: 5.5.60-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

MariaDB [(none)]>


查看 mariadb 版本号

MariaDB [(none)]> select version();
+----------------+
| version()      |
+----------------+
| 5.5.60-MariaDB |
+----------------+
1 row in set (0.01 sec)
创建数据库时为了支持中文,统一使用 utf8mb4 字符集

MariaDB [(none)]> create database demo_db charset utf8mb4;


部署程序

1.在云服务器的mysql中,建库建表

使用 mysql -uroot 命令打开数据库客户端(退出是按 ctrl + d)

把之前写好的db.sql的内容直接复制粘贴到云服务器客户端中,直接执行即可.

2.微调代码

本地的数据库,端口号,用户名,密码和云服务器的数据库可能是不同的.

云服务器的数据库默认是没有密码的.

 

端口号是3306.

3.打包

使用maven打包即可,需要打成war包.

4.把war包拷贝到云服务器上的webapps目录

进行部署操作,把上述war包进行拷贝,拖入xshell.

要记得启动 tomcat服务器,可以使用netstat来验证tomcat启动成功是否.


正确设置云服务器的防火墙/安全组

部署之后,如果程序还是不能访问

这种情况要么是服务器没有正常启动,要么就是服务器的防火墙/安全组 没有正确打开.

 

我们需要手动前往云服务器控制台,设置一下.

这里以阿里云的云服务器为例:

进到控制台

 点击安全组

创建安全组

 根据自己的环境,选择网络和资源组

 点击手动添加,填入上述内容.

 

返回实例页面,点击进入安全组

选择刚才创建的安全组即可. 

 

linux相关知识linux centos 文件目录介绍

在xshell和Linux虚拟机建立连接之后,便可以在xshell中对Linux的文件及目录进行一系列的操作了,但是在操作之前,我觉得有必要先了解一下Linux的文件类型和目录结构,这有助于理解每种文件及目录的用途,以便于以后的命令操作。所以本节只是介绍Linux的文件类型和目录结构。具体的操作将在下一节中详细介绍。
一、 linux文件类型
技术图片
二、 常用目录介绍
技术图片

以上是关于Linux介绍的主要内容,如果未能解决你的问题,请参考以下文章

学习Linux运维的个人笔记:Linux基本介绍

Linux运维之NFS网络文件系统功能介绍及应用场景

Linux系统的发展历史和学习前景介绍

Linux系统的发展历史和学习前景介绍

linux运维之路

linux运维之路