【Linux】Linux中的常用指令和将java程序运行环境部署到Linux

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云服务器 ECS,u1 4核8GB 1个月
简介: 【Linux】Linux中的常用指令和将java程序运行环境部署到Linux

目录

一.Linux的常用指令

使用客户端进行登录与退出

我们使用xshell这个客户端进行用户的创建和登录

退出

快捷键

IS

PWD

cd

touch

echo

cat

mkdir

tree

rm

mv

cp

find

man

less

vim

date

ps

grep

netstat

二.Linux的权限问题

用户操作

三种角色

文件类型和访问权限

修改文件权限

三.搭建java程序运行的环境

yum基本介绍:

git查看 git 安装包命令:

安装 Maven

安装 Tomcat

notes:由于 yum 源上默认的是 Tomcat 7,而下面介绍的是安装 Tomcat 8 的方式,所以将不使用 yum 进行安装

一.Linux的常用指令

使用客户端进行登录与退出

我们使用xshell这个客户端进行用户的创建和登录

878872623fa247f5b33e8bb7bf56bf4b.png

弹出这样的提示信息:代表登录成功

d1c3d4d81e7b49dcac0da121b0b83558.png

退出:

5c0b479c313349d6b810359404a22d07.png

直接使用exit指令进行退出即可

快捷键

我们在使用Linux的客户端进行指令的输入时,经常会使用的快捷键如下:

  • 使用 tab 键补全
  • 使用 Ctrl + c 重新输入
  • 使用 Ctrl + insert 复制
  • 使用 Shift + insert 粘贴

IS

语法ls [选项] [目录或文件]

功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。


常用选项:

  • a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
  • -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件、
  • -l 列出文件的详细信息。由于这个指令相对比较常用,有快捷的输入方式,我们直接输入 ll(两个L)即可
  • -r 对目录反向排序。
  • -t 以时间排序。
  • -R 列出所有子目录下的文件。(递归)

1733eaf7d9fa44ba8e83e98617a9cc93.png

在 Linux 中,白色是普通文件、蓝色是目录、绿色是可执行文件、红色是压缩文件

PWD

语法: pwd
功能:显示用户当前所在的目录
举例:显示当前用户所在的目录

aac6a720689742c68f8fe349f405352b.png

cd

Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下.

aac6a720689742c68f8fe349f405352b.png常用的几个关于对cd的指令:
cd .. : 返回上级目录
cd ~:进入用户家目
cd -:返回最近访问目录

/:代表的是根目录

~:代表的是当前的工作目录

示例:进入java01的文件夹

aac6a720689742c68f8fe349f405352b.png 4272cb57ff3a43ff9815b748ee63e2db.png

4272cb57ff3a43ff9815b748ee63e2db.png几个特殊的目录:
/ 称为根目录
. 称为当前目录
.. 称为当前目录的上级目录 4272cb57ff3a43ff9815b748ee63e2db.png

touch

语法: touch 文件名

功能: 创建一个新的文件,文件名可以是绝对路径,也可以是相对路径

示例:创建一个文件(text.txt)

160a01ec870344bcbf89edbce3efefd0.png

echo

语法: echo > 文件名

功能: 给文件写入简单的数据

示例: 在 text.txt 文件中写入 hello 字符串(并且使用cat查看文件中的内容)

319be3fef6cd480ebc2bbc4528fb7b3d.png

cat

语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:-n 对输出的所有行编号

示例:

a82072b9425b4a6799ff2c0517c365a6.png

mkdir

语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:

-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统
将自动建立好那些尚不存在的目录,即一次可以建立多级目录
举例:在java001这个目录下创建多级目录

b034c7efc6944722a2fd987d3717b312.png

tree

语法: tree 目录名

功能: 通过树形结构,更直观的显示该目录下的所有目录和文件

注意: tree 命令不是 Linux 自带的,需要通过 yum install tree -y 命令来安装 tree 命令才能使用

示例: 查看 java01目录下的所有目录和文件

21b79cef32f041f899ca7760519a5ec3.png

rm

语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:

  • -f 不给出提示直接删除
  • -i 删除前逐一询问确认(默认)
  • -r递归删除目录下的子目录或者子文件
  • -rf  删除指定的目录,且不给出提示(谨慎使用)

举例:删除java01目录下的java001子目录和blog.sql的文件

8e6b0b7b83fc4b92ae0d29d8e43b6e8b.png

mv

语法: mv [选项] 源文件或目录 目标文件或目录

功能:

1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。

3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖

-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!(默认)

示例:将java01目录下的java002子目录移动到root目录下

0c449bc2191a4d919cd46bb73ac0624e.png

cp

语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个
已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息

常用选项:

 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在

-i 或 --interactive 覆盖文件之前先询问用户(默认)

-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录

或符号链接,则一律视为普通文件处理

-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

举例: 将java01目录下的text.txt 和blog.sql移动至java003的子目录下

a18b5796228448b58302161080e15842.png

find

语法: find 目录 -name 文件名或目录名

功能: 在该目录下查找带关键名字的文件或目录

示例: 在根目录中搜索带 bin 关键字的文件或目录

eaf3c9a6fc6c4748b13f565729c28446.png

man

Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节找
  • man man 能够看到 man 手册中的若干个章节及其含义.

示例:使用man指令查看ls指令的相关释义

a254bdf9be1b40528828a7f74a31de35.png

326d4c114e654687a977231864de562c.png

less

语法: less [参数] 文件
功能:查看文件内容. 不会立刻把所有文件内容加载到内存中. 也能进行查找.
选项:
j k / 方向键: 向上向下滚动屏幕.

acede7f394ec4232b7a23fb5dc492b21.png

bf107658a2a5458c9ff8b01af291018d.png

vim

语法: vim 文件名

功能: vim 是一个文本编辑器,可以创建或编辑文件

三种模式: 用 vim 打开一个文件后,会有三种模式

  • 普通模式:一进去就显示的模式是普通模式,该模式不能进行编辑,键盘上的每个键在这个模式下都表示一些特殊的快捷键,如输入 i 键表示进入插入模式、输入 : 键表示进入底行模式
  • 插入模式:该模式是用来编辑文件内容的,编辑好了之后,使用 esc 键退回到普通模式
  • 底行模式: 该模式下用于保存、退出 vim,w 表示保存,q 表示退出,wq 表示保存退出,q! 表示强制退出

示例: 在 home 目录下的 111 目录中使用 vim 编辑 blog.sql文件,输入 aaa 字符串

c5715ae4be964c37afc95e8fe25e4077.png

f3bb31d3e5a5499d9662e8649dd46b97.png

date

  • 语法:date [OPTION] [FORMAt]
  • 功能:按照特定的格式显示需要显示的时间
  • 在显示时间方面,可以设定预显示的格式,格式设定为:date +“数个标记”
  • %H : 小时(00..23)
  • %M : 分钟(00..59)
  • %S : 秒(00..61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01..31)
  • %m : 月份 (01..12)
  • %Y : 完整年份 (0000..9999)
  • %F : 相当于 %Y-%m-%d
  • 将当前时间转换成时间戳:date +%s
  • 将时间戳转换成时间:date -d@时间戳

示例:按照规定的格式打印时间并将时间转化为时间戳,将特定的时间戳转化为时间


dbbf4eab3a15493f8124a897af858eab.png

ps

语法: ps aux

功能: 查看当前系统上运行的进程

示例: 显示当前系统上运行的进程

3f4024d11ded4a2aab37de735a6ac4a9.png

grep

语法: grep [查找的内容]

功能: 用于对输出结果进行筛选(常与 | 管道进行连用,| 用于把前一个命令的输出,当作后一个命令的输入)

示例:我们在查询具体某个线程的运行情况

5de94617c42a422da2a0074dbc5007ff.png

netstat

语法: netstat -anp

功能: 查看系统上的网络状态

示例:使用netstat查看系统上的网络状态

c08fbcdd15554b9aa0543074ce0115f8.png

二.Linux的权限问题

用户操作


Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。

我们的服务器买好了, 默认是 root 用户. 但是 root 用户权力比较大, 一旦使用不当可能会造成严重后果

(例如 rm -rf /). 因此我们真正在公司中不会直接使用 root 用户来操作服务器.

1. 创建用户

命令 useradd [用户名]
功能 :创建新的用户

示例:创建名字为ct的用户

baf1a7bae9d6422994873874d986111d.png

2.  配置密码

  • 语法: passwd 用户名
  • 功能: 设置或者修改用户密码
  • 示例: 将 ct用户设置一个密码

 cfce68a4e9f543c5b2eec99ff8b02f07.png

3.切换用户

  • 语法: su 用户名
  • 功能: 切换用户
  • 示例: 从 root 用户切换到普通用户 ct

7b74bce7f8e34324845c94f9f0093bd8.png

三种角色

访问一个文件的人可能分成三种类别.

文件和文件目录的所有者:u---User

文件和文件目录的所有者所在的组的用户:g---Group

其它用户:o---Others

文件类型和访问权限

我们使用ll指令显示所有文件的详细信息:

51d68d6a07b14ddf983f003e1dcafb29.png

以下 root目录显示的详情介绍下具体参数的含义

 5a28802e6b024bcda7541edf6e109f61.png

修改文件权限

语法: chmod [选项] 权限 文件名

功能: 设置文件的访问权限,只有文件的拥有者或 root 用户才能修改文件权限

注意: 修改目录权限时要加上选项 R ,递归的修改目录文件的权限

方式一: +、-、= 变更权限

u:表示所有者、g:表示所在组、o:表示其他组、a:表示所有人(u、g、o 的总和)

chmod u=rwx,g=rx,o=x 文件名/目录名

将其他组赋予写的权限的指令:chmod o+w 文件名/目录名

将所有人的执行的权限都去掉的指令:chmod a-x 文件/目录名

方式二: 通过数字变更权限

r=4、w=2、x=1、rwx=4+2+1(可以组合,如3=wx)

指令:chmod 751 文件名/目录 等价于 chmod u=rwx,g=rx,o=x 文件名/目录名

三.搭建java程序运行的环境

yum

基本介绍:

yum(Yellow dog Updater Modified)是 Linux 下常用的一种包管理器(就好比手机的应用商店或者依赖的中央仓库),主要应用在 Centos、RedHat 和 Fedora 等发行版上。

yum 的常用命令: yum 的所有命令必须保证服务器的网络是联通的

查看软件包列表命令: yum list | grep 软件包关键字

安装软件包命令(需要 root 权限): yum install 软件包名字

卸载软件包命令(需要 root 权限): yum remove 软件包名字

 

git

查看 git 安装包命令:

yum list | grep git -w

-w 参数表示全字符匹配

安装 git 命令:

yum install git.x86_64

git 的基本使用:

# 克隆
git clone

# 新增
git add

# 提交
git commit

# 推送
git push

安装 JDK
查看 JDK 安装包命令:

yum list | grep jdk


安装 JDK 命令:

yum install java-1.8.0-openjdk-devel.x86_64
通过 yum 可以很方便的安装 OpenJDK,这是一个开源的 JDK,和官方的 JDK 略有差别,但是差别很小。

选择后缀为 devel(表示软件开发包)和与自己系统相匹配的 JDK 版本,安装好后,可以通过 javac 来验证是否安装成功。如果安装成功,结果如下:

eb89f9b0ee2e4c22bdb95d1ff56d3a0d.png

安装 Maven

查看 Maven 安装包命令:

yum list | grep maven -w

安装 Maven 命令:

yum install maven.noarch

验证 Maven 命令:

mvn -v

如果安装成功,通过验证可以得到如下结果

68c3063140994c0b8c2460badaa8c51d.png

安装 Tomcat

notes:由于 yum 源上默认的是 Tomcat 7,而下面介绍的是安装 Tomcat 8 的方式,所以将不使用 yum 进行安装

安装步骤:

下载 Tomcat 压缩包(Tomcat 官网下载地址为:Apache Tomcat® - Apache Tomcat 8 Software Downloads)

09a77abb18444f01ae68a4c0da897cda.png

通过 wget Tomcat具体的下载链接地址 就可以进行下载压缩包(亲试,下载速度有点慢,建议直接将压缩包下载到本地,然后直接拖拽到服务器中

拖拽需要安装如下命令

yum install lrzsz

解压缩 Tomcat

unzip apache-tomcat-8.5.77.zip
如果 unzip 命令找不到,则需要使用

yum install unzip 进行安装

修改可执行权限

 

# 进入 Tomcat 的 bin 目录

cd apache-tomcat-8.5.77/bin

 

# 将所有 .sh 后缀的文件加上可执行权限

chmod a+x *.sh

 

*.sh 表示该目录下所有后缀为 .sh 的文件

 

启动 Tomcat(下面命令是在 Tomcat 的 bin 目录中进行的)

 

sh startup.sh

验证 Tomcat

# 方式一:查看 Tomcat 进程是否存在
ps aux | grep tomcat

# 方式二:查看端口 8080 是否被绑定
nestat -anp | grep 8080

# 方法三:使用 curl 命令访问默认 demo
curl 127.0.0.1:8080

注意: 当你使用的是云服务器,那么你第一次完成了上述操纵可能不发在浏览器成功打开 Tomcat,那是因为云服务器的安全组或者防火墙没有开启 8080 端口。因此你需要进入你的云服务器的控制台去开启 8080 端口。

安装 MySQL
MySQL 也可以使用 yum 进行安装,但是要修改的配置会比较复杂,为此这里介绍 MariaDB 的安装,这是一个和 MySQL 及其类似的数据库,是在 MySQL 被收购后,MySQL 的作者通过同一个源码创建的数据库,两者是可以兼容的。

注意: 如果你要安装 MariaDB 数据库,那么你要保证你的云服务器中没有安装 MySQL,不然以下安装步骤可能会出错,这是个人的亲测!

安装步骤:

安装 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

更改配置:

更改 /etc/my.cnf.d/client.cnf 文件,在 [client] 下加如下配置

default-character-set=utf8

更改 /etc/my.cnf.d/mysql-clients.cnf 文件,在 [mysql] 下加如下配置

default-character-set=utf8

更改 /etc/my.cnf.d/server.cnf 文件,在 [mysqld] 下加如下配置

collation-server = utf8_general_ci

init-connect='SET NAMES utf8'

character-set-server = utf8

sql-mode = TRADITIONAL


启动数据库:

启动服务

systemctl start mariadb

设置服务开启自启动

systemctl enable mariadb

查看服务状态

systemctl status mariadb

测试连接:

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

mysql -uroot
结果如下,说明安装的数据库就可以正常运行了

7f1eacfd4ea14c5e9acd7e80a0182308.png

目前的 mariadb 用户是没有密码的,默认密码就是空字符。如需更改数据库密码,可以通过以下操作

mysql_secure_installation

更改完毕后,下次启动数据库时,通过 mysql -uroot -p 命令就可以带密码的连接数据库

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
11天前
|
人工智能 Unix Linux
【初识Linux】Linux环境配置、Linux的基本指令 一
【初识Linux】Linux环境配置、Linux的基本指令 一
|
17天前
|
安全 小程序 Linux
Linux中信号是什么?Ctrl + c后到底为什么会中断程序?
信号在进程的学习中是一个非常好用的存在,它是软件层次上对中断机制的一种模拟,是异步通信方式,同时也可以用来检测用户空间到底发生了什么情况,然后系统知道后就可以做出相应的对策。
|
14天前
|
存储 Ubuntu Java
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
【Linux】已解决:Ubuntu虚拟机安装Java/JDK
21 1
|
13天前
|
Linux 网络安全 Docker
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)3
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
12 0
|
13天前
|
Linux 网络安全 开发工具
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)2
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
16 0
|
13天前
|
Linux
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)1
【Linux】Linux常用指令合集精讲,一篇让你彻底掌握(万字真言)
16 0
|
17天前
|
存储 Java Linux
Java面试之Linux和docker
Java面试之Linux和docker
15 0
|
17天前
|
Java Linux Shell
Linux软件安装和部署Java代码
Linux软件安装和部署Java代码
21 0
|
17天前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
19天前
|
监控 网络协议 安全
Linux基本指令之网络通信命令
Linux基本指令之网络通信命令