工作用到的 cmd git docker linux redis k8s 命令

  • cmd
  • git
  • docker
    • 常用命令
    • 保存镜像
    • 加载镜像
    • pom 文件配置打包到容器的内容
    • 容器和服务器间拷贝文件
  • linux
    • wc
      • 统计一个文件中某个字符串的个数
      • 前 10 个匹配字符所在行
      • 正则
      • 查看文件的字节数、字数、行数
      • 统计单词数
      • 统计字节数
      • 统计字符数
      • 统计行数【★★★★★】
      • 不输出文件名
      • 计算字符串长度
      • 与管道符结合使用
    • 判断 ip/port 是否可达
    • 管理员登入
    • linux修改用户名、密码、组名
    • 查看 hostname
    • chmod
    • du 和 di
    • df -h 和 df -i
    • alias
    • grep
    • find
    • linux 文件颜色
    • jq
    • 查看环境变量
      • 环境变量
      • 设置环境变量
      • 系统启动读取顺序
      • 查看环境变量
    • 查看占用端口
      • win 中
      • linux 中
    • 防火墙操作
    • 查看jar包内文件
    • vim
      • vim 中 快速查找
    • echo
      • vim 不能用,用 echo
      • base64 编码解码
    • 输出日志到文件
    • locale -- 设置和显示程序运行的语言环境
      • 查看当前 locale 设置
      • 设置系统的 locale
    • curl
    • 执行文件命令
    • scp
    • tree
    • ntpdate时间报错
  • redis
    • 运行redis
    • 模糊查询
    • 拿到 value
    • 其他
  • 修改环境变量不重启生效
  • k8s

cmd

msg
功能:向对方电脑发送一条文本提示$ msg /server:对方电脑IP *
在“*”后输入你要发送的内容即可

Nslookup
作用:检查网站IP地址$ nslookup 对方网站域名C:\Users\dingdang>nslookup www.baidu.com
服务器:  UnKnown
Address:  fe80::1非权威应答:
名称:    www.a.shifen.com
Addresses:  14.215.177.3914.215.177.38
Aliases:  www.baidu.com
telnet
看电影《星球大战》$ telnet towel.blinkenlights.nl
|
作用:将命令结果输出到剪贴板任意命令 | 导出位置
ls | clip      导出到剪切板
ls | xxx.txt   是导出到xxx.txt
&&
作用:将多个命令“连接”起来,一步运行多组命令操作方法:&& 是 CMD 里一项 “命令连接” 语句,直接放在要连接的命令行中间即可

git

git 沙盒

远程仓库更改了。需要更新本地链接git remote set-url origin 新的对应项目的clone的 .git 后缀链接
git pull
# git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址# 1.查看git配置信息
$ git config --list# 2.查看git用户名、密码、邮箱的配置
$ git config user.name
$ git config user.password
$ git config user.email# 3.设置git用户名、密码、邮箱的配置
$ git config user.name "freedom"
$ git config user.password "123456"
$ git config user.email "1548429568@qq.com"# 3.设置git用户名、密码、邮箱的配置(全局配置)
$ git config --global user.name 用户名
$ git config --global user.password 密码
$ git config --global user.password 邮箱# 4.修改git用户名、密码、邮箱的配置(跟设置语法一样,没有用户名就添加,有了用户名就修改)
$ git config user.name "freedom"
# 4.修改git用户名、密码、邮箱的配置(全局配置)
$ git config --global user.name "freedom"# 5.删除git用户名、密码、邮箱的配置

docker

常用命令

登陆:docker login registry.公司域名.com下载镜像:docker pull REPOSITORY:TAG
删除本地镜像:docker rm xxx:version(tag)    docker image prune (删除未命名镜像)
运行镜像生成容器实例: docker run -itd --restart=always --name 镜像运行名字:tag -p 映射端口:80 查看本地镜像:docker images
查看在运行的container:docker ps                docker container list
进入容器查看:docker exec -it containerID bash           docker exec -it containerID /bin/bash构建:docker build ./ -t name:version
推送镜像:docker push registry.公司域名.com/demos/test:0.1.1
导出镜像包:docker save -o 导出的镜像包名 REPOSITORY:TAG
导入镜像包:docker load -i 镜像包

保存镜像

# 把镜像打包成 .tar
# -o 要保存路径.tar
# >  要保存路径.tar
# docker save 镜像id > /存储路径/xxx.ta将镜像 centos保存为 /root目录下得 c24.tar
docker save -o /root/c24.tar centos
docker save centos > /root/c24.tardocker save -o test.jar registry.公司域名.com/demos/test:0.1.1
就是把仓库中的包,保存到服务器为test.jar,然后可以在服务器上运行这个包


注意

docker save name:tag > t1.tar
docker save 镜像ID > t2.tar两种方式最好用第一种
用镜像ID保存会少一个repositories的文件

加载镜像

-i 指定加载的镜像docker load -i /mydocker/images/redis.tar

pom 文件配置打包到容器的内容

打包时,忘记把某个资源打包,需要手动把文件上传到容器中

pom.xml 文件中忘记加 *.xlsx ,或者写错导致 xlsx 没有被打包

<build><finalName>xxxx</finalName><sourceDirectory>src/main/java</sourceDirectory><resources><resource><directory>src/main/resources</directory><includes><include>*.properties</include><include>**/*.properties</include><include>*.xml</include><include>*.conf</include><include>**/*.xml</include><include>*.yml</include><include>*.xlsx</include>  !!!这里</includes></resource></resources>
</build>

容器和服务器间拷贝文件

docker cp 本地路径 容器ID:容器路径docker cp /Users/xubowen/xxx.txt 38ef22:/root/xxx.txt
将主机/www/1.conf 拷贝到容器96f7f14e99ab的test目录下
docker cp /www/1.conf 96f7f14e99ab:/test/将容器96f7f14e99ab中www目录下的12.conf文件,拷贝到主机的/目录中
docker cp 96f7f14e99ab:/www/2.conf /将主机/www/runoob目录拷贝到容器96f7f14e99ab中,目录重命名为www
docker cp /www/runoob 96f7f14e99ab:/www将容器96f7f14e99ab的/www目录拷贝到主机的/tmp目录中
docker cp 96f7f14e99ab:/www /tmp/

linux

linux 常用命令
linux 命令大全
linux 学习网站

wc

wc命令用于统计指定文件中的字节数、字数、行数,并将统计结果显示输出。wc 是 word count 的缩写。

统计一个文件中某个字符串的个数

[root@bzhou test]# cat file
hafsdha
hahafsdfsdhaha
haha
想匹配 ‘haha’ 这个字符串
grep的-o选项
[root@bzhou test]# grep -c 'haha' file
2最开始的时候是用-c这个 选项,不过-c只能统计一行的,如果一行里面有多个匹配的字符串,那-c就无能为力了。这个是正确的
[root@bzhou test]# grep -o 'haha' file | wc -l
3
或者 cat file | grep -o 'haha' | wc -l
grep -o “” 会显示出文本中出现的string,仅显示被搜索的关键字
文本中有几次就显示几次-n 显示行号

前 10 个匹配字符所在行

abcabababab
abcabababab
abcabababab
abcabababab
abcabababab
只输出匹配字符串
grep -n -o 'ab' file.txt | head -n 10 输出匹配字符串所在行
grep -n 'ab' file.txt | head -n 10

正则

匹配 b 到 b,中间任意多个
grep -o -n "b.*b" file.txt | head -n 4
1:bcabababab
2:bcabababab
3:bcabababab
4:bcabababab匹配 b 到 b,中间一个
grep -o -n "b.b" file.txt | head -n 4
1:bab
1:bab
2:bab
2:bab

查看文件的字节数、字数、行数

7:第一列表示行数。
7:第二列表示单词数。
57:第三列表示字节数。
log.txt:第四列表示文件名。

统计单词数

统计字节数

统计字符数

统计行数【★★★★★】

不输出文件名

计算字符串长度

与管道符结合使用

判断 ip/port 是否可达

判断端口是否ping通
ping 10.4.121.42判断端口是否可达
telnet 10.4.121.42 9092

管理员登入

[chend@c9 ~]$ sudo su
[root@c9 ~]#

linux修改用户名、密码、组名

1、修改root密码
sudo passwd root2、修改用户密码(如abc)
sudo passwd abc3、修改主机名:
sudo vim /etc/hostname 将旧主机名  改为  新主机名
sudo vim /etc/hosts    将旧主机名  改为  新主机名 4、切换到root账户
su5、修改用户名:
vim /etc/passwd
找到旧用户名  改为  新用户名,但是 /home/旧用户名 不能更改,若更改重启后,便登陆不了系统了。
vim /etc/shadow
找到旧用户名  改为  新用户名6、重启系统
reboot7、重启后进入系统后切换到root账户
su 8、修改home目录
mv aaa<旧用户名> bbb<新用户名>
修改/home/旧用户名 重命名 新用户名
sudo vi /etc/passwd
将其中的 /home/旧用户名  改为  /home/新用户名或者
sudo usermod -d /home/新用户名 -m 新用户名9、修改组名
groupmod -n 新用户名 旧用户名10、修改UID
sudo usermod -u 1000 新用户名11、检查
id 新用户名12、重启系统
reboot

查看 hostname

[root@controller-111 ~]# hostname
controller-111
[root@controller-92 ~]#

chmod

例如 linux中新建的sh文件不能执行

linux中执行shell文件需要权限,使用vim编辑器新建的shell文件并没有执行的权限,使用 chmod 777 *.sh 即可给权限
或者通过 sh 命令执行  sh ./*.sh

du 和 di

du (disk usage): 显示每个文件和目录的磁盘使用空间,也就是文件的大小。

命令参数:-k 、 -m  #显示目录中文件的大小,-k 单位KB,-m 单位MB
-h            #以K  M  G为单位显示,提高可读性(最常用的一个)
--max-depth=1  #显示层级
du -h --max-depth=1


df(disk free):显示磁盘分区上可以使用的磁盘空间

-a    #查看全部文件系统,单位默认KB
-h    #使用-h选项以KB、MB、GB的单位来显示,可读性高~~~(最常用)

df -h 和 df -i

df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

必要参数:-a 全部文件系统列表-h 方便阅读方式显示-i 显示inode信息-k 区块为1024字节-l 只显示本地文件系统--no-sync 忽略 sync 命令-P 输出格式为POSIX--sync 在取得磁盘信息前,先执行sync命令-T 文件系统类型

df -h 和df -i的区别是什么?同样是显示磁盘使用情况,为什么显示占用百分比相差甚远?

df -h的比较好解释,就是查看磁盘容量的使用情况。

df -h   是去删除比较大无用的文件-----------大文件占用大量的磁盘容量。??df -i    则去删除数量过多的小文件-----------过多的文件占用了大量的inode号。??

alias

alias命令允许为常用的命令创建另一个名称
查看和设置 命令的简写
# 查看系统内存状态
alias mem="free -h"# 查看CPU信息
alias cpu="lscpu"# 磁盘信息
alias disk="df -h"# 系统版本(以RH系统为例)
alias os="cat /etc/redhat-release"
# 更新系统
alias update="sudo yum update -y"# 安装软件命令
alias install="sudo yum install $1 -y"# 使用
# 比如安装:wget
install wget
# k8s命令
alias k8s='kubectl'# 获取所有pod的详情信息
alias k8sp='kubectl get po -o wide'# 获取所有namespace下的运行的所有pod
alias k8spa='kubectl get po --all-namespaces'# 其他
alias k8sd='kubectl describe'
alias k8sd='kubectl get deploy'
alias k8sp='kubectl get pods'
alias k8sc='kubectl get cm'
alias k8ss='kubectl get svc'
...

查看当前可用的别名

alias -p   或者  alias[root@Allen ~]# alias
alias cp='cp -i'
alias egrep='egrep --color=auto'

当前shell进程设置别名

因为命令别名属于内部命令,一个别名仅在它所被定义的shell进程中才有效

alias k='kubectl'

设置永久别名

如果想要使得设置的别名永久生效,可以把它加入Linux启动文件.bashrc或.bash_profile中

如何找到.bashrc或.bash_profile文件?

直接执行 cd 命令,然后就会进入到当前用户的用户根目录,在这个目录下就可以找到上述系统文件。注意:这两个文件是隐藏文件,需要使用 ls -a 命令才能查看。

1、vim /etc/bashrc ###针对全局用户

注意:/etc/bashrc 文件内其他任何内容如果不是专门要修改,请不要删除,会出现其他问题

[root@Allen ~]# vim /etc/bashrc
# /etc/bashrc
alias h='date' # System wide functions and aliases
# Environment stuff goes in /etc/profile
[root@Allen ~]# source /etc/bashrc  ####使创建的别名立刻生效

2、vim/root/.bashrc ###只有root用户有权限

注意:/root/bashrc 文件内其他任何内容如果不是专门要修改,请不要删除,会出现其他问题

[root@Allen ~]# source /etc/bashrc
# .bashrc
alias n='hostname'# User specific aliases and funct
##########设置好后,退出保存

3、重新连接终端发现生效了

grep

grep -A 显示匹配指定内容及 之后 的n行
grep -B  显示匹配指定内容及 之前 的n行
grep -C  显示匹配指定内容及其 前后 各n行示例  搜索匹配test.txt文件中与”name”字符串匹配的行,并显示其后的5行
$  grep -A  5  name  test.txt
grep keyword  /opt/filename
将/opt/filename,有出现keyword的行取出来grep -c keyword filename1
在文件1 中查找keyword 的个数grep -c keyword filename1 filename2
在文件1 文件2中查找keyword 的个数grep  -v 反查,一般是利用管道符和其他命令一起使用
cd /opt/filename1 | grep -v hello  显示出filename文件中除hello以外的内容    grep -i   忽略大小写

find

find命令是系统中查找文件的命令,可以帮助用户快速找出自己所需要的文件。

通过文件名查找

-not      非
-o        或
-a       与find -name 文件名
find /etc/ -name passwd ###查找/etc目录下的passwd
find /etc/ -name “*passwd”    ###查找/etc目录下的以passwd结尾的文件
不行的话用   find /etc/ -name *passwd   去掉括号
find -name *.conf    ##查找以.conf结尾的文件

通过文件嵌套层数查找

find -maxdepth   层数  ###查找文件时最大层数
find -mindepth  层数  ###查找文件时最小层数

我们查找/etc中所有.conf文件,可以看到,这些文件有的在/etc目录下,有的在/etc目录的子目录或者子子目录中




按文件修改时间查找

find -cmin 1 ###查找修改时间为1min的文件
find -cmin -1   ###查找修改时间小于1min的文件
find -cmin +1  ###查找修改时间大于1min的文件find -ctime   5      ##5天内修改过的文件
find . -type f -mtime +1   当前目录1天前修改过的常规文件
find . -type f -mmin -30    当前目录30分钟内修改过的文件

通过文件类型查找

find -type 类型
f:文件| l:软链接| d:目录| c:字符设备| b:快设备| s:套接字查找文件
find ./ -type f查找目录
find ./ -type d查找名字为test的文件或目录
find ./ -name test

linux 文件颜色

绿色文件---------- 可执行文件,可执行的程序 红色文件-----------压缩文件或者包文件蓝色文件----------目录    白色文件----------普通,如文本文件,配置文件,源码文件等 浅蓝色文件----------链接文件,主要是使用ln命令建立的文件红色闪烁----------表示链接的文件有问题黄色文件----------表示设备文件灰色文件----------表示其它文件

jq

当我们拿到一个json格式的数据时,如何有效对这个数据进行分析?我们可以采用python结合json库来分析,但是linux有一个很好用的工具,让我们可以方便地处理json文本,功能非常强大

下载

sudo apt-get install jq

原数据。json字符串

{"skills": ["C/C++", "Python", "Golang", "Node.js"], "age": 21, "birthday": "10th August", "name": "xueyuan", "email": "im.hexueyuan@outlook.com"}

转换成易读的形式

cat json2.data | jq '.'
#也可以写作 cat json2.data | jq .
#不加引号,但是为了标准最好写上,因为某些时候不加会有问题.


jq把数据转换成易读格式,还添加了颜色高亮说明,其中key和value使用了不同的颜色。

如果json数据很大,我们只想看其中某个字段数据

#key是字段名称
jq '.<key>'


当某个字段是一个列表,jq可以对其进行切片

jq '.<list-key>[s:e]'

区别一下’.skills’和’.skills[]'两种,可以看到前者输出是一个列表,后者是非json格式的列表成员。

key filter

'.<key>'过滤满足key的字段名,输出这个key的值。

因为key-value必须归属于某个对象,所以添加外层{}

递归展开json结构

有时候我们需要在一个json里边查找某个字段,但是确不知道这个字段在哪个嵌套里边,如果嵌套很深那么很难找到,jq可以把嵌套展开打平之后再查找。
#展开嵌套
jq '..' data.json

length filter

计算元素长度,对于对象,length表示对象里的元素个数,对于string,length表示string字符数,对于列表,表示列表元素个数。

keys filter

输出全部的key,列表形式

删除某个key

使用del()删除filter描述的key-value
jq 'del(filter)' json.data

查看环境变量

环境变量

环境变量,简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。设置变量对于一般人最实用的功能就是:不用拷贝某些dll文件到系统目录中了,而path这一系统变量就是系统搜索dll文件的一系列路径

在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量 PATH 的设置问题,而 PATH的设置也是在linux下定制环境变量的一个组成部分

设置环境变量

----------1----------/etc/profile文件中添加变量【对所有用户生效(永久的)
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。

例如:编辑/etc/profile文件,添加CLASSPATH变量 vi  /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行
$ source /etc/profile
不然只能在下次重进此用户时生效。

----------2----------用户目录下.bash_profile 文件中增加变量【对单一用户生效(永久的)
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。 这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户

如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的 .bash_profile 文件就可以了。通常 .bash_profile.bashrc认为效果一样,也就是此处在 .bashrc中增加环境变量也行。

例如:编辑guok用户目录(/home/guok)下的.bash_profile $ vi  /home/guok/.bash.profile 添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib 注:修改文件后要想马上生效还要运行
$ source /home/guok/.bash_profile
不然只能在下次重进此用户时生效。

----------3---------- 终端直接运行 export 命令定义变量【只对当前shell(BASH)有效(临时的)

在shell的命令行下直接使用[export 变量名=变量值] 定义变量,$ export HELLO="Hello!" 该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

系统启动读取顺序

/etc/profile,/etc/bashrc系统全局环境变量设定
~/.bashrc ,~/.bash_profile用户目录下的私有环境变量设定

当登入系统时候获得一个shell进程时,其读取环境设定档有三步 :

/etc/profile ->  ~/.bash_profile  ->  ~/.bashrc1、首先读入的是全局环境变量设定档 /etc/profile,然后根据其内容读取额外的设定的文档,如 /etc/profile.d和/etc/inputrc 。
2、然后根据不同使用者帐号,去其根目录读取 ~/.bash_profile ,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取 ~/.profile,这三个文档设定基本上是一样的,读取有优先关系 。其中,Unbutu默认没有~/.bash_profile文件,可新建。
3、最后在根据用户帐号读取~/.bashrc 。

查看环境变量

1  显示已知的环境变量
$  echo $HELLO echo $JAVA_HOME 2  用env命令显示所有的环境变量
$ env 3  用set命令显示所有本地定义的Shell变量
$ set

4 用unset命令 清除环境变量

set 可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下: $ export TEST="Test..."       #增加一个环境变量TEST
$ env|grep TEST       #此命令有输入,证明环境变量TEST已经存在了
TEST=Test... $ unset $TEST          #删除环境变量TEST
$ env|grep TEST      #此命令没有输出,证明环境变量TEST已经存在了

5 用 readonly 命令设置只读变量

如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:
$ export TEST="Test..."       #增加一个环境变量TEST
$ readonly TEST                 #将环境变量TEST设为只读 $ unset TEST                       #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New"                    #会发现此也变量不能被修改
-bash: TEST: readonly variable

查看占用端口

win 中

参考 Windows端口开启关闭

netstat -a  #显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。
netstat -e  #显示以太网发送和接收的字节数、数据包数等。
netstat -n  #以数字形式显示所有活动的TCP连接的地址和端口号。
netstat -o  #显示活动的TCP连接并包括每个连接的进程ID(PID)。
netstat -s  #按协议显示各种连接的统计信息,包括端口号。
netstat -an #查看所有开放的端口。
netstat -nao | grep “8080” 查询8080端口
不支持 grep 可以 findstr “8080”

想知道它的进程名称
tasklist | findstr “3017”

关闭pid为3017的进程
/f 表示强行taskkill /pid 3017 /f
taskkill -pid 3017 /f
taskkill /pid 2152 /pid 1284
taskkill /im notepad.exe或者 ctrl + shift + delete 任务管理器,查看这个PID对应的进程名;
如果PID没有显示,菜单》查看》选择列》选中PID即可;得知进程后,我们可以将进程杀掉
有的关闭不掉可以暂时不关,试一试可不可以运行程序,不行的话可以重启电脑

linux 中

如果发现某个端口被占用后,可以用命令查看,该端口到底是被哪个进程所占用

netstat -pan | grep 5623
#其中5623位端口号

发现5623的端口,被28425的进程id所占用,继续进一步跟踪,到底是哪个程序所占用了。

通过进程id查找程序–ps

ps -aux | grep pid  查看进程程序名称


能够确认目前冲突的端口是哪个程序已经占用了,我们是重新启用换一个端口号,还是结束已经占用的端口号所用的程序,清空被占用的端口号。

直接查找 端口 对应的 进程id

sudo fuser -k 80/tcp
fuser -k 80/tcp
[root@nav-master sbin]# sudo fuser -k 80/tcp
80/tcp:              96603 96604

杀死端口

kill -9 [pid]
[root@nav-worker ~]# netstat -anp |grep 10250
tcp6       0      0 :::10250                :::*                    LISTEN      6353/kubelet
[root@nav-worker ~]# kill -9 6353

防火墙操作

Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。

查看版本
firewall-cmd --version查看帮助
firewall-cmd --help查看防火状态
systemctl status firewalld
service  iptables status
firewall-cmd --state暂时关闭防火墙/禁用防火墙
systemctl stop firewalld
service  iptables stop永久关闭防火墙/停止并禁用开机启动
systemctl disable firewalld
chkconfig iptables off重启防火墙/设置开机启动
systemctl enable firewalld
service iptables restart  重启防火墙
firewall-cmd --reload永久关闭后重启
//暂时还没有试过
chkconfig iptables on
查看区域信息
firewall-cmd --get-active-zones查看指定接口所属区域信息
firewall-cmd --get-zone-of-interface=eth0拒绝所有包
firewall-cmd --panic-on取消拒绝状态
firewall-cmd --panic-off查看是否拒绝
firewall-cmd --query-panic将接口添加到区域(默认接口都在public)
firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然后reload防火墙)设置默认接口区域
firewall-cmd --set-default-zone=public(立即生效,无需重启)更新防火墙规则
firewall-cmd --reload
firewall-cmd --complete-reload
(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
添加规则,第二个需要断开连接,类似重启服务)查看指定区域所有打开的端口
firewall-cmd --zone=public --list-ports在指定区域打开端口(记得重启防火墙)
firewall-cmd --zone=public --add-port=80/tcp
(永久生效再加上 --permanent)
–zone 作用域
–add-port=8080/tcp 添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效

查看jar包内文件

jar vtf  fileName.jar-v  在标准输出中生成详细输出-t  列出归档目录-f  指定归档文件名-c  创建新的归档文件-x  解压缩已归档的指定(或所有)文件-u  更新现有的归档文件-m  包含指定清单文件中的清单信息-e  为捆绑到可执行 jar 文件的独立应用程序指定应用程序入口点-0  仅存储;不使用任何 ZIP 压缩-M  不创建条目的清单文件-i  为指定的 jar 文件生成索引信息-C  更改为指定的目录并包含其中的文件
如果有任何目录文件,则对其进行递归处理。

vim

vim 中 快速查找

vim 中 /{要匹配的字符串}n  或  N 进行上一个或下一个的匹配

echo

vim 不能用,用 echo

可以用 echo

在 app.txt 最后一行追加 HELLO
echo "HELLO" >> app.txt
1. 执行echo时,如果用 > 输出到文件,会 将文件内容清空 并输出2. 执行echo时,如果用 >> 输出到文件,会将内容从文件 最后面 另起一行输出

base64 编码解码

用 gtalk@gmail.com 作为明文加密代码:
echo "gtalk@gmail.com" |base64 -i
得到:Z3RhbGtAZ21haWwuY29tCg==解密代码:
echo "Z3RhbGtAZ21haWwuY29tCg==" |base64 -d
得到:gtalk@gmail.com
实现使用 base64 加密、解密字符串并赋值给变量。网上绝大多数是使用 echo 管道实现 加密和解密字符串的输出。wd=$( base64 -d <<< MQo= )  # 解码
in=$( base64 <<< "123456")  # 加密另外一种方式:
test=$(printf "%s""123456" | base64)  # 加密
echo $testtest=$(printf "%s" MTIzNDU2| base64 -d)   # 解密

输出日志到文件

比如想看 pod 的前几行日志,又没有 --head 参数

 ls > ls.txt    #或者 ls-->ls.txt    #把ls命令的运行结果保存到文件ls.txt中
> 是把输出转向到指定的文件,如文件已存在的话也会重新写入,文件原内容不会保留
>> 是把输出附向到文件的后面,文件原内容会保留下来

上面的方法在写入文件的时候,终端没有任何输出,如果想要同时在终端显示,需要用tee指令

$ ls | tee ls.txt   #将会在终端上显示ls命令的执行结果,并把执行结果输出到ls.txt 文件中
$ ls | tee -a ls.txt   #保留ls.txt文件中原来的内容,并把ls命令的执行结果添加到ls.txt文件的后面

上面的方法是写一句指令的输出,如果需要运行多条指令,还用同样的方法,就会比较麻烦,这个时候就用到了script指令

$ script
#Script. started, file is typescript
$ ls
#…… 内容省略
$ exit
#exit
#Script. done, file is typescript

启动script时没有指定文件名,它会自动记录到当前目录下一个名为 typescript的文件中。也可以用 -a参数指定文件名,比如

$script. -a example.txt  #终端的输出内容被记录到 example.txt这个文件中

退出script时,用exit,事实上script就是启动了一个shell

locale – 设置和显示程序运行的语言环境

Linux 中,使用 locale 命令来设置和显示程序运行的语言环境,locale 会根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统定义一个软件运行时的语言环境

通过 locale 来设置程序运行的不同语言环境,locale 由ANSI C提供支持。locale 的命名规则<语言>_<地区>.<字符集编码>,如zh_CN.UTF-8zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置

<语言>_<地区>.<字符集编码><@修正值>zh_CN.utf8zh:表示中文
CN:表示大陆地区
Utf8:表示字符集de_DE.utf-8@eurode:表示德语
DE:表示德国
Utf-8:表示字符集
euro:表示按照欧洲习惯加以修正
设置locale的根本就是设置一组总共12个LC开头的变量,不包括LANG和LC_ALL
locale默认文件存放位置: /usr/share/i18n/locales

查看当前 locale 设置

列出所有启用的 locale:[root@htlwk0001host ~]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
优先级:LC_ALL > LC_* > LANGLANG:LANG的优先级是最低的,它是所有LC_*变量的默认值下方所有以LC_开头变量(LC_ALL除外)中,如果存在没有设置变量值的变量,那么系统将会使用LANG的变量值来给这个变量进行赋值。如果变量有值,则保持不变LC_ALL:它不是环境变量,它是一个宏,它可通过该变量的设置覆盖所有LC_*变量这个变量设置之后,可以废除LC_*的设置值,使得这些变量的设置值与LC_ALL的值一致,注意LANG变量不受影响。LC_CTYPE:用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等,非常重要的一个变量。LC_NUMERIC:用于格式化非货币的数字显示LC_TIME:用于格式化时间和日期LC_COLLATE:用于比较和排序LC_MONETARY:用于格式化货币单位LC_MESSAGES:用于控制程序输出时所使用的语言,主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等LC_PAPER:默认纸张尺寸大小LC_NAME:姓名书写方式LC_ADDRESS:地址书写方式LC_TELEPHONE:电话号码书写方式LC_MEASUREMENT:度量衡表达方式LC_IDENTIFICATION:locale对自身包含信息的概述
查看当前系统所有可用 locale
[root@htlwk0001host ~]# locale -a

设置系统的 locale

1 可以修改/etc/profile文件
修改/etc/profile文件,在最下面增加

export LC_ALL=zh_CN.utf8
export LANG=zh_CN.utf8

命令行中使用命令 source 配置文件,使其生效

source /etc/locale.conf

2 修改/etc/locale.gen文件

apt-get install locales  #安装locale-gen命令;
vim /etc/locale.gen  #编辑保存退出;
locale-gen  #生效;

3 命令行模式

localectl set-locale LANG=en_US.UTF-8

4 修改/etc/default/locale
将注释打开即可,修改完成后,执行下 locale-gen 命令使其生效

LANG=“en_US.UTF-8”
LANGUAGE=“en_US:en”

source 使其生效
5 创建/etc/locale.conf文件

LANG=en_AU.UTF-8
LC_COLLATE=C
LC_TIME=en_DK.UTF-8

source 使其生效

curl

看这里

curl -H "Content-Type: application/json" -X POST -d '{"user_id": "123", "coin":100, "success":1, "msg":"OK!" }' "http://192.168.0.1:8001/test"-k
-H   请求头
-d  POST内容
-X  请求协议
-k  跳过协议

执行文件命令

$ source 命令文件

例如 pod 中执行 sql 脚本

服务器 /opt目录下有一个 insert.sql文件,需要将其执行到 mysql pod 中1 docker cp 拷贝服务器中 insert.sql 到 mysql pod 容器中 /sql 目录
2 进入 mysql pod
3 执行 $ source /sql/insert.sql;

scp

从本地复制文件到服务器:
注意:是将所在机器的文件复制到指定服务器,所以执行scp命令直接在命令行执行,而不需要登录服务器再scp
scp /home/myfile/test.txt root@192.168.1.100:/data/        scp 文件本地路径  root@服务器端口:服务器路径       从本地复制文件夹到服务器:
scp -r /home/myfile/ root@192.168.1.100:/data/ 从服务器复制文件到本地:
scp root@192.168.1.100:/data/test.txt /home/myfile/从服务器复制文件夹到本地:
scp -r root@192.168.1.100:/data/ /home/myfile/

tree

linux 获取文件夹的目录结构

$ tree mongodb
mongodb
├── Chart.yaml
├── charts
├── templates
│   ├── NOTES.txt

如果提示 command not found,则

yum -y install tree

install 失败

ntpdate时间报错

报错1

[root@nginx01-41 ~]# ntpdate times.aliyun.com
Error resolving times.aliyun.com: Servname not supported for ai_socktype (-8)
31 Aug 21:04:20 ntpdate[1287]: Can't find host times.aliyun.com: Servname not supported for ai_socktype (-8)
31 Aug 21:04:20 ntpdate[1287]: no servers can be used, exiting

看到这个错误之后,第一反应是域名解析不正确,找不到请求资源,但是发现ping times.aliyun.com 正常,这个时候想是不是时区出问题,查看发现时区正常,如果不正常Centos7按照下面方法设置时区

timedatectl status 查看当前的系统时间状态
timedatectl list-timezones 查看时区,找到Asia/Shanghai
timedatectl set-timezone Asia/Shanghai

设置完成之后测试还是一样的错误,查找资料找到解决办法:

是因为/etc/services 里面需要有下面这两行
ntp   123/tcp
ntp   123/udp    # Network Time Protocol

如果没有这个文件则别的虚拟机里面拷贝 /ect/services文件,然后测试正常

报错2
ntpdate同步时间出现:no server suitable for synchronization found 最终解决方案!

redis

Redis 命令参考
如果是集群,先进入 redis 的 pod

运行redis

进入pod 输入 redis-cli

模糊查询

* :通配任意多个字符
? :通配单个字符
[] :通配括号内的某一个字符 注意区分大小写keys *        查看所有 key> keys *ge
"vge"、"sge"> keys *e
"vge"、"sge"> keys ?ge
"vge"、"sge"> keys ???
"vge"、"sge"keys *l* //代表含有l的键
// "cdf_xl"、"abc_lele"keys *_? //代表倒数第二个为_的键
//"1_c"keys *[_xl]? //代表倒数第二个在[]里面的都会被返回
// "cdf_xl"、"abc_lele"、"1_c"

拿到 value

get key_name

其他

memory usage  返回字节数
127.0.0.1:6006> memory usage key_name
(integer) 1489075554llen 返回长度,数量
llen key_name

修改环境变量不重启生效

window系统修改环境变量之后一般通过重启来使环境变量生效,但是又一种更加简单的方法,直接通过Dos窗口打印要修改的环境变量来刷新环境变量,从而使立刻环境变量生效

具体操作如下:

win+r 输入 cmd 调出Dos窗口
//打印你所要修改的环境变量名称,按回车即可
输出echo %path%

k8s

k8s过程学到的命令

查看 pod 实时占用内存
kubectl top po -n polaris

工作用到的 cmd git docker linux redis k8s 命令相关推荐

  1. Docker:Redis启动命令

    QUESTION:Docker:Redis启动命令? ANSWER: 一.启动Redis容器 输入以下命令: docker start redis的名称或者容器名称 二.启动该redis客户端 输入以 ...

  2. docker linux redis 安装

    1.docker redis 查询 docker search redis 2.下载 reids docker pull redis 3.启动 redis docker run -d -v /dock ...

  3. linux redis退出命令行,linux的redis启动关闭命令

    Linux下redis的启动和关闭通过命令来实现.下面由学习啦小编为大家整理了linux下redis启动关闭命令的相关知识,希望对大家有帮助! linux的redis启动关闭命令 linux的redi ...

  4. linux redis 高级命令,Redis高级用法

    Redis认识误区 用get/set方式使用Redis 作为一个key value存在,很多开发者自然的使用set/get方式来使用Redis 实际上这并不是最优化的使用方法.尤其在未启用VM情况下, ...

  5. linux redis 高级命令,Redis的高级应用之事务处理、持久化操作、pub_sub、虚拟内存...

    事务处理 Redis对事务的支持目前还比较简单.Redis只能保证一个client发起的事务中的命令可以连续的执行,而中间不会插入其他client的命令.当一个client在一个连接中发出multi命 ...

  6. docker设置redis密码命令

    进入redis [root@iZwz98nzsodcbigjqrrmxmZ ~]# docker exec -it redis bash 进入bin目录 root@1473acb2f8e7:/data ...

  7. 史上最详细Docker安装Redis (含每一步的图解)实战

    不仅教你安装,还教你删除. 每一行命令都带图解,绝对能懂. 大家对搭建Redis Clustr (Redis 集群)感兴趣的,可以看看这篇文章 Docker搭建Redis Cluster集群环境 希望 ...

  8. Docker 安装 redis 、Redis docker 方式部署

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 找镜像: docker search redis 2. 拉取镜像: 在这一步可以选择版本,不选 ...

  9. redis docker安装、进入命令行后启动服务

    下载redis镜像 首先查看一下redis是否正确: docker search redis 显示: NAME DESCRIPTION STARS OFFICIAL AUTOMATED redis R ...

最新文章

  1. Proxool配置多数据源动态切换
  2. 网络推广——网络推广专员优化网站有秘诀!
  3. Golang 解决no buildable Go source file in问题
  4. system函数用法
  5. 战略配售基金成热点,它或成为入局CDR的最优选择
  6. 解决方案:秒杀整体设计
  7. 在CentOS7上实现NFS共享
  8. 实现简单render函数
  9. inno setup 环境变量 立即生效_CentOS7设置环境变量
  10. Naive Bayes text classification
  11. 存储ic载板_【行业亮点】看好载板供不应求趋势,深南/兴森/越亚积极布局
  12. 基于python实现网络课程秒刷系列二
  13. android歌词控件
  14. LaTeX下载安装与使用
  15. QLabel绘制滚动文本
  16. 任小龙 mysql笔记_小码哥-任小龙Java笔记-面向对象的全部笔记.pdf
  17. 手机序列号和IMEI号的区别
  18. 华天OA漏洞复现手册
  19. 俄罗斯卢布为什么整个2016年都在升值?
  20. 交换机二/三层转发原理

热门文章

  1. C语言解决魔术师发牌问题(循环链表)
  2. TinyXML2的简单使用
  3. 基于LFSR的伪随机序列发生器
  4. 两向量叉乘的计算公式_向量运算(叉乘几何意义)
  5. [又值奥运季] 2016年里约奥运会--8月7日赛事
  6. 360浏览器手机模式设置
  7. 浏览器控制台打印FormData信息
  8. 菜鸟学编程系列——引子
  9. 蓝桥杯.直线(数学)
  10. GitHub账号注册与登录