工作后服务都是部署在 linux 系统下的,在运维的过程中不可避免的会和 linux 打交道。
知道 linux 的一些知识,不仅可以对计算机操作系统,网络,进程等有更深入的了解,同时也可以让你写出更高效的代码(windows 下运行的情况和 linux 下有时候差好多)。
- 性能差异:由于 Windows 和 Linux 系统在底层架构和资源管理上的不同,相同的程序可能在两个系统中的运行速度和响应时间有所不同。例如,Linux 对 I/O 操作和网络处理的优化可能使某些类型的服务在其上运行得更快。
- 资源利用效率:Linux 系统通常被认为在资源利用方面更为高效,内存和CPU使用率较低。因此,一些程序在 Linux 上运行时,可能会占用更少的系统资源,从而表现得更稳定或能够处理更高的负载。
- 系统调用和API差异:Windows 和 Linux 提供了不同的系统调用和API(应用程序编程接口)。开发人员可能需要针对不同的系统进行优化,甚至重写某些代码段,以充分利用特定系统的功能和优势。
- 稳定性和可靠性:Linux 系统被广泛应用于服务器环境,因其稳定性和可靠性较高。因此,长期运行的重要服务在 Linux 上可能表现得更为稳定,宕机和重启的频率较低。
- 功能特性差异:某些功能在一个操作系统中可能有着天然的优势。例如,Linux 原生支持多种文件系统、内核级的网络功能,而 Windows 则有其特有的安全和图形界面相关特性。这些差异可能会影响到程序的设计和最终表现。
例子:文件服务器的性能
假设你有一台文件服务器,主要任务是处理大量的文件读写操作。Windows 和 Linux 都有相应的文件系统,但它们在管理 I/O 请求和缓存策略上的机制略有不同。
- Windows: Windows 使用的 NTFS 文件系统在设计上考虑了很多兼容性和功能性,如权限管理和日志记录,这可能带来一些性能上的开销。
- Linux: Linux 下的 ext4、XFS、Btrfs 等文件系统更注重高效的 I/O 操作和更快的文件存取速度。一个显著的例子是在高并发读写操作时,Linux 的文件系统能够更好地利用缓存和异步 I/O 技术,使得处理速度更快。
例子:Web 服务器性能
假设你需要搭建一个高并发的 Web 服务器,同样的服务器软件(如 Nginx)在 Windows 和 Linux 上的表现可能有显著差异。
- Windows: 尽管 Windows 支持大多数主流的服务器软件,但其网络协议栈以及 TCP/IP 处理机制在高并发请求下的表现可能不如 Linux 效率高。在高负载条件下,Windows 网络服务可能会遇到瓶颈。
- Linux: Linux 的网络协议栈经过长期的优化,支持多种高效的网络工具和技术,如 epoll、kqueue(在BSD系统中)、异步 I/O 等,使得网络处理非常高效。在处理大规模并发请求时,Nginx 或 Apache 服务器在 Linux 上的性能往往优于在 Windows 上。
实际案例:
- Nginx 服务器性能测试: 在面对高并发的HTTP请求时,Nginx在Linux系统上的表现通常优于Windows。这是因为Linux支持大量并发连接,并且使用Epoll机制能更加高效地处理大量请求。
- 数据处理和日志分析: 在数据量巨大的场景中,例如使用Hadoop进行数据处理和分析,Linux的I/O性能优化能够更快速地处理数据读写操作,从而提升整体性能。
实践为主,书籍为辅。
书籍推荐:
细说Linux基础知识 鸟哥 linux 私房菜
工具推荐:
- windows 系统可以使用 wsl ,而不是虚拟机; 或者云服务器,或者 Mac;
- shell 工具 推荐: Windterm 非常好用,相比 MobaXterm 和 Xshell 等而言
实践 demo:
1 安装一个 ssh 服务;
2 安装 docker 容器 并跑一个 demo;
3 将 windows 的 功能迁移到 linux 上实现;
比如 windows 下
查看文件占用大小
任务管理器 显示实时任务
CPU 占用
内存 占用
下载文件并一键安装
查看服务
防火墙
配置 ip
看电影 打游戏 这类需要显示图形画面的就算了
编程的话主要是 通过 IDE 连接 linux 进行编程,因为还是需要可视化的操作环境。
(no hang up)是一个 Unix/Linux 命令,用于在会话退出后继续运行特定的命令。换句话说,通过使用 ,可以确保在你注销或关闭终端后,启动的命令或程序仍然会继续运行。
这个很重要,因为本地连接服务器后,可能会在一段时间后退出,那么如果任务还没执行完毕,就需要重新执行。
所以需要使用
使用场景
- 长时间运行的任务:例如数据备份、批处理任务、长时间的计算等。
- 开启服务器或服务:某些服务器进程需要长时间运行,可以通过 启动,比如启动一个 web 服务器。
- 远程操作:通过 SSH 远程登录后,启动一个需要长时间运行的任务,然后退出 SSH 会话,这时 就显得非常有用。
配合 使用
为了确保 启动的命令不会阻塞终端(即使你在命令行键入后,仍然可以继续输入别的命令),通常会将命令置于背景运行,即在命令后面添加 。这使得启动的任务不会占用你的终端。
查看输出
默认情况下,如果你没有指定输出文件, 会将输出重定向到一个名为 的文件中,该文件通常位于运行命令的当前目录里。你可以使用 , , 等命令查看 文件的内容。
使用 可以实时查看输出文件的新增内容,类似于实时日志跟踪。
一般是生产环境 debug 的时候 查看日志:
如果有其他需求 可以评论
ping 命令
如果使用的是 windows 电脑 ,可以使用 -t 参数,因为 windows 下 ping 默认只会有 4 条 ping 的指令。
比如
PS: 推荐使用 powershell 而不是 cmd,因为PowerShell 是一个更先进和功能更强大的工具( powershell 有命令记忆功能,比较方便)
应用场景:
连不上数据库 连不上服务器时,需要一层一层的进行调试和判断,
网络的调试不像 debug 代码,代码出错 IDE 会直接提示的,直接能够定位到出错的点。
但是网络调试则不同:
比如 使用 ssh 连不上服务器了,ssh 是应用层协议,那么出问题的地方可能是传输层,数据链路层,物理层等等。
首先看 ssh 连不上的报错:是用户名密码不对,还是长时间没反应。
用户名密码不对说明网络链接没问题,长时间没反应说明链接可能有问题。
一般排查的思路是 自底向上,确保底层是没有问题的之后再逐层向上排查。
- ping 测试网络是否连通;
- telnet 测试端口是否开放;
- ps -ef | grep ssh 查看 ssh 服务是否启动;
- 进一步再去查看 ssh 的配置文件 vi /etc/ssh/sshd_config 是不是配置不允许使用用户名密码等;
telnet 命令
telnet ip port
排查 有哪些进程
检查服务是否已经启动
主要是 CPU 内存 磁盘等信息,通过几个命令对这台服务器有一个简单的了解。
:显示文件系统的磁盘空间使用情况
- df(disk free):用于查看文件系统的整体磁盘空间使用情况。
- -h:human-readable 的缩写,以更易读的格式(如 KB、MB、GB)显示信息。
这个命令通常用于检查整个系统中各个挂载点的磁盘使用情况。它会显示每个挂载点的总空间、已用空间、可用空间以及使用百分比。
示例输出:
列的含义:
- Filesystem:文件系统或设备名称。
- Size:文件系统的总大小。
- Used:已用空间。
- Avail:可用空间。
- Use%:已用空间的百分比。
- Mounted on:挂载点目录。
提供的是文件系统整体层面的磁盘空间信息。
:估算文件和目录的磁盘使用情况
- du(disk usage):用于查看特定目录或文件的磁盘使用情况。
- -h:human-readable 的缩写,以更易读的格式(如 KB、MB、GB)显示信息。
这个命令通常用于检查特定目录或文件占用了多少磁盘空间。尤其有用在发现哪个目录或文件占用了大量磁盘空间的时候。
示例输出:
列的含义:
- 大小:每个文件或目录的磁盘使用情况。
- 路径:文件或目录的路径。
提供的是文件和目录层面的详细磁盘空间信息,可以显示指定目录及其子目录的空间使用情况。
这块用到的比较少
主要是鼠标,键盘,屏幕,网卡,磁盘等。
到此这篇linux系统微信聊天记录(linux聊天室)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-wfwjg/44113.html