“Linux-2026-fall”的版本间的差异
跳到导航
跳到搜索
(→板书和笔记) |
|||
| (未显示2个用户的16个中间版本) | |||
| 第1行: | 第1行: | ||
== 课程安排 == | == 课程安排 == | ||
| − | * 老师: [http://web.suda.edu.cn/zhli13/ 李正华 | + | * 老师: [http://web.suda.edu.cn/zhli13/ 李正华] |
* 助教:顾天宇 | * 助教:顾天宇 | ||
* 计24计科1班,计24计科2班(大三上) | * 计24计科1班,计24计科2班(大三上) | ||
* 专业选修课 | * 专业选修课 | ||
* 上课时间和地点 | * 上课时间和地点 | ||
| + | ** QQ群:705869759 | ||
** 理论课:周一 6-7节 14:00-15:35 逸夫楼334 【1-17周】 | ** 理论课:周一 6-7节 14:00-15:35 逸夫楼334 【1-17周】 | ||
| − | ** 实践课:周三 1-2节 8:00-9:35 | + | ** 实践课:周三 1-2节 8:00-9:35 理工楼238 【单周】 |
* 课程成绩构成(拟):平时10%(考勤等)、实验成绩30%(实验报告、随堂考试)、期末60%(闭卷) | * 课程成绩构成(拟):平时10%(考勤等)、实验成绩30%(实验报告、随堂考试)、期末60%(闭卷) | ||
| + | |||
== 注意事项 == | == 注意事项 == | ||
* <span style="color: #ff0000;">上机课做学习无关的事情,发现则平时和实验成绩为0 </span> | * <span style="color: #ff0000;">上机课做学习无关的事情,发现则平时和实验成绩为0 </span> | ||
| 第25行: | 第27行: | ||
* 跟阿铭学Linux 李世明 人民邮电出版社 【难度适中,我们只学前半部分】 | * 跟阿铭学Linux 李世明 人民邮电出版社 【难度适中,我们只学前半部分】 | ||
| + | |||
| + | |||
| + | |||
| + | == 板书和笔记 == | ||
| + | |||
| + | === TODO === | ||
| + | |||
| + | <nowiki> | ||
| + | |||
| + | arr+=(3) 【数组增加一个元素】 | ||
| + | |||
| + | b=($(cat a.txt)) 【外面的()必须有,否则 b 就不是一个数组了。而是一个字符串了】 | ||
| + | |||
| + | a=($(echo 'a b')) 【a 是一个数组了】 | ||
| + | |||
| + | read -a arr <<< 'a b c' 【读入数组,arr 会包含三个元素,默认空白符为分隔符】 | ||
| + | |||
| + | IFS=',' read -a arr <<< $x 【默认是空格,IFS 可以改】【不会跨行的】 | ||
| + | |||
| + | IFS='\n' read -a arr < a.txt 【不会跨行的,只会处理第一行??】 | ||
| + | |||
| + | read x y z <<< '1 2 3' 【第三个变量】 | ||
| + | |||
| + | read -a arr < a.txt 【只处理第一行】 | ||
| + | IFS=',' | ||
| + | while read -a arr; do echo ${arr[1]}; done < a.txt 【每一行输出一次】 | ||
| + | |||
| + | while read name; do echo $name; done < a.txt 【read 和重定向的配合】 | ||
| + | |||
| + | while read -d ',' name; do echo $name; done < a.txt 【-d 是 delimiter,默认是换行符,没遇到一个 delimiter,就会返回一个,最后一个元素后面必须有 delimiter】 | ||
| + | a.txt: a,b,c, | ||
| + | |||
| + | |||
| + | awk 中变量直接写,不用取值符,如 print x, y, z | ||
| + | |||
| + | awk 'BEGIN {FS=",";OFS="#"}; {print $1, $2}' a.txt | ||
| + | |||
| + | awk -F',' 'BEGIN {OFS="#"}; {print $1, $2}' a.txt | ||
| + | |||
| + | awk -F'\n\r' '{print NF}' a.txt 【每一行一个记录,每个记录只有一个 field,因此会输出多个 1,一行对应一个】 | ||
| + | |||
| + | |||
| + | sed 's/a/A/g' <<< 'aaa' 字符串的重定向,很有用,应该讲! | ||
| + | |||
| + | a=($(sed 's/,/ /g' <<< 'a,b')) 【a 是数组了】 | ||
| + | |||
| + | |||
| + | </nowiki> | ||
| + | |||
| + | === TODO或者就不讲了 === | ||
| + | |||
| + | <nowiki> | ||
| + | shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容) | ||
| + | |||
| + | 2025 年 Lesson 7,板书的图的顺序有问题: | ||
| + | vi: set !pwd r!ls ... | ||
| + | 如何kill后台运行的进程: 1) top; Ki_LL 2) jobs; fg 1; ctrl+C强制ki_LL | ||
| + | 如何把正在运行的进程改为后台:ctrl+z suspended/stopped?; bg | ||
| + | </nowiki> | ||
| + | |||
| + | === Lesson 8(2026.11.2;第8周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week8-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * sort、wc、unique、tee | ||
| + | * filter命令特点 | ||
| + | * egrep、Regular Expression | ||
| + | * 元字符、字符类 | ||
| + | * 重复、选择、拼接 | ||
| + | |||
| + | |||
| + | |||
| + | === Lesson 7(2026.10.26;第7周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week7-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * 关于LLM使用的思考 | ||
| + | * 输入重定向 | ||
| + | * 管道 pipeline | ||
| + | |||
| + | === Lesson 6(2026.10.19;第6周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week6-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * VI编辑器 | ||
| + | * 通配符、元字符、字符类 | ||
| + | * 重定向、文件句柄 | ||
| + | * 所使用到的命令 | ||
| + | 1998 ls *.py | ||
| + | 1999 man tar | ||
| + | 2000 tar -czvf mypy.tar.gz *.py | ||
| + | 2001 ls -l *.py *.tar.gz | ||
| + | 2002 ls *.py | ||
| + | 2003 ls /bin/??????? | ||
| + | 2004 ls /bin/??????[a-g] | ||
| + | 2005 ls /root | ||
| + | 2006 ls a.txt | ||
| + | 2007 vi a.txt | ||
| + | 2008 ls /root > a.txt | ||
| + | 2009 cat a.txt | ||
| + | 2010 cat b.txt | ||
| + | 2011 ls /root 2> a.txt | ||
| + | 2012 vi a.txt | ||
| + | 2013 ls *.py /root 2> a.txt >&2 | ||
| + | |||
| + | |||
| + | === Lesson 5(2026.10.12;第5周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week5-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * vim基础使用、基础概念 | ||
| + | * 删除、复制、粘贴、替换、撤销、重做的操作 | ||
| + | * 普通模态、插入模态、末行模态、视图模态 | ||
| + | * 末行模态下的一些命令 | ||
| + | |||
| + | === Lesson 4(2026.10.10;第4周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week4-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * 命令类型、内部命令、外部命令 | ||
| + | * PATH、alias、自动补全 | ||
| + | * cat、less、more、分屏下的按键操作 | ||
| + | * 文件(目录)操作、touch、vi、cp、mv、rm | ||
| + | * 所使用到的命令 | ||
| + | 1996 type cd ls cp | ||
| + | 1997 echo $空白PATH (替换"空白"为"") | ||
| + | 1998 ls /sbin/ | ||
| + | 1999 echo $空白PATH (替换"空白"为"") | ||
| + | 2000 alias ll='ls -l' | ||
| + | 2001 ll | ||
| + | 2002 less words | ||
| + | 2003 du -sh xxx* yyy* | ||
| + | 2004 rm -r yyy2 | ||
| + | 2005 rm -r xxx2 | ||
| + | 2006 cp -r xxx yyy | ||
| + | 2007 du -sh xxx* yyy* | ||
| + | 2008 cp -r xxx yyy | ||
| + | 2009 du -sh xxx* yyy* | ||
| + | 2010 mv yyy zzz | ||
| + | 2011 du -sh xxx* yyy* zzz* | ||
| + | |||
| + | |||
| + | === Lesson 3(2026.9.22;第3周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week3-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * shell脚本 | ||
| + | * linux目录结构、相对路径、绝对路径 | ||
| + | * ls命令参数 | ||
| + | * 三个时间戳timestamp | ||
| + | * man命令、man -k | ||
| + | * 所使用到的命令 | ||
| + | 1996 ls | ||
| + | 1997 pwd | ||
| + | 1998 cd .. | ||
| + | 1999 ls | ||
| + | 2000 cd .. | ||
| + | 2001 ls | ||
| + | 2002 cd bin | ||
| + | 2003 ls ls | ||
| + | 2004 ls -l ls | ||
| + | 2005 ls -l cp | ||
| + | 2006 cd | ||
| + | 2007 ls | ||
| + | 2008 cd .. | ||
| + | 2009 ls | ||
| + | 2010 cd .. | ||
| + | 2011 ls | ||
| + | 2012 ls -S # 默认从大到小排序 | ||
| + | 2016 ls -Sr | ||
| + | 2017 cd | ||
| + | 2018 cd linux/ | ||
| + | 2019 ls | ||
| + | 2020 history | ||
| + | 2021 cd .. | ||
| + | 2022 stat cmdline-arg.py | ||
| + | 2023 cat cmdline-arg.py | ||
| + | 2024 stat cmdline-arg.py | ||
| + | 2025 ls -ltu *py | ||
| + | 2026 ls -ltc *py | ||
| + | 2027 ls -lt *py | ||
| + | 2028 ls /bin | ||
| + | 2029 ls -l /bin | ||
| + | 2030 ls -ld /bin | ||
| + | 2031 ls -ld | ||
| + | 2032 ls -l | ||
| + | 2033 ls -ld /bin | ||
| + | 2034 ls -ld / | ||
| + | 2035 ls -l / | ||
| + | 2037 ls --color=never | ||
| + | 2038 ls --color=always | ||
| + | 2039 man ls | ||
| + | 2040 man man | ||
| + | 2041 whereis printf | ||
| + | 2042 printf "%10s%5d" hi 9 | ||
| + | |||
| + | === Lesson 2(2026.9.14;第2周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week2-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * shell基本使用、父shell、子shell | ||
| + | * Shell提示符、ls命令、cd命令 | ||
| + | * 命令语法、命令行参数、python的sys.argv接收参数 | ||
| + | * 所使用到的命令 | ||
| + | 1998 bc | ||
| + | 1999 echo 'hi' | ||
| + | 2000 x=7 | ||
| + | 2001 y='hello world' | ||
| + | 2002 echo $x | ||
| + | 2003 echo $y | ||
| + | 2004 echo $$ | ||
| + | 2005 bash | ||
| + | 2006 /bin空白/echo $$ (替换"空白"为"") | ||
| + | 2007 man echo | ||
| + | 2008 ls | ||
| + | 2009 ls -l | ||
| + | 2010 cd linux/ | ||
| + | 2011 ls | ||
| + | 2012 ls -l | ||
| + | 2013 cd awk/ | ||
| + | 2014 ls | ||
| + | 2015 ls -l | ||
| + | 2016 ls -a | ||
| + | 2017 ls | ||
| + | 2018 s | ||
| + | 2019 ls -a | ||
| + | 2020 cd .. | ||
| + | 2021 find cmd | ||
| + | 2022 find . -name '*.py' | ||
| + | 2023 vi cmdline-arg.py | ||
| + | |||
| + | |||
| + | === Lesson 1(2026.9.7;第1周) === | ||
| + | |||
| + | <gallery> | ||
| + | Linux-2026-fall-week1-merged.jpg | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | * 课程介绍、个人介绍 | ||
| + | * Linux介绍、安装 | ||
| + | * 运行状态、init | ||
| + | * 图形界面GUI、文字界面CLI | ||
| + | * 系统组成、shell初介绍 | ||
| + | * 所使用到的命令 | ||
| + | 1984 ps afx | egrep gnome | ||
| + | 1985 ps afx | egrep kde | ||
| + | 1986 sudo init 3 | ||
| + | 1988 ps afx | egrep bash | ||
| + | 1989 exit | ||
| + | 1990 man init | ||
| + | 1991 echo $SHELL | ||
| + | 1992 ps afx | egrep bash | ||
| + | 1993 bash | ||
| + | 1994 ps afx | egrep bash | ||
| + | 1995 exit | ||
2026年11月3日 (二) 02:57的最新版本
课程安排
- 老师: 李正华
- 助教:顾天宇
- 计24计科1班,计24计科2班(大三上)
- 专业选修课
- 上课时间和地点
- QQ群:705869759
- 理论课:周一 6-7节 14:00-15:35 逸夫楼334 【1-17周】
- 实践课:周三 1-2节 8:00-9:35 理工楼238 【单周】
- 课程成绩构成(拟):平时10%(考勤等)、实验成绩30%(实验报告、随堂考试)、期末60%(闭卷)
注意事项
- 上机课做学习无关的事情,发现则平时和实验成绩为0
自学资料
参考书
- 有问题,问大模型!
- Unix & Linux大学教程 哈恩(Harley Hahn) (作者), 张杰良 (译者) 【基础内容、讲得比较细;图书馆可以借】
- 跟阿铭学Linux 李世明 人民邮电出版社 【难度适中,我们只学前半部分】
板书和笔记
TODO
arr+=(3) 【数组增加一个元素】
b=($(cat a.txt)) 【外面的()必须有,否则 b 就不是一个数组了。而是一个字符串了】
a=($(echo 'a b')) 【a 是一个数组了】
read -a arr <<< 'a b c' 【读入数组,arr 会包含三个元素,默认空白符为分隔符】
IFS=',' read -a arr <<< $x 【默认是空格,IFS 可以改】【不会跨行的】
IFS='\n' read -a arr < a.txt 【不会跨行的,只会处理第一行??】
read x y z <<< '1 2 3' 【第三个变量】
read -a arr < a.txt 【只处理第一行】
IFS=','
while read -a arr; do echo ${arr[1]}; done < a.txt 【每一行输出一次】
while read name; do echo $name; done < a.txt 【read 和重定向的配合】
while read -d ',' name; do echo $name; done < a.txt 【-d 是 delimiter,默认是换行符,没遇到一个 delimiter,就会返回一个,最后一个元素后面必须有 delimiter】
a.txt: a,b,c,
awk 中变量直接写,不用取值符,如 print x, y, z
awk 'BEGIN {FS=",";OFS="#"}; {print $1, $2}' a.txt
awk -F',' 'BEGIN {OFS="#"}; {print $1, $2}' a.txt
awk -F'\n\r' '{print NF}' a.txt 【每一行一个记录,每个记录只有一个 field,因此会输出多个 1,一行对应一个】
sed 's/a/A/g' <<< 'aaa' 字符串的重定向,很有用,应该讲!
a=($(sed 's/,/ /g' <<< 'a,b')) 【a 是数组了】
TODO或者就不讲了
shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容) 2025 年 Lesson 7,板书的图的顺序有问题: vi: set !pwd r!ls ... 如何kill后台运行的进程: 1) top; Ki_LL 2) jobs; fg 1; ctrl+C强制ki_LL 如何把正在运行的进程改为后台:ctrl+z suspended/stopped?; bg
Lesson 8(2026.11.2;第8周)
- sort、wc、unique、tee
- filter命令特点
- egrep、Regular Expression
- 元字符、字符类
- 重复、选择、拼接
Lesson 7(2026.10.26;第7周)
- 关于LLM使用的思考
- 输入重定向
- 管道 pipeline
Lesson 6(2026.10.19;第6周)
- VI编辑器
- 通配符、元字符、字符类
- 重定向、文件句柄
- 所使用到的命令
1998 ls *.py 1999 man tar 2000 tar -czvf mypy.tar.gz *.py 2001 ls -l *.py *.tar.gz 2002 ls *.py 2003 ls /bin/??????? 2004 ls /bin/??????[a-g] 2005 ls /root 2006 ls a.txt 2007 vi a.txt 2008 ls /root > a.txt 2009 cat a.txt 2010 cat b.txt 2011 ls /root 2> a.txt 2012 vi a.txt 2013 ls *.py /root 2> a.txt >&2
Lesson 5(2026.10.12;第5周)
- vim基础使用、基础概念
- 删除、复制、粘贴、替换、撤销、重做的操作
- 普通模态、插入模态、末行模态、视图模态
- 末行模态下的一些命令
Lesson 4(2026.10.10;第4周)
- 命令类型、内部命令、外部命令
- PATH、alias、自动补全
- cat、less、more、分屏下的按键操作
- 文件(目录)操作、touch、vi、cp、mv、rm
- 所使用到的命令
1996 type cd ls cp 1997 echo $空白PATH (替换"空白"为"") 1998 ls /sbin/ 1999 echo $空白PATH (替换"空白"为"") 2000 alias ll='ls -l' 2001 ll 2002 less words 2003 du -sh xxx* yyy* 2004 rm -r yyy2 2005 rm -r xxx2 2006 cp -r xxx yyy 2007 du -sh xxx* yyy* 2008 cp -r xxx yyy 2009 du -sh xxx* yyy* 2010 mv yyy zzz 2011 du -sh xxx* yyy* zzz*
Lesson 3(2026.9.22;第3周)
- shell脚本
- linux目录结构、相对路径、绝对路径
- ls命令参数
- 三个时间戳timestamp
- man命令、man -k
- 所使用到的命令
1996 ls 1997 pwd 1998 cd .. 1999 ls 2000 cd .. 2001 ls 2002 cd bin 2003 ls ls 2004 ls -l ls 2005 ls -l cp 2006 cd 2007 ls 2008 cd .. 2009 ls 2010 cd .. 2011 ls 2012 ls -S # 默认从大到小排序 2016 ls -Sr 2017 cd 2018 cd linux/ 2019 ls 2020 history 2021 cd .. 2022 stat cmdline-arg.py 2023 cat cmdline-arg.py 2024 stat cmdline-arg.py 2025 ls -ltu *py 2026 ls -ltc *py 2027 ls -lt *py 2028 ls /bin 2029 ls -l /bin 2030 ls -ld /bin 2031 ls -ld 2032 ls -l 2033 ls -ld /bin 2034 ls -ld / 2035 ls -l / 2037 ls --color=never 2038 ls --color=always 2039 man ls 2040 man man 2041 whereis printf 2042 printf "%10s%5d" hi 9
Lesson 2(2026.9.14;第2周)
- shell基本使用、父shell、子shell
- Shell提示符、ls命令、cd命令
- 命令语法、命令行参数、python的sys.argv接收参数
- 所使用到的命令
1998 bc 1999 echo 'hi' 2000 x=7 2001 y='hello world' 2002 echo $x 2003 echo $y 2004 echo $$ 2005 bash 2006 /bin空白/echo $$ (替换"空白"为"") 2007 man echo 2008 ls 2009 ls -l 2010 cd linux/ 2011 ls 2012 ls -l 2013 cd awk/ 2014 ls 2015 ls -l 2016 ls -a 2017 ls 2018 s 2019 ls -a 2020 cd .. 2021 find cmd 2022 find . -name '*.py' 2023 vi cmdline-arg.py
Lesson 1(2026.9.7;第1周)
- 课程介绍、个人介绍
- Linux介绍、安装
- 运行状态、init
- 图形界面GUI、文字界面CLI
- 系统组成、shell初介绍
- 所使用到的命令
1984 ps afx | egrep gnome 1985 ps afx | egrep kde 1986 sudo init 3 1988 ps afx | egrep bash 1989 exit 1990 man init 1991 echo $SHELL 1992 ps afx | egrep bash 1993 bash 1994 ps afx | egrep bash 1995 exit