Linux常用命令大全<二>
linux命令系列
Linux常用命令大全<一>
Linux常用命令大全<二>
文章目录
操作系统相关
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默认安装的
- 配置文件 /etc/
- 可执行文件
/usr/bin
和usr/sbin
,也就是在系统的环境变量$PATH中
网络
ipcs
产看**IPC(Inter-Process-Community 进程间通信)**的相关信息。查看共享内存,消息队列,信号量的命令行工具
如果有进程间通信的开发就非常有用。
- -c : 得到id的形式
ipcrm
- -m 通过id删除
- -M通过key
- -q 通过key消息队列
- -Q
- -s 通过key删除信号量
- -S 通过id删除信号量
route
一般不会变化,因为你的电脑连接的是路由器.路由器的地址没有变化,那么你本地的路由一般就不会变化.
当然,如果你的路由表中连接了局域网中的某一个电脑,然后这个电脑的变化了,那你的路由表就会变化.
一般使用的是BGP,OSPF等路由协议进行路由表的更新.
当你访问百度时,路由会变化吗?
一般也不会,因为访问百度的时候,会首先发送到默认路由.变化也是默认路由变化.
使用场景
- 路由选择,负载均衡,故障检测和恢复
- VPN
添加了路由表项,处于局域网下第一次通信的过程
- 发送数据包:当你的计算机尝试发送数据包到目标主机时,操作系统会检查路由表以确定数据包的下一跳。
- 查找路由表:操作系统会查找路由表以获取与目标主机的IP地址匹配的路由表项。如果找到了匹配的路由表项,操作系统将使用该项的下一跳地址。
- ARP请求:由于目标主机与你的计算机在同一个局域网下,操作系统会发送一个ARP请求广播,以获取目标主机的MAC地址。ARP请求中包含了目标主机的IP地址。
- ARP响应:目标主机收到ARP请求后,会发送一个ARP响应回复,其中包含了目标主机的MAC地址。
- 获取目标主机MAC地址:当你的计算机接收到目标主机的ARP响应后,会将目标主机的IP地址和MAC地址的映射关系存储在本地的ARP缓存中。
- 转发数据包:现在,你的计算机已经知道了目标主机的MAC地址。操作系统会封装数据包,并直接将数据包发送到目标主机的MAC地址。
- 目标主机接收:当数据包到达目标主机后,目标主机的操作系统会根据目标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服务并启动的步骤
- 安装telnet服务
- 安装xinetd
- 配置
/etc/xinetd.d/telnet
文件,如果没有就创建一个 - 启动xinetd,查看是否监听成功
- 开启服务器防火墙,并使用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
重点是如何本地电脑如何配置免密登录
- 配置ssh的文件
/etc/ssh/ssh_config
,使其支持免密登录 - 本地电脑生成公钥
ssh-keygen -t rsa
,在.ssh/id_rsa.pub
中保存公钥 - 将公钥复制到服务器的
~/.ssh/authorized_key
文件中
ftp
文件传输吗命令
- 服务器安装fpt服务:
yum install vsftpd
- 配置
/etc/vsftpd/vsftpd.conf
文件,允许匿名访问 - 启动服务
systemctl start vsftpd
- 客户端登录,
ftp 服务器ip地址
- 发送
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 :显示总量、剩余量、缓存量等等
实际案例
两台电脑,一台用作服务器。
困难
- 固定的ip地址
- 防火墙,需要开放一些端口
- 如何确保安全性。ssh安全性的保证。
- vmware需要将端口映射到主机的端口上,从而保证别的电脑可以访问端口。
- 我的地址端口,不一定是公网的ip地址对应的端口。
虚拟机端口映射到物理端口
物理端口映射到路由器端口
开放本机的相关端口,开放虚拟机的相关端口
配置防火墙,增强密码.
一句话杀死相关进程
ps -ef | grep 进程名称 | awk 'NR==1 {print $2}' | xargs kill -9
: xargs把pid作为参数传递给kill -9
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!