人这一生都是在不断地学习,不断地进步中度过的,刚开始学习任何一门知识的时候,我们都习惯性的称自己为菜鸟,觉得自己对这方面的知识欠缺,水平很low,我也是如此。但我擅长总结,对于自己学习的新知识,总结学习中的学习经验心得,慢慢提升自己,才能从一个菜鸟升级到大虾。虽然这个过程是艰辛的,但是任何成功都缺不了坚持和付出,没有人可以不劳而获,怎样才能使平凡的自己变得不平凡,那就是要努力。这段时间我一直在学Linux,那么今天,我就谈谈我一个Linux菜鸟的学习心得。
首先说说我为何要学习Linux。其实,接触到Linux也是一个偶然的机会,说实话,我之前对计算机并不是很感冒,觉得会一些基本的操作就好了,没必要懂得很多,懂得很多的都是计算机行业的专业人士,我又不是专门学习计算机的,但上了大学后,我发现身边的人对于计算机玩都挺熟练的,他们说的好多应用我都不懂,瞬间觉得自己好菜,好像什么都不懂似的。于是开始学习一些电脑的知识,这个时候我的一个好朋友就极力推荐我学习Linux,他给我说了好多Linux的用处及好处,可惜当时的我还是觉得这个太高大上了,我就把基本操作搞熟练了就行了,当时也就没放在心上,直到前段时间电脑上要弄一个程序,我自己搞不定,就找同学帮忙,他就用Linux系统帮我弄的,这时候我才知道它的用处,也想起来之前就有朋友推荐,自己怎么就没学习呢,要是之前认识到它的大用处,听从朋友的意见去学习,现在也就不用麻烦同学了。于是我就上网查Linux相关的知识,先对其有个大致的了解,又去问精通Linux的同学,怎么去高效的学习。他极力向我推荐了刘遄老师的《Linux 就该这么学》这本书,他说他就是通过这本书入门的,上边的知识点很全面,并且通俗易懂,现在已经达到大虾级别了。于是,我去图书馆借到了这本书,确实如同学描述,内容很是全面透彻,这让怕学新东西的我出奇的没有望而却步,而是很期待去学习。
确定了要好好学习,我就抱着必学成的心态去制定学习计划,一天拿出两个小时去学习Linux知识,把每个板块规划好。比如,今天学习板块部署虚拟环境安装Linux系统 ,明天学习板块新手必须掌握的Linux命令,后天学习管道符、重定向与环境变量,周末再来个一周学习总结。下一周再开始新的学习课程,周末再总结一周所学,如此循环往复,知识自然而然的就记得很深刻了。而且,我不仅仅停留在理论知识学习阶段,而是每学完一个板块或者几个板块后,我会真正的去应用到实际操作中,把理论知识应用到实际,达到学以致用的效果。由于我不能把每天所有的时间都拿去学习Linux,所以,整个学习过程可能持续的久些,但是每天不能断,要保持每天最起码两个小时的学习时间,而且是完整的两个小时,不能学一会儿玩一会儿,那样下来,结果会不好,思绪容易被打乱,会是事倍功半的效果。学习是一个坚持的过程,不能中间遇到问题就放弃或者就逃避,要去积极的解决,解决了才有动力去进行下一个板块。经过几个月的理论学习加实际操作练习,现在的我已不算是一个菜鸟了,我可以掌握基本的性能操作了,遇到问题也可以自己去解决了,这让我很有成就感。而且,给我增加了很大的动力去学习新的知识,让我朝着更积极的方向发展,我不会再一遇到问题就选择逃避了,增加了自信心。真的是这样,学到的东西越多,自信心就越强,整个人就变得越来越好。
var result = new HttpRequester("https://www.bsylept.com") // 使用 GET 方式请求 https://weihanli.xyz
.Execute(); // 返回 responseText
System.Console.WriteLine(result);
// 使用 POST 方法请求 https://www.baishenyvip.com .weihanli.xyz/Account/LogOn
var loginResult = new HttpRequester(www.michenggw.com"https://www.dasheng178.com .weihanli.xyz/Account/LogOn", HttpMethod.Post)
.WithHeaders(new Dictionary<string, string>()
{
{ "X-Requested-With", "XMLHttpRequest" },
}) // 设置请求头
// .AjaxRequest(true)
// 设置 Referer,在做爬虫时会比较有用,还可以通过 WithProxy("proxyUrl") 设置代理
.WithReferer("https://accounting.weihanli.xyz/Account/Login?ReturnUrl=%2F")
// 手动设置 UserAgent,默认会随机设置一个 UA
.WithUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36")
.WithFormParameters(new Dictionary<string, string>()
{
{"Username","liweihan" },
{"Password", "112233" },
{"RememberMe","false" }
}) // 设置 post 的 form 参数
// 获取返回的 responseText,并 json 反序列化为一个强类型的Model
.Execute<WeihanLi.Common.Models.JsonResultModel<bool>>();
System.Console.WriteLine(loginResult.ToJson());
// 上传文件示例
var uploadFileResponse = new HttpRequester(www.yongshi123.cn"https://graph.baidu.com/upload", HttpMethod.Post)
.WithFile($@"{System.Environment.GetEnvironmentVariable("USERPROFILE")}www.dfgjpt.com\Pictures\4e6ab53e383863ed4d15252039f70423.jpg", "image", new Dictionary<string, string>()
{
{ "tn","pc" },
{ "from","pc" },
{ "image_source","PC_UPLOAD_SEARCH_FILE" },
{ "range","{\"page_from\": \"searchIndex\"}" },
}) // 设置上传文件,并设置其它 form 参数信息
.WithReferer("https://baidu.com/") // 设置 referer
.WithUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36")
.ExecuteForResponse(www.meiwanyule.cn); // 获取一个 HttpWebResponse 对象,可以使用 StatusCode/ ResponseHeader 等信息
System.Console.WriteLine(www.dfgjpt.com$"Response status:{uploadFileResponse.StatusCode}, result:{uploadFileResponse.ReadToEnd()}");
More#
除了 Header/Referer/UserAgent 之外,还可以设置 Proxy,设置 Cookie,Ajax 请求 等信息,而且还可以直接 PostJson 示例如下:
Copy
new HttpRequester("requestUrl", HttpMethod.Post)
.WithProxy("proxyUrl") // 使用代理 //.WithProxy("url", "userName", "password") // 配置带密码的代理
.WithCookie(cookie) //带 Cookie 访问 //.WithCookie("url", cookie) // 只用指定路径的 cookie
.WithJsonParameter(entity) // post 一个 json 对象,content-type 会自动设置为 `application/json`
.AjaxRequest(true) // 设置该请求是 Ajax 请求
.Execute();
学习是一个坚持的过程,也是一个循序渐进的过程,任何知识都需要慢慢的从入门学习到熟练的掌握过程,心急是不行的;学习也需要好的方法和习惯的,好的学习方法和习惯可以达到事半功倍的效果。学习任何知识或者是新事物都要认真集中精力,绝不能三天打鱼两天晒网,那样不仅学不好,还会打击学习的积极性,长此以往,会使整个人的自信心降低。所以,如果决定学习某种知识,就全心全意投入吧,制定好的学习计划,明确学习的目标,朝着这个目标前进,加油!