本文已参与「新人创作礼」活动,一起开启掘金创作之路。
Linux 相关
Windows 下的编辑工具导致文件格式是 dos 下的,需要改成 Unix
sed -i "s/\r//" install.sh
基础操作
df -hl #查看磁盘剩余空间
df -h #查看每个根路径的分区大小
du -sh #[目录名] 返回该目录的大小
du -sm #[文件夹] 返回该文件夹总 M 数
du -h #[目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
lsb_release -a # 查看系统版本
cat /proc/version # 查看内核版本
init 0 # 关机 或用 halt
init 6 # 重启 或用 reboot
passwd <用户名> # 修改用户密码
ps -A # 显示进程信息
ps -u root@10 # 显示 root 进程用户信息
ps -ef # 显示所有命令,连带命令行
ll -t # 打印文件列表,按时间倒序
ll -rt # 打印文件列表,按时间顺序
hostnamectl set-hostname dap1 # 修改主机名为 dap1
passwd # 修改当前用户密码
rpm -qa|grep -i mysql # 查看当前安装 mysql 情况
rpm -ev <包名> # 卸载软件
df -h # 列出所有的文件系统,以 GB,MB,KB 等格式自行显示
service vsftpd start # 启动 Vsftpd 服务
service vsftpd stop # 停止 Vsftpd 服务
service vsftpd restart # 重新启动 Vsftpd 服务
service vsftpd status # 检查 Vsftpd 服务的运行状态
|grep -v <content> # 排除不想看的内容
find <path> -name <key> -type d # 查找文件夹
find <path> -name <key> -print # 查找文件
dos2unix <文件> # 将从 win 传到 linux 的文件格式转一下,避免转移字符识别错误的问题
chmod 777 <文件/目录> # 修改权限
du -h --max-depth=1 /home # 列出 home 目录下面所有的一级目录文件大小
du -h --max-depth=1 /home/* # 列出 home 下面所有一级目录的一级目录文件大小。
ps -ef |grep ssh|wc -l # 查询当前 ssh 连接数量
df -h | tee disk_usage.txt
echo > test.txt
chown -R zxin10:dba /home/xch # 给 dba 组下的 zxin10 用户赋予
grep [-acinv] [--color=auto] '搜寻字符串' filename
选项与参数:
-a :将 binary 文件以 text 文件的方式搜寻数据
-c :计算找到 '搜寻字符串' 的次数
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行!
--color=auto :可以将找到的关键词部分加上颜色的显示喔!
```bash
# 删除查找到的符合条件的内容
find /home/maven/localOfflineRepository/ -name _remote*|xargs rm -rf
### ssh 断连问题
```bash
vim /etc/ssh/sshd_config
Port 22 # 启用远程连接端口,通常都是 22
PermitRootLogin yes # 允许使用 root 用户远程登录
ClientAliveInterval 60 # 客户端每隔 30 秒向服务发送一个心跳数据
ClientAliveCountMax 3 # 客户端多少秒没有相应,服务器自动断掉连接
systemctl restart sshd.service # 重启 sshd 服务
添加网关
route add default gw 10.229.13.161 dev eth0
route
# 装完系统之后简略配置网络 166 需管理员权限 sudo 或 root 用户
ifconfig ens0f2 10.46.169.166/24
ifconfig ens0f0 88.88.88.1.2/24 up
配置网卡
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=10.229.13.162
NETMASK=255.255.255.224
GATEWAY=10.229.13.161
# 保存,然后重启网卡
service network restart
# 或
systemctl restart network
mysql
# 登录 root 用户
mysql -uroot -pdb10$ZTE
# 修改 root 用户密码
mysqladmin -uroot -ppassword password db10$ZTE
adduser ebaserdb # 创建 ebaserdb 用户
passwd # 修改当前用户自己密码
passwd ebaserdb # 使用 root 用户修改 ebaserdb 用户密码
passwd -d ebaserdb # 使用 root 用户修改 ebaserdb 用户密码为空
yumdownloader --destdir=/tmp --resolve httpd # 只下载不安装
更新镜像源
vim /etc/yum.repos.d/CGSL-Media.repo
#修改 DNS
dnsFile=/etc/resolv.conf
echo "nameserver 10.30.8.8" >> $dnsFile
yum:
更新 CGSL yum 镜像源
vim /etc/yum.repos.d/CGSL-Media.repo
文件修改为如下内容:
[core]
name=CGSL-$releasever - Media
baseurl=http://10.75.10.3/os/v5/core/release/
#baseurl=file:///media/CGSL/
# file:///media/cdrom/
# file:///media/cdrecorder/
#gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CGSL-CORE
python 镜像 artsz.zte.com.cn/artifactory…
通过端口找到对应的程序
netstat -anp|grep 端口号
ps -ef|grep 进程 ID
解压命令
解压 tar -xvf FileName.tar # .tar tar -zxvf FileName.tar.gz # .tar.gz tar -C DirName -zxvf FileName.tar.gz # 解压到目标路径 gunzip FileName.gz # .gz unzip FileName.zip # .zip unzip -d /temp test.zip # .zip 到 /temp 文件夹 rar x FileName.rar # .rar
压缩 tar -cvf FileName.tar DirName # 将 DirName 和其下所有文件(夹)打包 tar -zcvf FileName.tar.gz DirName # .tar.gz 同上 gzip FileName # .gz 只能压缩文件 zip FileName.zip DirName # 将 DirName 本身压缩 zip -r FileName.zip DirName # 将 DirName 和其下所有文件(夹)打包 rar a FileName.rar DirName # .rar
docker 相关
systemctl start docker # 启动 docker
docker -v # 查看版本号
docker vsersion # 查看版本信息
systemctl status docker # 查看运行状态
systemctl stop docker # 关闭 docker
docker images # 列出本地所有镜像
docker rmi # 删除镜像
docker load -i <image> # 加载镜像 -> 什么作用?
docker ps # 查看当前正在运行的容器 常用,配合 |grep 使用
docker ps -a # 查看所有容器的状态
docker start <c-name/id> # 启动指定容器
docker stop <c-name/id> # 关闭指定容器
docker restart <c-name/id> # 重启指定容器
docker rm <c-name/id> # 删除镜像所在容器
docker inspect <c-name/id> | grep Mounts -A 20 # 查看 docker 映射目录
docker exec -it <c-name/id> bash # 进入容器 常用
docker cp <file> <c-name/id>:<容器内路径> # 拷贝文件到容器 常用
docker cp <c-name/id>:<容器内路径> <file> # 拷贝文件到容器外 常用
docker commit <现有容器名> <name:tag> # 将已有容器打包成镜像
docker tag imageId repository:tag
cat /root/.docker/config.json # 查看所有docker服务器和登录的用户密码
echo <auth后面的那一串序列> | base64 -d - # 输出结果中,auth 后面接的那一串就是经过base64编码后的用户名和密码信息,这里将其解码,之后即可看到用户名和密码
例子:
docker run
--name quan_ut
--restart=always
-d
-p 18009:18009
-v /home/xch/6:/home/version
-v /home/maven/localOfflineRepository:/home/maven/localRepository
imop-release-docker.artnj.zte.com.cn/cci/imop-mvn-jdk:v1.0
sh
-c "while true; do echo hello world; sleep 10;done"
docker run --rm -it --privileged -v /share/cloud-imop-jenkins/shared_work_space//tmc/master/share/4:/home/version -v /home/maven/localOfflineRepository:/home/maven/localRepository -v /share/govern-cloud-imop-jenkins/shared_work_space:/share/govern-cloud-imop-jenkins/shared_work_space -v /local/govern-cloud-imop-jenkins:/local/govern-cloud-imop-jenkins -v /home/CI:/home/CI imop-release-docker.artnj.zte.com.cn/cci/imop-coverity-mvn-jdk:v2021.06 /bin/bash
zxstop # 容器内部停止 zxstart # 容器内部启动
oki 相关
# 查看当前租户配置
cat /paasdata/OTCP/oki-tools/config/tenant.conf
# cd 到 oki 命令指令路径·
cd /paasdata/OTCP/oki-tools/tools/bin/
# 执行卸载命令
./oki-cli uninstall -s app -f /paasdata/OTCP/apps/VOPS_TMC
# 把 VOPS_TMC.zip 放到 /paasdata/OTCP/apps 下解压
# 执行安装命令
./oki-cli install -b /paasdata/OTCP/apps/VOPS_TMC/vops_tmc_template.bp -r /paasdata/OTCP/apps/VOPS_TMC/resources/resource_tmc_bare1.json -d /paasdata/OTCP
# OTCP
./oki-cli install -b /paasdata/OTCP/bp/install/otcp_all.bp -r /paasdata/OTCP/resources/resource_vops_normal_bare1.json -d /paasdata/OTCP
# OAMP
./oki-cli install -b /paasdata/OTCP/bp/install/oamp_all.bp -r /paasdata/OTCP/resources/resource_vops_normal_bare1.json -d /paasdata/OTCP
# VIOPS
./oki-cli install -b /paasdata/OTCP/bp/install/vops_normal.bp -r /paasdata/OTCP/resources/resource_vops_normal_bare1.json -d /paasdata/OTCP
# 查看日志
tail -f /paasdata/op-tenant/imop/vops/logs/vops-autoops/
# 安装 Autoops
./oki-cli install -b /paasdata/OTCP/apps/VOPS_AUTOOPS/vops_autoops_template.bp -r /paasdata/OTCP/apps/VOPS_AUTOOPS/resources/resource_vops_bare1.json -d /paasdata/OTCP
kubectl
kubectl describe node
# 查看所有节点,可配合 grep
kubectl get pod --all-namespaces -o wide|grep alert
CPaaS 获取浮动 ip
1、如果环境是非 slb 的可通过
cat /paasdata/op-conf/inetmanager/inetmanager.conf|grep baseurl_vnm
curl ${baseurl_vnm}/floatingips
来获取。
2、如果是 slb 的,可通过
cat /paasdata/op-conf/inetmanager/inetmanager.conf|grep baseurl_msb
curl ${baseurl_vnm}/inetmanager/v1/tenants/admin/inetservices/cfginfo
来获取"floating_ip_address"字段信息
数据库相关
cd /home/mysql/bin # 打开所在目录
mysql.server start # 启动
mysql.server stop # 关闭
mysql.server restart # 重启
su mysql # 切换 mysql 用户
mysql -h127.0.0.1 -uroot -p'U_tywg_2013' -P3306 # 登录 mysql root 用户
# 彻底卸载 mysql
yum remove mysql mysql-server mysql-libs mysql-server
find / -name mysql # 将找到的相关东西 delete 掉 (rm -rf /var/lib/mysql)
rpm -qa|grep mysql # 查询出来的东 yum remove 掉
rm /etc/my.cnf
UT 编译 mvn cobertura:cobertura > TEST.txt
NFS
service nfs status
service nfs restart
NFS /etc/exports 参数解释 blog.csdn.net/qq_36357820…
Redis
redis-ci # 启动服务 auth "abc@123" # 登录 hvals # 查看 key 值内容 (理解为表) hget "prison_rule" "nightRestTime"
Git 相关
git config --list # 列出所有 Git 当时能找到的配置 git config --global user.name 许传浩 10261177 git config --global user.email xu.chuanhao@zte.com.cn git config # 来检查 Git 的某一项配置 ssh-keygen -t rsa -C "xu.chuanhao@zte.com.cn" # 生成 ssh-key 填到 gerrit 上的对应位置
git status # 检查当前文件状态 git diff # 查看尚未暂存的文件更新了哪些部分 git add # 添加 <> 文件 git add . git commit -m '说明' # commit 并填写修改说明 git commit -a -m "" # 无需 add 直接提交 git commit -amend # 覆盖上一次提交
git log # 会按提交时间列出所有的更新 git log --stat # 简洁显示 git log --pretty=format:"%an" # 查看日志中,提交作者名称
git reset --soft HEAD^ # 仅撤回 commit 操作 git reset --hard # 回到指定版本
git branch # 查看当前分支 git branch -a # 查看所有分支 git checkout <分支名> # 切换分支(origin 后面部分)
git cherry-pick # 将某分支的 commitId 次代码,合到当前分支
storm list # 查看 storm topology
git reset HEAD <路径/文件名> # 撤销 add
git checkout <路径/文件名> # 撤销对文件的修改
kafka 相关
# 创建 kafka topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic test_topic --replication-factor 1 --partitions 1
bin/kafka-topics.sh --create --zookeeper localhost:2181 --topic srtn_public_notification_hm_upgrade_status_c --replication-factor 1 --partitions 1
# 查看 kfaka 消息内容
kafka-console-consumer --zookeeper localhost:2181/kafka --topic <topic 名称>
# 产看消费组详情
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group <消费组 id> --describe
iptables -L # 查看当前防火墙策略 iptables -F # 清空防火墙策略 iptables-save >iptable.bak # 将当前防火墙策略保存到文件
docker exec -it van1 bash
cd ~/log
ostool modloglv vamgr 4
tail -f vamgr.log
git reset --soft HEAD1 # 撤回最近一次的 commit(撤销 commit,不撤销 git add)
git reset --mixed HEAD1 # 撤回最近一次的 commit(撤销 commit,撤销 git add)
git reset --mixed HEAD^ # 和 git reset HEAD^ 等同
git push origin HEAD:refs/for/master%r=zhu.haitao5@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.06%r=zhu.haitao5@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.07%r=zhu.haitao5@zte.com.cn
git push origin HEAD:refs/for/master%r=su.wei6@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.06%r=su.wei6@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.07%r=su.wei6@zte.com.cn
git push origin HEAD:refs/for/master%r=wang.zhigang3@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.06%r=wang.zhigang3@zte.com.cn
git push origin HEAD:refs/for/master%r=quan.pucai@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.06%r=quan.pucai@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.03.01%r=quan.pucai@zte.com.cn // portal 的分支号不一样,要留意
git push origin HEAD:refs/for/master%r=ji.lina@zte.com.cn
git push origin HEAD:refs/for/master%r=pan.hao36@zte.com.cn git push origin HEAD:refs/for/ZXIVS-VAP-VASV4.02.06%r=pan.hao36@zte.com.cn
git push origin HEAD:refs/for/master%r=lei.qiang1@zte.com.cn
git push origin HEAD:refs/for/master%r=chen.qingqing@zte.com.cn
git push origin HEAD:refs/for/master%r=miao.chengqiang@zte.com.cn
TFS 和 EC 提交,commit 填写格式
TFS-YT:721062: 管理信息的修改-布控任务/单人布控 EC-YT:612004530419:EC 添加布控任务时相似度值过低抛异常优化 master
抓包相关 tcpdump
tcpdump -i eth0 host 10.47.177.202 and port 8101 -w /home/zxin10/dump.pcap
# 抓包命令:
tcpdump -i enp1s0 host 10.229.13.179 and port 21180 -w /home/xch/dump.pcap
tcpdump -i <网卡> host <本机 Ip> and port <要抓的端口> -w <抓到的包写的位置>
tcpdump -i enp2s0 host 10.47.161.60 -w /home/xch/dump.pcap
tcpdump -i eth1 -t -s 0 -c 100 and dst port 22 and src net 192.168.1.1 -w ./target.cap
# Wireshark ip 过滤规则
ip.src == 10.47.161.60
# 消息中包含某个字符
tcp contains "xxx"
ftp 相关
scp -r root@10.46.169.134:/home/download/ /home/install
scp -r root@10.47.161.126:/home/backup/bak_zrl/ibox-version /home/zxin10/was/tomcat/webapps/ROOT/nfs
# e.g. 使用 ftp 下载 10.46.169.134 务器上的 101.jpg~110.jpg 图片到本机服务器的 /home/install 目录
scp -r root@10.46.169.134:/clouddisk/8.person/5.shenchao/cgsl/1*.jpg /home/install
sftp 相关
# 连接服务器
sftp -oPort=22222 xzy@10.234.142.203
# 密码 Cgsl@123
# 上传文件
put /xch/disk/SQLClient/ideaIU-2018.2.4.exe ./
# 下载文件
get /home/xzy/work/0x01. 新开局项目/1.txt /xch/disk
maven 相关
mvn clean install # 项目编译---
mvn clean install -Dmaven.test.skip=true
mvn clean package # 项目打包--
mvn clean package -Dmaven.test.skip=true
mvn clean package -f pom_assembly.xml -Dmaven.test.skip=true
wget 相关
# 日志输出到 wget3.log
wget.exe --no-cookie --no-check-certificate http://10.57.65.58:21180/upload1/version/app/uSmartView_setupV6.03.05_1109_ZTE.exe --spider -S -o C:\\wget3.log
# 日志输出到控制台
wget.exe --no-cookie --no-check-certificate http://10.57.65.58:21180/upload1/version/app/uSmartView_setupV6.03.05_1109_ZTE.exe --spider -S
kw 相关
kwmaven clean compile
Shell 中的 if/else
public void gitPush(String input){
if ("q".equal(input)) {
git push origin HEAD:refs/for/master%r=qin.muxuan@zte.com.cn
} else if ("z".equal(input)) {
git push origin HEAD:refs/for/master%r=zhao.rulei@zte.com.cn
} else if ("g".equal(input)) {
git push origin HEAD:refs/for/master%r=gao.jianbing@zte.com.cn
} else if ("b".equal(input)) {
git push origin HEAD:refs/for/master%r=bian.dengkui@zte.com.cn
}
}
Windows 相关
使用脚本批处理让 Hexo 一键部署和推送到远程仓库 - Windows
file: deployHexo.cmd
@echo off
D: :: 切换到你 hexo 程序所在的磁盘,例如我是在 D 盘
cd D:\GitHub_Pages\Hexo-git\shanlancoding.github.io
:: 切换到你 Hexo 程序的完整目录
hexo g -d && mshta vbscript:msgbox("部署完成,准备 push 源程序到仓库",6,"部署完成")(window.close) && color 4 && call pushHexo.cmd
:: 这一行其实有四条命令,通过&& 符号连接起来执行
:: hexo g -d Hexo 命令,生成静态页面文件
:: mshta vbscript:msgbox("部署完成,准备 push 源程序到仓库",6,"部署完成")(window.close) 弹出 Windows 对话框,用于提示
:: color 4 修改控制台的字体颜色
:: call pushHexo.cmd 调用另一个批处理文件
file: pushHexo.cmd
@echo off
set /p commit=commit:
title auto commit
cd C:\Program Files\Git\bin\
git.exe add -A
git.exe commit -m %commit%
git.exe push
echo 命令执行完毕,请按任意键关闭
pause >null
:: set /p commit=commit: 设置变量用来接收你输入的 push 描述
:: title auto commit 设置批处理窗口的标题
:: cd C:\Program Files\Git\bin\ 切换到你的 Git.exe 目录,注意是 Git.exe,而不是 git-bash.exe,由于我的 Git 本身安装在 C 盘,若你的安装在 C 盘以外,例如 D 盘,则在执行这条命命令之前还需要添加一条命令:D:
:: git.exe add -A 添加所有变动的文件到本地 Git 暂存区
:: git.exe commit -m %commit% 将本地 Git 暂存区的文件提交给本地仓库,并且戴上了本次提交的描述
:: git.exe push 将本地仓库文件推送给远程仓库,可以理解为上传
:: echo 命令执行完毕,请按任意键关闭 批处理的提示语
:: pause >null 让批处理界面暂停而不会自动关闭界面
IDE 快捷键与设置
通用
Crtl + D # 复制当前行到下一行 Crtl + 单击 # 定位方法/变量初始位置(定义)
Visual Studio
IDEA
Shift + F9 # Debug Ctrl + F5 # Run F8 # 单步 F7 # 步进 F9 # 下一个断点 Ctrl + F9 # 编译
Ctrl + G # 跳转到指定行 Ctrl + F # 当前窗口搜索关键词 Ctrl + Shift + F # 全局搜索关键词 = Edit->Find->Find in Path Shift + Shift # 全局搜文件
Ctrl + 左键单击 # 跳到该方法的定义、应用 Ctrl + Alt + 方向左/右 # 往前/后查看位置 Ctrl + Alt + L # 代码对齐 Shift + F6 # 全局修改方法名 Ctrl + X # 删除行 Shift + Enter # 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift + Ctrl + Enter # 在当前行的上一行插入空行 Ctrl + ”+/-” # 当前方法展开、折叠 Ctrl + Shift + ”+/-” # 全部展开、折叠
VS Code
Shift + Alt + F # 代码对齐
Eclipse(IDEA 中用)
Ctrl + F # 替换,可当检索用 Ctrl + Shift + H # 全局搜索 Ctrl + Shift + F # 代码对齐 ; 格式化整个文档 Shift + Enter # 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shift + Ctrl + Enter # 在当前行的上一行插入空行 Ctrl + Shift + T # 查找 Java 类文件 Ctrl + Shift + G # 查找引用 Alt+ ←、Alt+ → # 后退历史记录 Ctrl + K # 快速向下查找选定的内容 Alt + Shift + R # 全局修改方法名 Ctrl + ”+/-” # 当前方法展开、折叠 F5 单步跳入 F6 单步跳过 F7 单步返回 F8 继续
Tomcat
catalina vsersion # Tomcat 版本 jtool -restart # 重启
备注
Markdown 换行策略
不隔一个空行的换行行为,在一些编辑器中被解释为回车,即插入一个标签。
在另外一些编辑器中,会被解释为插入一个空格。
对于后者,若要插入换行标签,请在当前一行的结尾打两个空格。(vscode 就是后者,typora 普通模式是前者,源码模式和 vscode 一样是后者)
更新 msg 相关 jar 包的模式化操作
- 本地打包 mvn clean package -Dmaven.test.skip=true
- 上传至服务器对应位置 /home/mr/msg/lib/
- 停止 storm 中的拓扑(mr 用户) storm kill <topology 名称>
- 启动 topology 服务 cd /home/mr/msg/conf sh run_topology.sh
- 查看生成的日志 cd /data1/zdh/storm/logs/workers-artifacts/
提交代码前操作
1、kw 检查
kw 集成工具
2、UT 正确判断,本地 UT 编译
mvn cobertura:cobertura > utPart.txt
看里面的 errors
3、确认 TFS 或 EC 单号
TFS 使用说明
收到工作任务 task
[o] Product Requirment
进行开发工作,写测试套件 { 等级 一般 步骤 【内容|目标】 自动化状态 否 }
完成后更改工作状态,之前写好的测试 Task # Closed User Story # 已完成 Test Plan # Test Suit # Complete