Linux 高级命令
一.用户管理
计算资源:(一切皆文件)
权限:定义资源或服务的访问能力,称之为权限
定义某一个特定的人资源或者服务的访问能力, 用户
定义一类用户具有访问某个资源或服务的能力. 用户组(存放一些列用户的容器),同时用户组还拥有具有访问某个资源的权限
定义一个资源的权限:
1. 用户具有该资源的权限(文件所有者,属主)
2. 用户组具有该资源的权限(属组)
3. 其他用户(既不是属主,也不是属组)
文件权限:
r 可读 可以执行类似cat命令的操作
w 可写 可以编辑或者删除此文件
x 可执行
1.创建用户
创建用户 :useradd [用户名]
创建用户并分配一个组:useradd -G [组名] [用户名]
查看系统用户:cat /etc/passwd
1 用户名
2 用户的密码,用x替代
3 用户的uid,一般情况下root为0,1-499默认为系统账号,有的更大些到1000,500-65535为用户的可登录账号,有的系统从1000开始。
4 用户的gid,linux的用户都会有两个ID,一个是用户uid,一个是用户组id,在我们登录的时候,输入用户名和密码,
其实会先到/etc/passwd查看是否有你输入的账号或者用户名,有的话将该账号与对应的UID和GID(在/etc/group中)读出来。
然后读出主文件夹与shell的设置,然后再去检验密码是否正确,正确的话正常登录。
5 用户的账号说明解释
6 用户的家目录文件夹
7 用户使用的shell,如果换成/sbin/nologin/就是默认没有登录环境的。
2.查看系统用户
查看系统用户组:cat /etc/group
3.修改用户组属性
usermod -G [组名] [用户名]
4.删除用户
删除用户:
-f:强制删除用户,即使用户已登录
-r:删除与用户相关的所有文件。
5.切换用户(常用)
passwd 用户名
切换用户: su 用户名
二.文件基本权限
1.文件权限解释(常用)
-rw-r--r--
- 文件类型(- 文件 d 目录 I 软链接文件)
rw- r-- r--
u所有者 g所属组 o其他人
r读 w写 x执行
-rw-r--r--. 1 root root 12288 Aug 22 2019 aliases.db
文件类型 所有者读写权限 所属组读写权限 其他人读写权限
- rw- r-- r--.
硬链接次数 所属用户 所属用户组 文件大小
1 root root 12288
文件修改时间 文件名
Aug 22 2019 aliases.db
2.修改权限(常用)
chmod [选项] 模式 文件名
选项
-R 递归
模式
[u g o a] [+-=] [rwx]
[mode=421]
修改权限的方式:
chmod u+x 文件
#给当前用户添加指定文件的x执行权限
chmod g+w,o+w 文件
#给该文件用户组合其他人添加指定文件的w写的权限
chmod a=rwx 文件
#给该文件的当前用户,当前组,其他人 添加rwx可读可写可执行的权限
3.权限数字表示(常用)
权限的数字表示
r 4
w 2
x 1
111--->7 rwx
110--->6 rw-
100--->4 r--
示例:
rwxr-xr-x
7 5 5
chmod 755 文件
4.sudo权限
root把本来只能超级用户执行的命令赋予普通用户执行.
sudo的操作对象是系统命令
#实际修改的是/etc/sudoers文件
root ALL=(ALL) ALL
#用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径)
%wheel ALL=(ALL) ALL
#%组名 被管理注解的地址=(可使用身份) 授权命令(绝对路径)
三.系统服务管理
1.systemctl命令
systemctl是CentOS7的服务管理工具中主要的工具
启动服务:systemctl start <服务名>
关闭服务:systemctl stop <服务名>
重启服务:systemctl restart <服务名>
查看服务状态:systemctl status <服务名>
添加开机启动项:systemctl enable <服务名>
禁止开机启动项:systemctl disable <服务名>
查看开机启动项:systemctl list-unit-files
2.进程查看
用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps -ef 显示出的结果:
1.UID 用户ID
2.PID 进程ID
3.PPID 父进程ID
4.C CPU占用率
5.STIME 开始时间
6.TTY 开始此进程的TTY----终端设备
7.TIME 此进程运行的总时间
8.CMD 命令名
3.杀死进程(常用)
kill -9 pid(进程id)
四.网络管理
网络的基本概念
1)ip地址:在网络通信中主机的标识符(好比手机号码)
2)mac地址:主机的物理网卡的唯一标识符(好比身份证号码)
3)子网掩码:用于区分主机的IP地址中的网络地址和主机地址,并由此确定该主机的IP地址的网段
4)网关:就是一个网络中的主机连接到另一个网络的主机的关口
5)DNS:域名解析服务器,把域名解析成对应的IP地址
DNS服务器有2种,一种叫本地DNS服务,一种远程
域名解析步骤:
1.用户在浏览器中输入www.baidu.com之后,浏览器先从本地hosts文件(本地DNS服务器)中查找www.baidu.com这个域名对应ip
2.如果能找到直接通过这个ip访问(发起请求)
3.如果找不到,沿着网线找最近的的远程的DNS服务,然后解析DNS服务器缓存域名ip转换表,得到ip此时可以通过这个ip访问
域名解析步骤:
演示将域名写在本地
1>修改地方
2>修改内容
3>演示结果
2.fg-eth解释
文件 /etc/sysconfig/network-scripts/ifcfg-eth0在/etc/sysconfig/network-script在这个目录下面,
存放的是网络接口(网卡)的脚本文件(控制文件),ifcfg-eth0是默认的第一个网络接口,如果机器中有多网络接口,
那么名字就将依此类推ifcfg-eth1,ifcfg-eth2,ifcfg-eth3......(这里面的文件是相当重要的,涉及到网络能否正常工作)。
TYPE=Ethernet #网卡类型
DEVICE=eth0 #网卡接口名称
ONBOOT=yes #系统启动时是否自动加载
BOOTPROTO=static #启用地址协议 --static:静态协议 --bootp协议 --dhcp协议
IPADDR=192.168.1.11 #网卡IP地址
NETMASK=255.255.255.0 #网卡网络地址
GATEWAY=192.168.1.1 #网卡网关地址
DNS1=8.8.8.8 #网卡DNS地址
BROADCAST=192.168.1.255 #网卡广播地址
查看ip:
ip addr
------------------------------------
TYPE="Ethernet"
BOOTPROTO="static"
IPADDR=192.168.1.11
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
BROADCAST=192.168.1.255
ONBOOT="yes"
最后一个操作:
重启network服务
systemctl restart network
ip addr 如果没有显示改动 重启虚拟centos电脑
3.防火墙
centos7的防火墙程序服务名为:firewalld
防火墙配置命令:firewall-cmd
防火墙帮助:
fireweall-cmd --help
查看防火墙状态:
firewall-cmd --state
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
开启端口:
firewall-cmd --zone=public --add-port=端口号/tcp --permanent(--permanent参数为永久生效,不加则重启后失效)
例如:firewall-cmd --zone=public --add-port=3306/tcp --permanent(记住开启后需要更新防火墙才生效)
更新防火墙规则:
firewall-cmd --reload
删除端口:
firewall-cmd --zone=public --remove-port=端口号/tcp --permanent
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
五.软件的安装
1.rpm
rpm 常用命令
安装一个包
# rpm -ivh <包名>
rpm -ivh --nodeps <包名> : 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。
--force 即使覆盖属于其它包的文件也强迫安装
查询一个包是否被安装
# rpm -q <软件名>
得到被安装的包的信息
# rpm -qi < 软件名>
列出该包中有哪些文件
# rpm -ql < 软件名>
列出服务器上的一个文件或目录属于哪一个RPM包
#rpm -qf <文件或目录名>
列出所有被安装的rpm package
# rpm -qa
卸载一个包
# rpm -e <软件名>
2.yum
1 配置一个自定义的仓库地址
/etc/yum.repos.d
local.repo
2 安装命令
yum install
3 查看软件包
yum list |grep mysql
yum list installed
4 卸载软件包
yum remove
yum install wget -y
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
#更新系统软件,不执行
yum -y update
六项目部署
1.jdk的安装
1:将jdk拉入linux路径: /usr/local/software
2:将jdk解压到指定的路径
cd /usr/local/software
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local
3:给解压后的文件目录改过好操作的名字, 可以不改
mv jdk1.8.0_161 jdk1.8
4:备份配置环境变量文件
注意,设置前先备份,养成习惯
cp /etc/profile /etc/profile_bak
5:修改配置环境变量文件
vi /etc/profile
在随便空白地方输入:
export JAVA_HOME=/usr/local/jdk1.8 #设置java_home
export PATH=$JAVA_HOME/bin:$PATH #设置环境变量, 跟window区别,是 : 分隔的
大小写必须一致
6:重写加载环境变量
source /etc/profile
7:测试
java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
2.tomcat的安装
1:将tomcat安装包拉入linux路径: /usr/local/software
2:将tomcat解压到指定的路径
cd /usr/local/software
tar -zxvf apache-tomcat-7.0.78.tar.gz -C /usr/local
3:切换到tomcat的 bin目录
cd /usr/local/apache-tomcat-7.0.78/bin
4:执行tomcat启动命令
./startup.sh #注意有点.的
5:此时因为防火墙没有开辟8080端口,需要开通, 并重启
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
6:访问测试tomcat是否启动
http://192.168.168.131:8080/ #注意: 192.168.168.131 这个是自己的虚拟主机的ip
-----------------------------------------------------------------------------------------
7:观看tomcat运行日志
cd /usr/local/apache-tomcat-7.0.78/logs
tail -f catalina.out #查看新增日志
8:选中SecureCRT的连接会话拷贝一份
cd /usr/local/apache-tomcat-7.0.78/bin
./startup.sh
9:切换回到刚刚查看日志命令,可以看到日志打印
10:tomcat 关闭
方式1:
cd /usr/local/apache-tomcat-7.0.78/bin
./shutdown.sh
方式2:
ps -ef | grep java #找到进程id
kill 进程id
3.mysql数据库的安装
安装mysql5.7
1、先把postfix 和mariadb-libs卸载掉,不然的会有依赖包冲突:
[root@wolfcode]# rpm -e postfix mariadb-libs
2、安装mysql的依赖net-tools和 perl
yum -y install net-tools perl
3、安装mysql-common包:
[root@wolfcode]# rpm -ivh mysql-community-common-5.7.22-1.el7.x86_64.rpm
4、安装mysql-libs包:
[root@wolfcode]# rpm -ivh mysql-community-libs-5.7.22-1.el7.x86_64.rpm
5、安装mysql-client包;
[root@wolfcode]# rpm -ivh mysql-community-client-5.7.22-1.el7.x86_64.rpm
6、安装mysql-server包
[root@wolfcode]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
5、设置开机启动:
[root@wolfcode]# systemctl enable mysqld
6、启动MySql服务
[root@wolfcode]# systemctl start mysqld
7、由于MySQL5.7安装好后会给root用户分配一个临时密码,所以我们先查看临时密码
[root@wolfcode]# grep 'temporary password' /var/log/mysqld.log
2018-06-01T19:40:08.341478Z 1 [Note] A temporary password is generated for root@localhost: Ct<pX.k7S(=w
8、使用临时密码登录
[root@wolfcode]# mysql -u root -p
输入密码:Ct<pX.k7S(=w
9、设置root的密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED BY 'Wolfcode_2019';
mysql> exit
10、用新密码登陆
[root@wolfcode]# mysql -u root -p
输入密码:Wolfcode_2019
11、开放远程登录权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Wolfcode_2019' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
12、开放mysql的3306端口
[root@wolfcode]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@wolfcode]# firewall-cmd --reload
如果出现乱码:
在链接地址栏后添加useUnicode=true&characterEncoding=utf-8
4.redis的安装
最新稳定版: https://redis.io/download 官方提供的
1:将redis安装包拉入linux路径: /usr/local/software
2:将redis解压到指定的路径
cd /usr/local/software
tar -zxvf redis-3.2.9.tar.gz -C /usr/local
3:进入redis主目录
cd /usr/local/redis-5.0.5/
4.安装gcc编译器
yum install -y gcc
6:编译redis
cd /usr/local/redis-5.0.5/
make
7:安装redis 服务
cd /usr/local/redis-5.0.5/src
make install
8:修改配置文件redis.conf
vi /usr/local/redis-3.2.9/redis.conf
将redis配置的 : daemonize:后台运行,值为yes | no 默认为no
9:启动redis服务
/usr/local/redis-3.2.9/src/redis-server /usr/local/redis-3.2.9/redis.conf
10:验证启动是否成功:
ps -ef | grep redis #查看是否有redis服务或者查看端口: netstat -tunpl | grep 6379
11:设置远程连接
vi /usr/local/redis-3.2.9/redis.conf
注释掉
#bind 127.0.0.1
改为
bind 0.0.0.0
12:停掉redis, 重新启动
ps -ef | grep redis
kill 进程号
/usr/local/redis-3.2.9/src/redis-server /usr/local/redis-3.2.9/redis.conf
13 : 防火墙开放6379
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload
14:远程连接
firewall-cmd --reload
5.mongodb的安装
1:将mongodb安装包拉入linux路径: /usr/local/software
2:安装mongodb
cd /usr/local/software
rpm -ivh mongodb-org-server-4.0.10-1.el7.x86_64.rpm
3:修改mongodb配置文件满足远程连接
vi /etc/mongod.conf
bindIp: 0.0.0.0 # 0.0.0.0 绑定所有的网卡
4:启动mongodb
systemctl start mongod
5:开放防火墙端口
firewall-cmd --zone=public --add-port=27017/tcp --permanent
firewall-cmd --reload
6:navicat连接