Linux 常用应用安装
作为 Android 开发者,目标主要是在客户端,平时也就是和服务端对接数据接口,很少直接干到服务端的 Linux 机器,随着这波推动团队技术平台基础开发工具模块的完善,拿到了一台 Linux 机器,重新构建移动端的测试服务器。
该机器主要功能:
- 提供移动端服务 Api 接口
- 提供移动端通讯录管理授权服务
- 提供企业微信通讯录同步服务
- 管理移动端服务器 Api 接口文档
也是第一次正式的从头开始安装所需软件及应用部署,虽然这些工作可以完全找运维去处理,难得这样的机会从头开始去熟悉 Linux。
安卓,是一个基于Linux内核的开放源代码移动操作系统,因此多了解 Linux 是一件双赢的事情,基于当前机器需要提供的服务,安装部署需要的软件应用
废话不多说,上来就是干
和 Windows 一样不同的系统,安装的软件也是有区别的,而且 Linux 的系统众多,因此需要先查看系统的版本及相关信息,然后再下载对应系统版本的应用进行安装
查看 Linux 发行版的名称及其版本号
查看内核
cat /proc/version
1
2[dc2-user@10-255-0-191 ~]$ cat /proc/version
Linux version 3.10.0-957.27.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Mon Jul 29 17:46:05 UTC 2019uname -a
1
2[dc2-user@10-255-0-191 ~]$ uname -a
Linux 10-255-0-191 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
查看 Linux 系统版本
lsb_release -a
:列出所有版本信息1
2
3
4
5
6[dc2-user@10-255-0-191 ~]$ lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.6.1810 (Core)
Release: 7.6.1810
Codename: Corecat /etc/redhat-release
:只适合 Redhat 系的 Linux1
2[dc2-user@10-255-0-191 ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)cat /etc/issue
:此命令也适用于所有的 Linux 发行版1
2
3[root@localhost ~]# cat /etc/issue
CentOS release 6.7 (Final)
Kernel \r on an \m
Java
官方下载地址,选择需要的版本下载安装包
官方提供了
.rpm
,.gz
两种格式安装包
1 | # 1. 下载安装包 |
Tomcat
官方下载地址,选择需要的版本下载安装包
官方提供了
.zip
,.gz
两种格式安装包,Linux服务器下载Core
类即可
1 | # 1. 下载安装文件 |
配置Web管理账号
- 修改文件 conf/tomcat-users.xml,在元素中添加帐号密码,需要指定角色
1
2
3
4vim /usr/local/tomcat/conf/tomcat-users.xml
# <tomcat-users>
# <user name="admin" password="admin" roles="admin-gui,manager-gui" />
# </tomcat-users>
配置端口
- 可以修改 conf 目录下的文件 server.xml,修改 Connector 元素(Tomcat 的默认端口是 8080),需要重新启动 Tomcat 服务生效
1
2vim /usr/local/tomcat/conf/server.xml
# <Connector port="9999" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
应用部署
- 放置需部署包到容器中
webapps
路径1
cd /usr/local/tomcat/webapps
- 启动服务
1
2cd /usr/local/tomcat/bin
./startup.sh
Maven
官方网站,选择需要的版本下载
- 官方 Maven: https://maven.apache.org/
- Maven 下载地址: https://maven.apache.org/download.cgi
- Maven 历史版本: https://archive.apache.org/dist/maven/maven-3/
安装
1 | # 下载文件 Maven 文件 |
配置
1 | # 编辑环境配置 |
验证
1 | mvn -v |
如果需要更改 Maven 的镜像源,可参考 专治各种网络不服 文章
Apache
一般系统中已经包含 Apache 应用
官方下载地址,选择需要的版本下载安装包
官方提供了
.bz2
,.gz
两种格式安装包
安装
查看系统中是否已包含 httpd 应用
1 | rpm -qa | grep httpd |
-
方式一
1
2
3
4# 1. 下载需要的版本文件
wget http://apache.claz.org//httpd/httpd-2.4.33.tar.gz
# 2. 解压安装文件(解压到指定目录,常存放 /usr/local/httpd/ 路径)
tar -zxvf httpd-2.4.33.tar.gz -C /usr/local/httpd/ -
方式二(推荐)
1
2# 1.下载安装 httpd
yum install httpd
卸载
1 | yum erase httpd.x86_64 |
常用命令
1 | # 查看服务运行状态 |
RPM默认安装路径:
路径 | 说明 |
---|---|
/etc | 一些设置文件放置的目录如 /etc/crontab |
/usr/bin | 一些可执行文件 |
/usr/lib | 一些程序使用的动态函数库 |
/usr/share/doc | 一些基本的软件使用手册与帮助文档 |
/usr/share/man | 一些 man page 文件 |
Nginx
官方下载地址,选择需要的版本下载安装包(最新安装版本 1.14.0)
官方提供了
.zip
,.gz
两种格式安装包
安装
-
方式一
1
2
3
4
5
6
7# 1. 下载安装文件
wget http://nginx.org/download/nginx-1.14.0.tar.gz
# 2. 解压安装文件(解压到指定目录,常存放 /usr/local/ 路径)
tar -zxvf nginx-1.14.0.tar.gz -C /usr/local/
# 3. 编译安装依赖库
cd /usr/local/nginx/
./configure -
方式二
1
2# 默认安装路径 /etc/nginx/
yum install nginx
常用命令
- 加压文件安装常用命令
1
2
3
4
5
6
7
8
9
10# 停止 ngix
/usr/local/nginx/sbin/nginx -s quit
# 重新载入 nginx(当配置信息发生修改时)
/usr/local/nginx/sbin/nginx -s reload
# 查看版本
/usr/local/nginx/sbin/nginx -v
# 查看 nginx 的配置文件的目录
/usr/local/nginx/sbin/nginx -t
# 查看帮助信息
/usr/local/nginx/sbin/nginx -h - yum安装常用命令
1
2
3
4
5
6
7
8
9
10# 启动
systemctl start nginx
# 停止
systemctl stop nginx
# 重启
systemctl restart nginx
# 查看运行状态
systemctl status nginx
# 开机启动
systemctl enable nginx
Node
官方下载地址,选择需要的版本下载安装包
官方提供了
.gz
,.7z
,zip
等多种格式安装包
安装
1 | # 1. 下载安装文件 |
Redis
官方下载地址,选择需要的版本下载安装包
官方提供了
.gz
格式安装包
安装
1 | # 1. 下载安装文件 |
配置
1 | # 修改 redis.conf 文件中 daemonize 属性 为 yes |
其他配置根据自身需要调整修改
其他命令
- 关闭服务
1
redis-cli -h 127.0.0.1 -p 6379 shutdown
- 非安全模式启动
1
2# 后台以非安全模式启动
nohup /usr/local/bin/redis-server --protected-mode no &
常用命令
文件查找
find
find 命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访问时间,修改时间等。
- 基本格式:
find path expression - 示例:
- 在根目录下查找文件 httpd.conf,表示在整个硬盘查找
find / -name httpd.conf - 表示当前目录下查找文件名开头是字符串 srm 的文件
find . -name ‘srm*’ - 查找在系统中最后 10 分钟访问的文件(access time)
find / -amin -10 - 查找在系统中属于 fred 这个用户的文件
find / -user fred - 查找出小于 1000KB 的文件
find / -size -1000k
- 在根目录下查找文件 httpd.conf,表示在整个硬盘查找
grep
grep 是根据文件的内容进行查找,会对文件的每一行按照给定的模式(patter)进行匹配查找。
- 基本格式:
find expression - 主要参数:
-c:只输出匹配行的计数。
-i:不区分大小写
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。 - 示例:
- 显示所有包含每行字符串至少有 5 个连续小写字符的字符串的行
grep ‘[a-z]{5}’ aa - 显示所有以 d 开头的文件中包含 test 的行
grep ‘test’ d*
- 显示所有包含每行字符串至少有 5 个连续小写字符的字符串的行
进程相关
-
查看指定服务进程
1
2
3
4# 查看 httpd 服务进程
ps -ef | grep httpd
# UID PID PPID C STIME TTY TIME CMD
# root 7192 7103 0 19:59 pts/3 00:00:00 grep --color=auto httpd- UID:用户 ID
- PID:进程 ID
- PPID:父进程 ID
- C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
- STIME:进程启动的时间
- TTY:完整的终端名称
- TIME:CPU 时间
- CMD:完整的启动进程所用的命令和参数
-
杀死指定进程
1
kill -9 pid(逐个都删除)
-
查看指定端口
1
2# 检测 6379 端口是否在监听
netstat -lntp | grep 6379
文件复制
语法
1 | scp(选项)(参数) |
选项
1 | -1:使用 ssh 协议版本 1; |
参数
- 源文件:指定要复制的源文件
- 目标文件:目标文件。格式为 user@host:filename(文件名为目标文件的名称)
示例
-
上传本地文件到远程机器指定目录
1
2
3scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest
# 指定端口 2222
scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest -
上传本地目录到远程机器指定目录
1
scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest
-
从远程机器复制文件到本地
1
scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/
-
从远程机器复制文件(含目录)到本地
1
scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/
文件删除
语法
1 | rm [选项] 文件或目录 |
选项
1 | -f:强行删除,忽略不存在的文件,不提示确认。(f 为 force 的意思) |
示例
-
删除一个文件
1
rm file
-
删除一个目录
1
rm file/