“Linux-2026-fall”的版本间的差异

来自SUDA-HLT
跳到导航 跳到搜索
 
(未显示2个用户的3个中间版本)
第78行: 第78行:
 
=== TODO或者就不讲了 ===  
 
=== TODO或者就不讲了 ===  
  
 +
<nowiki>
 
shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容)
 
shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容)
  
−
vi: set !pwd r!ls ...(2025 年 Lesson 7,板书的图的顺序有问题)
+
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周) ===
 
=== Lesson 5(2026.10.12;第5周) ===

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