【缺失的一课1】

课程概览和shell

Posted by Kody Black on December 31, 2022

计算机教育中缺失的一课笔记

课程概览与shell

处理空格

如果您希望传递的参数中包含空格(例如一个名为 My Photos 的文件夹),您要么用使用单引号,双引号将其包裹起来,要么使用转义符号 \ 进行处理(My\ Photos

Shell 的内置(builtin)命令

❯ which echo
echo: shell built-in command
❯ bash
kody@kody-KPRC-WX0:~$ which echo
/bin/echo

为什么在zsh输入which echo显示的内容和bash里面输入which echo显示的内容不一样呢?

参考(chaoxi)Shell 的内置(builtin)命令是什么,常常傻傻分不清

builtin 命令是 shell (譬如 bash)里自带的命令,由于其作为 shell 程序(进程)的一部分常驻在内存中,所以和一个普通命令相比起来, builtin 命令的执行速度要快得多。

而echo就是一个builtin命令,在zsh和bash中都是。需要用type判断一个命令是不是build命令:

type echo
echo is a shell builtin
❯ bash
kody@kody-KPRC-WX0:~$ type echo
echo 是 shell 内建

zsh优化了which,将其作为了builtin命令,发挥和type一样的功效

kody@kody-KPRC-WX0:~$ type which
which 是 /usr/bin/which
kody@kody-KPRC-WX0:~$ exit
exittype which
which is a shell builtin

设置zsh为中文

# 修改~/.zshrc
# You may need to manually set your language environment
export LANG=zh_CN.utf8
# 安装中文的man文档
sudo apt-get install  manpages-zh

chmod命令

chmod主要有两种用法:

  1. chmod 777 [filename]

    给对应文件重新赋权:创建者、同组、其他用户(读4 写2 执行1)

  2. chmod u+a [filenmae]

    修改文件权限,+表示增加,-表示减少,=表示重新赋权,例如上面是给文件创建者所有权限

    u文件属主、g同组用户、o其他用户、a所有用户;权限包括:rwx

常用参数:

  • -v :显示权限变更的详细资料
  • -R :对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

课后练习

# 使用 | 和 > ,将 semester 文件输出的最后更改日期信息,写入主目录下的 last-modified.txt 的文件中
./semester | grep last > /last-modified.txt
# 写一段命令来从 /sys 中获取笔记本的电量信息,或者台式机 CPU 的温度
cat /sys/class/power_supply/BAT1/capacity