1.多级目录创建:mkdir -p Project/a/src
2.多级目录下多个文件夹:mkdir -p Project/{a,b,c,d}/src
3.文件夹删除:rm -rf
-r 向下递归,不管有多少级目录,一并删除。
-f 直接强行删除,没有任何提示
删除空文件:rmdir
删除某个文件下的所有文件删除:进入这个文件夹,然后用命令 rm -rf *
常用命令: ll-查询 , pwd-显示当前目录 , cd-改变目录, sz-下载文件(sz filename),rz -上传文件(rz)
mkdir dir 创建dir文件夹,more filename 显示文件,head -1 filename 显示文件第一行,
tail -5 filename 显示文件倒数第五行,$sort filename 对文件中的行排序,并显示
查看日志:
tail -f /data/tomcat/logs/catalina.out 绝对路径查询日志
4.安装jre,下载地址需要你去oracle官网获取
wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;"https://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/server-jre-8u191-linux-x64.tar.gz"
5.编辑文件
vi a.text 用文本编辑器编辑一个文件并且保存
Esc :wq 保存修改,退出
Esc :q! 不保存,退出
vi 文件名
点击键盘的“i”键,然后对文件进行编辑
编辑完成后先点击键盘“ESC”随后“shift和:”在显示的输入行中输入“wq”进行保存,如果强制退出q!
进入编辑状态后,英文状态下输入,:set nu,回车便可以显示行数
文件对比命令:diff svnserve.conf.180110 svnserve.conf
6.打包解压
打包:tar -cvf testdir.tar testdir/ 参数c :表示创建一个打包文档,v:显示打包的进度,f:表示要打成的tar包的名字,-z:有gzip属性的
解压:tar –xvf testdir.tar 参数x:表示从一个现存的tar文件中进行解包操作
也可用:
打包 tar -zcvf ROOT.tar.gz ROOT
解压 tar -zxvf ROOT.tar.gz
打包成zip:zip -r ROOT.zip ROOT
zip解压:unzip -o ROOT.zip
7.tomcat关闭与开启
/data/app/apache-tomcat/bin/startup.sh
/data/app/apache-tomcat/bin/shutdown.sh
8.下载jre
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "https://download.oracle.com/otn-pub/java/jdk/8u192-b12/750e1c8617c5452694857ad95c3ee230/server-jre-8u192-linux-x64.tar.gz"
9..为jre文件夹及子文件夹赋予超级用户的权限,并配置环境变量
赋予权限: chown root:root -R /home/java/jdk1.8.0_161/
环境变量配置:vi /etc/profile
进入编辑模式在文件中尾处添加:
export JAVA_HOME=/home/java
export JRE_HOME=/home/java/jdk1.8.0_161
export CLASSPATH=$JRE_HOME/lib/rt.jar:$JRE_HOME/lib/ext
export PATH=$PATH:$JRE_HOME/bin
添加完后执行 :source /etc/profile (重置环境变量,使得修改生效)
9.1出现w10: warning: changing a readonly file(用vi别用vim)
9.2source /etc/profile 出错command not found解决办法,配置的环境变量有误或中间有多余的空格
10.查看文件,可翻页显示more
11.安装mysql:一般下载到/usr/local/src
下载:
wget http://dev.mysql.com/get/Downloads/MySQL-5.7.24/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压:
tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
移动:
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
进入mysql文件夹
cd /usr/local/mysql
创建data:
mkdir /usr/local/mysql/data
新建mysql用户、mysql用户组:
groupadd mysql
useradd mysql -g mysql
将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql
5.7以上mysql安装初始化命令
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
如果出错
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
运行:yum -y install numactl
还出错:yum install libaio-devel.x86_64
初始化成功最后有个临时密码:FabJyKqOJ1;d
vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8# 取消密码验证skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
mysql自启动设置
#将服务文件拷贝到init.d下,并重命名为mysql(老版本mysqld)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
#赋予可执行权限
chmod +x /etc/init.d/mysql
#添加服务
chkconfig --add mysql
#显示服务列表
chkconfig --list
#如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysql on
#重启电脑
reboot
#验证
netstat -na | grep 3306
#有监听说明服务启动了
登录
/usr/local/mysql/bin/mysql -u root -p
操作数据库提示:You must reset your password using ALTER USER statement before executing this statement
重置密码:SET PASSWORD = PASSWORD('123456');或者ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
exit;
修改远程访问权限
select user,host from user;
use mysql;
update user set host='%' where user='root' limit 1;
flush privileges;
12.云服务不支持rzsz,安装:yum install -y lrzsz
15.tomcat
下载:
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-8/v8.5.35/bin/apache-tomcat-8.5.35.tar.gz
解压: tar -xvf apache-tomcat-8.5.35.tar.gz
重命名:mv apache-tomcat-8.5.35 tomcat
查看firewalld状态systemctl status firewalld,发现当前是dead状态,即防火墙未开启
防火墙:firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --zone=public --add-port=8080/tcp --permanent
更新防火墙规则:firewall-cmd --reload
查看已经打开的端口:firewall-cmd --zone=public --list-ports
如需修改tomcat配置和端口:
catalina.sh内存配置:
# OS specific support. $var _must_ be set to either true or false.
JAVA_OPTS='-Xms2048m -Xmx2048m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -DUseSunHttpHandler=true'
cygwin=false
darwin=false
server.xml端口配置:
<Server port="8008" shutdown="SHUTDOWN">
------------------------------------------------
<Connector port="8083" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8446" URIEncoding="UTF-8"
maxThreads="200"
minSpareThreads="20"
acceptCount="100"
enableLookups="false"
maxHttpHeaderSize="8192"
maxIdleTime="60000"
maxPostSize="-1"
/>
--------------------------------------
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8012" protocol="AJP/1.3" redirectPort="8446" />
查看tomcat进程:ps -ef | grep tomcat*,进程号查端口:netstat -anop | grep 15161,根据端口查明细:lsof -i: 8866
16.nodejs
下载:wget https://nodejs.org/dist/v10.13.0/node-v10.13.0-linux-x64.tar.xz
解压: tar -xvf node-v10.13.0-linux-x64.tar.xz
软连接全局:
ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
ln -s /usr/local/nodejs/bin/node /usr/local/bin/
pm2安装
npm install pm2 -g
ln -s /usr/local/nodejs/lib/node_modules/pm2/bin/pm2 /usr/local/bin
17.nginx
//一键安装nginx所需四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.g
./configure && make && make install
启动
/usr/local/nginx/sbin/nginx
conf/nginx.conf
重启命令报错时:/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
listen 80;代表监听80端口
server_name xxx.com;代表外网访问的域名
location / {};代表一个过滤器,/匹配所有请求,我们还可以根据自己的情况定义不同的过滤,比如对静态文件js、css、image制定专属过滤
root html;代表站点根目录
index index.html;代表默认主页
负载均衡功能往往在接收到某个请求后分配到后端的多台服务器上,那我们就需要upstream{}块来配合使用
upstream xxx{};upstream模块是命名一个后端服务器组,组名必须为后端服务器站点域名,内部可以写多台服务器ip和port,还可以设置跳转规则及权重等等
ip_hash;代表使用ip地址方式分配跳转后端服务器,同一ip请求每次都会访问同一台后端服务器
server;代表后端服务器地址
server{};server模块依然是接收外部请求的部分
server_name;代表外网访问域名
location / {};同样代表过滤器,用于制定不同请求的不同操作
proxy_pass;代表后端服务器组名,此组名必须为后端服务器站点域名
server_name和upstream{}的组名可以不一致,server_name是外网访问接收请求的域名,upstream{}的组名是跳转后端服务器时站点访问
的域名
配置多个jar项目,比如springboot打包的.配置文件需要添加指定的项目路径,以便于区分不同jar
server:
port: 8080
servlet:
context-path: /client
server {
listen 80;
server_name 127.0.0.1;
#charset koi8-r;
#access_log logs/host.access.log main;
location /febs {
proxy_pass http://127.0.0.1:8081/febs; #这里的端口记得改成项目对应的哦
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
location /client {
proxy_pass http://127.0.0.1:8080/client; #这里的端口记得改成项目对应的哦
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
}
有时配上upstream无效,加上:proxy_set_header Host $host;
upstream api_server {
server 192.168.1.11:8081 weight=100 max_fails=3 fail_timeout=15;
server 192.168.1.11:8082 weight=100 max_fails=3 fail_timeout=15;
server 192.168.1.12:8083 weight=100 max_fails=3 fail_timeout=15;
server 192.168.1.12:8084 weight=100 max_fails=3 fail_timeout=15;
}
server {
listen 80;
server_name localhost;
#charset koi8-r;
charset utf-8;
#access_log logs/host.access.log main;
proxy_connect_timeout 3s;
location /api/ {
#root html;
#index index.html index.htm;
rewrite ^.+api/?(.*)$ /$1 break;
proxy_pass http://api_server/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
18.redis:
下载: wget http://download.redis.io/releases/redis-4.0.10-tar-gz
解压:tar xzf redis-4.0.10-tar-gz
cd redis-4.0.10-tar-gz
#直接make 编译
make
#可使用root用户执行`make install`,将可执行文件拷贝到/usr/local/bin目录下。这样就可以直接敲名字运行程序了。
安装到指定目录 :
# make install PREFIX=/usr/local/redis
将配置文件移动到安装目录 :
# mv redis.conf /usr/local/redis/etc/redis.conf
启动 Redis 服务器 :
# /usr/local/redis/bin/redis-server /usr/local/redis/etc/redis.conf
关闭 Redis 服务器 :
# /usr/local/redis/bin/redis-cli shutdown
客户端连接 :
# /usr/local/redis/bin/redis-cli
让 Redis 开机启动 :
# vim /etc/rc.local
加入
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
把安装redis目录里面的redis.conf文件复制到/etc/redis/6379.conf里面,6379.conf是取的文件名称,启动脚本里面的变量会读取这个名称,所以要是redis的端口号改了,这里也要修改
cp /usr/redis-4.0.10/redis.conf /etc/redis/6379.conf
首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
.复制启动脚本到/etc/init.d/redis文件中
cp /usr/redis-4.0.10/utils/redis_init_script /etc/init.d/redis
并修改开头几行
#!/bin/sh
# chkconfig: 2345 10 90
# description: Start and Stop redis
REDISPORT=6379
EXEC=/usr/redis/bin/redis-server
CLIEXEC=/usr/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/usr/redis/redis-3.2.4/redis.conf"
19.启动永久jar:
nohup java -jar xxx.jar > catalina.out 2>&1 &
查看jar进程:ps aux|grep febs.jar
20.安装fastdfs
下载libfastcommon:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
解压:tar -zxvf V1.0.7.tar.gz
移动:
mkdir /usr/local/fastdfs
mv libfastcommon-1.0.7 /usr/local/fastdfs/libfastcommon-1.0.7
编译,安装
cd /usr/local/fastdfs/libfastcommon-1.0.7
./make.sh && ./make.sh install
拷贝给fastdfs用
cp /usr/lib64/libfastcommon.so /usr/lib
下载安装FastDFS
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
解压:tar -zxvf V5.05.tar.gz
编译,安装
cd fastdfs-5.05
./make.sh && ./make.sh install
将FastDFS下的conf文件下的所有文件复制到/etc/fdfs/下
cp -r conf/* /etc/fdfs/
配置tracker
vi /etc/fdfs/tracker.conf
将base_path=/home/yuqing/FastDFS改为base_path=/home/fastdfs
mkdir /home/fastdfs
启动
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart(可能需要两遍)
开机启动
vi /etc/rc.d/rc.local
将命令添加到文件里面:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
storage编译安装(由于单机安装,所以省略编译和环境安装,如果存储文件的跟客户端不在同一台机器则需要按照安装tracker一样的环境步骤安装)
1.配置storage
cd /etc/fdfs/
vi storage.conf
修改以下配置
group_name=group1
base_path=/home/yuqing/FastDFS改为:base_path=/home/fastdfs
store_path0=/home/yuqing/FastDFS改为:store_path0=/home/fastdfs/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......
tracker_server=192.168.101.3:22122 #配置tracker服务器:IP(如果应许外网直接访问storage.conf中tracker的地址必须为外网IP,其他tracker可为内网ip)
#如果有多个则配置多个tracker
tracker_server=192.168.101.4:22122
2.创建数据存储目录
mkdir /home/fastdfs/fdfs_storage
3.启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart(可能需要两遍,不清楚原因)
4.设置开机自启
vi /etc/rc.d/rc.local
将命令添加到文件里面:/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
整体完成,可以通过内部上传测试,看返回结果
1.修改上传客户端配置
vi /etc/fdfs/client.conf
修改以下配置
base_path=/home/fastdfs
tracker_server=你的ip:22122
2.上传命令
命令使用格式:
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件
如:/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/anti-steal.jpg
由于没有和nginx整合,所以无法使用http下载,也无法查看
配置fastdfs-nginx-module
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
1.解压fastdfs-nginx-module-master
unzip 5e5f3566bbfa57418b5506aaefbe107a42c9fcb1.zip
2.配置fastdfs-nginx-module-master
mv fastdfs-nginx-module-5e5f3566bbfa57418b5506aaefbe107a42c9fcb1 fastdfs-nginx-module-master
cd fastdfs-nginx-module-master/src
vi config
将文件中的/usr/local/路径改为/usr/(两个都改)
将mod_fastdfs.conf复制到/etc/fdfs/下
cp mod_fastdfs.conf /etc/fdfs/
修改etc/fdfs/下的mod_fastdfs.conf
vi mod_fastdfs.conf
修改mod_FastDFS.conf的以下内容:
base_path=/home/fastdfs
tracker_server=你的ip:22122
#tracker_server=你的ip:22122(多个tracker配置多行)
url_have_group_name=true #url中包含group名称
store_path0=/home/fastdfs/fdfs_storage #指定文件存储路径
将libfdfsclient.so拷贝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
创建nginx/client目录
mkdir -p /var/temp/nginx/client
nginx整合
storage上安装nginx
1.解压nginx
wget -c https://nginx.org/download/nginx-1.12.1.tar.gz
tar -zxvf nginx-1.12.1.tar.gz
2.安装nginx环境
gcc环境(编译环境,上面已经安装):yum install gcc-c++
pcre环境(perl库,nginx的http模块使用pcre来解析正则表达式):yum install -y pcre pcre-devel
zlib环境(提供多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip):yum install -y zlib zlib-devel
openssl环境(算法和安全,https使用):yum install -y openssl openssl-devel
3.编译nginx
cd nginx-1.12.1
./configure --add-module=../fastdfs-nginx-module-master/src(fastdfs专有-fastdfs-nginx-module-master所在的具体目录:)
make && make install
4.创建编译链接
ln -s /usr/include/fast* /usr/local/include/
原因:编译安装nginx的fastdfs插件的头文件没有找到,由于编译nginx时候系统会到/usr/local/include,而编译安装fastdfs-nginx-module时则默认保存在了/usr/include目录。
修复:ln -s /usr/include/fast* /usr/local/include/
5.修改nginx配置
编译完成后,会自动将nginx安装到/usr/local/nginx
cd /usr/local/nginx/conf
vi nginx.conf
添加一个server
server {
listen 80;
server_name 本机;
location /group1/M00/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
配置说明:
server_name指定本机ip,图片服务器ip
location /group1/M00/:group1为nginx 服务FastDFS的分组名称,M00是FastDFS自动生成编号,对应store_path0=/home/FastDFS/fdfs_storage,如果FastDFS定义store_path1,这里就是M01
或者
upstream fdfs_group1 {
server 192.168.1.111:8888 weight=1 max_fails=2 fail_timeout=30s;
}
server {
listen 8000;
server_name 192.168.1.112;
location /group1/M00 {
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
proxy_cache_valid 200 304 24h;
proxy_cache_key $uri$is_args$args;
proxy_pass http://fdfs_group1;
expires 0d;
}
}
进入到 cd /usr/local/nginx/sbin
6.启动nginx
cd /usr/local/nginx/sbin/
./nginx
7.查看进程: ps aux|grep nginx
8.关闭nginx
./nginx -s stop
9.刷新配置
./nginx -s reload
多个分组配置:
nginx:
# 拦截包含 /group1/M00请求,使用fastdfs 采用 nginx_fastdfs_module进行转发
location ~/group([0-9])/M00 {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
复制一份storage.conf :配置第二个分组,修改组名称、端口号、日志存放路径和资源存放路径
group_name=group2
port=23001
# data 和 log 存放路径,指定自己所定义的目录地址即可
base_path=/home/fastdfs/fdfs_storage-group2
# 图片实际存放了路径
store_path0=/home/fastdfs/fdfs_storage-group2
修改mod_fastdfs.conf
group_name=group1/group2
group_count = 2
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/home/fastdfs/fdfs_storage
[group2]
group_name=group2
storage_server_port=23001
store_path_count=1
store_path0=/home/fastdfs/fdfs_storage-group2
说明:
如果重启服务器会发现无法启动nginx,报错找不到某个文件
解决:mkdir /var/run/nginx(偷懒方法,不治本,下次重启依然会报错)
然后再运行nginx
本次fastdfs主要来源:
https://www.cnblogs.com/guotao123/articles/8610244.html
https://www.cnblogs.com/xuehaiyiye/p/9108393.html
Linux查看文件最后几行的命令
tail -n 20 filename
svn安装
yum -y install subversion
建立SVN版本目录:
建了2个,一个储存项目,一个储存密码
mkdir -p /home/svn/svndata
mkdir -p /home/svn/svnpasswd
启动SVN服务,指定服务的SVN根目录
svnserve -d -r /home/svn/svndata
查看是否启动成功
ps -ef|grep svn
创建一个svn项目
svnadmin create /home/svn/svndata/software
修改这个项目的svnserve.conf配置文件
cd /home/svn/svndata/software/conf
vim svnserve.conf
回车,按i,输入修改的内容,按esc,输入:wq退出保存
移动配置文件
cp passwd authz /home/svn/svnpasswd/
添加用户以及密码
cd /home/svn/svnpasswd/
vim passwd
admin=admin
vi authz
[/]
admin=rw
设置防火墙权限,阿里云需配置相应的安全组
/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
地址:svn://192.168.1.11/software,
maven安装
下载:
wget https://mirrors.cnnic.cn/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
解压:
tar -zxvf apache-maven-3.6.1-bin.tar.gz
设置环境变量:vi /etc/profile
重启生效:source /etc/profile
jenkins下载:
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/jenkins-2.177-1.1.noarch.rpm
安装:
sudo rpm -ih jenkins-2.177-1.1.noarch.rpm
自动安装完成之后文件目录:
/usr/lib/jenkins/jenkins.war WAR包
/etc/sysconfig/jenkins 配置文件
/var/lib/jenkins/ 默认的JENKINS_HOME目录
/var/log/jenkins/jenkins.log Jenkins日志文件
更改端口:
vi /etc/sysconfig/jenkins
加上java路径
vi /etc/init.d/jenkins
服务启动:
service jenkins start
登录查找密码:
more /var/lib/jenkins/secrets/initialAdminPassword
ip:192.168.1.11:8080(默认端口)
---------------------------------------------------------------------------------------------------------------------------------
查看消耗内存最多的前20进程
ps aux | head -1;ps aux |grep -v PID |sort -rn -k +4 | head -20
内存情况:free