| |
界面介绍,date echo pwd which 命令,文件路径
打开终端如下图

其告诉你:你的用户名为Azusaislit,主机名为Roboride-Portab
运行 date 程序,显示出当前时间
可以在执行运行程序的命令的同时传递参数,比如运行 echo 程序的同时传递参数 Hello,这将会在你的终端输出 Hello

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

环境变量 是 shell 确定程序位置的一个基本方法,它就像编程语言的一种变量(实际上 shell 就是一种编程语言,可以用来编程,后面可以来写脚本)。它是在启动 shell 的时候就已经设置好了的,不需要用户每次手动配置
路径变量 $PATH 是一类重要的环境变量:如果你要求 shell 执行某个指令,但是该指令并不是 shell 所了解的编程关键字,那么它会去咨询 环境变量 $PATH,其会列出当 shell 接到某条指令时,进行程序搜索的路径

这是由冒号所分割的路径列表。电脑在$PATH寻找并尝试匹配你所需要的程序。
运行程序可以直接输入程序名称,让 shell 从 $PATH 中寻找它,或者通过程序的绝对路径来运行
绝对路径是完全可以确定文件位置的路径
相对路径是相对你所在路径的路径。利用 pwd 命令可以查看当前所在的路径

其告诉我我正位于 C:\Users\Azusaislit 文件夹中(我目前使用Windows系统下的Bash shell)
而切换目录需要使用 cd 命令。在路径中,. 表示的是当前目录,而 .. 表示上级目录
如果我们想知道所运行的程序是哪一个,我们可使用 which 命令

即运行的 echo 程序位于 /usr/bin/echo
在Windows上,每个分区都有一个根目录,每个分区都有一个单独的路径结构: C:\ D:\,而这样的路径用反斜杠分割
在Linux和MacOS,所有内容都属于根命名空间内,所有绝对路径都由 / 开头,路径用正斜杠分割。
ls命令与文件权限
为了查看指定目录下包含哪些文件,我们使用 ls 命令:

这告诉我们 C:\Users\Azusaislit\Pictures 路径下的所有文件夹(蓝色字体)与文件(白色字体)
使用 ls -l 命令会给我们有关这些文件夹与文件的更多信息

在某些条目的开头的 “d” 表示这些条目是一个目录,因此我们可知道 'Camera Roll' 条目 是一个目录,而 desktop.ini 是一个文件。
之后的9个字母表示该文件或目录的权限:有 “r” 意思是读取权限,有 “w” 意思是写入权限,有 “x” 意思是执行权限。
如 r-x 意思是你拥有读取与执行权限,但没有写入权限。
而对目录来说,这些权限含义
- 读取 -> 查看目录的文件列表
- 写入 -> 在目录中创造、重命名、删除文件。
(如果你有文件
/usr/bin/programA/config.yoml的写入权限,但没有目录/usr/bin/programA的写入权限,这意味着你可以对 该yoml本身内容进行操作,却不能重命名它、或者删除它) - 执行 -> “搜索"权限,是否允许进入该目录。如果你要进入一个目录,你需要在 该目录及其所有的直系父目录上 都拥有执行权限
前三个字符是为文件所有者(这里是Azusaislit)所设置的权限 中间三个字符是为拥有该文件的组设置的权限 最后三个字符是其他人的权限列表
对于 cd 命令有两个特殊符号较常用:
cd ~将切换到主目录(不是根目录)cd -将切换到你之前所在的目录

如图,通过 cd - 我们实现了在 ~/pictures 与 ~ 之间相互切换
mv cp rm mkdir man 指令
mv 命令可以 移动文件 ,也可以 重命名文件

利用 mv 命令将当前所在路径下的一个 broke.txt 重命名为 up.txt

利用 mv 命令将位于 D:\ST2 的 hello.txt 转移到 D:\Shell_test 目录

同样 重命名 和 移动 操作 可以同时进行
还有 cp 命令可用于复制文件,用法类似 mv ,也可以用来重命名文件

rm 命令可以用来删除文件,但在Linux上删除不会递归进行,因此不能用于删除目录。通常使用 rm -r 或者 rmdir 命令用于删除目录,但后者只能删除空目录。

mkdir 命令用于创建目录。如果你要创建一个名为 My Photo 的目录,您要么用使用单引号'My Photos',双引号将其包裹起来 "My Photos" ,要么使用转义符号 \ 进行处理(My\ Photos)。
man 程序以另一个程序作为参数,并给出作为参数的程序的 manual pages。这比 –help 指令通常更为实用。(Windows的bash不可用)
Ctrl + L 是 cls (Windows cmd) 或 clear (Bash Shell) 的快捷键
IO重定向
在 shell 中,程序有两个主要的“流”:它们的输入流和输出流。 当程序尝试读取信息时,它们会从输入流中进行读取,当程序打印信息时,它们会将信息输出到输出流中。 通常,一个程序的输入输出流都是您的终端。也就是,您的键盘作为输入,显示器作为输出。 但是,我们也可以重定向这些流!
最简单的重定向是 < file :表示将要运行的程序的输入重定向为 file 文件的内容(file 代替输入)
和 > file :表示将程序的输出重定向到 file 文件中(将 file 用于输出结果)

cat 命令的作用是打印文件的内容。我们可以看到 echo 命令的结果被写入到 hello.txt 中了。

利用 cat 命令也重定向输入输出:从 hello.txt 读取内容,并输出在 hate.txt 中。最后一个 cat 命令中输出没有重定向,其内容默认输出在终端上。
| 操作符允许我们将一个程序的输出和另外一个程序的输入连接起来: A | B 即将 A 程序的输出作为 B程序的输入。| 的使用可以嵌套。
``
tail
sudo su 将终端切换到 ROOT终端
tee
| |
或者
| |
find 文件
xdg-open file 命令可以用合适的程序打开 file 文件。