常忘知识点归纳
0、个人工具下载
- 远程工具MobaXterm
https://www.nerubian.cn/soft/MobaXterm_Portable_v11.0.rar
- 文本编辑工具NotePad++中文版.7.5.6.7z
https://www.nerubian.cn/soft/NotePad++.7.5.6.7z
- WinRAR_x64_SC.exe
https://www.nerubian.cn/soft/WinRAR_x64_SC.exe
- WinRAR破解工具rarreg.key【RAR安装完后放到安装目录中即可】
https://www.nerubian.cn/soft/rarreg.key
1、yum 组安装(安装包集合)
yum -y groupinstall Development tools
#epel源
wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
yum provides *bin/nc
2、vim中,windows格式转换为unix格式
- 底行模式
- set ff=unix
3、vim:用vim修改文件编码为utf-8
- set fileencoding=utf-8
3、sed 插入命令
- (行下)插入一行
正则匹配:
sed -i '/^test/a\this is a test line' file
行数匹配:
sed -i '2a\this is a test line' test.conf
- (行上)插入一行
正则匹配:
sed -i '/^test/i\this is a test line' file
行数匹配:
sed -i '5i\this is a test line' test.conf
4、sed 替换
正则匹配:替换文本中的字符串:
sed -i '/^book/s/book/books/' file
sed -i "/^Hostname=/s/=.*/=`hostname`/" file
ansible test0 -m shell -a 'sed -i "/^Hostname=/s/=.*/=`hostname`/" /etc/zabbix/zabbix_agentd.conf
sed -i "s/$var1/$var2/g" file
sed -i "s/^ExecStart\=\/usr\/bin\/dockerd.*/ExecStart\=\/usr\/bin\/dockerd/g" /usr/lib/systemd/system/docker.service
sed -i '/^sapms/s/sapmsP53/sapmsB26/' /etc/services
sapmsB26 3600/tcp # guangdonglingguan
5、sed 删除
删除空白行:
sed '/^$/d' file
删除文件的第2行:
sed '2d' file
删除文件的第2行到末尾所有行:
sed '2,$d' file
删除文件最后一行:
sed '$d' file
删除文件中所有开头是test的行:
sed '/^test/'d file
5、添加环境变量
#添加环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
6、Linux终端快捷键
Shift+Ctrl+T: 新建标签页
Shift+Ctrl+W: 关闭标签页
Ctrl+PageUp: 前一标签页
Ctrl+PageDown: 后一标签页
Shift+Ctrl+PageUp: 标签页左移
Shift+Ctrl+PageDown:标签页右移
Alt+1: 切换到标签页1
Alt+2: 切换到标签页2
Alt+3: 切换到标签页3
Shift+Ctrl+N: 新建窗口
Shift+Ctrl+Q: 关闭终端
终端中的复制/粘贴:
Shift+Ctrl+C: 复制
Shift+Ctrl+V: 粘贴
终端改变大小:
F11: 全屏
Ctrl+plus: 放大
Ctrl+minus: 减小
Ctrl+0: 原始大小
7、非交互式改密码
echo 123|passwd --stdin username
8,查看 Centos 7 的 MAC 地址
cat /sys/class/net/网卡名/address
9、更改EL7系统启动模式
#更改成命令行模式
systemctl set-default multi-user.target
#更改成图像界面
systemctl set-default graphical.target
10、EL7改主机名
el6
sed -i '/^HOSTNAME=/s/=.*/=新名字/' /etc/sysconfig/network
el7
hostnamectl set-hostname 新名字
11、EL7查看开机启动列表
chkconfig --list
12、yum安装指定文件内写的软件
# 安装依赖 RPM 包
yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)
# cat /opt/jumpserver/requirements/rpm_requirements.txt
libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mariadb-devel mysql-devel libffi-devel openssh-clients telnet openldap-clients
13、linux 进入单用户模式修改root密码
https://blog.csdn.net/ugly_need_read/article/details/80665046
14、免密登录
单个
#生成密钥
ssh-keygen
生成之后会在用户的根目录生成一个 “.ssh”的文件夹,包含以下几个文件
authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥
id_rsa : 生成的私钥文件
id_rsa.pub : 生成的公钥文件
know_hosts : 已知的主机公钥清单
ssh公钥生效需满足至少下面两个条件:
1) .ssh目录的权限必须是700
2) .ssh/authorized_keys文件权限必须是600
#配置免密登录
ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.91.135
#指定密钥文件登录
ssh -i ~/.ssh/liyddsshkey developer@192.168.1.237 -p 23
批量免密登录脚本
user_name 替换为在服务器上的用户名,循环IP末尾字节,执行批量免密
for i in `seq 40 49`;do
ssh-copy-id -i ~/.ssh/id_rsa.pub user_name@192.168.1.$i
done
把ip写进/etc/hosts
for i in `seq 1 10`;do
ssh-copy-id -i ~/.ssh/id_rsa.pub pi$i
done
15、使用.sql文件建数据库
mysql -uroot -p123456 < /home/gsmc/sqltool/smkenter.sql
16、系统桌面添加用于关机和重启的快捷方式图标
cp /home/gsmc/soft/*.desktop $HOME/Desktop
chmod +x $HOME/Desktop/*.desktop
17、CPU占用异常排查方法
-
定位异常进程PID
shell> top
-
根据PID定位业务进程路径
语法:pwdx [pid] shell > pwdx 682
18、非交互式添加定时任务
echo "* * * * * hostname >> /tmp/tmp.txt" >> /var/spool/cron/root
./etc/init.d/cron restart
19、 利用crontab -l 加 crontab file 两个命令实现自动添加
crontab -l > conf && echo "* * * * * hostname >> /tmp/tmp.txt" >> conf && crontab conf && rm -f conf
./etc/init.d/cron restart
由于crontab file会覆盖原有定时任务,所以使用 crontab -l 先导出原有任务到临时文件 “conf” 再追加新定时任务
优点:不限用户,任何有crontab权限的用户都能执行
root用户快速添加方法
echo "xxx" >> /var/spool/cron/root
20、 Xshell安装rz与sz命令
服务器安装rz与sz命令:
yum install lrzsz
从服务端发送文件到客户端:
sz 文件名
从客户端上传文件到服务端:
rz 文件名
在弹出的框中选择上传文件下载文件的路径即可。
sz:将选定的文件发送到本地机器
rz:弹出一个文件选择窗口,从本地选择文件上传到服务器
21、 测端口
telnet mq1.server.yun.sinopec.com 8080
wget mq1.server.yun.sinopec.com 8080
ssh -v -p 8080 root@59.207.252.236
-v 显示连接debug信息
-p port 指定端口
[linux使用nmap查看端口]
<https://blog.csdn.net/zflovecf/article/details/79267769>
[linux使用nmap端口扫描工具扫描网段内开放的端口]
<https://blog.51cto.com/liuqun/1982726>
nmap -Pn -sS 192.168.1.1-10 -p80,873,22
22、磁盘IO状况查看
iostat -d -x -k 1 10
23、查看CPU状态
iostat -c 1
24、快速杀死进程
ps -ef|grep apache|grep -v grep |awk '{print $2}' |xargs kill -9
25、du命令
du -sh ./* 查看当前目录下大小,不包含下级目录
du -sh /* 总大小
26、mysqldump导出,不含drop
关键:--skip-add-drop-table
mysqldump -h127.0.0.1 -P3306 -uroot -p --skip-add-drop-table --databases pay_db --tables Branch > /tmp/Branch02.sql
27、rsync
- 本机同步
类似cp
注意:
1. 本地数据同步的时候,源目录后面的“/”会影响同步的结果
# rsync -av /dir1/ /dir3 //只同步目录下面的文件到指定的路径
# rsync -av /dir1 /dir2 //将当前目录dir1和目录下的所有文件一起同步
2. -R:不管加不加"/",都会将源数据的绝对路径一起同步
# rsync -avR /dir1/ /dir2/
3. --delete:删除目标目录里多余的文件
# rsync -avR --delete /dir1/ /dir2/
- 远程同步
类似scp
rsync远程同步依赖网络,依赖sshd服务
pull(拉): rsync -av user@host:/path local/path
# rsync -av root@10.1.1.1:/etc/hosts /dir1/
# rsync -av root@10.1.1.1:/backup /dir1
push(推): rsync -av local/path user@host:/path
# rsync -av /dir1/aa1 code@10.1.1.1:/home/code
思考:
28、grep同时匹配多个关键字或任意关键字
与操作
grep同时匹配多个关键字,同时匹配str1、str2和str3
grep 'str1' filename | grep 'str2' | grep 'str3'
或操作 grep匹配任意关键字
grep -E 'str1|str2|str3' filename
egrep实现
egrep 'str1|str2|str3' filename
awk实现
awk '/str1|str2/str3/' filename
其他操作
grep -i pattern filename #不区分大小写地搜索。默认情况区分大小写。
grep -l pattern filename #只列出匹配的文件名。
grep -L pattern filename #列出不匹配的文件名。
grep -w pattern filename #只匹配整个单词,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’)。
29、时间设置
date -s "2022-06-17 14:30:00"
hwclock -w
hwclock -s
30、打包压缩(排除指定文件)
tar -czvf file.tar.gz /home/gsmc/* --exclude=*.log --exclude=*.zip
tar -czvf zjzx.tar * --exclude=*.log --exclude=*.zip --exclude=backup --exclude=logs --exclude=wh --exclude=center-20201216
31、MQ改密码
# 查看用户
rabbitmqctl list_users
# 修改用户名对应密码
rabbitmqctl change_password Username 'Newpassword'
32、ssh改端口
更改端口号是通过修改SSH的配置文件实现的,登录ssh后,输入:
vim /etc/ssh/sshd_config
向下找到#Port 22这段
进入vi插入模式,进行编辑
删除掉Port 22前面的#,然后下一行输入新的端口号如:Port 10000(这个你自己定,最大不能超过65535)
编辑好,先按ESC键,再输入 :wq 保存退出.
接着重新启动ssh,代码如下:
/etc/init.d/sshd restart
3安全组
4防火墙端口
————————————————
版权声明:本文为CSDN博主「weixin_37799190」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_37799190/article/details/120286596
33、从指定的dns服务器进行查询
https://blog.csdn.net/qq_41982020/article/details/121231166
dig @192.168.0.2 www.baidu.com # 表示从192.168.0.2这个IP服务器对www.baidu.com进行A记录查询
34、查询文件的时间
stat filename命令来查看文件
会显示有三个时间
Access Time:简写为atime,表示文件的访问时间。当文件内容被访问时,更新这个时间
Modify Time:简写为mtime,表示文件内容的修改时间,当文件的数据内容被修改时,更新这个时间。
Change Time:简写为ctime,表示文件的状态时间,当文件的状态权限被修改时,更新这个时间,例如文件的链接数,大小,权限,Blocks数。
35、持续执行命令,并显示其执行结果
watch "whoami"
主要参数:
-n 或--interval watch缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d 或--differences 用-d或--differences 选项watch 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h 或--help 查看帮助文档
二、数据库
1、展示所有表
show tables;
2、查看建表语句
show create table sm_vouch;
3、排序查询