linux命令自用(初版)

# find -name(文件名) -user(用户) -group(组) -mtime(修改时间天) -n +n -size(文件大小) -type{文件类型(b d c p l f)} -exec {};
# vnstat -q(插) -i(网卡) -m(月) -d(天) -u 网络流量监控器;
# timeout 指定时间强制关闭 -k -s(超时发送信号)
# ipstat 实习显示linux内核iptables工作状态 \收集并报告有关服务器上 IP 通信流
# cal 显示日历
# declare 定义一个新的环境变量
# set 设置shell的执行方式 可以按照不同需求做设置
# env 显示和定义环境变量 environment
# iostat cpu io监控
# sysctl 运行时配置内核参数
# vmstat 显示虚拟内存状态
# lsof 其功能是用于查看文件的进程信息 list opened files
# ulimit 显示当前的各种用户进程限制
# uptime 显示系统运行的时间
# top -n(显示数) -i 不显示进程
# du -shkmga 查看文件大小
# shutdown -h (时间now) -r(reboot) -c (取消关机程序)
# date “+%y-%d-%m-”
# uname -ari
# grep -Fwvf
# if [ -f 判定文件 -e 判断文件是否存在 -d 怕判断目录 -l 链接 (-rwx 可读写执行) ]
# awk ‘引号中间匹配正则内容’ -F : ‘$3>=500’
# sed -e (后插入) -n (不处理)
# netstat 显示网络状态
# tcpdump 抓包 -i eth0 -vvv -p
# mount 挂载
# yum -y(yes) -q(无输出) -v(详细) remove(删除rpm包) list clean(清缓存) update(更新rpm)
# rpm -qa -ivh(安装 执行过程 列出标记) -evh(卸载) -Uvh(升级) -ql(查询安装路径)
# diff 对比文件
# rcp 远程复制
# alias 设置文件别名 mv=‘mv -i’
# which 查询命令所在路径

iptables

iptables-save 保存防火墙规则

请添加图片描述

MySQL

官方网站:http://www.mysql.com
http://dev.mysql.com/doc
MySQL5.6源码安装配置选项参考: https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html

mysql 安装
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/src/mysql \ #Installation base directory -DMYSQL_DATADIR=/mysql/data \ #Data directory -DDEFAULT_CHARSET=utf8 \ #The default server character set -DEXTRA_CHARSETS=all \ #Which extra character sets to include -DDEFAULT_COLLATION=utf8_general_ci \ #The default server collation -DWITH_SSL=system \ #Type of SSL support -DWITH_EMBEDDED_SERVER=1 \ #Whether to build embedded server -DENABLED_LOCAL_INFILE=1 \ #Whether to enable LOCAL for LOAD DATA INFILE -DWITH_INNOBASE_STORAGE_ENGINE=1 #Compile storage engine xx statically into server make && make install **初始化** # /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mysql/data/ --basedir=/usr/local/mysql **启动服务** \# /usr/local/mysql/bin/mysqld_safe --user=mysql & \# /usr/local/mysql/bin/mysqladmin shutdown
将命令定义成系统命令:
# vim /etc/profile.d/mysql.sh
export PATH=/usr/local/mysql/bin:$PATH
# source /etc/profile.d/mysql.sh

命令
# mysql -u用户 -p密码 -h (远程设备ip)
# mysqladmin -u -p create databasename
# mysql -u root -p1 -e “use db2;create table t1(name qwe(1),pass wer(100));insert into t3 set name=‘qwe’,pass=password(‘wer’)” 命令行直接执行
sql命令
>help;
>exit; \q
>use databasename (切换数据库) \u databasename
>show database;
>surce qwe.sql 执行sql脚本 .\ qwe.sql
>system ls; 调用系统命令 ! ls;
>edit \e 类似于vim编辑器 输入完出来直接\e执行方便在不是nivecat上编辑长的命令;
>DROP DATABASE ;删库跑路
>

设置开机启动:(同CENTOS6)
# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld #将mysqld添加到chkconfig管理的开机启动中
# chkconfig --list |grep mysqld #查看mysqld在各运行级别中是否开机启动
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

mysqldump
++++++
mysqldump -u -p tablesname -A ALL >/dirname/

docker

Namespace 空间隔离
Cgroup 资源隔离 (如CPU、内存、磁盘IO等)

# docker commit -m "备注“ 容器 镜像名 \打包容器成镜像
# docker images \查看本机镜像
# docker pull \从默认仓拉取镜像
# docker image rm 镜像 \删除镜像
# docker inspect 镜像 \查看镜像详细信息
# docker ps [-a] top stop|start|restart|kill| rm -f logs cp
启动
docker run -itd -h wslz --name centos centos --ip 10.10.10.10
i (容器内的标准输入 (STDIN) 进行交互) t ( 指定一个伪终端或终端) d ( 在后台运行容器,返回容器ID) -h 指定容器的主机名 --name 指定容器名称 --ip 指定容器的IP地址 -p 80 将容器的80端口映射到宿主机的随机端口 -v <宿主目录>:<容器目录> \\将宿主机的指定目录映射到容器的指定目录
连接容器
# docker exec -it centos /bin/bash \ 可用exit命令退出,不影响容器
# docker attach centos \通过attach连接容器,使用exit退出后容器会关闭 若不想退出后停止容器,可通过快捷键ctrl+pq退出

镜像导入导出
导出:
# docker save centos:latest > /bak/docker-centos_latest.bak
导入:
# docker load < /bak/docker-centos_latest.bak
基于容器
导出:
# docker export centos7 > /bak/docker-centos7.bak
导入:
# docker import /bak/centos7.bak centos7 \导入了镜像

docker 仓库

安装仓库(Registry) \# docker run -d -p 5000:5000 -v /docker/images/:/var/lib/registry --name registry --restart=always registry \# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 21415645b319 registry "/entrypoint.sh /etc…" 13 minutes ago Up 2 minutes 0.0.0.0:5000->5000/tcp registry
Registry为了安全性考虑,默认是需要https证书支持(会有下面紫色字体的错误).
我们可以通过一个简单的办法解决:修改docker启动文件:
/usr/lib/systemd/system/docker.service
# systemctl daemon-reload
# systemctl restart docker

通过 docker tag重命名镜像,使之与registry匹配
# docker tag centos 192.192.192.192:5000/centos7

上传到私有仓库
# docker push 192.192.192.192:5000/centos7

查看私有仓库中的镜像.
# curl 192.192.192.192:5000/v2/_catalog \ALL
{“repositories”:[“centos7”,“nginx”]}

# curl 192.192.192.192:5000/v2/centos7/tags/list #查看镜像的所有版本
{“name”:“centos7”,“tags”:[“latest”,“ipok”]} #删除多余的tag: docker rmi -f 仓库名/镜像名:版本tag

. 从私有仓库中拉取镜像
#docker pull 192.192.192.192:5000/centos7 #仓库/镜像名:版本

Docker Registry WebUI 工具: docker-registry-web
下载 docker-registry-web 镜像
# docker pull hyper/docker-registry-web

启动仓库
# docker run -d -p 5000:5000 -v /docker/images/:/var/lib/registry --name registry --restart=always registry

启动 regisger-web
# docker run -d -p 8080:8080 --name registry-web --link registry \ # --link 仓库名称, 连接到哪个仓库
-e REGISTRY_URL=http://192.192.192.192:5000/v2 \ # 仓库 url
-e REGISTRY_NAME=192.192.192.192:5000 hyper/docker-registry-web

企业级Harbor
在这里插入图片描述

  1. 访问web界面
    docker网络
    docker network ls NETWORK ID NAME DRIVER SCOPE 88888888888 bridge bridge local 默认 创建网桥docker0 每开启一个容器,会按照顺序分配对应的IP地址 88888888888 host host local 88888888888 none null local container
    docker监控

    docker run -d -v /:/rootfs:ro -v /var/run:/var/run:rw -v /sys/:/sys/:ro \

    -v /var/lib/docker/:/var/lib/docker/:ro -p 8080:8080 --name cadvisor google/cadvisor
    
    使用浏览器访问8080端口,可以看到CAdvisor的界面。
    你将看到CPU的使用率、内存使用率、网络吞吐量以及磁盘空间利用率。

Docker加速
方法1: 修改 /etc/docker/daemon.json 文件并添加上 registry-mirrors 键值并重启docker.
#vim cat /etc/docker/daemon.json
{
“registry-mirrors”: [“https://pf5f57i3.mirror.aliyuncs.com”]
}
#systemctl daemon-reload
systemctl restart docker

PS. 可以登录阿里云控制台, 搜索容器镜像服务, 来获取自己的镜像加速地址

方法2: 修改docker服务的启动命令:在启动时传入"–registry-mirror=xxx"参数实现
#vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd --registry-mirror=https://pf5f57i3.mirror.aliyuncs.com
systemctl daemon-reload
systemctl restart docker
++++++

dockerfile

docker build -t image-name-tag [-f dockerfile-name] context-dir
FROM: 指定基础镜像
MAINTAINER: 设置该镜像的作者。
语法: MAINTAINER

RUN 在shell或者exec的环境下执行的命令。每一个 RUN 的行为都会新建立一层
COPY: 复制文件 <宿主机的文件> 复制到 <容器中>
语法:
COPY <源路径>… <目标路径>
COPY [“<源路径1>”,… “<目标路径>”]

ADD: 复制文件指令。它有两个参数和。
语法: ADD

CMD: 容器启动时调用的命令
语法:
CMD command arg1 arg2 #执行shell内部命令 sh -c
CMD [“executable”,“arg1”,“arg2”] #执行可执行文件,优先
CMD [“arg1”,“arg2”] #设置了ENTRYPOINT,则直接调用ENTRYPOINT

EXPOSE:声明端口
语法: EXPOSE port1 [port2]

ENV:设置环境变量
语法:
ENV
ENV = [= …]

VOLUME:挂载匿名卷
语法:
VOLUME


VOLUME [“dir1”,“dir2”]

WORKDIR: CMD命令运行的工作目录
语法: WORKDIR

USER: 用于设定容器的运行用户名或UID
语法: USER user/uid

HEALTHCHECK:健康检查
语法:
HEALTHCHECK [选项] CMD <命令> :设置检查容器健康状况的命令
HEALTHCHECK NONE :如果基础镜像有健康检查指令,使用这行可以屏蔽掉其健康检查指令

k8s

# kubectl help
kubectl controls the Kubernetes cluster manager.
Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/
常用命令
Nodes 节点
$ kubectl get no
$ kubectl get no -o wide
$ kubectl describe no
$ kubectl get no -o yaml
$ kubectl get node --selector=[label_name]
$ kubectl get nodes -o jsonpath=’ {.items[*].status.addresses [?(@.type==“ExternalIP”)].address}’
$ kubectl top node [node_name]
Pods 调度
$ kubectl get po -o wide
$ kubectl describe po
$ kubectl get po
$ kubectl get po --show-labels
$ kubectl get po -l app=nginx
$ kubectl get po -o yaml
$ kubectl get pod [pod_name] - o yaml --export
$ kubect l get pod [ pod_name] - o yaml --export > nameoffile.yaml
$ kubectl get pods – field-selector status.phase=Running
Namespaces 命名空间
$ kubectl get ns
$ kubectl get ns - o yaml
$ kubectl describe ns
Deployments
$ kubectl get deploy
$ kubectl describe deploy
$ kubectl get deploy - o wide
$ kubectl get deploy - o yaml
Services
$ kubectl get svc
$ kubectl describe svc
$ kubectl get svc - o wide
$ kubectl get svc - o yaml
$ kubectl get svc --show-labels
DaemonSets
$ kubectl get ds
$ kubectl get ds --all-namespaces
$ kubectl describe ds [daemonset_name] - n [namespce_name]
$ kubectl get ds [ds_name] -n [ns_name] -o yaml
Events
$ kubectl get events
$ kubectl get events -n kube-system
$ kubectl get events -w
logs
$ kubectl logs [pod_name]
$ kubectl logs --since=1h [pod_name]
$ kubectl logs --tail =20 [pod_name]
$ kubectl logs -f -c [container_name] [pod_name]
$ kubectl logs [pod_name] > pod.log
Service Accounts
$ kubectl get sa
$ kubectl get sa -o yaml
$ kubectl get serviceaccounts default -o yaml >./sa.yaml
$ kubectl replace serviceaccount default -f ./sa.yaml
ReplicaSets
$ kubectl get rs
$ kubectl describe rs
$ kubectl get rs -o wide
$ kubectl get rs -o yaml
Roles
$ kubectl get roles --all -namespaces
$ kubectl get roles --all -namespaces -o yaml
Secrets
$ kubectl get secrets
$ kubectl get secrets --all -namespaces
$ kubectl get secrets -o yaml
ConfigMaps
$ kubectl get cm
$ kubectl get cm --all-namespaces
$ kubectl get cm --all-namespaces -o yaml
Ingress
$ kubectl get ing
$ kubectl get ing --all-namespaces
PersistentVolume
$ kubectl get pv
$ kubectl describe pv
PersistentVolumeClaim
$ kubectl get pvc
$ kubectl describe pvc
StorageClass
$ kubectl get sc
$ kubectl get sc -o yaml
Multiple Resources
$ kubectl get svc,po
$ kubectl get deploy,no
$ kubectl get all
$ kubectl get all --all -namespaces
Changing Resource Attributes //改变资源属性
Taint
$ kubectl taint [node_name] [taint_name]
Labels
$ kubectl label [node_name] disktype=ssd
$ kubectl label [pod_name] env=prod
Cordon/Uncordon
$ kubectl cordon [node_name]
$ kunectl uncordon [node_name]
Drain
$ kubectl drain [node_name]
Nodes/Pods
$ kubectl delet enode [node_name]
$ kubectl delet epod [pod_name]
$ kubectl edit node [node_name]
$ kubectl edit pod [pod_name]
Deployments/Namespaces
$ kubectl edit deploy [deploy_name]
$ kubectl delete deploy [deploy_name]
$ kubectl expse deploy [deploy_name] --por=80 -type=NodePort
$ kubectl scale deploy [deploy_name] --repicas=5
$ kubectl delete ns
$ kubectl edit ns [ns_name]
Services
$ kubectl edit svc [svc_name]
$ kubectl delete svc [svc_name]
DaemonSets
$ kubectl edit ds [ds_name] -n kube-system
$ kubectl delete ds [ds_name]
Service Accounts
$ kubectl edit sa [sa_name]
$ kubectl delete sa [sa_name]
Annotate
$ kubectl annotate po [pod_name] [annotation]
$ kubectl annotate no [node_name]
Adding Resources //添加资源
Creating a Pod
$ kubectl create -f [name_of_file]
$ kubectl apply -f [name_of_file]
$ kubectl run [pod_name] --image=nginx --resart=Never
$ kubectl run [pod_name] --geneator=run-pod/v1 --image=nginx
$ kubectl run [pod_name] --image=nginx --restart=Never
Creating a Service
$ kubectl create svc nodeport [svc_name] --tcp=8080: 80
Creating a Deployment
$ kubectl create -f [name_of_file]
$ kubectl apply -f [name_of_file]
$ kubectl create deploy [deploy_name] --image=ngi nx
Interactive Pod
$ kubectl run [pod_name] --image=busybox --rm -it --restart=Never – sh
Output YAML to a File
$ kubectl create deploy [deploy_name] --image=nginx --dry-run -o yaml > depl oy. yaml
$ kubectl get po [pod_name] -o yaml --export > pod. yaml
Getting Help
$ kubectl -h
$ kubectl create -h
$ kubectl run -h
$ kubectl explain deploy.spec
Requests //请求
API Call
$ kubectl get --raw /apis/metrics.k8s.io/
Cluster Info
$ kubectl config
$ kubectl cluster-info
$ kubectl get componentstatuses
kubectl -n kube-system edit cm coredns
+++++

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值