“Linux-2025-fall”的版本间的差异
跳到导航
跳到搜索
(→批试卷用到的) |
(→批试卷用到的) |
||
| 第49行: | 第49行: | ||
read -a arr <<< 'a b c' 【读入数组,arr 会包含三个元素,默认空白符为分隔符】 | read -a arr <<< 'a b c' 【读入数组,arr 会包含三个元素,默认空白符为分隔符】 | ||
| + | |||
| + | awk 中变量直接写,不用取值符,如 print x, y, z | ||
| + | |||
2026年1月12日 (一) 04:33的版本
课程安排
- 老师: 李正华
- 助教:周昊喆、郑书禾
- 计23计科1班,计23计科2班(大三上)
- 专业选修课
- 上课时间和地点
- 理论课:周一 3-4节 9:55-11:30 逸夫楼334 【1-17周】
- 实践课:周三 1-2节 8:00-9:35 理工楼243 【单周】
- 没上课的情况记录:
- 平时10%(考勤等)、实验成绩30%(实验报告、随堂考试)、期末60%(闭卷)
注意事项
- 上机课做学习无关的事情,发现则平时和实验成绩为0
自学资料
参考书
- Unix & Linux大学教程 哈恩(Harley Hahn) (作者), 张杰良 (译者) 【基础内容、讲得比较细;图书馆可以借】
- 跟阿铭学Linux 李世明 人民邮电出版社 【难度适中,我们只学前半部分】
- 鸟哥的Linux私房菜 基础学习篇(第三版)【我觉得讲得比较深,想深入学的同学可以考虑用】
批试卷用到的
awk 'BEGIN {FS=",";OFS="#"}; {print $1, $2}' a.txt
awk -F',' 'BEGIN {OFS="#"}; {print $1, $2}' a.txt
b=($(cat a.txt)) 【外面的()必须有,否则 b 就不是一个数组了。而是一个字符串了】
a=($(echo 'a b')) 【a 是一个数组了】
sed 's/a/A/g' <<< 'aaa' 字符串的重定向,很有用,应该讲!
a=($(sed 's/,/ /g' <<< 'a,b')) 【a 是数组了】
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,
read -a arr <<< 'a b c' 【读入数组,arr 会包含三个元素,默认空白符为分隔符】
awk 中变量直接写,不用取值符,如 print x, y, z
板书和笔记
TODO
find
top ps kill fg bg 等
11.24 12.1/8/15/22【五次课】
Lesson 15(2025.12.15;第16周)
- find、xargs
- 用户管理
- 压缩、解压缩
- 进程管理
- 随机数生成
- 所用到的指令:
1996 find . -mmin -20
1997 find . -mmin -20 -name '*.txt'
1998 cat a.txt | ls
2000 find . -name '*.txt'
2002 find . -name '*.txt' | ls -l
2003 find . -name '*.txt' -type f -size +5K | du -sh
2007 find . -maxdepth 1 -name 'a*.txt'
2008 find . -maxdepth 1 -name 'aa*.txt'
2010 find . -maxdepth 1 -name 'aa*.txt' -exec ls -l '{}' \;
2011 ls aaaa\ bbbb.txt
2012 ls -l aaaa\ bbbb.txt
2013 ls -l 'aaaa bbbb.txt'
2014 find . -maxdepth 1 -name 'aa*.txt' -exec ls -l '{}' +
Lesson 14(2025.12.08;第15周)
- 权限
- 时间戳
- 符号链接与硬链接
- 所用到的指令:
1998 ls -l a.txt 1999 chomd 777 a.txt 2000 chmod 777 a.txt 2001 ls -l 2002 ls -l a.txt 2003 ls -l 664 a.txt 2004 chmod 664 a.txt 2005 ls -l a.txt 2006 man umask 2007 man 3 umask 2008 vi aaa.txt 2009 ls -l aaa.txt 2010 man chown 2011 ls -i / 2012 ls -id / 2013 stat a.txt 2014 cat a.txt 2015 stat a.txt 2016 chmod o+x a.txt 2017 ls -l a.txt 2018 stat a.txt 2019 echo "hi" > a.txt 2020 stat a.txt 2021 vi a.txt 2022 stat a.txt 2023 ls -l a.txt 2024 chmod +x a.txt 2025 ls -lu a.txt 2026 ls -lc a.txt 2027 cat a.txt 2028 ls -lu a.txt 2029 date 2030 cat a.txt 2031 ls -lu a.txt 2032 ls -l a.txt 2033 cat a.txt 2034 ls -lu a.txt 2035 stat 2036 stat a.txt 2037 cat a.txt 2038 stat a.txt 2039 less a.txt 2040 stat a.txt 2041 vi a.txt 2042 stat a.txt 2043 stat en.dev.autotagMIRA.conll.dep 2044 head -n 2 en.dev.autotagMIRA.conll.dep 2045 stat en.dev.autotagMIRA.conll.dep 2046 ls -lu en.dev.autotagMIRA.conll.dep 2047 ls -s xxx/a.txt sln_a.txt 2048 ln -s xxx/a.txt sln_a.txt 2049 rm sln_a.txt 2050 ln -s xxx/a.txt sln_a.txt 2051 ls -l sln_a.txt xxx/a.txt 2052 ls -li sln_a.txt xxx/a.txt 2053 ls 2054 ls linux/ 2055 ln -s /home/zhli/linux/awk/ sln_awk 2056* 2057 ln -s /home/zhli/linux/awk/ sln_awk2 2058 ls -lid sln_a* 2059 ulink sln_awk2/ 2060 rm sln_awk2 2061 ls -lid sln_a* 2062 vi sln_awk/test.txt 2063 ls -lid sln_awk 2064 ls -lid sln_awk/ 2065 ls -lid sln_awk linux/awk/ 2066 ls a*.txt 2067 ls -l a*.txt 2068 ls -li a*.txt 2069 rm a_link.txt 2070 rm a_bak.txt 2071 ls -ltc 2072 ls -li a.txt 2073 ln a.txt a2.txt 2074 ln a.txt a_hardlink.txt 2075 ls -li a.txt a_hardlink.txt 2076 ls -d linux 2077 ls -dl linux 2078 mkdir linux/new_dir 2079 ls -dl linux 2080 history
Lesson 13(2025.12.01;第14周)
- 机械硬盘,文件系统 inode,block,superblock
- 挂载 mount
Lesson 12(2025.11.24;第13周)【随堂考试 3 道题】
- shell编程(循环,函数,命令行参数)
- 所用到的指令
1997 for x in `ls`; do echo $x; done
1998 a=(Ab Cd 12 34)
1999 for x in a; do echo $x; done
2000 for x in (Ab Cd 12 34)
2001 echo ${a[@]}
2002 for x in ${a[@]}; do echo $x; done
2004 find . -name '*func*'
2005 cp func-202405.sh func-202511.sh
2006 vi func-202
2007 vi func-202511.sh
2008 cat func-202511.sh
2009 bash func-202511.sh
Lesson 11(2025.11.17;第12周)
- shell编程,变量,环境变量
- test命令
- 变量运算
- 所用到的指令
1993 x=5
1994 y = 3
1995 y=3
1996 echo $x+$y
1997 echo ${x3}
1998 echo $x3
1999 echo $x35
2000 echo $x_3
2001 echo $x10
2002 echo ${x1}0
2003 echo $(($x+$y))
2004 man let
2005 help let
2006 let z=x+y
2007 echo $z
2008 a=(Ab Cd 12 34)
2009 echo $a
2010 echo ${a[0]}
2011 echo ${a[1]}
2012 echo ${#a[@]}
2013 bash
2014 echo $x
2015 export x
2016 echo $x
2017 bash
2018 echo $x
2019 bash
2020 test 9 -gt 7
2021 echo $?
2022 test 9 -gt 19
2023 echo $?
2024 [ 9 -gt 19 ]
2025 echo $?
2026 [ -z $x ]
2027 echo $?
2028 echo $x
2029 [ -z x ]
2030 echo $?
2031 [ -z ]
2032 echo $?
2033 [ 9 -gt 7 -a 9 -gt 19 ]
2034 echo $?
2035 [ 9 -gt 7 ] && [ 9 -gt 19 ]
2036 echo $?
2037 help test
2038 w
2039 x=`ls /bin`
2040 echo $x
2041 y=$(ls /bin)
2042 echo $y
2043 echo ${#x}
2044 read -p 'xxx: ' x
2045 echo $x
2046 read -p 'xxx: ' x
2047 echo $x
2048 help read
2049 read x y
2050 echo $x $y
2051 echo $x
2052 echo $y
Lesson 10(2025.11.10;第11周)
- sed命令
- awk命令
- 所使用到的命令
1992 egrep 'hello' a.txt 1993 egrep -n 'hello' a.txt 1994 egrep -no 'hello' a.txt 1995 egrep 'hello' 1996 egrep '\w\w\w' 1997 egrep 'punct:' 1998 egrep 'digit:' 1999 egrep '[a-z]*' 2000 egrep '[a-z]{3}' 2001 man egrep 2002 egrep '(abc)|(ABC)' 2003 egrep '^[0-9]{3}' 2004 egrep '^.....$' 2005 ls (a|b).txt 2006 ls a|b.txt 2007 egrep '[a-z]{3}\1' 2008 egrep '([a-z]{3})\1' 2009 tr 'a-z' 'A-Z' 2010 tr 'za-y' 'A-Z' 2011 man tr 2012 tr -d 'a-z' 2013 tr -s 'a-z' 2014 tr -s -C 'a-z'
测试样例如下:
awk常用内置函数:
Lesson 9(2025.11.3;第10周)
- 正则表达式
- tr命令
- 所使用到的命令
1992 egrep 'hello' a.txt 1993 egrep -n 'hello' a.txt 1994 egrep -no 'hello' a.txt 1995 egrep 'hello' 1996 egrep '\w\w\w' 1997 egrep 'punct:' 1998 egrep 'digit:' 1999 egrep '[a-z]*' 2000 egrep '[a-z]{3}' 2001 man egrep 2002 egrep '(abc)|(ABC)' 2003 egrep '^[0-9]{3}' 2004 egrep '^.....$' 2005 ls (a|b).txt 2006 ls a|b.txt 2007 egrep '[a-z]{3}\1' 2008 egrep '([a-z]{3})\1' 2009 tr 'a-z' 'A-Z' 2010 tr 'za-y' 'A-Z' 2011 man tr 2012 tr -d 'a-z' 2013 tr -s 'a-z' 2014 tr -s -C 'a-z'
- 命令演示截图
Lesson 8(2025.10.27;第9周)
- 重定向输入,重定向输出
- 前台运行程序与后台运行程序
- Linux哲学
- 管道的应用,以及sort,uniq,wc,egrep命令等。
- 所使用到的命令
1990 ls > a.txt 1991 vi a.txt 1992 ls /root > a.txt 1993 vi a.txt 1994 help fg 1995 vi a.txt 1996 less a.txt 1997 bg 1998 jobs 1999 fg 1 2000 cat 2001 vi a.txt 2002 cat a.txt 2003 cat < a.txt 2004 find . -name 'words' 2005 vi words 2006 find . -name 'name' 2007 find . -name '*name*' 2008 vi names 2009 mv names names.txt 2010 cat names 2011 cat names.txt 2012 cat names.txt | sort 2013 cat names.txt | sort | uniq 2014 cat names.txt | sort | uniq -c 2015 cat names.txt | sort | uniq -c | sort -n -k 1 2016 cat names.txt | sort | uniq -c | sort -rn -k 1 2017 vi names.txt 2018 cat names.txt | sort | uniq -c | sort -rn -k 1 2019 man sort 2020 vi names.txt 2021 cat names.txt | tee names2.txt | sort 2022 vi names2.txt 2023 man tee 2024 sort a.txt 2025 sort names.txt 2026 sort names.txt | uniq 2027 sort names.txt | uniq | wc 2028 sort names.txt | uniq | wc -l 2029 sort -u names.txt 2030 man egrep 2031 egrep '.....' words | less 2032 egrep '^.....$' words | less 2033 egrep -n '^.....$' words | less 2034 egrep 'wat' words 2035 egrep -o 'wat' words 2036 find /etc/ -name '*words*'
- 管道测试样例
Zhenghua
Zhenghua
Zhangsan
Lisi
Lily
Zhenghua
Zhenghua
Lisi
Zhangsan
Lesson 7(2025.10.20;第8周)【随堂考试 4 道题】
- 复习vi
- 通配符的概念,使用方法
- 重定向输入
Lesson 6(2025.10.13;第7周)
- 普通(命令)模式下,移动光标,删除,复制粘贴,替换,撤销等操作
Lesson 5(2025.9.29;第5周)
- cp,mkdir, mv, rm等命令的使用
- 内部命令与外部命令的区别
- vi的介绍。
- 所使用到的命令
1990 type rm mkdir ls cd pwd 1991 alias lm='ls -la --color=never' 1992 lm 1993 ls -la 1994 echo $PATH
Lesson 4(2025.9.22;第4周)【随堂考试 3 道题】
- shell使用技巧(快捷键进行检索,终止进程等)
- 文件查看(cat,head,tail,less,hexdump命令等)
- 文件操作(cp命令)
- 所使用到的命令
1991 history 1992 history | egrep 'man' 1993 man printf 1994 man ls 1995 ls 1996* 1997 history | egrep 'man' 1998 less en.dev.autotagMIRA.conll.dep 1999 man hexdump 2000 hexdump -c en.dev.autotagMIRA.conll.dep 2001 hexdump -c en.dev.autotagMIRA.conll.dep | less 2002 hexdump en.dev.autotagMIRA.conll.dep | less 2003 hexdump -c en.dev.autotagMIRA.conll.dep | less 2004 man cp
Lesson 3(2025.9.15;第3周)
- man ls的使用方法
- man man(man的基本使用)
- 所使用到的命令
1991 ls 1992 ls / 1993 whereis ls 1994 vi /etc[防ban去掉]/hosts 1995 cd xxx 1996 ls -a 1997 cd . 1998 cd .. 1999 man ls 2000 ls 2001 ls --color=never 2002 man ls 2003 ls Documents 2004 ls -d Documents 2005 ls -ld Documents 2006 pwd 2007 ls -l 2008 ls -lh 2009 ls -lS 2010 ls -ltc | less 2011 ls -lta | less 2012 ls -lt | less 2013 man ls 2014 man man 2015 man printf 2016 man 3 printf 2017 printf '%30d%20.3f' 232 2.2323232 2018 printf '%30d%20.3f\n' 232 2.2323232 2019 printf '%-30d%-20.3f\n' 232 2.2323232 2020 man -k print 2021 man -k print[efgh] 2022 man -k print[e][r]
Lesson 2(2025.9.8;第2周)
- shell基本使用、shell的概念、父shell、子shell
- 命令语法、ls命令
- 命令行参数、python中sys.argv
- 所使用到的命令
1988 ps afx | egrep bash 1989 echo $$ 1990 exit 1991 ls 1992 ps afx | egrep bash 1993 bc 1994 sudo su 1995 ls 1996 ls -l 1997 ls -a 1998 ls --all 1999 ls -la 2000 ls Downloads/ Documents xxx
Lesson 1(2025.9.1;第1周)
- 课程介绍、个人介绍
- Linux安装
- 图形界面、文字界面
- 所使用到的命令
1987 uname -a 1988 ps afx | egrep gnome 1989 init 3 1990 sudo init 3 1991 w 1992 who 1993 man who 1994 w 1995 who 1996 vi a.txt 1997 bash