1、telnet进去后怎么退出:

telnet 10.102.5.119 22 查看ip,端口通讯状况

退出的话: Ctrl + ] 然后输入 q 退出,如下图:

linux常用命令(笔记)_linux

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用户名

linux常用命令(笔记)_linux_02

可以看到如上述,用户名为: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时报错:

linux常用命令(笔记)_linux_03

可以用下面方法解决:

直接在网上下载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(只试用于个别命令,注意查验),运行即可,如下图:

linux常用命令(笔记)_linux_04

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用户为新建一行

linux常用命令(笔记)_linux_05

# 上述保存退出后,把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 ,它保存了源文件的路径。
删除源文件则链接文件内容就不存在了。修改源文件则链接文件随之改变,
修改链接文件则源文件也随之改变。链接文件后面有指向符号 "->"

示例:

硬链接:

linux常用命令(笔记)_linux_06

软连接:

linux常用命令(笔记)_linux_07

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 

linux常用命令(笔记)_linux_08

26、linux下安装字体包
--首先查看服务器现有字体:
[root@localhost ~]#  fc -list

上述命令运行报没有命令,运行下述安装命令:
[root@localhost ~]# yum -y install fontconfig mkfontscale

安装后,查看服务器现有字体:
[root@localhost ~]#  fc -list

linux常用命令(笔记)_linux_09

可以看到此服务器中,字体放置目录是在/usr/share/fonts/dejavu路径下:

linux常用命令(笔记)_linux_10

把要安装的字体,放到此目录下,然后运行下述命令加载:

[root@localhost dejavu]# mkfontscale
[root@localhost dejavu]# mkfontdir
[root@localhost dejavu]# fc-cache
27、linux下查看服务器当前启动的jar包服务
jps  -l   ##小写的L, 可以查看当前启动的jar包服务,和对应服务pid

linux常用命令(笔记)_linux_11

比如上图,中可以查到现在启动的java进程,看到oa-api.xjar赌赢的9102 ,通过ps可以确定,此为这个进程的pid,后续可以用此命令,快速的定位启动进程的pid,和目前启动的啥服务等
几个jps的常用参数:
---不输入参数,可以快速定位启动了几个java进程,和显示对应pid,但是不会显示具体启动了那些java进程

linux常用命令(笔记)_linux_12

---  -q,只显示启动的java进程的pid

linux常用命令(笔记)_linux_13

---  -m,显示启动的java进程的pid,和对应启动端口

linux常用命令(笔记)_linux_14

---  -l (##小写的L) ,可以查看当前启动的jar包服务,和对应服务pid

linux常用命令(笔记)_linux_15

---  -v(小写),显示启动进程pid,和对应启动配置参数

linux常用命令(笔记)_linux_16

----  -V(大写),和直接jps ,不加参数输出结果一样

linux常用命令(笔记)_linux_17

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、存储虚拟化等