作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
大家好,日拱一卒,我是梁唐。
不知道大家有没有这样一种体验,在实际写代码或者是工作、做项目的过程当中经常被一些简单的问题难住。比如vim的一些命令不熟悉,或者是
*本站广告为第三方投放,如发生纠纷,请向本站索取第三方联系方式沟通
作者 | 梁唐
出品 | 公众号:Coder梁(ID:Coder_LT)
大家好,日拱一卒,我是梁唐。
不知道大家有没有这样一种体验,在实际写代码或者是工作、做项目的过程当中经常被一些简单的问题难住。比如vim的一些命令不熟悉,或者是
出乎我们意料的是,虽然我们使用了sudo命令,但仍然报错了。
这是shell中一个我们需要了解非常重要的信息,像是|这样的管道命令,或者是>, 分隔的命令,并不是一个单独的程序。echo并不知道|命令的存在,它仅仅是读入和输出。
在上面的例子中,shell在echo 3时以root执行,而打开brightness文件时没有,仍然是普通用户。所以被拒绝了,如果我们想要以root执行写入,我们可以这样改写命令:
代码语言:javascript代码运行次数:0运行复制
tee程序可以同时写入/sys文件,并且以root身份运行,所以不会受到权限限制。
你可以控制/sys下的一些文件来娱乐或实现一些功能。比如说开启一些LED指示灯,下列代码会开启scrolllock指示灯。
代码语言:javascript代码运行次数:0运行复制
Next steps
现在你已经了解了shell的一些基本应用,可以来完成一些基础功能了。
你应该可以跳转到任何你感兴趣的路径下,并且能够使用基础命令的绝大多数功能了。在下节课当中,我们将会接触到更多有趣的命令,并且使用shell来实现更加复杂的一些任务。
Exercises
这门课每节课后都会附带一些练习,有一些是给定了指定的任务去完成,也有一些是开放式的任务,比如说尝试使用X或Y程序。我们强烈推荐你能亲自尝试。
这门课我们需要使用Unix shell,比如Bash或者Zsh。如果你使用Linux或者是macOS,那你并不需要为此烦恼。如果你使用的是Windows,你需要确保你运行的不是cmd.exe或者PowerShell。你可以使用Windows Subsystem for Linux或者使用Linux虚拟机来使用Unix风格的命令行。为了确保你使用了正确的shell,你可以尝试运行命令echo $SHELL,如果显示的结果是/bin/bash或者/usr/bin/zsh,那么久说明你处在了正确的环境在/tmp路径下创建missing文件夹使用man程序来调研touch程序使用touch在missing下创建semester文件在文件当中写入以下两行,一次写入一行:代码语言:javascript代码运行次数:0运行复制
第一行是Bash中的注释,Bash中以#开启注释。!即使在双引号当中也有特殊含义。在Bash当中,单引号和双引号是有区别的,你可以调研一下它们的区别
尝试运行这个文件,你可以使用./semester来运行。使用ls命令来探究不能运行的原因使用sh命令,将semester作为参数传入运行程序,如sh semester,为什么这样可以运行,为什么./semester不行?调研chmod程序,使用man chmod使用chmod来让./semester可行。你的shell怎么会知道这个文件应该用sh运行呢?了解一下shebang获得更多信息使用|和>将semester输出结果中 “last modified” 日期写入到你home下的last-modified.txt中编写命令读取/sys中你笔记本电源的电量或者笔记本CPU的温度,如果你是macOS用户,你的
img
直接运行会报错,因为没有运行权限。

img
使用命令给semester添加运行权限:
代码语言:javascript代码运行次数:0运行复制
shell能知道这个文件使用什么程序执行是因为我们在第一行加上了特殊的注释:#!/bin/sh,这是指定了该文件执行的程序。
最后,将筛选数据写入文件:
代码语言:javascript代码运行次数:0运行复制
喜欢本文的话不要忘记三连~
以上就是听说你入行好几年还只会cd和ls,麻省理工开了这门课……的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/565707.html
微信扫一扫
支付宝扫一扫