Linux初级操作笔记

  • Post author:
  • Post category:linux




Linux



硬件



服务器版本

#查看内核
uname -a
==========================
Linux xiao 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
===========================
#查看版本
suse服务器:cat /etc/SuSE-release
linux服务器:cat /etc/centos-release
===========================
SUSE Linux Enterprise Server 12 (x86_64)VERSION = 12 PATCHLEVEL = 4
CentOS Linux release 7.9.2009 (Core)



IP相关

#修改服务IP
查看当前IP:ifconfig
========================
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.26.157.135  netmask 255.255.240.0  broadcast 172.26.159.255
        inet6 fe80::216:3eff:fe12:f07d  prefixlen 64  scopeid 0x20<link>
        ether 00:16:3e:12:f0:7d  txqueuelen 1000  (Ethernet)
        RX packets 3804776  bytes 2886034153 (2.6 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2642292  bytes 385187673 (367.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
======================================
#Coentos7修改IP
1、进入到ifcfg-eth0去修改eth0的配置参数
vi /etc/sysconfig/network-scripts/ifcfg-eth0
==============
BOOTPROTO=static
DEVICE=eth0
ONBOOT=yes
IPADDR=192.168.0.99
NETMASK=255.255.255.0
GATEWAY=192.168.0.1

DNS1=114.114.114.114
DNS2=8.8.8.8
=======================
2、修改后保存并重启network服务
service network restart
3、如果不生效,就拔插一下网线,还不行就重启服务器
详细链接
https://www.cnblogs.com/itbsl/p/10219891.html
#suse12修改IP
yast - System - Network Settings
Next - Address 
IP Address Subnet Mask #配置IP
169.168.0.20 /24
Next
Routing
Default IPv4 Gateway Device #配置网关
169.168.0.1 eth1
ok - Quit
=============================



时间相关

#配置服务器时间
Mon Apr 18 19:55:57 CST 2022
1、确定时区
date #CTS中国
#修改为上海时间:timedatectl set-timezone Asia/Shanghai
2、修改时间

sudo date -s MM/DD/YY //修改日期	月/日/年
sudo date -s hh:mm:ss //修改时间	时/分/秒
在修改时间以后,修改硬件CMOS的时间
sudo hwclock --systohc //非常重要,如果没有这一步的话,后面时间还是不准
查看硬件时间:,硬件时间是BIOS的时间。
#链接https://blog.csdn.net/zhengchaooo/article/details/79500032

指挥箱his时间

hi_hwclock -s time '2021/11/16/16/09/00'



防火墙相关

#防火墙
查看服务器安装了什么防火墙相关程序:rpm -qa |grep fire
常见防火墙为coentos7的firewalld和suse12的SuSEfirewall2
firewalld-filesystem-0.6.3-13.el7_9.noarch
SuSEfirewall2-3.6.312.333-3.13.1.noarch
#coentos7系统-firewalld
1、查看:systemctl status firewalld或者firewall-cmd --state
--出现Active: active (running)切高亮显示则表示是启动状态。
--出现 Active: inactive (dead)灰色表示停止,看单词也行。
2、启动:service firewalld start
3、重启:service firewalld restart
4、关闭:service firewalld stop
5、禁止firewall开机启动:
systemctl disable firewalld.service
#详细连接:
https://blog.csdn.net/wade3015/article/details/90725871
#suse12系统-SuSEfirewall2
1、查看:service SuSEfirewall2_init status
2、启动:先进入 cd /sbin 再启动rcSuSEfirewall2 start
3、重启:
4、关闭:service SuSEfirewall2_init stop
5、禁止开机自启动:
#详细连接:
https://blog.csdn.net/u014626789/article/details/112777590



文件



基本操作

#常见操作
1、查看文件:ll ls
2、创建文件/夹:touch/mkdir
3、路径:pwd 根/ 上级.. 当前. 用户~ 上次-
4、复制:cp 目标 目的 (cp -r) 复制文件夹用
5、移动:mv 目标 目的
6、删除:rm -rf 目标 (慎用)
7、文件属性:-文件 d文件夹 x可执行 r可读 w可修改
	chown -R test1:test /home/test1 #将/home/test1下所有数据授权给test组下的test1
	chmod 755 /home/test.sh #给test.sh赋予 -rwxr-xr-x 权限
8、文件读写:
8.1、vi/vim 按i进入编辑模式,按:wq!保存退出,按:q!不保存退出。
	?/关键字	#直接定位到关键字位置 
	gg/G 	#首行/最后一行
	:set nu  #显示行号
	:n 		#跳到指定行
	vi +103 文件名 #打开后会直接到目标行
8.2、cat 一次性读取 more逐步读取 tail -f 动态读取
	-n 是显示行号;相当于nl命令;-100f test.log 实时监控100行日志
8.3、把查找到所有*.log的文件的结果重定向到/tmp/list_find文件里
	find / -name *.log > /root/list_find	#重定向
9、软件的安装
9.1、在线安装:yum list/install/remove 列出/安装/删除
9.2、压缩包:tar -zxvf/-zxcf xxx.tar.gz 解压/压缩和unzip xxx.zip 解压
tar -czvf xxx.tar.gz  source_file (tar -czvf 包名.tar.gz  源文件)        #以tar.gz方式打包并gz方式压缩
tar -xzvf xxx.tar.gz -C path (tar -xzvf xxx.tar.gz -C 目标路径)          #解压缩包

9.3、安装包:rpm -qa/-iva/-e 查看/安装/卸载 
	rpm -qa|grep -i mysql	#列出服务器中包含mysql的路径
10、系统管理
10.1、ps -ef 、kill -9 pid 查找进程、强制删除进程
10.2、netstat -ntlp 查看已占用端口
10.3、find / -name 、grep 搜索文件、文件内搜索
10.4、systemctl start/stop/status 启动/停止/重启
11、存储相关:
11.1、df -h 查看服务器内存使用情况
11.2、du -sh	查看当前路径下内存使用
	du --max-depth=1 -h #查看当前路径下1深度的存储使用详情
	du -ah 文件路径	#统计指定文件夹所有文件大小
11.3、fdisk -l 查看服务器硬盘大小及分配情况
11.4、free -m 查看内存使用情况
			全部			使用(已分配)	未分配		分配		缓冲/缓存		有空的
              total        used        free      shared  buff/cache   available
Mem:           7820        5925         135         195        1760        1430
Swap:          2047        1375         672
全部=已分配+未分配+缓存
total = used + free + buff/cache
available = free + buff/cache(部分)

12、history 查看历史记录
	history |grep "cd"	#在历史记录中查看包含cd的行
13、clear 清空控制台消息
14、tcpdump -i eth0 -s 0 -vv -p 5061 -w 20210906.pcap #抓包,获取当前连接到eth0网卡的所有连接数据并存到20210906.pcap

15、显示完整路径:https://www.csdn.net/tags/NtTaYgysMTQ3ODctYmxvZwO0O0OO0O0O.html





grep

linux三剑客:https://blog.csdn.net/zheou/article/details/108145225

shell脚本:https://blog.csdn.net/baidu_29244931/article/details/109580744

1、查看文件内某关键字行
--查看Connector port的端口的配置
grep "Connector port" ./server.xml
===================================
    <Connector port="8080" protocol="HTTP/1.1"
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
    <Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
=================================
2、查看
netstat -anlep|grep 8080	#查看端口
rpm -qa | grep mysql      #查找相关包
ps -ef|grep frps			#查看进程
grep 'xx' 文件名 			#展示文件中包含xx的行
grep -h "xx" 文件名		#展示文件中包含xx的行并标出行数
#流媒体运用
1、查看车载主机最后一次下线和上线记录:
查看日志路径:/home/hy_media_server/log/999-1/interface、jtt源至dcg认证请求:
grep -a "recv jtt source to dcg auth req" *.log
下线:grep "recv jtt source to dcg unregreq,phoneNum:018370025241" *.log
上线:grep "recv jtt source to dcg auth req,deviceIP:018370025241" *.log
2查看降码是否配置成功
grep "MTS" /home/hy_media_server/log/666-1/run/log-666-1-run.log 



基础服务安装

本套服务是基于coentos7.9搭建



Mysql在线安装8.0.28

搭建参考文档:

https://blog.csdn.net/qq_39530821/article/details/123773151
https://blog.csdn.net/zhanggqianglovec/article/details/103352232

1、安装前

一、安装前需要删除系统中已存在的mysql及mariadb
1、查找系统中存在的mysql及mariadb
rpm -qa | grep -i mysql		#mysql数据库
rpm -qa | grep -i mariadb	#系统自带数据库
2、使用yum remove命令全部卸载
yum remove mysql* 
yum remove mariadb*
3、重复步骤1,用于确定都删除成功
4、查早多余的文件
find / -name mysql
find / -name mariadb
5、删除多余的文件
rm -rf /文件绝对路径/文件名
6、重复步骤4,用于确定都删除成功

2、安装

二、安装mysql
1、下载官方的Yum Repository
wget http://repo.mysql.com/mysql80-community-release-el7-5.noarch.rpm
#看官方的网页:https://dev.mysql.com/downloads/repo/yum/
2、安装repo
rpm -ivh mysql80-community-release-el7-5.noarch.rpm
#执行完会在/etc/yum.repos.d/看到两个repo文件
mysql-community.repo、mysql-community-source.repo
3、刷新yum及查看yum中的MySQL版本
yum clean all |yum makecache
yum repolist all | grep mysql
4、开始安装mysql
yum -y install mysql-community-server
====================
Installed:	服务
mysql-community-server.x86_64 0:8.0.28-1.el7 
Dependency Installed:	依赖表:
libaio.x86_64 0:0.3.109-13.el7 
mysql-community-client.x86_64 0:8.0.28-1.el7
mysql-community-client-plugins.x86_64 0:8.0.28-1.el7
mysql-community-common.x86_64 0:8.0.28-1.el7
mysql-community-icu-data-files.x86_64 0:8.0.28-1.el7
mysql-community-libs.x86_64 0:8.0.28-1.el7
======================
4、启动
systemctl start mysqld
5、查看是否启动成功
ps -ef |grep mysql
6、设置开机自启动
systemctl enable mysqld

3、登录

三、登录
1、查看初始密码;首次安装之后,有个初始密码,首次登录之后必须修改密码。
cat /var/log/mysqld.log |grep password
2、登录
mysql -u root -p
填入初始密码
3、修改密码
默认密码强度 

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'axs258369@L';
4、然后退出数据库,用新密码重新登录。 
5、创建一个具有远程访问权限的账号。有3条语句,如下:
create user 'root'@'%' identified with mysql_native_password by '1qaz!QAZ';  
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
6、为了让数据库的密码能修改为123456,所以我们需要对数据库进行一些配置。命令如下,完成后,就可以通过navicat来随意修改密码了。
SHOW VARIABLES LIKE 'validate_password%';   查看数据库的密码规则
set global validate_password.policy=LOW;   修改密码强度要求
set global validate_password.length=6;   修改密码长度要求



Mysql离线安装5.7.26

1、安装前

1、停服务
ystemctl stop mysqld
2、查找已存在的mysql
rpm -qa|grep mysql
3、删除
yum remove mysql*	报错
一条一条删除,按下面顺序
yum remove mysql-community-icu-data-files-8.0.28-1.el7.x86_64
yum remove mysql-community-libs-8.0.28-1.el7.x86_64
yum remove mysql-community-common-8.0.28-1.el7.x86_64
yum remove mysql80-community-release-el7-5.noarch
yum remove mysql-community-server-8.0.28-1.el7.x86_64
yum remove mysql-community-client-plugins-8.0.28-1.el7.x86_64
yum remove mysql-community-client-8.0.28-1.el7.x86_64
4、验证是否全部清除
rpm -qa|grep mysql
5、查找mysql文件
find / -name mysql
6、删除
rm -rf /usr/lib64/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql

2、安装

1、获取包
mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
2、解压
tar -xf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
3、获取numactl 防止数据库安装时报错
#详情连接:https://www.csdn.net/tags/MtjakgwsMTMxOTItYmxvZwO0O0OO0O0O.html
numactl-2.0.12-5.el7.x86_64.rpm
4、安装numactl
rpm -ivh numactl-2.0.12-5.el7.x86_64.rpm
5、验证安装成功
numactl --hardware
6、安装数据库,按顺序安装下面4个rpm
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm 
7、启动
systemctl start  mysqld.service
8、查看是否启动成功
ps -ef |grep mysql
9、设置开机自启动
systemctl enable mysqld

3、登录

1、查看默认密码
cat /var/log/mysqld.log | grep password
2、登录数据库
mysql -u root -p
3、修改密码,首次登录必须修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1qaz!QAZ';
4、退出,重登
5、修改密码复杂度
SHOW VARIABLES LIKE 'validate_password%';
set global validate_password_policy=LOW;
set global validate_password_length=6;
6、创建一个具有远程访问权限的账号。有3条语句,如下:
create user 'root'@'%' identified with mysql_native_password by '1qaz!QAZ';  
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
7、远程登录
8、将本地连接密码改为123456
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';


常见问题
1、远程报错
a.ping地址和telnet端口,发现端口不通
b.查看防火墙状态
systemctl status firewalld
c.若不需要防火墙则关闭防火墙
service firewalld stop
d.若需要防火墙,则开放3306端口
firewall-cmd --permanent --zone=public --add-port=3306/tcp
e.重新加载使其生效
firewall-cmd --reload
f.查看当前开放的端口
firewall-cmd --permanent --zone=public --list-ports
2、允许远程连接
#问题2 mysql语句区分大小写
1、查询数据库中是否开启区分大小写功能
show variables like 'lower%'	#0区分、1不区分
2、修改不区分大小写,在my.cnf中的[mysqld]后面添加
lower_case_table_names=13、重启MYSQL服务
systemctl start  mysqld.service
#问题3 数据库语句乱码
#配置适用于5.7.26
vi /etc/my.cnf
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
collation-server=utf8_general_ci
init_connect='SET NAMES utf8'
lower_case_table_names=1
innodb_buffer_pool_size=512M
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
wait_timeout=604800
interactive_timeout=604800



安装redis

【在Linux上在线安装redis】
1、yum install redis
2、启动redis服务 systemctl start redis
3、查看redis状态  systemctl status redis
4、打开redis客户端  redis-cli
5、设置密码为123456
config set requirepass 123456
6、退出
exit

===========
redis-cli --raw
auth 123456
keys *

常见命令

#特性:作为缓存数据库,数据是存储到内存中的
1、连接:redis-cli --raw
2、输入账号密码:auth 123456
3、查:keys * 和get key
4、增:set key value
5、改:set key value
6、删:del key
7、保存:save
8、数据类型:字符串、哈希、基合、列表
9、配置:/etc/redis.conf
	requirepass	#密码
	bind	#显示访问ip
	dir		#redis保存的文件所在路径
	dbfilename	#保存文件的名称
	port	#端口



安装JDK1.8+tomcat9

1、创建用户hm

## 创建用户
useradd hm 创建用户xh
passwd hm 给已创建的用户xh设置密码
12345678
赋予权限: chown -R hm:hm /home/hm/

2、搭建JAVA环境,jdk变量

1、获取包
2、上传、解压
tar -zxvf 文件名
3、文件夹赋权、切换用户
chown -R hm:hm /home/hm
su - hm
4、配置java环境变量
ls -la
vim .bash_profile
===============
export JAVA_HOME=/home/hm/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
===============
source .bash_profile
验证是否配置成功
java -version

3、tomcat

5、配置tomcat环境变量
apache-tomcat-9.0.62/bin
vi setclasspath.sh
第二排加
============
export JAVA_HOME=/home/hm/jdk1.8.0_211
export JAVA_JRE=/home/hm/jdk1.8.0_211/bin
============
启动
./startup.sh



Nginx

1、安装nginx
yum install nginx -y
2、自动安装那些包
Installed:	nginx.x86_64 1:1.20.1-9.el7
Installed:
centos-indexhtml.noarch 0:7-9.el7.centos
gperftools-libs.x86_64 0:2.6.1-1.el7
nginx-filesystem.noarch 1:1.20.1-9.el7
openssl11-libs.x86_64 1:1.1.1k-3.el7
3、启动

4、修改nginx.conf,配置nginx连接的访问地址
 /etc/nginx/nginx.conf
============
    server {
        listen       80;
        server_name  120.24.200.123;	#客户端连接服务器的地址
        root         /usr/website/haimo;	#前端代码存储的位置
        location /haimo {	#接到URL中/haimo 的全部转发到这个里面来
         proxy_pass http://127.0.0.1:8080/haimo;	#连接后端的URL
        }
		location / {				#防止刷新报404
			try_files $uri $uri/ /index.html;
		}

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

=======================
5、配置前端与后端连接的数据库
/usr/website/haimo/static/js/app.4083aa36.js
文件内搜索
?haimo.testgoup
全部将域名替换成ip,#一共有3处
=============
"http://haimo.testgoup.com/haimo";
替换为
"http://120.24.200.123/haimo";



其他运用



数据库

#停/起
1、查看数据库启动情况
service mysqld status
================================
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Wed 2021-11-17 12:42:40 CST; 8min ago #dead 死亡
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 25065 (code=exited, status=0/SUCCESS)
======================
2、启动数据库
service mysqld start
=============================
Redirecting to /bin/systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 12:53:24 CST; 3s ago #running 活动

=====================================
3、重启数据库
service mysqld restart
4、停止数据库
service mysqld stop

#其他操作
如何在linux中运行sql文件
先进入数据库
再执行:source /home/文件名.sql
导出数据库中的某张表
mysqldump -uroot -proot --databases db1 --tables a1 --where='id=1'  >/tmp/a1.sql
#备份还原mysqldump命令
#备份命令
1、mysqldump xxx 数据库名 表名 > 脚本名
2、备份所有数据库:
mysqldump -uroot -p --all-databases > /home/all.db
3、备份指定数据库
mysqldump -uroot -p test > /home/test.db 
4、备份指定数据库指定表(多个表以空格间隔)
mysqldump -uroot -p  mysql db event > /backup/mysqldump/2table.db
5、备份指定数据库排除某些表
mysqldump -uroot -p test --ignore-table=test.t1 --ignore-table=test.t2 > /backup/mysqldump/test2.db
#还原命令
1、系统行命令
mysqladmin -uroot -p create db_name 
mysql -uroot -p  db_name < /backup/mysqldump/db_name.db
注:在导入备份数据库前,db_name如果没有,是需要创建的; 而且与db_name.db中数据库名是一样的才可以导入。
2、soure方法
mysql > use db_name
mysql > source /backup/mysqldump/db_name.db



问题记录



登录异常,提示服务器异常
redis没有启动,重启redis正常



基础环境部署



项目运行组件

java环境变量+tomcat容器+nginx反向代理+Mysql/redis数据库



创建新用户test1

部署连接:https://www.cnblogs.com/yadongliang/p/8657251.html

useradd test1 创建用户test1

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

su – test1 切换用户



部署java环境变量

部署连接:

https://blog.csdn.net/wuyigong111/article/details/17410661

上传-解压-配置-生效-检查

vi .bash_profile



部署tomcat容器

上传-解压-配置-启动-检查



部署Mysql数据库

部署链接:

https://blog.csdn.net/ldy/article/details/108617675

离线

在线



部署Nginx负载均衡/反向代理

https://www.cnblogs.com/pp-yang/p/12595387.html



版权声明:本文为weixin_44875032原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。