Skip to content

Shell

当可视化界面无法满足你的要求的情况下,shell 将是你与计算机交互的主要方式之一.

基础的命令

  • date: 显示当前日期和时间
  • echo: 输出指定的字符集
  • which: 显示可执行文件的位置
  • pwd: 显示当前工作目录
  • ls: 列出当前目录的内容
  • cd: 切换目录
  • mv: 移动或重命名文件或目录
  • cp: 复制文件或目录
  • rm: 删除文件但是不能删除目录
  • rmdir: 删除一个目录(只能是空目录)
    • 如果要删除目录底下的许多文件时请使用-r
  • cat: 显示文件内容
  • tail: 显示文件末尾的内容
  • head: 显示文件开头的内容
  • history: 显示历史命令
  • tee: 同时将内容输出到文件和屏幕
  • vim: 编辑器
  • touch: 更新文件的时间戳
  • mkdir: 创建目录
  • chmod: 修改文件或目录的权限
  • chown: 修改文件或目录的拥有者
  • su: 切换用户
  • sudo: 以 root 权限运行命令

环境变量

环境变量是一系列的键值对,用于存储系统配置信息.

bash 其实就是一种编程语言,你甚至可以使用 while 循环,for 循环,if 语句,函数等等,来操作环境变量.

常见的环境变量有:

  • $PATH: 用于存储可执行文件的搜索路径
  • $HOME: 用于存储用户的主目录
  • $PWD: 用于显示当前工作目录
  • $UID: 用于显示当前用户的用户 ID

我们可以通过echo命令来查看环境变量的值:

bash
echo $PATH

他就会输出类似于:

/root/.vscode-server/cli/servers/Stable-cd4ee3b1c348a13bafd8f9ad8060705f6d4b9cba/server/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

没错这就是我这个服务器说输出的内容,每一个之间以:隔开.

路径

路径是指文件系统中的一个位置,它由一系列的目录和文件名组成.

在 linux 和 macOS 之中使用正斜杠/来表示路径,而在 windows 系统中使用反斜杠\来表示路径.

在 linux 和 macOS 中所有内容都属于根命名,而在 windows 上,每个分区都有一个根目录,就是所谓的C:\或者D:\.

每个驱动器都有一个单独的路径结构.

绝对路径

绝对路径是指从根目录开始的完整路径,例如:

/home/user/Documents/myfile.txt

相对路径

相对路径是指从当前目录开始的路径,例如:

./myfile.txt

表示当前目录下的myfile.txt文件.

../myfile.txt

表示上一级目录下的myfile.txt文件.

~/Documents/myfile.txt

表示用户主目录下的Documents目录下的myfile.txt文件.

权限

在 linux 和 macOS 中,每个文件都有一组权限,用于控制用户对文件的访问权限.

  • r 读权限: 可以读取文件内容
  • w 写权限: 可以修改文件内容
  • x 执行权限: 可以执行文件

权限可以使用数字表示,例如:

  • 777 所有用户都有读、写、执行权限
  • 644 所有用户都有读、写权限,只有文件所有者有执行权限
  • 755 所有用户都有读、写、执行权限,只有文件所有者有执行权限

流分为输入流和输出流,输入流用于从键盘输入数据,输出流用于显示输出结果。

  • > 重定向输出流,将命令的输出结果重定向到一个文件中。
  • >> 追加重定向输出流,将命令的输出结果追加到一个文件中。
  • < 重定向输入流,将一个文件的内容作为命令的输入。
  • | 管道命令,将一个命令的输出结果作为另一个命令的输入。

列入我们可以这样使用:

bash
# 输出命令结果到文件
ls -l > file.txt

# 追加命令结果到文件
ls -l >> file.txt

# 重定向输入流
cat < file.txt

# 管道命令
ls -l | grep bin

如何更有趣,更强大的使用 shell?

root 用户

root 就是一个超级用户,拥有最高权限,可以做任何事情.

但是大多数时间都不用 root 用户,你会使用其他名字称为一个用户

sudo命令可以帮助你以 root 权限运行命令,例如:

bash
sudo ls -l

如何打开文件

有很多命令可以打开文件,例如:

  • xdg-open 打开文件或目录(linux)
  • open 打开文件或目录(macOS)
  • start 打开文件或目录(windows)
bash
xdg-open myfile.txt