学习Linux的心得

LINUX与DOS类似。
粗略了解LINUX的结构,然后记住命令就够了吗==============================不要误导我,我记得以前回答过类似的问题=================================================================我想要分享一下我这几年学习Linux的经历。
我不敢说我​​有过成功的经验,但我从失败中吸取了很多教训。
第一点:我是大二的时候学Linux的。
当时安装的发行版是redhat。
但一开始声卡驱动无法安装,显卡、网卡等其他东西都安装了。
但由于没有声音,我就没有坚持使用。
几年后当我再次尝试拿到声卡时,我仍然无法拿到,但这一次我更加坚定了,所以我查了很多资料,并向很多人请教。
我终于做到了。
---------总结:无论你是学习Linux还是其他东西,决心一定起着非常重要的作用。
第二点:这两年我对Linux和很多GNU的开源东西产生了浓厚的兴趣,所以我开始深入研究Linux。
使用Linux后不久,我什至开始阅读内核代码。
但至今我还不太了解内核的结构,很多模块的功能以及实现原理。
----------总结:不要在错误的时间做错误的事。
具体来说,有几层含义:a》不要只看内核代码;b》不要高估自己的能力;带着相关问题去研究,而不是徒劳地做技术研究;对技术的研究本身就是一种学术风格。
第三点:Linux中的开源软件以及Linux所固有的开放精神、文化和内涵比Linux内核更有价值。
--------总结:选择Linux其实就是选择一种文化,选择一种信仰。
既然这个选择已经提升到如此高的水平,那么(与其他系统)进行比较至少是不值得的。
第四点:回到问题本身:你是如何学习的?我个人认为应该遵循以下顺序:接触(安装一个发行版)=>了解(至少了解它能做什么)=>熟悉(用它做一些日常工作)=>了解(长期使用))。
)理解Linux为什么要这样解决问题)=>Build(在前面步骤的基础上做一些改进和创新)。
当然,在这样的过程中有很多“功课”要做,操作系统的知识当然很重要,但它们并不紧急,所以你可以稍后再了解它们,大象保护模式也是如此。

我个人对学习级别做了这样的分类:1.重要、紧急:熟悉目录结构、基本操作命令(注意是基础)和文本编辑器的使用(使用vi或emacs,但不推荐,学习因为我一开始想掌握它们,但后来造成了不必要的问题,现在专注于使用vi)。
2、重要,不紧急:正则表达式、grep、sed、awk、perl、gcc、gdb(其实学习这些东西需要一个漫长的过程,但是它们的使用贯穿整个系统;它们之所以重要是因为它们非常重要它体现了精神Linux好;它不紧急的原因不是因为它不紧急,而是因为它是一个伟大而复杂的软件,需要慢慢消化和吸收,而不是整个吞下。
3.不重要,紧急:一个漂亮的桌面,一些优雅的桌面插件(Linux的强项并不在于它的桌面环境,虽然Gnome和KDE都很优雅;之所以不重要,是因为有比它更重要的东西)换句话说,之所以紧急,是因为这些东西会在短时间内抓住你的心和兴趣,而兴趣是支撑你以后学习过程的最重要的东西——请相信它。
)。
4.不重要,不紧急:把Windows上常用的东西搬到Linux上,比如:B、喝酒玩Wow或者CS(道理很明显,开着航母去钓鱼绝对不如划船那么感伤)。
个人建议是:了解操作系统的组成及其工作原理。
上面运行的应用软件就会启动。
要了解它的应用,你必须日复一日地使用它。
我认为并不是每本书都能产生预期的影响。
然而,如果你继续坚持使用Linux,你很快就会发现Linux是你的首选助手。

Termux的安装、换源、基本库安装、基本操作讲解以及Termux的使用心得

特穆克斯,该应用程序在Android平台上模拟Linux环境,无需额外设置或root权限即可使用,并且支持apt进行软件包管理。
在本课中,通过华为Mate40Pro(Android10、EMUI11.0)和华为MatePadPro实践安装Termux;资源替代;将介绍Termux的基本库安装和基本功能。
在进一步研究之前,Termux是一款革命性的产品,打破了Android的限制,其价值在于为各种情况提供轻量级的Linux环境。
首先,我们来补充一下Termux的一些简单用法:旅行时;旅行时您可以使用平板或手机安装Python,也可以直接使用运维环境或通过服务器远程连接。
用于办公室工作的SSH。
此外,它适合作为迷你实验室服务器来学习Linux命令,或者移除旧手机的功能。
这些用途展示了Termux在不同情况下的灵活性和实用性。
安装Termux:访问官方下载页面(具体链接)并确保Termux已安装并在您的设备上运行。
然后,我们将安装vim编辑器并替换图像源以加快软件安装速度。
要安装vim编辑器,请输入`pkginstallvim`;使用`exportEDITOR=vim`将默认编辑器设置为vim;然后运行​​aptedit-sources并将源URL替换为:mirrors.tuna.tsinghua.edu.cn...`.确保替换是在编辑模式下完成的;使用`ESC`退出编辑模式并输入`:wq`保存并退出。
要使用sudo命令,我们需要安装sudo软件并使用`pkginstalltsu`来安装它。
配置SSH后,`whoami`检查IP地址;安装SSH软件;`whoami`获取用户名;安装SSH软件;输入“ifconfig”设置密码并启动服务。
然后使用xshell(或其他SSH客户端)连接到您计算机上的设备以进行有效的远程操作。
电脑上使用xshell连接设备;输入IP地址和端口号8022。
连接成功后,您可以在设备上执行各种操作,而无需在手机上打字。
适合商务出差,节省时间和精力。
设备与计算机互联,实现远程办公或系统管理使用SSH进行连接。
安装Ubuntu:参考国光编写的应用程序脚本,使用以下命令运行安装过程:`pkginstallprootgitpython-y`,`gitclonegithub.com/sqlsec/termux-install-linux`,`cdtermux-install-linux`,`pythontermux-linux-y`安装.py`。
安装完成后,选择熟悉的Ubuntu版本;通过`cd~/Termux-Linux/Ubuntu./start-ubuntu.sh`安装Ubuntu界面。
大部分功能介绍完了,希望大家可以通过评论区分享自己的经验和问题,共同学习和交流。
体验在不同环境中安装和使用Termux:移动办公、无论是学习远程服务器管理还是Linux命令;它是探索和实践的宝贵工具。

服务器编程心得(四)——如何将socket设置为非阻塞模式

在服务器编程中,将套接字设置为非阻塞模式是提高性能的关键技术之一。
此功能的实现方式因操作系统而异。
在Windows平台上,无论是使用Socket()函数还是WSASocket()函数创建的套接字默认都处于阻塞模式。
相比之下,在Linux平台上使用socket()函数创建套接字时,可以通过在类型参数中设置SOCK_NONBLOCK标志来以非阻塞模式创建套接字。
例如:在Linux上,可以通过将SOCK_NONBLOCK标志设置为SOCK_NONBLOCK来创建非阻塞模式的套接字。
Windows和Linux平台上Accept()返回的socket也处于阻塞模式,但是Linux额外提供了一个Accept4()函数,可以直接将返回的socket置于非阻塞模式。
实现方法只需将Accept4()函数参数的最后一个标志位设置为SOCK_NONBLOCK即可。
除了在创建socket时设置非阻塞模式外,还可以通过调用某些API函数来实现。
在Linux平台上,您可以使用fcntl()或ioctl()函数来更改套接字的阻塞属性。
例如:通过调用fcntl()函数或ioctl()函数,可以将Linux平台上的套接字置于非阻塞模式。
设置非阻塞模式时,必须保证接收和发送数据时使用MSG_DONTWAIT标志,即调用Recv、Recvfrom、Send和Sendto函数时,必须将标志参数设置为MSG_DONTWAIT。
不过,根据Linux手册,将Recv()的标志位设置为MSG_DONTWAIT或使用fcntl()设置O_NONBLOCK标志就足以实现非阻塞操作,无需同时设置这两种方法。
同时。
在Windows平台上,可以通过调用ioctlsocket函数来改变socket的阻塞模式。
将cmd参数设置为FIONBIO,并将*argp参数设置为0或非0,分别将套接字置于阻塞模式或非阻塞模式。
需要注意的是,如果您在套接字上调用WSAAsyncSelect()或WSAEventSelect(),然后尝试使用ioctlsocket()进行转换当socket进入非阻塞模式时,就会发生错误。
要解决此问题,您需要通过将lEvent设置为0或将lNetworkEvents设置为0来禁用WSAAsyncSelect()或WSAEventSelect(),然后调用ioctlsocket()将套接字置于阻塞模式。
在实际项目中,有些前辈可能会循环调用fcntl()或ioctlsocket()函数来改变socket的阻塞模式。
然而,这样做的必要性仍有待测试。
建议读者根据实际需要和项目要求选择合适的方法。
如果想系统学习以上知识,建议阅读尹胜宇的书《TCP/IP网络编程》。
它考虑了Windows和Linux平台。
为此,使用了操作系统的C语言和SocketAPI。
帮助读者了解网络编程的基础知识。
概念和实现方法。
关于高性能网络结构和设计的更详细信息,可以参考于爽的书《高性能Linux服务器编程》。
另外,作者还出版了《C++服务器开发精髓》一书,讲述了从客户端到服务器、从Windows到Linux的工作经验,包括C++开发、编译与调试技术、多线程编程、网络故障排除。
以及通信协议设计、高性能网络设计、服务基础设施设计、服务组件设计等知识。
有关本书的更多详细信息可以在相关链接中找到。