1. 程式人生 > >Kubernetes之kubectl常用命令使用指南:3:故障對應

Kubernetes之kubectl常用命令使用指南:3:故障對應

kubectl是一個用於操作kubernetes叢集的命令列介面,通過利用kubectl的各種命令可以實現各種功能,是在使用kubernetes中非常常用的工具。這裡我們會通過一些簡單的例項來展現其中一些高頻命令的使用方法。 
更為重要的是這些命令使用的場景以及能夠解決什麼樣的問題。上篇文章我們介紹了故障排查時常用的九條命令,這篇文章我們來看一下故障對應時最常用的另外九條命令。

常用命令

kubectl故障對應相關,本文將會簡單介紹一下如下命令

項番命令說明
No.1edit編輯伺服器側資源
No.2replace使用檔名或者標準輸入資源
No.3patch部分更新資源相關資訊
No.4apply使用檔案或者標準輸入更改配置資訊
No.5scale重新設定Deployment/ReplicaSet/RC/Job的size
No.6autoscaleDeployment/ReplicaSet/RC的自動擴充套件設定
No.7cordon設定node不可使用
No.8uncordon設定node可以使用
No.9drain設定node進入維護模式

事前準備

版本

[[email protected] tmp]# kubectl version
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:57:25Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"2017-01-12T04:52:34Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
[
[email protected]
tmp]#

叢集構成

一主三從的Kubernetes叢集

項番型別HostnameIP
No.1Masterku8-1192.168.32.131
No.1Nodeku8-2192.168.32.132
No.1Nodeku8-3192.168.32.133
No.1Nodeku8-4192.168.32.134
[[email protected] tmp]# kubectl get nodes
NAME             STATUS    AGE
192.168.32.132   Ready     12m
192.168.32.133   Ready     11m
192.168.32.134   Ready     11m
[
[email protected]
tmp]#

事前準備

映象準備

使用如下官方映象進行實驗,因為主要用於示例,自行使用各種映象均可

映象版本說明
nginx-alpine1.12nginx的1.12的alpine版本的官方映象
nginx-alpine1.13nginx的1.13的alpine版本的官方映象

設定yaml

使用Deployment方式啟動nginx的pod加上service的設定,簡單如下:

[[email protected] tmp]# cat nginx/nginx.yaml 
---
kind: Deployment
apiVersion: extensions/v1beta1
metadata:
  name: nginx
spec:
  replicas: 1
  template:
    metadata:
      labels:
        name: nginx
    spec:
      containers:
      - name: nginx
        image: 192.168.32.131:5000/nginx:1.12-alpine
        ports:
        - containerPort: 80
          protocol: TCP
---
kind: Service
apiVersion: v1
metadata:
  name: nginx
  labels:
    name: nginx
spec:
  type: NodePort
  ports:
  - protocol: TCP
    nodePort: 31001
    targetPort: 80
    port: 80
  selector:
    name: nginx
[[email protected] tmp]#

kubectl create

建立pod/deployment/service

[[email protected] tmp]# kubectl create -f nginx/
deployment "nginx" created
service "nginx" created
[[email protected] tmp]# 

確認

建立pod/deployment/service

[[email protected] tmp]# kubectl get service
NAME         CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
kubernetes   172.200.0.1       <none>        443/TCP        1d
nginx        172.200.229.212   <nodes>       80:31001/TCP   58s
[[email protected] tmp]# kubectl get pod
NAME                     READY     STATUS    RESTARTS   AGE
nginx-2476590065-1vtsp   1/1       Running   0          1m
[[email protected] tmp]# kubectl get deploy
NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
nginx     1         1         1            1           1m
[[email protected] tmp]# 

kubectl edit

edit這條命令用於編輯伺服器上的資源,具體是什麼意思,可以通過如下使用方式來確認。

編輯物件確認

使用-o引數指定輸出格式為yaml的nginx的service的設定情況確認,取得現場情況,這也是我們不知道其yaml檔案而只有環境時候能做的事情。

[[email protected] tmp]# kubectl get service |grep nginx
nginx        172.200.229.212   <nodes>       80:31001/TCP   2m
[[email protected] tmp]# kubectl get service nginx -o yaml
apiVersion: v1
kind: Service
metadata:
  creationTimestamp: 2017-06-30T04:50:44Z
  labels:
    name: nginx
  name: nginx
  namespace: default
  resourceVersion: "77068"
  selfLink: /api/v1/namespaces/default/services/nginx
  uid: ad45612a-5d4f-11e7-91ef-000c2933b773
spec:
  clusterIP: 172.200.229.212
  ports:
  - nodePort: 31001
    port: 80
    protocol: TCP
    targetPort: 80
  selector:
    name: nginx
  sessionAffinity: None
  type: NodePort
status:
  loadBalancer: {}
[[email protected] tmp]# 

使用edit命令對nginx的service設定進行編輯,得到如下資訊

可以看到當前埠為31001,在此編輯中,我們把它修改為31002

[[email protected] tmp]# kubectl edit service nginx
service "nginx" edited
[[email protected] tmp]#

編輯之後確認結果發現,此服務埠已經改變

  • [[email protected] tmp]# kubectl get service
    NAME         CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
    kubernetes   172.200.0.1       <none>        443/TCP        1d
    nginx        172.200.229.212   <nodes>       80:31002/TCP   8m
    [[email protected] tmp]# 

確認後發現能夠立連通

  • [[email protected] tmp]# curl http://192.168.32.132:31002/
    <!DOCTYPE html>
    <html>
    <head>
    <title>Welcome to nginx!</title>
    <style>
        body {
            width: 35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    <h1>Welcome to nginx!</h1>
    <p>If you see this page, the nginx web server is successfully installed and
    working. Further configuration is required.</p>
    
    <p>For online documentation and support please refer to
    <a href="http://nginx.org/">nginx.org</a>.<br/>
    Commercial support is available at
    <a href="http://nginx.com/">nginx.com</a>.</p>
    
    <p><em>Thank you for using nginx.</em></p>
    </body>
    </html>
    [[email protected] tmp]#

而之前的埠已經不通

所使用場景之一,edit編輯的是執行環境的設定而不需要停止服務。

kubectl replace

瞭解到edit用來做什麼之後,我們會立即知道replace就是替換,我們使用上個例子中的service的port,重新把它改回31001

事前確認

確認port資訊為31002

  • [[email protected] tmp]# kubectl get service
    NAME         CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
    kubernetes   172.200.0.1       <none>        443/TCP        1d
    nginx        172.200.229.212   <nodes>       80:31002/TCP   17m
    [[email protected] tmp]# 

取得當前的nginx的service的設定檔案,然後修改port資訊

執行replace命令

提示被替換了

確認結果

確認之後發現port確實重新變成了31001

  • [[email protected] tmp]# kubectl get service
    NAME         CLUSTER-IP        EXTERNAL-IP   PORT(S)        AGE
    kubernetes   172.200.0.1       <none>        443/TCP        1d
    nginx        172.200.229.212   <nodes>       80:31001/TCP   20m
    [[email protected] tmp]#

kubectl patch

當部分修改一些設定的時候patch非常有用,尤其是在1.2之前的版本,port改來改去好無聊,這次換個image

事前確認

當前port中使用的nginx是alpine的1.12版本

[[email protected] tmp]# kubectl exec nginx-2476590065-1vtsp  -it sh
/ # nginx -v
nginx version: nginx/1.12.0
/ # 

執行patch進行替換

  • [[email protected] tmp]# kubectl patch pod nginx-2476590065-1vtsp -p '{"spec":{"containers":[{"name":"nginx","image":"192.168.32.131:5000/nginx:1.13-alpine"}]}}'
    "nginx-2476590065-1vtsp" patched
    [[email protected] tmp]# 

確認結果

確認當前pod中的映象已經patch成了1.13

[[email protected] tmp]# kubectl exec nginx-2476590065-1vtsp  -it sh
/ # nginx -v
nginx version: nginx/1.13.1
/ # 

kubectl apply

同樣apply命令是用來使用檔案或者標準輸入來更改配置資訊。

事前準備

結果確認

Service的Port設定為了31001

  • [[email protected] tmp]# kubectl get service
    NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
    kubernetes   172.200.0.1      <none>        443/TCP        1d
    nginx        172.200.68.154   <nodes>       80:31001/TCP   11s
    [[email protected] tmp]# 

修改設定檔案

將port修改為31002

[[email protected] tmp]# vi nginx/nginx.yaml 
[[email protected] tmp]# grep 31002 nginx/nginx.yaml 
    nodePort: 31002
[[email protected] tmp]# 

執行apply命令

執行設定檔案可以在執行狀態修改port資訊

結果確認

確認確實將port已經修改為31002了

  • [[email protected] tmp]# kubectl get service
    NAME         CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
    kubernetes   172.200.0.1      <none>        443/TCP        1d
    nginx        172.200.68.154   <nodes>       80:31002/TCP   1m
    [[email protected] tmp]#

kubectl scale

scale命令用於橫向擴充套件,是kubernetes或者swarm這類容器編輯平臺的重要功能之一,讓我們來看看是如何使用的

事前準備

事前設定nginx的replica為一,而經過確認此pod在192.168.32.132上執行

執行scale命令

使用scale命令進行橫向擴充套件,將原本為1的副本,提高到3。

通過確認發現已經進行了橫向擴充套件,除了192.168.132.132,另外133和134兩臺機器也各有一個pod運行了起來,這正是scale命令的結果。

  • [[email protected] tmp]# kubectl get deployment
    NAME      DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
    nginx     3         3         3            3           2m
    [[email protected] tmp]# kubectl get pod -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-74tpk   1/1       Running   0          2m        172.200.26.2   192.168.32.132
    nginx-2476590065-cm5d9   1/1       Running   0          16s       172.200.44.2   192.168.32.133
    nginx-2476590065-hmn9j   1/1       Running   0          16s       172.200.59.2   192.168.32.134
    [[email protected] tmp]#

kube autoscale

autoscale命令用於自動擴充套件確認,跟scale不同的是前者還是需要手動執行,而autoscale則會根據負載進行調解。而這條命令則可以對Deployment/ReplicaSet/RC進行設定,通過最小值和最大值的指定進行設定,這裡只是給出執行的結果,不再進行實際的驗證。 

當然使用還會有一些限制,比如當前3個,設定最小值為2的話會出現什麼樣的情況?

  • [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-74tpk   1/1       Running   0          5m        172.200.26.2   192.168.32.132
    nginx-2476590065-cm5d9   1/1       Running   0          2m        172.200.44.2   192.168.32.133
    nginx-2476590065-hmn9j   1/1       Running   0          2m        172.200.59.2   192.168.32.134
    [[email protected] tmp]# 
    [[email protected] tmp]# kubectl autoscale deployment nginx --min=2 --max=2
    Error from server (AlreadyExists): horizontalpodautoscalers.autoscaling "nginx" already exists
    [[email protected] tmp]# 


kubectl cordon 與 uncordon

在實際維護的時候會出現某個node壞掉,或者做一些處理,暫時不能讓生成的pod在此node上執行,需要通知kubernetes讓其不要建立過來,這條命令就是cordon,uncordon則是取消這個要求。例子如下:

事前準備

建立了一個nginx的pod,跑在192.168.32.133上。

  • [[email protected] tmp]# kubectl create -f nginx/
    deployment "nginx" created
    service "nginx" created
    [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-dnsmw   1/1       Running   0          6s        172.200.44.2   
    192.168.32.133
    [[email protected] tmp]#

執行scale命令

橫向擴充套件到3個副本,發現利用roundrobin策略每個node上執行起來了一個pod,134這臺機器也有一個。

  • [[email protected] tmp]# kubectl scale --replicas=3 deployment/nginx
    deployment "nginx" scaled
    [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-550sm   1/1       Running   0          5s        172.200.26.2   192.168.32.132
    nginx-2476590065-bt3bc   1/1       Running   0          5s        172.200.59.2   192.168.32.134
    nginx-2476590065-dnsmw   1/1       Running   0          17s       172.200.44.2   192.168.32.133
    [[email protected] tmp]# kubectl get pods -o wide |grep 192.168.32.134
    nginx-2476590065-bt3bc   1/1       Running   0          12s       172.200.59.2   192.168.32.134
    [[email protected] tmp]# 

執行cordon命令

設定134,使得134不可使用,使用get node確認,其狀態顯示SchedulingDisabled。

  • [[email protected] tmp]# kubectl cordon 192.168.32.134
    node "192.168.32.134" cordoned
    [[email protected] tmp]# kubectl get nodes -o wide
    NAME             STATUS                     AGE       EXTERNAL-IP
    192.168.32.132   Ready                      1d        <none>
    192.168.32.133   Ready                      1d        <none>
    192.168.32.134   Ready,SchedulingDisabled   1d        <none>
    [[email protected] tmp]# 

執行scale命令

再次執行橫向擴充套件命令,看是否會有pod漂到134這臺機器上,結果發現只有之前的一個pod,再沒有新的pod漂過去。

  • [[email protected] tmp]# kubectl scale --replicas=6 deployment/nginx
    deployment "nginx" scaled
    [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-550sm   1/1       Running   0          32s       172.200.26.2   192.168.32.132
    nginx-2476590065-7vxvx   1/1       Running   0          3s        172.200.44.3   192.168.32.133
    nginx-2476590065-bt3bc   1/1       Running   0          32s       172.200.59.2   192.168.32.134
    nginx-2476590065-dnsmw   1/1       Running   0          44s       172.200.44.2   192.168.32.133
    nginx-2476590065-fclhj   1/1       Running   0          3s        172.200.44.4   192.168.32.133
    nginx-2476590065-fl9fn   1/1       Running   0          3s        172.200.26.3   192.168.32.132
    [[email protected] tmp]# kubectl get pods -o wide |grep 192.168.32.134
    nginx-2476590065-bt3bc   1/1       Running   0          37s       172.200.59.2   192.168.32.134
    [[email protected] tmp]# 

執行uncordon命令

使用uncordon命令解除對134機器的限制,通過get node確認狀態也已經正常。

執行scale命令

再次執行scale命令,發現有新的pod可以建立到134node上了。

  • [[email protected] tmp]# kubectl scale --replicas=10 deployment/nginx
    deployment "nginx" scaled
    [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-550sm   1/1       Running   0          1m        172.200.26.2   192.168.32.132
    nginx-2476590065-7vn6z   1/1       Running   0          3s        172.200.44.4   192.168.32.133
    nginx-2476590065-7vxvx   1/1       Running   0          35s       172.200.44.3   192.168.32.133
    nginx-2476590065-bt3bc   1/1       Running   0          1m        172.200.59.2   192.168.32.134
    nginx-2476590065-dnsmw   1/1       Running   0          1m        172.200.44.2   192.168.32.133
    nginx-2476590065-fl9fn   1/1       Running   0          35s       172.200.26.3   192.168.32.132
    nginx-2476590065-pdx91   1/1       Running   0          3s        172.200.59.3   192.168.32.134
    nginx-2476590065-swvwf   1/1       Running   0          3s        172.200.26.5   192.168.32.132
    nginx-2476590065-vdq2k   1/1       Running   0          3s        172.200.26.4   192.168.32.132
    nginx-2476590065-wdv52   1/1       Running   0          3s        172.200.59.4   192.168.32.134
    [[email protected] tmp]#

kubectl drain

drain命令用於對某個node進行設定,是為了設定此node為維護做準備。英文的drain有排幹水的意思,下水道的水之後排幹後才能進行維護。那我們來看一下kubectl”排水”的時候都作了什麼

事前準備

將nginx的副本設定為4,確認發現134上啟動了兩個pod。

  • [[email protected] tmp]# kubectl create -f nginx/
    deployment "nginx" created
    service "nginx" created
    [[email protected] tmp]# kubectl get pod -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-d6h8f   1/1       Running   0          8s        172.200.59.2   192.168.32.134
    [[email protected] tmp]# 
    [[email protected] tmp]# kubectl get nodes -o wide
    NAME             STATUS    AGE       EXTERNAL-IP
    192.168.32.132   Ready     1d        <none>
    192.168.32.133   Ready     1d        <none>
    192.168.32.134   Ready     1d        <none>
    [[email protected] tmp]# 
    [[email protected] tmp]# kubectl scale --replicas=4 deployment/nginx
    deployment "nginx" scaled
    [[email protected] tmp]# 
    [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-9lfzh   1/1       Running   0          12s       172.200.59.3   192.168.32.134
    nginx-2476590065-d6h8f   1/1       Running   0          1m        172.200.59.2   192.168.32.134
    nginx-2476590065-v8xvf   1/1       Running   0          43s       172.200.26.2   192.168.32.132
    nginx-2476590065-z94cq   1/1       Running   0          12s       172.200.44.2   192.168.32.133
    [[email protected] tmp]# 

執行drain命令

執行drain命令,發現這條命令做了兩件事情: 
1. 設定此node不可以使用(cordon) 
2. evict了其上的兩個pod

  • [[email protected] tmp]# kubectl drain 192.168.32.134
    node "192.168.32.134" cordoned
    pod "nginx-2476590065-d6h8f" evicted
    pod "nginx-2476590065-9lfzh" evicted
    node "192.168.32.134" drained
    [[email protected] tmp]# 

結果確認

evict的意思有驅逐和回收的意思,讓我們來看一下evcit這個動作的結果到底是什麼。 
結果是134上面已經不再有pod,而在132和133上新生成了兩個pod,用以替代在134上被退場的pod,而這個替代的動作應該是replicas的機制保證的。所以drain的結果就是退場pod和設定node不可用(排水),這樣的狀態則可以進行維護了,執行完後重新uncordon即可。

  • [[email protected] tmp]# kubectl get pods -o wide
    NAME                     READY     STATUS    RESTARTS   AGE       IP             NODE
    nginx-2476590065-1ld9j   1/1       Running   0          13s       172.200.44.3   192.168.32.133
    nginx-2476590065-ss48z   1/1       Running   0          13s       172.200.26.3   192.168.32.132
    nginx-2476590065-v8xvf   1/1       Running   0          1m        172.200.26.2   192.168.32.132
    nginx-2476590065-z94cq   1/1       Running   0          55s       172.200.44.2   192.168.32.133
    [[email protected] tmp]# 
    [[email protected] tmp]# kubectl get nodes -o wide
    NAME             STATUS                     AGE       EXTERNAL-IP
    192.168.32.132   Ready                      1d        <none>
    192.168.32.133   Ready                      1d        <none>
    192.168.32.134   Ready,SchedulingDisabled   1d        <none>
    [[email protected] tmp]# 

總結

這篇文章中介紹了九個kubectl的常用命令,利用這些能夠在故障對應中起到非常有效的作用。

轉自:http://blog.csdn.net/liumiaocn/article/details/73997635

相關推薦

Kuberneteskubectl常用命令使用指南:3:故障對應

kubectl是一個用於操作kubernetes叢集的命令列介面,通過利用kubectl的各種命令可以實現各種功能,是在使用kubernetes中非常常用的工具。這裡我們會通過一些簡單的例項來展現其中一些高頻命令的使用方法。 更為重要的是這些命令使用的場景以及能夠解決什麼樣的

Kuberneteskubectl常用命令使用指南:2:故障排查

alpha eth message resources mount 權限 copyright count limit kubectl是一個用於操作kubernetes集群的命令行接口,通過利用kubectl的各種命令可以實現各種功能,是在使用kubernetes中非常

Kuberneteskubectl常用命令使用指南:1:建立和刪除

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Kuberneteskubectl常用命令使用指南 1 建立和刪除

                        kubectl

Kuberneteskubectl常用命令使用指南 4 docker命令 vs kubectl

描述 朋友 使用指南 各種功能 總結 ref body 一個 -i kubectl是一個用於操作kubernetes集群的命令行接口,通過利用kubectl的各種命令可以實現各種功能,是在使用kubernetes中非常常用的工具。這裏我們會通過一些簡單的實例來展現其

Kuberneteskubectl常用命令:故障排查和故障解決

kubectl故障排查相關常用命令 編號 命令 說明 1 version 顯示客戶端和伺服器側版本資訊 2 api-versions 以group/version的格式顯示伺服器側所支援的API版本 3 explain

Kuberneteskubectl常用命令

1. Help 類似於所有的命令列工具工具,kubectl也可以直接執行或 | 可獲得命令的幫助資訊。如下圖所示,kubectl使用方式為: Usage: kubectl [flags] kubectl [commond]

Kuberneteskubectl命令列工具簡介、安裝配置及常用命令

kubectl概述 kubectl是Kubernetes叢集的命令列工具,通過kubectl能夠對叢集本身進行管理,並能夠在叢集上進行容器化應用的安裝部署。執行kubectl命令的語法如下所示: $ kubectl [command] [TYPE] [NAME] [flags] coma

Kubernetes kubectl常用命令

Kubernetes kubectl常用命令 [TOC] 1. 檢視資源物件 常用檢視資源物件(%rc%)有namespace(ns) pods service(svc) endpoints(ep) deployment(deploy) pvc ingresses(ing),括號內為最簡寫法。 kube

kuberneteskubectl命令用法總結

常用 thead set 可選 顯示 file url scale accounts 本文是對k8s,kubectl常用命令的總結。 語法 kubectl [command] [TYPE] [NAME] [flags] 1 command:子命令,用於操作Kub

No-sqlredis常用命令

ucc container per coo xxx pivot orm article repl 轉自:http://blog.csdn.net/nicewuranran/article/details/51793760 No-SQL之Redis 介紹 Redis是一

大數據---hadoop常用命令大全終極篇

大數據 Hadoop 軟件環境 RHEL6.8 hadoop2.8.1 apache-maven-3.3.9findbugs-1.3.9 protobuf-2.5.0.tar.gz jdk-8u45(操作環境root安裝啟動的hadoop)hadoop fs == hdfs dfs 將文件上傳至ha

kubectl常用命令

sca 默認 ide containe all ice scale exe name command kubectl kubectl 輸出格式 顯示Pod的更多信息 kubectl get pod <pod-name> -o wide 以yaml格式顯示Po

redis常用命令和5種資料結構

redis中文官網:string hash list set sortedset 一、基本操作 #獲取所有的key keys * #判斷一個鍵是否存在。存在則返回1,否則返回0 exists mykey #刪除鍵 del mykey #過期時間(單位:秒) #設定過期時間

Linxu基礎Ubuntu常用命令記錄

進入root模式 sudo -i 安裝和解除安裝軟體 sudo apt-get install sudo apt-get remove 清空終端 clear 顯示日期與時間的命令: date 顯示日曆的命令: cal 簡單好用的計算器: bc

新手git常用命令操作

有不對的歡迎指出,交流   1.git賬號訊息設定: git config --global --replace-all user.email "輸入你的郵箱"  git config --global --replace-all user.name "輸入你的使

Jenkins持續整合 git常用命令

Jenkins持續整合 之 git常用命令 git本地倉庫命令 git --help 調出git的幫助文件 git +命令 --help 檢視某個具體命令的幫助文件 git --version 檢視git的版本 git init

Jenkins持續集成 git常用命令

oss 一個 proc 幫助 51cto ESS com src 倉庫 Jenkins持續集成 之 git常用命令 git本地倉庫命令 git --help 調出git的幫助文檔 git +命令 --help 查看某個具體命令

Linux中Vi編輯器簡單常用命令

Vi是Linux中最基本的文字編輯器。vi可以分為三種狀態,分別是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能區分如下:    1) 命令列模式command mode)   控制螢

菜鳥程式猿linux常用命令

顯示系統狀態: systemctl status 輸出啟用的單元 systemctl 或 systemctl list-units 輸出執行失敗的單元 systemctl --failed 檢視全部已安裝服務 systemctl list-unit-files 馬上啟