Linux常用命令大全<二>

linux命令系列
Linux常用命令大全<一>
Linux常用命令大全<二>

文章目录

  • 操作系统相关
    • uname
    • etc/os-release
    • hostname
    • dmesg
    • uptime
    • ulimit
    • init
    • vmstat
    • iostat
  • 进程与服务
    • service,使用systemctl代替
    • apt-get install
    • yum
  • 网络
    • ipcs
    • ipcrm
    • route
    • ping
    • traceroute
    • ifconfig
    • netstat
    • ss(重点网络)
    • telnet
    • ssh
    • ftp
    • sftp
    • Iftp
    • wget
    • scp
    • curl
    • host
    • tcmp dump*
    • nc*
  • 内存
    • free
  • 实际案例
    • 两台电脑,一台用作服务器。
    • 一句话杀死相关进程

操作系统相关

uname

显示系统信息

  • -a显示系统所有相关信息
  • -m显示计算机硬件架构
  • -n显示主机名称
  • -v内核版本

etc/os-release

操作系统的发性版本

hostname

显示或者设置系统的主机名称

  • /etc/hosts
  • /etc/hostname
  • -I 显示IP地址

dmesg

显示开机信息

  • /var/log/demsg
  • dmesg | grep -i memory
  • dmesg | grep -i dma
  • dmesg | grep -i usb
  • dmesg | grep -i tty
  • -x 显示信息级别

uptime

  • 查看启动时间以及负载信息

  • -s : 启动时间

  • -p: 正确运行时间

ulimit

显示系统的一些限制

比如,open files,进程的打开最大文件数目

init

切换用户的运行级别

  • 3 切换到多用户-命令行模式
  • 5 切换到图形化结面
  • 0 关机
  • 1 重启

vmstat

显示虚拟内存、进程、磁盘等情况

vmstat 1 2:每1s显示一次,显示两次

  • -d
  • -p /dev/vda1:显示磁盘分区的读写情况。sda,也就是第一个分区,sdb是第二个分区…。vda1是第一个虚拟分区。
  • -a :显示活跃和非活跃的内存信息
  • -f : 实现fork的数量。也就是显示创建过的进程数量。

iostat

进程与服务

service,使用systemctl代替

配置文件(.service)文件

  • 使用yum安装的系统应用:/usr/lib/systemd/system文件夹下。

  • 自己写的,一般放在/etc/systemd/system文件夹下

  • start

  • stop

  • status

  • restart

自定义(.service)文件,内网穿透的frps.service文件

[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
# 启动frps的命令
ExecStart = /usr/local/frp/frps -c /usr/local/frp/frps.ini

# 默认
[Install]
WantedBy = multi-user.target
~                                                                                                                       ~                                                              

apt-get install

yum

红帽发行版本,使用yum进行安装。

yum install默认安装的

  1. 配置文件 /etc/
  2. 可执行文件 /usr/binusr/sbin,也就是在系统的环境变量$PATH中

网络

ipcs

产看**IPC(Inter-Process-Community 进程间通信)**的相关信息。查看共享内存,消息队列,信号量的命令行工具

如果有进程间通信的开发就非常有用。

  • -c : 得到id的形式

ipcrm

  • -m 通过id删除
  • -M通过key
  • -q 通过key消息队列
  • -Q
  • -s 通过key删除信号量
  • -S 通过id删除信号量

route

一般不会变化,因为你的电脑连接的是路由器.路由器的地址没有变化,那么你本地的路由一般就不会变化.

当然,如果你的路由表中连接了局域网中的某一个电脑,然后这个电脑的变化了,那你的路由表就会变化.

一般使用的是BGP,OSPF等路由协议进行路由表的更新.

当你访问百度时,路由会变化吗?

一般也不会,因为访问百度的时候,会首先发送到默认路由.变化也是默认路由变化.

使用场景

  1. 路由选择,负载均衡,故障检测和恢复
  2. VPN

添加了路由表项,处于局域网下第一次通信的过程

  1. 发送数据包:当你的计算机尝试发送数据包到目标主机时,操作系统会检查路由表以确定数据包的下一跳。
  2. 查找路由表:操作系统会查找路由表以获取与目标主机的IP地址匹配的路由表项。如果找到了匹配的路由表项,操作系统将使用该项的下一跳地址。
  3. ARP请求:由于目标主机与你的计算机在同一个局域网下,操作系统会发送一个ARP请求广播,以获取目标主机的MAC地址。ARP请求中包含了目标主机的IP地址。
  4. ARP响应:目标主机收到ARP请求后,会发送一个ARP响应回复,其中包含了目标主机的MAC地址。
  5. 获取目标主机MAC地址:当你的计算机接收到目标主机的ARP响应后,会将目标主机的IP地址和MAC地址的映射关系存储在本地的ARP缓存中。
  6. 转发数据包:现在,你的计算机已经知道了目标主机的MAC地址。操作系统会封装数据包,并直接将数据包发送到目标主机的MAC地址。
  7. 目标主机接收:当数据包到达目标主机后,目标主机的操作系统会根据目标IP地址接收并处理数据包。

非第一次通信过程

直接查找ARP缓存,找到对应的MAC地址,直接传输就行了。

如果是非局域网,还需要进行路由转发,还是转发给了默认网关,这个过程就和不配置的情况下是一样的了.

所以说,在局域网中,配置路由表,是也可以通过局域网减少网关(默认路由)的负载压力的.

ping

  • ping使用的是ICMP协议,所以是网络层协议,没用到传输层的协议.
  • ICMP轻量,并且适用性强

什么是网络层协议?

用到IP地址,使用物理和数据链路层的协议,就可以进行通信.不用更高层的协议.

traceroute

用户安全审计;查看网络延迟,优化网络路径;

  • -p端口
  • -n不显示主机
  • -r直接到达
  • -q 3 发送探测包问的个数为3
  • -w 3等待时间为3s

ifconfig

ifconfig eth0 down :关闭网卡,云服务器别关闭,要不还得重启

ifconfig eth0 ip地址:修改本地网卡内网的ip地址,一般是DHCP服务器自动分配的,不修改。

ifconfig eth0 ip地址 netmask 255.255.255.255: 配置子网掩码

ifconfig eth0 ip地址 broadcast 广播地址:配置广播地址

ifconfig eth0 arp :开启arp

ifconfig eth0 -arp: 关闭arp

ifconfig eth0 mtu 1500 : 设置最大传输单元1500B

还可以修改ipv6,网卡啊MAC地址。

netstat

Linux下显示的是网络连接情况,win下显示的是TCP/IP的连接情况。

  • -tln: 找到tcp,正在监听的端口,并且使用数字的ip地址而不是解析的域名。
  • -p : 显示pid/进程名称

ss(重点网络)

显示套接字信息。

  • -pl:显示正在监听的套接字,并且显示pid
  • -tlnp:显示正在监听的端口和netstat -tlnp类似

telnet

系统进行连接,但是由于是明文传输报文,所以会不安全,一般没人使用。

linux服务器安装telnet服务并启动的步骤

  1. 安装telnet服务
  2. 安装xinetd
  3. 配置/etc/xinetd.d/telnet文件,如果没有就创建一个
  4. 启动xinetd,查看是否监听成功
  5. 开启服务器防火墙,并使用telnet测试

在CentOS Stream 8的版本下

安装telnet服务

yum install telnet-server

安装xinetd

yum install xinetd

配置/etc/xinetd.d/telnet文件

service telnet
{
        disable = no
        socket_type = stream
        wait = no
        user = root
        server = /usr/sbin/in.telnetd
        log_on_failure += USERID
}

启动xinetd,并查看是否启动成功

systemctl start xinetd
netstat -tln | grep 23

如果有一个条目显示正在监听23号端口,说明启动成功。

开启防火墙,使用telnet远程连接

开启防火墙后,可以使用 telnet ip地址,之后输入用户名,回车,密码登录。

不建议开启,测试完成后,关闭防火墙,关闭xinetd服务,并查看是否关闭成功~

ssh

重点是如何本地电脑如何配置免密登录

  1. 配置ssh的文件/etc/ssh/ssh_config,使其支持免密登录
  2. 本地电脑生成公钥ssh-keygen -t rsa,在.ssh/id_rsa.pub中保存公钥
  3. 将公钥复制到服务器的~/.ssh/authorized_key文件中

ftp

文件传输吗命令

  1. 服务器安装fpt服务: yum install vsftpd
  2. 配置/etc/vsftpd/vsftpd.conf文件,允许匿名访问
  3. 启动服务systemctl start vsftpd
  4. 客户端登录,ftp 服务器ip地址
  5. 发送POST或者PASV

太麻烦,建议使用sftp

sftp

配置了ssh免密登录,就可以直接进行方便的上传和下载了。

  • get:下载
  • put:上传
  • !后面跟shell可以执行shell。

Iftp

wget

强有力的下载工具。

wget 下载链接

  • -i 文件:把多个链接放入到文件中,一次性多个下载
  • -O 名称 地址:重命名
  • -P 目录 地址:下载到其他目录
  • -c :断点处继续下自
  • -b: 后台下载
  • tail -f wget.log:查看后台下载的下载进度。

scp

上传文件

scp root@node2:/data/file.txt .:下载

scp file.txt root@node2:/data:上传

  • -P :指定端口
  • -p: 保护最后的修改时间,让来回一致。

curl

下载文件,网页等内容

  • -o 名称:保存到文件
  • -O:下载文件
  • -C:断点继续
  • -T:上传,不会用

host

显示域名对应的ip地址

  • -v:显示详细信息
  • -a:all

tcmp dump*

抓包

tcpdump -i any port 22 -c 20 -q:监听22端口,接收20个包,以精简模式监听

nc*

端口扫描,网络连接,数据传输

nc -v -z -w2 localhost 22: 扫描本机的22号端口是否开启

nc -u localhost 22:扫描UDP的22号端口是否开启

nc -l 端口号,监听端口,等待连接

nc localhost 端口号,可以进行点对点的通信了。

内存

free

  • -h :显示总量、剩余量、缓存量等等

实际案例

两台电脑,一台用作服务器。

困难

  1. 固定的ip地址
  2. 防火墙,需要开放一些端口
  3. 如何确保安全性。ssh安全性的保证。
  4. vmware需要将端口映射到主机的端口上,从而保证别的电脑可以访问端口。
  5. 我的地址端口,不一定是公网的ip地址对应的端口。

虚拟机端口映射到物理端口

物理端口映射到路由器端口

开放本机的相关端口,开放虚拟机的相关端口

配置防火墙,增强密码.

一句话杀死相关进程

ps -ef | grep 进程名称 | awk 'NR==1 {print $2}' | xargs kill -9: xargs把pid作为参数传递给kill -9

你可能感兴趣的:(linux,运维,服务器)