Linux常用命令

1、自动生成随机密码

# 使用mkpasswd命令生成随机密码,如没有此命令请yum -y install expect安装
mkpasswd -l 10 -d 2 -c 2 -C 2 -s 2
# 参数说明:
# -l   (length of password, default = 7),指定密码的长度,默认是7位数
# -d   (min of digits, default = 2),指定密码中数字最少位数,默认是2位
# -c   (min of lowercase chars, default = 2),指定密码中小写字母最少位数,默认是2位
# -C   (min of uppercase chars, default = 2),指定密码中大写字母最少位数,默认是2位
# -s   (min of special chars, default = 1),指定密码中特殊字符最少位数,默认是1位
# -v   (verbose, show passwd interaction),这个参数在实验的时候报错,具体不知道
# pwgen命令生成随机密码
yum/apt install pwgen
# 生成10位随机密码,生成的密码包括大小字母,数字,特殊符号
echo $(tr -dc 'A-Za-z0-9!@#$%^&*()_+-=' </dev/urandom | head -c 10)
[root@localhost ~]# seq -s ' ' -w 1 05  # -s:指定分隔符,默认分割符为'\n',-w 1 05:从1到5
01 02 03 04 05
[root@localhost ~]# seq -s ' ' -f "test%03g" 1 5   # 数字位数为三位,不足补0
test001 test002 test003 test004 test005    
[root@localhost ~]# cp test.sh{,_`date +%F_%T`.bak};ls   # 备份文件并给文件加上时间戳
test.sh  test.sh_2022-11-22_10:32:05.bak

2、tcpdump命令

tcpdump -nn -i eth0 src host 10.10.80.254 and dst 10.10.80.52 and dst port 22
tcpdump -nn -i eth0 src host 10.10.80.254 and src portrange 10-80 and dst 10.10.80.52 and dst port 22
tcpdump tcp -nn -i eth0 and src host 10.10.80.254 and dst 10.10.80.52 and dst port 22
tcpdump tcp -i eth0 and src host 10.10.80.254 and src portrange 10-80 and dst 10.10.80.52 and dst port 22 -nn -vv
tcpdump tcp -i eth1 -t -s 0 -c 100 and dst port ! 22 and src net 192.168.1.0/24 -w ./target.pcap
tcpdump -i any -y LINUX_SLL -nv -w captrue.pcap # 使用 "Linux Socket Layer"(SLL)数据链路层协议来解析捕获的数据 # 抓取LLDP数据包 tcpdump
-i eth0 -nev -c 1 ether proto 0x88cc tcpdump -nn -v -i eth0 -s 1500 -XX -c 1 'ether proto 0x88cc' # 抓取CDP数据包 tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[20:2] == 0x2000' # 抓取LLDP或者CDP数据包 tcpdump -nn -v -i eth0 -s 1500 -c 1 'ether[12:2]=0x88cc or ether[20:2]=0x2000' # -i eth1 : 只抓经过接口eth1的数据包 # -t : 不显示时间戳 # -s0 : tcpdump默认只会截取前96字节的内容,要想截取所有的报文内容,可以使用-s number,number就是要截取的报文字节数,如果是0的话,表示截取报文全部内容 # -c 100 : 只抓取100个数据包 # -w ./target.cap : 保存成cap文件,方便用ethereal(即wireshark)分析 # -e : 列出链路层头部,查看mac(tcpdump icmp -i eth0 and host 10.47.39.15 -ne) # -v : 使用-v,-vv和-vvv来显示更多的详细信息,通常会显示更多与特定协议相关的信息。 # -nn : 单个n表示不解析域名,直接显示IP;两个n表示不解析域名和端口。这样不仅方便查看IP和端口号,而且在抓取大量数据时非常高效,因为域名解析会降低抓取速度。 # -p : 不让网络接口进入混杂模式。默认情况下使用tcpdump抓包时,会让网络接口进入混杂模式。一般计算机网卡都工作在非混杂模式下,此时网卡只接受目的地址指向自己的数据包。当网卡工作在混杂模式下时,网卡将来自接口的所有数据包都捕获并交给相应的驱动程序。如果设备接入的交换机开启了混杂模式,使用-p选项可以有效地过滤噪声。 # dst port ! 22 : 不抓取目标端口是22的数据包 # src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24 # proto : 可省略。proto后面可以跟上协议号或协议名称,支持 icmp,igmp,igrp,pim,ah,esp,carp,vrrp,udp和tcp,省略协议关键字proto时,tcp、udp、icmp等都要放到第一个参数的位置

在表达式中一般如下几种类型的关键字:
第一种是关于类型的关键字,主要包括host,net,port,例如 host 210.27.48.2, 指明 一台主机,net 192.168.1.0/24指明网络,port 23 指明端口号23。如果没有指定类型,缺省的类型是host。
第二种是确定传输方向的关键字,主要包括src,dst,src port, dst port,src portrange 40000-60000,如果没有指明方向关键字,则缺省是src or dst关键字。
第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI (分布式光纤数据接口网络)上的特定的网络协议,实际上它是”ether”的别名,fddi和ether 具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和分析。如果没有指定任何协议,则tcpdump 将会 监听所有协议的信息包。
除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less, greater, 还有三种逻辑运算,取非运算是`not ',`!`;与运算是`and`,`&&';或运算是`or`,`||`

3、MTR命令
一. 安装
yum install mtr #适用于centos
apt-get install mtr #适用于debian/ubuntu
二. MTR用法简介(mtr IP或域名)
第一列(Host):IP地址和域名,按n键可以切换IP和域名
第二列(Loss%):丢包率
第三列(Snt):设置每秒发送数据包的数量,默认值是10 可以通过参数-c来指定
第四列(Last):t表示最后一个数据包的返回时延
第五、六、七列(Avg、Best、Wrst):分别是PING的平均、最好、最差值
第八列(StDev):标准偏差
三. 其它用法
mtr -h    # 提供帮助命令
mtr -v    # 显示mtr的版本信息
mtr -r    # 已报告模式显示
mtr -s    # 用来指定ping数据包的大小
mtr --no-dns    # 不对IP地址做域名解析
mtr -a     # 来设置发送数据包的IP地址 这个对一个主机由多个IP地址是有用的
mtr -i     # 使用这个参数来设置ICMP返回之间的要求默认是1秒
mtr -4     # IPv4
mtr -6     # IPv6

4、查看进程ps -ef和ps aux

pgrep httpd   # 查询httpd服务的所有进程号
ps -ef        # 是用标准的格式显示进程的、其格式如下
UID         PID   PPID  C STIME TTY          TIME CMD
root       1474   1446  0 11:13 pts/0    00:00:00 ps -ef
UID      # 用户ID、但输出的是用户名
PID      # 进程的ID
PPID     # 父进程ID
C        # 进程占用CPU的百分比
STIME    # 进程启动到现在的时间
TTY      # 该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD      # 命令的名称和参数
ps aux        # 是用BSD的格式来显示、其格式如下
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root       1477  0.0  0.0 155448  1860 pts/0    R+   11:15   0:00 ps aux
USER     # 用户名
%CPU     # 进程占用的CPU百分比
%MEM     # 占用内存的百分比
VSZ      # 该进程使用的虚拟內存量(KB)
RSS      # 该进程占用的固定內存量(KB)(驻留中页的数量)
STAT     # 进程的状态
START    # 该进程被触发启动时间
TIME     # 该进程实际使用CPU运行的时间
STAT状态位常见的状态字符有:
D  # 无法中断的休眠状态(通常 IO 的进程);
R  # 正在运行可中在队列中可过行的;
S  # 处于休眠状态;
T  # 停止或被追踪;
W  # 进入内存交换(从内核2.6开始无效);
X  # 死掉的进程(基本很少见);
Z  # 僵尸进程;
<  # 优先级高的进程
N  # 优先级较低的进程
L  # 有些页被锁进内存;
s  # 进程的领导者(在它之下有子进程);
l  # 多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+  # 位于后台的进程组;

5、nmcli网卡管理命令(适用于通过NetworkManager服务器管理网卡,nmtui启动图形化管理)

[root@CentOS7 ~]# nmcli device status      #查看网卡状态
[root@CentOS7 ~]# nmcli connection show    #查看连接状态
[root@CentOS7 ~]# nmcli connection down|up eth0     #断开或启用网卡连接
[root@CentOS7 ~]# /usr/bin/nmcli device disconnect eth0 
[root@CentOS7 ~]# /usr/bin/nmcli device connect eth0
[root@CentOS7 ~]# nmcli connection add con-name ens32 ifname ens32 autoconnect yes type ethernet ipv4.method auto   #使用dhcp获取地址
[root@CentOS7 ~]# nmcli connection add con-name ens32 ifname ens32 autoconnect yes type ethernet ipv4.method manual ipv4.addresses 192.168.150.134/24 ipv4.gateway 192.168.150.2 ipv4.dns 114.114.114.114 +ipv4.dns 8.8.8.8  #生成网卡配置文件,手动配置IP地址
[root@CentOS7 ~]# nmcli connection add autoconnect yes con-name bond0 type bond ifname bond0 miimon 100 mode 0 ipv4.method manual ipv4.addresses 10.10.10.1/24 ipv4.gateway 10.10.10.254 ipv4.dns 114.114.114.114 +ipv4.dns 8.8.8.8  #生成一个bond配置文件
[root@CentOS7 ~]# nmcli connection add autoconnect yes con-name ens32 type bond-slave ifname ens32 master bond0  #把ens32网卡加入到bond0
[root@CentOS7 ~]# nmcli connection modify eth0 ipv4.method manual/auto  #修改IP获取方式为手动/dhcp
[root@CentOS7 ~]# nmcli connection modify eth0 ipv4.addresses 10.47.39.100/24   #设置网卡IP地址
[root@CentOS7 ~]# nmcli connection modify eth0 ipv4.gateway 10.47.39.254 ipv4.dns 223.5.5.5 +ipv4.dns 8.8.8.8 #设置网关和dns
[root@CentOS7 ~]# systemctl restart network.service    #设置完成后必需重启网络服务

6、iptraf、nethogs、nload
yum -y install iptraf         #centos6安装;yum -y install iptraf-ng   #centos7安装
yum -y install nethogs    #查看进程流量大小
yum -y install nload       #查看接口进出流量
yum install iperf            # iperf带宽测试,需要epel源才能yum,yum -y install epel-release

7、Curl命令

在以下选项中,(H) 表示仅适用 HTTP/HTTPS ,(F) 表示仅适用于 FTP
    --anyauth      选择 "any" 认证方法 (H)
-a, --append        添加要上传的文件 (F/SFTP)
    --basic        使用HTTP基础认证(Basic Authentication)(H)
    --cacert FILE  CA 证书,用于每次请求认证 (SSL)
    --capath DIR    CA 证书目录 (SSL)
-E, --cert CERT[:PASSWD] 客户端证书文件及密码 (SSL)
    --cert-type TYPE 证书文件类型 (DER/PEM/ENG) (SSL)
    --ciphers LIST  SSL 秘钥 (SSL)
    --compressed    请求压缩 (使用 deflate 或 gzip)
-K, --config FILE  指定配置文件
    --connect-timeout SECONDS  连接超时设置
-C, --continue-at OFFSET  断点续转
-b, --cookie STRING/FILE  Cookies字符串或读取Cookies的文件位置 (H)
-c, --cookie-jar FILE  操作结束后,要写入 Cookies 的文件位置 (H)
    --create-dirs  创建必要的本地目录层次结构
    --crlf          在上传时将 LF 转写为 CRLF
    --crlfile FILE  从指定的文件获得PEM格式CRL列表
-d, --data DATA    HTTP POST 数据 (H)
    --data-ascii DATA  ASCII 编码 HTTP POST 数据 (H)
    --data-binary DATA  binary 编码 HTTP POST 数据 (H)
    --data-urlencode DATA  url 编码 HTTP POST 数据 (H)
    --delegation STRING GSS-API 委托权限
    --digest        使用数字身份验证 (H)
    --disable-eprt  禁止使用 EPRT 或 LPRT (F)
    --disable-epsv  禁止使用 EPSV (F)
-D, --dump-header FILE  将头信息写入指定的文件
    --egd-file FILE  为随机数据设置EGD socket路径(SSL)
    --engine ENGINGE  加密引擎 (SSL). "--engine list" 指定列表
-f, --fail          连接失败时不显示HTTP错误信息 (H)
-F, --form CONTENT  模拟 HTTP 表单数据提交(multipart POST) (H)
    --form-string STRING  模拟 HTTP 表单数据提交 (H)
    --ftp-account DATA  帐户数据提交 (F)
    --ftp-alternative-to-user COMMAND  指定替换 "USER [name]" 的字符串 (F)
    --ftp-create-dirs  如果不存在则创建远程目录 (F)
    --ftp-method [MULTICWD/NOCWD/SINGLECWD] 控制 CWD (F)
    --ftp-pasv      使用 PASV/EPSV 替换 PORT (F)
-P, --ftp-port ADR  使用指定 PORT 及地址替换 PASV (F)
    --ftp-skip-pasv-ip 跳过 PASV 的IP地址 (F)
    --ftp-pret      在 PASV 之前发送 PRET (drftpd) (F)
    --ftp-ssl-ccc  在认证之后发送 CCC (F)
    --ftp-ssl-ccc-mode ACTIVE/PASSIVE  设置 CCC 模式 (F)
    --ftp-ssl-control ftp 登录时需要 SSL/TLS (F)
-G, --get          使用 HTTP GET 方法发送 -d 数据  (H)
-g, --globoff      禁用的 URL 队列 及范围使用 {} 和 []
-H, --header LINE  要发送到服务端的自定义请求头 (H)
-I, --head          仅显示响应文档头
-h, --help          显示帮助
-0, --http1.0      使用 HTTP 1.0 (H)
    --ignore-content-length  忽略 HTTP Content-Length 头
-i, --include      在输出中包含协议头 (H/F)
-k, --insecure      允许连接到 SSL 站点,而不使用证书 (H)
    --interface INTERFACE  指定网络接口/地址
-4, --ipv4          将域名解析为 IPv4 地址
-6, --ipv6          将域名解析为 IPv6 地址
-j, --junk-session-cookies 读取文件中但忽略会话cookie (H)
    --keepalive-time SECONDS  keepalive 包间隔
    --key KEY      私钥文件名 (SSL/SSH)
    --key-type TYPE 私钥文件类型 (DER/PEM/ENG) (SSL)
    --krb LEVEL    启用指定安全级别的 Kerberos (F)
    --libcurl FILE  命令的libcurl等价代码
    --limit-rate RATE  限制传输速度
-l, --list-only    只列出FTP目录的名称 (F)
    --local-port RANGE  强制使用的本地端口号
-L, --location      跟踪重定向 (H)
    --location-trusted 类似 --location 并发送验证信息到其它主机 (H)
-M, --manual        显示全手动
    --mail-from FROM  从这个地址发送邮件
    --mail-rcpt TO  发送邮件到这个接收人(s)
    --mail-auth AUTH  原始电子邮件的起始地址
    --max-filesize BYTES  下载的最大文件大小 (H/F)
    --max-redirs NUM  最大重定向数 (H)
-m, --max-time SECONDS  允许的最多传输时间
    --metalink      处理指定的URL上的XML文件
    --negotiate    使用 HTTP Negotiate 认证 (H)
-n, --netrc        必须从 .netrc 文件读取用户名和密码
    --netrc-optional 使用 .netrc 或 URL; 将重写 -n 参数
    --netrc-file FILE  设置要使用的 netrc 文件名
-N, --no-buffer    禁用输出流的缓存
    --no-keepalive  禁用 connection 的 keepalive
    --no-sessionid  禁止重复使用 SSL session-ID (SSL)
    --noproxy      不使用代理的主机列表
    --ntlm          使用 HTTP NTLM 认证 (H)
-o, --output FILE  将输出写入文件,而非 stdout
    --pass PASS    传递给私钥的短语 (SSL/SSH)
    --post301      在 301 重定向后不要切换为 GET 请求 (H)
    --post302      在 302 重定向后不要切换为 GET 请求 (H)
    --post303      在 303 重定向后不要切换为 GET 请求 (H)
-#, --progress-bar  以进度条显示传输进度
    --proto PROTOCOLS  启用/禁用 指定的协议
    --proto-redir PROTOCOLS  在重定向上 启用/禁用 指定的协议
-x, --proxy [PROTOCOL://]HOST[:PORT] 在指定的端口上使用代理
    --proxy-anyauth 在代理上使用 "any" 认证方法 (H)
    --proxy-basic  在代理上使用 Basic 认证  (H)
    --proxy-digest  在代理上使用 Digest 认证 (H)
    --proxy-negotiate 在代理上使用 Negotiate 认证 (H)
    --proxy-ntlm    在代理上使用 NTLM 认证 (H)
-U, --proxy-user USER[:PASSWORD]  代理用户名及密码
    --proxy1.0 HOST[:PORT]  在指定的端口上使用 HTTP/1.0 代理
-p, --proxytunnel  使用HTTP代理 (用于 CONNECT)
    --pubkey KEY    公钥文件名 (SSH)
-Q, --quote CMD    在传输开始前向服务器发送命令 (F/SFTP)
    --random-file FILE  读取随机数据的文件 (SSL)
-r, --range RANGE  仅检索范围内的字节
    --raw          使用原始HTTP传输,而不使用编码 (H)
-e, --referer      Referer URL (H)
-J, --remote-header-name 从远程文件读取头信息 (H)
-O, --remote-name  将输出写入远程文件
    --remote-name-all 使用所有URL的远程文件名
-R, --remote-time  将远程文件的时间设置在本地输出上
-X, --request COMMAND  使用指定的请求命令
    --resolve HOST:PORT:ADDRESS  将 HOST:PORT 强制解析到 ADDRESS
    --retry NUM  出现问题时的重试次数
    --retry-delay SECONDS 重试时的延时时长
    --retry-max-time SECONDS  仅在指定时间段内重试
-S, --show-error    显示错误. 在选项 -s 中,当 curl 出现错误时将显示
-s, --silent        Silent模式。不输出任务内容
    --socks4 HOST[:PORT]  在指定的 host + port 上使用 SOCKS4 代理
    --socks4a HOST[:PORT]  在指定的 host + port 上使用 SOCKSa 代理
    --socks5 HOST[:PORT]  在指定的 host + port 上使用 SOCKS5 代理
    --socks5-hostname HOST[:PORT] SOCKS5 代理,指定用户名、密码
    --socks5-gssapi-service NAME  为gssapi使用SOCKS5代理服务名称
    --socks5-gssapi-nec  与NEC Socks5服务器兼容
-Y, --speed-limit RATE  在指定限速时间之后停止传输
-y, --speed-time SECONDS  指定时间之后触发限速. 默认 30
    --ssl          尝试 SSL/TLS (FTP, IMAP, POP3, SMTP)
    --ssl-reqd      需要 SSL/TLS (FTP, IMAP, POP3, SMTP)
-2, --sslv2        使用 SSLv2 (SSL)
-3, --sslv3        使用 SSLv3 (SSL)
    --ssl-allow-beast 允许的安全漏洞,提高互操作性(SSL)
    --stderr FILE  重定向 stderr 的文件位置. - means stdout
    --tcp-nodelay  使用 TCP_NODELAY 选项
-t, --telnet-option OPT=VAL  设置 telnet 选项
    --tftp-blksize VALUE  设备 TFTP BLKSIZE 选项 (必须 >512)
-z, --time-cond TIME  基于时间条件的传输
-1, --tlsv1        使用 => TLSv1 (SSL)
    --tlsv1.0      使用 TLSv1.0 (SSL)
    --tlsv1.1      使用 TLSv1.1 (SSL)
    --tlsv1.2      使用 TLSv1.2 (SSL)
    --trace FILE    将 debug 信息写入指定的文件
    --trace-ascii FILE  类似 --trace 但使用16进度输出
    --trace-time    向 trace/verbose 输出添加时间戳
    --tr-encoding  请求压缩传输编码 (H)
-T, --upload-file FILE  将文件传输(上传)到指定位置
    --url URL      指定所使用的 URL
-B, --use-ascii    使用 ASCII/text 传输
-u, --user USER[:PASSWORD]  指定服务器认证用户名、密码
    --tlsuser USER  TLS 用户名
    --tlspassword STRING TLS 密码
    --tlsauthtype STRING  TLS 认证类型 (默认 SRP)
    --unix-socket FILE    通过这个 UNIX socket 域连接
-A, --user-agent STRING  要发送到服务器的 User-Agent (H)
-v, --verbose      显示详细操作信息
-V, --version      显示版本号并退出
-w, --write-out FORMAT  完成后输出什么
    --xattr        将元数据存储在扩展文件属性中
-q                .curlrc 如果作为第一个参数无效
curl(7.29.0)所支持的选项(options)参数
# 获取http状态码、连接网站所需时间以及远程服务器的IP和端口
curl -I -m 3 -o /dev/null -s -w "%{http_code} %{time_connect}s\n%{remote_ip}:%{remote_port}\n" -A 'Chrome/76.0.3809.100' www.163.com

出口公网IP查询
curl myip.ipip.net
curl cip.cc
curl ipinfo.io
curl ipinfo.io/ip
curl ipinfo.io/city
curl ifconfig.me
curl http://members.3322.org/dyndns/getip

8、dstat、vmstat:cpu、内存、磁盘监控
https://www.cnblogs.com/tiannan-haibei/p/18892476    # vmstat详解
yum -y instatll dstat
dstat --top-cpu --top-mem --top-io

9、ethtool
[root@CentOS7 ~]# ethtool [-p] ethX [N]
[-p]  用于区别不同ethX对应哪块物理网卡,常用的方法是使物理网卡上的网卡状态灯不断的闪烁
[N]  指定网卡灯闪烁的持续时间,以秒为单位
[root@CentOS7 ~]# ethtool ethX  #查看服务器上的端口是光口还是电口,Supproted ports后面如果是TP,说明是电口;如果是FIBRE,说明是光口

10、磁盘相关命令

# 删除乱码文件名文件
rm -fr -- 乱码文件名
# 查看根目录下一级目录占用空间大小,并显示目录最后一次修改时间,排除proc和dev目录
du -h --max-depth=1 --time --exclude="proc" --exclude="dev" / | sort -r
# 查看etc目录占用空间大小
du -lhcs /etc
# 查看ext4文件系统分区占用空间大小
df --type ext4 -h
df -Th                  # 查看磁盘分区文件系统类型
lsscsi                  # 查看磁盘
fdisk -l
lsblk -a                # 查看分区
# 取出两个文件中的相同内容部分
grep -wf file1 file2
# 取出两个文件中的不同内容部分
grep -wvf file1 file2
# 对多个文件夹中的文件进行过滤,过滤以ltm字符开头的行,-A 1:表示输出匹配行和后面的一行,-B 1:表示输出匹配行和之前的一行
grep -A 1 -E "^ltm" ./nsp-*/*.conf
find ./nsp-* -type f -exec grep -B 1 -E "^ltm" {} \;
# tar排除目录
tar -zcvf log.tar.gz --exclude=/var/log/nginx --exclude=/var/log/apt /var/log
# zip打包,-q:安静模式,压缩时不输出过程信息,-r:递归处理,压缩目录时包含子目录和文件
zip -qr log.zip /var/log
# 查看/var/log目录的磁盘使用情况,yum -y install ncdu
ncdu /var/log
# 创建软链接,-s:创建符号链接,-f:强制创建链接,如果目标文件已存在,则会被覆盖
# <目标路径>:要链接的源文件/目录路径(可相对或绝对)。<链接名称>:新符号链接的名称(可选;若省略,默认使用目标名称)。
ln -sf <目标路径> <链接名称>

11、pssh、sshpass命令安装
[root@localhost ~]# wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
[root@localhost ~]# tar xf pssh-2.3.1.tar.gz -C /usr/local
[root@localhost ~]# cd /usr/local/pssh-2.3.1/
[root@localhost ~]# pip install pssh==2.3.1
[root@localhost ~]# python setup.py install
[root@localhost ~]# yum -y install sshpass    #安装sshpass命令
https://pypi.org/project/pssh/2.3.1/

12、查看服务器硬件信息(ubuntu、centos通用)
root@Ubuntu:~# lshw -short               #查看硬件设备列表
root@Ubuntu:~# lshw -c processor    #查看cpu信息
root@Ubuntu:~# lscpu                        #查看CPU
root@Ubuntu:~# cat /proc/cpuinfo      #查看CPU
root@Ubuntu:~# free -h                      #查看内存
root@Ubuntu:~# cat /proc/meminfo    #查看内存
root@Ubuntu:~# lspci                         #查看PCI设备

13、vsftpd服务搭建和配置
1、下载vsftpd
http://rpmfind.net/linux/rpm2html/search.php?query=vsftpd(x86-64)
2、 安装vsftpd(离线安装和yum安装)
[root@localhost ~]# rpm -ivh vsftpd-3.0.2-21.el7.x86_64.rpm
[root@localhost ~]# yum -y install vsftpd
3、 启动vsftpd服务
[root@localhost ~]# service vsftpd start
Redirecting to /bin/systemctl start vsftpd.service
4、生成一个文件名为test,文件大小为100G的文件,生成的test不占用磁盘大小
[root@localhost ~]# dd if=/dev/zero of=test bs=1M count=0 seek=100000
5、登录vsftp,默认用户为ftp,密码为空
[root@localhost ~]# ftp 127.0.0.1

Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.2)
Name (127.0.0.1:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

6、vsftp配置文件详解
https://www.jb51.net/article/94223.htm

14、lldpd、lldpad服务
lldpd服务离线安装:配置光盘yum源,或进入光盘下的package目录,使用yum localinstall来安装
[root@CentOS7 ~]# yum -y install libevent
[root@CentOS7 ~]# yum -y install libnetsnmp*
[root@CentOS7 ~]# rpm -ivh lldpd-1.0.4-1.el7.x86_64.rpm
lldpd在线安装
[root@CentOS7 ~]# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root@CentOS7 ~]# yum -y install lldpd
[root@CentOS7 ~]# systemctl start lldpd.service
[root@CentOS7 ~]# lldpcli show neighbors -f json      # 以json格式输出lldp结果

[root@CentOS7 ~]# service lldpad start      # 开启lldpad服务,该安装包CentOS7镜像自带
[root@CentOS7 ~]# lldptool set-lldp -i eth0 adminStatus=rxtx    # 开启收发lldp包
[root@CentOS7 ~]# lldptool -tni eth0     # 查看LLDP信息

15、cockpit图形管理界面
yum -y install cockpit
yum install cockpit-machines
apt install cockpit
apt install cockpit-machines
安装完后web访问:https://x.x.x.x:9090/
https://blog.csdn.net/xiaochong0302/article/details/127402003   #在ubuntu上安装
https://cockpit-project.org/running.html
https://www.linuxprobe.com/basic-learning-08.html
https://webmin.com/download/    # webmin安装

16、 shellinabox web终端(https://www.cnblogs.com/OldJack/p/7359998.html)
[root@CentOS7 ~]# yum -y install epel-release
[root@CentOS7 ~]# yum -y install shellinabox
[root@CentOS7 ~]# vim /etc/sysconfig/shellinaboxd     # 修改为黑底白字

OPTS="--user-css Normal:+white-on-black.css --disable-ssl-menu -s /:LOGIN"

[root@CentOS7 ~]# vim /etc/securetty     # 在文件中添加,允许root登录

pts/0
pts/1
pts/2
pts/3
https://www.cnblogs.com/OldJack/p/7359998.html
https://github.com/shellinabox/shellinabox

17、 telnet服务
[root@CentOS7 ~]# yum -y install telnet-server
[root@CentOS7 ~]# systemctl start telnet.socket
[root@CentOS7 ~]# vim /etc/securetty     # 在文件中添加,允许root登录

pts/0
pts/1
pts/2
pts/3

18、用户管理

useradd test -g root -M -s /sbin/nologin -c 测试用户
echo "123456" | passwd --stdin test &>/dev/null
userdel -fr test

19、使用yum或yumdownloader下载rpm包

# 方式一:
# 在CentOS/RHEL6或更早期的版本中,需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用--downloadonly命令选项
yum install --downloadonly --downloaddir=<directory> <package-name>
# yum install --downloadonly --downloaddir=/tmp jq
# --downloadonly只下载不安装
# --downloaddir指定下载目录
注意,如果下载的包包含了任何没有满足的依赖关系,yum将会下载所有的依赖关系包,但是都不会被安装
# 方式二:
yum install yum-utils   # 安装yun-utils后才会有yumdownloader命令,使用yumdownloader下载包无论系统中是否已安装该包都会下载
yumdownloader --resolve --downloaddir=<directory> --enablerepo=[repo] <package-name>
# yumdownloader --resolve --destdir=/tmp/rpms net-tools wget lrzsz vim
# --resolve:下载包及其所有依赖(适合离线安装场景)
# --destdir:下载并保存到指定目录(例如/tmp/rpms)
# --enablerepo=<repository>:指定yum源

20、xargs命令

[root@master ~]# xargs --help
# -t:显示要执行的命令,-L 1:指定每一行作为一个参数
[root@master ~]# kubectl get pod -o custom-columns="Name:.metadata.name" -l app=prober --no-headers |xargs -t -L 1 kubectl logs
kubectl logs prober-52jw9 
kubectl logs prober-6l8f6 
kubectl logs prober-gqmcm
# xargs -i和-I的区别
# -i 选项
# -i 是 -i 或 --replace 的一种简写形式。使用固定的占位符大括号({})
# 使用 -i 时,xargs 会将输入的每一行用替代字符串 {} 替换。
[root@master ~]# echo -e "file1.txt\nfile2.txt" | xargs -i -t echo {} {}
# -I 选项
# -I 允许你指定一个替换字符串,可以是任意字符串。
# 相较于 -i,-I 方式更灵活,因为你可以使用自定义的占位符,而不是固定的占位符大括号({})。
[root@master ~]# echo -e "file1.txt\nfile2.txt\nfile3.txt" | xargs -n 2 -t -I @ echo "Processing: @ @"

参考链接:
       阿里云开发者社区
       https://www.cnblogs.com/djlsunshine/p/9733182.html          # nmcli命令
       http://t.zoukankan.com/momenglin-p-8485896.html             # nmcli命令
       https://www.jianshu.com/p/07c4dddae43a                           # curl命令详解
       wget -qO- https://raw.github.com/ma6174/vim/master/setup.sh | sh -x         # vim扩展插件安装
       https://github.com/trapd00r/LS_COLORS#zsh-syntax-highlighting              # shell颜色
       wget https://netix.dl.sourceforge.net/project/nfdump/stable/nfdump-1.6.6/nfdump-1.6.6.tar.gz   # 流量分析nfdump
       wget https://excellmedia.dl.sourceforge.net/project/nfsen/stable/nfsen-1.3.6p1/nfsen-1.3.6p1.tar.gz  # 流量分析nfsen
       https://www.cnblogs.com/moodlxs/p/4159245.html              # Linux服务器上监控网络带宽的18个常用命令
       https://www.51cto.com/article/435279.html                          # Linux服务器上监控网络带宽的18个常用命令
       http://www.cppblog.com/qiujian5628/archive/2008/03/10/44060.html    # web服务器压力测试工具httperf
       https://www.cnblogs.com/cllovewxq/p/5533487.html                    # web服务器压力测试工具httperf
       https://blog.51cto.com/blueoracle/1228037                                  # web服务器压力测试工具httperf
       https://www.cnblogs.com/shijingjing07/p/6539179.html               # web压力测试工具:http_load
       https://cloud.tencent.com/developer/article/1333772                  # web压力测试工具:apache bench(ab)
       https://www.cnblogs.com/lfri/p/12727264.html                            # web压力测试工具:webbench
       https://www.cnblogs.com/chenxiaomeng/p/13130526.html        # web压力测试工具:siege
       https://blog.csdn.net/Z1XpIYDj9sn/article/details/82634852      # Linux运维必备的13款实用工具
       https://www.likecs.com/show-204031047.html                   # lldp配置
       https://www.cnblogs.com/feifei6779/p/14906432.html       # lldpad配置
       https://www.kancloud.cn/chunyu/php_basic_knowledge/2137337     # ip link、ip rule、ip address、ip route命令
       https://www.cnblogs.com/lyq863987322/p/8004618.html       # 批量修改文件名
       https://www.cnblogs.com/liuzhiyun/p/11363287.html              # Linux压缩和解压命令汇总
       https://www.rpmfind.net/linux/rpm2html/search.php               # rpm包搜索
       https://manpages.ubuntu.com/manpages/focal/en/man8/run-parts.8.html     # run-parts命令用于一次执行目录下的多个脚本
       https://www.cnblogs.com/yj411511/p/18889163                  # 使用ipmitool工具远程管理服务器
       https://www.cnblogs.com/chentiao/p/16543679.html          # xargs命令详解
       https://www.cnblogs.com/lldhsds/p/18274610        # conntrack网络连接跟踪
       http://www.dest-unreach.org/socat/download/       # socat命令工具下载
       https://github.com/orf/gping                                  # ping结果以线型表展示
       https://iperf.fr/          # iperf网络测试工具

posted @ 2018-01-02 11:32  風£飛  阅读(731)  评论(0)    收藏  举报