开始这篇内容之前,读者需要:

  • 了解终端、Shell、CLI 等;
  • 理解文件和目录的概念;

控制程序运行的命令行参数的一个惯例

观察下面这两条命令:

  1. gcc test1.c -o test1
  2. apt list --upgradable

这里的“list”“--upgradable”都是传递给“apt”程序的参数;更进一步讲,带有横线的“--upgradable”是用来修饰“list”命令的。

另外,第一条命令中的“-o”和下一条命令的“--upgradable”,前者前边有一根短横线(连字符),后边只跟了一个字母(通常可能为某单词的首字母);后者前边有两根短横线,其后的则是一个完整的单词。这是命令行参数的一个惯例。

再如下面这个命令里,“-Syu”中的“S”“y”“u”各有含义,且小写的“y”“u”为修饰“S”命令的参数。

  1. pacman -Syu

下面这个命令里的“cvf”也是类似的道理,三个字母分别指明了操作的三个属性。

  1. jar cvf app1.jar app1

实用技巧

  1. 自动补全

在敲出 文件/目录/命令 的前几个字母之后,按下 Tab 键,如果输入的没有歧义,系统会自动补全。

如果还存在其他 文件/目录/命令,再按一下 Tab 键,系统会提示可能存在的命令

  1. 曾经使用过的命令

按键盘上的 上/下 方向键,可以在曾经使用过的命令之间切换。

Linux 基本命令

这里只介绍简单的几个命令,更详细的需要读者自行查找资料。

  • 查看目录内容 ls
  • 切换目录 cd
  • 创建和删除操作 touchrmmkdir
  • 拷贝和移动文件 cpmv

ls:列出目录的内容

ls 是英文单词 list 的简写,其功能为列出目录的内容,是用户最常用的命令之一,类似于 DOS 下的 dir 命令

参数 含义
-a 显示指定目录下所有子目录与文件,包括隐藏文件
-l 以列表方式显示文件的详细信息
-h 配合 -l 以人性化的方式显示文件大小

Linux / Unix 操作系统下,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示

  1. $ ls -a # 显示目录下的所有文件/目录
  2. $ ls -a -l # 以列表方式显示目录下的所有文件/目录的详细信息

cd:切换目录

cd 是英文单词 change directory 的简写,其功能为更改当前的工作目录,也是用户最常用的命令之一。

. 代表当前目录,.. 代表上一级目录,~ 代表用户的家目录

注意:Linux 所有的 目录文件名 都是大小写敏感的

  1. $ cd .. # 切换到上级目录
命令 含义
cd ~ 切换到当前用户的主目录(家目录,亦即/home/用户名
cd . 保持在当前目录不变
cd .. 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换

相对路径和绝对路径

相对路径:在输入路径时,最前面不是 / 或者 ~,表示相对 当前目录 所在的目录位置
绝对路径:在输入路径时,最前面 / 或者 ~,表示从 根目录 / 家目录 开始的具体目录位置

pwd:查看当前目录

直接在终端中执行 pwd,即可获得当前目录的路径。

  1. pwd

使用输出重定向创建文件

我们可以用输出重定向的方式新建一个文件。

  1. echo "" > hello.txt

上述的命令将会输出空内容到“hello.txt”文件,如果文件不存在,则将会创建一个新文件;如果文件已存在,则将覆盖掉文件原有的内容。

mkdir:创建一个新的目录

新建目录的名称不能与当前目录中已有的目录或文件同名

  1. $ mkdir workspace
  2. $ cd workspace
  3. $ cd ..

rm:删除文件或目录

使用 rm 命令要小心,因为文件删除后不能恢复

选项 含义
-f 强制删除,忽略不存在的文件,无需提示
-r 递归地删除目录下的内容,删除目录 时必须加此参数
-v 可以显示出该命令具体执行了哪些操作

拷贝和移动文件

命令 对应英文 作用
cp 源文件 目标文件 copy 复制文件或者目录
mv 源文件 目标文件 move 移动文件或者目录/文件或者目录重命名

参考链接:文件和目录常用命令 - davidabdy - 博客园 (cnblogs.com)

PowerShell

上述提到的命令,在 PowerShell 中也是基本适用的。

相关内容