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

来自SUDA-HLT
跳到导航 跳到搜索
 
(未显示2个用户的23个中间版本)
第30行: 第30行:
 
=== TODO ===
 
=== TODO ===
 
find  
 
find  
 +
 
top ps kill fg bg 等
 
top ps kill fg bg 等
  
 +
11.24  12.1/8/15/22【五次课】
 +
 +
=== Lesson 15(2025.12.15;第16周)===
 +
<gallery>
 +
Linux-2025-fall-15-merged.jpg
 +
</gallery>
 +
*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周)===
 +
<gallery>
 +
Linux-2025-fall-14-merged.jpg
 +
</gallery>
 +
*权限
 +
*时间戳
 +
*符号链接与硬链接
 +
*所用到的指令:
 +
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周)===
 +
<gallery>
 +
Linux-2025-fall-13-merged_v1.jpg
 +
</gallery>
 +
*机械硬盘,文件系统 inode,block,superblock
 +
*挂载 mount
 +
 +
=== Lesson 12(2025.11.24;第13周)【随堂考试 3 道题】===
 +
<gallery>
 +
文件:Linux-2025-fall-12-merged.jpg
 +
</gallery>
 +
 +
*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周)===
 
=== Lesson 11(2025.11.17;第12周)===

2026年1月13日 (二) 03:34的最新版本

课程安排

  • 老师: 李正华
  • 助教:周昊喆、郑书禾
  • 计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私房菜 基础学习篇(第三版)【我觉得讲得比较深,想深入学的同学可以考虑用】

板书和笔记

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