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

来自SUDA-HLT
跳到导航 跳到搜索
(→‎TODO)
第76行: 第76行:
 
</nowiki>
 
</nowiki>
  
−
=== TODO ===  
+
=== TODO或者就不讲了 ===  
  
 
shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容)
 
shell使用技巧,如 tab 补全,可以晚点讲(2025 年 Lesson 4的内容)

2026年10月12日 (一) 04:51的版本

课程安排

  • 老师: 李正华
  • 助教:顾天宇
  • 计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的内容)

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