我和Linux

Linux 文件和目录 所有用户都可以执行用于修改用户密码的 passwd 命令,但用户密码保存在 /etc/shadow 文件中,默认权限是 000 即除了超级用户 root 外的所有用户都没有查看或编辑该文件的权限,所以对 passwd 命令加上SUID 权限位,则可让普通用户临时获得程序所有者的身份,即以 root 用户的身份将变更的密码信息写入到 shadow 文件中。读 (read) ,写 (write) ,执行 (execute )简写即为 (r,w,x) ,亦可用数字 (4,2,1) 表示。 阅读详情

0?wx_fmt=png

本文来自于ltoddy的投稿(博客地址:https://ltoddy.github.io/),老刘做了修改。

电影中一个超级黑客坐在电脑面前,噼里啪啦地敲键盘,从不摸鼠标一下,几十秒就能入侵超级安全的军事系统。这是因为导演知道,作为人类, 我们应该本能地知道让计算机圆满完成工作的唯一途径:是用键盘来操纵计算机。 

先来讲一个亲身经历,前不久我去面试,那家公司开发是使用的Linux系统(Ubuntu 12.04)。

当时第一轮面试是上机,第一道题是面试官告诉你一个文件名称,你需要在电脑里面找到一个压缩包,这个压缩包里面包含着后面的题目,解压它之后你才能做后面的题。

如果你linux玩的不好,可能就不好找了, 在Linux其实一行命令就可以搞定 locate filename | grep zip。  简单介绍一下locate,Windows下有注册表这个东西, 它是Windows系统的一个配置数据库。 而locate命令就是查询Linux中的类似的数据库(Linux会自动创建并且每天更新它),它会很快地找到文件,然后通过 | (管道,它会把数据从这边送到那边), 交付给 grep 命令,这是一个过滤器,后面跟着一个正则表达式。 

这是一个很小的例子, 如果我之前没有学过在Linux环境(用的虚拟机)下编程,可能就要懵逼了。

我刚开始学习Linux的原因主要有两点:

首先命令行的技术是值得学习的, 它可以很大程度的提高你的工作效率, 此外它不像其他一些计算机技能,一段时间之后可能就被淘汰了,命令行知识却不会落伍。 因为命令行经受住了长达几十年时间的考验(最初的电脑就是命令行操作,现在也是用命令行操作最方便)。

另一个原因就是,我要参加的ACM/ICPC的编程环境就是Ubuntu,所以就算是提前适应环境了。

从2016年10月,我正式转为完全使用Linux系统(Ubuntu 16.04 & Gnome3)工作,到现在已经一年多了,这一年多来还是感受很多的。 

身为一名码农,我感受到了Linux所带来的前所未有的便利,比如你去安装MySQL软件,如果你是windows的话,你需要去官网下载安装包,然后一步一步地安装。 不过在Linux上,只需要一行命令就可以了: sudo apt-get install mysql-server 。

这里说一下,Debian系列的软件包管理用的是apt, RedHat系列用的软件包管理是yum, 软件包管理是什么? 类似于Python的pip, Ruby的gem, nodejs的npm. 它会帮助你管理你的软件, 这样你就不需要分心来关注细节。包括软件的更新、卸载,软件包管理器都会帮助你搞定(仅仅是需要一条命令而已)。

安装依赖库也是很方便的,如果你喜欢一些小众语言,Linux是绝佳的选择,你会发现,在windows上安装的问题,都不会出现(这点还需要切身体会)。

不过不要误以为Linux就是用命令行来做事,其实不是,Linux也有GUI,Windows能做的Linux也能做, 并且可以做的更好(QQ就不要提了,腾讯在Linux发布了QQ2008之后也不知道什么原因,就没有再更新了……)。

上网,你可以用Chrome,可以用FireFox等等; 听音乐,你可以用网易云音乐;办公,你可以使用Open Office; 编程开发就更不用说了,很轻松的安装各种依赖库, 而且Jetbrains公司也在Linux平台发布了他们的产品,安装数据库也非常方便。

Linux照样可以很漂亮,文章最开始的那张图片(我的电脑桌面),我就觉得挺好看的,很酷。

还有一点我觉得不错,我在Linux系统上从来没考虑过安装杀毒软件的事情。也就是说系统本身是比较安全的。毕竟开源了嘛。那么多顶尖黑客去阅读代码,去修改系统bug。 而且黑客们也都使用这个系统,怎么可能不把它变得安全?而且windows上的病毒在linux上是不起作用的,嗯,病毒们也得考虑垮平台了。

我很清楚的记得,小学时候,我家长培养我良好电脑习惯的时候,其中就有开机之后不要着急,用360之类的软件去清理一下垃圾,每几个月用一键还原精灵去还原一下系统。在Linux下面可不用做类似的事情。

现在主流的操作系统有微软的Windows,苹果的MacOS,和开源世界的Linux。对于Windows,只能说盖茨先生非常有商业头脑,容忍盗版系统的存在(尤其在中国),在上面建立了一个庞大的生态系统,所以现在才能占有第一的市场份额。

Windows系统是真正为普通用户设计的系统。因为普通用户不需要做那么复杂的事情,他们用电脑无非就是写文档,做ppt, Excel, 上网聊天,玩游戏......, 所以一个用户友好的的桌面系统可以让简单的事情变得更简单,这就足够了。

但是一个程序员,而且是想要走的长远的程序员, Windows是远远不够的,  学习一下Linux会加深你对操作系统的理解,尤其是对后端程序员来讲,服务器用的操作系统几乎都是Linux,  无论是软件的安装和部署, 或者是系统监控和性能调优, 都离不开Linux , 掌握Linux能让你更快地解决问题,完成任务。 

你可能要说了,Linux上有两大硬伤:图形处理和游戏,确实如此,不过对于后端程序员来说,这两处硬伤无关痛痒(正好少玩游戏)。 其他方面,linux系统确确实实对于程序员来说是很方便的。

如果你想学好Linux系统的话,那就直接在电脑安装linux吧,不要使用虚拟机或者双系统。因为当你那样做了之后,你的大部分时间还是去使用windows而不是Linux。不要畏惧Linux系统,因为它也提供了桌面环境,你去使用Linux,也可以像windows那样靠 鼠标点来点去的操作,然后慢慢地学习、适应命令行就好了。 


(完)

你看到的只是冰山一角, 更多精彩文章,请移步《2016文章精华》或者《2017上半年文章精华》


优秀人才不缺工作机会,只缺适合自己的好机会。但是他们往往没有精力从海量机会中找到最适合的那个。


100offer 会对平台上的人才和企业进行严格筛选,让「最好的人才」和「最好的公司」相遇。

扫描下方二维码,注册 100offer,谈谈你对下一份工作的期待。一周内,收到 5-10 个满足你要求的好机会!

0?wx_fmt=jpeg

Linux 用户和组 家目录 : 用户的家目录 root 的家目录在 /root, 默认用户的家目录在 /home/yourname。思考题: root 和普通用户都可以修改 /etc/passwd 文档,那么这个文档的权限是什么呢?使用者账号 登入者的来源主机名 =( 可切换的身份 ) 可下达的指令。root ALL=(ALL) ALL <== 这是默认值。可以直接切换成 root 用户,而且不需要输入 root 密码。每一行都代表一个账号 , 有几行就代表有几个账号在你的系统中。 阅读详情

相关推荐

常用的git和linux命令有哪些?

tail -f /var/log/nginx/error.log # 监控日志。git pull origin main # 拉取最新代码。sudo systemctl restart nginx # 重启服务。:围绕代码版本管理,掌握分支、合并、撤销和远程协作命令。:文件操作、权限管理、进程监控和网络调试是运维高频场景。# 查找并删除 7 天前的日志文件。# 查看日志实时更新并过滤错误。

海姐软件测试的博客 1541

ac3165 linux驱动_为什么Linux系统没有类似Windows上的还原精灵和影子系统?

很多从Windows转Linux的用户,面临的最大一个问题,就是Linux上没有还原精灵这种软件。众所周知,作为一个操作系统要想普及,绝不可能只针对懂IT的少部分年轻人,而是需要让不同年龄段,不同职业的群体都用上这个系统。比如让家里老年人使用电脑,就需要考虑病毒以及误操作导致系统崩坏的可能。杀毒软件只能解决病毒,但解决不了人为失误导致的系统损坏,这个时候还原精灵这类软件就是必须的了。Linux不能...

weixin_39974932的博客 708

一键还原精灵:系统备份与恢复实用教程

在当今快速发展的信息技术时代,数据的完整性和系统的稳定性对于企业以及个人用户都至关重要。为了解决系统崩溃或数据损坏带来的各种问题,一键还原精灵这款软件应运而生,成为了数据安全和系统维护的利器。本章我们将详细介绍一键还原精灵的核心功能及其在日常工作中的应用场景。一键还原精灵不仅仅是简单的数据备份和恢复工具,它提供了一个用户友好的界面和一系列高级功能,使得即便是没有专业技术背景的用户也能轻松管理自己的系统备份和恢复。

weixin_31688273的博客 1384

【实验笔记】使用再生龙(Clonezilla)还原 Linux 系统

分享 使用再生龙(clonezilla)还原 Linux 系统的详细操作步骤

qq_33216613的博客 3238

使用再生龙制作linux系统镜像

使用再生龙制作linux系统镜像

还原精灵简体中文特别版

还原精灵简体中文破解版

使用再生龙(Clonezilla)备份和还原Linux系统

Clonezilla是一款开源的磁盘克隆和备份工具,它可以帮助用户快速、高效地克隆和备份硬盘或分区。Clonezilla和。

weixin_45625174的博客 2万+

<蓝桥杯软件赛>零基础备赛20周--第16周--GCD和LCM

gcd,lcm

罗勇军的博客 7615

linux备份与还原系统(类似window上ghost备份还原)

linux 系统的备份和恢复,类似window上的ghost操作 ,再生龙Clonezilla("再生龙")+2个u盘+ulstra

wyj372的专栏 1万+

OpenVox 8FXO板卡驱动安装记录

OpenVox A800P和A1200P的板卡驱动安装及问题解决方法

clliu的专栏 2463

LoRa正点原子模块组网步骤

按照我上一篇的博客和视频演示,相信大家一定都可实现了lora模块点对点的通信了。那我们来进行一个比较有高难度的设计吧! 使用多个loRa模块去完成一个组网设计: 在这之前一定要配置模块信息为定点传输 AT+TMODDE要等于1奥 第一步分析通讯协议: 点对点通讯是在透明传输的条件下,地址和信道都是一样的,直接发送接受数据。 组网呢我们利用是: 定向传输就是 A、B的地址、信道不同 假如A是要想B发送信息就用函数来下面: int b[5]...

weixin_43205178的博客 4084

LINUX命令和SHELL

shell是Linux系统中后台运行的一种特殊程序也可以理解成一种特殊的软件,提供了用户与内核进行交互操作的一种接口。

Miraitowa_xu的博客 1619

【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化

在嵌入式设备、专用服务器和物联网系统日益普及的今天,如何让Linux系统在资源受限的环境中高效运行成为开发者必须面对的问题。Linux内核裁剪正是解决这一问题的关键技术,它通过移除不必要的内核组件,打造出更精简、更安全、更高效的自定义操作系统。本文将系统全面地介绍Linux内核裁剪的完整流程和实用技巧,帮助您掌握这一核心技能。Linux内核裁剪是一项结合技术知识与实践经验的系统工程。明确需求:裁剪前必须清晰了解目标系统的硬件配置和功能需求。循序渐进:采取小步修改、反复测试的策略,避免一次性大幅修改。

撬动未来的支点的专栏 1391

《Linux从小白到高手》理论篇:Linux用户和组相关的命令

本篇介绍Linux用户和组相关的命令,看完本文,有关Linux用户和组相关的常用命令你就掌握了99%了。

qq_45732829的博客 1462

3D缺陷检测实战:从点云处理到工业质检优化

本文深入探讨了3D缺陷检测在工业质检中的实战应用,详细阐述了从点云处理到深度学习模型部署的完整技术链路。文章通过PCB焊点检测等实际案例,分析了3D视觉相比2D检测在识别深度、形状等缺陷方面的优势,并分享了点云滤波、分割、特征提取以及利用YOLOv5等模型进行高效检测的优化心得与落地挑战。

weixin_28358083的博客 338

PyCharm 怎么不升级直接使用Jupyter Notebook

在PyCharm 中需要升级到 PyCharm Professional 版本,才能直接使用 Jupyter Notebook。从截图来看,Jupyter Notebook 已经成功启动,并且正在运行。这将在默认网络浏览器中打开一个新的标签页,显示文件浏览器界面。可以在这里创建和编辑。文件添加到 PyCharm 项目中,并使用纯文本编辑功能进行修改。支持与外部工具集成,可以配置它以调用命令行工具或脚本来启动。,参数可以根据需要设置,工作目录设置为项目根目录。,你仍然可以在本地环境中安装和运行。

Davina_yu的博客 999

【Linux】linux工具和命令

1.三种模式正常模式插入模式底行模式2. vim操作打开,关闭,查看,查询,插入,删除,替换,撤销,复制等等操作。简单 vim 配置配置文件的位置在目录 /etc/ 下面,有个名为 vimrc 的文件,这是系统中公共的 vim 配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如, /root 目录下, 通常已经存在一个.vimrc 文件 , 如果不存在,则创建之。

小洁洁 2461

全国青少年信息素养大赛图形化(Scratch)编程考点总结

全国青少年信息素养大赛图形化(Scratch)编程考点总结

伶俐角少儿编程 383

linux是什么?linux和Unix有什么区别?

UNIX系统是一种操作系统家族,包括多个衍生版本,如Linux、macOS和FreeBSD等,由贝尔实验室于20世纪70年代开发,在UNIX系统中,文件和目录管理是一个核心概念。文件系统以层次结构的方式组织文件和目录,并使用路径来指定它们的位置。UNIX系统中的文件和目录都遵循一套权限模型,控制着对它们的访问和操作,用户可以通过命令行终端或图形界面来与UNIX系统进行交互。UNIX系统以其稳定性、可靠性和灵活性而闻名,并广泛用于服务器。

weixin_46525291的博客 5029

AutoSAR配置与实践(基础篇)3.2 BSW中的I/O架构和模块详解

车门位置传感器(Sensor SWC)输出的电流信号经过了一系列处理,如先被转化为电压信号,后又经ADC转换为数字信号,但是IoHwAb模块对上层隐藏了这一系列处理过程,并将数据直接抽象为它的输出接口,即车门开关状态接口。Sensor SWC 使用RTE接口直接从IoHwAb模块封装的车门开关状态,SWC它并不关心ECU硬件是如何实现的传感器电流采集,也不关心MCU ADC采样精度(如10/12位)IoHwAb把采集的电压抽象为开关状态,使得Sensor SWC不依赖具体的ECU硬件。

nihaoljq2010的博客 1300

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

嵌入式linux和桌面linux的区别

嵌入式linux和桌面linux的区别主要区别是: 1. 硬件平台: 嵌入式Linux一般是Mips, ARM平台, 桌面Linux一般是x86平台。 2. 根文件系统 嵌入式Linux一般用UBIFS, yaffs2, jffs2. 桌面Linux一般用ext3。 3. shell不一样 嵌入式Linux一般用busybox. 桌面Linux一般用bash. 七款嵌入式Linux...

wangjun_eric的专栏 2565

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

linux和windows对比

Linux:由于不同的发行版和内核版本的差异,Linux可能需要更多的配置和定制才能获得最佳兼容性。但是,许多常见的硬件和软件都有对应的Linux驱动程序和版本。- Windows:Windows在过去曾被广泛利用的安全漏洞较多,但微软加大了安全性的投入,并提供了许多安全功能和更新。- Windows:Windows拥有微软官方的技术支持和社区,用户可以通过官方文档、论坛和知识库获得帮助。- Windows:Windows拥有较多的商业软件和游戏支持,因为它是主要的操作系统之一。

网络战争的博客 2958

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Linux基础——linux和gcc的介绍

一. 为什么要用linux? 二.GCC的介绍和使用

众荷喧哗 7343

linux命令计算某一列值的和

linux命令计算某一列值的和: cat file_name | awk '{sum+=$1} END {print sum}

newbeedaly的博客 5057

Linux进程和线程的区别和联系

Linux中,线程是CPU调度和分派的基本单位,进程是分配资源的基本单位(操作系统)

qq_44846784的博客 2490

linux的认识和理解

一、Linux操作系统与不同发行版本特点 1、Linux操作系统介绍 Linux,全称GNU/Linux,是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它除了在服务器方面保持着强劲的发展势头以外,在个人电脑、嵌入式系统上都有着长足的进步。使用者不仅可以直观地获取该操作系统的实现机制,而且可以根据自身的需要来修改完善Linux,使其最大化地适应用户的需要。

qq_43245691的博客 2626
上一篇: Java帝国之泛型
下一篇: 小心,别被今日头条给困住了!
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值