本文档仅仅是自己安装软件指南或者安装过程中踩的坑。
nohup.out文件过大
tips:最近发现有不少人在百度这个问题,当初如易我也是初学者,随便从网上搜了一下,就转过来了,不过为了避免搜索结果同质化,为大家提供更翔实的参考,我将nohup.out相关
知识整理汇总如下:
1.nohup.out的由来及作用
用途:LINUX命令用法,不挂断地运行命令。
语法:nohup Command [ Arg … ] [ & ]
描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
例子: nohup ./startWeblogic.sh & 意思是即使退出ssh界面,命令仍然在后台执行,并且打印过程日志到nohup.out,当然也可以将nohup.out的输出转向到其他文件,高级应用请参考扩展阅读。
2.nohup.out的查看方式与方法
实际使用过程中,往往人们为了省心(嗯,没错,就是懒),经常没有给nohup.out进行重定向输出,也没有按日期分割文件,会造成这个文件特别巨大,达到2G或者3G,这个使用想查看文件,搜索出错内容就比较痛苦了。一般有两种方式
1.linux本机查看:使用tail 命令,查看最新的日志,或滚动监控日志打印。
例如命令 tail -1000 nohup.out (查看最后1000行日志文本) tail -f nohup.out(监控日志打印)
2.ftp下载到windown主机查看:一般小的log文件都没有问题,但是过G的,一般的文本文档查看就显得无力了。推荐使用UltraEdit进行打开。1234
3.nohup.out维护管理方法(清空nohup.out)
如上文所述出现了超大号的文件简直是令人讨厌的事情,而且nohup.out会一直一直自己增长下去,如果你的服务器硬盘不给力的话,很容易把应用也挂掉(硬盘没空间 ,啥都玩不转),但是又不能一味的直接删。因为直接删除,可能会造成应用无法打印后续的错误日志,该问题常见于weblogic服务器,jboss服务器等这些大型中间件,这个在生产环境上要尤为注意。
因此就有了我们不停止服务直接,清空nohup.out文件的方法。
两个可以不用停止WEB服务就可以清空nohup.out的命令。
第一种:cp /dev/null nohup.out
第二种:cat /dev/null > nohup.out12
两个我都用过,不用担心网上所说的性能问题,通常2/3 个G的文件都是1-2秒执行完毕
4.扩展阅读
1.nohup的重定向,一劳永逸解决nohup.out文件过大的问题
以下是定义日志打印级别,除了高于级别2的告警信息记录到log文件外,其余直接不记录
//只输出错误信息到日志文件
nohup ./program >/dev/null 2>log &
//什么信息也不要
nohup ./program >/dev/null 2>&1 &1234
2.Linux的3种重定向
0:表示标准输入
1:标准输出,在一般使用时,默认的是标准输出
2:标准错误信息输出123
可以用来指定需要重定向的标准输入或输出。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
3.关于/dev/null文件
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
https://blog.csdn.net/rickiyeat/article/details/71158936
Pycharm操作
复制粘贴不能用
问题:复制粘贴没有用,一直是如图所示,写入删除也无效
,按键盘的insert键,就可以写入,但是老是恢复回去。
解决方案:取消选择Tools–>Vim Emulator
常用快捷键
直接输入 main 然后按 回车键 或 tab键,就可以了。
2.1编辑类
Ctrl + 鼠标 跳转到(变量、方法、类)声明
Ctrl + / 行注释
Ctrl + Shift + / 块注释
Ctrl + Shift + ]/[ 选定代码块结束、开始
Alt + / 自动完成(联想)
Ctrl + Alt + L 代码格式化
Ctrl + Alt + O 优化导入
Ctrl + Alt + I 自动缩进
Tab / Shift + Tab 缩进、不缩进当前行
Ctrl + D 复制选定的区域或行
Ctrl + Y 删除选定的行
2.2运行类
Shift + F10 运行
Shift + F9 调试
2.3调试类
F8 跳过
F7 进入
Shift + F8 退出
Alt + F9 运行游标
Alt + F8 验证表达式
Ctrl + Alt + F8 快速验证表达式
F9 恢复程序
Ctrl + F8 断点开关
Ctrl + Shift + F8 查看断点
2.4导航类
Ctrl + N 跳转到类
Ctrl + Shift + N 跳转到文件
Alt + Right/Left 跳转到下一个、前一个编辑的选项卡
F12 回到先前的工具窗口
Esc 从工具窗口回到编辑窗口
Shift + Esc 隐藏运行的、最近运行的窗口
Ctrl + Shift + F4 关闭主动运行的选项卡
Ctrl + G 查看当前行号、字符号
Ctrl + E 当前文件弹出
Ctrl+Alt+Left/Right 后退、前进
Ctrl+Shift+Backspace 导航到最近编辑区域
Alt + F1 查找当前文件或标识
Ctrl+B / Ctrl+Click 跳转到声明
Ctrl + Alt + B 跳转到实现
Ctrl + Shift + I查看快速定义
Ctrl + Shift + B跳转到类型声明
Ctrl + U跳转到父方法、父类
Alt + Up/Down跳转到上一个、下一个方法
Ctrl + ]/[跳转到代码块结束、开始
Ctrl + F12弹出文件结构
Ctrl + H类型层次结构
Ctrl + Shift + H方法层次结构
Ctrl + Alt + H调用层次结构
F2 / Shift + F2下一条、前一条高亮的错误
F4 / Ctrl + Enter编辑资源、查看资源
Alt + Home显示导航条F11书签开关
Ctrl + Shift + F11书签助记开关
Ctrl + #[0-9]跳转到标识的书签
Shift + F11显示书签
2.5查找/替换类
F3 下一个
Shift + F3 前一个
Ctrl + R 替换
Ctrl + Shift + F 全局查找
Ctrl + Shift + R 全局替换
Alt + F7/Ctrl + F7文件中查询用法
Ctrl + Shift + F7文件中用法高亮显示
Ctrl + Alt + F7显示用法
2.6重构类
Alt + Delete安全删除
Shift + F6重命名
Ctrl + F6更改签名
Ctrl + Alt + N内联
Ctrl + Alt + M提取方法
Ctrl + Alt + V提取属性
Ctrl + Alt + F提取字段
Ctrl + Alt + C提取常量
Ctrl + Alt + P提取参数
Git操作
linux上传git文件
(1)下载git项目gitalk,并配置git
git clone https://github.com/m01ly/gitalk
cd gitalk
[root@xxx gitalk]# git config --global user.name "m01ly"
[root@xxx gitalk]# git config --global user.email 2418093296@qq.com
(2) 添加所有需要上传的文件和配置到git
git add FILE
添加确定的文件FILEgit add .
添加当前目录下所有文件
cd gitalk
[root@xxxx gitalk]# git add .
(3) 提交文件
上述命令必须添加‘-m’及‘log message’,其中log message可以自己随便填写,否则是提交不成功的,在后面的push操作中会提示错误:“error:src refspec master does not match any”
git commit -m 'log message'
至此,我们就已经提交文件到本地仓库了!
现在我们需要将上述本地仓库里的文件添加到远程库!
(4)在github里添加origin
git remote add origin https://github.com/m01ly/gitalk.git
注意:如果之前配置过一次,再次配置则会提示以下错误:
ERROR:远程 origin 已经存在。
此时只需要将远程配置删除,重新添加即可;
git remote rm origin
git remote add origin https://github.com/m01ly/gitalk.git
再次提交文件即可正常使用
(5)上传文件
git push -u origin master
执行此命令后,git会提示输入github账户的用户名和密码,验证通过后,进行文件上传!
注意:
ERROR:error: src refspec master does not match any.
error: failed to push some refs to ‘https://github.com/m01ly/gitalk.git'
解决方案:因为 GitHub 从今年 10 月 1 日起,在该平台上创建的所有新的源代码仓库将默认被命名为 “main”,而不是原先的”master” ,因此运行git branch查看名称,
a.如果是main,直接运行以下即可。
git push -u origin main
b.若为master,则改为按如下方式把本地的 master 仓库名称修改为远端的 main即可:
重命名命令: git branch -m oldBranchName newBranchName
例如: git branch -m master main
再重新push:git push -u origin main
打开git项目,发现提交成功:
参考:
Git 常见错误 之 error: src refspec xxx does not match any / error: failed to push some refs to 简单解决方法
linux下载git文件
(1) gitclone项目
git clone https://github.com/m01ly/gitalk
报错
[root@xxx]# git clone https://github.com/m01ly/gitalk
Cloning into 'gitalk'...fatal: unable to access 'https://github.com/m01ly/gitalk/': Problem with the SSL CA cert (path? access rights?)
解决方案:将http.sslVerify参数的git全局配置为’false’
root@xxx:~# git config --global http.sslVerify false
TLS 安全配置
DHparam
Diffie-Hellman group smaller than 2048 bits 漏洞
漏洞描述:
- Diffie-Hellman group smaller than 2048 bits:
TLS服务器使用Diffie-Hellman组,质数模长度小于2048位。目前的估计是,一个学术团队可以打破768位素数,而一个国家级团队可以打破1024位素数。
- TLS/SSL Server Is Using Commonly Used Prime Numbers
在Diffie-Hellman密钥交换期间,服务器使用一个公共素数或默认质数作为参数。这使得安全会话容易受到预计算攻击。攻击者可以花费大量时间为特定质数生成查找/彩虹表。然后,可以使用此查找表获取握手的共享机密并解密会话。
漏洞分析:
漏洞1,只需要重新生成2048位DH参数即可。
漏洞2,因为用了已知的素数,会导致爆破后破解出密钥,因此只需要升级到2048位参数,在2048位DH组下进行这种攻击的可行性被评估为不确定且未经证实。
漏洞解决方法:重新生成2048位dhparams。nginx配置如下,其他容器详见https://weakdh.org/sysadmin.html 。
1 利用openssl生成2048bit dhparams.pem命令如下:
openssl dhparam -out dhparams.pem 2048
dh协议文件生成速度随长度增长而急剧增长,使用随机数种子可以加快生成速度,如下所示
openssl dhparam -rand rand.seed -out dhparams.pem 2048
2 nginx配置 (nginx.conf文件):ssl_dhparam dhparams.pem的路径;
参考:
官方TLS部署Diffie-Hellman指南,包括apache,iis环境下的配置
TLS 的nginx安全配置](https://gist.github.com/fotock/9cf9afc2fd0f813828992ebc4fdaad6f)
https://kb.fortinet.com/kb/documentLink.do?externalID=FD43985 https://www.rapid7.com/db/vulnerabilities/tls-dh-primes 解决方法
https://weakdh.org/logjam.html https://weakdh.org/ 相关DH的攻击
工具安装
centos 安装sqlmap
[root@m01ly ~]# git clone https://github.com/sqlmapproject/sqlmap.git
[root@m01ly ~]# cd sqlmap
[root@m01ly sqlmap]# ./sqlmap.py -h
___
__H__
___ ___[.]_____ ___ ___ {1.4.9.1#dev}
|_ -| . [,] | .'| . |
|___|_ [,]_|_|_|__,| _|
|_|V... |_| http://sqlmap.org
Usage: python sqlmap.py [options]
Options:
-h, --help Show basic help message and exit
-hh Show advanced help message and exit
--version Show program's version number and exit
-v VERBOSE Verbosity level: 0-6 (default 1)
Target:
centos 安装最新nmap
CentOS 7下直接yum安装nmap
# yum install nmap
发现并不是最新版本,而且升级一下看看,发现也不能直接升级。只好再直接yum卸载掉。
**按官方文档rpm安装最新版本的nmap**
[root@localhost www.linuxidc.com]# rpm -vhU https://nmap.org/dist/nmap-7.80-1.x86_64.rpm
获取https://nmap.org/dist/nmap-7.80-1.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:nmap-2:7.80-1 ################################# [100%]
源码安装nmap
wget https://nmap.org/dist-old/nmap-4.53.tgz
tar -zxvf nmap-4.53.tgz
cd nmap-4.53
./configure
make
make install
nmap -v
https://www.jianshu.com/p/b86c3b114cce
查看linux具体系统
[root@m01ly ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.7.1908 (Core)
Release: 7.7.1908
Codename: Core
安装kali
https://blog.csdn.net/qq_43645782/article/details/106190796
修改root密码
root@m01ly:~# sudo passwd root
新的 密码:
重新输入新的 密码:
passwd:已成功更新密码
centos 安装AWVS
https://blog.lfoder.cn/2020/06/04/%E6%BC%8F%E6%B4%9E%E6%89%AB%E6%8F%8F-AWVS-Nessus-Docker%E7%89%88/
centos 安装docker
卸载旧版本
较旧的 Docker 版本称为 docker 或 docker-engine 。如果已安装这些程序,请卸载它们以及相关的依赖项。
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装 Docker Engine-Community
可以选择国内的一些aliyun源地址:
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装 Docker Engine-Community
安装最新版本的 Docker Engine-Community 和 containerd,或者转到下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
启动 Docker。
$ sudo systemctl start docker
通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community 。
$ sudo docker run hello-world
docker 访问宿主机目录
挂载一个目录
docker run -it -v $path_to_host_data:$new_path_in_docker deep_sleepnet:1.0 /bin/bash
执行之后,相当于把此数据目录挂载在对应docker的目录中,用 即可查看并访问所挂载数据。Dockerfile中最后一行运行相应的
例如:
[root@m01ly ~]# docker run -it -m 4G -v /var/log/suricata:/mnt -p 5601:5601 -p 9200:9200 -p 5044:5044 sebp/elk: 638
[root@m01ly ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45a7bc7b174d sebp/elk:623 "/usr/local/bin/star…" 13 hours ago Up 12 hours 0.0.0.0:5044->5044/tcp, 0.0.0.0:5601->5601/tcp, 0.0.0.0:9200->9200/tcp, 9300/tcp charming_wu
[root@m01ly ~]# docker exec -it 45a7bc7b174d bash
root@45a7bc7b174d:/# ls
bd_build bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
可以看到宿主机文件夹mnt
挂载两个目录
注意每个目录前都要加参数-v
docker run -it -v $path_to_host_data:$new_path_in_docker -v $path1_to_host_data:$new_path1_in_docker deep_sleepnet:1.0 /bin/bash
docker-compose命令不存在、未找到命令
安装扩展源
sudo yum -y install epel-release
安装python-pip模块
sudo yum install python-pip
查看docker-compose版本,提示未找到命令
./docker-compose version
通过以命令进行安装
cd /usr/local/bin/
wget https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
./usr/local/bin/docker-compose version
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose#加个软连接
docker-compose version
卸载
sudo rm /usr/local/bin/docker-compose
升级
查看最新版本,选择版本复制链接即可。
cd /usr/local/bin/
wget https://github.com/docker/compose/releases/download/1.28.0/docker-compose-Linux-x86_64
rename docker-compose-Linux-x86_64 docker-compose docker-compose-Linux-x86_64
chmod +x /usr/local/bin/docker-compose
./usr/local/bin/docker-compose version
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose#加个软连接
docker-compose version
wps打开CSV乱码
(1)使用记事本打开CSV文件
(2)点击菜单:文件-另存为,编码方式选择ANSI
kali安装pip
https://www.cnblogs.com/fzblog/p/12940714.html
CentOS 7升级Python到3.5后yum出错
solution:将下面两个文件的开头改为从!/usr/bin/python 改成!/usr/bin/python2.7
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down