LINUX常用命令学习
- 查看系统版本
使用hostnamectl命令检查。hostnamectl显示了CentOS的版本以及操作系统的相关信息,非常方便
设置linux机器别名称 hostnamectl set-hostname 机器别名 --static
华为云 centos 命令:lsb_release -a
linux:cat /proc/version
查看进程路径
Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息,其中包括一个名为cwd的文件即记录了绝对路径,通过ll或ls –l命令即可查看。
ll /proc/PID
cwd符号链接的是进程运行目录;
exe符号连接就是执行程序的绝对路径;
cmdline就是程序运行时输入的命令行命令;
environ记录了进程运行时的环境变量;
fd目录下是进程打开或使用的文件的符号连接。
2.查看libcurl版本
rpm -qa |grep curl
3.查询大文件日志
find . -type f -size +800M -print0 | xargs -0 du -h | sort -nr
find过滤掉没有查看权限的文件
find / -name *opencv* 2>/dev/null
注:/dev/null是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃。null这个设备通常也被称为位桶(bit bucket)或黑洞。
所以,2>/dev/null的意思就是将标准错误stderr删掉。
Shell会自动为我们打开和关闭0、1、2这三个文件描述符,我们不需要显式地打开或关闭它们。标准输入是命令的输入,默认指向键盘;标准输出是命令的输出,默认指向屏幕;标准错误是命令错误信息的输出,默认指向屏幕。
du -h --max-depth=1|grep G|sort -n
查看磁盘大小
使用命令:du -sh * 可以查看当前目录下各个文件及文件夹占用空间
执行以下命令,查看硬盘使用率。
df -h
对根目录下文件夹进行大小排序
切到根目录下,使用以下命令进行排序:
du -h --max-depth=1|grep G|sort -n
对根目录下的目录超过1G的进行排序,前提是切cd到根目录下
执行以下命令,查找占用空间较大的目录。
du -x --max-depth=1 | sort -n
检查文件系统是否 inode 满
执行以下命令,查看硬盘使用率。
df -i
定位硬盘使用率较高的挂载点,并执行以下命令进入该挂载点。
cd 对应挂载点
例如,如需 cd 系统盘挂载点,则执行 cd /。
执行以下命令,查找文件个数最多的目录,解决该问题。该命令较耗时,请耐心等待。
find / -type f | awk -F / -v OFS=/ '{$NF="";dir[$0]++}END{for(i in dir)print dir[i]" "i}' | sort -k1 -nr | head
检查 df du 是否不一致
解决进程占用文件句柄问题
执行以下命令,查看占用文件的进程。
lsof | grep delete
请根据返回结果,执行以下步骤:
kill 对应进程。
重启服务。
若较多进程占用文件句柄,可重启服务器。
/usr/sbin/lsof|grep deleted
用lsof检查后才发现原因是,有文件被删除,而进程还活着,因而造成还占用空间的现象。因此,需要把这些僵尸进程删除掉,命令如下:
lsof | grep delete | awk -F ' ' '{ print $2}'|xargs kill -9
统计目录每日大小并记录到文件
du -sh /opt/ | awk '{ print $0"\t" strftime("%Y-%m-%d %H:%M:%S",systime()) } ' >> /home/appman/size.txt
删除当前运行内核之外的其他所有内核
yum remove kernel
安装内核相应包
uname -a #查看内核版本等信息
- 首先使用命令uname -r得到自己的内核版本
- 然后访问网站下载两个包http://debuginfo.centos.org/7/x86_64/
例如,内核版本3.10.0-862.14.4.el7.x86_64就下载如下两个包
kernel-debuginfo-3.10.0-862.14.4.el7.x86_64.rpm
kernel-debuginfo-common-x86_64-3.10.0-862.14.4.el7.x86_64.rpm
- 注意,如果你的内核没有更新,和镜像的版本一致,直接使用光盘镜像的包即可
- 开始安装
yum localinstall kernel-debuginfo-*
OpenSSL
查看当前安装的openssl版本:rpm -qa | grep openssl
1. 查看当前安装的openssl版本:
rpm -qa | grep openssl
- 卸载openssl:yum remove openssl
#指定对应版本进行卸载 yum -y remove openssl-1.1.1g-15.el8_3.x86_64
3. 确认是否卸载成功:
rpm -qa | grep openssl
检查 SSL 证书是否正确安装
openssl s_client -connect 域名:443 -showcerts
用户添加到组
usermod 示例 – 将一个已有用户增加到一个已有用户组中
将一个已有用户 cnzhx 增加到一个已有用户组 apache 中,使此用户组成为该用户的附加用户组,可以使用带 -a 参数的 usermod 指令。-a 代表 append, 也就是将用户添加到新用户组中而不必离开原有的其他用户组。不过需要与 -G 选项配合使用:
# usermod -a -G apache cnzhx
如果要同时将 cnzhx 的主要用户组改为 apache,则直接使用 -g 选项:
# usermod -g apache cnzhx
删除用户
需要做到一下几步
1、rm -rf 命令把当前/home 目录下的用户名删除
2、userdel +用户名删除 (会出错,需要使用3的指令)
3、用userdel -f 命令强制删除用户名
4.再用useradd 创建用户就ok了
如果不能添加,查看/etc/group文件看看有没有这个用户。
(useradd -g work work)
用户
whoami 命令来查看当前用户
exit 命令切换回原始用户的帐户
压缩/解压文件
tar
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
下面的参数是根据需要在压缩或解压档案时可选的。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出
压缩
tar –cvf jpg.tar *.jpg 将目录里所有jpg文件打包成tar.jpg
tar –czf jpg.tar.gz *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar –cjf jpg.tar.bz2 *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar –cZf jpg.tar.Z *.jpg 将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
rar a jpg.rar *.jpg rar格式的压缩,需要先下载rar for linux
在CentOS中,如果你想要压缩一个目录但排除某些子目录,你可以使用tar命令结合--exclude参数来实现。以下是一个示例,它会压缩/path/to/directory但排除了名为exclude_this_dir的子目录:
tar -czf archive_name.tar.gz --exclude=exclude_this_dir /path/to/directory
zip jpg.zip *.jpg zip格式的压缩,需要先下载zip for linux
zip -r myfile.zip ./*
将当前目录下的所有文件和文件夹全部压缩成myfile.zip文件,-r表示递归压缩子目录下所有文件.
解压
tar –xvf file.tar 解压 tar包
tar -xzvf file.tar.gz 解压tar.gz
tar -xjvf file.tar.bz2 解压 tar.bz2
tar –xZvf file.tar.Z 解压tar.Z
unrar e file.rar 解压rar
unzip file.zip 解压zip
5.清除系统日志文件
ls *2020-09* |awk 'NR>1 {print "echo > " $NF}'|sh 清空2020-09月份日志文件
清空单个文件日志 cat /dev/null > /var/log/messages
echo " " > catalina.out
若删除了日志,实际进程还在占用,需要重启日志相关服务;
sudo service rsyslog restart
sudo service filebeat restart
定时任务:
service crond status
sudo service crond start
释放内存 1.sync 2.echo 3 > /proc/sys/vm/drop_caches
切换账户
sudo 一般加的是命令
sudo -i root与sudo - root、sudo -i ,sudo - ,sudo root效果相同 提示输入密码时该密码为当前账户的密码 要求执行该命令的用户必须在sudoers中才可以 su需要的是切换后账户的密 用法为“su 账户名称”
sudo : 暂时切换到超级用户模式以执行超级用户权限,一般指的是root用户,提示输入密码时该密码为当前用户的密码,而不是超级账户的密码。不过有时间限制,Ubuntu默认为一次时长15分钟。
su :切换到某某用户模式,提示输入密码时该密码为切换后账户的密码,用法为“su 账户名称”。如果后面不加账户时系统默认为root账户,密码也为超级账户的密码。没有时间限制。
sudo -i: 为了频繁的执行某些只有超级用户才能执行的权限,而不用每次输入密码,可以使用该命令。提示输入密码时该密码为当前账户的密码。没有时间限制。执行该命令后提示符变为“#”而不是“$”。想退回普通账户时可以执行“exit”或“logout” 。要求执行该命令的用户必须在sudoers中才可以
sudo -i 直接运行sudo命令加-i参数,要求执行该命令的用户必须在sudoers中才可以
sudo su 运行sudo命令给su命令提权,运行su命令。要求执行该命令的用户必须在sudoers中才可以。
给普通用户授权某目录/文件权限
sudo setfacl -R -m user:appman:rwx /var/log 给用户appman授予/var/log目录rwx权限
-R :递归配置 acl ,亦即包括次目录都会被配置起来
查看文件或者文件的权限
在命令行使用命令“ll”或者“ls -a”
改变文件夹及所有子文件(夹)所属用户和用户组
chown -R jay:fefjay my #修改文件所属用户为jay,所属用户组为fefjay
Vi编辑器
vi 编辑器中跳到文件的第一行:
a 输入 :0 或者 :1 回车
b 键盘按下 小写 gg
vi 编辑器跳到文件最后一行:
a 输入 :$ 回车
b 键盘按下大写 G
c 键盘按 shift + g (其实和第二种方法一样)
vi命令删除全部内容
在命令模式下,输入:.,$d 一回车就全没了。
表示从当前行到末行全部删除掉。
用gg表示移动到首行
vi命令搜索文件内容
按下”/“键,这时在状态栏(也就是屏幕左下脚)就出现了 “/” 然后输入你要查找的关键字敲回车就可以了。
找到相关文字以后:
(1)按下小写n,向下查找
(2)按下大写N,向上查找
netstat -aptn查看所有开启的端口号
netstat -ntpl 查看端口进程
查看服务端口
例如:rabbitmq端口 命令:netstat -lnp |grep beam
Tomcat端口 命令:netstat -lnp |grep Java
lsof -i:端口号 没有任何输出则说明没有开启该端口号
1.ps -ef|grep tomcat
查看运行的Tomcat 服务,获取 PID
2.第二步,根据 PID ,查找端口号
netstat -antup |grep LISTEN | grep PID | awk -F ':' '{if($4<20000) {print $4}}'
centos系统查看端口是否开放的方法是:1、执行命令【yum install -y telnet】安装telnet工具;2、执行命令【telnet ip port】查看端口是否开放
退出telnet
(1) Ctrl + ] (2) 输入问号然后回车,可以查看帮助; 输入close或quit然后回车,可以退出telnet;
shutdown
· shutdown now # 立即关机
· shutdown +2 # 2 min 后关机
· shutdown 10:01 # 10:01关机
· shutdown +2 "The machine will shutdown" # 2min 后关机,并通知在线者
#先kill掉满屏的postdrop
ps -ef|grep postdrop |grep -v grep|cut -c 9-15|xargs kill -9
查看执行的任务
ps -aux | grep java
说明:ps -aux中(a指代all——全部的进程,u指代userid——执行该进程的用户id,x指代显示全部程序,不以终端机来区分)
Ps axu |grep 25995 25995为进程ID
ps -ef |grep java
推荐htop命令代替top命令
#删除巨量的文件
#直接rm -fr /var/spool/postfix/maildrop/* 会导致失败 /bin/rm: argument list too long
#所以要换个删除的方式
ls /var/spool/postfix/maildrop | xargs -n 50 rm -fr ls
当然也可以设置crond的MAILTO为空,即不发邮件
tomcat日志分析相关:
pattern="%h %l %u %t "%r" %s %b"
%h - 远程主机名
%l (小写的L)- 远程逻辑从identd的用户名(总是返回' - ')
%u - 远程用户身份验证
%t - 日期和时间,在通用日志格式
%r - 第一行的要求
%s - 响应的HTTP状态代码
%b - 发送的字节数,不包括HTTP头,或“ - ”如果没有发送字节
10.241.100.253 - - [10/Sep/2020:16:19:36 +0800] "POST /itsmApi/order/queryDictionaries HTTP/1.1" 200 420
1.从上面提到的apache日志中得到访问量最高前100个IP
cat logfile | awk '{a[$1]++} END {for(b in a) print b"\t"a[b]}'|sort -k2 -r|head -n 100
时间区间检索
查看某段时间内的日志: sed -n '/起始时间/,/结束时间/p' 日志文件,
查看某段时间内的关键字日志:sed -n '/起始时间/,/结束时间/p' 日志文件 | grep ‘keyword’
// 示例
查看某段时间内的关键字日志
sed -n '/2020-10-16 01:00:00/,/2020-10-16 03:00:00/p' catalina.out |grep 'Exception'
sed -n '/22\/Mar\/2022:10:00:00/,/22\/Mar\/2022:10:00:50/p' catalina.out
sed -n 's/.*2016:[]? .* 200 [0?9]?$/\1 \2/p' localhost_access_log.2016-05-23.txt | awk '{total[$1]+=$2}END{for(t in total)printf("%s %.4fM\n", t,total[t]/1024/1024)}'|sort -k2
假设你匹配内容是abc,要显示匹配行前后各5行,文件名是file
grep -m1 -C5 "abc" file
grep -m1 -A1200 'closeEventOrder' catalina.out 6412,6,427
cat 9718.stack |grep '2603' -C 8
除特定目录的示例
- 使用 find 命令:您可以使用 find 命令来查找不包括某些目录的文件,然后使用 -exec 选项来执行 cp 命令。
find /path/to/source -type f -path '/path/to/source/excluded_directory/*' -prune -o -exec cp {} /path/to/destination \;
这个命令中,-path '/path/to/source/excluded_directory/*' -prune 部分用于排除指定的 excluded_directory 目录。
2.使用 rsync 命令:rsync 命令提供了更多的灵活性和选项来排除文件或目录。
rsync -av --exclude='excluded_directory/' /path/to/source/ /path/to/destination/
在这个命令中,--exclude='excluded_directory/' 选项用于排除 excluded_directory 目录。
grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
-r或--recursive 此参数的效果和指定“-d recurse”参数相同
任意一个字节 . 与重复字节 *
这两个符号在正则表达式的意义如下:
. (小数点):代表『一定有一个任意字节』的意思;
* (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态
grep -a -r “10.4.92.22” ./*
使用grep命令查找文件中的关键字
格式: grep [选项] “关键词” 路径/文本文件
-v :取反
-i: 忽略大小写
-n: 带行号显示
关键词组合
^:以什么开头(^root)
$:以什么结尾(nologin$)
^$:匹配空行
示例:
grep "root" /etc/passwd #查询和root相关的行
grep -v "root" /etc/passwd #不要和root相关的行
grep -in "RoOt" /etc/passwd #忽略关键词的大小学并带行号显示和root相关的内容
grep -v "^$" /etc/login.defs #过来空行的信息
grep -v "^$" /etc/login.defs | grep -v "^#" > /opt/user.log
如果要在整个目录中搜索关键字,我们可以使用以下命令:
grep 'keyword' *
它在当前目录下递归搜索所有文件。谨记,不要丢掉最后的星号,而且不可换成具体的目录。如果要忽略子目录和二进制文件,可以使用以下命令:
grep -r 'keyword' --exclude-dir={目录1,目录2} --exclude='*.ext'
它忽略指定目录和扩展名的文件。grep还可以在指定目录下递归所有文件搜索关键词,命令如下:
grep "keyword" /data/logs -R | tail -3
业务含义:遍历目录/data/logs下的所有文件,最多展示包含关键词keyword的三行记录。
上传
# rz
### 下载一个文件:
# sz filename
### 下载多个文件:
# sz filename1 filename2
### 下载dir目录下的所有文件,不包含dir下的文件夹:
# sz dir/*
Linux中修改jar包中的文件内容
- 命令行中输入vim [jar包路径]
2、回车,打开jar包中的文件目录,并定位到要修改的文件位置
- 回车,打开文件内容进行修改
4、修改后,输入:wq保存退出上步,再次输入命令:q退出,完成修改
Redis
centos7中查看redis版本的方法:
- 打开centos7终端;
- 在终端命令行中输入“redis-server –version”或“redis-server -v ”命令查看redis版本即可
使用Redis Sentinel
连接 Redis
可以使用 redis-cli 命令连接到 Redis 服务器。例如:
redis-cli -h host -p port -a password
其中 host 是 Redis 服务器的主机名,port 是 Redis 服务器的端口号,password 是连接密码(如果有)。
#连接本地redis
redis-cli -p 6379
#启动redis
redis-server ./redis.conf
#关闭redis
redis-cli shutdown
Redis客户端命令
连接Redis服务器并进行身份验证
使用Redis客户端连接到Redis服务器后,可以使用AUTH命令进行身份验证。
假设你的密码是password,可以通过以下方式进行身份验证:
127.0.0.1:6379> AUTH password
如果密码正确,服务器将返回OK作为响应。
若密码不正确,服务器将返回一个错误信息。
验证连接状态
可以使用PING命令检查连接是否已成功进行身份验证。
127.0.0.1:6379> PING
如果返回PONG,说明连接已成功验证且仍处于活动状态。
查看sentinel配置去除注释和空格
cat /etc/redis-sentinel.conf |grep -v "#" |grep -v "^$"
1. 启动Sentinel
首先,确保你的Redis Sentinel配置文件(通常是sentinel.conf)正确配置了监控的master节点以及至少一个或多个Sentinel节点。
启动Sentinel的命令通常如下:
redis-sentinel /path/to/sentinel.conf
2. 停止Sentinel
停止Sentinel可以通过找到其进程并发送SIGTERM信号来实现,例如:
pkill -f redis-sentinel
或者,如果你知道具体的进程ID,可以使用:
kill -SIGTERM <pid>
使用Redis Cluster
1. 启动Cluster
启动Redis Cluster通常涉及多个Redis节点的启动,每个节点都需要一个独立的配置文件。例如,你有三个主节点和三个从节点:
redis-server /path/to/node1.conf
redis-server /path/to/node2.conf
redis-server /path/to/node3.conf
2. 停止Cluster
停止Redis Cluster的节点可以通过找到每个节点的进程并发送SIGTERM信号来实现:
pkill -f redis-server
或者,针对每个节点:
kill -SIGTERM <pid>
使用系统服务管理(推荐方式)
主从复制
# 查看信息
info replication
127.0.0.1:6379> info replication
# Replication
role:master # 当前为主角色
connected_slaves:0 # 是否拥有从角色机器
master_failover_state:no-failover
master_replid:854916ff764f8cf90f498bce30247096ffc8d7e1
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
外部文章
在liunx(CentOS7)上搭建redis哨兵模式 https://zhuanlan.zhihu.com/p/703158933
Curl
参数解释
参数组 | 参数 | 描述 |
响应头 | -I--head | (HTTP)只输出HTTP-header,不获取内容(HTTP/FTP/FILE)。用于HTTP服务时,获取页面的http头; (如:curl -I http://aiezu.com)用于FTP/FILE时,将会获取文件大小、最后修改时间; (如:curl -I file://test.txt) |
-i--include | (HTTP)输出HTTP头和返回内容; | |
-D <file>--dump-header <file> | (HTTP)转储http响应头到指定文件; | |
请求头 | -H "name: value"--header "name: value" | (HTTP)添加一个http header(http请求头); |
-H "name:"--header "name:" | (HTTP)移除一个http header(http请求头); | |
证书 | -k--insecure | (SSL)设置此选项将允许使用无证书的不安全SSL进行连接和传输。 |
其他选项 | -s--silent | 安静模式。不要显示进度表或错误消息; |
-L--location | (HTTP/HTTPS)追随http响应头“Location:”定向到跳转后的页面;(在http响应码为3XX时使用,如301跳转、302跳转) |
curl -k -s -L 'https://192.168.56.216/agent/download?k=142360d810217405fc852f476e9240ca2438cf72&group=1&protocol=0&root=true&runAccount=root&userAdd=false&app=0&container=0' | bash
-k参数指定跳过 SSL 检测。
$ curl -k https://www.example.com
上面命令不会检查服务器的 SSL 证书是否正确
-s参数将不输出错误和进度信息。
$ curl -s https://www.example.com
上面命令一旦发生错误,不会显示错误信息。不发生错误的话,会正常显示运行结果。
如果想让 curl 不产生任何输出,可以使用下面的命令。
$ curl -s -o /dev/null https://google.com
-L参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
$ curl -L -d 'tweet=hi' https://api.twitter.com/tweet
-i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的头信息。
|bash表示执行bash脚本,可参考:bash之在执行 curl 获取的脚本时将参数传递给 bash_编程设计_IT干货网
mkdir
使用mkdir命令结合-p选项。这将允许您创建一个或多个目录,并自动创建任何必要的父目录
mkdir -p /path/to/parent/directory/subdirectory
在上面的示例中,/path/to/parent/directory/subdirectory是您要创建的完整路径。如果该路径中的任何目录不存在,mkdir -p命令将自动创建它们。
防火墙
1.查看防火墙是否开启和开放的端口
1.查看防火墙是否开启:
systemctl status firewalld
2.显示active状态说明防火墙未打开,此时需打开防火墙:
systemctl start firewalld
3.查看已开放的端口:
firewall-cmd --list-ports (临时开放的端口)
firewall-cmd --list-ports --permanent (永久开放的端口)
2.开放端口
1.添加开放端口(以3306端口为例):
firewall-cmd --add-port=3306/tcp (临时开放)
firewall-cmd --add-port=3306/tcp --permanent (永久开放)
3.关闭端口
1.关闭开放的端口(以3306端口为例):
firewall-cmd --remove-port=3306/tcp (临时关闭)
firewall-cmd --remove-port=3306/tcp --permanent (永久关闭)
4.重载命令并重启防火墙使配置生效
firewall-cmd --reload (重载)
systemctl restart firewalld (重启防火墙)
more
功能简述:more命令,功能类似cat,cat命令是整个文件的内容从上到下显示在屏幕上。more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按b键就会往回(back)一页显示,而且还有搜寻字串的功能。more命令从前向后读取文件,因此在启动时就加载整个文件。
常用操作命令:
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令调用Shell,并执行命令
q 退出more
大文件显示查看
行数检索
tail -n 10 日志文件 查询日志尾部最后10行的日志;
tail -n +10 日志文件 查询10行之后的所有日志;
head -n 10 日志文件 查询日志文件中的头10行日志;
head -n -10 日志文件 查询日志文件除了最后10行的其他所有日志;
如果我们查找的日志很多,打印在屏幕上不方便查看,有两个方法:
使用more和less命令,如:cat -n test.log | grep "地形" | more 这样就分页打印了,通过点击空格键翻页
使用 > xxx.txt 将其保存到文件中,到时可以拉下这个文件分析,如:cat -n test.log | grep "地形" > xxx.txt
查找IP地址
方法一:使用 ifconfig 命令
ifconfig 是一个常用的命令行工具,用于配置和显示网络接口的信息,包括 IP 地址。要查找本地主机的 IP 地址,可以执行以下命令:
ifconfig |
上述命令将显示当前系统上所有网络接口的详细信息,包括 IP 地址。通常,IP 地址会显示在以 "inet" 开头的行中。
例如,如果要查找名为 eth0 的网络接口的 IP 地址,可以运行以下命令:
ifconfig eth0 |
命令输出类似于以下内容:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::a00:27ff:fe3f:bcde prefixlen 64 scopeid 0x20<link> ether 08:00:27:3f:bc:de txqueuelen 1000 (Ethernet) RX packets 1001011 bytes 717493201 (683.7 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 543209 bytes 103511267 (98.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 |
在上述输出中,inet 192.168.1.100 行显示了 eth0 接口的 IP 地址。
DNS
查看DNS
cat /etc/resolv.conf
配置DNS
在CentOS 7上配置DNS需要进行以下操作:
打开/etc/resolv.conf文件并编辑。可以使用vi或nano等编辑器来完成此任务。命令如下所示:
sudo vi /etc/resolv.conf
添加以下内容到该文件中(根据自己的情况修改IP地址):
nameserver <首选DNS服务器IP>
nameserver <备用DNS服务器IP>
保存更改后退出编辑器。
重新启动网络服务以应用更改。运行以下命令:
sudo systemctl restart network
或 service network restart
确认DNS设置已生效。运行以下命令查看当前系统的DNS配置:
cat /etc/resolv.conf
输入以上命令后,将显示类似于以下内容的结果:
# Generated by NetworkManager
search example.com
nameserver <首选DNS服务器IP>
nameserver <备用DNS服务器IP>
这表明DNS配置已经正确应用。
Rabbitmq
(1)启动RabbitMQ服务,执行命令:
# rabbitmq-server -detached 后台启动
rabbitmq-server 直接启动,如果你关闭窗口或者需要在改窗口使用其他命令时应用就会停止
(2)查看RabbitMQ运行状态,执行命令:
# rabbitmqctl status
(3)停止RabbitMQ服务,执行命令:
# rabbitmqctl stop
查看用户列表:rabbitmqctl list_users
集群
查看集群状态
rabbitmqctl cluster_status
默认的 cluster_name 名字为 rabbit@rabbit1,如果你想进行修改,可以使用以下命令:
rabbitmqctl set_cluster_name rabbitmq_cluster
卸载
rpm -qa | grep rabbitmq
rpm -e rabbitmq-server
防火墙
#### rabbitmq普通用户不能开放防火墙,使用root提前开放5672,15672端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
firewall-cmd --reload
140 金瀚文 6-20 10:28:18
141 firewall-cmd --zone=public --add-port=6379/tcp --permanent
142 firewall-cmd --zone=public --add-port=5672/tcp --permanent
143 firewall-cmd --zone=public --add-port=15672/tcp --permanent
144 firewall-cmd --zone=public --add-port=25672/tcp --permanent
145 firewall-cmd --zone=public --add-port=8012/tcp --permanent
146 firewall-cmd --zone=public --add-port=8100/tcp --permanent
147 金瀚文 6-20 10:28:29
148 firewall-cmd --zone=public --add-port=8090/tcp --permanent
149 firewall-cmd --reload
150 firewall-cmd --permanent --list-port
151 nproc
Mysql
mysql -u 用户名 -p
输入你的密码,然后回车。
use 数据库名称;
将“数据库名称”替换成你希望导入数据的数据库名称。
使用下面的命令导入数据:
mysql>source 数据文件路径;
将“数据文件路径”替换成你想要导入的数据文件的路径。
SELECT VERSION(); 此命令将返回当前MySQL数据库的版本号。
创建用户
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
以上代码创建了一个名为myuser的用户,并设置了登录密码为mypassword。localhost表示只允许从本地连接MySQL服务器。
mysql给用户分配查询权限
GRANT SELECT ON dbname.* TO 'username'@'localhost';
执行完授权命令后,可以使用FLUSH PRIVILEGES;命令来刷新权限,使更改立即生效。
查询表的索引信息
- INFORMATION_SCHEMA 数据库:
INFORMATION_SCHEMA 是一个特殊的数据库,包含了所有其他数据库的元数据。你可以查询 INFORMATION_SCHEMA 中的 STATISTICS 表来获取索引信息:
SELECT * FROM INFORMATION_SCHEMA.STATISTICS WHERE table_schema = 'your_database_name' AND table_name = 'your_table_name';
LIKE 操作符
在 MySQL 中,LIKE 操作符用于在查询中进行模式匹配。LIKE 操作中常用的占位符有:
% :表示任意字符序列(包括空字符序列)。
例如,'col%' 会匹配以 col 开头的任意字符串。
_ :表示任意单个字符。
例如,'col_' 会匹配以 col 开头后面紧跟一个任意字符的字符串。
示例:
SELECT * FROM your_table WHERE column_name LIKE '%value%'; -- 匹配包含'value'的任意字符串
SELECT * FROM your_table WHERE column_name LIKE 'value_'; -- 匹配以'value'开头后面紧跟一个任意字符的字符串
Yum包管理器
1. 查看所有已配置的仓库
你可以使用yum命令配合repolist选项来列出所有已配置的仓库及其状态:
yum repolist
或者
yum repolist all
这将显示每个仓库的ID、名称、状态等信息。
2. 查看特定仓库的详细信息
如果你想要查看特定仓库的详细信息,包括其URL,可以使用yum命令配合repo-list选项,例如:
yum repolist <repository-id>
其中<repository-id>是你想要查询的仓库的ID。例如,要查看名为base的仓库,可以使用:
yum repolist base
安装软件包
Yum -y install <package_name>
搜索命令
whereis:whereis命令会在整个系统中搜索可执行文件,包括系统自带的、第三方的以及用户自定义的,它会查找二进制文件、源代码文件和手册页文件。
which:which命令仅在用户的$PATH环境变量中指定的目录中搜索可执行文件,它不会搜索系统自带的可执行文件,只会搜索用户自定义的或者第三方的可执行文件。
[root@localhost rpm-gpg]# which redis
which: no redis in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin)
[root@localhost rpm-gpg]# whereis redis
redis: /usr/lib64/redis /etc/redis.conf
相关文章:
LINUX常用命令学习
查看系统版本 使用hostnamectl命令检查。hostnamectl显示了CentOS的版本以及操作系统的相关信息,非常方便 设置linux机器别名称 hostnamectl set-hostname 机器别名 --static 华为云 centos 命令:lsb_release -a linux:cat /proc/version 查看进程路…...
【java面向对象的三大特性】封装、继承和多态
目录标题 一、封装(Encapsulation):二、继承(Inheritance):三、多态(Polymorphism):1. 多态的三个必要条件:2.多态的具体实现:3.多态的使用场景&a…...
【开源免费】基于SpringBoot+Vue.JS校园商铺管理系统(JAVA毕业设计)
本文项目编号 T 191 ,文末自助获取源码 \color{red}{T191,文末自助获取源码} T191,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...
日常故障排查 - Java程序故障排查
Java程序故障 无论对于任何的故障而言,恢复可用性都是首要目标。但作为一个技术匠人,不能让同一个问题导致多次故障,因此故障的根因剖析以及解决也是很重要的。但是故障根因剖析是需要现场数据来进行分析,因此在故障恢复之前要尽…...
ai数字人分身系统开发源码saas化
#数字人分身系统# #数字人系统源码# #ai数字人123 123# 云罗抖去推数字人分身系统是一款融合了形象克隆、声音克隆、AI数字人分身、AI智能剪辑、智能文案等各种AI技术一体化的短视频营销工具,其核心功能优势主要体现在以下几方面: 真实度高…...
DeepSeek免费部署到WPS或Office
部署到WPS - 通过OfficeAI插件接入: - 准备工作:安装最新版本的WPS Office软件;访问DeepSeek官网,点击右上角的“API开放平台”,登录账号(若无账号需先注册),登录成功后,…...
vue2和vue3插槽slot最通俗易懂的区别理解
在 Vue 的组件通信中,slot(插槽)的编译优化是一个重要的性能提升点。以下是 Vue2 和 Vue3 在 slot 处理上的差异及优化原理,用更直观的方式解释: Vue2 的 Slot 更新机制 想象一个父子组件场景: 父组件&am…...
生成式人工智能:技术革命与应用图景
(这文章有些地方看不懂很正常,因为有太多生词,需要对 计算机/人工智能 研究至深的人才能看懂,遇到不会的地方用浏览器搜索或跳过) 引言 2023年被称我们为"生成式AI元年",以GPT-4、DALL-E 3、Stable Diffusi…...
关于Dest1ny:我的创作纪念日
Dest1ny 因为这是csdn任务,我就稍微“写”了一下! 如果大家真的有什么想聊的或者想一起学习的,欢迎在评论区或者私信中与我讨论! 2025想说的话 我就把我想说的写在前面! 不用对未来焦虑,不要觉得自己走…...
AI学习记录 - 最简单的专家模型 MOE
代码 import torch import torch.nn as nn import torch.nn.functional as F from typing import Tupleclass BasicExpert(nn.Module):# 一个 Expert 可以是一个最简单的, linear 层即可# 也可以是 MLP 层# 也可以是 更复杂的 MLP 层(active function 设…...
【C++内存管理】—— 策略、陷阱及应对之道
欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创…...
分布式版本控制系统---git
Git:从基础到进阶的全面指南 Git 是一个分布式版本控制系统,广泛应用于软件开发中,用于跟踪文件的更改、支持团队协作以及管理项目代码。通过 Git,开发者可以在本地拥有完整的项目历史记录,进行离线开发,并…...
pg_sql关于时间的函数
1、时间戳和日期之间的相互转换 时间戳转日期(时间戳为数值类型,若为字符型需进行转换) # 保留到秒:2025-10-02 04:46:40 (字符型转换数值型) select to_timestamp(1759351600::bigint)# 保留到日&#x…...
【Kafka】Windows下安装Kafka(全面)
目录 1.前提条件 2.下载 3.安装 4.环境变量配置 5.验证 1.前提条件 参考版本:zookeeper为3.6.4 kafka版本为3.5.1 1.先安装zookeeper: 【Zookeeper】Windows下安装Zookeeper(全面)-CSDN博客https://blog.csdn.net/…...
【Qt】:概述(下载安装、认识 QT Creator)
🌈 个人主页:Zfox_ 🔥 系列专栏:Qt 目录 一:🔥 介绍 🦋 什么是 QT🦋 QT 发展史🦋 Qt版本🦋 QT 优点 一:🔥 搭建Qt开发环境 ǹ…...
Netty源码解析之异步处理(二):盛赞Promise中的集合设计
前言 在阅读Netty源码的过程中,我越来越相信一句话:“Netty的源码非常好,质量极高,是Java中质量最高的开源项目之一”。如果认真研究,会有一种遍地黄金的感觉。 本篇文件我将记录一下鄙人在Promise的实现类DefaultPr…...
Spring Boot 的约定优于配置,你的理解是什么?
“约定优于配置” 是 Spring Boot 极为重要的设计理念,它极大地简化了 Spring 应用的开发流程,下面从多个方面详细解释这一理念: 减少配置复杂性 传统开发的痛点 在传统的 Spring 开发里,配置工作相当繁琐。以配置 Spring MVC …...
图形渲染(一)——Skia、OpenGL、Mesa 和 Vulkan简介
1.Skia —— 2D 图形库 Skia 是一个 2D 图形库,它的作用是为开发者提供一个高层次的绘图接口,方便他们进行 2D 图形渲染(比如绘制文本、形状、图像等)。Skia 本身不直接管理 GPU 或进行底层的渲染工作,而是通过 底层图…...
git使用,注意空格
第一节 安装完成后,找个目录用于存储,打开目录右击选择git bash here 命令1 姓名 回车 git config --global user.name "li" 命令2 邮箱 回车 git config --global user.email "888163.com" 命令3 初始化新仓库,下载克隆 回…...
以用户为中心,汽车 HMI 界面设计的创新之道
在汽车智能化飞速发展的当下,汽车 HMI(人机交互界面)成为连接人与车的关键桥梁。如何打造出优秀的 HMI 界面?答案是以用户为中心,探索创新之道。 用户需求是汽车 HMI 界面设计的指南针。在设计前期,深入调…...
CentOS安装Docker,Ubuntu安装Docker,Docker解决方案
文章目录 CentOS7安装DockerUbuntu修改Docker镜像源docker设置容器自动启动启动时加--restartalways如果已经过运行的项目docker compose设置容器自启动 docker file修改时区docker在容器执行命令简单粗暴的办法安装curl docker compose命令安装docker compose Docker WEB 图形…...
c#中“事件-event”的经典示例与理解
在C#编程语言中,事件(Event)是一个非常重要的概念,它提供了一种松耦合的方式,让对象间能够通知彼此,而无需直接联系。事件的使用可以让我们的代码更加灵活、可扩展且易于维护。 事件可以视作委托的实例&…...
git bash在github的库中上传或更新本地文件
一、将本地文件上传到 GitHub 仓库 1. 创建 GitHub 仓库 如果你还没有在 GitHub 上创建仓库,首先需要创建一个新的仓库: 登录到 GitHub。点击右上角的 按钮,选择 New repository。给你的仓库起个名字,并选择 Public 或 Privat…...
【编程实践】vscode+pyside6环境部署
1 PySide6简介 PySide6是Qt for Python的官方版本,支持Qt6,提供Python访问Qt框架的接口。优点包括官方支持、LGPL许可,便于商业应用,与Qt6同步更新,支持最新特性。缺点是相比PyQt5,社区资源较少。未来发展…...
vue 文件下载(导出)excel的方法
目前有一个到处功能的需求,这是我用过DeepSeek生成的导出(下载)excel的一个方法。 1.excel的文件名是后端生成的,放在了响应头那里。 2.这里也可以自己制定文件名。 3.axios用的是原生的axios,不要用处理过的ÿ…...
服务器延迟给视频网站造成的影响
在数字化时代中,网络视频已经成为人们日常娱乐和获取信息的重要平台,网络视频的流畅性会影响着用户的体验度,那么,当服务器出现延迟会对视频网站造成哪些影响呢?本文就来共同了解一下吧! 当所使用的服务器由…...
django上传文件
1、settings.py配置 # 静态文件配置 STATIC_URL /static/ STATICFILES_DIRS [BASE_DIR /static, ]上传文件 # 定义一个视图函数,该函数接收一个 request 参数 from django.shortcuts import render # 必备引入 import json from django.views.decorators.http i…...
Mysql数据库
一.数据定义语言DDL 一.概述 DDL用于定义和管理数据库的结构 DDL关键字:1.CREATE; 2.ALTER; 3.DROP 二.SQL命名规定和规范 1.标识符命名规则 2.标识符命名规范 三.库管理 1. CREATE DATABASE 数据库名; 2. CREATE DATABASE IF NOT EXISTS 数据库名; 3. CREATE…...
机器学习 - 大数定律、可能近似正确学习理论
一、大数定律: 大数定律是概率论中的一个基本定理,其核心思想是:当独立重复的随机试验次数足够大时,样本的平均值会趋近于该随机变量的期望值。下面从直观和数学两个角度来说明这一概念: 1. 直观理解 重复试验的稳定…...
Kotlin 2.1.0 入门教程(十七)接口
接口 接口可以包含抽象方法的声明,也可以包含方法的实现。 接口与抽象类的不同之处在于,接口无法存储状态。接口可以拥有属性,但这些属性要么必须是抽象的,要么就得提供访问器的实现。 接口使用 interface 关键字来定义&#x…...
USB Flash闪存驱动器安全分析(第一部分)
翻译原文链接:Hacking Some More Secure USB Flash Drives (Part I) | SySS Tech Blog 文章翻译总结:文章对一些具有AES硬件加密的USB闪存驱动器的网络安全分析研究。研究由SySS的IT安全专家Matthias Deeg进行,他在2022年初发现了几个安全漏…...
报名丨Computer useVoice Agent :使用 TEN 搭建你的 Mac Assistant
与 TEN 相聚在「LET’S VISION 2025」大会,欢迎来展位上跟我们交流。这次我们还准备了一场聚焦「computer use」的工作坊,功能新鲜上线,线下首波体验! 📅 TEN 展位:2025年3月1日-2日 TEN workshop&#x…...
常用架构图:业务架构、产品架构、系统架构、数据架构、技术架构、应用架构、功能架构及信息架构
文章目录 引言常见的架构图I 业务架构图-案例模块功能说明1. 用户界面层 (UI)2. 应用服务层3. 数据管理层4. 基础设施层业务流程图示例技术实现II 功能架构图 -案例功能模块说明1. 船舶监控模块2. 报警管理模块3. 应急响应模块4. 通信管理模块5. 数据分析模块数据管理层基础设施…...
微信小程序的制作
制作微信小程序的过程大致可以分为几个步骤:从环境搭建、项目创建,到开发、调试和发布。下面我会为你简要介绍每个步骤。 1. 准备工作 在开始开发微信小程序之前,你需要确保你已经完成了以下几个步骤: 注册微信小程序账号&…...
C# 特性 学习记录
在C#中,特性(Attribute)是一种用于向代码元素(如类、方法、属性等)添加元数据的机制。特性本身不会直接影响代码的执行,但它们可以提供额外的信息,这些信息可以在运行时通过反射(Ref…...
DBeaver clickhouse 时区不对 时间少了8小时
选择DataBase选择Driver Manager选择clickhouse数据库点中之后,选择编辑添加两个全局属性 use_server_time_zone use_time_zone 鼠标移动到User Properties上,右键即可添加一列空白 然后断开重连...
如何测试和验证CVE-2024-1430:Netgear R7000 路由器信息泄露漏洞分析
CVE-2024-1430 是一个影响 Netgear R7000 路由器的安全漏洞,漏洞来源于该路由器 Web 管理界面的信息泄露问题。攻击者通过访问 /currentsetting.htm 文件,可能泄露敏感信息,如 Wi-Fi 密码等。 在测试和验证 CVE-2024-1430 时,您需…...
Express 中间件是什么
在 Express 里,中间件是具备访问请求对象(req)、响应对象(res)以及应用程序请求-响应循环中的下一个中间件函数(一般用next表示)的函数。 一、中间件的定义与调用顺序 在 Express 应用中&…...
【做一个微信小程序】校园地图页面实现
前言 上一个教程我们实现了小程序的一些的功能,有背景渐变色,发布功能有的呢,已支持图片上传功能,表情和投票功能开发中(请期待)。下面是一个更高级的微信小程序实现,包含以下功能:…...
(萌新入门)如何从起步阶段开始学习STM32 —— 0.碎碎念
目录 前言与导论 碎碎念 所以,我到底需要知道哪些东西呢 从一些基础的概念入手 常见的工具和说法 ST公司 MDK5 (Keil5) CubeMX 如何使用MDK5的一些常用功能 MDK5的一些常见的设置 前言与导论 非常感谢2301_77816627-CSDN博客的提问,他非常好奇…...
java nio 原理 非阻塞IO Netty
一、为什么必须去了解NIO 首先你需要之后Netty的主要实现手段就是Nio,很多人一直学不明白Netty,根本原因是 除了日常开发中很难能够实践,很大一部分原因是不熟悉NIO,事实上真正熟悉了NIO和它背后的原理之后,去查看Netty的源码就有…...
【ClickHouse】Ubuntu下离线安装ClickHouse数据库并使用DBeaver连接
目录 0. 安装前准备1 安装ClickHouse1.1 下载安装包1.2 离线安装1.3 配置密码1.4 启动ClickHouse服务 2 DBeaver连接配置2.1 下载ClickHouse驱动2.2 DBeaver配置2.2.1 配置主要参数2.2.2 配置驱动 2.3 常见问题处理2.3.1 修改远程登录配置2.3.2 更新驱动配置 0. 安装前准备 有…...
vue2打包带路径的项目,刷新404问题解决
问题描述 Vue 2 项目打包时设置了 publicPath: /web/,并通过 Nginx 配置访问 http://ip/web 时可以正常加载首页,但刷新页面时出现 404 错误 原nginx的配置 location /web {alias /www/dist; # 静态文件地址try_files $uri $uri/ /index.html;index i…...
【计算机视觉】文本识别
计算机视觉,广义的文本识别是指对输入的图像进行分析处理,识别出图像中的文字信息,这里的图像可以使传统的文档图像,也可以是现实世界中的场景图像。 简介 无论是传统方法还是基于深度深度学习的方法,完整的文本识别…...
Vue和React的区别
组件开发方式: Vue 使用单文件组件(SFC), HTML, JS 和 CSS 在一个文件内实现 <template><div class"my-component"><!-- HTML模板 --></div> </template><script> export default {// JavaScr…...
STM32 是什么?同类产品有哪些
STM32 是什么? STM32 是由意法半导体(STMicroelectronics)推出的基于 ARM Cortex-M 内核 的 32 位微控制器(MCU)系列。它专为高性能、低功耗的嵌入式应用设计,广泛应用于以下领域: 工业控制&am…...
Git学习使用笔记
目录 一、基本介绍 1.1 版本控制 1.2 版本控制软件的基础功能 1.3 多人协作开发/集中式版本控制 1.4 分布式版本控制 二、Git安装 2.1下载git 2.2 使用Github Desktop软件 2.2.1 创建本地仓库 2.2.2 删除本地仓库 2.2.3 仓库文件操作 2.2.4 多人协作 2.2.4.1 分…...
Bash 中的运算方式
目录 概述: 1. (()) 运算符 2. let 命令 3. expr 命令 4. $[] 直接运算 5. bc(计算器,支持浮点数) 6. awk(强大的文本处理工具,也可计算) 概述: Bash 本身只支持整数运算&am…...
NLP Word Embeddings
Word representation One-hot形式 在上一周介绍RNN类模型时,使用了One-hot向量来表示单词的方式。它的缺点是将每个单词视为独立的,算法很难学习到单词之间的关系。 比如下面的例子,即使语言模型已经知道orange juice是常用组合词…...
Unity UI个人总结
个人总结,太简单的直接跳过。 一、缩放模式 1.固定像素大小 就是设置一个100x100的方框,在1920x1080像素下在屏幕中长度占比1/19,在3840x2160,方框在屏幕中长度占比1/38。也就是像素长款不变,在屏幕中占比发生变化 2.…...