Avatar

Organizations

12 results for CLI
  • Tmux命令

    ## Session
    # 开启新会话
    tmux
    # 开启新会话并命名
    tmux new -s my_session
    # 重命名会话
    tmux rename-session -t 0 <new-name>
    # 显示所有会话
    tmux ls
    tmux list-sessions
    # 使用会话编号接入
    tmux attach -t 0
    # 使用会话名称接入
    tmux attach -t <session-name>
    tmux a -t name #简写
    # 切换会话
    tmux switch -t 0
    tmux switch -t <session-name>
    # 关闭会话
    tmux kill-session -t 0
    tmux kill-session -t <session-name>
    # 关闭会话窗口
    tmux kill-window -t <session-name>:<window-index>
    # 断开会话,在后台运行
    tmux detach
    
    ## Window
    # 显示会话的窗口
    tmux list-windows -t <session-name>
    
    ## Pane
    # 显示会话窗口的面板
    tmux list-panes -t <session-name>:<window-index>
    # 修改会话窗口面板标题
    tmux select-pane -T "new-title" -t <session-name>:<window-index>.<pane-index>
    # 移动面板到窗口
    tmux move-pane -t <session-name>:<window-index>
    # 交换面板内容
    tmux swap-pane -s <source-pane-index> -t <target-pane-index>
    # 所有面板水平排列
    tmux select-layout even-horizontal
    # 所有面板垂直排列
    tmux select-layout even-vertical
    

    配置文件

    ; ~/.tmux.conf
    # 启用鼠标支持
    set -g mouse on
    # 显示状态栏信息(会话名、窗口索引、时间等)
    set -g status-right '#[fg=green]#H #[fg=blue]%d %b %R'
    # 在窗格边框显示窗格索引和当前命令
    set -g pane-border-format "#{pane_index} #{pane_title}"
    # 将窗格边框状态信息显示在顶部
    set -g pane-border-status top
    
    tmux source-file ~/.tmux.conf
    

    快捷键操作

    Prefix = Ctrl + b

    cli tmux linux Created Wed, 21 Feb 2024 16:08:32 +0800
  • 文件合并

    cat info.log error.log > merge.log.bak
    cp merge.log.bak merge.log
    

    文件拆分

    cli txt linux Created Wed, 31 May 2023 11:18:52 +0800
  • WindTerm 无法认证

    WindTerm客户端,取消 “会话设置 -> SSH -> 验证 -> 尝试键盘交互认证” 可已正常连接。

    安装 OpenSSH Server

    $ apk update
    $ apk add openssh-server openssh
    
    ; /etc/ssh/sshd_config
    
    # 开放Root登录
    - #PermitRootLogin prohibit-password
    + PermitRootLogin yes
    
    # 允许其它用户登录
    - #PasswordAuthentication yes
    + PasswordAuthentication yes
    
    # 解决ssh自动断开
    - #ClientAliveInterval 0
    - #ClientAliveCountMax 3
    + ClientAliveInterval 60
    + ClientAliveCountMax 3
    
    $ rc-service sshd start
    
    $ rc-service sshd restart
    # 设置开机启动
    $ rc-update add sshd
    # 删除开机启动服务
    $ rc-update del sshd
    # 显示所有服务
    # rc-status -a
    

    终端配置

    在 /etc/profile.d 文件夹下,创建sh文件来实现。

    linux cli alpine linux Created Wed, 28 Dec 2022 16:27:00 +0800
  • 已弃用,转到 tmux

    创建屏幕

    # 离线方式创建屏幕,一般用在启动脚本
    $ screen -S <screen_name> -d -m
    

    查年屏幕

    $ screen -ls
    

    执行命令

    # 在指定屏幕内输入cmd,注意\n代表回车
    $ screen -S <screen_name> -X stuff "<cmd>\n"
    # 在当前窗口内,通过另一个过滤进程控制窗口的输入或输出。
    # 非常复杂,还没有搞明白有什么用
    # 官方建议:小心使用!
    $ screen -S <screen_name> -X |<cmd>
    $ screen -S <screen_name> -X !..|<cmd>
    $ screen -S <screen_name> -X exec<cmd>
    

    参考文档

    离开屏幕

    在 screen 终端下,按 Ctrl+a d 键

    退出屏幕

    # 进入指定屏幕,再退出
    $ screen -r <screen_name|pid>
    $ exit
    # 指定屏幕,直接退出
    $ screen -S <screen_name> -X quit
    
    cli screen linux Created Wed, 28 Dec 2022 14:24:08 +0800
  • systemctl命令

    systemctl list-units            ##列出当前系统服务的状态
    systemctl list-unit-files       ##列出服务的开机状态
    systemctl status sshd           ##查看指定服务的状态
    systemctl stop sshd             ##关闭指定服务
    systemctl start sshd            ##开启指定服务
    systemctl restart sshd          ##从新启动服务
    systemctl enable sshd           ##设定指定服务开机开启
    systemctl disable sshd          ##设定指定服务开机关闭
    systemctl reload sshd           ##使指定服务从新加载配置
    systemctl list-dependencies sshd    ##查看指定服务的倚赖关系
    systemctl mask  sshd            ##冻结指定服务
    systemctl unmask sshd           ##启用服务
    systemctl set-default multi-user.target ##开机不开启图形
    systemctl set-default graphical.target  ##开机启动图形
    

    设置主机名

    $ _hostname_=XXXX
    $ hostnamectl --static set-hostname ${_hostname_}
    $ hostnamectl --transient set-hostname ${_hostname_}
    $ hostnamectl --pretty set-hostname ${_hostname_}
    

    修改服务器时区

    $ timedatectl set-timezone Asia/Shanghai
    
    CLI Systemd Linux Created Tue, 27 Dec 2022 17:29:08 +0800
  • 遇事不决,多读文档!

    虚拟机

    创建

    使用命令行创建 VM 非常方便,而且还可以使用各发行版的云镜像,快速创建速度又快,占用空间又小,非常方便。

    # 增加硬盘空间
    # 建议从模板创建虚拟机后,再增加虚拟机硬盘的空间,这样可以保持模板的大小
    qm disk resize <VM_ID> scsi0 +30G
    
    # 关闭
    qm stop <vmid>
    # 如果关闭失败
    qm list
    # 找到 vm 对应的 pid
    kill <pid>
    
    # 删除
    qm destroy <vmid> --destroy-unreferenced-disks 1 --purge 1 --skiplock 1
    
    # 强制删除
    rm -f /etc/pve/nodes/*/*/<vm_id>.conf
    # [修復Proxmox VE:無法刪除虛擬機器](https://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-destroy.html#postcataproxmox-ve-fix-proxmox-ve-destroy.html0_anchor2)
    

    LXC容器

    # 关闭
    pct stop <vmid>
    pct list
    

    存储

    # 查看存储空间使用情况
    pvesm status
    
    # 查看存储内的文件
    pvesm list <storage>
    
    # 查看存储配置
    cat /etc/pve/storage.cfg
    
    # 给local存储添加存储类型
    pvesm set local --content snippets,rootdir,import,images,backup,vztmpl,iso
    # 注意!!!片段文件只能放在 /var/lib/vz/snippets/ 目录下,不支持子目录
    
    # 将local-lvm(LVM-Thin)合并到local
    # 移动虚拟机硬盘到local
    qm disk move <vmid> <disk> <storage> --format qcow2 --delete 1
    # 移动容器卷到local
    pct move-volume <vmid> <volume> <storage> --delete 1
    # 删除local-lvm存储
    lvremove pve/data
    # 空间合并到local
    lvextend -l +100%FREE -r pve/root
    # 在WebUI的“数据中心”-"存储"里,手动移除local-lvm
    
    CLI ProxmoxVE Created Tue, 27 Dec 2022 16:51:54 +0800
  • command 指令

    # 字符串方式
    command: /bin/bash -c "cp /app/dtest/config.default.yml /app/config.yml && python -u /app/dtest/tcc.py"
    # 另一种方式
    command: ["/bin/bash","-c","while","true;","do","sleep","1;","done"]
    # 配置文件方式
    ......
    

    tty 指令

    启动后停在cli,等待登录

    stdin_open: true # 对应 docker run 中的 -i
    tty: true        # 对应 docker run 中的 -t
    
    docker compose cli Docker Created Tue, 19 Jul 2022 11:31:21 +0800
  • 0、基础设置

    # 查看代理
    git config --global --get http.proxy
    git config --global --get https.proxy
    # 设置代理
    git config --global http.proxy http://[username:passwrod@]ip or URL:port 
    git config --global https.proxy http://[username:passwrod@]ip or URL:port
    # 取消代理
    git config --global --unset http.proxy
    git config --global --unset https.proxy
    
    # 只代理github.com
    git config --global --get http.https://github.com.proxy
    git config --global --get https.https://github.com.proxy
    git config --global http.https://github.com.proxy http://[username:passwrod@]ip or URL:port
    git config --global https.https://github.com.proxy http://[username:passwrod@]ip or URL:port
    git config --global --unset http.https://github.com.proxy
    git config --global --unset https.https://github.com.proxy
    # push设置
    git config --global push.default simple
    

    1、项目

    1.1 克隆项目

    git clone https://[email protected]/xxxx/xxxx.git
    # or 
    git clone [email protected]:xxxxx/xxxxx.git
    # 克隆指定分支,到指定目录
    git clone -b branch-name repo path
    
    git config user.name "Your Name"
    git config user.email [email protected]
    

    1.2 推送新项目到github

    先在githubh上创建好项目

    CLI git Created Mon, 16 May 2022 14:32:27 +0800
  • 基于Centos 7

    查看设备信息

    # 简单接口状态
    $ nmcli dev status
    # 详细的接口信息
    $ nmcli dev show
    # 接口的详细信息
    $ nmcli dev show <interface-name>
    

    查看连接(connection)的信息

    # 简单信息
    $ nmcli conn show
    # 详细的连接信息
    $ nmcli conn show
    # 某个连接的详细信息
    $ nmcli conn show <conn-name>
    

    创建连接

    nmcli conn add type <ethernet> con-name <conn-name> ifname <dev-name> ip4 <192.168.100.100/24> [gw4 <192.168.100.1>]
    

    修改配置

    静态IP改动态IP

    nmcli conn mod <conn-name> /
        ipv4.method auto /
        ipv4.address "" /
        ipv4.gateway "" /
        ipv4.dns ""
    

    修改DNS

    $ nmcli conn mod <conn-name> ipv4.dns "1.2.4.8"
    

    设置自动连接

    # 查询和显示所有网络连接的自动连接属性的当前值
    $ nmcli -f name,autoconnect connection
    # 更改网络连接的属性值
    $ nmcli conn mod <conn-name> connection.autoconnect yes
    

    配置生效

    nmcli conn up <conn-name>
    

    激活连接

    $ nmcli conn up <conn-name>
    $ nmcli conn down <conn-name>
    
    $ nmcli dev connect <dev-name>
    $ nmcli dev disconnect <dev-name>
    

    建议使用 nmcli dev disconnect interface-name 命令,而不是 nmcli con down connection-name 命令,因为连接断开可将该接口放到“手动”模式,这样做用户让 NetworkManager 启动某个连接前,或发生外部事件(比如载波变化、休眠或睡眠)前,不会启动任何自动连接。

    CLI nmcli network Linux Created Mon, 17 Jan 2022 15:17:58 +0800
  • 删除冗余信息

    sed -i 's/.*a2p_replyclient_log.*[infoerror].[0-9].log.gz://' merge.log \
    && sed -i 's/org.springframework.amqp.rabbit.RabbitListenerEndpointContainer.* - //' merge.log \
    && sed -i '/.*send 1 time for the url is .*/d' merge.log \
    && sed -i '/.*redis key:[0-9]*,value:.*/d' merge.log
    
    sed -i '/>>>>.* retry:2/d' 2021.8.log
    sed -i 's/the content of the url:.*receiveStatusReportResultChinaMobile.shtml //' 2021.8.log
    

    统计

    sed -n '/ status:DELIVRD,/p' result.log | wc -l
    sed -n '/"originalStatus":"DELIVRD"/p' merge.log | wc -l
    

    删除毫秒

    sed -i 's/\.[0-9]\{0,3\}\( \[\)/\1/' merge.log
    

    删除时间

    sed -i 's/.*\(\[INFO\]\)/\1/' 2021.8.log
    sed -i 's/.*\(\[ERROR\]\)/\1/' 2021.8.log
    sed -i 's/time:.*,\(is_china_mobile\)/\1/' 2021.8.log
    

    删除冗余字符

    sed -i 's/error for the url//' merge.log
    sed -i 's/can not read content from the url//' merge.log
    

    去重复

    $ awk '!x[$0]++' merge.log
    $ sort -n merge.log | uniq
    

    删除空行

    $ sed -i '/^\s*$/d' merge1.log
    

    修改Ubuntu源地址

    $ sudo sed -i 's/\(archive\|security\).ubuntu/mirrors.aliyun/' /etc/apt/sources.list
    

    SSH连接不自动断开

    $ sed -i 's|^#\(ClientAliveInterval\) 0$|\1 60|g' /etc/ssh/sshd_config
    $ sed -i 's|^#\(ClientAliveCountMax\) 3$|\1 5|g' /etc/ssh/sshd_config
    $ systemctl restart sshd
    

    /etc/hosts

    # sed 参考 http://man.linuxde.net/sed
            #  https://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html
    $ sed ......
    

    读取指定行

    $ sed -n '1,2p' file
    

    参考文档

    sed CLI Linux Created Mon, 17 Jan 2022 11:18:47 +0800
Next