系统的常用命令与 IDE 快捷键

445 阅读12分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

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 相关

www.runoob.com/docker/dock…

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 相关

i.zte.com.cn/#/shared/02…

# 查看当前租户配置
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