linux软件安装与权限管理

发布时间 2023-08-18 10:05:31作者: 咔咔皮卡丘

一、lunix系统(centos7)

系统:http://mirrors.aliyun.com/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso

软件源:http://mirrors.aliyun.com

软件源配置:https://opsx.alibaba.com/mirror

1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存

cat /etc/redhat-release 查看系统版本

二、lunix软件安装

2.1 软件分类

2.2.1 包分类

  • 源码包
  • 二进制包:RPM包,系统默认包(具有依赖性)
  • 脚本安装包(高手将安装命令写成shell脚本,其安装的还是源码包或二进制包)

2.2.2 安装方式

  • 源码安装:绝大多数开源软件都是直接以原码形式发布的
  • rpm安装:RPM无法解决软件包的依赖关系
  • yum安装:Yum是rpm的前端程序,主要目的是设计用来自动解决rpm的依赖关系

2.2 rpm包安装方法

2.2.1 来源于光盘

rpm包在/mnt/cdrom/Packages下

  • 挂载光盘

mount -o loop /mnt/*/1.iso /mnt/cdrom

  • -取消挂载

umount /mnt/cdrom

2.2.2 命名规则

软件名-软件版本-软件发布次数.适合的linux平台.适合的硬件平台.rpm

2.2.3 依赖性

  • 树形依赖;
  • 环形依赖;
  • 模块依赖(查询网站:www.rpmfind.net),依赖的是为库文件(以.so.数字结尾),此文件是属于某个rpm包中,只要将rpm包装上,就可以;

2.2.4 管理命令

包全名(如果操作没有安装过的软件包,必须使用包命名,而且要注意路径)

包名(如果操作已经安装过的包(查询或卸载),使用包名就可以了)

安装命令

  • rpm -ivh 包全名(由于依赖性,通常使用yum 在线安装,注意yum命令安装实际上装的还是rpm包)

升级命令

  • rpm -Uvh 包全名

卸载命令

  • rpm -e [--nodeps] 包名(程序会到/var/lib/rpm/下的数据库去查找安装的包,--nodeps:不检查依赖性,实际工作中不允许使用)

查询命令

  • 查询是否安装:

rpm -q 包名(查询包是否安装)

rpm -qa (查询所有已经安装的rpm包,可以加上|grep 进行筛选 )

  • 查询包的信息:

rpm -qi 包名(查询已安装包的信息)

rpm -qip 全包名(查询安装包的信息)

  • 查询包中文件安装位置:

rpm -ql 包名(查询已安装文件安装位置)

rpm -qlp 全包名(查询安装文件安装位置)

2.2.5 rpm包默认安装位置

/etc/(配置文件安装目录)

/usr/bin/(可执行的命令安装目录)

/usr/lib/(程序所使用的函数库保存位置)

/usr/share/doc/(基本的软件使用手册保存位置)

/user/share/man/(帮助文件保存位置)

  • 查询系统文件属于哪个rpm包:

rpm -qf 系统文件名(注意路径)

  • 查询软件包的依赖性(查询得到的结果意义不大):

rpm -qR 包名(查询已安装包的依赖性)

rpm -qRp 全包名(查询安装包的依赖性)

  • 校验命令

rpm -V 包名

RPM包中文件提取:

rpm2cpio 包全名|cpio -idv .文件绝对路径

(eg:rpm2cpio /mnt/cdrom/Packages/coreutils-8.22-18.el7.x86_64|cpio -idv ./bin/ls )

(rpm2cpio将coreutils-8.22-18.el7.x86_64转化成cpio,cpio从coreutils-8.22-18.el7.x86_64中提取/bin/ls到当前目录下)

2.3 yum安装方法

注:redhat的yum在线安装需要付费(centos免费)

2.3.1在线安装

Yum源文件:vi /etc/yum.repos.d/CentOS-Base-Aliyun.repo

[base](容器名称)

name=CentOS-$releasever(容器说明)

enabled=1(此容器是否生效,1为生效,0为不生效,默认为1)

failovermethod=priority

# mirrorlist= (镜像站点,可以注释)

baseurl=http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/(yum源服务器地址)

gpgcheck=1(1是指rpm的数字证书生效)

gpgkey=http://mirrors.cloud.aliyuncs.com/centos/RPM-GPG-KEY-CentOS-7(数字证书的公钥文件保存位置,不用修改)

2.3.2 光盘搭建yum源(在不能上网时,可以使用此方法)

-挂载光盘

mount -o loop /mnt/*/1.iso /mnt/cdrom

-使网络yum源失效(修改yum源文件后缀名,使用其失效)

mv CentOS-Base-Aliyun.repo CentOS-Base-Aliyun.repo.bak

-使光盘yum源生效

将CentOS-Media.repo(如果没有,可以参照CentOS-Base-Aliyun.repo创建)中的enabled=1,baseurl=file://mnt/cdrom

-取消挂载

umount /mnt/cdrom

2.3.3 yum管理命令

查询命令:

yum list(查询所有可用软件包列表)

yum search 关键字(搜索服务器上所有和关键字相关的包)

安装命令:yum -y install 包名(-y自动回答yes)

(eg:yum -y install gcc 编译C语言的工具,必须使用rpm包,不能使用源码包)

升级命令:yum -y update 包名(yum -y update 表示升级linux的所有软件,升级命令慎用)

卸载命令:yum -y remove 包名(服务器使用最小安装,用什么软件安装什么,尽量不卸载)

2.3.4 yum组管理命令

yum grouplist (列出所有可能可用的软件组列表)

yum groupinstall 软件组名 (组名可以由grouplist查询出来)

yum grounpremove 软件组名(卸载指定软件组)

2.4 源码包安装

2.4.1 与rpm包区别

-安装位置:

rpm安装不建议指定位置

源码包的要安装在指定位置当中,一般是/usr/local/软件名/

-服务启动:

rpm包安装的服务可以使用系统服务管理命令(service)来管理,例如rpm包安装的apache的启动方法是:/etc/rc.d/init.d/httpd start或service httpd start

源码安装包只能用绝对路径进行服务的管理,如/usr/local/apache2/bin/apachectl start

2.4.2 安装源码包前要确定已安装gcc:rpm -qa|grep gcc

2.4.3 注意事项

-源代码保存位置:/usr/local/src/

-软件安装位置:/usr/local/

-如何确定安装过程报错:安装过程停止并出现error、warning或no的提示

2.4.4 源码包安装步骤(安装命令及启动方法可以查看INSTALL文件)

-进入解压后的源码包目录

-执行 ./configure 软件配置与检 查,--help查看有哪些选项,--prefix=指定软件安装目录

-执行 make 编译(如果有报错,可以执行make clean 清除编译生成的缓存文件,重新再来)

-执行 make install 编译安装(如何这一步报错,make clean 清除编译生成的缓存文件,同时也要删除安装目录中的文件)

2.4.5 源码包的卸载

不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件

2.4.6 环境变量配置

vim /etc/profile 将软件的启动文件配置到path变量下,就可以在任何目录下直接调用程序

(也可以在/usr/bin下建立一个软连接 ln -s 原文件(文件真正所在的地方) 目标文件(快捷方式所在的地方),指向软件的启动文件,必须为绝对路径,这样也可以在任何目录下直接调用程序,

eg :ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx)

2.5 脚本安装包安装(以安装nginx为例)

2.5.1 参考网站:

lnmp.org(LNMP(Nginx/MySQL/PHP)、LNMPA(Nginx/MySQL/PHP/Apache)、LAMP(Apache/MySQL/PHP)生产环境的Shell程序)

2.5.2 安装前准备:

-关闭冲突的rpm软件,以及脚本安装会附带安装的软件(如果之前已安装过就关闭)

-保证yum源正常:yum list

-关闭SELinux和防火墙:

SELinux:vi /etc/selinux/config 将SELINUX=disabled

防火墙:

-下载安装脚本:https://lnmp.org/download.html;https://lnmp.org/install.html

2.5.3 安装:

./install.sh lnmp

-默认安装lnmp可不写,如需要安装LNMPA或LAMP,将./install.sh 后面的参数替换为lnmpa或lamp即可。如需更改网站和数据库目录先修改安装包目录下的 lnmp.conf 文件。

2.6 如何选择rpm包还是源码包

如果该软件是给大量用户使用的,就安装源码包,执行效率高;如果是底层的软件,使用者少,例如gdcc,就选择rpm包,安装更简单。

三、lunix权限管理

3.1 文件基本权限

3.1.1 权限解读

-rwxrr-xr-x:总共有10位

第一位:表示文件类型(文件类型:-:文件;d:目录;l:软链接文件)

第二三四位:表示u所有者(文件操作:r(对应数字为4):读;w(对应数字为2):写;x(对应数字为1):执行)

第五六七位:表示g所属组

第八九十位:表示o其他人

3.1.2 修改权限命令

chmod [选项] 模式 文件名 eg:chmod u+x 234.sv;eg:chmod 755 234.sv(rwxr-xr-x)

-选项 -R:表示递归

-模式

(ugoa)(+-=)(rwx)

或者

mode=421(常用的就三种:777(最高权限),644(对于文件,所有者有读写,所属组、其他人只读,),755(对于目录文件,所有者有读写进入,所属组、其他人读进入))

3.1.3 权限对文件的作用

-r:读取文件内容(cat more heah tail)

-w:编辑、新增、修改文件内容(vi echo)但是不包括删除文件(如果要删除文件,必须对文件的上一级目录拥有w权限)

-x:可执行

3.1.4 权限对目录的作用

-r:可以查询目录下件名(ls)

-w:具有修改目录结构的权限。如新建文件和目录,删除目录下的文件和目录,重命名此目录下文件和目录,剪切

(touch rm mv cp)

-x:可以进入目录(cd)

3.1.5 其他权限命令

chown 用户名 文件名(修改文件所有者)

chown 用户名:所属组 文件名(同时修改文件所有者及所属组)

chgrp 组名 文件名(修改文件所属组)

3.2 默认权限

3.2.1 umask 0022 设置默认权限,临时修改;永久修改:vi /etc/profile

3.2.2 文件默认权限

文件的默认权限就为666-022=644(但不是单纯的数字相减,而是先转换成字母再相减)

3.2.3 目录的默认权限

文件的默认权限就为777-022=755(但不是单纯的数字相减,而是先转换成字母再相减)

3.3 ACL权限(用于解决用户身份不够用的问题)

3.3.1 查看分区是否开启acl

dumpe2fs -h /dev/vda1 (如果有Default mount options:user_xattr acl,说明已开启)

(/dev/vda1 是根目录的分区,可以通过df 命令查看)

3.3.2 开启acl

-临时方法:mount -o remount,acl /

-永久方法:

修改文件 vi /etc/fstab

UUID=cf632ca5-4a1a-4da4-9deb-cb472d5b8a83 / ext4 defaults,acl 1 1(defaults后面加上,acl)

重新挂载 mount -o remount /

3.3.3 查看与设定ACL权限

查看ACL权限命令 getfacl 文件名

设定ACL权限命令 setfacl 选项 文件名

-m 设定ACL权限(eg:setfacl -m u:laowang:rx /test 给用户laowang设置对/test的操作权限为rx;setfacl -m g:acl:rx /test给用户组acl对/test的操作权限为rx)

-x 删除指定的ACL权限(eg:setfacl -x u:laowang:rx /test 删除用户laowang对/test的操作权限;setfacl -x g:acl:rx /test 删除用户组acl对/test的操作权限)

-b 删除所有的ACL权限(eg:setfacl -b /test)

-d 设定默认的ACL权限--只针对目录(eg:setfacl -m d:u:laowang:rx -R /test 给用户laowang设置对/test的操作权限为rx,同时用户laowang对/test下的目录与文件都有rx权限,及对后来新增的子文件或目录具有同样的权限)

-k 删除默认ACL权限(eg:setfacl -k /test)

-R 递归设定ACL权限--只针对目录(eg:setfacl -m u:laowang:rx -R /test 给用户laowang设置对/test的操作权限为rx,同时用户laowang对/test下的目录与文件都有rx权限,但对于后来新增的子文件或目录不具有权限)

设置最大权限命令 (setfacl -m m:rx /test 对/test的设置最大操作权限为rx,所有非所有者的权限不能大于它)

3.4 sudo权限(用户操作系统命令的权限)

3.4.1 简介

root把本来只能超级用户执行的命令赋予普通用户执行,sudo的操作对象是系统命令

3.4.2 sudo使用

-进入 vi /etc/sudoers ,快捷命令为visudo

-在文件末添加的开放给用户或用户组的命令操作:

(eg:user1 ALL=(ALL) /usr/sbin/shutdown -r now --给用户user1添加重启服务器的权限

user1 ALL= /usr/sbin/useradd --给用户user1添加新增用户的权限

user1 ALL= /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd "" ,!/usr/bin/passwd root --给用户user1添加设置普通用户密码的权限

%user_other ALL= /usr/sbin/useradd --给用户组other_user添加新增用户的权限

%user_other ALL= /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd "" ,!/usr/bin/passwd root --给用户组other_user添加设置普通用户密码的权限

)

-普通用户可以通过 sudo -l 查询其拥有的sudo权限

-使用sudo执行命令 sudo 命令

3.5 文件特殊权限

3.5.1 SetUID (给普通用户增强权限)

命令 chmod 4755 文件名 或者 chmod u+s 文件名(这样只要用户对文件有x权限就可以执行该文件,而且执行过程中,会自动使用文件的所有者身份去执行)

例子 /usr/bin/passwd 它的权限是rwsr-xr-x root root (就是说虽然它是系统命令,但因为它设了s权限,所有用户都有权限去执行它来进行修改自身密码)

3.5.2 SetGID (给普通用户增强权限)

命令 chmod 2755 文件名 或者 chmod g+s 文件名(这样只要用户对文件有x权限就可以执行该文件,而且执行过程中,会自动使用文件的所属组身份去执行)

例子 /usr/bin/locate 它的权限是rwx--s--x root slocate(就是说虽然它是系统命令,但因为它设了s权限,所有用户都有权限去查询)

如果对目录赋予了2777权限,任何用户在这个目录下创建的文件的所属组都与该目录的所属组一致

3.5.3 Sticky BIT (给普通用户限制权限,除了root外,用户只能删除自己建立的文件)

命令 chmod 1777 文件名 或者 chmod o+t 目录(这样只有用户对文件有w与x权限就才可以在目录下创建文件,而且执行过程中,会自动使用文件的所属组身份去执行)

例子 /tmp 它的权限是rwxrwxrwxt root root

3.6 不可改变位权限

3.6.1 命令 chattr -i/-a 文件名(相当于锁定文件,i:锁定所有的变化,a:锁定修改与删除,但可以新增)

3.6.2 查看文件系统属性 lsattr -a/-d 文件名

四、linux用户操作

4.1 查询用户所有用户 cat /etc/passwd

4.2 查询用户所有用户组 cat /etc/group

4.3 查询有用的用户: cat /etc/passwd|grep -v nologin|grep -v halt|grep -v shutdown|awk -F":" '{ print $1"|"$3"|"$4 }'|more

4.4 查询当前用户:whoami

4.5 切换用户:su - [user]或su [user](切换到其他用户,但是不切换环境变量,su - [user]则是完整的切换到新的用户环境)

4.6 操作用户组:

groupadd 注:添加用户组;

groupdel 注:删除用户组;

groupmod 注:修改用户组信息

gpasswd -a 用户名 用户组名 注:将用户添加到用户组中

4.7 操作用户:

useradd testuser 创建用户testuser(说明:新创建的用户会在/home下创建一个用户目录testuser)

useradd -d /usr/anquing -m anquing 创建用户anquing(说明:新创建的用户会在/usr/下创建一个用户目录anquing)

useradd -g developers testuser 创建用户testuser同时设置主用户组为developers

passwd testuser 给已创建的用户testuser设置密码

usermod --help 修改用户这个命令的相关参数

usermod -g developers testuser 修改用户的用户组为developers

usermod -d /tmp test (修改用户目录,test为你的用户名)

userdel testuser 删除用户testuser

rm -rf testuser 删除用户testuser所在目录

4.8 用户信息文件:vi /etc/passwd

4.9 改为shell客户端语言命令:LANG=zh_CN.utf8(中文),LANG=en_US(英文)(只对本窗口有效)

=================================以下是安装实例====================================================

五、jdk的安装:rpm安装

-下载jdk的rpm安装包:http://www.oracle.com/technetwork/java/javase/downloads/index.html

-给安装包赋予运行权限 chmod 755 jdk-7u4-linux-i586.rpm

-安装该rpm安装包 rpm -ivh jdk-7u4-linux-i586.rpm

*jdk8无需要自己配置path(因为安装时自动在/usr/bin下生成了软连接),jdk7要自己配置path

六、tomcat安装:绿色版

6.1 配置环境变量

6.2 配置UTF-8字符集 server.xml

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"

URIEncoding="UTF-8" ></Connector>

6.3 启动:进入bin目录 执行./startup.sh

七、maven安装:绿色版

7.1 配置环境变量

7.2 修改仓库 settings.xml

<mirror>

<id>alimaven</id>

<name>aliyun maven</name>

<url>http://maven.aliyun.com/nexus/content/groups/public/</url>

<mirrorOf>central</mirrorOf>

</mirror>

7.3 配置环境变量

vim /etc/profile

export M2_HOME=/data/developer/maven

export PATH=$PATH:$M2_HOME/bin

八、ftp服务搭建(vsftpd)

8.1 windows可以安装ftpserver绿色版

8.2 yum安装:yum -y install vsftpd (配置文件在/etc/vsftpd)

8.3 创建虚拟用户

useradd ftpuser -d /ftpfile/ -s /sbin/nologin

chown -R ftpuser:ftpuser /ftpfile

passwd ftpuser

8.4 配置

8.4.1 添加虚拟用户到配置文件中

cd /etc/vsftpd

vim chroot_list 添加虚拟用户名(ftpuser)

:wq

8.4.2 关闭SELinux:vi /etc/selinux/config 将SELINUX=disabled(也可以执行命令setenforce 0)

(如果还出现550拒绝访问,请执行:setsebool -P ftp_home_dir 1,再重启一下服务器)

8.4.3 配置vsftpd.conf

vim /etc/vsftpd/vsftpd.conf

# (是否允许查看上一级目录,默认为NO)

chroot_local_user=NO

chroot_list_enable=YES

# (default follows)

chroot_list_file=/etc/vsftpd/chroot_list

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

# (被动模式,默认为YES)

pasv_enable=YES

pasv_min_port=61001

pasv_max_port=62000

local_root=/ftpfile

anon_root=/ftpfile

use_localtime=YES

8.4.3 防火墙开放端口

#vsftpd

-A INPUT -p tcp --dport 61001:62000 -j ACCEPT

-A OUTPUT -p tcp --dport 61001:62000 -j ACCEPT

-A INPUT -p tcp --dport 20 -j ACCEPT

-A OUTPUT -p tcp --dport 20 -j ACCEPT

-A INPUT -p tcp --dport 21 -j ACCEPT

-A OUTPUT -p tcp --dport 21 -j ACCEPT

8.4.5 常用的管理命令

启动 service vsftpd start

关闭 service vsftpd stop

重启 service vsftpd restart

九、nginx服务搭建(源码安装)

9.1 安装

9.1.1 安装依赖

yum -y install gcc-c++

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

9.1.2 源码包下载 wget https://nginx.org/download/nginx-1.12.1.tar.gz

9.1.3 解压安装(使用默认配置即可)

9.2 常用命令:

测试配置文件是否正确:./nginx -t

启动:nginx

停止命令:./nginx -s stop 或者 ./nginx -s quit

重启命令:./nginx -s reload

查看进程命令:ps -ef|grep nginx

平滑重启:kill -HUP PID

9.3 虚拟域配置

编辑nginx配置文件

-vim nginx.conf

-在http {}内添加include vhost/*.conf;

-在nginx.conf同级目录下mkdir vhost,并在vhost下创建域名转发配置文件.conf

-linux host修改:vim /etc/hosts 添加ip 域名

-server{}下 autoindex on;时,就会显示目录树,通常是不打开。使用场景:资料下载网站

9.4 设置目录浏览及中文乱码问题解决,在server段加上:

autoindex on;

charset utf-8,gbk;

十、mysql安装(yum安装)

10.1 安装

yum -y install mysql-server

rpm -qa|grep mysql 可查看是否已经安装

vi /etc/my.cnf 默认配置文件

10.2 字符集配置

vi /etc/my.cnf

在[mysqld]节点下添加:(尝试了很多次,在centos7中,5.6添加以下配置会无法启动)

default-character-set=utf8

character-set-server=utf8

10.3 自启动配置

chkconfig mysqld on

chkconfig --list mysqld(如果2-5位启用on状态即OK)

centos7 使用systemctl,参考网址:http://blog.csdn.net/cds86333774/article/details/51165361

10.4 修改用户root密码

-登录 mysql -u root -p

-select user,host,password from mysql.user;

-set password for root@localhost=password('yourpassword');

- use mysql;

-update user set password=password('123456') where user='root';//

-exit;

10.5 删除匿名用户

-select user,host,password from mysql.user;

-delete from mysql.user where user='';

-select user,host,password from mysql.user;

-flush privileges;

10.6 插入mysql新用户(如果要使用该用户通过外网IP连接,将localhost改为%)

正确的添加用户方法(新创建用户没有任何权限):

-GRANT USAGE ON *.* TO 'user01'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;

-flush privileges;

10.7 创建新的database

create database `mmall` default character set utf8 collate utf8_general_ci;

10.8 本地用户yourusername赋予所有权限(yourpassword为对应yourusername的密码)

-grant all privileges on mmall.* to yourusername@'localhost' identified by 'yourpassword';

-grant select,insert,update,delete on mmall.* to yourusername@'localhost' identified by 'yourpassword';

-flush privileges;

10.9 给账号yourusername开通外网所有权限

-grant all privileges on mmall.* to yourusername@'%' identified by 'yourpassword';

-flush privileges;

-show grants for root@'localhost';

10.10 常用命令

service mysqld start

service mysqld stop

service mysqld restart

10.11 命令行导入数据(假设database为test)

进入database: use test

导入:source /../test.sql

十一、git安装

(参考网址:https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git)

11.1 安装(源码安装)

11.1.1 下载 wget https://github.com/git/git/archive/v2.15.0-rc1.tar.gz

11.1.2 安装依赖

yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel cpio perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

tar -zxf git-1.7.2.2.tar.gz

cd git-1.7.2.2

make prefix=/usr/local/git all

make prefix=/usr/local/git install

11.1.3 将git配置到path中

11.2 安装(yum安装)

yum install git

11.3 git基础配置

11.3.1 配置用户名(提交时会引用,没用的话,在github或码云注册一个)

git config --global user.name "anquing"

11.3.2 配置邮箱(提交时会引用)

git config --global user.email "596404584@qq.com"

11.3.3 其它配置

#要是没装KDiff3就不用设这一行(KDiff3是一款用来对文件或目录进行比较和合并的工具)

git config --global merge.tool "kdiff3"

#让Git不要管Windows/Unix换行符转换的事

git config --global core.autocrlf false

11.3.4 编码配置

#避免git gui中的中文乱码

git config --global gui.encoding utf-8

#避免git status显示的中文文件名乱码

git config --global core.quotepath off

#Windows上还需要配置

git config --global core.ignorecase false

11.3.5 git ssh key pair 配置

ssh-keygen -t rsa -C "596404584@qq.com"

一路回车

ssh-add ~/.ssh/id_rsa

ssh-add -l 查看新的rsa

cat ~/.ssh/id_rsa.pub(复制公钥到ithub或码云上)

*注意:如果执行ssh-add时出现Could not open a connection to your authentication agent错误,先执行eval `ssh-agent`

11.3.6 git验证

git --version

11.4 git常用命令

切换分支:git checkout 分支名

拉取:git pull

提交:git push

11.5 将新项目提交到码云

11.5.1、在码云的个人主页,点击来新建项目

11.5.2、在要提交的项目文件夹上右键,选择Git Bash Here

-git init ----------初始化git仓库

-git remote add origin 你的项目地址 //注:项目地址形式为:http://git.oschina.net/xxx/xxx.git或者 git@git.oschina.net:xxx/xxx.git 用来连接远程码云

11.5.3、开始第一次上传你的项目

-git add . --将项目中的所有文件上传

-git commit -m '对上传文件的注释'

-git push origin master --正式上传至码云中

*若上传有问题,可以试试 git push origin master -f 表示舍弃线上的文件,强制推送

-git push origin thymeleaf_demo 将是本地分支thymeleaf_demo推送到远程分支thymeleaf_demo,如果不存在就会自动创建

11.5.4、回滚到某次提交的版本

-git reset --hard 版本编号 //将本地还原到指定版本

-git push origin test -f //假设分支为test,将本地的分支强制提交到远程中,-f会将本地的文件完成覆盖运程的文件

*idea中直接push就会在远程自动创建与本地分支名一致的远程分支

十二、redis安装(源码)

1、下载http://redis.io/download

2、解压

3、复制到要安装的目录

4、make

5、make install

6、修改redis.conf

6.1 daemonize属性改为yes(表明需要在后台运行)

6.2 bind 127.0.0.1(可以通过修改成0.0.0.0,允许任何机器访问)

6.3 requestpass 密码

7、启动 ./redis-server /..(以安装的目录为准)/redis.conf(eg:./redis-server /data/developer/redis-3.2.6/redis.conf

)

8、连接:./redis-cli(如果设置了密码,连接成功后,需要执行命令:auth 密码)

9、安装到系统服务管理中:执行 utils下的install_server.sh

10、检查是否安装到系统服务中:chkconfig --list |grep redis

然后就可以通过系统服务命令操作redis:eg:service redis_6379(服务名) status (如果为centos7,系统命令为systemctl status redis_6379)

redis_6379系统服务命令让所在的文件:/etc/init.d/redis_6379

*redis.conf在安装目录,redis-server在src目录下

十三、防火墙

13.1 防火墙配置

注意:如果是CentOS 7或RHEL 7或Fedora系统,要还原成传统的管理方式,依次执行以下命令

systemctl stop firewalld

systemctl mask firewalld

yum install iptables-services

systemctl enable iptables --允许开机启动

--常用的管理命令(CentOS 7)

systemctl stop iptables

systemctl start iptables

systemctl restart iptables

systemctl reload iptables

systemctl status iptables --查看状态

systemctl enable iptables.service #设置防火墙开机启动

systemctl disable iptables.service #禁止防火墙开机启动

#service方式(CentOS 6)

service iptables stop

service iptables start

service iptables restart

service iptables reload

service iptables status --查看状态

iptables -L --查看防火墙列表

13.2 将要开放的端口添加到防火墙中

*初次使用时,没有iptables文件,只需要使用命令添加一条规则iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT,然后service iptables save

-vim /etc/sysconfig/iptables

-添加(一定要添加在默认拒绝规则之前,因为执行顺序是从上到下)

#vsftpd

-A INPUT -p tcp --dport 61001:62000 -j ACCEPT

-A OUTPUT -p tcp --dport 61001:62000 -j ACCEPT

-A INPUT -p tcp --dport 20 -j ACCEPT

-A OUTPUT -p tcp --dport 20 -j ACCEPT

-A INPUT -p tcp --dport 21 -j ACCEPT

-A OUTPUT -p tcp --dport 21 -j ACCEPT

-重启 systemctl restart iptables

13.3 默认规则说明

#允许访问其他主机

-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#允许任何机器ping通

-A INPUT -p icmp -j ACCEPT

#允许本机telnet本机

-A INPUT -i lo -j ACCEPT

#允许其他机器通过22端口运程连接linux

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

#其他规则就加在这里

#nginx

-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT

#mysql

-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

#拦截

-A INPUT -j REJECT--reject-with icmp-host-prohibited

-A FORWARD -jREJECT --reject-with icmp-host-prohibited

十四、centos 7 firewall的使用

1、firewalld的基本使用

启动: systemctl start firewalld

查看状态: systemctl status firewalld

停止: systemctl disable firewalld

禁用: systemctl stop firewalld

2.systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

查看启动失败的服务列表:systemctl --failed

3.配置firewalld-cmd

查看版本: firewall-cmd --version

查看帮助: firewall-cmd --help

显示状态: firewall-cmd --state

查看所有打开的端口: firewall-cmd --zone=public --list-ports

更新防火墙规则: firewall-cmd --reload

查看区域信息: firewall-cmd --get-active-zones

查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0

拒绝所有包:firewall-cmd --panic-on

取消拒绝状态: firewall-cmd --panic-off

查看是否拒绝: firewall-cmd --query-panic

那怎么开启一个端口呢

添加

firewall-cmd --zone=public --add-port=80/tcp --permanent (--permanent永久生效,没有此参数重启后失效)

重新载入

firewall-cmd --reload

查看

firewall-cmd --zone= public --query-port=80/tcp

删除

firewall-cmd --zone= public --remove-port=80/tcp --permanent