Linux 操作命令 配置 安装软件大全
网络配置
桥接网络
虚拟机和现实中的PC处于同一网段 使用 192.168.0.xxx 255
虚拟机使用VMnet中的虚拟网络,使用的独立的VMnet网卡进行联网操作
NAT模式
虚拟的电脑使用VMnet8和现实电脑进行连接,共享同一个联网配置。
ifconfig #命令查看虚拟机的IP地址 网卡配置
vi #编辑命令
vi /etc/sysconfig/network-scripts/ifcfg-eth0 #编辑eth0文件 配置网卡信息
i / a #进入编辑模式 将ONBOOT=yes 是否启动时激活网卡
esc #退出编辑模式
shift+zz #保存退出
shift+:q! 不保存 :wq! 保存
reboot #重启
halt #关机
ping 192.168.xxx.xxx #查看网络是否通畅 --- 验证eth0网卡是否配置成功
安装SecureCRT 7.0 参考安装文档
注意 : 运行破解文件的时候 右键 使用管理员身份运行。
设置字体:
Options ---> Session Options ---> Emulation 选中
---> Appearance
注意
intel VT-X BIOS界面 --- 注意 : 保存信息,重启电脑。 建议 VMwave
一、Linux 目录结构 文件权限 基础命令
/ #根目录 所有的文件系统设备都存在于根目录之下。
/bin #二进制命令内容 .sh shell脚本 ---> Linux环境中
/etc #存放系统配置文件
/usr #用于存放共享的系统资源
/home #存放用户文件的根目录
/user #/home/user
/root #目录 就是root用户的home目录 超级管理员登录直接访问/root ~
1. 文件所属及权限
cat /etc/group|grep jenkins #jenkins:x:984:
cat /etc/passwd|grep jenkins #jenkins:x:989:984:Jenkins Automation Server:/var/lib/jenkins:/bin/false
groups jenkins #jenkins : jenkins
ls -la
-rw-r--r--. 1 root root 7995 1月 24 18:39 install.log
- 文件 | d 目录
rwx rwx rwx 文件 r读 w写 x执行
前三位 文件的创建者的权限
中间 文件的创建者所属于的组的其他用户的权限 跟他一个组的其他人
最后 非文件创建者的其他组是否可以操作的权限 其他组的用户
1 : 当前文件的链接数
root : 文件创建者
root : 文件所属于用户组 root组
7995 : 字节大小
1月 24 18:39 : 创建时间
install.log : 文件名称
chown #修改文件或目录所有者,所有组命令
chown [-R] 所有者[:]所属组 文件或目录 #例如:chown -R jenkins:jenkins a.txt
chmod #修改文件或目录权限命令 777为最高权限
r --> 4 w --> 2 x --> 1
例如:rwxr-xr-x所有者、所属组和其他人对应权限值为:
所有者 = rwx = 4 2 1 = 7
所属组 = rw- = 4 2 = 6
其他人 = r-x = 4 1 = 5
使用数字设置权限:chmod [-R] 权限值 文件名
使用字母设置权限:chmod [-R] [u,g,o,a][ ,-,=][r,w,x]
说明:[u,g,o,a]
u 所有者身份
g 所有组身份
o 其他人身份
a 所有身份
[+,-,=]
+ 加入某个权限
- 减少某个权限
= 设置权限
[r,w,x]
r 读权限
w 写权限
x 执行权限
2. 常用命令
clear 清空 当前页页面显示清空
ls 显示当前目录下的所有的文件内容
ls -a 显示当前目录中的所有文件(包含 以.隐藏文件) 黑色:文件 蓝色:目录(文件夹)
ls -l 详细信息
ls -R 递归显示指定目录下的文件清单
pwd #显示用户目前的工作目录
cd #切换目录
cd .. #返回上一级目录
cd /bin #存在 / 代表从根目录开始查找,不存/则代表从当前目录开始
touch a.txt #创建文件 如果:a.txt 已经存在 更新创建时间
mkdir 目录名称 #创建目录
mkdir /bin/filename
mkdir -p #创建父级目录和子级目录 注意: / 根目录 别乱加
rm #删除文件 y 开头 确认删除
rm -r #删除目录
rm -rf #强制删除 支持通配符 * 不建议乱用
mv #文件/目录 若目录不存在帮你创建目录
find / -name b.txt #寻找 从根目录开始
cp 文件 目录名称 拷贝文件 #拷贝文件到指定目录,并可以指定新的文件名
cp -R 目录 目录 #将目录和文件内容一起拷贝
more / less #查看文件信息
more 展示部分内容 每一次显示百分比 退出 Ctrl+c
less 展示部分内容 一行一行 退出 : q
cat #将内容全部展示
du 目录 #展示都是目录信息
du -h 目录 #显示目录所占大小 K M G
head / tail 查看部分内容
head -n 数字 文件名称
tail -f 文件名称 #循环读取文件内容 --- 看服务器运行日志
防火墙相关操作
#查看状态
systemctl status firewalld.service
#打开防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#防火墙开机自启
systemctl enable firewalld.service
#禁用防火墙开机启动
systemctl disable firewalld.service
防火墙端口开启命令
#在防火墙开启情况下开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
firewall-cmd --state #查看防火墙状态,是否是running
firewall-cmd --reload #重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones #列出支持的zone
firewall-cmd --get-services #列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp #查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp #临时开放ftp服务
firewall-cmd --add-service=ftp --permanent #永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent #永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent ##永久添加80端口
服务进程相关命令
chkconfig --list 查看开机启动列表
chkconfig --del name #删除
chkconfig --add name #添加
chkconfig iptables off #防火墙开机不启动
service 服务名称 status 、start 、stop 、restart #当前状态 启动 关闭 重启
ps #查看当前控制台中正在运行的服务进程
-aux #系统中所有的运行参数
-a #all所有
-x #包括非控制台中的进程
-u #用户
-ef #进程以及其父进程号
kill 进程号
kill -9 进程号 #守护进程 一般不允许强制关闭
pstree 已树状结构展示
pstree -p 显示其进程号
#检查启动进程
ps -ef | grep fdfs
#检查启动端口
netstat -aopn | grep fdfs
vi、vim 文本编辑
vi 文件名称 ----> 文件的命令模式
i / a ----> 编辑模式
esc ----> 从编辑到文件命令模式
shilt+: ----> 末行命令模式 wq! wq q! q !强制 q退出 w保存
快捷键 shilt+zz == :wq!
dd #删除当前行
ndd n数字 #光标之后的行数
yy #复制
nyy n数字 #行的复制
p #粘贴
:n #跳转至第几行
/字符 #跳转至包含字符的那一行
配置JDK 环境变量
.bash_profile /root 目录中
vi .bash_profile
CLASSPATH=.
JAVA_HOME=/usr/java/jdkxxxx
PATH=$PATH:$JAVA_HOME/bin
#需要去重新加载环境
source .bash_profile
java -version #查看JDK环境
echo命令说明
echo " 输出文本"
echo -n "txt" #输入不换行
echo `ifconfig` #输出命令的执行结果:无格式 注意:是反引号 非单引号
echo " `保存输出格式` " #保存格式
echo -e "abc\t123" #使转义字符生效
二、CentOS8 网络配置
新安装好的centos8默认网卡是没有启动的,安装好后需要先配置网络。在/etc/sysconfig/network-scripts
目录下存放着网卡的配置文件,文件名称是ifcfg- 网卡名称
。
1. 新服务器修改配置文件
设置网络时首先打开配置文件,动态获取ip配置
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 网卡配置文件按默认配置
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=fae65546-f449-4d58-a1bb-1a0bfa57e748
DEVICE=ens33
ONBOOT=no #如果使用dhcp分配ip的话,只需要将这里no改为yes,然后重启网络服务就行
如果需要配置静态ip,则按照以下修改方法修改 PREFIX=24相当于NETMASK=“255.255.255.0”
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static #将dhcp修改为stati表示使用静态ip
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=etho
UUID=fae65546-f449-4d58-a1bb-1a0bfa57e748
DEVICE=etho
ONBOOT=yes #将no改为yes
IPADDR=192.168.71.100 #设置IP地址 --新增
NETMASK=255.255.255.0 #设置子网掩码 --新增
GATEWAY=192.168.71.1 #设置网关 --新增
DNS1=114.114.114.114 #设置dns --新增
重启网络服务
nmcli c reload
2. 克隆服务器网络配置
需要在关机状态下点击该虚拟机的网络适配器–>高级–>MAC地址 生成 重新生成地址并确认
在配置网卡:设置ip地址,更改虚拟主机名称,重启生效
3. 修改网卡名称
这样也可以重置网卡,及重置配置文件
新建连接并删除旧连接
# 查看当前物理网卡
dmesg | grep eth
# 查看当前连接信息
nmcli connection show
# 新增etho连接
nmcli connection add type ethernet con-name eth0 ifname ens33
# 删除旧连接ens33
nmcli connection delete ens160
修改物理网卡名
# 查看配置文件
ls /etc/sysconfig/network-scripts/
# 修改物理网卡名称
sed -i 's/ens33/eth0/' /etc/sysconfig/network-scripts/ifcfg-eth0
修改Linux核心配置
# 备份配置文件
\cp /etc/default/grub /etc/default/grub.bak
# 修改配置文件
sed -i 's/rhgb/net.ifnames=0 &/' /etc/default/grub
# 生成启动文件
grub2-mkconfig -o /boot/grub2/grub.cfg
重启 reboot
三、 软件的安装
rpm安装软件
rpm #命令 RedHat Package Manager --- RedHat软件包管理工具
#RedHat、CentOS...... 行业中一个安装包规范
rpm -i install #安装
-e #卸载
-vh #显示安装进度
-U #升级版本 更新
-qa #展示所有已近安装过的rpm包
# 例如jdk安装
rpm -ivh jdk-7u71-linux-x64.rpm
find / -name java #查看安装
--nodeps --force #忽略软件安装的其他依赖环境强制安装
rpm -ivh --nodeps --force jdk-7u71-linux-x64.rpm
tar包解压安装
#tar包 备份/还原命令
tar -c #创建一个tar包
-v #显示压缩过程
-f #需要打包的文档名称
tar -cvf 打包完成的命名.tar 打包的内容
tar -cvf first.tar hello
#压缩需要添加额外的参数 -z -gzip
tar -zcvf 打包完成的命名 打包压缩的内容
tar -zcvf first.tar.gz hello
#解压缩
tar -zxvf 需要解压缩的包名
tar -zxvf first.tar.gz
yum安装 ---- 需要网络 yum install 安装软件的名称即可
用户组
Linux 分组
#添加用户组
#用户组信息 /etc/group
groupadd myuser #Linux中添加新的用户组 GID编号
groupadd -g 999 myuser3 #所创建的用户组指定GID编号
#添加用户
useradd 名称
useradd zxf #创建用户 如果没有指定用户组会默认创建相同名称的用户组
cat /etc/passwd #查看用户信息
useradd -u 用户自己的UID
-g 用户所属于的组
-G 用户属于的附加组
-d 用户在home下对应的目录名称 如果不添加默认 用户名
passwd 用户名 #进行密码的设置
cat /etc/shadow #影子目录
#删除用户、组
userdel 用户名 groupdel
#锁定、解锁
passwd -l 锁定用户
-u 解锁用户
Linux安装MySql
yum安装
卸载旧版本
rpm -qa | grep mysql #查看是否存在旧版服务
yum remove mysql #卸载MySQL服务及依赖
find / -name mysql #查找mysql相关配置
rm -rf /url/<filename> #删除配置
yum安装新新版8.0MySQL
wget https://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm #先下载需要版本的yum源
wget https://repo.mysql.com//mysql80-community-release-el7-2.noarch.rpm
yum localinstall mysql80-community-release-el7-2.noarch.rpm -y
rpm -ivh --nodeps --force mysql80-community-release-el6-1.noarch.rpm #安装yum源
yum clean all #清楚缓存 更新 yum 命令
yum makecache #建立缓存
yum repolist all | grep mysql #查看yum 仓库 mysql版本
#(如果想安装mysql其他的版本则可以通过修改/etc/yum.repos.d/mysql-community.repo 这个配置文件 将对应的mysql版本的enabled 值改为1或者通过下面命令修改)
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
cat /etc/yum.repos.d/mysql-community.repo #(第二种修改对应版本为1开启)
yum install mysql-community-server
yum2
cd /etc/yum.repos.d/ #添加在线Mysql源
vi mysql.repo #将下面内容写入
# Enable to use MySQL 8.0
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
yum repolist enabled | grep mysql #验证
vi /etc/my.cnf
lower_case_table_names=1 #修改数据库表明不区分大小写
yum install -y mysql-community-common mysql-community-libs mysql-community-client mysql-community-server mysql-community-devel
tar包安装mysql服务
xz –d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar
#给包重命名为mysql,并安装到/usr/local/目录下;
mv mysql-8.0.16-linux-glibc2.12-x86_64 /usr/local/mysql
#检查mysql组和用户是否存在,如无创建,
cat /etc/group | grep mysql
cat /etc/passwd | grep mysql
#创建mysql用户组
groupadd mysql
useradd -g mysql mysql
#修改用户mysql的密码为mysql(自己设定)
passwd mysql
#进入mysql目录并创建data目录作为数据存放目录;
cd /usr/local/mysql
mkdir data
#赋权限给相关目录;先返回上级目录,防止提示找不到对应目录
chmod -R 777 /usr/local/mysql
chmod -R 777 /usr/local/mysql/data
#将mysql目录的权限授给mysql用户和mysql组;
chown -R mysql:mysql /usr/local/mysql
新建mysql配置文件 my.cnf
vi /etc/my.cnf
[client]
#设置3306端口
port = 3306
socket = /usr/local/mysql/data/mysql.sock
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置mysql的安装目录
basedir= /usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir= /usr/local/mysql/data
socket = /usr/local/mysql/data/mysql.sock
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
lower_case_table_names=1
kip-name-resolve
#设置3306端口
port = 3306
# 允许最大连接数
max_connections=200
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
log-error = /var/log/mysql/mysql.log
pid-file = /usr/local/mysql/data/mysql.pid
user = mysql
cd/usr/local/mysql/bin/
#安装MySQL,并记住随机生成的密码,每次生成都不一样:
./mysqld --initialize --console
#修改config配置,修改SELINUX=disabled --enforcing --permissive
vi /etc/selinux/config
#创建软连接(实现可直接命令行执行mysql)
ln -s /usr/local/mysql/bin/mysql /usr/bin
#mysqld配置,拷贝启动文件到/etc/init.d/下并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#增加执行权限
chmod 777 /etc/init.d/mysqld
#检查自启动项列表中没有mysqld
systemctl list-unit-files | grep mysqld (或) chkconfig --list mysqld
#开启开机启动
systemctl enable mysqld
#启动服务
/etc/init.d/mysqld start || service mysqld start
ps -ef | grep mysql #查看MySQL端口是否被占用
修改数据库密码
vi/etc/my.cnf --在末尾添加一行:skip-grant-tables
service mysqld restart --重启mysql
show databases;
use mysql;
show tables;
select user, host, authentication_string from user;
update user set authentication_string='' where user='root'; --将密码设置为空
vi/etc/my.cnf --删除 skip-grant-tables 重启mysql
--修改密码
alter user 'root'@'%' identified with mysql_native_password by '123456';
flush privileges;
--连接navicat
update user set host = '%' where user ='root';
flush privileges;
--关闭防火墙
systemctl status firewalld.service --查看防火墙状态
systemctl stop firewalld.service --关闭防火墙
systemctl disable firewalld.service --禁止开机重启防火墙
--删除user数据如何恢复
use mysql;
--添加用户
insert into user(User,authentication_string,ssl_cipher,x509_issuer,x509_subject) values('root','','','','');
--添加权限 后重启 无密码登录
update user set Host='localhost',
select_priv='y',
insert_priv='y',
update_priv='y',
Alter_priv='y',
delete_priv='y',
create_priv='y',
drop_priv='y',
reload_priv='y',
shutdown_priv='y',
Process_priv='y',
file_priv='y',
grant_priv='y',
References_priv='y',
index_priv='y',
create_user_priv='y',
show_db_priv='y',
super_priv='y',
create_tmp_table_priv='y',
Lock_tables_priv='y',
execute_priv='y',
repl_slave_priv='y',
repl_client_priv='y',
create_view_priv='y',
show_view_priv='y',
create_routine_priv='y',
alter_routine_priv='y',
create_user_priv='y' where user='root';commit;
--问题解决The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
mysql> SET GLOBAL innodb_fast_shutdown = 1;
[root@localhost bin]# mysqld --upgrade=NONE
--如果登录报错:mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
updatedb
locate libtinfo.so.5
yum install libncurses*
四、Linux 中传输文件方式
yum install lrzsz #安装命令:
sz filename #从服务端发送文件到客户端
sz -be files #以二进制传输
sz -ae files #以文本格式传输
rz -be #从客户端上传文件到服务端
#第二种传输方式
Alt+p #拖拽文件直接进入linux系统
五、其他安装
安装VMware
https://www.jianshu.com/p/552179808ebf 教程和key
按装CentOS8.0
consul 安装
初始化consul
wget https://releases.hashicorp.com/consul/1.6.2/consul_1.6.2_freebsd_amd64.zip
#移动到全局变量环境中 consul验证
mv consul /usr/local/bin/
#首先在node1节点的/etc目录下创建consul.d目录
#启动consul
consul agent -server -ui -bootstrap-expect=2 -data-dir=/tmp/consul -node=node1 -config-dir /etc/consul.d -bind=0.0.0.0 -client=0.0.0.0
参数说明:
-server : 定义agent运行在server模式
-bootstrap-expect :在一个datacenter中期望提供的server节点数目,当该值提供的时候,consul一直等到达到指定sever数目的时候才会引导整个集群,该标记不能和bootstrap共用
-data-dir:提供一个目录用来存放agent的状态,所有的agent允许都需要该目录,该目录必须是稳定的,系统重启后都继续存在
-node:节点在集群中的名称,在一个集群中必须是唯一的,默认是该节点的主机名
-bind::指明节点的IP地址,一般是0.0.0.0或者云服务器内网地址,不能写阿里云外网地址。这是Consul侦听的地址,它必须可以被集群中的所有其他节点访问。虽然绑定地址不是绝对必要的,但最好提供一个。
-ui: 启动web界面
-config-dir::配置文件目录,里面所有以.json结尾的文件都会被加载
-rejoin:使consul忽略先前的离开,在再次启动后仍旧尝试加入集群中。
-client:consul服务侦听地址,这个地址提供HTTP、DNS、RPC等服务,默认是127.0.0.1所以不对外提供服务,如果你要对外提供服务改成0.0.0.0
原文链接:https://blog.csdn.net/junaozun/article/details/90699384
访问控制列表 配置acl
1.在/etc/consul.d 目录下添加 consul-acl.json 文件
{
"acl_datacenter": "dc1",
"acl_master_token": "12345678",
"acl_default_policy": "deny",
"acl_down_policy": "extend-cache"
}
2.启动consul 的server端
consul agent -server -ui -data-dir=/tmp/consul -node=node1 -config-dir=/etc/consul.d -bind=192.168.71.131 -client=0.0.0.0 -dev
3. 代理token设置
curl \
--request PUT \
--header "X-Consul-Token: p2BE1AtpwPbrxZdC6k+eXA==" \
--data \
'{
"Name": "Agent Token",
"Type": "client",
"Rules": "node \"\" { policy = \"write\" } service \"\" { policy = \"read\" }"
}'
http://127.0.0.1:8500/v1/acl/create
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EWDDsbFF-1591260490043)(Linux.assets/consul1-1587719094186.png)]
#得到的token
{
"ID": "e1913a6c-187d-4b97-18e0-6996ae90efc4"
}
4.在consult server主机上配置第三步获取的agent token
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0NktsJsy-1591260490047)(Linux.assets/consul3.png)]
5.在代理端配置acl.json
{
"acl_datacenter": "dc1",
"acl_down_policy": "extend-cache",
"acl_agent_token": "e1913a6c-187d-4b97-18e0-6996ae90efc4"
}
6.启动agent
consul agent -join=192.168.71.131 -ui -bind=192.168.71.128 -config-dir=/etc/consul.d -data-dir=/tmp/consul -client=0.0.0.0