Linux-2026-fall

来自SUDA-HLT
跳到导航 跳到搜索

课程安排

  • 老师: 李正华
  • 助教:顾天宇
  • 计24计科1班,计24计科2班(大三上)
  • 专业选修课
  • 上课时间和地点
    • QQ群:705869759
    • 理论课:周一 6-7节 14:00-15:35 逸夫楼334 【1-17周】
    • 实践课:周三 1-2节 8:00-9:35 理工楼243 【单周】
  • 课程成绩构成(拟):平时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 是数组了】



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