环境搭建

配置WSL是这门课不错的开始:win10搭建WSL2
或者跟我一样采用虚拟机

因为我之前学过一点Linux,有现成的虚拟机,就直接用了。


shell 知识储备

命令的语法格式

Linux的命令由三部分组成:“命令 [选项] [参数]”

  • 命令:告诉 操作系统 执行的什么命令
  • 选项:说明命令运行的方式(一般是以 “-”开始的)
  • 参数:说明命令作用于什么(如一个文件、目录、文字等等)

记住这个公式,有利于理解一大串命令的作用。

用户提示符是这么规定的:

  • 普通用户提示符:$
  • root 用户提示户:#

root 表示电脑最高权限者,也就是说,对于这台电脑来说,root账号的人就像上帝一般,无所不能。

系统工作命令

1. echo 命令

echo命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。(相当于打印出来
学过编程的同学,会很容易理解这个命令的作用。就像 python 中的 print 函数嘛

2. 系统命令


reboot命令
reboot 命令用于重启系统

②poweroff命令
oweroff 命令用于关闭系统
该命令与reboot命令相同,会涉及硬件资源的管理权限,因此默认只有root管理员才可以关闭电脑

③ shutdown命令**
用来关机或重启的命令,取决于后面的参数:

  • shutdown -r [now] 重启系统;
  • shutdown -h [now] 关机

shutdown命令的工作原理为:shutdown命令会发送请求给系统的 init 进程将系统调整为合适的运行级别:0 表示关机;6表示重启

④ logout / exit 命令
用于退出当前用户登陆状态。

⑤ 用户查看、用户切换

命令 作用
whoami 查看当前正在操作的用户
who 查看当前登陆的用户
su - [usename] 用于直接切换用户

文件型相关命令

1. pwd 命令

pwd命令用于显示用户当前所处的工作目录,格式为“pwd [选项]”。 工作目录指的是用户当前在系统中所处的位置。

选项:

  • -L 目录连接链接时,输出连接路径
  • -P 输出物理路径

2. cd 命令

cd命令用于切换工作路径,格式为“cd [目录名称]”。
这个命令应该是最常用的一个Linux命令了。可以通过cd命令迅速、灵活地切换到不同的工作目录。

所谓的[目录名称] 还有两种路径区分:
绝对路径/相对路径:

  • 绝对路径:必须以斜杆开始,绝对路径包括从文件系统的根节点开始要查找的对象(目录或文件),所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需文件。
  • 相对路径:不是以斜杆开始,相对路径可以包含从当前目录到要查找的对象(目录或文件)所必需遍历的每一个目录的名字。



实例演示:
1. The shell - 图1

  • 在Linux系统中,.. 表示父级目录, . 表示当前目录(这一点和Windows一致)
  • 于是 “cd ..” 就是返回到上层目录。

3. ls 命令

ls命令用于显示目录中的文件信息,格式为“ls [选项] [文件] ”。所处的工作目录不同,当前工作目录下的文件肯定也不同。
使用ls命令的“-a”参数看到全部文件(包括隐藏文件),使用“-l”参数可以查看文件的属性、大小等详细信息。将这两个参数整合之后,再执行 “ls -al” 命令即可查看当前目录中的所有文件并输出这些文件的属性信息:

image.png
**
ls -al 所显示的内容的每一部分的意思依次为(从左往右看):

  1. 权限信息
  2. 硬连接数(可以理解为存在 n个相同的文件)
  3. 属主:该用户所拥有该文件;
  4. 属组:该组具有哪些用户
  5. 文件大小
  6. 文件创建时间
  7. 文件名

**

我们从上面知道,文件的详细信息的第一部分就是权限信息了(如文件a的“-rw-r—r—”)。
权限信息的内容,又得分为四部分看:

第1位:指明该文件的类型

标识 文件类型
- 普通文件类型
d 代表目录
l 软链接(快捷方式)
b 块设备
p 管道文件
c 字符设备文件

第2-4位:文件的属主对该文件的权限(没有该权限则使用 - 替换)
描述文件的权限共为三个标志位,分别为:读、写、执行。

标志位 作用
读 r(read) 表示能够读取文件的实际内容
写 w(write) 表示能够编辑、新增、修改、删除文件的实际内容
执行 x(execute) 表示能够运行一个脚本程序

第5-7位:文件的属组对该文件的权限(group)
第8-10位:其他用户对该文件的权限(other)


注意:

一般来说,文件由谁创建的,属主和属组就是该用户,只有文件的属主才能修改权限(root 用户不受权限限制)

**

4. cat 命令

cat命令用于回显数据,比如说我们可以传入一个文件,格式为“cat [选项] [文件]”。
如果在查看文本内容时还想顺便显示行号的话,在cat命令后面追加一个 -n 参数:
1. The shell - 图3

  • 建议当查看的文件内容较少时才使用 “cat” ! 因为有更棒的命令,我们接着往下看!

命令行指令

1. 管道符

管道命令符的作用也可以用一句话来概括“把前一个命令原本要输出到屏幕的标准输出当作是后一个命令的标准输入”
**
其执行格式为“命令A | 命令B”。

1. The shell - 图4

  • 以上就通过管道符实现了将example.sh文件输出结果进行行数统计的功能

2. 重定向

**
默认情况下

  • command > file 将 stdout(标准输出) 重定向到 file;
  • command < file 将 stdin (标准输入)重定向到 file。

而且注意:
(>)是清空写入;
(>>)是追加写入;
**
root@DESKTOP-703NGNU:/opt/temp# echo hello > hello.txt
root@DESKTOP-703NGNU:/opt/temp# cat hello.txt
hello
root@DESKTOP-703NGNU:/opt/temp# echo "two line" >> hello.txt
root@DESKTOP-703NGNU:/opt/temp# cat hello.txt
hello
two line
root@DESKTOP-703NGNU:/opt/temp#