• linux 常用命令总结


    netstst 命令详解

    [root@study~]# netstat -[atunlp]

    选项与参数:

    -a : 将目前系统上所有的联机、监听、Socket数据都列出来

    -t : 列出 tcp 网络封包的数据

    -u : 列出从 udp 网络封包的数据

    -n : 不以进程的服务名称,以端口号(port number)来显示

    -l :列出目前正在网络监听的服务;

    -p :列出该网络服务的进程 PID

    强制不安装依赖安装软件

    rpm -ivh --force --nodeps

    系统任务

    将当前任务暂停

    ctrl + z

    查看后台所有任务

    jobs -l

    将后台任务拿到前台来处理

    fg jobnumber

    CHATTR(配置文件隐藏属性)

    chattr [+-=][ASacdistu] 文件或目录名称netstat

    chattr +i xxx 不能被删除、改名、设定连结也无法写入或新增数据

    chattr +a xxx 让某个文件只能往里面追加内容,不能删除nf

    lsattr(显示文件隐藏属性)hos

    选项与参数:

    -a :将隐藏文件的属性也秀出来;

    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;ti

    -R :连同子目录的数据也一并列出来!

    ls 返回绝对路径

    ls -d /a/b/c/*

    GODOC

    godoc -http=:6060 本地运行goDoc

    FIND

    查找文件

    find / -name ""hg

    find <指定目录> <指定条件> <指定动作>

    远程执行命令

    ssh user@host "cd /var/;ls"

    环境变量不生效

    ssh user@host "source /etc/profile;cd /var/;ls"

    执行带有参数的脚本

    ssh root@192.168.9..9 /home/centos/rafte2e/test.sh helloworld

    一行for循环

    list="";for i in ls -al; do list="$list $i"; done; echo $list

    替换时区文件

    sudo timedatectl set-timezone Asia/Shanghai

    cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

    创建目录

    mkdir {src,pkg,bin} 创建多个同级目录

    mkdir -p /usr/gopath

    kill进程名

    kill -9 $(pidof 进程名关键字)

    SCP

    • 1、从服务器下载文件

    scp username@servername:/path/filename /tmp/local_destination

    • 2、上传本地文件到服务器

    scp /path/local_filename username@servername:/path

    • 3、从服务器下载整个目录

    scp -r username@servername:remote_dir/ /tmp/local_dir

    • 4、上传目录到服务器

    scp  -r /tmp/local_dir username@servername:remote_dir

    查进程

    ps aux | grep xxx 关键字

    MYSQL

    mysql -u yunphant -p

    linux 固定IP

    进入 /etc/sysconfig/network-scipts 文件夹下

    vim ifcfg-eno1

    TYPE=Ethernet

    BOOTPROTO=dhcp

    DEFROUTE=yes

    PEERDNS=yes

    PEERROUTES=yes

    IPV4_FAILURE_FATAL=no

    IPV6INIT=yes

    IPV6_AUTOCONF=yes

    IPV6_DEFROUTE=yes

    IPV6_PEERDNS=yes

    IPV6_PEERROUTES=yes

    IPV6_FAILURE_FATAL=no

    IPV6_ADDR_GEN_MODE=stable-privacy

    NAME=eno1

    UUID=7654bafa-235a-47fa-ac0e-fb91075fd218

    DEVICE=eno1

    ONBOOT=yes

    IPADDR="192.168.9.250"

    NETMASK=255.255.255.0

    GATEWAY="192.168.9.1"

    PREFIX="24"

    nohup

    nohup ......... & 在后台运行进程

    2>&1 重定向错误输出到标准输出

    /dev/null 或者 > filename 重定向标准输出到空设备(忽略输出)或到文件

    DNS

    119.29.105.234

    linux系统信息查看

    df -hl 查看内存使用情况

    cat /etc/os-release 查看系统详情

    /etc/-release 此处的代表发行版名称

    /etc/issue 也可看到发行版名称

    cat /proc/version 查看内核版本命令

    cat /etc/redhat-release 查看安装的系统版本

    uname -a # 查看内核/操作系统/CPU信息

    head -n 1 /etc/issue # 查看操作系统版本

    cat /proc/cpuinfo # 查看CPU信息

    hostname # 查看计算机名

    lspci -tv # 列出所有PCI设备

    lsusb -tv # 列出所有USB设备

    lsmod # 列出加载的内核模块

    env # 查看环境变量

    资源

    free -m # 查看内存使用量和交换区使用量

    df -h # 查看各分区使用情况

    du -sh <目录名> # 查看指定目录的大小

    grep MemTotal /proc/meminfo # 查看内存总量

    grep MemFree /proc/meminfo # 查看空闲内存量

    uptime # 查看系统运行时间、用户数、负载

    cat /proc/loadavg # 查看系统负载

    磁盘和分区

    mount | column -t # 查看挂接的分区状态

    fdisk -l # 查看所有分区

    swapon -s # 查看所有交换分区

    hdparm -i /dev/hda # 查看磁盘参数(仅适用于IDE设备)

    dmesg | grep IDE # 查看启动时IDE设备检测状况

    网络

    ifconfig # 查看所有网络接口的属性

    iptables -L # 查看防火墙设置

    route -n # 查看路由表

    netstat -lntp # 查看所有监听端口

    netstat -antp # 查看所有已经建立的连接

    netstat -s # 查看网络统计信息

    进程

    ps -ef # 查看所有进程

    top # 实时显示进程状态

    用户

    w # 查看活动用户

    id <用户名> # 查看指定用户信息

    last # 查看用户登录日志

    cut -d: -f1 /etc/passwd # 查看系统所有用户

    cut -d: -f1 /etc/group # 查看系统所有组

    crontab -l # 查看当前用户的计划任务

    服务

    chkconfig --list # 列出所有系统服务

    chkconfig --list | grep on # 列出所有启动的系统服务

    程序

    rpm -qa # 查看所有安装的软件包

    ls的时间格式

    ls -l --time-style '+%Y/%m/%d %H:%M:%S'

    ls -l --time-style=full

    更改文件权限

    chown -R username file

    查询大文件

    find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr

    查询当前目录的大文件

    du -h . --max-depth=1

    关机

    shutdown -h now

    halt

    重启

    shutdown -r now

    reboot

    AWK拼接

    awk '{print $1,$2"核"$3"G"}'

    awk 'NR=2{print $1}' 打印第2行

    awk '{print $NF}' 取最后一列

    1、打印文件的第一列(域)                 : awk '{print $1}' filename

    2、打印文件的前两列(域)                 : awk '{print $1,$2}' filename

    3、打印完第一列,然后打印第二列  : awk '{print $1 $2}' filename

    4、打印文本文件的总行数                : awk 'END{print NR}' filename

    5、打印文本第一行                          :awk 'NR==1{print}' filename

    6、打印文本第二行第一列                :sed -n "2, 1p" filename | awk 'print $1'

    nfs挂载

    • centos

    ​ yum install rpcbind nfs-utils

    • Ubuntu 14.04

    ​ apt-get install nfs-kernel-server rpcbind

    echo " /root/nfs_data *(rw,sync,no_root_squash) " > /etc/exports

    sudo service rpcbind restart && sudo service nfs restart

    挂载nfs需要用到的端口

    nfs   tcp 2049  这个很明显到处都是

    sunrpc  tcp 111  这个很明显到处都是

    sunrpc  udp 111  其中这个很难发现,仔细排查才看到

    acp-proto  udp 4046  其中仔细看udp的会找到

    nfs 依赖

    keyutils libnfsidmap2 libpython-stdlib libpython2.7-minimal libpython2.7-stdlib libtirpc1 nfs-common nfs-kernel-server python python-minimal python2.7 python2.7-minimal rpcbind

    -t 选项用于指定文件系统的类型为nfs。

    mount -t nfs 192.168.9.26:/home/ubuntu/nfs_data

    exports -a

    showmount -e 127.0.0.1

    启动rpc服务:

    sudo systemctl restart  rpcbind.service      nfs.service

    启动nfs服务:

    systemctl restart  nfs.service

    设置rpc自己自启动:

    systemctl enable rpcbind.service

    设置rpc自己自启动 :

    systemctl enable nfs.service

    systemctl nfs-kernel-server restart

    • 查看rpc状态:active

    systemctl status rpcbind.service

    • 查看nfs状态:active

    systemctl status nfs.service

    • 安装nfs

    yum install -y nfs-utils

    • nfs卸载

    umount /root/remote_dir

    修改hostname

    hostnamectl set-hostname Linuxidc

    vim /etc/hostname

    vim /etc/hosts

    service systemd-hostnamed restart

    k8s中,hostname修改之后,重启 rancher/agent:v1.2.6 可以生效

    ssh证书生成

    ssh-keygen -t rsa -C "root@aliyun.com"

    chmod 755 ~/.ssh/

    chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub   ~/.ssh/authorized_keys

    chmod 644 ~/.ssh/known_hosts

    sudo chmod 755 /home/vnt

    ssh秘钥登录

    配置服务器上/etc/ssh/sshd_config文件,修改以下配置项

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys

    sed 替换字符

    sed -i "s/$old/$new/g" config.yaml 替换变量 用双引号

    sed -i 's/old/new/g' config.yaml 替换字符 用单引号

    查看某个程序的资源占用情况

    pidstat -r -u -h -C masami

    时间格式化输出

    1. [root@root ~]# date "+%Y-%m-%d"

    2. 2013-02-19

    3. [root@root ~]# date "+%H:%M:%S"

    4. 13:13:59

    5. [root@root ~]# date "+%Y-%m-%d %H:%M:%S"

    6. 2013-02-19 13:14:19

    7. [root@root ~]# date "+%Y_%m_%d %H:%M:%S"

    8. 2013_02_19 13:14:58

    9. [root@root ~]# date -d today

    10. Tue Feb 19 13:10:38 CST 2013

    11. [root@root ~]# date -d now

    12. Tue Feb 19 13:10:43 CST 2013

    13. [root@root ~]# date -d tomorrow

    14. Wed Feb 20 13:11:06 CST 2013

    15. [root@root ~]# date -d yesterday

    16. Mon Feb 18 13:11:58 CST 2013

    查看流量

    dstat -nf

    bad ELF interpreter恢复

    LD_LIBRARY_PATH=/lib64.bak /lib64.bak/ld-linux-x86-64.so.2 /bin/mv /lib64.bak/ /lib64

    测试硬盘IO

    dd if=/dev/zero of=out.file bs=512K count=2048 conv=fdatasync

    不实际占用block

    dd if=/dev/zero of=test bs=1M count=0 seek=100000

    创建的文件在文件系统中的显示大小为100000MB,但是并不实际占用block

    随机生成1百万个1K的文件

    seq 1000000 | xargs -i dd if=/dev/zero of={}.dat bs=1024 count=1

    跨服务器执行脚本

    ssh -p $port $user@$p 'cmd'

    关闭防火墙

    sudo yum -y install iptables-services

    service iptables stop

    service docker restart

    禁止Linux系统You have new mail

    echo “unset MAILCHECK” >> /etc/profile
    source /etc/profile

    nc 常用方法

    • 1、 传文件

    nc -l -p 8210 > demo.txt 接收方

    nc dest_ip 8210 < demo.txt 发送方

    • 2、端口扫描

    nc -v -w 2 192.168.2.34 -z 20000-30000

    • 3、聊天

    nc -l 3232 ip(1.1.1.1)

    nc 1.1.1.1 3232

    在工程目录中查找所有main函数

    grep "func main" * -r -n --include=*.go > func_main.txt

    查看程序内存占用

    yum install sysstat

    pidstat -r -u -h -C masami |awk 'NR==4{print "%cpu="$7,"%mem="$13" masami"}'

    docker容器控制网络流量

    tc只是控制到达自己的网络包,并不能控制自己发出的网络包,而我本地wget时,无法设置进程的net_cls,所以可以设置默认的类别处理

    kbps 千字节/秒

    mbps 兆字节/秒

    kbit KBits/秒

    mbit MBits/秒

    bps或者一个无单位数字 字节数/秒

    这样就可以这样做:

    1. 删除原有规则,并创建队列,并设置默认用类别2

    tc qdisc del dev veth5528eed root

    tc qd add dev veth5528eed root handle 1: htb default 2

    1. 增加类别,两个类别分别为1:1,1:2,并为类别2设置队列

    tc class add dev veth5528eed parent 1: classid 1:1 htb rate 10mbit

    tc class add dev veth5528eed parent 1:1 classid 1:2 htb rate 1mbit

    tc qd add dev veth5528eed parent 1:2 handle 20: fq_codel

    1. 设置filter,其实这一步我们测试目前并不需要

    tc filter add dev veth5528eed protocol ip parent 1: prio 1 handle 1: cgroup

    解决磁盘报错Read-only file system

    sudo fsck.ext4 -f /dev/sda1

    tar批量解压

    ls *.tar.gz | xargs -n1 tar xzvf

    查看当前服务器端口使用情况

    sudo netstat -anp |grep tcp

    top资源查看

    P 按照CPU占比排序

    M 按照内存占比排序

    释放缓存

    使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件

    sync

    echo 3 > /proc/sys/vm/drop_caches

    说明:

    1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。

    2>. 关于drop_caches的官方说明如下:

    Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to becomefree.

    To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;

    to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;

    to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.

    Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.

    3>. Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。

    解析证书命令

    openssl x509 -in 证书.pem -text -noout

    挂载新硬盘

    fdisk /dev/sda1

    ​ n 进行分区

    ​ p 主分区、 e 逻辑分区

    ​ 1 第一个主分区

    ​ 1 起始磁盘数

    ​ w 写入分区

    fdisk -l 查看新分区的名称

    mkfs -t ext3 -c /dev/sdb1 进行格式化

    mkdir /dev2

    mount /dev/sdb1 /dev2

    查看程序运行时间

    lstart 启动时间

    etime 运行时间

    ps -eo pid,lstart,etime,cmd | grep peer

    yum离线安装rpm包

    CentOS利用yum下载好rpm包,并离线安装

    1、联网安装好rpm包,并将下载好的包备好

    yum install --downloadonly --downloaddir=/home/samba  samba

    其中samba 是要用yum安装的安装包,/home/samba是要存放下载的yum安装包及其依赖包的保存路径

    2、离线的机器上,在rpm所在的文件夹内,执行以下脚本

    rpm -Uvh --force --nodeps *.rpm

    iptables转发端口

    清除规则

    sudo iptables -F && sudo iptables -X && sudo iptables -Z && sudo iptables -S

    通过 192.168.9.11 的 6666 端口访问 192.168.9.12 的 7777 端口。

    sysctl -w net.ipv4.ip_forward=1

    iptables -A FORWARD -s 192.168.9.12 -j ACCEPT

    iptables -A FORWARD -d 192.168.9.12 -j ACCEPT

    iptables -t nat -A PREROUTING -p tcp --dport 6666 -d 192.168.9.11 -j DNAT --to-destination 192.168.9.12:7777

    iptables -t nat -A POSTROUTING -p tcp -d 192.168.9.12 --dport 7777 -j SNAT --to-source 192.168.9.11

  • 相关阅读:
    nginx 配置https, 服务器是阿里云的ECS(亲测)
    jenkins 安装2.170版本 的问题汇中
    终于有人把“TCC分布式事务”实现原理讲明白了!
    springcloud(九) springboot Actuator + admin 监控
    springcloud(八) Hystrix监控
    springcloud(七) feign + Hystrix 整合 、
    springboot 2.0 自定义redis自动装配
    springboot 2.0 自动装配原理 以redis为例
    博文分类索引--Python
    【python】-- Ajax
  • 原文地址:https://www.cnblogs.com/zooqkl/p/16038433.html
Copyright © 2020-2023  润新知