“Linux-2026-fall”的版本间的差异
跳到导航
跳到搜索
(→板书和笔记) |
(→板书和笔记) |
||
| 第86行: | 第86行: | ||
如何把正在运行的进程改为后台:ctrl+z suspended/stopped?; bg | 如何把正在运行的进程改为后台:ctrl+z suspended/stopped?; bg | ||
</nowiki> | </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周) === | === Lesson 7(2026.10.26;第7周) === | ||
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