1、telnet进去后怎么退出:
telnet 10.102.5.119 22 查看ip,端口通讯状况
退出的话: Ctrl + ] 然后输入 q 退出,如下图:
2、linux下查看tomcat版本
curl 172.16.45.231:8080 | grep "Apache Tomcat"
curl IP:端口 | grep "Apache Tomcat"
3、关于CPU命令
——查看CPU型号
cat /proc/cpuinfo | grep name | sort | uniq
——查看物理CPU数量
cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l
——查看CPU线程数
cat /proc/cpuinfo | grep "processor" | sort | uniq | wc -l
——查看逻辑CPU核心数
cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l
4、linux下使用sftp上传或者下载文件
$ sftp username@IP
例如: $ sftp 用户名@IP 就可以进入sftp服务 ##根据提示输入密码
sftp> ls 可以查看/目录下文件
sftp> mkdir test 可以创建目录
sftp> touch 1.txt 可以创建文件
从Linux服务器上传文件到SFTP服务器上:
sftp> put -r 文件路径/文件名
-r 可以允许拷贝子目录及其文件;
-p 要保留修改时间、访问时间以及被传输的文件的模式,请使用 -p 标志
从SFTP上传文件到Linux服务器上:
sftp> get -r 目录文件 -r作用类似上边
退出sftp模式:
sftp> bye
或者
sftp> exit
上述两种命令均可以退出sftp
5、linux下ftp用户名和密码忘记怎么办
这种情况下,首先查找ftp用户名:
cat /etc/passwd 中可以找到ftp用户名
可以看到如上述,用户名为:ftpadmin
下面给ftpadmin设置新的密码:
passwd username
即: passwd ftpadmin
弹出需要输入新密码的窗口,设置新密码
最后,问题解决
6、linux下解压rar包
解压rar包:
解压命令: rar x xxx.rar 例如:rar x 38805-headend6.0.rar
压缩:
rar a etc.rar etc/
将 etc目录压缩为etc.rar 包
7、linux下crontab部署和使用
---linux下安装crontab
yum -y install vixie-cron
yum -y install crontabs
# chkconfig crond on #设为开机启动,先要安装chkconfig(yum install chkconfig)
# service crond start #启动
# service crond stop #停止
# service crond start //启动服务
# service crond stop //关闭服务
# service crond restart //重启服务
# service crond reload //重新载入配置
# service crond status //查看crontab服务状态
# /etc/rc.d/init.d/crond restart #重启
# /etc/rc.d/init.d/crond reload #不中断服务,重新载入配置
---linux下使用crontab
#crontab -e 编辑配置文件————常用命令
#crontab -u <-l, -r, -e>
# crontab -u 指定一个用户
# crontab -l 列出某个用户的任务计划
# crontab -r 删除某个用户的任务
# crontab -e 编辑某个用户的任务
---yum安装crontab时报错:
可以用下面方法解决:
直接在网上下载rpm安装包,下载地址:
http://mirror.centos.org/altarch/7/os/aarch64/Packages/crontabs-1.11-6.20121102git.el7.noarch.rpm
然后运行下面命令安装:
rpm -Uvh --force --nodeps *.rpm
8、linux下/home盘磁盘空间满,但是rm删除多余文件后,空间未释放,怎么办
/home磁盘空间满,删除大文件日志后,发现磁盘空间未释放
lsof|grep deleted 可以查看已删除文件,还在被占用的进程;找到我们rm删除的文件涉及的进程,直接kill调,就OK
9、linux下找不到ifconfig命令
yum -y install net-tools.x86_64
10、linux下同步服务器时间
ntpdate time.windows.com ###找不到命令,直接yum安装 ntpdate就OK
11、安装当前目录下所有rpm包
rpm -ivh --force --nodeps *rpm
12、linux下如何在不重启服务器的情况下,kill当前所有启动进程
disown -r
13、当linux服务中登录了数据库,但是懒得登出来,怎么在数据库中运行linux命令呢?
###mysql在linux命令前加system(只试用于个别命令,注意查验),运行即可,如下图:
oracle中执行操作系统命令,类似mysql,是!+linux命令;mysql是system+Linux命令;
或者hosts <DOS命令><bash命令>
14、linux下新建用户+配置密码+把普通用户添加到sudo组中
--新建用户test
# useradd test
--查看当前用户所属用户组
$ groups
$ test ##发现test用户所属用户组为test
--配置密码--root用户下执行
# passwd test
更改用户contract的密码。 ##注意新密码规则是字母、数字、特殊字符、下划线至少包含四种规则中三种
新的密码: ##输入新密码,注意新密码规则是字母、数字、特殊字符、下划线至少包含四种规则中三种
重新输入新的 密码: ##重新输入确认
passwd:所有的身份令牌已成功更新 ##修改密码结束
--把普通用户添加到sudo组中
在root权限下修改
# cd /etc/
# chown u+w sudoers ##默认sudoers文件没有写入权限,此处添加权限
# vim sudoers
找到root ALL=(ALL) ALL 这一行下边新加一行,如下图contract用户为新建一行
# 上述保存退出后,把sudoers权限修改回来
# chmod u-w sudoers
再次尝试进入普通用户中,用sudo -i 就能进入到root用户
15、linux下useradd -s /sbin/nologin mysql 新建mysql用户报错---Creating mailbox file: File exists
原因:因原来新建用户,只删除了用户,并未删除用户配置文件
解决方法:userdel -r mysql ##删除用户
16、linux下给普通用户sudo权限
有时候,linux下面运行sudo命令,会提示类似:
xxxis not in the sudoers file. This incident will be reported.
这里,xxx是用户名称,然后导致无法执行sudo命令,这时候,如下解决:
进入超级用户模式。也就是输入"su -",系统会让你输入超级用户密码,输入密码后就进入了超级用户模式。(当然,你也可以直接用root用)
添加文件的写权限。也就是输入命令"chmod u+w /etc/sudoers"。
编辑/etc/sudoers文件。也就是输入命令"vim /etc/sudoers",进入编辑模式,找到这一 行:"root ALL=(ALL) ALL"在起下面添加"xxx ALL=(ALL) ALL"(这里的xxx是你的用户名),然后保存退出。
撤销文件的写权限。也就是输入命令"chmod u-w /etc/sudoers"。
OK
17、linux下,查看进程是否有多个卡住
top -Hp pid号
18、linux服务器中,验证接口post请求调用命令:
curl -v 接口链接 -d '入参' -X POST -H "Content-Type: application/json" -k > curl 结果保存到哪个文件中
示例:
curl -v http://172.168.2.68:8083/webservice/restful/wzxd/elereceipt/query -d '{"appId":"5I73sD","data":{"receiptList":[{"receiptCode":"ZJFK_1_202211_00000565"}],"taxNum":"91330300747029418P"},"requestId":"d33e227359204aaab7a2e80aac05396d","requestTime":"20221128171919","version":"1.0"}' -X POST -H "Content-Type: application/json" -k > out.txt
19、linux下Redis登录
cd /home/redis/redis4.0.14/redis4/bin
./redis-cli -p 6379 -a password ##password为Redis密码
---查找所有key:
keys *
---清空当前db所有key :
flushall
---模糊查询key:
keys eaf*
---删除指定key
del eaf:menu:urls (redis中key不能为空,清空key就是删除此key)
20、linux下服务器时间12小时制改为24小时制
13:00,显示为1:00
---查看配置:
cat /etc/locale.conf
看到LANG="en_US.UTF-8"
看到是英文版的utf8,导致服务器默认是12小时版本,分上午和下午,1:00实际就是下午1:00,
---要想改成24小时制的话,修改上述配置,改为中文版utf8
LANG="zh_CN.UTF-8"
21、linux下硬链接和软连接命令:
硬链接:默认条件下创建的文件为硬链接文件,即 ln 文件名 链接文件名 。
硬链接文件共享文件的 inode ,是对文件物理地址的操作,相当于拷贝了源文件。
删除源文件而链接文件依然有效。修改源文件则链接文件随之改变,
修改链接文件则源文件也随之改变。链接文件后面没有指向源文件的指向符号 "->"。
软连接:也叫符号链接。创建方式为 ln -s 文件名 链接文件名 。
软连接创建了新的 inode ,它保存了源文件的路径。
删除源文件则链接文件内容就不存在了。修改源文件则链接文件随之改变,
修改链接文件则源文件也随之改变。链接文件后面有指向符号 "->"
示例:
硬链接:
软连接:
22、linux下修改服务器时区
timedatectl set-timezone Asia/Shanghai
设置服务器时区为上海
23、linux中批量下载文件命令
方法一:
`curl` 命令可以用来批量下载文件,方法是创建一个包含 URL 列表的文本文件,然后使用 `xargs` 命令将列表中的每个 URL 都传递给 `curl` 命令进行下载。以下是具体步骤:
1. 创建包含 URL 列表的文本文件。例如,假设我们要下载三个文件,可以将这些文件的 URL 分别保存在一个名为 `urls.txt` 的文本文件中:
```txt
https://example.com/file1.txt
https://example.com/file2.txt
https://example.com/file3.txt
```
2. 使用 `xargs` 命令将 URL 列表中的每个 URL 传递给 `curl` 命令进行下载。以下是一个示例命令:
```bash
cat urls.txt | xargs -n 1 curl -O
```
以上命令会从 `urls.txt` 中读取每行 URL,并将每个 URL 传递给 `curl` 命令进行下载。`-n 1` 选项表示每次只传递一个参数给 `curl` 命令,避免同时下载多个文件导致速度变慢。
`-O` 参数让 `curl` 命令将下载的文件以原始文件名保存到本地文件系统中。
3. 执行命令并等待下载完成。如果一切正常,批量下载的文件会保存到当前目录中。
需要注意的是,如果要批量下载的文件比较大,建议使用更加专业的下载工具,例如 `wget` 或者 `aria2`,因为它们的下载速度比 `curl` 更快,并且支持断点续传等高级功能。
方法二:
如果想要使用 `wget` 进行并发批量下载,可以使用 `-P` 选项指定下载任务数,以便同时下载多个文件。例如,假设我们要下载的文件 URL 列表保存在一个名为 `urls.txt` 的文件中,有如下内容:
```txt
https://example.com/file1.txt
https://example.com/file2.txt
https://example.com/file3.txt
https://example.com/file4.txt
https://example.com/file5.txt
https://example.com/file6.txt
https://example.com/file7.txt
https://example.com/file8.txt
https://example.com/file9.txt
https://example.com/file10.txt
```
我们可以使用如下命令进行并发批量下载,其中 `-P` 选项指定同时下载的文件数为 5:
```bash
wget -i 1.txt -P ./download/ -c --no-check-certificate --random-wait -r -N -nH -t 5 -T 60 -w 10 -q
```
里面,`-P ./download/` 表示文件保存路径为当前目录下的 download 文件夹中。
需要注意的是,大量的并发下载可能会给目标服务器带来负担,因此在实际使用时要注意合理设置 `-P` 参数,并且不要将下载速度设置过快,避免对服务器造成不必要的压力。
24、linux下服务器清内存缓存命令:
echo 3 > /proc/sys/vm/drop_caches
25、linux下查看启动网卡
nmcli connection show
26、linux下安装字体包
--首先查看服务器现有字体:
[root@localhost ~]# fc -list
上述命令运行报没有命令,运行下述安装命令:
[root@localhost ~]# yum -y install fontconfig mkfontscale
安装后,查看服务器现有字体:
[root@localhost ~]# fc -list
可以看到此服务器中,字体放置目录是在/usr/share/fonts/dejavu路径下:
把要安装的字体,放到此目录下,然后运行下述命令加载:
[root@localhost dejavu]# mkfontscale
[root@localhost dejavu]# mkfontdir
[root@localhost dejavu]# fc-cache
27、linux下查看服务器当前启动的jar包服务
jps -l ##小写的L, 可以查看当前启动的jar包服务,和对应服务pid
比如上图,中可以查到现在启动的java进程,看到oa-api.xjar赌赢的9102 ,通过ps可以确定,此为这个进程的pid,后续可以用此命令,快速的定位启动进程的pid,和目前启动的啥服务等
几个jps的常用参数:
---不输入参数,可以快速定位启动了几个java进程,和显示对应pid,但是不会显示具体启动了那些java进程
--- -q,只显示启动的java进程的pid
--- -m,显示启动的java进程的pid,和对应启动端口
--- -l (##小写的L) ,可以查看当前启动的jar包服务,和对应服务pid
--- -v(小写),显示启动进程pid,和对应启动配置参数
---- -V(大写),和直接jps ,不加参数输出结果一样
28、正则规则配置
---常见规则匹配:
正则的书写规则:两个斜杠包起来,^符号表示开始,$符号表示结束
let reg = /^d+[a-z]+$/
1.\d 匹配数字
2.\d+ 匹配1个或者多个数字
3.[a-z] 匹配26个小写字母,注意必须为升序,不能[z-a]这样写
4.[0-9] 匹配0到9的数字
5.\w 匹配 数字、字母、下划线,注意是小写w
6.\d{5,6} 大括号包起来表示匹配5到6位
7.\D 匹配非数字
8.\s 匹配空格,包括制表符、换行符,主要是小写s
9.\S 匹配非空格,注意是大写S
10.[,:。?] 匹配中括号中出现的字符,也称原子表
11.[^,:。?] 中括号中前面加上^符号表示不匹配原子表中出现的字符
12.(123|345) 小括号包起来称为原子组,表示一个整体
13.\W 匹配除了字母、数字、下划线
14. . 小数点,匹配除了换行符以外的任意字符
15. + 匹配一个或多个
16. * 匹配零个或者多个
17. ? 匹配有或者没有
18./\p{L}/gu 只匹配字母
19./\p{P}/gu 只匹配标点符号
20./\p{sc=Han}/gu 只匹配汉字
21.\1 \2 \3 ... 配合原子组使用,\1表示该位置的内容和第一个原子组匹配到的内容一致,\2表示和第二个原子组的内容一致,以此类推
22.(?:) 原子组中前面加上问号和冒号,表示不记录该院子组
23.?= 断言匹配,表示匹配某个字符后面是什么的时候才能匹配到
24.?<= 断言匹配,表示某个字符前面是什么的时候才能别匹配到
25.?! 断言匹配,表示某个字符后面不是什么的时候才能被匹配到
26.?<! 断言匹配,表示某个字符前面不是什么的时候才能被匹配到
27. /\d+/g g 模式表示全局匹配
28. /[a-z]+/i i 模式表示不区分大小写
29. /[a-z]+/s s 模式表示将字符串作为单行来匹配
30. /[a-z]+/m m 模式表示多行匹配
31. /[a-z]+/y y 模式表示匹配到内容后不继续往后匹配
常用正则规则
验证邮箱:/^[\da-z][\w.]+@(\w+\.)+(com|cn|org)$/i
规则说明:以数字或者字母开头,数字字母下划线为主体,一个@符号,后面跟上数字字母下划线和小数点,可以为多个,以com 或 cn 或 org结尾,不区分大小写
验证网址:/^https?:\/\/\w+\.(\w+\.)+[a-z]$/
规则说明:以http开头,s有或没有,跟上冒号和双斜杠,然后数字字母下划线匹配多个后面加上小数点,接着数字字母下划线和小数点,可以存在多个,最后以字母结尾
验证11位手机号:/^1[357]\d{9}$/
规则说明:以13、15、17开头,后面跟上9位数字结尾
使用方法:
// 普通手机号
let phonereg = /^1[357]\d{9}$/
// 返回true和false
console.log(phonereg.test("156s2222222"));
示例:
要配置前两位字母,后跟18位数字的正则规则:
\w{2}\d{18}
上述\w表述匹配数字、字母、下划线,注意是小写w
{2}表示是匹配两位符合\w规则的
\d 表示匹配数字
{18}表示是18位数字
29、linux服务器禁ping
---临时禁用,服务器重启后,恢复
echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_all
此方法主要临时使用,服务器重启后,就会失效
---永久禁ping
vim /etc/sysctl.conf
#文件最后一行添加
net.ipv4.icmp_echo_ignore_all = 1
#加载生效
sysctl -p
30、docker常用命令
#启动docker服务
systemctl status docker
#停止docker服务
systemctl stop docker
#检查docker守护进程状态
docker stats
#查看docker相关信息
docker info
#列出所有容器
docker ps -a
#最后一次运行的容器
docker ps -l ##后边是跟的小写L
#重新启动已停止的容器
docker start 容器名(也可以使用容器ID)
#获取容器的日志
docker logs 容器名
#获取最后几条日志
docker -f 容器名
#列出镜像
docker images
#拉取镜像
docker pull 镜像名
#删除所有容器
docker rm $(docker -ps -a -q)
#删除单个容器
docker rm 容器名
#删除所有镜像
docker rmi $(docker images | grep none | awk '{print $3}' | sort -r)
#保存镜像
docker save 镜像名 > /home/新镜像名.tar
#加载自定义镜像
docker load < /home/自定义镜像
#获取容器更多信息
docker inspect 容器名
#删除为none得镜像
docker images --no-trunc| grep none | awk '{print $3}' | xargs -r docker rmi
#docker端口映射
docker run -p [宿主机端口]:[容器内部端口] image_name
31、web端程序访问过程慢时,如何排查问题
1、首先,确定是否是当前访问电脑本身服务器性能资源爆满问题,导致的卡顿
2、然后确认,是否是本身此电脑浏览器缓存过多,导致卡顿
3、确定是否是这台服务器浏览器版本过低导致的问题
4、联系多客户多电脑测试下,看是否是客户网络网卡网速限制问题
5、检查数据库服务资源,是否是服务器进程卡死等导致服务器读写过慢
6、然后检查程序jar包本身是否有bug,需要优化等
7、最后排查系统是否被恶意攻击等
8、或者持续观察相应中间件等官网,看是否中间件版本过低有对应漏洞,注意及时更新最新版本对漏洞做修复
32、虚拟化什么意思?主流虚拟化技术包括哪些?
虚拟化:资源的逻辑表示,不受限物理限制
1、虚拟机
2、容器化虚拟化:docker打包等
3、硬件虚拟化:利用特定的硬件支持来提供虚拟化功能
4、网络虚拟化:物理网络资源抽象为虚拟网络,使得虚拟机或者容器之间能互相通信,常见的有虚拟局域网(VLAN)、虚拟交换机和软件定义网络(SDN)等
5、存储虚拟化等