zoukankan      html  css  js  c++  java
  • Linux 技巧

    Linux Handbook

    For RedHat Enterprise Linux

    System

    System

    # clean old kernel packages
    package-cleanup --oldkernels --count=1
    
    # get boot method
    systemctl get-default
    
    # set boot level to command lines
    systemctl set-default multi-user.target
    
    # set boot level to GUI
    systemctl set-default graphical.target
    
    
    • install/uninstall
    # list groups of package
    yum group list
    
    # list packages of a group
    yum group info "Minimal Install"
    yum group info "core"
    
    # install packages
    sudo yum install <package name>
    
    

    Services

    # check service status
    systemctl status docker
    
    # configure a service start on boot
    systemctl enable docker
    
    # start a service
    systemctl start docker
    systemctl restart docker
    systemctl stop docker
    

    Storage

    Linux Storage:
    Physical Disks:/dev/sda, /dev/sdb, etc
    Physical Volumes: /dev/sda1, /dev/sda2, etc,也可以是/dev/sdb
    Logical Volume Groups: rehl, centos
    Logical Volumes: /dev/rehl/root
    File System: xfs

    # enlarge disk size for rehl
    
    # check disk size
    df -lh
    
    # list physical disks. If there is no /dev/sdb, try reboot.
    fdisk -l | grep "Disk /"
    
    # find volume group name
    vgdisplay | grep "VG Name"
    
    # find physical volume name
    pvdisplay | grep "PV Name"
    
    # extend a physical volume to a logical volume group
    vgextend rhel /dev/sdb
    
    # add spaces to a logical volume
    lvextend -l +100%FREE /dev/rhel/root
    
    # XFS file system
    xfs_growfs /dev/rhel/root
    
    # check disk size
    df -lh
    
    # ----- enlarge disk size for centos -------
    df -lh
    fdisk -l | grep "Disk /"
    vgdisplay | grep Name
    pvdisplay | grep Name
    vgextend centos /dev/sdb
    lvextend -l +100%FREE /dev/centos/root
    xfs_growfs /dev/centos/root
    df -lh
    
    # ----- physical disk partitions --------
    # list disk partitions
    fdisk -l
    
    # ----- LVM : logical volume management --------
    # active volume group
    lvm vgchange -ay
    
    # ----- LVM : merge /home to / --------
    # copy /home
    mkdir backup
    mv /home/* ./backup
    
    # umount /home
    umount /home
    
    # remove volume /home
    lvremove /dev/centos/home
    
    # extend root size
    lvextend -l +100%FREE /dev/centos/root
    
    # get the configuration work
    xfs_growfs /dev/centos/root
    
    # clear backup folder
    rm -rf ./backup
    

    FTP

    wget -r -nH --cut-dirs=3 ftp://username:password@ftp_hostname//dir1/dir2
    
    #	Install FTP
    yum install ftp
    #	FTP commands
    # connect to  a server
    ftp IP/hostname
    # Or
    ftp
    ftp> open IP/hostname
    
    # transfer mode. Use binary mode in most cases.
    ftp> binary
    ftp> ascii
    
    # get: download a specific file
    # mget: download multiple files
    # put|mput
    # cd|pwd: directory operations on FTP server
    # lcd: change local direcoty
    # close: close connection
    # quit: quit ftp
    

    Zip

    # install 32bit zip package
    sudo yum -y install bzip2-libs*686
    
    # zip
    zip -u package.zip file1 file2
    

    Locale

    # show system locale
    locale
    
    # show system support locale
    locale -a
    
    # using utf-8 as system locale
    # export LC_ALL=en_US.UTF-8
    export LANG=en_US.UTF-8
    
    # support Asia fonts
    sudo yum groupinstall Fonts
    
    # list installed fonts
    fc-list
    

    Network

    # check network status
    /sbin/service network status
    
    # check ip address
    ip address
    
    # check the listening ports and applications on Linux
    sudo lsof -i -P -n | grep LISTEN
    sudo netstat -tulpn | grep LISTEN
    sudo nmap -sTU -O IP-address-Here
    

    工具

    Docker

    • Install docker
    # create docker group
    grep "^docker" /etc/group
    if [ $? -ne 0 ]; then
    /usr/sbin/groupadd docker
    fi
    id root | grep docker
    if [ $? -ne 0 ];then
    /usr/sbin/usermod -a -G docker root
    /usr/sbin/usermod -g docker root
    fi
    
    # install docker
    curl -fsSL https://get.docker.com/ | sh
    
    # support HTTP response via HTTPS
    tee /etc/docker/daemon.json <<-EOF
    {
        "insecure-registries": ["<private host name>:5000"]
    }
    EOF
    
    # check docker version
    docker --version
    
    # restart docker
    systemctl stop docker
    systemctl daemon-reload
    systemctl start docker
    
    # install docker-compose, make sure the path is in the /usr/local/sbin PATH variable
    curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m`" > /usr/local/sbin/docker-compose
    chmod +x /usr/local/sbin/docker-compose
    
    # check docker-compose version
    docker-compose --version
    
    • docker commands
    # restart docker services
    sudo systemctl stop docker
    sudo systemctl daemon-reload
    sudo systemctl start docker
    
    # start docker, need to wait few minutes
    sudo systemctl restart docker
    docker-compose start
    
    # stop docker
    docker-compose stop
    
    # stop and clear changes
    docker-compose down
    docker system prune -f
    
    # start with images
    docker-compose up -d
    
    # Re-Install
    ## cd <compose configure path>
    docker-compose down
    docker system prune -f
    # docker rm -fv $(docker ps -qa)
    docker rmi $(docker images -q)
    docker-compose pull
    docker-compose up -d
    
    # Login docker with root
    docker exec -u 0 -it <container id> bash
    
    # Enable docker ssh
    docker exec <container id> /usr/sbin/sshd
    

    tmux

    What is tmux

    tmux 是一个多通道终端。
    最大的好处是:

    • 可以避免终端中断带来的session中断

    当运行tmux时,实际上会运行一个tmux service,保持session的运行。

    tmux的提出的概念是 tmux / sessions * / windows + / panes +
    tmux可以管理多个sessions。
    一个session有多个windows。
    一个windows有多个panes。
    每个pane是一个终端。

    Install

    sudo yum -y install tmux

    tmux prefix

    prefix is a key concept in tmux, it is a tmux shortcut key, default is [ctrl + b].
    for example, the detach command is

    tmux -detach
    

    If you use [ctrl + b, d], also works.

    configuration file

    ~/.tmux.conf

    tmux idiot

    # install tmux
    sudo yum -y install tmux
    
    # create a session here
    tmux new-session -s here
    
    # detach the session
    prefix + d
    
    # attach the session
    tmux a
    tmux a -t here
    

    tmux commands

    • Help
    # list command
    tmux list-command
    
    # list shortcut keys
    tmux list-keys
    
    • Sessions
    command shortcut key meaning
    tmux new-session -s [session name] create an session
    tmux attach-session -t [session name] attach to an (or the only) session
    tmux detach-session prefix + d detach with the current session
    tmux list-sessions list all sessions
    tmux kill-session -t [session name] kill a session
    • Windows
    command shortcut key meaning
    tmux list-windows list all windows
    tmux kill-window -t [window name] prefix + & kill a window
    • Panes
    command shortcut key meaning
    tmux split-window prefix + % new a horizontal pane
    tmux split-window -v prefix + " new a horizontal pane
    tmux split-window -h prefix + % new a vertical pane
    tmux rotate-window prefix + C-o rotate panes
    tmux select-pane -U prefix + Up select the up pane
    tmux select-pane -D prefix + Down select the down pane
    tmux select-pane -L prefix + Left select the left pane
    tmux select-pane -R prefix + Right select the right pane
    tmux resize-pane -U prefix + A-Up resize the up side
    tmux resize-pane -D prefix + A-Down resize the down side
    tmux resize-pane -L prefix + A-Left resize the left side
    tmux resize-pane -R prefix + A-Right resize the right side
    tmux list-panes list all panes
    tmux kill-pane -t [pane name] prefix + x kill a pane
    • Save sessions
      Installation with Tmux Plugin Manager (recommended)
      Add plugin to the list of TPM plugins in ~/.tmux.conf:
    set -g @plugin 'tmux-plugins/tmux-resurrect'
    

    Hit prefix + I to fetch the plugin and source it. You should now be able to use the plugin.

    Key bindings
    prefix + Ctrl-s - save
    prefix + Ctrl-r - restore

  • 相关阅读:
    SQL之mysql常用操作语句(入门级)
    总结了一些指针易出错的常见问题(七)
    C++之类和对象课后习题1
    SQL之50个常用的SQL语句
    SQL之经典SQL语句大全
    C语言之计算字符串最后一个单词的长度,单词以空格隔开
    spring之HttpInvoker
    Java之解压流(ZipInputStream)
    jetty之嵌入式开发
    java之压缩流(ZipOutputStream)
  • 原文地址:https://www.cnblogs.com/steven-yang/p/9650062.html
Copyright © 2011-2022 走看看