在 CentOS 中安装 JDK、MySQL、Tomcat 等软件。
包管理工具 RPM (Red Hat Package Manager)是 Red Hat 开发的软件包管理工具,YUM(Yellowdog Updater Modified)是一个基于 RPM 开发的软件包管理器,能够从指定的服务器自动下载RPM包并且安装,可以处理依赖性关系。
rpm rpm 是一种 Linux 软件包的名称,以.rmp
结尾。
基本语法:rpm [options] [package ...]
options
-qa
:查询全部
-e
:移除包
--nodeps
:不验证依赖关系
1 2 3 4 rpm -qa | grep <keyword> rpm -e --nodeps <package_name>
yum rpm 包的安缺点是文件的关联性太大,装一个软件要安装很多其他的依赖包,使用 yum 可以解决这个关联性的问题。
yum 基本语法:yum [options] COMMAND [package ...]
options
-h
:帮助
-y
:安装提示全部选择yes
,自动化安装
-q
:安静模式,不显示安装过程
-C
:完全从缓存中运行,不下载或者更新任何头文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 $ yum list $ yum list installed $ yum list available $ yum list mysql-community-client Installed Packages mysql-community-client.x86_64 5.7.29-1.el7 @mysql57-community Available Packages mysql-community-client.i686 5.7.34-1.el7 mysql57-community mysql-community-client.x86_64 5.7.34-1.el7 mysql57-community yum search <keyword> yum install <package_name> yum remove <package_name> yum check-update yum update <package_name> yum update yum clean packages yum clean headers yum clean oldheaders yum clean all
切换 yum 源为阿里云:
1 2 3 4 5 6 7 8 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo yum clean all yum makecache
oh-my-zsh 安装zsh CentOS 8 1 $ yum update && yum -y install zsh
安装git CentOS 8
安装 oh-my-zsh 1 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh) "
传输工具 wget wget 是一个专注于下载的工具,支持断点续传,轻便有效。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 wget -h wget https://sannaha.moe wget -o process.txt https://sannaha.moe wget -O sannaha.html https://sannaha.moe wget -c https://cdn1.evernote.com/win6/public/Evernote_6.18.4.8489.exe wget -q https://cdn1.evernote.com/win6/public/Evernote_6.18.4.8489.exe wget -b https://cdn1.evernote.com/win6/public/Evernote_6.18.4.8489.exe
cURL cURL 是一个 http 命令行工具,它支持文件的上传和下载,强大、复杂。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 curl https://sannaha.moe curl -o sannaha.html https://sannaha.moe curl -O https://sannaha.moe/Aplayer.min.css curl -O -fsSL -x 127.0.0.1:1080 https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh curl -o /dev/null -s -w %{http_code} sannaha.moe curl -O https://www.example.com/banner[1-5].jpg curl -r 0-99999999 -o Evernote_part1.tmp https://cdn1.evernote.com/win6/public/Evernote_6.18.4.8489.exe curl -r 100000000- -o Evernote_part2.tmp https://cdn1.evernote.com/win6/public/Evernote_6.18.4.8489.exe cat Evernote_part* > Evernote_6.18.4.8489.exe
Zmodem Zmodem 文件传输协议采用了串流式(streaming)传输方式,传输速度较快,而且还具有自动改变区段大小和断点续传、快速错误侦测等功能。这是目前最流行的文件传输协议。
sz
:send Zmodem,用Zmodem文件传输协议从Linux服务器发送文件到本地rz
:receive Zmodem,用Zmodem文件传输协议从本地发送文件到Linux服务器
1 2 3 4 5 6 7 yum -y install lrzsz sz filename rz
ftp 使用文件传输协议(File Transfer Protocol)在计算机之间传输文件。
搭建服务器 FTP 服务器的搭建可以参考 *通过仓库拉取ftp镜像 * 或 *linux FTP 服务器安装配置及命令使用 * 。
安装客户端 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 $ yum -y install ftp $ ftp ftp> help ! debug mdir sendport site $ dir mget put size account disconnect mkdir pwd status append exit mls quit struct ascii form mode quote system bell get modtime recv sunique binary glob mput reget tenex bye hash newer rstatus tickcase help nmap rhelp tracecd idle nlist rename type cdup image ntrans reset user chmod lcd open restart umask close ls prompt rmdir verbose cr macdef passive runique ? delete mdelete proxy send
连接服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 -v:强制FTP显示来自远程服务器的所有响应,以及数据传输统计信息的报告。 -d:启用调试,显示FTP客户端和FTP服务器之间传递的所有命令。 -i:在多个文件传输期间禁用交互式提示。 -n:在初始连接时禁止自动登录。 -g:禁止使用通配符。Glob 允许使用星号 (*) 和问号 (?) 作为本地文件名和路径名中的通配符。 $ ftp 192.168.153.121 $ ftp -n 192.168.153.121 ftp> user ftpadmin ftpadmin $ ftp -in 192.168.153.121 ftp> user ftpadmin ftpadmin $ ftp ftp> open 192.168.153.121 ftp> close 221 Goodbye. ftp> bye 221 Goodbye.
操作服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ftp> pwd 257 "/" ftp> ls drwx------ 2 ftp ftp 24 Jul 29 07:42 dir ftp> mkdir mydir ftp> cd mydir ftp> rename result.txt result.txt.tmp ftp> rename result.txt.tmp subdir/result.txt.tmp ftp> delete result.txt ftp> mdelete *.txt ftp> dir -rw------- 1 ftp ftp 6 Jul 29 06:51 result.txt -rw------- 1 ftp ftp 4 Jul 29 03:45 result2.txt drwx------ 2 ftp ftp 6 Jul 29 07:36 subdir ftp> dir *.txt -rw------- 1 ftp ftp 6 Jul 29 06:51 result.txt -rw------- 1 ftp ftp 4 Jul 29 03:45 result2.txt ftp> dir . - -rw------- 1 ftp ftp 6 Jul 29 06:51 result.txt -rw------- 1 ftp ftp 4 Jul 29 03:45 result2.txt drwx------ 2 ftp ftp 6 Jul 29 07:36 subdir ftp> dir . mydirlist.txt ftp> nlist mydir mydirnlist.txt ftp> nlist mydir - mydir/result.txt mydir/result2.txt mydir/subdir
操作本地 1 2 3 4 5 6 7 8 9 10 11 ftp> !pwd /opt/bigdata ftp> !ls hivedata script testdata work ftp> lcd /opt/bigdata/hivedata
上传文件 1 2 3 4 5 6 7 ftp> put result.txt ftp> put result.txt dir/res.txt ftp> mput filename*
下载文件 1 2 3 4 5 6 7 8 9 10 11 12 ftp> get rfile ftp> get rfile lfile ftp> mget *.txt mget result.txt? y 6 bytes received in 0.000301 secs (19.93 Kbytes/sec) mget result2.txt? y 4 bytes received in 0.000582 secs (6.87 Kbytes/sec)
传输模式 1 2 3 4 5 6 7 8 9 10 11 ftp> type Using binary mode to transfer files. ftp> asc 200 Switching to ASCII mode. ftp> bin 200 Switching to Binary mode.
lftp lftp 是一个功能强大的文件传输工具,支持访问文件的协议包括:ftp、ftps、http、https、hftp、fish。lftp 提供了一个类似 shell 的用户界面:有命令补全、历史记录,也可以直接使用脚本操作,允许多个后台任务执行,还有书签、排队、镜像、断点续传、多进程下载等功能。
这里会介绍一些 lftp 中常用的命令,lftp 在 Shell 脚本中的应用见 *Linux 脚本 * ,更多 lftp 命令见手册 *the manual page - LFTP * 。
安装 1 2 3 4 5 $ yum -y install lftp $ lftp --version LFTP | Version 4.4.8 | Copyright (c) 1996-2013 Alexander V. Lukyanov
语法 1 2 3 4 lftp [-d] [-e cmd] [-p port] [-u user[,pass]] [site] lftp -f script_file lftp -c commands
连接服务器 1 2 3 4 5 6 7 8 9 10 11 12 13 $ lftp ftp://192.168.153.121 lftp 192.168.153.121:~> user ftpadmin ftpadmin $ lftp ftp://ftpadmin:ftpadmin@192.168.153.121 $ lftp -p 21 -u ftpadmin,ftpadmin ftp://192.168.153.121 $ lftp -p 21 -u ftpadmin,ftpadmin ftp://192.168.153.121 -e "cd data; put top.sql -o top.sql.tmp;mv top.sql.tmp top.sql;exit;" >> /dev/null lftp ftpadmin@192.168.153.121:~> exit
操作服务器 lftp 中 pwd
/ ls
/ cd
/ mv
/ rm
/ mkdir
/ cat
等命令的功能与 Shell 一致,用来查看与操作 FTP 服务器上的文件和目录:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 lftp ftpadmin@192.168.153.121:~> pwd ftp://ftpadmin@192.168.153.121:21 lftp ftpadmin@192.168.153.121:~> pwd -p ftp://ftpadmin:ftpadmin@192.168.153.121:21 lftp ftpadmin@192.168.153.121:~> ls drwx------ 2 ftp ftp 71 Jul 21 08:59 data -rw------- 1 ftp ftp 0 Jul 21 08:58 result.txt lftp ftpadmin@192.168.153.121:/> cls data/ lftp ftpadmin@192.168.153.121:/> cd data/
操作本地 以下命令与 Shell 相仿,用来查看本地文件和目录以及改变本地工作目录:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 lftp ftpadmin@192.168.153.121:~> lpwd /opt/bigdata/hivedata lftp ftpadmin@192.168.153.121:~> lcd /opt/bigdata/ lcd 成功, 本地目录=/opt/bigdata lftp ftpadmin@192.168.153.121:~> !ls course.csv score.csv student.csv teacher.csv lftp ftpadmin@192.168.153.121:/data> !pwd /root lftp ftpadmin@192.168.153.121:/data> lpwd /root lftp ftpadmin@192.168.153.121:/data> ! cd /opt/ lftp ftpadmin@192.168.153.121:/data> lpwd /root lftp ftpadmin@192.168.153.121:/data> lcd /opt lcd 成功, 本地目录=/opt lftp ftpadmin@192.168.153.121:/data> lpwd /opt
下载文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 > get hadoopserver.tar -o hadoopserver.tar.tmp 中断 > mget *.csv 522 bytes transferred Total 2 files transferred > pget -c -n 10 hadoopserver.tar -o hadoopserver.tar.tmp 814088563 bytes transferred in 18 seconds (42.84M/s) > set xfer:clobber on
上传文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 > put result.txt -o result.txt.tmp > mput *.csv 654 bytes transferred Total 4 files transferred
移动和删除 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 lftp ftpadmin@192.168.153.121:/data> mv result.txt result.txt.tmp rename successful > rm dir rm: Access failed: 550 Delete operation failed. (dir) > rm -f dir > rm -r dir rm 成功, 删除 `dir' # 删除文件,支持通配符 # mrm file(s) > mrm file*.txt rm ok, 3 files removed
镜像目录 1 2 3 4 5 6 7 8 > mirror -R hivedata Total: 1 directory, 6 files, 0 symlinks New: 6 files, 0 symlinks 654 bytes transferred
网络工具 netstat 1 2 3 4 5 6 7 8 9 10 11 $ yum install -y net-tools $ netstat -ant $ netstat -tunlp|grep 10000 $ netstat -lntp
Vim 安装:
1 2 3 4 5 6 7 8 9 10 11 vim-minimal-7.4.160-5.el7.x86_64 vim-common-7.4.160-5.el7.x86_64 vim-enhanced-7.4.160-5.el7.x86_64 $ rpm -qa|grep vim vim-minimal-7.4.629-8.el7_9.x86_64 $ yum -y install vim-common vim-enhanced
配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 $ vim /root/.bashrc alias vi='vim' $ vim /etc/vimrc $ vim ~/.vimrc set number "显示行号" set showmatch "高亮匹配括号" set ai "自动缩进"
JDK
卸载 openjdk
1 2 3 4 5 6 7 8 9 tzdata-java-2013g-1.el6.noarch java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64 java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64 rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686 rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
安装JDK8
现在从 Oracle 官方下载 JDK8 需要登录账号,可以在 Windows 上登录并获取下载链接(有实效性),再在 Linux 上使用 wget 下载。
1 2 3 4 5 6 mkdir -p /usr/java && cd /usr/java wget -O jdk-8u211-linux-x64.tar.gz https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1559299061_1ea315f9742e1b52d8bcd7a938fee6f0 tar –zxvf jdk-8u211-linux-x64.tar.gz
配置环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13 14 export JAVA_HOME=/usr/java/jdk1.8.0_211export PATH=$PATH :$JAVA_HOME /binexport CLASSPATH=.:$JAVA_HOME /lib/dt.jar:$JAVA_HOME /lib/tools.jarexport JAVA_HOME PATH CLASSPATHjava version "1.8.0_211" Java(TM) SE Runtime Environment (build 1.8.0_211-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
Tomcat 安装:
1 2 3 4 $ cd /export /software $ tar -zxvf apache-tomcat-7.0.52.tar.gz -C /export /servers/
CentOS 7 默认使用的是 firewall 作为防火墙,换回 iptables 需要重新安装:
1 2 3 4 5 6 $ systemctl stop firewalld.service $ systemctl disable firewalld.service $ yum -y install iptables-services
修改防火墙,开启端口:
1 2 3 4 5 6 7 $ vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT $ service iptables restart
启动
apache-tomcat-7.0.52/ 1 2 bin/startup.sh && tail -100f logs/catalina.out
MySQL 卸载预装的 MySQL 1 2 3 4 5 6 7 8 9 10 mysql-libs-5.1.73-8.el6_8.x86_64 mysql-5.1.73-8.el6_8.x86_64 mysql-server-5.1.73-8.el6_8.x86_64 mysql-devel-5.1.73-8.el6_8.x86_64 ...
安装 MySQL
使用 yum 在线安装 MySQL:
1 $ yum -y install mysql mysql-server mysql-devel
启动 mysqld
服务:
运行 mysql 安装自带脚本进行配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... Enter current password for root (enter for none): Set root password? [Y/n] y New password:123456 Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] n Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
进入 MySQL 客户端,进行授权:
1 2 3 4 5 $ mysql -uroot -p mysql> grant all privileges on *.* to 'root' @'%' identified by '123456' with grant option; mysql> FLUSH PRIVILEGES;
设置 MySQL 开机启动:
1 2 $ chkconfig --add mysqld $ chkconfig mysqld on
重设密码
停止运行 mysqld
服务:
跳过访问授权表:
1 mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
登录 MySQL:
修改密码
1 2 3 4 5 6 7 8 9 mysql> UPDATE user SET Password= PASSWORD('newpassword' ) where USER = 'root' and host= '127.0.0.1' or host= 'localhost' ; mysql> UPDATE mysql.user SET authentication_string= PASSWORD('newpassword' ) where USER = 'root' and host= '127.0.0.1' or host= 'localhost' ; mysql> FLUSH PRIVILEGES; mysql> quit
重启 mysqld
服务并使用新密码登录:
1 2 3 4 5 6 $ service mysqld restart $ mysql -uroot -p Enter password: <newpassword>
离线安装MySQL
查看配置文件:
1 2 3 4 5 6 $ cat /etc/my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log /mysqld.log pid-file=/var/run/mysqld/mysqld.pid
查看密码:
1 2 $ sudo grep 'temporary password' /var/log /mysqld.log 2021-11-11T07:41:17.285626Z 1 [Note] A temporary password is generated for root@localhost: !ydrFuVtr8!q
报错 1 2 $ sudo rpm -ivh mysql-community-common-5.7.36-1.el7.x86_64.rpm warning: mysql-community-common-5.7.36-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY
从 RPM 版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。这是由于yum安装了旧版本的GPG keys造成的 解决办法:后面加上 --force --nodeps
。
安装pip3 Debian 10,默认安装了 python 3.9.2,没有安装 pip3:
1 2 3 4 5 apt update apt install python3-venv python3-pip pip3 -V pip 20.3.4 from /usr/lib/python3/dist-packages/pip (python 3.9)