“Linux-2020-spring-zhenghua”的版本间的差异
(→批卷记录) |
|||
| (未显示同一用户的7个中间版本) | |||
| 第72行: | 第72行: | ||
练习题、实践题、挑战题 | 练习题、实践题、挑战题 | ||
| + | |||
| + | * 2021.2.14 | ||
| + | 学和做,要一半一半。做出来、做对、做好 | ||
| + | 我们的教育、传统都轻视实践,在科学技术上的落后,和这个不无关系。 | ||
== Linux的安装和简史 == | == Linux的安装和简史 == | ||
| 第85行: | 第89行: | ||
注意,job编号和pid是不同的 | 注意,job编号和pid是不同的 | ||
| + | <nowiki> | ||
陈强: | 陈强: | ||
| 第106行: | 第111行: | ||
find ~ -mtime +1 一天之前 | find ~ -mtime +1 一天之前 | ||
find ~ -mtime -1 一天之内 | find ~ -mtime -1 一天之内 | ||
| + | |||
| + | find -mtime +1 ok ls '{}' \; | ||
| + | |||
| + | 7天之内*未*修改的? -> 7天之前修改过的? | ||
| + | |||
| + | ctime不是访问时间。 | ||
| + | |||
| + | jason?还是Jack?设置口令修改时间有问题。 | ||
| + | |||
| + | useradd比较低级 | ||
| + | |||
| + | 窦晨辉: | ||
| + | |||
| + | ${name:-Hello} 如果name变量为空或者未定义,则返回字符串Hello(即默认)。name变量不发生变化。 | ||
| + | |||
| + | ${name[*]}和${name[@]}是一样的 | ||
| + | |||
| + | 7天以前修改过的 -atime +7 | ||
| + | |||
| + | #!/bin/bash | ||
| + | |||
| + | count=$# | ||
| + | echo $count | ||
| + | cmd=echo | ||
| + | while [ $count -gt 0 ] | ||
| + | do | ||
| + | cmd="$cmd \$$count" | ||
| + | count=`expr $count - 1` | ||
| + | echo $count | ||
| + | done | ||
| + | eval $cmd | ||
| + | |||
| + | 注意\$$count对应的是 $0 $1 .. | ||
| + | \$中backslash必须有,表示作为普通字符放到字符串中,但是$count会做值替换 | ||
| + | |||
| + | 田新宇: | ||
| + | |||
| + | shell中 "\n"是否作为换行符,取决于具体命令。 | ||
| + | "\$"表示一个包含$符号的字符串 | ||
| + | |||
| + | find /var/log -type f -mtime +7 -exec -ok rm {}\; | ||
| + | find . -name *.php -exec egrep "inclue" {} \; print | ||
| + | |||
| + | -maxdepth 0:只在目录本身找 1表示找完1层子目录就停止 | ||
| + | |||
| + | -mindepth 3:从第三层子目录开始找 | ||
| + | |||
| + | |||
| + | |||
| + | fg cat | ||
| + | fg sleep 跟命令名也是可以的 | ||
| + | |||
| + | |||
| + | 周京晶 | ||
| + | i=2 | ||
| + | echo ${$i}} 和 echo $2效果不同的 | ||
| + | eval "echo \$$i"是可以的 | ||
| + | |||
| + | args=($@) 这样是可以的,会将命令行参数复制给另一个数组变量 | ||
| + | |||
| + | |||
| + | chage 改变密码的时间限制 | ||
| + | -m 多少天内,不能再次修改(minimum) | ||
| + | -M 一个密码最多有效多少天 | ||
| + | -W 失效多少天之前,进行提醒 | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | </nowiki> | ||
| + | |||
| + | == 第7次作业 == | ||
| + | |||
| + | <nowiki> | ||
| + | 有的同学没有用vector<double>来存储 | ||
| + | |||
| + | 所有同学都没有想到,可以把parameter.txt可以转成double*num个连续double类型的二进制文件。读取时,一次性就可以读取。 | ||
| + | |||
| + | strtok这个函数很有意思,值得学习一下。 | ||
| + | |||
| + | |||
| + | |||
| + | </nowiki> | ||
| + | |||
| + | == 第7次作业 == | ||
2021年2月14日 (日) 04:49的最新版本
Linux 操作系统 (2020春) 课程主页(李正华班级)
前言
- Teacher: 李正华
- 助教:张宇、周厚全、李帅克、侯洋、周仕林(暂定)
- QQ群:828076948 Linux-2020-spring
- 雨课堂 网络授课,请同学们提前观看视频作为预习,如果观看速度慢,在QQ群里反馈,然后我再想办法。
- 2017级计算机图灵班学生
- 上课时间和地点:
- 周三3-4节:逸夫楼409 理论课;(10:10-12:00)
- 周四3-4节(单周):NIIT机房 上机课
- 成绩分布(待定):平时10-15分、实践20-25、期末
- 实验课
- 在csteaching上布置、提交、批改作业。需要vpn访问。
- 实验报告一定请上传Pdf文件。如果有代码作业,不要打包,直接逐一上传.sh .c .py等文件。
课程视频
- 如果同学想提前学习,可以看我2018年春的讲课笔记和视频: 2018年春季课程
其他
- 写给自己的话
- 上机课要安排助教,认真讲一下作业
- 内容不可能面面俱到,抓住重点(以及自己感觉最重要的知识点)即可,其他需要靠学生自己去探索
- 多鼓励学生自己思考
- 考虑基于自己的讲义,写一本很薄的书:Linux最基本基础讲义(这学期写起来吧)
- 十多年来使用经验、只讲最重要的最常用的;
- 鼓励同学们多思考、自己把事情想清楚;最重要的不是知道如何操作,敲命令,而是理解为什么这样,发展过程,感受技术发展的伟大
- 简明扼要
我在写教材:Linux基础与实践讲义
https://www.latexstudio.net/archives/category/latex-templates/book-template https://www.latexstudio.net/archives/51687.html
几本参考书
Linux入门很简单 (入门很简单丛书)
苏大出版社:http://www.sudapress.com/
http://www.cmpbook.com/index.php?id=150
非常好的一个问题和答复: https://tex.stackexchange.com/questions/302222/strategy-for-writing-a-book-using-latex
First of all, remind yourself every morning the KISS principle (Keep it simple, stupid).
Add only to the preamble what you really understand and what you really need. For instance, for the screen shots you will need the graphicx package. So, in the preamble (before of \begin{document}) you should add \usepackage{graphicx}. For compute code listing you can use listing(shell python c++都包括), minted, etc. if you do not want the simple verbatim environment for this. See What packages do people load by default in LaTeX? for some more essential packages in many documents.
Use a single file for small projects and subdocuments for huge projects. You can use \include{Introduction} to include a Introduction.tex chapter or \input{Something} if Something.tex is a smaller subdocument. See When should I use \input vs. \include?.
前言
为什么学习Linux?我们缺少实践人才,缺少Linux高手。联想到华为被制裁的事情,操作系统垄断的问题。我们的教育有问题,对实践重视不足,一方面是一部分老师自身实践不足,另一方面是对教学不重视。学生对学校的感情,主要靠点点滴滴教学培养。
肯定有不少错误。我自己理解的错误。会不断修改。
讲义追求的目标。
参考的资料,推荐的扩展阅读:几本书。
本书涵盖的范围(薄、内容精简,只讲我认为最有用的,扩展部分需要学生自己根据兴趣深入学习)
练习题、实践题、挑战题
- 2021.2.14
学和做,要一半一半。做出来、做对、做好 我们的教育、传统都轻视实践,在科学技术上的落后,和这个不无关系。
Linux的安装和简史
Linux图形界面,以及和Windows的主要区别
批卷记录
ctrl+z,让一个前台进程stop jobs bg job-id 让一个进程后台运行
注意,job编号和pid是不同的
陈强:
4(2/3均可)
shell中的引号种类?
单引号 双引号,主要区别是变量替换'$x'和"$x"不同
单引号和双引号中'\n',是否看成换行符,取决于命令本身。echo不作为换行,echo -e作为换行(支持backslash转义字符),printf不作为换行
ctime:file status changed
mtime: file data modified
atime: file accessed
find $HOME -mtime 0 最近24小时内
find ~ -mtime +1 一天之前
find ~ -mtime -1 一天之内
find -mtime +1 ok ls '{}' \;
7天之内*未*修改的? -> 7天之前修改过的?
ctime不是访问时间。
jason?还是Jack?设置口令修改时间有问题。
useradd比较低级
窦晨辉:
${name:-Hello} 如果name变量为空或者未定义,则返回字符串Hello(即默认)。name变量不发生变化。
${name[*]}和${name[@]}是一样的
7天以前修改过的 -atime +7
#!/bin/bash
count=$#
echo $count
cmd=echo
while [ $count -gt 0 ]
do
cmd="$cmd \$$count"
count=`expr $count - 1`
echo $count
done
eval $cmd
注意\$$count对应的是 $0 $1 ..
\$中backslash必须有,表示作为普通字符放到字符串中,但是$count会做值替换
田新宇:
shell中 "\n"是否作为换行符,取决于具体命令。
"\$"表示一个包含$符号的字符串
find /var/log -type f -mtime +7 -exec -ok rm {}\;
find . -name *.php -exec egrep "inclue" {} \; print
-maxdepth 0:只在目录本身找 1表示找完1层子目录就停止
-mindepth 3:从第三层子目录开始找
fg cat
fg sleep 跟命令名也是可以的
周京晶
i=2
echo ${$i}} 和 echo $2效果不同的
eval "echo \$$i"是可以的
args=($@) 这样是可以的,会将命令行参数复制给另一个数组变量
chage 改变密码的时间限制
-m 多少天内,不能再次修改(minimum)
-M 一个密码最多有效多少天
-W 失效多少天之前,进行提醒
第7次作业
有的同学没有用vector<double>来存储 所有同学都没有想到,可以把parameter.txt可以转成double*num个连续double类型的二进制文件。读取时,一次性就可以读取。 strtok这个函数很有意思,值得学习一下。